/*
 * Copyright (C) 2018 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.protobuf.ExtensionRegistry registry) {
  }
  public interface GetOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage key = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    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();

    // required sint32 consistency = 2;
    /**
     * <code>required sint32 consistency = 2;</code>
     */
    boolean hasConsistency();
    /**
     * <code>required sint32 consistency = 2;</code>
     */
    int getConsistency();

    // required uint32 timeout = 3;
    /**
     * <code>required uint32 timeout = 3;</code>
     */
    boolean hasTimeout();
    /**
     * <code>required uint32 timeout = 3;</code>
     */
    int getTimeout();

    // optional .akka.cluster.ddata.OtherMessage request = 4;
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    boolean hasRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    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.Get}
   */
  public static final class Get extends
      akka.protobuf.GeneratedMessage
      implements GetOrBuilder {
    // Use Get.newBuilder() to construct.
    private Get(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Get(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Get defaultInstance;
    public static Get getDefaultInstance() {
      return defaultInstance;
    }

    public Get getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Get(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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) == 0x00000008)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Get_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<Get> PARSER =
        new akka.protobuf.AbstractParser<Get>() {
      public Get parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Get(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage key = 1;
    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>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_;
    }

    // required sint32 consistency = 2;
    public static final int CONSISTENCY_FIELD_NUMBER = 2;
    private int consistency_;
    /**
     * <code>required sint32 consistency = 2;</code>
     */
    public boolean hasConsistency() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required sint32 consistency = 2;</code>
     */
    public int getConsistency() {
      return consistency_;
    }

    // required uint32 timeout = 3;
    public static final int TIMEOUT_FIELD_NUMBER = 3;
    private int timeout_;
    /**
     * <code>required uint32 timeout = 3;</code>
     */
    public boolean hasTimeout() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>required uint32 timeout = 3;</code>
     */
    public int getTimeout() {
      return timeout_;
    }

    // optional .akka.cluster.ddata.OtherMessage request = 4;
    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>
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
      return request_;
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
      return request_;
    }

    private void initFields() {
      key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      consistency_ = 0;
      timeout_ = 0;
      request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSInt32(2, consistency_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeUInt32(3, timeout_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, request_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeSInt32Size(2, consistency_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(3, timeout_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(4, request_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Get prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Get}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Get_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getRequestFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        consistency_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        timeout_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (requestBuilder_ == null) {
          request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Get_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.consistency_ = consistency_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.timeout_ = timeout_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (requestBuilder_ == null) {
          result.request_ = request_;
        } else {
          result.request_ = requestBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      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;
      }

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

      // required .akka.cluster.ddata.OtherMessage key = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  key_,
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      // required sint32 consistency = 2;
      private int consistency_ ;
      /**
       * <code>required sint32 consistency = 2;</code>
       */
      public boolean hasConsistency() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required sint32 consistency = 2;</code>
       */
      public int getConsistency() {
        return consistency_;
      }
      /**
       * <code>required sint32 consistency = 2;</code>
       */
      public Builder setConsistency(int value) {
        bitField0_ |= 0x00000002;
        consistency_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sint32 consistency = 2;</code>
       */
      public Builder clearConsistency() {
        bitField0_ = (bitField0_ & ~0x00000002);
        consistency_ = 0;
        onChanged();
        return this;
      }

      // required uint32 timeout = 3;
      private int timeout_ ;
      /**
       * <code>required uint32 timeout = 3;</code>
       */
      public boolean hasTimeout() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required uint32 timeout = 3;</code>
       */
      public int getTimeout() {
        return timeout_;
      }
      /**
       * <code>required uint32 timeout = 3;</code>
       */
      public Builder setTimeout(int value) {
        bitField0_ |= 0x00000004;
        timeout_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 timeout = 3;</code>
       */
      public Builder clearTimeout() {
        bitField0_ = (bitField0_ & ~0x00000004);
        timeout_ = 0;
        onChanged();
        return this;
      }

      // optional .akka.cluster.ddata.OtherMessage request = 4;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
        if (requestBuilder_ == null) {
          return 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) == 0x00000008) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        return requestBuilder_;
      }

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

    static {
      defaultInstance = new Get(true);
      defaultInstance.initFields();
    }

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

  public interface GetSuccessOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage key = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    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();

    // required .akka.cluster.ddata.OtherMessage data = 2;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    boolean hasData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    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();

    // optional .akka.cluster.ddata.OtherMessage request = 4;
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    boolean hasRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    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.protobuf.GeneratedMessage
      implements GetSuccessOrBuilder {
    // Use GetSuccess.newBuilder() to construct.
    private GetSuccess(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetSuccess(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final GetSuccess defaultInstance;
    public static GetSuccess getDefaultInstance() {
      return defaultInstance;
    }

    public GetSuccess getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetSuccess(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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) == 0x00000002)) {
                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) == 0x00000004)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetSuccess_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<GetSuccess> PARSER =
        new akka.protobuf.AbstractParser<GetSuccess>() {
      public GetSuccess parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new GetSuccess(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage key = 1;
    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>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_;
    }

    // required .akka.cluster.ddata.OtherMessage data = 2;
    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>
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
      return data_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
      return data_;
    }

    // optional .akka.cluster.ddata.OtherMessage request = 4;
    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>
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
      return request_;
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
      return request_;
    }

    private void initFields() {
      key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, data_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeMessage(4, request_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, data_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(4, request_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccess prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.GetSuccess}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetSuccessOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetSuccess_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getDataFieldBuilder();
          getRequestFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (dataBuilder_ == null) {
          data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        if (requestBuilder_ == null) {
          request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetSuccess_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (dataBuilder_ == null) {
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        if (requestBuilder_ == null) {
          result.request_ = request_;
        } else {
          result.request_ = requestBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

      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;
      }

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

      // required .akka.cluster.ddata.OtherMessage key = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  key_,
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      // required .akka.cluster.ddata.OtherMessage data = 2;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
        if (dataBuilder_ == null) {
          return 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) == 0x00000002) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

      // optional .akka.cluster.ddata.OtherMessage request = 4;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
        if (requestBuilder_ == null) {
          return 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) == 0x00000004) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 4;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        return requestBuilder_;
      }

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

    static {
      defaultInstance = new GetSuccess(true);
      defaultInstance.initFields();
    }

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

  public interface NotFoundOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage key = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    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();

    // optional .akka.cluster.ddata.OtherMessage request = 2;
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    boolean hasRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    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.protobuf.GeneratedMessage
      implements NotFoundOrBuilder {
    // Use NotFound.newBuilder() to construct.
    private NotFound(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private NotFound(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final NotFound defaultInstance;
    public static NotFound getDefaultInstance() {
      return defaultInstance;
    }

    public NotFound getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private NotFound(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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) == 0x00000002)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_NotFound_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<NotFound> PARSER =
        new akka.protobuf.AbstractParser<NotFound>() {
      public NotFound parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new NotFound(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage key = 1;
    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>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_;
    }

    // optional .akka.cluster.ddata.OtherMessage request = 2;
    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>
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
      return request_;
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
      return request_;
    }

    private void initFields() {
      key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, request_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, request_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFound prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.NotFound}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.NotFoundOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_NotFound_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getRequestFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (requestBuilder_ == null) {
          request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_NotFound_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (requestBuilder_ == null) {
          result.request_ = request_;
        } else {
          result.request_ = requestBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

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

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

      // required .akka.cluster.ddata.OtherMessage key = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  key_,
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      // optional .akka.cluster.ddata.OtherMessage request = 2;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
        if (requestBuilder_ == null) {
          return 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) == 0x00000002) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        return requestBuilder_;
      }

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

    static {
      defaultInstance = new NotFound(true);
      defaultInstance.initFields();
    }

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

  public interface GetFailureOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage key = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    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();

    // optional .akka.cluster.ddata.OtherMessage request = 2;
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    boolean hasRequest();
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    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.protobuf.GeneratedMessage
      implements GetFailureOrBuilder {
    // Use GetFailure.newBuilder() to construct.
    private GetFailure(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private GetFailure(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final GetFailure defaultInstance;
    public static GetFailure getDefaultInstance() {
      return defaultInstance;
    }

    public GetFailure getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private GetFailure(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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) == 0x00000002)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetFailure_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<GetFailure> PARSER =
        new akka.protobuf.AbstractParser<GetFailure>() {
      public GetFailure parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new GetFailure(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage key = 1;
    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>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_;
    }

    // optional .akka.cluster.ddata.OtherMessage request = 2;
    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>
     */
    public boolean hasRequest() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
      return request_;
    }
    /**
     * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getRequestOrBuilder() {
      return request_;
    }

    private void initFields() {
      key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, request_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, request_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailure prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.GetFailure}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GetFailureOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetFailure_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getRequestFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (requestBuilder_ == null) {
          request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          requestBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_GetFailure_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (requestBuilder_ == null) {
          result.request_ = request_;
        } else {
          result.request_ = requestBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

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

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

      // required .akka.cluster.ddata.OtherMessage key = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  key_,
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      // optional .akka.cluster.ddata.OtherMessage request = 2;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage request_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasRequest() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getRequest() {
        if (requestBuilder_ == null) {
          return 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) == 0x00000002) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.OtherMessage request = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  request_,
                  getParentForChildren(),
                  isClean());
          request_ = null;
        }
        return requestBuilder_;
      }

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

    static {
      defaultInstance = new GetFailure(true);
      defaultInstance.initFields();
    }

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

  public interface SubscribeOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage key = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    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();

    // required string ref = 2;
    /**
     * <code>required string ref = 2;</code>
     */
    boolean hasRef();
    /**
     * <code>required string ref = 2;</code>
     */
    java.lang.String getRef();
    /**
     * <code>required string ref = 2;</code>
     */
    akka.protobuf.ByteString
        getRefBytes();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Subscribe}
   */
  public static final class Subscribe extends
      akka.protobuf.GeneratedMessage
      implements SubscribeOrBuilder {
    // Use Subscribe.newBuilder() to construct.
    private Subscribe(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Subscribe(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Subscribe defaultInstance;
    public static Subscribe getDefaultInstance() {
      return defaultInstance;
    }

    public Subscribe getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Subscribe(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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: {
              bitField0_ |= 0x00000002;
              ref_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Subscribe_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<Subscribe> PARSER =
        new akka.protobuf.AbstractParser<Subscribe>() {
      public Subscribe parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Subscribe(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage key = 1;
    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>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_;
    }

    // required string ref = 2;
    public static final int REF_FIELD_NUMBER = 2;
    private java.lang.Object ref_;
    /**
     * <code>required string ref = 2;</code>
     */
    public boolean hasRef() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string ref = 2;</code>
     */
    public java.lang.String getRef() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ref_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string ref = 2;</code>
     */
    public akka.protobuf.ByteString
        getRefBytes() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ref_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      ref_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getRefBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(2, getRefBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Subscribe prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Subscribe}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.SubscribeOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Subscribe_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        ref_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Subscribe_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.ref_ = ref_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

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

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

      // required .akka.cluster.ddata.OtherMessage key = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  key_,
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      // required string ref = 2;
      private java.lang.Object ref_ = "";
      /**
       * <code>required string ref = 2;</code>
       */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string ref = 2;</code>
       */
      public java.lang.String getRef() {
        java.lang.Object ref = ref_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          ref_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string ref = 2;</code>
       */
      public akka.protobuf.ByteString
          getRefBytes() {
        java.lang.Object ref = ref_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ref_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string ref = 2;</code>
       */
      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>
       */
      public Builder clearRef() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ref_ = getDefaultInstance().getRef();
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 2;</code>
       */
      public Builder setRefBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        ref_ = value;
        onChanged();
        return this;
      }

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

    static {
      defaultInstance = new Subscribe(true);
      defaultInstance.initFields();
    }

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

  public interface UnsubscribeOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage key = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    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();

    // required string ref = 2;
    /**
     * <code>required string ref = 2;</code>
     */
    boolean hasRef();
    /**
     * <code>required string ref = 2;</code>
     */
    java.lang.String getRef();
    /**
     * <code>required string ref = 2;</code>
     */
    akka.protobuf.ByteString
        getRefBytes();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Unsubscribe}
   */
  public static final class Unsubscribe extends
      akka.protobuf.GeneratedMessage
      implements UnsubscribeOrBuilder {
    // Use Unsubscribe.newBuilder() to construct.
    private Unsubscribe(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Unsubscribe(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Unsubscribe defaultInstance;
    public static Unsubscribe getDefaultInstance() {
      return defaultInstance;
    }

    public Unsubscribe getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Unsubscribe(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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: {
              bitField0_ |= 0x00000002;
              ref_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Unsubscribe_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<Unsubscribe> PARSER =
        new akka.protobuf.AbstractParser<Unsubscribe>() {
      public Unsubscribe parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Unsubscribe(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage key = 1;
    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>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_;
    }

    // required string ref = 2;
    public static final int REF_FIELD_NUMBER = 2;
    private java.lang.Object ref_;
    /**
     * <code>required string ref = 2;</code>
     */
    public boolean hasRef() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required string ref = 2;</code>
     */
    public java.lang.String getRef() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          ref_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string ref = 2;</code>
     */
    public akka.protobuf.ByteString
        getRefBytes() {
      java.lang.Object ref = ref_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        ref_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      ref_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, getRefBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(2, getRefBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Unsubscribe prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Unsubscribe}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UnsubscribeOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Unsubscribe_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        ref_ = "";
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Unsubscribe_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.ref_ = ref_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

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

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

      // required .akka.cluster.ddata.OtherMessage key = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  key_,
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      // required string ref = 2;
      private java.lang.Object ref_ = "";
      /**
       * <code>required string ref = 2;</code>
       */
      public boolean hasRef() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required string ref = 2;</code>
       */
      public java.lang.String getRef() {
        java.lang.Object ref = ref_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          ref_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string ref = 2;</code>
       */
      public akka.protobuf.ByteString
          getRefBytes() {
        java.lang.Object ref = ref_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          ref_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string ref = 2;</code>
       */
      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>
       */
      public Builder clearRef() {
        bitField0_ = (bitField0_ & ~0x00000002);
        ref_ = getDefaultInstance().getRef();
        onChanged();
        return this;
      }
      /**
       * <code>required string ref = 2;</code>
       */
      public Builder setRefBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        ref_ = value;
        onChanged();
        return this;
      }

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

    static {
      defaultInstance = new Unsubscribe(true);
      defaultInstance.initFields();
    }

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

  public interface ChangedOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage key = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    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();

    // required .akka.cluster.ddata.OtherMessage data = 2;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    boolean hasData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    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.protobuf.GeneratedMessage
      implements ChangedOrBuilder {
    // Use Changed.newBuilder() to construct.
    private Changed(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Changed(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Changed defaultInstance;
    public static Changed getDefaultInstance() {
      return defaultInstance;
    }

    public Changed getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Changed(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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) == 0x00000002)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Changed_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<Changed> PARSER =
        new akka.protobuf.AbstractParser<Changed>() {
      public Changed parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Changed(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage key = 1;
    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>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
      return key_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getKeyOrBuilder() {
      return key_;
    }

    // required .akka.cluster.ddata.OtherMessage data = 2;
    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>
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
      return data_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
      return data_;
    }

    private void initFields() {
      key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, key_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Changed prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Changed}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ChangedOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Changed_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getKeyFieldBuilder();
          getDataFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (keyBuilder_ == null) {
          key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          keyBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (dataBuilder_ == null) {
          data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Changed_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (keyBuilder_ == null) {
          result.key_ = key_;
        } else {
          result.key_ = keyBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (dataBuilder_ == null) {
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

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

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

      // required .akka.cluster.ddata.OtherMessage key = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage key_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getKey() {
        if (keyBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage key = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  key_,
                  getParentForChildren(),
                  isClean());
          key_ = null;
        }
        return keyBuilder_;
      }

      // required .akka.cluster.ddata.OtherMessage data = 2;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
        if (dataBuilder_ == null) {
          return 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) == 0x00000002) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

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

    static {
      defaultInstance = new Changed(true);
      defaultInstance.initFields();
    }

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

  public interface WriteOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string key = 1;
    /**
     * <code>required string key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     * <code>required string key = 1;</code>
     */
    akka.protobuf.ByteString
        getKeyBytes();

    // required .akka.cluster.ddata.DataEnvelope envelope = 2;
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     */
    boolean hasEnvelope();
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     */
    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.Write}
   */
  public static final class Write extends
      akka.protobuf.GeneratedMessage
      implements WriteOrBuilder {
    // Use Write.newBuilder() to construct.
    private Write(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Write(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Write defaultInstance;
    public static Write getDefaultInstance() {
      return defaultInstance;
    }

    public Write getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Write(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              key_ = input.readBytes();
              break;
            }
            case 18: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Write_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<Write> PARSER =
        new akka.protobuf.AbstractParser<Write>() {
      public Write parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Write(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required string key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private java.lang.Object key_;
    /**
     * <code>required string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string key = 1;</code>
     */
    public akka.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required .akka.cluster.ddata.DataEnvelope envelope = 2;
    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>
     */
    public boolean hasEnvelope() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
      return envelope_;
    }
    /**
     * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
      return envelope_;
    }

    private void initFields() {
      key_ = "";
      envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, envelope_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getKeyBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, envelope_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Write prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Write}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.WriteOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Write_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEnvelopeFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        if (envelopeBuilder_ == null) {
          envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
        } else {
          envelopeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Write_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (envelopeBuilder_ == null) {
          result.envelope_ = envelope_;
        } else {
          result.envelope_ = envelopeBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required string key = 1;
      private java.lang.Object key_ = "";
      /**
       * <code>required string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      public akka.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      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>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * <code>required string key = 1;</code>
       */
      public Builder setKeyBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

      // required .akka.cluster.ddata.DataEnvelope envelope = 2;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
        if (envelopeBuilder_ == null) {
          return 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) == 0x00000002) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder>(
                  envelope_,
                  getParentForChildren(),
                  isClean());
          envelope_ = null;
        }
        return envelopeBuilder_;
      }

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

    static {
      defaultInstance = new Write(true);
      defaultInstance.initFields();
    }

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

  public interface EmptyOrBuilder
      extends akka.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Empty}
   */
  public static final class Empty extends
      akka.protobuf.GeneratedMessage
      implements EmptyOrBuilder {
    // Use Empty.newBuilder() to construct.
    private Empty(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Empty(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Empty defaultInstance;
    public static Empty getDefaultInstance() {
      return defaultInstance;
    }

    public Empty getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Empty(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Empty_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<Empty> PARSER =
        new akka.protobuf.AbstractParser<Empty>() {
      public Empty parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Empty(input, extensionRegistry);
      }
    };

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

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Empty}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.EmptyOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Empty_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Empty_descriptor;
      }

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

      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;
      }

      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;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Empty) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

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

    static {
      defaultInstance = new Empty(true);
      defaultInstance.initFields();
    }

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

  public interface ReadOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string key = 1;
    /**
     * <code>required string key = 1;</code>
     */
    boolean hasKey();
    /**
     * <code>required string key = 1;</code>
     */
    java.lang.String getKey();
    /**
     * <code>required string key = 1;</code>
     */
    akka.protobuf.ByteString
        getKeyBytes();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Read}
   */
  public static final class Read extends
      akka.protobuf.GeneratedMessage
      implements ReadOrBuilder {
    // Use Read.newBuilder() to construct.
    private Read(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Read(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Read defaultInstance;
    public static Read getDefaultInstance() {
      return defaultInstance;
    }

    public Read getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Read(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              key_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Read_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<Read> PARSER =
        new akka.protobuf.AbstractParser<Read>() {
      public Read parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Read(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required string key = 1;
    public static final int KEY_FIELD_NUMBER = 1;
    private java.lang.Object key_;
    /**
     * <code>required string key = 1;</code>
     */
    public boolean hasKey() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string key = 1;</code>
     */
    public java.lang.String getKey() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          key_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string key = 1;</code>
     */
    public akka.protobuf.ByteString
        getKeyBytes() {
      java.lang.Object ref = key_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        key_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      key_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getKeyBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getKeyBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Read prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Read}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Read_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        key_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Read_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.key_ = key_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasKey()) {
          
          return false;
        }
        return true;
      }

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

      // required string key = 1;
      private java.lang.Object key_ = "";
      /**
       * <code>required string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          key_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      public akka.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      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>
       */
      public Builder clearKey() {
        bitField0_ = (bitField0_ & ~0x00000001);
        key_ = getDefaultInstance().getKey();
        onChanged();
        return this;
      }
      /**
       * <code>required string key = 1;</code>
       */
      public Builder setKeyBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        key_ = value;
        onChanged();
        return this;
      }

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

    static {
      defaultInstance = new Read(true);
      defaultInstance.initFields();
    }

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

  public interface ReadResultOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // optional .akka.cluster.ddata.DataEnvelope envelope = 1;
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     */
    boolean hasEnvelope();
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     */
    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.protobuf.GeneratedMessage
      implements ReadResultOrBuilder {
    // Use ReadResult.newBuilder() to construct.
    private ReadResult(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private ReadResult(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final ReadResult defaultInstance;
    public static ReadResult getDefaultInstance() {
      return defaultInstance;
    }

    public ReadResult getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private ReadResult(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_ReadResult_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<ReadResult> PARSER =
        new akka.protobuf.AbstractParser<ReadResult>() {
      public ReadResult parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new ReadResult(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // optional .akka.cluster.ddata.DataEnvelope envelope = 1;
    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>
     */
    public boolean hasEnvelope() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
      return envelope_;
    }
    /**
     * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
      return envelope_;
    }

    private void initFields() {
      envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, envelope_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, envelope_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResult prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.ReadResult}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.ReadResultOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_ReadResult_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEnvelopeFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (envelopeBuilder_ == null) {
          envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
        } else {
          envelopeBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_ReadResult_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (envelopeBuilder_ == null) {
          result.envelope_ = envelope_;
        } else {
          result.envelope_ = envelopeBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

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

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

      // optional .akka.cluster.ddata.DataEnvelope envelope = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
        if (envelopeBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.DataEnvelope envelope = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder>(
                  envelope_,
                  getParentForChildren(),
                  isClean());
          envelope_ = null;
        }
        return envelopeBuilder_;
      }

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

    static {
      defaultInstance = new ReadResult(true);
      defaultInstance.initFields();
    }

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

  public interface DataEnvelopeOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage data = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    boolean hasData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    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();

    // repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;
    /**
     * <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);

    // optional .akka.cluster.ddata.VersionVector deltaVersions = 3;
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     */
    boolean hasDeltaVersions();
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     */
    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.protobuf.GeneratedMessage
      implements DataEnvelopeOrBuilder {
    // Use DataEnvelope.newBuilder() to construct.
    private DataEnvelope(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DataEnvelope(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final DataEnvelope defaultInstance;
    public static DataEnvelope getDefaultInstance() {
      return defaultInstance;
    }

    public DataEnvelope getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private DataEnvelope(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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) == 0x00000002)) {
                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) == 0x00000002)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          pruning_ = java.util.Collections.unmodifiableList(pruning_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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 static akka.protobuf.Parser<DataEnvelope> PARSER =
        new akka.protobuf.AbstractParser<DataEnvelope>() {
      public DataEnvelope parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new DataEnvelope(input, extensionRegistry);
      }
    };

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

    public interface PruningEntryOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required .akka.cluster.ddata.UniqueAddress removedAddress = 1;
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       */
      boolean hasRemovedAddress();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       */
      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();

      // required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       */
      boolean hasOwnerAddress();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       */
      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();

      // required bool performed = 3;
      /**
       * <code>required bool performed = 3;</code>
       */
      boolean hasPerformed();
      /**
       * <code>required bool performed = 3;</code>
       */
      boolean getPerformed();

      // repeated .akka.cluster.ddata.Address seen = 4;
      /**
       * <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);

      // optional sint64 obsoleteTime = 5;
      /**
       * <code>optional sint64 obsoleteTime = 5;</code>
       */
      boolean hasObsoleteTime();
      /**
       * <code>optional sint64 obsoleteTime = 5;</code>
       */
      long getObsoleteTime();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DataEnvelope.PruningEntry}
     */
    public static final class PruningEntry extends
        akka.protobuf.GeneratedMessage
        implements PruningEntryOrBuilder {
      // Use PruningEntry.newBuilder() to construct.
      private PruningEntry(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private PruningEntry(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final PruningEntry defaultInstance;
      public static PruningEntry getDefaultInstance() {
        return defaultInstance;
      }

      public PruningEntry getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final akka.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final akka.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private PruningEntry(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        akka.protobuf.UnknownFieldSet.Builder unknownFields =
            akka.protobuf.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;
              }
              case 10: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  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) == 0x00000002)) {
                  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) == 0x00000008)) {
                  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;
              }
            }
          }
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
            seen_ = java.util.Collections.unmodifiableList(seen_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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);
      }

      public static akka.protobuf.Parser<PruningEntry> PARSER =
          new akka.protobuf.AbstractParser<PruningEntry>() {
        public PruningEntry parsePartialFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws akka.protobuf.InvalidProtocolBufferException {
          return new PruningEntry(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      // required .akka.cluster.ddata.UniqueAddress removedAddress = 1;
      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>
       */
      public boolean hasRemovedAddress() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getRemovedAddress() {
        return removedAddress_;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getRemovedAddressOrBuilder() {
        return removedAddress_;
      }

      // required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;
      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>
       */
      public boolean hasOwnerAddress() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getOwnerAddress() {
        return ownerAddress_;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getOwnerAddressOrBuilder() {
        return ownerAddress_;
      }

      // required bool performed = 3;
      public static final int PERFORMED_FIELD_NUMBER = 3;
      private boolean performed_;
      /**
       * <code>required bool performed = 3;</code>
       */
      public boolean hasPerformed() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required bool performed = 3;</code>
       */
      public boolean getPerformed() {
        return performed_;
      }

      // repeated .akka.cluster.ddata.Address seen = 4;
      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);
      }

      // optional sint64 obsoleteTime = 5;
      public static final int OBSOLETETIME_FIELD_NUMBER = 5;
      private long obsoleteTime_;
      /**
       * <code>optional sint64 obsoleteTime = 5;</code>
       */
      public boolean hasObsoleteTime() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * <code>optional sint64 obsoleteTime = 5;</code>
       */
      public long getObsoleteTime() {
        return obsoleteTime_;
      }

      private void initFields() {
        removedAddress_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
        ownerAddress_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
        performed_ = false;
        seen_ = java.util.Collections.emptyList();
        obsoleteTime_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        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;
      }

      public void writeTo(akka.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, removedAddress_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, ownerAddress_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBool(3, performed_);
        }
        for (int i = 0; i < seen_.size(); i++) {
          output.writeMessage(4, seen_.get(i));
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeSInt64(5, obsoleteTime_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(1, removedAddress_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(2, ownerAddress_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += akka.protobuf.CodedOutputStream
            .computeBoolSize(3, performed_);
        }
        for (int i = 0; i < seen_.size(); i++) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(4, seen_.get(i));
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += akka.protobuf.CodedOutputStream
            .computeSInt64Size(5, obsoleteTime_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.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 PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntry prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.DataEnvelope.PruningEntry}
       */
      public static final class Builder extends
          akka.protobuf.GeneratedMessage.Builder<Builder>
         implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.PruningEntryOrBuilder {
        public static final akka.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor;
        }

        protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getRemovedAddressFieldBuilder();
            getOwnerAddressFieldBuilder();
            getSeenFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          if (removedAddressBuilder_ == null) {
            removedAddress_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
          } else {
            removedAddressBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          if (ownerAddressBuilder_ == null) {
            ownerAddress_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
          } 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;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor;
        }

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

        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;
        }

        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) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (removedAddressBuilder_ == null) {
            result.removedAddress_ = removedAddress_;
          } else {
            result.removedAddress_ = removedAddressBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (ownerAddressBuilder_ == null) {
            result.ownerAddress_ = ownerAddress_;
          } else {
            result.ownerAddress_ = ownerAddressBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.performed_ = performed_;
          if (seenBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              seen_ = java.util.Collections.unmodifiableList(seen_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.seen_ = seen_;
          } else {
            result.seen_ = seenBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000008;
          }
          result.obsoleteTime_ = obsoleteTime_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getSeenFieldBuilder() : null;
              } else {
                seenBuilder_.addAllMessages(other.seen_);
              }
            }
          }
          if (other.hasObsoleteTime()) {
            setObsoleteTime(other.getObsoleteTime());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        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;
        }

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

        // required .akka.cluster.ddata.UniqueAddress removedAddress = 1;
        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress removedAddress_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
        private akka.protobuf.SingleFieldBuilder<
            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>
         */
        public boolean hasRemovedAddress() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getRemovedAddress() {
          if (removedAddressBuilder_ == null) {
            return 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) == 0x00000001) &&
                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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
            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_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress removedAddress = 1;</code>
         */
        private akka.protobuf.SingleFieldBuilder<
            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.protobuf.SingleFieldBuilder<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                    removedAddress_,
                    getParentForChildren(),
                    isClean());
            removedAddress_ = null;
          }
          return removedAddressBuilder_;
        }

        // required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;
        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress ownerAddress_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
        private akka.protobuf.SingleFieldBuilder<
            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>
         */
        public boolean hasOwnerAddress() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getOwnerAddress() {
          if (ownerAddressBuilder_ == null) {
            return 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) == 0x00000002) &&
                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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
            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_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress ownerAddress = 2;</code>
         */
        private akka.protobuf.SingleFieldBuilder<
            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.protobuf.SingleFieldBuilder<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                    ownerAddress_,
                    getParentForChildren(),
                    isClean());
            ownerAddress_ = null;
          }
          return ownerAddressBuilder_;
        }

        // required bool performed = 3;
        private boolean performed_ ;
        /**
         * <code>required bool performed = 3;</code>
         */
        public boolean hasPerformed() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>required bool performed = 3;</code>
         */
        public boolean getPerformed() {
          return performed_;
        }
        /**
         * <code>required bool performed = 3;</code>
         */
        public Builder setPerformed(boolean value) {
          bitField0_ |= 0x00000004;
          performed_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required bool performed = 3;</code>
         */
        public Builder clearPerformed() {
          bitField0_ = (bitField0_ & ~0x00000004);
          performed_ = false;
          onChanged();
          return this;
        }

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

        private akka.protobuf.RepeatedFieldBuilder<
            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();
            super.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.protobuf.RepeatedFieldBuilder<
            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.protobuf.RepeatedFieldBuilder<
                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) == 0x00000008),
                    getParentForChildren(),
                    isClean());
            seen_ = null;
          }
          return seenBuilder_;
        }

        // optional sint64 obsoleteTime = 5;
        private long obsoleteTime_ ;
        /**
         * <code>optional sint64 obsoleteTime = 5;</code>
         */
        public boolean hasObsoleteTime() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * <code>optional sint64 obsoleteTime = 5;</code>
         */
        public long getObsoleteTime() {
          return obsoleteTime_;
        }
        /**
         * <code>optional sint64 obsoleteTime = 5;</code>
         */
        public Builder setObsoleteTime(long value) {
          bitField0_ |= 0x00000010;
          obsoleteTime_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional sint64 obsoleteTime = 5;</code>
         */
        public Builder clearObsoleteTime() {
          bitField0_ = (bitField0_ & ~0x00000010);
          obsoleteTime_ = 0L;
          onChanged();
          return this;
        }

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

      static {
        defaultInstance = new PruningEntry(true);
        defaultInstance.initFields();
      }

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

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage data = 1;
    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>
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
      return data_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
      return data_;
    }

    // repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;
    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);
    }

    // optional .akka.cluster.ddata.VersionVector deltaVersions = 3;
    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>
     */
    public boolean hasDeltaVersions() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDeltaVersions() {
      return deltaVersions_;
    }
    /**
     * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder getDeltaVersionsOrBuilder() {
      return deltaVersions_;
    }

    private void initFields() {
      data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      pruning_ = java.util.Collections.emptyList();
      deltaVersions_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, data_);
      }
      for (int i = 0; i < pruning_.size(); i++) {
        output.writeMessage(2, pruning_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(3, deltaVersions_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, data_);
      }
      for (int i = 0; i < pruning_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, pruning_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(3, deltaVersions_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DataEnvelope}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDataFieldBuilder();
          getPruningFieldBuilder();
          getDeltaVersionsFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (dataBuilder_ == null) {
          data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (pruningBuilder_ == null) {
          pruning_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          pruningBuilder_.clear();
        }
        if (deltaVersionsBuilder_ == null) {
          deltaVersions_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance();
        } else {
          deltaVersionsBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DataEnvelope_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (dataBuilder_ == null) {
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.build();
        }
        if (pruningBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            pruning_ = java.util.Collections.unmodifiableList(pruning_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.pruning_ = pruning_;
        } else {
          result.pruning_ = pruningBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        if (deltaVersionsBuilder_ == null) {
          result.deltaVersions_ = deltaVersions_;
        } else {
          result.deltaVersions_ = deltaVersionsBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPruningFieldBuilder() : null;
            } else {
              pruningBuilder_.addAllMessages(other.pruning_);
            }
          }
        }
        if (other.hasDeltaVersions()) {
          mergeDeltaVersions(other.getDeltaVersions());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      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;
      }

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

      // required .akka.cluster.ddata.OtherMessage data = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
        if (dataBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

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

      private akka.protobuf.RepeatedFieldBuilder<
          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();
          super.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.protobuf.RepeatedFieldBuilder<
          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.protobuf.RepeatedFieldBuilder<
              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) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          pruning_ = null;
        }
        return pruningBuilder_;
      }

      // optional .akka.cluster.ddata.VersionVector deltaVersions = 3;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector deltaVersions_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasDeltaVersions() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDeltaVersions() {
        if (deltaVersionsBuilder_ == null) {
          return 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) == 0x00000004) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>optional .akka.cluster.ddata.VersionVector deltaVersions = 3;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder>(
                  deltaVersions_,
                  getParentForChildren(),
                  isClean());
          deltaVersions_ = null;
        }
        return deltaVersionsBuilder_;
      }

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

    static {
      defaultInstance = new DataEnvelope(true);
      defaultInstance.initFields();
    }

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

  public interface StatusOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required uint32 chunk = 1;
    /**
     * <code>required uint32 chunk = 1;</code>
     */
    boolean hasChunk();
    /**
     * <code>required uint32 chunk = 1;</code>
     */
    int getChunk();

    // required uint32 totChunks = 2;
    /**
     * <code>required uint32 totChunks = 2;</code>
     */
    boolean hasTotChunks();
    /**
     * <code>required uint32 totChunks = 2;</code>
     */
    int getTotChunks();

    // repeated .akka.cluster.ddata.Status.Entry entries = 3;
    /**
     * <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);
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Status}
   */
  public static final class Status extends
      akka.protobuf.GeneratedMessage
      implements StatusOrBuilder {
    // Use Status.newBuilder() to construct.
    private Status(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Status(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Status defaultInstance;
    public static Status getDefaultInstance() {
      return defaultInstance;
    }

    public Status getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Status(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              chunk_ = input.readUInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              totChunks_ = input.readUInt32();
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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 static akka.protobuf.Parser<Status> PARSER =
        new akka.protobuf.AbstractParser<Status>() {
      public Status parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Status(input, extensionRegistry);
      }
    };

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

    public interface EntryOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required string key = 1;
      /**
       * <code>required string key = 1;</code>
       */
      boolean hasKey();
      /**
       * <code>required string key = 1;</code>
       */
      java.lang.String getKey();
      /**
       * <code>required string key = 1;</code>
       */
      akka.protobuf.ByteString
          getKeyBytes();

      // required bytes digest = 2;
      /**
       * <code>required bytes digest = 2;</code>
       */
      boolean hasDigest();
      /**
       * <code>required bytes digest = 2;</code>
       */
      akka.protobuf.ByteString getDigest();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Status.Entry}
     */
    public static final class Entry extends
        akka.protobuf.GeneratedMessage
        implements EntryOrBuilder {
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Entry(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Entry defaultInstance;
      public static Entry getDefaultInstance() {
        return defaultInstance;
      }

      public Entry getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final akka.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final akka.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        akka.protobuf.UnknownFieldSet.Builder unknownFields =
            akka.protobuf.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;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                key_ = input.readBytes();
                break;
              }
              case 18: {
                bitField0_ |= 0x00000002;
                digest_ = input.readBytes();
                break;
              }
            }
          }
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_Entry_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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);
      }

      public static akka.protobuf.Parser<Entry> PARSER =
          new akka.protobuf.AbstractParser<Entry>() {
        public Entry parsePartialFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws akka.protobuf.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      // required string key = 1;
      public static final int KEY_FIELD_NUMBER = 1;
      private java.lang.Object key_;
      /**
       * <code>required string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobuf.ByteString bs = 
              (akka.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      public akka.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }

      // required bytes digest = 2;
      public static final int DIGEST_FIELD_NUMBER = 2;
      private akka.protobuf.ByteString digest_;
      /**
       * <code>required bytes digest = 2;</code>
       */
      public boolean hasDigest() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required bytes digest = 2;</code>
       */
      public akka.protobuf.ByteString getDigest() {
        return digest_;
      }

      private void initFields() {
        key_ = "";
        digest_ = akka.protobuf.ByteString.EMPTY;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

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

      public void writeTo(akka.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getKeyBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, digest_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += akka.protobuf.CodedOutputStream
            .computeBytesSize(1, getKeyBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += akka.protobuf.CodedOutputStream
            .computeBytesSize(2, digest_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.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 PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.Entry prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.Status.Entry}
       */
      public static final class Builder extends
          akka.protobuf.GeneratedMessage.Builder<Builder>
         implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status.EntryOrBuilder {
        public static final akka.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_Entry_descriptor;
        }

        protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          key_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          digest_ = akka.protobuf.ByteString.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_Entry_descriptor;
        }

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

        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;
        }

        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) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.digest_ = digest_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasKey()) {
            
            return false;
          }
          if (!hasDigest()) {
            
            return false;
          }
          return true;
        }

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

        // required string key = 1;
        private java.lang.Object key_ = "";
        /**
         * <code>required string key = 1;</code>
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required string key = 1;</code>
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((akka.protobuf.ByteString) ref)
                .toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         */
        public akka.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            akka.protobuf.ByteString b = 
                akka.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (akka.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         */
        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>
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         */
        public Builder setKeyBytes(
            akka.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }

        // required bytes digest = 2;
        private akka.protobuf.ByteString digest_ = akka.protobuf.ByteString.EMPTY;
        /**
         * <code>required bytes digest = 2;</code>
         */
        public boolean hasDigest() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required bytes digest = 2;</code>
         */
        public akka.protobuf.ByteString getDigest() {
          return digest_;
        }
        /**
         * <code>required bytes digest = 2;</code>
         */
        public Builder setDigest(akka.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          digest_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required bytes digest = 2;</code>
         */
        public Builder clearDigest() {
          bitField0_ = (bitField0_ & ~0x00000002);
          digest_ = getDefaultInstance().getDigest();
          onChanged();
          return this;
        }

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

      static {
        defaultInstance = new Entry(true);
        defaultInstance.initFields();
      }

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

    private int bitField0_;
    // required uint32 chunk = 1;
    public static final int CHUNK_FIELD_NUMBER = 1;
    private int chunk_;
    /**
     * <code>required uint32 chunk = 1;</code>
     */
    public boolean hasChunk() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required uint32 chunk = 1;</code>
     */
    public int getChunk() {
      return chunk_;
    }

    // required uint32 totChunks = 2;
    public static final int TOTCHUNKS_FIELD_NUMBER = 2;
    private int totChunks_;
    /**
     * <code>required uint32 totChunks = 2;</code>
     */
    public boolean hasTotChunks() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 totChunks = 2;</code>
     */
    public int getTotChunks() {
      return totChunks_;
    }

    // repeated .akka.cluster.ddata.Status.Entry entries = 3;
    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);
    }

    private void initFields() {
      chunk_ = 0;
      totChunks_ = 0;
      entries_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeUInt32(1, chunk_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, totChunks_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(3, entries_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(1, chunk_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(2, totChunks_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(3, entries_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Status prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Status}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StatusOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEntriesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      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();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Status_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.chunk_ = chunk_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.totChunks_ = totChunks_;
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000004);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      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;
      }

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

      // required uint32 chunk = 1;
      private int chunk_ ;
      /**
       * <code>required uint32 chunk = 1;</code>
       */
      public boolean hasChunk() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required uint32 chunk = 1;</code>
       */
      public int getChunk() {
        return chunk_;
      }
      /**
       * <code>required uint32 chunk = 1;</code>
       */
      public Builder setChunk(int value) {
        bitField0_ |= 0x00000001;
        chunk_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 chunk = 1;</code>
       */
      public Builder clearChunk() {
        bitField0_ = (bitField0_ & ~0x00000001);
        chunk_ = 0;
        onChanged();
        return this;
      }

      // required uint32 totChunks = 2;
      private int totChunks_ ;
      /**
       * <code>required uint32 totChunks = 2;</code>
       */
      public boolean hasTotChunks() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 totChunks = 2;</code>
       */
      public int getTotChunks() {
        return totChunks_;
      }
      /**
       * <code>required uint32 totChunks = 2;</code>
       */
      public Builder setTotChunks(int value) {
        bitField0_ |= 0x00000002;
        totChunks_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 totChunks = 2;</code>
       */
      public Builder clearTotChunks() {
        bitField0_ = (bitField0_ & ~0x00000002);
        totChunks_ = 0;
        onChanged();
        return this;
      }

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

      private akka.protobuf.RepeatedFieldBuilder<
          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();
          super.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.protobuf.RepeatedFieldBuilder<
          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.protobuf.RepeatedFieldBuilder<
              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) == 0x00000004),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

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

    static {
      defaultInstance = new Status(true);
      defaultInstance.initFields();
    }

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

  public interface GossipOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required bool sendBack = 1;
    /**
     * <code>required bool sendBack = 1;</code>
     */
    boolean hasSendBack();
    /**
     * <code>required bool sendBack = 1;</code>
     */
    boolean getSendBack();

    // repeated .akka.cluster.ddata.Gossip.Entry entries = 2;
    /**
     * <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);
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Gossip}
   */
  public static final class Gossip extends
      akka.protobuf.GeneratedMessage
      implements GossipOrBuilder {
    // Use Gossip.newBuilder() to construct.
    private Gossip(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Gossip(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Gossip defaultInstance;
    public static Gossip getDefaultInstance() {
      return defaultInstance;
    }

    public Gossip getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Gossip(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sendBack_ = input.readBool();
              break;
            }
            case 18: {
              if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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 static akka.protobuf.Parser<Gossip> PARSER =
        new akka.protobuf.AbstractParser<Gossip>() {
      public Gossip parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Gossip(input, extensionRegistry);
      }
    };

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

    public interface EntryOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required string key = 1;
      /**
       * <code>required string key = 1;</code>
       */
      boolean hasKey();
      /**
       * <code>required string key = 1;</code>
       */
      java.lang.String getKey();
      /**
       * <code>required string key = 1;</code>
       */
      akka.protobuf.ByteString
          getKeyBytes();

      // required .akka.cluster.ddata.DataEnvelope envelope = 2;
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      boolean hasEnvelope();
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      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.protobuf.GeneratedMessage
        implements EntryOrBuilder {
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Entry(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Entry defaultInstance;
      public static Entry getDefaultInstance() {
        return defaultInstance;
      }

      public Entry getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final akka.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final akka.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        akka.protobuf.UnknownFieldSet.Builder unknownFields =
            akka.protobuf.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;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                key_ = input.readBytes();
                break;
              }
              case 18: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  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;
              }
            }
          }
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_Entry_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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);
      }

      public static akka.protobuf.Parser<Entry> PARSER =
          new akka.protobuf.AbstractParser<Entry>() {
        public Entry parsePartialFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws akka.protobuf.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      // required string key = 1;
      public static final int KEY_FIELD_NUMBER = 1;
      private java.lang.Object key_;
      /**
       * <code>required string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobuf.ByteString bs = 
              (akka.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      public akka.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }

      // required .akka.cluster.ddata.DataEnvelope envelope = 2;
      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>
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
        return envelope_;
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
        return envelope_;
      }

      private void initFields() {
        key_ = "";
        envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

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

      public void writeTo(akka.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getKeyBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, envelope_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += akka.protobuf.CodedOutputStream
            .computeBytesSize(1, getKeyBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(2, envelope_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.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 PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.Entry prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.Gossip.Entry}
       */
      public static final class Builder extends
          akka.protobuf.GeneratedMessage.Builder<Builder>
         implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip.EntryOrBuilder {
        public static final akka.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_Entry_descriptor;
        }

        protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getEnvelopeFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          key_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          if (envelopeBuilder_ == null) {
            envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
          } else {
            envelopeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_Entry_descriptor;
        }

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

        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;
        }

        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) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (envelopeBuilder_ == null) {
            result.envelope_ = envelope_;
          } else {
            result.envelope_ = envelopeBuilder_.build();
          }
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
          return this;
        }

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

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

        // required string key = 1;
        private java.lang.Object key_ = "";
        /**
         * <code>required string key = 1;</code>
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required string key = 1;</code>
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((akka.protobuf.ByteString) ref)
                .toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         */
        public akka.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            akka.protobuf.ByteString b = 
                akka.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (akka.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         */
        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>
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         */
        public Builder setKeyBytes(
            akka.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }

        // required .akka.cluster.ddata.DataEnvelope envelope = 2;
        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
        private akka.protobuf.SingleFieldBuilder<
            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>
         */
        public boolean hasEnvelope() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
          if (envelopeBuilder_ == null) {
            return 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) == 0x00000002) &&
                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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
            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_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        private akka.protobuf.SingleFieldBuilder<
            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.protobuf.SingleFieldBuilder<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder>(
                    envelope_,
                    getParentForChildren(),
                    isClean());
            envelope_ = null;
          }
          return envelopeBuilder_;
        }

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

      static {
        defaultInstance = new Entry(true);
        defaultInstance.initFields();
      }

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

    private int bitField0_;
    // required bool sendBack = 1;
    public static final int SENDBACK_FIELD_NUMBER = 1;
    private boolean sendBack_;
    /**
     * <code>required bool sendBack = 1;</code>
     */
    public boolean hasSendBack() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bool sendBack = 1;</code>
     */
    public boolean getSendBack() {
      return sendBack_;
    }

    // repeated .akka.cluster.ddata.Gossip.Entry entries = 2;
    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);
    }

    private void initFields() {
      sendBack_ = false;
      entries_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBool(1, sendBack_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(2, entries_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBoolSize(1, sendBack_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Gossip prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Gossip}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.GossipOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEntriesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sendBack_ = false;
        bitField0_ = (bitField0_ & ~0x00000001);
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Gossip_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sendBack_ = sendBack_;
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

      // required bool sendBack = 1;
      private boolean sendBack_ ;
      /**
       * <code>required bool sendBack = 1;</code>
       */
      public boolean hasSendBack() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bool sendBack = 1;</code>
       */
      public boolean getSendBack() {
        return sendBack_;
      }
      /**
       * <code>required bool sendBack = 1;</code>
       */
      public Builder setSendBack(boolean value) {
        bitField0_ |= 0x00000001;
        sendBack_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bool sendBack = 1;</code>
       */
      public Builder clearSendBack() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sendBack_ = false;
        onChanged();
        return this;
      }

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

      private akka.protobuf.RepeatedFieldBuilder<
          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();
          super.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.protobuf.RepeatedFieldBuilder<
          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.protobuf.RepeatedFieldBuilder<
              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) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

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

    static {
      defaultInstance = new Gossip(true);
      defaultInstance.initFields();
    }

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

  public interface DeltaPropagationOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.UniqueAddress fromNode = 1;
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     */
    boolean hasFromNode();
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     */
    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();

    // repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;
    /**
     * <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);

    // optional bool reply = 3;
    /**
     * <code>optional bool reply = 3;</code>
     *
     * <pre>
     * no reply if not set 
     * </pre>
     */
    boolean hasReply();
    /**
     * <code>optional bool reply = 3;</code>
     *
     * <pre>
     * no reply if not set 
     * </pre>
     */
    boolean getReply();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.DeltaPropagation}
   */
  public static final class DeltaPropagation extends
      akka.protobuf.GeneratedMessage
      implements DeltaPropagationOrBuilder {
    // Use DeltaPropagation.newBuilder() to construct.
    private DeltaPropagation(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DeltaPropagation(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final DeltaPropagation defaultInstance;
    public static DeltaPropagation getDefaultInstance() {
      return defaultInstance;
    }

    public DeltaPropagation getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private DeltaPropagation(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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) == 0x00000002)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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 static akka.protobuf.Parser<DeltaPropagation> PARSER =
        new akka.protobuf.AbstractParser<DeltaPropagation>() {
      public DeltaPropagation parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new DeltaPropagation(input, extensionRegistry);
      }
    };

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

    public interface EntryOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required string key = 1;
      /**
       * <code>required string key = 1;</code>
       */
      boolean hasKey();
      /**
       * <code>required string key = 1;</code>
       */
      java.lang.String getKey();
      /**
       * <code>required string key = 1;</code>
       */
      akka.protobuf.ByteString
          getKeyBytes();

      // required .akka.cluster.ddata.DataEnvelope envelope = 2;
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      boolean hasEnvelope();
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      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();

      // required int64 fromSeqNr = 3;
      /**
       * <code>required int64 fromSeqNr = 3;</code>
       */
      boolean hasFromSeqNr();
      /**
       * <code>required int64 fromSeqNr = 3;</code>
       */
      long getFromSeqNr();

      // optional int64 toSeqNr = 4;
      /**
       * <code>optional int64 toSeqNr = 4;</code>
       *
       * <pre>
       * if not set then same as fromSequenceNr
       * </pre>
       */
      boolean hasToSeqNr();
      /**
       * <code>optional int64 toSeqNr = 4;</code>
       *
       * <pre>
       * if not set then same as fromSequenceNr
       * </pre>
       */
      long getToSeqNr();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DeltaPropagation.Entry}
     */
    public static final class Entry extends
        akka.protobuf.GeneratedMessage
        implements EntryOrBuilder {
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Entry(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Entry defaultInstance;
      public static Entry getDefaultInstance() {
        return defaultInstance;
      }

      public Entry getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final akka.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final akka.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        akka.protobuf.UnknownFieldSet.Builder unknownFields =
            akka.protobuf.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;
              }
              case 10: {
                bitField0_ |= 0x00000001;
                key_ = input.readBytes();
                break;
              }
              case 18: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder subBuilder = null;
                if (((bitField0_ & 0x00000002) == 0x00000002)) {
                  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;
              }
            }
          }
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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);
      }

      public static akka.protobuf.Parser<Entry> PARSER =
          new akka.protobuf.AbstractParser<Entry>() {
        public Entry parsePartialFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws akka.protobuf.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      // required string key = 1;
      public static final int KEY_FIELD_NUMBER = 1;
      private java.lang.Object key_;
      /**
       * <code>required string key = 1;</code>
       */
      public boolean hasKey() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string key = 1;</code>
       */
      public java.lang.String getKey() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          akka.protobuf.ByteString bs = 
              (akka.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            key_ = s;
          }
          return s;
        }
      }
      /**
       * <code>required string key = 1;</code>
       */
      public akka.protobuf.ByteString
          getKeyBytes() {
        java.lang.Object ref = key_;
        if (ref instanceof java.lang.String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          key_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }

      // required .akka.cluster.ddata.DataEnvelope envelope = 2;
      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>
       */
      public boolean hasEnvelope() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
        return envelope_;
      }
      /**
       * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder getEnvelopeOrBuilder() {
        return envelope_;
      }

      // required int64 fromSeqNr = 3;
      public static final int FROMSEQNR_FIELD_NUMBER = 3;
      private long fromSeqNr_;
      /**
       * <code>required int64 fromSeqNr = 3;</code>
       */
      public boolean hasFromSeqNr() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>required int64 fromSeqNr = 3;</code>
       */
      public long getFromSeqNr() {
        return fromSeqNr_;
      }

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

      private void initFields() {
        key_ = "";
        envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
        fromSeqNr_ = 0L;
        toSeqNr_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        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;
      }

      public void writeTo(akka.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getKeyBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeMessage(2, envelope_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt64(3, fromSeqNr_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeInt64(4, toSeqNr_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += akka.protobuf.CodedOutputStream
            .computeBytesSize(1, getKeyBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(2, envelope_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += akka.protobuf.CodedOutputStream
            .computeInt64Size(3, fromSeqNr_);
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += akka.protobuf.CodedOutputStream
            .computeInt64Size(4, toSeqNr_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.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 PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.Entry prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.DeltaPropagation.Entry}
       */
      public static final class Builder extends
          akka.protobuf.GeneratedMessage.Builder<Builder>
         implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation.EntryOrBuilder {
        public static final akka.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor;
        }

        protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getEnvelopeFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          key_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          if (envelopeBuilder_ == null) {
            envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
          } else {
            envelopeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000002);
          fromSeqNr_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000004);
          toSeqNr_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor;
        }

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

        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;
        }

        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) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.key_ = key_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          if (envelopeBuilder_ == null) {
            result.envelope_ = envelope_;
          } else {
            result.envelope_ = envelopeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.fromSeqNr_ = fromSeqNr_;
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000008;
          }
          result.toSeqNr_ = toSeqNr_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
          return this;
        }

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

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

        // required string key = 1;
        private java.lang.Object key_ = "";
        /**
         * <code>required string key = 1;</code>
         */
        public boolean hasKey() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required string key = 1;</code>
         */
        public java.lang.String getKey() {
          java.lang.Object ref = key_;
          if (!(ref instanceof java.lang.String)) {
            java.lang.String s = ((akka.protobuf.ByteString) ref)
                .toStringUtf8();
            key_ = s;
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         */
        public akka.protobuf.ByteString
            getKeyBytes() {
          java.lang.Object ref = key_;
          if (ref instanceof String) {
            akka.protobuf.ByteString b = 
                akka.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            key_ = b;
            return b;
          } else {
            return (akka.protobuf.ByteString) ref;
          }
        }
        /**
         * <code>required string key = 1;</code>
         */
        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>
         */
        public Builder clearKey() {
          bitField0_ = (bitField0_ & ~0x00000001);
          key_ = getDefaultInstance().getKey();
          onChanged();
          return this;
        }
        /**
         * <code>required string key = 1;</code>
         */
        public Builder setKeyBytes(
            akka.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          key_ = value;
          onChanged();
          return this;
        }

        // required .akka.cluster.ddata.DataEnvelope envelope = 2;
        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope envelope_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
        private akka.protobuf.SingleFieldBuilder<
            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>
         */
        public boolean hasEnvelope() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope getEnvelope() {
          if (envelopeBuilder_ == null) {
            return 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) == 0x00000002) &&
                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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.getDefaultInstance();
            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_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.DataEnvelope envelope = 2;</code>
         */
        private akka.protobuf.SingleFieldBuilder<
            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.protobuf.SingleFieldBuilder<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelope.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DataEnvelopeOrBuilder>(
                    envelope_,
                    getParentForChildren(),
                    isClean());
            envelope_ = null;
          }
          return envelopeBuilder_;
        }

        // required int64 fromSeqNr = 3;
        private long fromSeqNr_ ;
        /**
         * <code>required int64 fromSeqNr = 3;</code>
         */
        public boolean hasFromSeqNr() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * <code>required int64 fromSeqNr = 3;</code>
         */
        public long getFromSeqNr() {
          return fromSeqNr_;
        }
        /**
         * <code>required int64 fromSeqNr = 3;</code>
         */
        public Builder setFromSeqNr(long value) {
          bitField0_ |= 0x00000004;
          fromSeqNr_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 fromSeqNr = 3;</code>
         */
        public Builder clearFromSeqNr() {
          bitField0_ = (bitField0_ & ~0x00000004);
          fromSeqNr_ = 0L;
          onChanged();
          return this;
        }

        // optional int64 toSeqNr = 4;
        private long toSeqNr_ ;
        /**
         * <code>optional int64 toSeqNr = 4;</code>
         *
         * <pre>
         * if not set then same as fromSequenceNr
         * </pre>
         */
        public boolean hasToSeqNr() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * <code>optional int64 toSeqNr = 4;</code>
         *
         * <pre>
         * if not set then same as fromSequenceNr
         * </pre>
         */
        public long getToSeqNr() {
          return toSeqNr_;
        }
        /**
         * <code>optional int64 toSeqNr = 4;</code>
         *
         * <pre>
         * if not set then same as fromSequenceNr
         * </pre>
         */
        public Builder setToSeqNr(long value) {
          bitField0_ |= 0x00000008;
          toSeqNr_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>optional int64 toSeqNr = 4;</code>
         *
         * <pre>
         * if not set then same as fromSequenceNr
         * </pre>
         */
        public Builder clearToSeqNr() {
          bitField0_ = (bitField0_ & ~0x00000008);
          toSeqNr_ = 0L;
          onChanged();
          return this;
        }

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

      static {
        defaultInstance = new Entry(true);
        defaultInstance.initFields();
      }

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

    private int bitField0_;
    // required .akka.cluster.ddata.UniqueAddress fromNode = 1;
    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>
     */
    public boolean hasFromNode() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode() {
      return fromNode_;
    }
    /**
     * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getFromNodeOrBuilder() {
      return fromNode_;
    }

    // repeated .akka.cluster.ddata.DeltaPropagation.Entry entries = 2;
    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);
    }

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

    private void initFields() {
      fromNode_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
      entries_ = java.util.Collections.emptyList();
      reply_ = false;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, fromNode_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(2, entries_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBool(3, reply_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, fromNode_);
      }
      for (int i = 0; i < entries_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, entries_.get(i));
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeBoolSize(3, reply_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagation prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DeltaPropagation}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DeltaPropagationOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getFromNodeFieldBuilder();
          getEntriesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (fromNodeBuilder_ == null) {
          fromNode_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
        } 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;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DeltaPropagation_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (fromNodeBuilder_ == null) {
          result.fromNode_ = fromNode_;
        } else {
          result.fromNode_ = fromNodeBuilder_.build();
        }
        if (entriesBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000002;
        }
        result.reply_ = reply_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        if (other.hasReply()) {
          setReply(other.getReply());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      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;
      }

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

      // required .akka.cluster.ddata.UniqueAddress fromNode = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress fromNode_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasFromNode() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getFromNode() {
        if (fromNodeBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress fromNode = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                  fromNode_,
                  getParentForChildren(),
                  isClean());
          fromNode_ = null;
        }
        return fromNodeBuilder_;
      }

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

      private akka.protobuf.RepeatedFieldBuilder<
          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();
          super.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.protobuf.RepeatedFieldBuilder<
          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.protobuf.RepeatedFieldBuilder<
              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) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

      // optional bool reply = 3;
      private boolean reply_ ;
      /**
       * <code>optional bool reply = 3;</code>
       *
       * <pre>
       * no reply if not set 
       * </pre>
       */
      public boolean hasReply() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bool reply = 3;</code>
       *
       * <pre>
       * no reply if not set 
       * </pre>
       */
      public boolean getReply() {
        return reply_;
      }
      /**
       * <code>optional bool reply = 3;</code>
       *
       * <pre>
       * no reply if not set 
       * </pre>
       */
      public Builder setReply(boolean value) {
        bitField0_ |= 0x00000004;
        reply_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bool reply = 3;</code>
       *
       * <pre>
       * no reply if not set 
       * </pre>
       */
      public Builder clearReply() {
        bitField0_ = (bitField0_ & ~0x00000004);
        reply_ = false;
        onChanged();
        return this;
      }

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

    static {
      defaultInstance = new DeltaPropagation(true);
      defaultInstance.initFields();
    }

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

  public interface UniqueAddressOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.Address address = 1;
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     */
    boolean hasAddress();
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     */
    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();

    // required sfixed32 uid = 2;
    /**
     * <code>required sfixed32 uid = 2;</code>
     */
    boolean hasUid();
    /**
     * <code>required sfixed32 uid = 2;</code>
     */
    int getUid();

    // optional sfixed32 uid2 = 3;
    /**
     * <code>optional sfixed32 uid2 = 3;</code>
     *
     * <pre>
     * 64 bit uids but with backward wire compatibility
     * </pre>
     */
    boolean hasUid2();
    /**
     * <code>optional sfixed32 uid2 = 3;</code>
     *
     * <pre>
     * 64 bit uids but with backward wire compatibility
     * </pre>
     */
    int getUid2();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.UniqueAddress}
   */
  public static final class UniqueAddress extends
      akka.protobuf.GeneratedMessage
      implements UniqueAddressOrBuilder {
    // Use UniqueAddress.newBuilder() to construct.
    private UniqueAddress(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private UniqueAddress(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final UniqueAddress defaultInstance;
    public static UniqueAddress getDefaultInstance() {
      return defaultInstance;
    }

    public UniqueAddress getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private UniqueAddress(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_UniqueAddress_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<UniqueAddress> PARSER =
        new akka.protobuf.AbstractParser<UniqueAddress>() {
      public UniqueAddress parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new UniqueAddress(input, extensionRegistry);
      }
    };

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

    private int bitField0_;
    // required .akka.cluster.ddata.Address address = 1;
    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>
     */
    public boolean hasAddress() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getAddress() {
      return address_;
    }
    /**
     * <code>required .akka.cluster.ddata.Address address = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder getAddressOrBuilder() {
      return address_;
    }

    // required sfixed32 uid = 2;
    public static final int UID_FIELD_NUMBER = 2;
    private int uid_;
    /**
     * <code>required sfixed32 uid = 2;</code>
     */
    public boolean hasUid() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required sfixed32 uid = 2;</code>
     */
    public int getUid() {
      return uid_;
    }

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

    private void initFields() {
      address_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance();
      uid_ = 0;
      uid2_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, address_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeSFixed32(2, uid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeSFixed32(3, uid2_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, address_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeSFixed32Size(2, uid_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeSFixed32Size(3, uid2_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.UniqueAddress}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_UniqueAddress_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getAddressFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (addressBuilder_ == null) {
          address_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance();
        } else {
          addressBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        uid_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        uid2_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_UniqueAddress_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (addressBuilder_ == null) {
          result.address_ = address_;
        } else {
          result.address_ = addressBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.uid_ = uid_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.uid2_ = uid2_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

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

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

      // required .akka.cluster.ddata.Address address = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address address_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasAddress() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address getAddress() {
        if (addressBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.Address address = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder>(
                  address_,
                  getParentForChildren(),
                  isClean());
          address_ = null;
        }
        return addressBuilder_;
      }

      // required sfixed32 uid = 2;
      private int uid_ ;
      /**
       * <code>required sfixed32 uid = 2;</code>
       */
      public boolean hasUid() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required sfixed32 uid = 2;</code>
       */
      public int getUid() {
        return uid_;
      }
      /**
       * <code>required sfixed32 uid = 2;</code>
       */
      public Builder setUid(int value) {
        bitField0_ |= 0x00000002;
        uid_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required sfixed32 uid = 2;</code>
       */
      public Builder clearUid() {
        bitField0_ = (bitField0_ & ~0x00000002);
        uid_ = 0;
        onChanged();
        return this;
      }

      // optional sfixed32 uid2 = 3;
      private int uid2_ ;
      /**
       * <code>optional sfixed32 uid2 = 3;</code>
       *
       * <pre>
       * 64 bit uids but with backward wire compatibility
       * </pre>
       */
      public boolean hasUid2() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional sfixed32 uid2 = 3;</code>
       *
       * <pre>
       * 64 bit uids but with backward wire compatibility
       * </pre>
       */
      public int getUid2() {
        return uid2_;
      }
      /**
       * <code>optional sfixed32 uid2 = 3;</code>
       *
       * <pre>
       * 64 bit uids but with backward wire compatibility
       * </pre>
       */
      public Builder setUid2(int value) {
        bitField0_ |= 0x00000004;
        uid2_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional sfixed32 uid2 = 3;</code>
       *
       * <pre>
       * 64 bit uids but with backward wire compatibility
       * </pre>
       */
      public Builder clearUid2() {
        bitField0_ = (bitField0_ & ~0x00000004);
        uid2_ = 0;
        onChanged();
        return this;
      }

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

    static {
      defaultInstance = new UniqueAddress(true);
      defaultInstance.initFields();
    }

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

  public interface AddressOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required string hostname = 1;
    /**
     * <code>required string hostname = 1;</code>
     */
    boolean hasHostname();
    /**
     * <code>required string hostname = 1;</code>
     */
    java.lang.String getHostname();
    /**
     * <code>required string hostname = 1;</code>
     */
    akka.protobuf.ByteString
        getHostnameBytes();

    // required uint32 port = 2;
    /**
     * <code>required uint32 port = 2;</code>
     */
    boolean hasPort();
    /**
     * <code>required uint32 port = 2;</code>
     */
    int getPort();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.Address}
   */
  public static final class Address extends
      akka.protobuf.GeneratedMessage
      implements AddressOrBuilder {
    // Use Address.newBuilder() to construct.
    private Address(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private Address(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final Address defaultInstance;
    public static Address getDefaultInstance() {
      return defaultInstance;
    }

    public Address getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private Address(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              hostname_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              port_ = input.readUInt32();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Address_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<Address> PARSER =
        new akka.protobuf.AbstractParser<Address>() {
      public Address parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new Address(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<Address> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required string hostname = 1;
    public static final int HOSTNAME_FIELD_NUMBER = 1;
    private java.lang.Object hostname_;
    /**
     * <code>required string hostname = 1;</code>
     */
    public boolean hasHostname() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required string hostname = 1;</code>
     */
    public java.lang.String getHostname() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        akka.protobuf.ByteString bs = 
            (akka.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          hostname_ = s;
        }
        return s;
      }
    }
    /**
     * <code>required string hostname = 1;</code>
     */
    public akka.protobuf.ByteString
        getHostnameBytes() {
      java.lang.Object ref = hostname_;
      if (ref instanceof java.lang.String) {
        akka.protobuf.ByteString b = 
            akka.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        hostname_ = b;
        return b;
      } else {
        return (akka.protobuf.ByteString) ref;
      }
    }

    // required uint32 port = 2;
    public static final int PORT_FIELD_NUMBER = 2;
    private int port_;
    /**
     * <code>required uint32 port = 2;</code>
     */
    public boolean hasPort() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required uint32 port = 2;</code>
     */
    public int getPort() {
      return port_;
    }

    private void initFields() {
      hostname_ = "";
      port_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getHostnameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeUInt32(2, port_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, getHostnameBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeUInt32Size(2, port_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.Address prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.Address}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.AddressOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Address_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        hostname_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        port_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_Address_descriptor;
      }

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

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.hostname_ = hostname_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.port_ = port_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasHostname()) {
          
          return false;
        }
        if (!hasPort()) {
          
          return false;
        }
        return true;
      }

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

      // required string hostname = 1;
      private java.lang.Object hostname_ = "";
      /**
       * <code>required string hostname = 1;</code>
       */
      public boolean hasHostname() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required string hostname = 1;</code>
       */
      public java.lang.String getHostname() {
        java.lang.Object ref = hostname_;
        if (!(ref instanceof java.lang.String)) {
          java.lang.String s = ((akka.protobuf.ByteString) ref)
              .toStringUtf8();
          hostname_ = s;
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * <code>required string hostname = 1;</code>
       */
      public akka.protobuf.ByteString
          getHostnameBytes() {
        java.lang.Object ref = hostname_;
        if (ref instanceof String) {
          akka.protobuf.ByteString b = 
              akka.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          hostname_ = b;
          return b;
        } else {
          return (akka.protobuf.ByteString) ref;
        }
      }
      /**
       * <code>required string hostname = 1;</code>
       */
      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>
       */
      public Builder clearHostname() {
        bitField0_ = (bitField0_ & ~0x00000001);
        hostname_ = getDefaultInstance().getHostname();
        onChanged();
        return this;
      }
      /**
       * <code>required string hostname = 1;</code>
       */
      public Builder setHostnameBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        hostname_ = value;
        onChanged();
        return this;
      }

      // required uint32 port = 2;
      private int port_ ;
      /**
       * <code>required uint32 port = 2;</code>
       */
      public boolean hasPort() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required uint32 port = 2;</code>
       */
      public int getPort() {
        return port_;
      }
      /**
       * <code>required uint32 port = 2;</code>
       */
      public Builder setPort(int value) {
        bitField0_ |= 0x00000002;
        port_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required uint32 port = 2;</code>
       */
      public Builder clearPort() {
        bitField0_ = (bitField0_ & ~0x00000002);
        port_ = 0;
        onChanged();
        return this;
      }

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

    static {
      defaultInstance = new Address(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.Address)
  }

  public interface VersionVectorOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;
    /**
     * <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.protobuf.GeneratedMessage
      implements VersionVectorOrBuilder {
    // Use VersionVector.newBuilder() to construct.
    private VersionVector(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private VersionVector(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final VersionVector defaultInstance;
    public static VersionVector getDefaultInstance() {
      return defaultInstance;
    }

    public VersionVector getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private VersionVector(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          entries_ = java.util.Collections.unmodifiableList(entries_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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 static akka.protobuf.Parser<VersionVector> PARSER =
        new akka.protobuf.AbstractParser<VersionVector>() {
      public VersionVector parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new VersionVector(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<VersionVector> getParserForType() {
      return PARSER;
    }

    public interface EntryOrBuilder
        extends akka.protobuf.MessageOrBuilder {

      // required .akka.cluster.ddata.UniqueAddress node = 1;
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       */
      boolean hasNode();
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       */
      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();

      // required int64 version = 2;
      /**
       * <code>required int64 version = 2;</code>
       */
      boolean hasVersion();
      /**
       * <code>required int64 version = 2;</code>
       */
      long getVersion();
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.VersionVector.Entry}
     */
    public static final class Entry extends
        akka.protobuf.GeneratedMessage
        implements EntryOrBuilder {
      // Use Entry.newBuilder() to construct.
      private Entry(akka.protobuf.GeneratedMessage.Builder<?> builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private Entry(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final Entry defaultInstance;
      public static Entry getDefaultInstance() {
        return defaultInstance;
      }

      public Entry getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final akka.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final akka.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private Entry(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        akka.protobuf.UnknownFieldSet.Builder unknownFields =
            akka.protobuf.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;
              }
              case 10: {
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder subBuilder = null;
                if (((bitField0_ & 0x00000001) == 0x00000001)) {
                  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;
              }
            }
          }
        } catch (akka.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new akka.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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);
      }

      public static akka.protobuf.Parser<Entry> PARSER =
          new akka.protobuf.AbstractParser<Entry>() {
        public Entry parsePartialFrom(
            akka.protobuf.CodedInputStream input,
            akka.protobuf.ExtensionRegistryLite extensionRegistry)
            throws akka.protobuf.InvalidProtocolBufferException {
          return new Entry(input, extensionRegistry);
        }
      };

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

      private int bitField0_;
      // required .akka.cluster.ddata.UniqueAddress node = 1;
      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>
       */
      public boolean hasNode() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getNode() {
        return node_;
      }
      /**
       * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder getNodeOrBuilder() {
        return node_;
      }

      // required int64 version = 2;
      public static final int VERSION_FIELD_NUMBER = 2;
      private long version_;
      /**
       * <code>required int64 version = 2;</code>
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int64 version = 2;</code>
       */
      public long getVersion() {
        return version_;
      }

      private void initFields() {
        node_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
        version_ = 0L;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized != -1) return isInitialized == 1;

        if (!hasNode()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!hasVersion()) {
          memoizedIsInitialized = 0;
          return false;
        }
        if (!getNode().isInitialized()) {
          memoizedIsInitialized = 0;
          return false;
        }
        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(akka.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeMessage(1, node_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt64(2, version_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += akka.protobuf.CodedOutputStream
            .computeMessageSize(1, node_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += akka.protobuf.CodedOutputStream
            .computeInt64Size(2, version_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          akka.protobuf.ByteString data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          akka.protobuf.ByteString data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(byte[] data)
          throws akka.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          byte[] data,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.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 PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseDelimitedFrom(
          java.io.InputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          akka.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry parseFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          akka.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code akka.cluster.ddata.VersionVector.Entry}
       */
      public static final class Builder extends
          akka.protobuf.GeneratedMessage.Builder<Builder>
         implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.EntryOrBuilder {
        public static final akka.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor;
        }

        protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getNodeFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          if (nodeBuilder_ == null) {
            node_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
          } else {
            nodeBuilder_.clear();
          }
          bitField0_ = (bitField0_ & ~0x00000001);
          version_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public akka.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor;
        }

        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry getDefaultInstanceForType() {
          return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.Entry.getDefaultInstance();
        }

        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;
        }

        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) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          if (nodeBuilder_ == null) {
            result.node_ = node_;
          } else {
            result.node_ = nodeBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.version_ = version_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          if (!hasNode()) {
            
            return false;
          }
          if (!hasVersion()) {
            
            return false;
          }
          if (!getNode().isInitialized()) {
            
            return false;
          }
          return true;
        }

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

        // required .akka.cluster.ddata.UniqueAddress node = 1;
        private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress node_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
        private akka.protobuf.SingleFieldBuilder<
            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>
         */
        public boolean hasNode() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress getNode() {
          if (nodeBuilder_ == null) {
            return 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) == 0x00000001) &&
                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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.getDefaultInstance();
            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_;
          }
        }
        /**
         * <code>required .akka.cluster.ddata.UniqueAddress node = 1;</code>
         */
        private akka.protobuf.SingleFieldBuilder<
            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.protobuf.SingleFieldBuilder<
                akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddress.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.UniqueAddressOrBuilder>(
                    node_,
                    getParentForChildren(),
                    isClean());
            node_ = null;
          }
          return nodeBuilder_;
        }

        // required int64 version = 2;
        private long version_ ;
        /**
         * <code>required int64 version = 2;</code>
         */
        public boolean hasVersion() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public long getVersion() {
          return version_;
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public Builder setVersion(long value) {
          bitField0_ |= 0x00000002;
          version_ = value;
          onChanged();
          return this;
        }
        /**
         * <code>required int64 version = 2;</code>
         */
        public Builder clearVersion() {
          bitField0_ = (bitField0_ & ~0x00000002);
          version_ = 0L;
          onChanged();
          return this;
        }

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

      static {
        defaultInstance = new Entry(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:akka.cluster.ddata.VersionVector.Entry)
    }

    // repeated .akka.cluster.ddata.VersionVector.Entry entries = 1;
    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 void initFields() {
      entries_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

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

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < entries_.size(); i++) {
        output.writeMessage(1, entries_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < entries_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, entries_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.VersionVector}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVectorOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getEntriesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (entriesBuilder_ == null) {
          entries_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          entriesBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_VersionVector_descriptor;
      }

      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.VersionVector.getDefaultInstance();
      }

      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;
      }

      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) == 0x00000001)) {
            entries_ = java.util.Collections.unmodifiableList(entries_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.entries_ = entries_;
        } else {
          result.entries_ = entriesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getEntriesFieldBuilder() : null;
            } else {
              entriesBuilder_.addAllMessages(other.entries_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

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

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

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

      private akka.protobuf.RepeatedFieldBuilder<
          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();
          super.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.protobuf.RepeatedFieldBuilder<
          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.protobuf.RepeatedFieldBuilder<
              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) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          entries_ = null;
        }
        return entriesBuilder_;
      }

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

    static {
      defaultInstance = new VersionVector(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.VersionVector)
  }

  public interface OtherMessageOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required bytes enclosedMessage = 1;
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     */
    boolean hasEnclosedMessage();
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     */
    akka.protobuf.ByteString getEnclosedMessage();

    // required int32 serializerId = 2;
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    boolean hasSerializerId();
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    int getSerializerId();

    // optional bytes messageManifest = 4;
    /**
     * <code>optional bytes messageManifest = 4;</code>
     */
    boolean hasMessageManifest();
    /**
     * <code>optional bytes messageManifest = 4;</code>
     */
    akka.protobuf.ByteString getMessageManifest();
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.OtherMessage}
   */
  public static final class OtherMessage extends
      akka.protobuf.GeneratedMessage
      implements OtherMessageOrBuilder {
    // Use OtherMessage.newBuilder() to construct.
    private OtherMessage(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private OtherMessage(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final OtherMessage defaultInstance;
    public static OtherMessage getDefaultInstance() {
      return defaultInstance;
    }

    public OtherMessage getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private OtherMessage(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              enclosedMessage_ = input.readBytes();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              serializerId_ = input.readInt32();
              break;
            }
            case 34: {
              bitField0_ |= 0x00000004;
              messageManifest_ = input.readBytes();
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_OtherMessage_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<OtherMessage> PARSER =
        new akka.protobuf.AbstractParser<OtherMessage>() {
      public OtherMessage parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new OtherMessage(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<OtherMessage> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required bytes enclosedMessage = 1;
    public static final int ENCLOSEDMESSAGE_FIELD_NUMBER = 1;
    private akka.protobuf.ByteString enclosedMessage_;
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     */
    public boolean hasEnclosedMessage() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required bytes enclosedMessage = 1;</code>
     */
    public akka.protobuf.ByteString getEnclosedMessage() {
      return enclosedMessage_;
    }

    // required int32 serializerId = 2;
    public static final int SERIALIZERID_FIELD_NUMBER = 2;
    private int serializerId_;
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    public boolean hasSerializerId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * <code>required int32 serializerId = 2;</code>
     */
    public int getSerializerId() {
      return serializerId_;
    }

    // optional bytes messageManifest = 4;
    public static final int MESSAGEMANIFEST_FIELD_NUMBER = 4;
    private akka.protobuf.ByteString messageManifest_;
    /**
     * <code>optional bytes messageManifest = 4;</code>
     */
    public boolean hasMessageManifest() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * <code>optional bytes messageManifest = 4;</code>
     */
    public akka.protobuf.ByteString getMessageManifest() {
      return messageManifest_;
    }

    private void initFields() {
      enclosedMessage_ = akka.protobuf.ByteString.EMPTY;
      serializerId_ = 0;
      messageManifest_ = akka.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      if (!hasEnclosedMessage()) {
        memoizedIsInitialized = 0;
        return false;
      }
      if (!hasSerializerId()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, enclosedMessage_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(4, messageManifest_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(1, enclosedMessage_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += akka.protobuf.CodedOutputStream
          .computeInt32Size(2, serializerId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += akka.protobuf.CodedOutputStream
          .computeBytesSize(4, messageManifest_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.OtherMessage}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_OtherMessage_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        enclosedMessage_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        serializerId_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        messageManifest_ = akka.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_OtherMessage_descriptor;
      }

      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      }

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.enclosedMessage_ = enclosedMessage_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.serializerId_ = serializerId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.messageManifest_ = messageManifest_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasEnclosedMessage()) {
          
          return false;
        }
        if (!hasSerializerId()) {
          
          return false;
        }
        return true;
      }

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

      // required bytes enclosedMessage = 1;
      private akka.protobuf.ByteString enclosedMessage_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       */
      public boolean hasEnclosedMessage() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       */
      public akka.protobuf.ByteString getEnclosedMessage() {
        return enclosedMessage_;
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       */
      public Builder setEnclosedMessage(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        enclosedMessage_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required bytes enclosedMessage = 1;</code>
       */
      public Builder clearEnclosedMessage() {
        bitField0_ = (bitField0_ & ~0x00000001);
        enclosedMessage_ = getDefaultInstance().getEnclosedMessage();
        onChanged();
        return this;
      }

      // required int32 serializerId = 2;
      private int serializerId_ ;
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public boolean hasSerializerId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public int getSerializerId() {
        return serializerId_;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public Builder setSerializerId(int value) {
        bitField0_ |= 0x00000002;
        serializerId_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>required int32 serializerId = 2;</code>
       */
      public Builder clearSerializerId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        serializerId_ = 0;
        onChanged();
        return this;
      }

      // optional bytes messageManifest = 4;
      private akka.protobuf.ByteString messageManifest_ = akka.protobuf.ByteString.EMPTY;
      /**
       * <code>optional bytes messageManifest = 4;</code>
       */
      public boolean hasMessageManifest() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       */
      public akka.protobuf.ByteString getMessageManifest() {
        return messageManifest_;
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       */
      public Builder setMessageManifest(akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        messageManifest_ = value;
        onChanged();
        return this;
      }
      /**
       * <code>optional bytes messageManifest = 4;</code>
       */
      public Builder clearMessageManifest() {
        bitField0_ = (bitField0_ & ~0x00000004);
        messageManifest_ = getDefaultInstance().getMessageManifest();
        onChanged();
        return this;
      }

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

    static {
      defaultInstance = new OtherMessage(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.OtherMessage)
  }

  public interface StringGSetOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // repeated string elements = 1;
    /**
     * <code>repeated string elements = 1;</code>
     */
    java.util.List<java.lang.String>
    getElementsList();
    /**
     * <code>repeated string elements = 1;</code>
     */
    int getElementsCount();
    /**
     * <code>repeated string elements = 1;</code>
     */
    java.lang.String getElements(int index);
    /**
     * <code>repeated string elements = 1;</code>
     */
    akka.protobuf.ByteString
        getElementsBytes(int index);
  }
  /**
   * Protobuf type {@code akka.cluster.ddata.StringGSet}
   */
  public static final class StringGSet extends
      akka.protobuf.GeneratedMessage
      implements StringGSetOrBuilder {
    // Use StringGSet.newBuilder() to construct.
    private StringGSet(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private StringGSet(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final StringGSet defaultInstance;
    public static StringGSet getDefaultInstance() {
      return defaultInstance;
    }

    public StringGSet getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private StringGSet(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                elements_ = new akka.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              elements_.add(input.readBytes());
              break;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          elements_ = new akka.protobuf.UnmodifiableLazyStringList(elements_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_StringGSet_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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 akka.protobuf.Parser<StringGSet> PARSER =
        new akka.protobuf.AbstractParser<StringGSet>() {
      public StringGSet parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new StringGSet(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<StringGSet> getParserForType() {
      return PARSER;
    }

    // repeated string elements = 1;
    public static final int ELEMENTS_FIELD_NUMBER = 1;
    private akka.protobuf.LazyStringList elements_;
    /**
     * <code>repeated string elements = 1;</code>
     */
    public java.util.List<java.lang.String>
        getElementsList() {
      return elements_;
    }
    /**
     * <code>repeated string elements = 1;</code>
     */
    public int getElementsCount() {
      return elements_.size();
    }
    /**
     * <code>repeated string elements = 1;</code>
     */
    public java.lang.String getElements(int index) {
      return elements_.get(index);
    }
    /**
     * <code>repeated string elements = 1;</code>
     */
    public akka.protobuf.ByteString
        getElementsBytes(int index) {
      return elements_.getByteString(index);
    }

    private void initFields() {
      elements_ = akka.protobuf.LazyStringArrayList.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < elements_.size(); i++) {
        output.writeBytes(1, elements_.getByteString(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < elements_.size(); i++) {
          dataSize += akka.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(elements_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getElementsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.StringGSet}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSetOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_StringGSet_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        elements_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_StringGSet_descriptor;
      }

      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.StringGSet.getDefaultInstance();
      }

      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;
      }

      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) == 0x00000001)) {
          elements_ = new akka.protobuf.UnmodifiableLazyStringList(
              elements_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.elements_ = elements_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

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

      // repeated string elements = 1;
      private akka.protobuf.LazyStringList elements_ = akka.protobuf.LazyStringArrayList.EMPTY;
      private void ensureElementsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          elements_ = new akka.protobuf.LazyStringArrayList(elements_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * <code>repeated string elements = 1;</code>
       */
      public java.util.List<java.lang.String>
          getElementsList() {
        return java.util.Collections.unmodifiableList(elements_);
      }
      /**
       * <code>repeated string elements = 1;</code>
       */
      public int getElementsCount() {
        return elements_.size();
      }
      /**
       * <code>repeated string elements = 1;</code>
       */
      public java.lang.String getElements(int index) {
        return elements_.get(index);
      }
      /**
       * <code>repeated string elements = 1;</code>
       */
      public akka.protobuf.ByteString
          getElementsBytes(int index) {
        return elements_.getByteString(index);
      }
      /**
       * <code>repeated string elements = 1;</code>
       */
      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>
       */
      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>
       */
      public Builder addAllElements(
          java.lang.Iterable<java.lang.String> values) {
        ensureElementsIsMutable();
        super.addAll(values, elements_);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string elements = 1;</code>
       */
      public Builder clearElements() {
        elements_ = akka.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * <code>repeated string elements = 1;</code>
       */
      public Builder addElementsBytes(
          akka.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureElementsIsMutable();
        elements_.add(value);
        onChanged();
        return this;
      }

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

    static {
      defaultInstance = new StringGSet(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.StringGSet)
  }

  public interface DurableDataEnvelopeOrBuilder
      extends akka.protobuf.MessageOrBuilder {

    // required .akka.cluster.ddata.OtherMessage data = 1;
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    boolean hasData();
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    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();

    // repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;
    /**
     * <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.protobuf.GeneratedMessage
      implements DurableDataEnvelopeOrBuilder {
    // Use DurableDataEnvelope.newBuilder() to construct.
    private DurableDataEnvelope(akka.protobuf.GeneratedMessage.Builder<?> builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private DurableDataEnvelope(boolean noInit) { this.unknownFields = akka.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final DurableDataEnvelope defaultInstance;
    public static DurableDataEnvelope getDefaultInstance() {
      return defaultInstance;
    }

    public DurableDataEnvelope getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final akka.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final akka.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private DurableDataEnvelope(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      akka.protobuf.UnknownFieldSet.Builder unknownFields =
          akka.protobuf.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;
            }
            case 10: {
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                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) == 0x00000002)) {
                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;
            }
          }
        }
      } catch (akka.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new akka.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
          pruning_ = java.util.Collections.unmodifiableList(pruning_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final akka.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor;
    }

    protected akka.protobuf.GeneratedMessage.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);
    }

    public static akka.protobuf.Parser<DurableDataEnvelope> PARSER =
        new akka.protobuf.AbstractParser<DurableDataEnvelope>() {
      public DurableDataEnvelope parsePartialFrom(
          akka.protobuf.CodedInputStream input,
          akka.protobuf.ExtensionRegistryLite extensionRegistry)
          throws akka.protobuf.InvalidProtocolBufferException {
        return new DurableDataEnvelope(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public akka.protobuf.Parser<DurableDataEnvelope> getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    // required .akka.cluster.ddata.OtherMessage data = 1;
    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>
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
      return data_;
    }
    /**
     * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
     */
    public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder getDataOrBuilder() {
      return data_;
    }

    // repeated .akka.cluster.ddata.DataEnvelope.PruningEntry pruning = 2;
    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 void initFields() {
      data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      pruning_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized != -1) return isInitialized == 1;

      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;
    }

    public void writeTo(akka.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, data_);
      }
      for (int i = 0; i < pruning_.size(); i++) {
        output.writeMessage(2, pruning_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(1, data_);
      }
      for (int i = 0; i < pruning_.size(); i++) {
        size += akka.protobuf.CodedOutputStream
          .computeMessageSize(2, pruning_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        akka.protobuf.ByteString data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        akka.protobuf.ByteString data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(byte[] data)
        throws akka.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        byte[] data,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws akka.protobuf.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 PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseDelimitedFrom(
        java.io.InputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        akka.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope parseFrom(
        akka.protobuf.CodedInputStream input,
        akka.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        akka.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code akka.cluster.ddata.DurableDataEnvelope}
     */
    public static final class Builder extends
        akka.protobuf.GeneratedMessage.Builder<Builder>
       implements akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelopeOrBuilder {
      public static final akka.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor;
      }

      protected akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (akka.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDataFieldBuilder();
          getPruningFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (dataBuilder_ == null) {
          data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
        } else {
          dataBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (pruningBuilder_ == null) {
          pruning_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000002);
        } else {
          pruningBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public akka.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor;
      }

      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope getDefaultInstanceForType() {
        return akka.cluster.ddata.protobuf.msg.ReplicatorMessages.DurableDataEnvelope.getDefaultInstance();
      }

      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;
      }

      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) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (dataBuilder_ == null) {
          result.data_ = data_;
        } else {
          result.data_ = dataBuilder_.build();
        }
        if (pruningBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            pruning_ = java.util.Collections.unmodifiableList(pruning_);
            bitField0_ = (bitField0_ & ~0x00000002);
          }
          result.pruning_ = pruning_;
        } else {
          result.pruning_ = pruningBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(akka.protobuf.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.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getPruningFieldBuilder() : null;
            } else {
              pruningBuilder_.addAllMessages(other.pruning_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      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;
      }

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

      // required .akka.cluster.ddata.OtherMessage data = 1;
      private akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage data_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
      private akka.protobuf.SingleFieldBuilder<
          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>
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      public akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage getData() {
        if (dataBuilder_ == null) {
          return 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) == 0x00000001) &&
              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_ = akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.getDefaultInstance();
          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_;
        }
      }
      /**
       * <code>required .akka.cluster.ddata.OtherMessage data = 1;</code>
       */
      private akka.protobuf.SingleFieldBuilder<
          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.protobuf.SingleFieldBuilder<
              akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessage.Builder, akka.cluster.ddata.protobuf.msg.ReplicatorMessages.OtherMessageOrBuilder>(
                  data_,
                  getParentForChildren(),
                  isClean());
          data_ = null;
        }
        return dataBuilder_;
      }

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

      private akka.protobuf.RepeatedFieldBuilder<
          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();
          super.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.protobuf.RepeatedFieldBuilder<
          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.protobuf.RepeatedFieldBuilder<
              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) == 0x00000002),
                  getParentForChildren(),
                  isClean());
          pruning_ = null;
        }
        return pruningBuilder_;
      }

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

    static {
      defaultInstance = new DurableDataEnvelope(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:akka.cluster.ddata.DurableDataEnvelope)
  }

  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Get_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Get_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_GetSuccess_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_GetSuccess_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_NotFound_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_NotFound_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_GetFailure_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_GetFailure_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Subscribe_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Subscribe_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Unsubscribe_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Unsubscribe_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Changed_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Changed_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Write_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Write_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Empty_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Empty_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Read_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Read_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_ReadResult_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_ReadResult_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DataEnvelope_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_DataEnvelope_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_DataEnvelope_PruningEntry_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Status_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Status_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Status_Entry_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Status_Entry_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Gossip_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Gossip_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Gossip_Entry_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Gossip_Entry_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DeltaPropagation_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_DeltaPropagation_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DeltaPropagation_Entry_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_DeltaPropagation_Entry_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_UniqueAddress_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_UniqueAddress_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_Address_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_Address_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_VersionVector_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_VersionVector_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_VersionVector_Entry_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_VersionVector_Entry_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_OtherMessage_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_OtherMessage_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_StringGSet_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_StringGSet_fieldAccessorTable;
  private static akka.protobuf.Descriptors.Descriptor
    internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor;
  private static
    akka.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_akka_cluster_ddata_DurableDataEnvelope_fieldAccessorTable;

  public static akka.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static akka.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\030ReplicatorMessages.proto\022\022akka.cluster" +
      ".ddata\"\215\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\"\236\001\n\nGetSu" +
      "ccess\022-\n\003key\030\001 \002(\0132 .akka.cluster.ddata." +
      "OtherMessage\022.\n\004data\030\002 \002(\0132 .akka.cluste" +
      "r.ddata.OtherMessage\0221\n\007request\030\004 \001(\0132 ." +
      "akka.cluster.ddata.OtherMessage\"l\n\010NotFo" +
      "und\022-\n\003key\030\001 \002(\0132 .akka.cluster.ddata.Ot",
      "herMessage\0221\n\007request\030\002 \001(\0132 .akka.clust" +
      "er.ddata.OtherMessage\"n\n\nGetFailure\022-\n\003k" +
      "ey\030\001 \002(\0132 .akka.cluster.ddata.OtherMessa" +
      "ge\0221\n\007request\030\002 \001(\0132 .akka.cluster.ddata" +
      ".OtherMessage\"G\n\tSubscribe\022-\n\003key\030\001 \002(\0132" +
      " .akka.cluster.ddata.OtherMessage\022\013\n\003ref" +
      "\030\002 \002(\t\"I\n\013Unsubscribe\022-\n\003key\030\001 \002(\0132 .akk" +
      "a.cluster.ddata.OtherMessage\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.OtherMessage\"H\n\005Write\022\013\n\003" +
      "key\030\001 \002(\t\0222\n\010envelope\030\002 \002(\0132 .akka.clust" +
      "er.ddata.DataEnvelope\"\007\n\005Empty\"\023\n\004Read\022\013" +
      "\n\003key\030\001 \002(\t\"@\n\nReadResult\0222\n\010envelope\030\001 " +
      "\001(\0132 .akka.cluster.ddata.DataEnvelope\"\221\003" +
      "\n\014DataEnvelope\022.\n\004data\030\001 \002(\0132 .akka.clus" +
      "ter.ddata.OtherMessage\022>\n\007pruning\030\002 \003(\0132" +
      "-.akka.cluster.ddata.DataEnvelope.Prunin" +
      "gEntry\0228\n\rdeltaVersions\030\003 \001(\0132!.akka.clu" +
      "ster.ddata.VersionVector\032\326\001\n\014PruningEntr",
      "y\0229\n\016removedAddress\030\001 \002(\0132!.akka.cluster" +
      ".ddata.UniqueAddress\0227\n\014ownerAddress\030\002 \002" +
      "(\0132!.akka.cluster.ddata.UniqueAddress\022\021\n" +
      "\tperformed\030\003 \002(\010\022)\n\004seen\030\004 \003(\0132\033.akka.cl" +
      "uster.ddata.Address\022\024\n\014obsoleteTime\030\005 \001(" +
      "\022\"\203\001\n\006Status\022\r\n\005chunk\030\001 \002(\r\022\021\n\ttotChunks" +
      "\030\002 \002(\r\0221\n\007entries\030\003 \003(\0132 .akka.cluster.d" +
      "data.Status.Entry\032$\n\005Entry\022\013\n\003key\030\001 \002(\t\022" +
      "\016\n\006digest\030\002 \002(\014\"\227\001\n\006Gossip\022\020\n\010sendBack\030\001" +
      " \002(\010\0221\n\007entries\030\002 \003(\0132 .akka.cluster.dda",
      "ta.Gossip.Entry\032H\n\005Entry\022\013\n\003key\030\001 \002(\t\0222\n" +
      "\010envelope\030\002 \002(\0132 .akka.cluster.ddata.Dat" +
      "aEnvelope\"\201\002\n\020DeltaPropagation\0223\n\010fromNo" +
      "de\030\001 \002(\0132!.akka.cluster.ddata.UniqueAddr" +
      "ess\022;\n\007entries\030\002 \003(\0132*.akka.cluster.ddat" +
      "a.DeltaPropagation.Entry\022\r\n\005reply\030\003 \001(\010\032" +
      "l\n\005Entry\022\013\n\003key\030\001 \002(\t\0222\n\010envelope\030\002 \002(\0132" +
      " .akka.cluster.ddata.DataEnvelope\022\021\n\tfro" +
      "mSeqNr\030\003 \002(\003\022\017\n\007toSeqNr\030\004 \001(\003\"X\n\rUniqueA" +
      "ddress\022,\n\007address\030\001 \002(\0132\033.akka.cluster.d",
      "data.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\007entries\030\001 \003(\0132\'." +
      "akka.cluster.ddata.VersionVector.Entry\032I" +
      "\n\005Entry\022/\n\004node\030\001 \002(\0132!.akka.cluster.dda" +
      "ta.UniqueAddress\022\017\n\007version\030\002 \002(\003\"V\n\014Oth" +
      "erMessage\022\027\n\017enclosedMessage\030\001 \002(\014\022\024\n\014se" +
      "rializerId\030\002 \002(\005\022\027\n\017messageManifest\030\004 \001(" +
      "\014\"\036\n\nStringGSet\022\020\n\010elements\030\001 \003(\t\"\205\001\n\023Du" +
      "rableDataEnvelope\022.\n\004data\030\001 \002(\0132 .akka.c",
      "luster.ddata.OtherMessage\022>\n\007pruning\030\002 \003" +
      "(\0132-.akka.cluster.ddata.DataEnvelope.Pru" +
      "ningEntryB#\n\037akka.cluster.ddata.protobuf" +
      ".msgH\001"
    };
    akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
      new akka.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
        public akka.protobuf.ExtensionRegistry assignDescriptors(
            akka.protobuf.Descriptors.FileDescriptor root) {
          descriptor = root;
          internal_static_akka_cluster_ddata_Get_descriptor =
            getDescriptor().getMessageTypes().get(0);
          internal_static_akka_cluster_ddata_Get_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_akka_cluster_ddata_Get_descriptor,
              new java.lang.String[] { "Key", "Consistency", "Timeout", "Request", });
          internal_static_akka_cluster_ddata_GetSuccess_descriptor =
            getDescriptor().getMessageTypes().get(1);
          internal_static_akka_cluster_ddata_GetSuccess_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_akka_cluster_ddata_Write_descriptor,
              new java.lang.String[] { "Key", "Envelope", });
          internal_static_akka_cluster_ddata_Empty_descriptor =
            getDescriptor().getMessageTypes().get(8);
          internal_static_akka_cluster_ddata_Empty_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_akka_cluster_ddata_Read_descriptor,
              new java.lang.String[] { "Key", });
          internal_static_akka_cluster_ddata_ReadResult_descriptor =
            getDescriptor().getMessageTypes().get(10);
          internal_static_akka_cluster_ddata_ReadResult_fieldAccessorTable = new
            akka.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_akka_cluster_ddata_Status_descriptor,
              new java.lang.String[] { "Chunk", "TotChunks", "Entries", });
          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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_akka_cluster_ddata_Gossip_descriptor,
              new java.lang.String[] { "SendBack", "Entries", });
          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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.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.protobuf.GeneratedMessage.FieldAccessorTable(
              internal_static_akka_cluster_ddata_DurableDataEnvelope_descriptor,
              new java.lang.String[] { "Data", "Pruning", });
          return null;
        }
      };
    akka.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new akka.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
  }

  // @@protoc_insertion_point(outer_class_scope)
}
