diff --git a/.gitignore b/.gitignore
index a8e501f0032529b7fb206ad50fb5c5a84ec099a9..cef2928a4cb4d342c5dc1a7a4dcee8b7323146e3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,12 +1,12 @@
-java/build
-java/lib
-java/test/lib
-java/test/report
-java/dist
-java/privateprops
-java/.project
-java/.classpath
+*/generatedsrc
+*/build
+*/lib
+*/test/lib
+*/test/report
+*/dist
+*/privateprops
+*/.project
+*/.classpath
 *.pyc
-.project
-.classpath
 **/.*.swp
+
diff --git a/build.xml b/build.xml
index e88843465ae4667610229e0b5635d9b7112414aa..a047563f5b8bd4733edd05a30be7618ff6adf360 100644
--- a/build.xml
+++ b/build.xml
@@ -5,7 +5,7 @@
     </subant>
   </target>
 
-  <target name="build">
+  <target name="build" depends="-pre-compilation">
     <subant target="build" genericantfile="build.xml">
       <fileset dir="." includes="*/build.xml"/>
     </subant>
@@ -17,7 +17,13 @@
     </subant>
   </target>
 
-  <target name="compile">
+  <target name="-pre-compilation">
+    <subant target="-pre-compilation" genericantfile="build.xml">
+      <fileset dir="." includes="*/build.xml"/>
+    </subant>
+  </target>
+
+  <target name="compile" depends="-pre-compilation">
     <subant target="compile" genericantfile="build.xml">
       <fileset dir="." includes="*/build.xml"/>
     </subant>
diff --git a/java/build.xml b/java/build.xml
index 7be237d759bae3f89d5d1ba435c967fa1c3eb6d6..210b34a990975a7c828d943e463e603f2a0e1be4 100644
--- a/java/build.xml
+++ b/java/build.xml
@@ -1,4 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <project name="IpaacaJava"  default="run">
    <import file="../../soashared/ant/build.xml" />
+
+   <target name="-pre-compilation">
+     <echo message="Compiling protobuf file" />
+     <mkdir dir="generatedsrc"/>
+     <exec executable="protoc">
+        <arg value="--proto_path=../proto" />
+        <arg value="../proto/ipaaca.proto" />
+        <arg value="--java_out=generatedsrc/" />
+     </exec>
+   </target>
 </project>
diff --git a/java/src/ipaaca/AbstractIU.java b/java/src/ipaaca/AbstractIU.java
index 378659915f967128a398c2829e1cfcc4bbdc0cb5..0b4a84abd03d83d1a938afc7c156de5d084be563 100644
--- a/java/src/ipaaca/AbstractIU.java
+++ b/java/src/ipaaca/AbstractIU.java
@@ -1,6 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.PayloadItem;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
 
 import java.util.ArrayList;
 import java.util.Collection;
diff --git a/java/src/ipaaca/IUConverter.java b/java/src/ipaaca/IUConverter.java
index c45a81c8fb74430406b731bd8ec32e278537b610..7b16418012bd55a351db9998b3520cd65ab9baf7 100644
--- a/java/src/ipaaca/IUConverter.java
+++ b/java/src/ipaaca/IUConverter.java
@@ -1,4 +1,8 @@
 package ipaaca;
+import ipaaca.protobuf.Ipaaca.IU;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
+
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -14,9 +18,6 @@ import rsb.converter.Converter;
 import rsb.converter.ConverterSignature;
 import rsb.converter.UserData;
 import rsb.converter.WireContents;
-import ipaaca.Ipaaca.IU;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
 
 /**
  * Serializes AbstractIUs into protocolbuffer IUs and vice versa.
diff --git a/java/src/ipaaca/Initializer.java b/java/src/ipaaca/Initializer.java
index afe105e60cf14a2913ad0023a14bb361e0e95b7c..331bdcc7ed5df44a3e4e85561e605917a1116594 100644
--- a/java/src/ipaaca/Initializer.java
+++ b/java/src/ipaaca/Initializer.java
@@ -1,8 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IUCommission;
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.IUCommission;
 import rsb.converter.ConverterSignature;
 import rsb.converter.DefaultConverterRepository;
 import rsb.converter.ProtocolBufferConverter;
@@ -35,7 +33,7 @@ public final class Initializer {
 	    DefaultConverterRepository.getDefaultConverterRepository().addConverter(
                 new PayloadConverter());
 	    DefaultConverterRepository.getDefaultConverterRepository().addConverter(
-                new LinkUpdateConverter());
+                new LinkUpdateConverter());	    
 	    	    
 	}
 }
diff --git a/java/src/ipaaca/InputBuffer.java b/java/src/ipaaca/InputBuffer.java
index cac3059dd35271056d050c5d9519f1873cc353f0..961785a29501e2e4bd5b3e6dfc03c4d84f2377e6 100644
--- a/java/src/ipaaca/InputBuffer.java
+++ b/java/src/ipaaca/InputBuffer.java
@@ -1,8 +1,8 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IUCommission;
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.IUCommission;
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
 
 import java.util.Collection;
 import java.util.HashMap;
diff --git a/java/src/ipaaca/IntConverter.java b/java/src/ipaaca/IntConverter.java
index b1de162dc10863c21c32a4f929ac0e5ebd7f164c..2c7fba3a79b20731f68f7c6761f5aa214d8e19f3 100644
--- a/java/src/ipaaca/IntConverter.java
+++ b/java/src/ipaaca/IntConverter.java
@@ -1,6 +1,7 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IntMessage;
+import ipaaca.protobuf.Ipaaca.IntMessage;
+
 import java.nio.ByteBuffer;
 import rsb.converter.ConversionException;
 import rsb.converter.Converter;
diff --git a/java/src/ipaaca/Ipaaca.java b/java/src/ipaaca/Ipaaca.java
deleted file mode 100644
index b6d42575b7faa42a63bc832d0f4403e43e75f82e..0000000000000000000000000000000000000000
--- a/java/src/ipaaca/Ipaaca.java
+++ /dev/null
@@ -1,6385 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: ipaaca.proto
-
-package ipaaca;
-
-public final class Ipaaca {
-  private Ipaaca() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistry registry) {
-  }
-  public interface IntMessageOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required sint32 value = 1;
-    boolean hasValue();
-    int getValue();
-  }
-  public static final class IntMessage extends
-      com.google.protobuf.GeneratedMessage
-      implements IntMessageOrBuilder {
-    // Use IntMessage.newBuilder() to construct.
-    private IntMessage(Builder builder) {
-      super(builder);
-    }
-    private IntMessage(boolean noInit) {}
-    
-    private static final IntMessage defaultInstance;
-    public static IntMessage getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IntMessage getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IntMessage_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IntMessage_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required sint32 value = 1;
-    public static final int VALUE_FIELD_NUMBER = 1;
-    private int value_;
-    public boolean hasValue() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public int getValue() {
-      return value_;
-    }
-    
-    private void initFields() {
-      value_ = 0;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasValue()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeSInt32(1, value_);
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeSInt32Size(1, value_);
-      }
-      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 ipaaca.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IntMessage parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IntMessage prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IntMessageOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IntMessage_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IntMessage_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IntMessage.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        value_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IntMessage.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IntMessage getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IntMessage.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IntMessage build() {
-        ipaaca.Ipaaca.IntMessage result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IntMessage buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IntMessage result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IntMessage buildPartial() {
-        ipaaca.Ipaaca.IntMessage result = new ipaaca.Ipaaca.IntMessage(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.value_ = value_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IntMessage) {
-          return mergeFrom((ipaaca.Ipaaca.IntMessage)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IntMessage other) {
-        if (other == ipaaca.Ipaaca.IntMessage.getDefaultInstance()) return this;
-        if (other.hasValue()) {
-          setValue(other.getValue());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasValue()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              value_ = input.readSInt32();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required sint32 value = 1;
-      private int value_ ;
-      public boolean hasValue() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public int getValue() {
-        return value_;
-      }
-      public Builder setValue(int value) {
-        bitField0_ |= 0x00000001;
-        value_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearValue() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        value_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IntMessage)
-    }
-    
-    static {
-      defaultInstance = new IntMessage(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IntMessage)
-  }
-  
-  public interface LinkSetOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string type = 1;
-    boolean hasType();
-    String getType();
-    
-    // repeated string targets = 2;
-    java.util.List<String> getTargetsList();
-    int getTargetsCount();
-    String getTargets(int index);
-  }
-  public static final class LinkSet extends
-      com.google.protobuf.GeneratedMessage
-      implements LinkSetOrBuilder {
-    // Use LinkSet.newBuilder() to construct.
-    private LinkSet(Builder builder) {
-      super(builder);
-    }
-    private LinkSet(boolean noInit) {}
-    
-    private static final LinkSet defaultInstance;
-    public static LinkSet getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public LinkSet getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_LinkSet_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_LinkSet_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string type = 1;
-    public static final int TYPE_FIELD_NUMBER = 1;
-    private java.lang.Object type_;
-    public boolean hasType() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getType() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          type_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getTypeBytes() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        type_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // repeated string targets = 2;
-    public static final int TARGETS_FIELD_NUMBER = 2;
-    private com.google.protobuf.LazyStringList targets_;
-    public java.util.List<String>
-        getTargetsList() {
-      return targets_;
-    }
-    public int getTargetsCount() {
-      return targets_.size();
-    }
-    public String getTargets(int index) {
-      return targets_.get(index);
-    }
-    
-    private void initFields() {
-      type_ = "";
-      targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getTypeBytes());
-      }
-      for (int i = 0; i < targets_.size(); i++) {
-        output.writeBytes(2, targets_.getByteString(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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getTypeBytes());
-      }
-      {
-        int dataSize = 0;
-        for (int i = 0; i < targets_.size(); i++) {
-          dataSize += com.google.protobuf.CodedOutputStream
-            .computeBytesSizeNoTag(targets_.getByteString(i));
-        }
-        size += dataSize;
-        size += 1 * getTargetsList().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 ipaaca.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.LinkSet parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.LinkSet prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.LinkSetOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_LinkSet_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_LinkSet_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.LinkSet.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        type_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.LinkSet.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.LinkSet getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.LinkSet.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.LinkSet build() {
-        ipaaca.Ipaaca.LinkSet result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.LinkSet buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.LinkSet result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.LinkSet buildPartial() {
-        ipaaca.Ipaaca.LinkSet result = new ipaaca.Ipaaca.LinkSet(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.type_ = type_;
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          targets_ = new com.google.protobuf.UnmodifiableLazyStringList(
-              targets_);
-          bitField0_ = (bitField0_ & ~0x00000002);
-        }
-        result.targets_ = targets_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.LinkSet) {
-          return mergeFrom((ipaaca.Ipaaca.LinkSet)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.LinkSet other) {
-        if (other == ipaaca.Ipaaca.LinkSet.getDefaultInstance()) return this;
-        if (other.hasType()) {
-          setType(other.getType());
-        }
-        if (!other.targets_.isEmpty()) {
-          if (targets_.isEmpty()) {
-            targets_ = other.targets_;
-            bitField0_ = (bitField0_ & ~0x00000002);
-          } else {
-            ensureTargetsIsMutable();
-            targets_.addAll(other.targets_);
-          }
-          onChanged();
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasType()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              type_ = input.readBytes();
-              break;
-            }
-            case 18: {
-              ensureTargetsIsMutable();
-              targets_.add(input.readBytes());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string type = 1;
-      private java.lang.Object type_ = "";
-      public boolean hasType() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getType() {
-        java.lang.Object ref = type_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          type_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        type_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearType() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        type_ = getDefaultInstance().getType();
-        onChanged();
-        return this;
-      }
-      void setType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        type_ = value;
-        onChanged();
-      }
-      
-      // repeated string targets = 2;
-      private com.google.protobuf.LazyStringList targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      private void ensureTargetsIsMutable() {
-        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
-          targets_ = new com.google.protobuf.LazyStringArrayList(targets_);
-          bitField0_ |= 0x00000002;
-         }
-      }
-      public java.util.List<String>
-          getTargetsList() {
-        return java.util.Collections.unmodifiableList(targets_);
-      }
-      public int getTargetsCount() {
-        return targets_.size();
-      }
-      public String getTargets(int index) {
-        return targets_.get(index);
-      }
-      public Builder setTargets(
-          int index, String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureTargetsIsMutable();
-        targets_.set(index, value);
-        onChanged();
-        return this;
-      }
-      public Builder addTargets(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureTargetsIsMutable();
-        targets_.add(value);
-        onChanged();
-        return this;
-      }
-      public Builder addAllTargets(
-          java.lang.Iterable<String> values) {
-        ensureTargetsIsMutable();
-        super.addAll(values, targets_);
-        onChanged();
-        return this;
-      }
-      public Builder clearTargets() {
-        targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        onChanged();
-        return this;
-      }
-      void addTargets(com.google.protobuf.ByteString value) {
-        ensureTargetsIsMutable();
-        targets_.add(value);
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.LinkSet)
-    }
-    
-    static {
-      defaultInstance = new LinkSet(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.LinkSet)
-  }
-  
-  public interface PayloadItemOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string key = 1;
-    boolean hasKey();
-    String getKey();
-    
-    // required string value = 2;
-    boolean hasValue();
-    String getValue();
-    
-    // required string type = 3 [default = "str"];
-    boolean hasType();
-    String getType();
-  }
-  public static final class PayloadItem extends
-      com.google.protobuf.GeneratedMessage
-      implements PayloadItemOrBuilder {
-    // Use PayloadItem.newBuilder() to construct.
-    private PayloadItem(Builder builder) {
-      super(builder);
-    }
-    private PayloadItem(boolean noInit) {}
-    
-    private static final PayloadItem defaultInstance;
-    public static PayloadItem getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public PayloadItem getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_PayloadItem_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_PayloadItem_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string key = 1;
-    public static final int KEY_FIELD_NUMBER = 1;
-    private java.lang.Object key_;
-    public boolean hasKey() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getKey() {
-      java.lang.Object ref = key_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          key_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getKeyBytes() {
-      java.lang.Object ref = key_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        key_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string value = 2;
-    public static final int VALUE_FIELD_NUMBER = 2;
-    private java.lang.Object value_;
-    public boolean hasValue() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public String getValue() {
-      java.lang.Object ref = value_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          value_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getValueBytes() {
-      java.lang.Object ref = value_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        value_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string type = 3 [default = "str"];
-    public static final int TYPE_FIELD_NUMBER = 3;
-    private java.lang.Object type_;
-    public boolean hasType() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getType() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          type_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getTypeBytes() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        type_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      key_ = "";
-      value_ = "";
-      type_ = "str";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasKey()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasValue()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getKeyBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeBytes(2, getValueBytes());
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getTypeBytes());
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getKeyBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(2, getValueBytes());
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getTypeBytes());
-      }
-      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 ipaaca.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.PayloadItem prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.PayloadItemOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_PayloadItem_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_PayloadItem_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.PayloadItem.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        key_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        value_ = "";
-        bitField0_ = (bitField0_ & ~0x00000002);
-        type_ = "str";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.PayloadItem.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.PayloadItem getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.PayloadItem.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.PayloadItem build() {
-        ipaaca.Ipaaca.PayloadItem result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.PayloadItem buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.PayloadItem result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.PayloadItem buildPartial() {
-        ipaaca.Ipaaca.PayloadItem result = new ipaaca.Ipaaca.PayloadItem(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.value_ = value_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.type_ = type_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.PayloadItem) {
-          return mergeFrom((ipaaca.Ipaaca.PayloadItem)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.PayloadItem other) {
-        if (other == ipaaca.Ipaaca.PayloadItem.getDefaultInstance()) return this;
-        if (other.hasKey()) {
-          setKey(other.getKey());
-        }
-        if (other.hasValue()) {
-          setValue(other.getValue());
-        }
-        if (other.hasType()) {
-          setType(other.getType());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasKey()) {
-          
-          return false;
-        }
-        if (!hasValue()) {
-          
-          return false;
-        }
-        if (!hasType()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              key_ = input.readBytes();
-              break;
-            }
-            case 18: {
-              bitField0_ |= 0x00000002;
-              value_ = input.readBytes();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              type_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string key = 1;
-      private java.lang.Object key_ = "";
-      public boolean hasKey() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getKey() {
-        java.lang.Object ref = key_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          key_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setKey(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        key_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearKey() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        key_ = getDefaultInstance().getKey();
-        onChanged();
-        return this;
-      }
-      void setKey(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        key_ = value;
-        onChanged();
-      }
-      
-      // required string value = 2;
-      private java.lang.Object value_ = "";
-      public boolean hasValue() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public String getValue() {
-        java.lang.Object ref = value_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          value_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setValue(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000002;
-        value_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearValue() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        value_ = getDefaultInstance().getValue();
-        onChanged();
-        return this;
-      }
-      void setValue(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000002;
-        value_ = value;
-        onChanged();
-      }
-      
-      // required string type = 3 [default = "str"];
-      private java.lang.Object type_ = "str";
-      public boolean hasType() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getType() {
-        java.lang.Object ref = type_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          type_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        type_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearType() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        type_ = getDefaultInstance().getType();
-        onChanged();
-        return this;
-      }
-      void setType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        type_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.PayloadItem)
-    }
-    
-    static {
-      defaultInstance = new PayloadItem(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.PayloadItem)
-  }
-  
-  public interface IUOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // required string category = 3 [default = "undef"];
-    boolean hasCategory();
-    String getCategory();
-    
-    // required string payload_type = 4 [default = "MAP"];
-    boolean hasPayloadType();
-    String getPayloadType();
-    
-    // required string owner_name = 5;
-    boolean hasOwnerName();
-    String getOwnerName();
-    
-    // required bool committed = 6 [default = false];
-    boolean hasCommitted();
-    boolean getCommitted();
-    
-    // required .ipaaca.IU.AccessMode access_mode = 7 [default = PUSH];
-    boolean hasAccessMode();
-    ipaaca.Ipaaca.IU.AccessMode getAccessMode();
-    
-    // required bool read_only = 8 [default = false];
-    boolean hasReadOnly();
-    boolean getReadOnly();
-    
-    // repeated .ipaaca.PayloadItem payload = 9;
-    java.util.List<ipaaca.Ipaaca.PayloadItem> 
-        getPayloadList();
-    ipaaca.Ipaaca.PayloadItem getPayload(int index);
-    int getPayloadCount();
-    java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-        getPayloadOrBuilderList();
-    ipaaca.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-        int index);
-    
-    // repeated .ipaaca.LinkSet links = 10;
-    java.util.List<ipaaca.Ipaaca.LinkSet> 
-        getLinksList();
-    ipaaca.Ipaaca.LinkSet getLinks(int index);
-    int getLinksCount();
-    java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getLinksOrBuilderList();
-    ipaaca.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-        int index);
-  }
-  public static final class IU extends
-      com.google.protobuf.GeneratedMessage
-      implements IUOrBuilder {
-    // Use IU.newBuilder() to construct.
-    private IU(Builder builder) {
-      super(builder);
-    }
-    private IU(boolean noInit) {}
-    
-    private static final IU defaultInstance;
-    public static IU getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IU getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IU_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IU_fieldAccessorTable;
-    }
-    
-    public enum AccessMode
-        implements com.google.protobuf.ProtocolMessageEnum {
-      PUSH(0, 0),
-      REMOTE(1, 1),
-      MESSAGE(2, 2),
-      ;
-      
-      public static final int PUSH_VALUE = 0;
-      public static final int REMOTE_VALUE = 1;
-      public static final int MESSAGE_VALUE = 2;
-      
-      
-      public final int getNumber() { return value; }
-      
-      public static AccessMode valueOf(int value) {
-        switch (value) {
-          case 0: return PUSH;
-          case 1: return REMOTE;
-          case 2: return MESSAGE;
-          default: return null;
-        }
-      }
-      
-      public static com.google.protobuf.Internal.EnumLiteMap<AccessMode>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static com.google.protobuf.Internal.EnumLiteMap<AccessMode>
-          internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<AccessMode>() {
-              public AccessMode findValueByNumber(int number) {
-                return AccessMode.valueOf(number);
-              }
-            };
-      
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(index);
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.IU.getDescriptor().getEnumTypes().get(0);
-      }
-      
-      private static final AccessMode[] VALUES = {
-        PUSH, REMOTE, MESSAGE, 
-      };
-      
-      public static AccessMode valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        return VALUES[desc.getIndex()];
-      }
-      
-      private final int index;
-      private final int value;
-      
-      private AccessMode(int index, int value) {
-        this.index = index;
-        this.value = value;
-      }
-      
-      // @@protoc_insertion_point(enum_scope:ipaaca.IU.AccessMode)
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // required string category = 3 [default = "undef"];
-    public static final int CATEGORY_FIELD_NUMBER = 3;
-    private java.lang.Object category_;
-    public boolean hasCategory() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getCategory() {
-      java.lang.Object ref = category_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          category_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getCategoryBytes() {
-      java.lang.Object ref = category_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        category_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string payload_type = 4 [default = "MAP"];
-    public static final int PAYLOAD_TYPE_FIELD_NUMBER = 4;
-    private java.lang.Object payloadType_;
-    public boolean hasPayloadType() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getPayloadType() {
-      java.lang.Object ref = payloadType_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          payloadType_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getPayloadTypeBytes() {
-      java.lang.Object ref = payloadType_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        payloadType_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string owner_name = 5;
-    public static final int OWNER_NAME_FIELD_NUMBER = 5;
-    private java.lang.Object ownerName_;
-    public boolean hasOwnerName() {
-      return ((bitField0_ & 0x00000010) == 0x00000010);
-    }
-    public String getOwnerName() {
-      java.lang.Object ref = ownerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          ownerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getOwnerNameBytes() {
-      java.lang.Object ref = ownerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        ownerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required bool committed = 6 [default = false];
-    public static final int COMMITTED_FIELD_NUMBER = 6;
-    private boolean committed_;
-    public boolean hasCommitted() {
-      return ((bitField0_ & 0x00000020) == 0x00000020);
-    }
-    public boolean getCommitted() {
-      return committed_;
-    }
-    
-    // required .ipaaca.IU.AccessMode access_mode = 7 [default = PUSH];
-    public static final int ACCESS_MODE_FIELD_NUMBER = 7;
-    private ipaaca.Ipaaca.IU.AccessMode accessMode_;
-    public boolean hasAccessMode() {
-      return ((bitField0_ & 0x00000040) == 0x00000040);
-    }
-    public ipaaca.Ipaaca.IU.AccessMode getAccessMode() {
-      return accessMode_;
-    }
-    
-    // required bool read_only = 8 [default = false];
-    public static final int READ_ONLY_FIELD_NUMBER = 8;
-    private boolean readOnly_;
-    public boolean hasReadOnly() {
-      return ((bitField0_ & 0x00000080) == 0x00000080);
-    }
-    public boolean getReadOnly() {
-      return readOnly_;
-    }
-    
-    // repeated .ipaaca.PayloadItem payload = 9;
-    public static final int PAYLOAD_FIELD_NUMBER = 9;
-    private java.util.List<ipaaca.Ipaaca.PayloadItem> payload_;
-    public java.util.List<ipaaca.Ipaaca.PayloadItem> getPayloadList() {
-      return payload_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-        getPayloadOrBuilderList() {
-      return payload_;
-    }
-    public int getPayloadCount() {
-      return payload_.size();
-    }
-    public ipaaca.Ipaaca.PayloadItem getPayload(int index) {
-      return payload_.get(index);
-    }
-    public ipaaca.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-        int index) {
-      return payload_.get(index);
-    }
-    
-    // repeated .ipaaca.LinkSet links = 10;
-    public static final int LINKS_FIELD_NUMBER = 10;
-    private java.util.List<ipaaca.Ipaaca.LinkSet> links_;
-    public java.util.List<ipaaca.Ipaaca.LinkSet> getLinksList() {
-      return links_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getLinksOrBuilderList() {
-      return links_;
-    }
-    public int getLinksCount() {
-      return links_.size();
-    }
-    public ipaaca.Ipaaca.LinkSet getLinks(int index) {
-      return links_.get(index);
-    }
-    public ipaaca.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-        int index) {
-      return links_.get(index);
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      category_ = "undef";
-      payloadType_ = "MAP";
-      ownerName_ = "";
-      committed_ = false;
-      accessMode_ = ipaaca.Ipaaca.IU.AccessMode.PUSH;
-      readOnly_ = false;
-      payload_ = java.util.Collections.emptyList();
-      links_ = java.util.Collections.emptyList();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasCategory()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasPayloadType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasOwnerName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasCommitted()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasAccessMode()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasReadOnly()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getPayloadCount(); i++) {
-        if (!getPayload(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      for (int i = 0; i < getLinksCount(); i++) {
-        if (!getLinks(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getCategoryBytes());
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(4, getPayloadTypeBytes());
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        output.writeBytes(5, getOwnerNameBytes());
-      }
-      if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        output.writeBool(6, committed_);
-      }
-      if (((bitField0_ & 0x00000040) == 0x00000040)) {
-        output.writeEnum(7, accessMode_.getNumber());
-      }
-      if (((bitField0_ & 0x00000080) == 0x00000080)) {
-        output.writeBool(8, readOnly_);
-      }
-      for (int i = 0; i < payload_.size(); i++) {
-        output.writeMessage(9, payload_.get(i));
-      }
-      for (int i = 0; i < links_.size(); i++) {
-        output.writeMessage(10, links_.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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getCategoryBytes());
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(4, getPayloadTypeBytes());
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(5, getOwnerNameBytes());
-      }
-      if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(6, committed_);
-      }
-      if (((bitField0_ & 0x00000040) == 0x00000040)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(7, accessMode_.getNumber());
-      }
-      if (((bitField0_ & 0x00000080) == 0x00000080)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(8, readOnly_);
-      }
-      for (int i = 0; i < payload_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(9, payload_.get(i));
-      }
-      for (int i = 0; i < links_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(10, links_.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 ipaaca.Ipaaca.IU parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IU parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IU parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IU prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IUOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IU_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IU_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IU.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getPayloadFieldBuilder();
-          getLinksFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        category_ = "undef";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        payloadType_ = "MAP";
-        bitField0_ = (bitField0_ & ~0x00000008);
-        ownerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000010);
-        committed_ = false;
-        bitField0_ = (bitField0_ & ~0x00000020);
-        accessMode_ = ipaaca.Ipaaca.IU.AccessMode.PUSH;
-        bitField0_ = (bitField0_ & ~0x00000040);
-        readOnly_ = false;
-        bitField0_ = (bitField0_ & ~0x00000080);
-        if (payloadBuilder_ == null) {
-          payload_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000100);
-        } else {
-          payloadBuilder_.clear();
-        }
-        if (linksBuilder_ == null) {
-          links_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000200);
-        } else {
-          linksBuilder_.clear();
-        }
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IU.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IU getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IU.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IU build() {
-        ipaaca.Ipaaca.IU result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IU buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IU result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IU buildPartial() {
-        ipaaca.Ipaaca.IU result = new ipaaca.Ipaaca.IU(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.category_ = category_;
-        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.payloadType_ = payloadType_;
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000010;
-        }
-        result.ownerName_ = ownerName_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000020;
-        }
-        result.committed_ = committed_;
-        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
-          to_bitField0_ |= 0x00000040;
-        }
-        result.accessMode_ = accessMode_;
-        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
-          to_bitField0_ |= 0x00000080;
-        }
-        result.readOnly_ = readOnly_;
-        if (payloadBuilder_ == null) {
-          if (((bitField0_ & 0x00000100) == 0x00000100)) {
-            payload_ = java.util.Collections.unmodifiableList(payload_);
-            bitField0_ = (bitField0_ & ~0x00000100);
-          }
-          result.payload_ = payload_;
-        } else {
-          result.payload_ = payloadBuilder_.build();
-        }
-        if (linksBuilder_ == null) {
-          if (((bitField0_ & 0x00000200) == 0x00000200)) {
-            links_ = java.util.Collections.unmodifiableList(links_);
-            bitField0_ = (bitField0_ & ~0x00000200);
-          }
-          result.links_ = links_;
-        } else {
-          result.links_ = linksBuilder_.build();
-        }
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IU) {
-          return mergeFrom((ipaaca.Ipaaca.IU)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IU other) {
-        if (other == ipaaca.Ipaaca.IU.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (other.hasCategory()) {
-          setCategory(other.getCategory());
-        }
-        if (other.hasPayloadType()) {
-          setPayloadType(other.getPayloadType());
-        }
-        if (other.hasOwnerName()) {
-          setOwnerName(other.getOwnerName());
-        }
-        if (other.hasCommitted()) {
-          setCommitted(other.getCommitted());
-        }
-        if (other.hasAccessMode()) {
-          setAccessMode(other.getAccessMode());
-        }
-        if (other.hasReadOnly()) {
-          setReadOnly(other.getReadOnly());
-        }
-        if (payloadBuilder_ == null) {
-          if (!other.payload_.isEmpty()) {
-            if (payload_.isEmpty()) {
-              payload_ = other.payload_;
-              bitField0_ = (bitField0_ & ~0x00000100);
-            } else {
-              ensurePayloadIsMutable();
-              payload_.addAll(other.payload_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.payload_.isEmpty()) {
-            if (payloadBuilder_.isEmpty()) {
-              payloadBuilder_.dispose();
-              payloadBuilder_ = null;
-              payload_ = other.payload_;
-              bitField0_ = (bitField0_ & ~0x00000100);
-              payloadBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getPayloadFieldBuilder() : null;
-            } else {
-              payloadBuilder_.addAllMessages(other.payload_);
-            }
-          }
-        }
-        if (linksBuilder_ == null) {
-          if (!other.links_.isEmpty()) {
-            if (links_.isEmpty()) {
-              links_ = other.links_;
-              bitField0_ = (bitField0_ & ~0x00000200);
-            } else {
-              ensureLinksIsMutable();
-              links_.addAll(other.links_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.links_.isEmpty()) {
-            if (linksBuilder_.isEmpty()) {
-              linksBuilder_.dispose();
-              linksBuilder_ = null;
-              links_ = other.links_;
-              bitField0_ = (bitField0_ & ~0x00000200);
-              linksBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getLinksFieldBuilder() : null;
-            } else {
-              linksBuilder_.addAllMessages(other.links_);
-            }
-          }
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasCategory()) {
-          
-          return false;
-        }
-        if (!hasPayloadType()) {
-          
-          return false;
-        }
-        if (!hasOwnerName()) {
-          
-          return false;
-        }
-        if (!hasCommitted()) {
-          
-          return false;
-        }
-        if (!hasAccessMode()) {
-          
-          return false;
-        }
-        if (!hasReadOnly()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getPayloadCount(); i++) {
-          if (!getPayload(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        for (int i = 0; i < getLinksCount(); i++) {
-          if (!getLinks(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              category_ = input.readBytes();
-              break;
-            }
-            case 34: {
-              bitField0_ |= 0x00000008;
-              payloadType_ = input.readBytes();
-              break;
-            }
-            case 42: {
-              bitField0_ |= 0x00000010;
-              ownerName_ = input.readBytes();
-              break;
-            }
-            case 48: {
-              bitField0_ |= 0x00000020;
-              committed_ = input.readBool();
-              break;
-            }
-            case 56: {
-              int rawValue = input.readEnum();
-              ipaaca.Ipaaca.IU.AccessMode value = ipaaca.Ipaaca.IU.AccessMode.valueOf(rawValue);
-              if (value == null) {
-                unknownFields.mergeVarintField(7, rawValue);
-              } else {
-                bitField0_ |= 0x00000040;
-                accessMode_ = value;
-              }
-              break;
-            }
-            case 64: {
-              bitField0_ |= 0x00000080;
-              readOnly_ = input.readBool();
-              break;
-            }
-            case 74: {
-              ipaaca.Ipaaca.PayloadItem.Builder subBuilder = ipaaca.Ipaaca.PayloadItem.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addPayload(subBuilder.buildPartial());
-              break;
-            }
-            case 82: {
-              ipaaca.Ipaaca.LinkSet.Builder subBuilder = ipaaca.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addLinks(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // required string category = 3 [default = "undef"];
-      private java.lang.Object category_ = "undef";
-      public boolean hasCategory() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getCategory() {
-        java.lang.Object ref = category_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          category_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setCategory(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        category_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearCategory() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        category_ = getDefaultInstance().getCategory();
-        onChanged();
-        return this;
-      }
-      void setCategory(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        category_ = value;
-        onChanged();
-      }
-      
-      // required string payload_type = 4 [default = "MAP"];
-      private java.lang.Object payloadType_ = "MAP";
-      public boolean hasPayloadType() {
-        return ((bitField0_ & 0x00000008) == 0x00000008);
-      }
-      public String getPayloadType() {
-        java.lang.Object ref = payloadType_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          payloadType_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setPayloadType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000008;
-        payloadType_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearPayloadType() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        payloadType_ = getDefaultInstance().getPayloadType();
-        onChanged();
-        return this;
-      }
-      void setPayloadType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000008;
-        payloadType_ = value;
-        onChanged();
-      }
-      
-      // required string owner_name = 5;
-      private java.lang.Object ownerName_ = "";
-      public boolean hasOwnerName() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public String getOwnerName() {
-        java.lang.Object ref = ownerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          ownerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setOwnerName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000010;
-        ownerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearOwnerName() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        ownerName_ = getDefaultInstance().getOwnerName();
-        onChanged();
-        return this;
-      }
-      void setOwnerName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000010;
-        ownerName_ = value;
-        onChanged();
-      }
-      
-      // required bool committed = 6 [default = false];
-      private boolean committed_ ;
-      public boolean hasCommitted() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public boolean getCommitted() {
-        return committed_;
-      }
-      public Builder setCommitted(boolean value) {
-        bitField0_ |= 0x00000020;
-        committed_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearCommitted() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        committed_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required .ipaaca.IU.AccessMode access_mode = 7 [default = PUSH];
-      private ipaaca.Ipaaca.IU.AccessMode accessMode_ = ipaaca.Ipaaca.IU.AccessMode.PUSH;
-      public boolean hasAccessMode() {
-        return ((bitField0_ & 0x00000040) == 0x00000040);
-      }
-      public ipaaca.Ipaaca.IU.AccessMode getAccessMode() {
-        return accessMode_;
-      }
-      public Builder setAccessMode(ipaaca.Ipaaca.IU.AccessMode value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        bitField0_ |= 0x00000040;
-        accessMode_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearAccessMode() {
-        bitField0_ = (bitField0_ & ~0x00000040);
-        accessMode_ = ipaaca.Ipaaca.IU.AccessMode.PUSH;
-        onChanged();
-        return this;
-      }
-      
-      // required bool read_only = 8 [default = false];
-      private boolean readOnly_ ;
-      public boolean hasReadOnly() {
-        return ((bitField0_ & 0x00000080) == 0x00000080);
-      }
-      public boolean getReadOnly() {
-        return readOnly_;
-      }
-      public Builder setReadOnly(boolean value) {
-        bitField0_ |= 0x00000080;
-        readOnly_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearReadOnly() {
-        bitField0_ = (bitField0_ & ~0x00000080);
-        readOnly_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.PayloadItem payload = 9;
-      private java.util.List<ipaaca.Ipaaca.PayloadItem> payload_ =
-        java.util.Collections.emptyList();
-      private void ensurePayloadIsMutable() {
-        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
-          payload_ = new java.util.ArrayList<ipaaca.Ipaaca.PayloadItem>(payload_);
-          bitField0_ |= 0x00000100;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder> payloadBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.PayloadItem> getPayloadList() {
-        if (payloadBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(payload_);
-        } else {
-          return payloadBuilder_.getMessageList();
-        }
-      }
-      public int getPayloadCount() {
-        if (payloadBuilder_ == null) {
-          return payload_.size();
-        } else {
-          return payloadBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.PayloadItem getPayload(int index) {
-        if (payloadBuilder_ == null) {
-          return payload_.get(index);
-        } else {
-          return payloadBuilder_.getMessage(index);
-        }
-      }
-      public Builder setPayload(
-          int index, ipaaca.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.set(index, value);
-          onChanged();
-        } else {
-          payloadBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setPayload(
-          int index, ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addPayload(ipaaca.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.add(value);
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addPayload(
-          int index, ipaaca.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.add(index, value);
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addPayload(
-          ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.add(builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addPayload(
-          int index, ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllPayload(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.PayloadItem> values) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          super.addAll(values, payload_);
-          onChanged();
-        } else {
-          payloadBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearPayload() {
-        if (payloadBuilder_ == null) {
-          payload_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000100);
-          onChanged();
-        } else {
-          payloadBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removePayload(int index) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.remove(index);
-          onChanged();
-        } else {
-          payloadBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder getPayloadBuilder(
-          int index) {
-        return getPayloadFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-          int index) {
-        if (payloadBuilder_ == null) {
-          return payload_.get(index);  } else {
-          return payloadBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-           getPayloadOrBuilderList() {
-        if (payloadBuilder_ != null) {
-          return payloadBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(payload_);
-        }
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder addPayloadBuilder() {
-        return getPayloadFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder addPayloadBuilder(
-          int index) {
-        return getPayloadFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.PayloadItem.Builder> 
-           getPayloadBuilderList() {
-        return getPayloadFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder> 
-          getPayloadFieldBuilder() {
-        if (payloadBuilder_ == null) {
-          payloadBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder>(
-                  payload_,
-                  ((bitField0_ & 0x00000100) == 0x00000100),
-                  getParentForChildren(),
-                  isClean());
-          payload_ = null;
-        }
-        return payloadBuilder_;
-      }
-      
-      // repeated .ipaaca.LinkSet links = 10;
-      private java.util.List<ipaaca.Ipaaca.LinkSet> links_ =
-        java.util.Collections.emptyList();
-      private void ensureLinksIsMutable() {
-        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
-          links_ = new java.util.ArrayList<ipaaca.Ipaaca.LinkSet>(links_);
-          bitField0_ |= 0x00000200;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> linksBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.LinkSet> getLinksList() {
-        if (linksBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(links_);
-        } else {
-          return linksBuilder_.getMessageList();
-        }
-      }
-      public int getLinksCount() {
-        if (linksBuilder_ == null) {
-          return links_.size();
-        } else {
-          return linksBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet getLinks(int index) {
-        if (linksBuilder_ == null) {
-          return links_.get(index);
-        } else {
-          return linksBuilder_.getMessage(index);
-        }
-      }
-      public Builder setLinks(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.set(index, value);
-          onChanged();
-        } else {
-          linksBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setLinks(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinks(ipaaca.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.add(value);
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addLinks(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.add(index, value);
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addLinks(
-          ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.add(builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinks(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllLinks(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.LinkSet> values) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          super.addAll(values, links_);
-          onChanged();
-        } else {
-          linksBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearLinks() {
-        if (linksBuilder_ == null) {
-          links_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000200);
-          onChanged();
-        } else {
-          linksBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeLinks(int index) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.remove(index);
-          onChanged();
-        } else {
-          linksBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder getLinksBuilder(
-          int index) {
-        return getLinksFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-          int index) {
-        if (linksBuilder_ == null) {
-          return links_.get(index);  } else {
-          return linksBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-           getLinksOrBuilderList() {
-        if (linksBuilder_ != null) {
-          return linksBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(links_);
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addLinksBuilder() {
-        return getLinksFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addLinksBuilder(
-          int index) {
-        return getLinksFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.LinkSet.Builder> 
-           getLinksBuilderList() {
-        return getLinksFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> 
-          getLinksFieldBuilder() {
-        if (linksBuilder_ == null) {
-          linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder>(
-                  links_,
-                  ((bitField0_ & 0x00000200) == 0x00000200),
-                  getParentForChildren(),
-                  isClean());
-          links_ = null;
-        }
-        return linksBuilder_;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IU)
-    }
-    
-    static {
-      defaultInstance = new IU(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IU)
-  }
-  
-  public interface IUPayloadUpdateOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // repeated .ipaaca.PayloadItem new_items = 3;
-    java.util.List<ipaaca.Ipaaca.PayloadItem> 
-        getNewItemsList();
-    ipaaca.Ipaaca.PayloadItem getNewItems(int index);
-    int getNewItemsCount();
-    java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-        getNewItemsOrBuilderList();
-    ipaaca.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-        int index);
-    
-    // repeated string keys_to_remove = 4;
-    java.util.List<String> getKeysToRemoveList();
-    int getKeysToRemoveCount();
-    String getKeysToRemove(int index);
-    
-    // required bool is_delta = 5 [default = false];
-    boolean hasIsDelta();
-    boolean getIsDelta();
-    
-    // required string writer_name = 6;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IUPayloadUpdate extends
-      com.google.protobuf.GeneratedMessage
-      implements IUPayloadUpdateOrBuilder {
-    // Use IUPayloadUpdate.newBuilder() to construct.
-    private IUPayloadUpdate(Builder builder) {
-      super(builder);
-    }
-    private IUPayloadUpdate(boolean noInit) {}
-    
-    private static final IUPayloadUpdate defaultInstance;
-    public static IUPayloadUpdate getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IUPayloadUpdate getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IUPayloadUpdate_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IUPayloadUpdate_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // repeated .ipaaca.PayloadItem new_items = 3;
-    public static final int NEW_ITEMS_FIELD_NUMBER = 3;
-    private java.util.List<ipaaca.Ipaaca.PayloadItem> newItems_;
-    public java.util.List<ipaaca.Ipaaca.PayloadItem> getNewItemsList() {
-      return newItems_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-        getNewItemsOrBuilderList() {
-      return newItems_;
-    }
-    public int getNewItemsCount() {
-      return newItems_.size();
-    }
-    public ipaaca.Ipaaca.PayloadItem getNewItems(int index) {
-      return newItems_.get(index);
-    }
-    public ipaaca.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-        int index) {
-      return newItems_.get(index);
-    }
-    
-    // repeated string keys_to_remove = 4;
-    public static final int KEYS_TO_REMOVE_FIELD_NUMBER = 4;
-    private com.google.protobuf.LazyStringList keysToRemove_;
-    public java.util.List<String>
-        getKeysToRemoveList() {
-      return keysToRemove_;
-    }
-    public int getKeysToRemoveCount() {
-      return keysToRemove_.size();
-    }
-    public String getKeysToRemove(int index) {
-      return keysToRemove_.get(index);
-    }
-    
-    // required bool is_delta = 5 [default = false];
-    public static final int IS_DELTA_FIELD_NUMBER = 5;
-    private boolean isDelta_;
-    public boolean hasIsDelta() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public boolean getIsDelta() {
-      return isDelta_;
-    }
-    
-    // required string writer_name = 6;
-    public static final int WRITER_NAME_FIELD_NUMBER = 6;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      newItems_ = java.util.Collections.emptyList();
-      keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      isDelta_ = false;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasIsDelta()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getNewItemsCount(); i++) {
-        if (!getNewItems(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      for (int i = 0; i < newItems_.size(); i++) {
-        output.writeMessage(3, newItems_.get(i));
-      }
-      for (int i = 0; i < keysToRemove_.size(); i++) {
-        output.writeBytes(4, keysToRemove_.getByteString(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBool(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(6, getWriterNameBytes());
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      for (int i = 0; i < newItems_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, newItems_.get(i));
-      }
-      {
-        int dataSize = 0;
-        for (int i = 0; i < keysToRemove_.size(); i++) {
-          dataSize += com.google.protobuf.CodedOutputStream
-            .computeBytesSizeNoTag(keysToRemove_.getByteString(i));
-        }
-        size += dataSize;
-        size += 1 * getKeysToRemoveList().size();
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(6, getWriterNameBytes());
-      }
-      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 ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IUPayloadUpdate prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IUPayloadUpdateOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IUPayloadUpdate_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IUPayloadUpdate_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IUPayloadUpdate.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getNewItemsFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        if (newItemsBuilder_ == null) {
-          newItems_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        } else {
-          newItemsBuilder_.clear();
-        }
-        keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000008);
-        isDelta_ = false;
-        bitField0_ = (bitField0_ & ~0x00000010);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000020);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IUPayloadUpdate.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IUPayloadUpdate getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IUPayloadUpdate.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IUPayloadUpdate build() {
-        ipaaca.Ipaaca.IUPayloadUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IUPayloadUpdate buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IUPayloadUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IUPayloadUpdate buildPartial() {
-        ipaaca.Ipaaca.IUPayloadUpdate result = new ipaaca.Ipaaca.IUPayloadUpdate(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (newItemsBuilder_ == null) {
-          if (((bitField0_ & 0x00000004) == 0x00000004)) {
-            newItems_ = java.util.Collections.unmodifiableList(newItems_);
-            bitField0_ = (bitField0_ & ~0x00000004);
-          }
-          result.newItems_ = newItems_;
-        } else {
-          result.newItems_ = newItemsBuilder_.build();
-        }
-        if (((bitField0_ & 0x00000008) == 0x00000008)) {
-          keysToRemove_ = new com.google.protobuf.UnmodifiableLazyStringList(
-              keysToRemove_);
-          bitField0_ = (bitField0_ & ~0x00000008);
-        }
-        result.keysToRemove_ = keysToRemove_;
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.isDelta_ = isDelta_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IUPayloadUpdate) {
-          return mergeFrom((ipaaca.Ipaaca.IUPayloadUpdate)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IUPayloadUpdate other) {
-        if (other == ipaaca.Ipaaca.IUPayloadUpdate.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (newItemsBuilder_ == null) {
-          if (!other.newItems_.isEmpty()) {
-            if (newItems_.isEmpty()) {
-              newItems_ = other.newItems_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-            } else {
-              ensureNewItemsIsMutable();
-              newItems_.addAll(other.newItems_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.newItems_.isEmpty()) {
-            if (newItemsBuilder_.isEmpty()) {
-              newItemsBuilder_.dispose();
-              newItemsBuilder_ = null;
-              newItems_ = other.newItems_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-              newItemsBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getNewItemsFieldBuilder() : null;
-            } else {
-              newItemsBuilder_.addAllMessages(other.newItems_);
-            }
-          }
-        }
-        if (!other.keysToRemove_.isEmpty()) {
-          if (keysToRemove_.isEmpty()) {
-            keysToRemove_ = other.keysToRemove_;
-            bitField0_ = (bitField0_ & ~0x00000008);
-          } else {
-            ensureKeysToRemoveIsMutable();
-            keysToRemove_.addAll(other.keysToRemove_);
-          }
-          onChanged();
-        }
-        if (other.hasIsDelta()) {
-          setIsDelta(other.getIsDelta());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasIsDelta()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getNewItemsCount(); i++) {
-          if (!getNewItems(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              ipaaca.Ipaaca.PayloadItem.Builder subBuilder = ipaaca.Ipaaca.PayloadItem.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addNewItems(subBuilder.buildPartial());
-              break;
-            }
-            case 34: {
-              ensureKeysToRemoveIsMutable();
-              keysToRemove_.add(input.readBytes());
-              break;
-            }
-            case 40: {
-              bitField0_ |= 0x00000010;
-              isDelta_ = input.readBool();
-              break;
-            }
-            case 50: {
-              bitField0_ |= 0x00000020;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.PayloadItem new_items = 3;
-      private java.util.List<ipaaca.Ipaaca.PayloadItem> newItems_ =
-        java.util.Collections.emptyList();
-      private void ensureNewItemsIsMutable() {
-        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
-          newItems_ = new java.util.ArrayList<ipaaca.Ipaaca.PayloadItem>(newItems_);
-          bitField0_ |= 0x00000004;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder> newItemsBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.PayloadItem> getNewItemsList() {
-        if (newItemsBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(newItems_);
-        } else {
-          return newItemsBuilder_.getMessageList();
-        }
-      }
-      public int getNewItemsCount() {
-        if (newItemsBuilder_ == null) {
-          return newItems_.size();
-        } else {
-          return newItemsBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.PayloadItem getNewItems(int index) {
-        if (newItemsBuilder_ == null) {
-          return newItems_.get(index);
-        } else {
-          return newItemsBuilder_.getMessage(index);
-        }
-      }
-      public Builder setNewItems(
-          int index, ipaaca.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.set(index, value);
-          onChanged();
-        } else {
-          newItemsBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setNewItems(
-          int index, ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewItems(ipaaca.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.add(value);
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          int index, ipaaca.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.add(index, value);
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.add(builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          int index, ipaaca.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllNewItems(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.PayloadItem> values) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          super.addAll(values, newItems_);
-          onChanged();
-        } else {
-          newItemsBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearNewItems() {
-        if (newItemsBuilder_ == null) {
-          newItems_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-          onChanged();
-        } else {
-          newItemsBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeNewItems(int index) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.remove(index);
-          onChanged();
-        } else {
-          newItemsBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder getNewItemsBuilder(
-          int index) {
-        return getNewItemsFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-          int index) {
-        if (newItemsBuilder_ == null) {
-          return newItems_.get(index);  } else {
-          return newItemsBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.PayloadItemOrBuilder> 
-           getNewItemsOrBuilderList() {
-        if (newItemsBuilder_ != null) {
-          return newItemsBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(newItems_);
-        }
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder addNewItemsBuilder() {
-        return getNewItemsFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.PayloadItem.Builder addNewItemsBuilder(
-          int index) {
-        return getNewItemsFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.PayloadItem.Builder> 
-           getNewItemsBuilderList() {
-        return getNewItemsFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder> 
-          getNewItemsFieldBuilder() {
-        if (newItemsBuilder_ == null) {
-          newItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.PayloadItem, ipaaca.Ipaaca.PayloadItem.Builder, ipaaca.Ipaaca.PayloadItemOrBuilder>(
-                  newItems_,
-                  ((bitField0_ & 0x00000004) == 0x00000004),
-                  getParentForChildren(),
-                  isClean());
-          newItems_ = null;
-        }
-        return newItemsBuilder_;
-      }
-      
-      // repeated string keys_to_remove = 4;
-      private com.google.protobuf.LazyStringList keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      private void ensureKeysToRemoveIsMutable() {
-        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
-          keysToRemove_ = new com.google.protobuf.LazyStringArrayList(keysToRemove_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-      public java.util.List<String>
-          getKeysToRemoveList() {
-        return java.util.Collections.unmodifiableList(keysToRemove_);
-      }
-      public int getKeysToRemoveCount() {
-        return keysToRemove_.size();
-      }
-      public String getKeysToRemove(int index) {
-        return keysToRemove_.get(index);
-      }
-      public Builder setKeysToRemove(
-          int index, String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureKeysToRemoveIsMutable();
-        keysToRemove_.set(index, value);
-        onChanged();
-        return this;
-      }
-      public Builder addKeysToRemove(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureKeysToRemoveIsMutable();
-        keysToRemove_.add(value);
-        onChanged();
-        return this;
-      }
-      public Builder addAllKeysToRemove(
-          java.lang.Iterable<String> values) {
-        ensureKeysToRemoveIsMutable();
-        super.addAll(values, keysToRemove_);
-        onChanged();
-        return this;
-      }
-      public Builder clearKeysToRemove() {
-        keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000008);
-        onChanged();
-        return this;
-      }
-      void addKeysToRemove(com.google.protobuf.ByteString value) {
-        ensureKeysToRemoveIsMutable();
-        keysToRemove_.add(value);
-        onChanged();
-      }
-      
-      // required bool is_delta = 5 [default = false];
-      private boolean isDelta_ ;
-      public boolean hasIsDelta() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public boolean getIsDelta() {
-        return isDelta_;
-      }
-      public Builder setIsDelta(boolean value) {
-        bitField0_ |= 0x00000010;
-        isDelta_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearIsDelta() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        isDelta_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 6;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IUPayloadUpdate)
-    }
-    
-    static {
-      defaultInstance = new IUPayloadUpdate(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IUPayloadUpdate)
-  }
-  
-  public interface IURetractionOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-  }
-  public static final class IURetraction extends
-      com.google.protobuf.GeneratedMessage
-      implements IURetractionOrBuilder {
-    // Use IURetraction.newBuilder() to construct.
-    private IURetraction(Builder builder) {
-      super(builder);
-    }
-    private IURetraction(boolean noInit) {}
-    
-    private static final IURetraction defaultInstance;
-    public static IURetraction getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IURetraction getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IURetraction_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IURetraction_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      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 ipaaca.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IURetraction parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IURetraction prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IURetractionOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IURetraction_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IURetraction_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IURetraction.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IURetraction.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IURetraction getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IURetraction.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IURetraction build() {
-        ipaaca.Ipaaca.IURetraction result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IURetraction buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IURetraction result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IURetraction buildPartial() {
-        ipaaca.Ipaaca.IURetraction result = new ipaaca.Ipaaca.IURetraction(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IURetraction) {
-          return mergeFrom((ipaaca.Ipaaca.IURetraction)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IURetraction other) {
-        if (other == ipaaca.Ipaaca.IURetraction.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IURetraction)
-    }
-    
-    static {
-      defaultInstance = new IURetraction(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IURetraction)
-  }
-  
-  public interface IUCommissionOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // required string writer_name = 3;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IUCommission extends
-      com.google.protobuf.GeneratedMessage
-      implements IUCommissionOrBuilder {
-    // Use IUCommission.newBuilder() to construct.
-    private IUCommission(Builder builder) {
-      super(builder);
-    }
-    private IUCommission(boolean noInit) {}
-    
-    private static final IUCommission defaultInstance;
-    public static IUCommission getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IUCommission getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IUCommission_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IUCommission_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // required string writer_name = 3;
-    public static final int WRITER_NAME_FIELD_NUMBER = 3;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getWriterNameBytes());
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getWriterNameBytes());
-      }
-      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 ipaaca.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IUCommission parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IUCommission prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IUCommissionOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IUCommission_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IUCommission_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IUCommission.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IUCommission.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IUCommission getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IUCommission.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IUCommission build() {
-        ipaaca.Ipaaca.IUCommission result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IUCommission buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IUCommission result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IUCommission buildPartial() {
-        ipaaca.Ipaaca.IUCommission result = new ipaaca.Ipaaca.IUCommission(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IUCommission) {
-          return mergeFrom((ipaaca.Ipaaca.IUCommission)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IUCommission other) {
-        if (other == ipaaca.Ipaaca.IUCommission.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 3;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IUCommission)
-    }
-    
-    static {
-      defaultInstance = new IUCommission(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IUCommission)
-  }
-  
-  public interface IULinkUpdateOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // repeated .ipaaca.LinkSet new_links = 3;
-    java.util.List<ipaaca.Ipaaca.LinkSet> 
-        getNewLinksList();
-    ipaaca.Ipaaca.LinkSet getNewLinks(int index);
-    int getNewLinksCount();
-    java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getNewLinksOrBuilderList();
-    ipaaca.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-        int index);
-    
-    // repeated .ipaaca.LinkSet links_to_remove = 4;
-    java.util.List<ipaaca.Ipaaca.LinkSet> 
-        getLinksToRemoveList();
-    ipaaca.Ipaaca.LinkSet getLinksToRemove(int index);
-    int getLinksToRemoveCount();
-    java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getLinksToRemoveOrBuilderList();
-    ipaaca.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-        int index);
-    
-    // required bool is_delta = 5 [default = false];
-    boolean hasIsDelta();
-    boolean getIsDelta();
-    
-    // required string writer_name = 6;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IULinkUpdate extends
-      com.google.protobuf.GeneratedMessage
-      implements IULinkUpdateOrBuilder {
-    // Use IULinkUpdate.newBuilder() to construct.
-    private IULinkUpdate(Builder builder) {
-      super(builder);
-    }
-    private IULinkUpdate(boolean noInit) {}
-    
-    private static final IULinkUpdate defaultInstance;
-    public static IULinkUpdate getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IULinkUpdate getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IULinkUpdate_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.Ipaaca.internal_static_ipaaca_IULinkUpdate_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // repeated .ipaaca.LinkSet new_links = 3;
-    public static final int NEW_LINKS_FIELD_NUMBER = 3;
-    private java.util.List<ipaaca.Ipaaca.LinkSet> newLinks_;
-    public java.util.List<ipaaca.Ipaaca.LinkSet> getNewLinksList() {
-      return newLinks_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getNewLinksOrBuilderList() {
-      return newLinks_;
-    }
-    public int getNewLinksCount() {
-      return newLinks_.size();
-    }
-    public ipaaca.Ipaaca.LinkSet getNewLinks(int index) {
-      return newLinks_.get(index);
-    }
-    public ipaaca.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-        int index) {
-      return newLinks_.get(index);
-    }
-    
-    // repeated .ipaaca.LinkSet links_to_remove = 4;
-    public static final int LINKS_TO_REMOVE_FIELD_NUMBER = 4;
-    private java.util.List<ipaaca.Ipaaca.LinkSet> linksToRemove_;
-    public java.util.List<ipaaca.Ipaaca.LinkSet> getLinksToRemoveList() {
-      return linksToRemove_;
-    }
-    public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-        getLinksToRemoveOrBuilderList() {
-      return linksToRemove_;
-    }
-    public int getLinksToRemoveCount() {
-      return linksToRemove_.size();
-    }
-    public ipaaca.Ipaaca.LinkSet getLinksToRemove(int index) {
-      return linksToRemove_.get(index);
-    }
-    public ipaaca.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-        int index) {
-      return linksToRemove_.get(index);
-    }
-    
-    // required bool is_delta = 5 [default = false];
-    public static final int IS_DELTA_FIELD_NUMBER = 5;
-    private boolean isDelta_;
-    public boolean hasIsDelta() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public boolean getIsDelta() {
-      return isDelta_;
-    }
-    
-    // required string writer_name = 6;
-    public static final int WRITER_NAME_FIELD_NUMBER = 6;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      newLinks_ = java.util.Collections.emptyList();
-      linksToRemove_ = java.util.Collections.emptyList();
-      isDelta_ = false;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasIsDelta()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getNewLinksCount(); i++) {
-        if (!getNewLinks(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      for (int i = 0; i < getLinksToRemoveCount(); i++) {
-        if (!getLinksToRemove(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      for (int i = 0; i < newLinks_.size(); i++) {
-        output.writeMessage(3, newLinks_.get(i));
-      }
-      for (int i = 0; i < linksToRemove_.size(); i++) {
-        output.writeMessage(4, linksToRemove_.get(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBool(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(6, getWriterNameBytes());
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      for (int i = 0; i < newLinks_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, newLinks_.get(i));
-      }
-      for (int i = 0; i < linksToRemove_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(4, linksToRemove_.get(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(6, getWriterNameBytes());
-      }
-      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 ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.Ipaaca.IULinkUpdate prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.Ipaaca.IULinkUpdateOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IULinkUpdate_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.Ipaaca.internal_static_ipaaca_IULinkUpdate_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.Ipaaca.IULinkUpdate.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getNewLinksFieldBuilder();
-          getLinksToRemoveFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        if (newLinksBuilder_ == null) {
-          newLinks_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        } else {
-          newLinksBuilder_.clear();
-        }
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemove_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-        } else {
-          linksToRemoveBuilder_.clear();
-        }
-        isDelta_ = false;
-        bitField0_ = (bitField0_ & ~0x00000010);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000020);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.Ipaaca.IULinkUpdate.getDescriptor();
-      }
-      
-      public ipaaca.Ipaaca.IULinkUpdate getDefaultInstanceForType() {
-        return ipaaca.Ipaaca.IULinkUpdate.getDefaultInstance();
-      }
-      
-      public ipaaca.Ipaaca.IULinkUpdate build() {
-        ipaaca.Ipaaca.IULinkUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.Ipaaca.IULinkUpdate buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.Ipaaca.IULinkUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.Ipaaca.IULinkUpdate buildPartial() {
-        ipaaca.Ipaaca.IULinkUpdate result = new ipaaca.Ipaaca.IULinkUpdate(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (newLinksBuilder_ == null) {
-          if (((bitField0_ & 0x00000004) == 0x00000004)) {
-            newLinks_ = java.util.Collections.unmodifiableList(newLinks_);
-            bitField0_ = (bitField0_ & ~0x00000004);
-          }
-          result.newLinks_ = newLinks_;
-        } else {
-          result.newLinks_ = newLinksBuilder_.build();
-        }
-        if (linksToRemoveBuilder_ == null) {
-          if (((bitField0_ & 0x00000008) == 0x00000008)) {
-            linksToRemove_ = java.util.Collections.unmodifiableList(linksToRemove_);
-            bitField0_ = (bitField0_ & ~0x00000008);
-          }
-          result.linksToRemove_ = linksToRemove_;
-        } else {
-          result.linksToRemove_ = linksToRemoveBuilder_.build();
-        }
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.isDelta_ = isDelta_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.Ipaaca.IULinkUpdate) {
-          return mergeFrom((ipaaca.Ipaaca.IULinkUpdate)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.Ipaaca.IULinkUpdate other) {
-        if (other == ipaaca.Ipaaca.IULinkUpdate.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (newLinksBuilder_ == null) {
-          if (!other.newLinks_.isEmpty()) {
-            if (newLinks_.isEmpty()) {
-              newLinks_ = other.newLinks_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-            } else {
-              ensureNewLinksIsMutable();
-              newLinks_.addAll(other.newLinks_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.newLinks_.isEmpty()) {
-            if (newLinksBuilder_.isEmpty()) {
-              newLinksBuilder_.dispose();
-              newLinksBuilder_ = null;
-              newLinks_ = other.newLinks_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-              newLinksBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getNewLinksFieldBuilder() : null;
-            } else {
-              newLinksBuilder_.addAllMessages(other.newLinks_);
-            }
-          }
-        }
-        if (linksToRemoveBuilder_ == null) {
-          if (!other.linksToRemove_.isEmpty()) {
-            if (linksToRemove_.isEmpty()) {
-              linksToRemove_ = other.linksToRemove_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-            } else {
-              ensureLinksToRemoveIsMutable();
-              linksToRemove_.addAll(other.linksToRemove_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.linksToRemove_.isEmpty()) {
-            if (linksToRemoveBuilder_.isEmpty()) {
-              linksToRemoveBuilder_.dispose();
-              linksToRemoveBuilder_ = null;
-              linksToRemove_ = other.linksToRemove_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-              linksToRemoveBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getLinksToRemoveFieldBuilder() : null;
-            } else {
-              linksToRemoveBuilder_.addAllMessages(other.linksToRemove_);
-            }
-          }
-        }
-        if (other.hasIsDelta()) {
-          setIsDelta(other.getIsDelta());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasIsDelta()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getNewLinksCount(); i++) {
-          if (!getNewLinks(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        for (int i = 0; i < getLinksToRemoveCount(); i++) {
-          if (!getLinksToRemove(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              ipaaca.Ipaaca.LinkSet.Builder subBuilder = ipaaca.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addNewLinks(subBuilder.buildPartial());
-              break;
-            }
-            case 34: {
-              ipaaca.Ipaaca.LinkSet.Builder subBuilder = ipaaca.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addLinksToRemove(subBuilder.buildPartial());
-              break;
-            }
-            case 40: {
-              bitField0_ |= 0x00000010;
-              isDelta_ = input.readBool();
-              break;
-            }
-            case 50: {
-              bitField0_ |= 0x00000020;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.LinkSet new_links = 3;
-      private java.util.List<ipaaca.Ipaaca.LinkSet> newLinks_ =
-        java.util.Collections.emptyList();
-      private void ensureNewLinksIsMutable() {
-        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
-          newLinks_ = new java.util.ArrayList<ipaaca.Ipaaca.LinkSet>(newLinks_);
-          bitField0_ |= 0x00000004;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> newLinksBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.LinkSet> getNewLinksList() {
-        if (newLinksBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(newLinks_);
-        } else {
-          return newLinksBuilder_.getMessageList();
-        }
-      }
-      public int getNewLinksCount() {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.size();
-        } else {
-          return newLinksBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet getNewLinks(int index) {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.get(index);
-        } else {
-          return newLinksBuilder_.getMessage(index);
-        }
-      }
-      public Builder setNewLinks(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.set(index, value);
-          onChanged();
-        } else {
-          newLinksBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setNewLinks(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewLinks(ipaaca.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.add(value);
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.add(index, value);
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.add(builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllNewLinks(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.LinkSet> values) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          super.addAll(values, newLinks_);
-          onChanged();
-        } else {
-          newLinksBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearNewLinks() {
-        if (newLinksBuilder_ == null) {
-          newLinks_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-          onChanged();
-        } else {
-          newLinksBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeNewLinks(int index) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.remove(index);
-          onChanged();
-        } else {
-          newLinksBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder getNewLinksBuilder(
-          int index) {
-        return getNewLinksFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-          int index) {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.get(index);  } else {
-          return newLinksBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-           getNewLinksOrBuilderList() {
-        if (newLinksBuilder_ != null) {
-          return newLinksBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(newLinks_);
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addNewLinksBuilder() {
-        return getNewLinksFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addNewLinksBuilder(
-          int index) {
-        return getNewLinksFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.LinkSet.Builder> 
-           getNewLinksBuilderList() {
-        return getNewLinksFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> 
-          getNewLinksFieldBuilder() {
-        if (newLinksBuilder_ == null) {
-          newLinksBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder>(
-                  newLinks_,
-                  ((bitField0_ & 0x00000004) == 0x00000004),
-                  getParentForChildren(),
-                  isClean());
-          newLinks_ = null;
-        }
-        return newLinksBuilder_;
-      }
-      
-      // repeated .ipaaca.LinkSet links_to_remove = 4;
-      private java.util.List<ipaaca.Ipaaca.LinkSet> linksToRemove_ =
-        java.util.Collections.emptyList();
-      private void ensureLinksToRemoveIsMutable() {
-        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
-          linksToRemove_ = new java.util.ArrayList<ipaaca.Ipaaca.LinkSet>(linksToRemove_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> linksToRemoveBuilder_;
-      
-      public java.util.List<ipaaca.Ipaaca.LinkSet> getLinksToRemoveList() {
-        if (linksToRemoveBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(linksToRemove_);
-        } else {
-          return linksToRemoveBuilder_.getMessageList();
-        }
-      }
-      public int getLinksToRemoveCount() {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.size();
-        } else {
-          return linksToRemoveBuilder_.getCount();
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet getLinksToRemove(int index) {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.get(index);
-        } else {
-          return linksToRemoveBuilder_.getMessage(index);
-        }
-      }
-      public Builder setLinksToRemove(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.set(index, value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setLinksToRemove(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(ipaaca.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          int index, ipaaca.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(index, value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          int index, ipaaca.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllLinksToRemove(
-          java.lang.Iterable<? extends ipaaca.Ipaaca.LinkSet> values) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          super.addAll(values, linksToRemove_);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearLinksToRemove() {
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemove_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeLinksToRemove(int index) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.remove(index);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder getLinksToRemoveBuilder(
-          int index) {
-        return getLinksToRemoveFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-          int index) {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.get(index);  } else {
-          return linksToRemoveBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.Ipaaca.LinkSetOrBuilder> 
-           getLinksToRemoveOrBuilderList() {
-        if (linksToRemoveBuilder_ != null) {
-          return linksToRemoveBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(linksToRemove_);
-        }
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addLinksToRemoveBuilder() {
-        return getLinksToRemoveFieldBuilder().addBuilder(
-            ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.Ipaaca.LinkSet.Builder addLinksToRemoveBuilder(
-          int index) {
-        return getLinksToRemoveFieldBuilder().addBuilder(
-            index, ipaaca.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.Ipaaca.LinkSet.Builder> 
-           getLinksToRemoveBuilderList() {
-        return getLinksToRemoveFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder> 
-          getLinksToRemoveFieldBuilder() {
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemoveBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.Ipaaca.LinkSet, ipaaca.Ipaaca.LinkSet.Builder, ipaaca.Ipaaca.LinkSetOrBuilder>(
-                  linksToRemove_,
-                  ((bitField0_ & 0x00000008) == 0x00000008),
-                  getParentForChildren(),
-                  isClean());
-          linksToRemove_ = null;
-        }
-        return linksToRemoveBuilder_;
-      }
-      
-      // required bool is_delta = 5 [default = false];
-      private boolean isDelta_ ;
-      public boolean hasIsDelta() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public boolean getIsDelta() {
-        return isDelta_;
-      }
-      public Builder setIsDelta(boolean value) {
-        bitField0_ |= 0x00000010;
-        isDelta_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearIsDelta() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        isDelta_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 6;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.IULinkUpdate)
-    }
-    
-    static {
-      defaultInstance = new IULinkUpdate(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.IULinkUpdate)
-  }
-  
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IntMessage_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IntMessage_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_LinkSet_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_LinkSet_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_PayloadItem_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_PayloadItem_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IU_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IU_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IUPayloadUpdate_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IUPayloadUpdate_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IURetraction_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IURetraction_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IUCommission_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IUCommission_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_IULinkUpdate_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_IULinkUpdate_fieldAccessorTable;
-  
-  public static com.google.protobuf.Descriptors.FileDescriptor
-      getDescriptor() {
-    return descriptor;
-  }
-  private static com.google.protobuf.Descriptors.FileDescriptor
-      descriptor;
-  static {
-    java.lang.String[] descriptorData = {
-      "\n\014ipaaca.proto\022\006ipaaca\"\033\n\nIntMessage\022\r\n\005" +
-      "value\030\001 \002(\021\"(\n\007LinkSet\022\014\n\004type\030\001 \002(\t\022\017\n\007" +
-      "targets\030\002 \003(\t\"<\n\013PayloadItem\022\013\n\003key\030\001 \002(" +
-      "\t\022\r\n\005value\030\002 \002(\t\022\021\n\004type\030\003 \002(\t:\003str\"\310\002\n\002" +
-      "IU\022\013\n\003uid\030\001 \002(\t\022\020\n\010revision\030\002 \002(\r\022\027\n\010cat" +
-      "egory\030\003 \002(\t:\005undef\022\031\n\014payload_type\030\004 \002(\t" +
-      ":\003MAP\022\022\n\nowner_name\030\005 \002(\t\022\030\n\tcommitted\030\006" +
-      " \002(\010:\005false\0220\n\013access_mode\030\007 \002(\0162\025.ipaac" +
-      "a.IU.AccessMode:\004PUSH\022\030\n\tread_only\030\010 \002(\010" +
-      ":\005false\022$\n\007payload\030\t \003(\0132\023.ipaaca.Payloa",
-      "dItem\022\036\n\005links\030\n \003(\0132\017.ipaaca.LinkSet\"/\n" +
-      "\nAccessMode\022\010\n\004PUSH\020\000\022\n\n\006REMOTE\020\001\022\013\n\007MES" +
-      "SAGE\020\002\"\236\001\n\017IUPayloadUpdate\022\013\n\003uid\030\001 \002(\t\022" +
-      "\020\n\010revision\030\002 \002(\r\022&\n\tnew_items\030\003 \003(\0132\023.i" +
-      "paaca.PayloadItem\022\026\n\016keys_to_remove\030\004 \003(" +
-      "\t\022\027\n\010is_delta\030\005 \002(\010:\005false\022\023\n\013writer_nam" +
-      "e\030\006 \002(\t\"-\n\014IURetraction\022\013\n\003uid\030\001 \002(\t\022\020\n\010" +
-      "revision\030\002 \002(\r\"B\n\014IUCommission\022\013\n\003uid\030\001 " +
-      "\002(\t\022\020\n\010revision\030\002 \002(\r\022\023\n\013writer_name\030\003 \002" +
-      "(\t\"\251\001\n\014IULinkUpdate\022\013\n\003uid\030\001 \002(\t\022\020\n\010revi",
-      "sion\030\002 \002(\r\022\"\n\tnew_links\030\003 \003(\0132\017.ipaaca.L" +
-      "inkSet\022(\n\017links_to_remove\030\004 \003(\0132\017.ipaaca" +
-      ".LinkSet\022\027\n\010is_delta\030\005 \002(\010:\005false\022\023\n\013wri" +
-      "ter_name\030\006 \002(\t"
-    };
-    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
-      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
-        public com.google.protobuf.ExtensionRegistry assignDescriptors(
-            com.google.protobuf.Descriptors.FileDescriptor root) {
-          descriptor = root;
-          internal_static_ipaaca_IntMessage_descriptor =
-            getDescriptor().getMessageTypes().get(0);
-          internal_static_ipaaca_IntMessage_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IntMessage_descriptor,
-              new java.lang.String[] { "Value", },
-              ipaaca.Ipaaca.IntMessage.class,
-              ipaaca.Ipaaca.IntMessage.Builder.class);
-          internal_static_ipaaca_LinkSet_descriptor =
-            getDescriptor().getMessageTypes().get(1);
-          internal_static_ipaaca_LinkSet_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_LinkSet_descriptor,
-              new java.lang.String[] { "Type", "Targets", },
-              ipaaca.Ipaaca.LinkSet.class,
-              ipaaca.Ipaaca.LinkSet.Builder.class);
-          internal_static_ipaaca_PayloadItem_descriptor =
-            getDescriptor().getMessageTypes().get(2);
-          internal_static_ipaaca_PayloadItem_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_PayloadItem_descriptor,
-              new java.lang.String[] { "Key", "Value", "Type", },
-              ipaaca.Ipaaca.PayloadItem.class,
-              ipaaca.Ipaaca.PayloadItem.Builder.class);
-          internal_static_ipaaca_IU_descriptor =
-            getDescriptor().getMessageTypes().get(3);
-          internal_static_ipaaca_IU_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IU_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "Category", "PayloadType", "OwnerName", "Committed", "AccessMode", "ReadOnly", "Payload", "Links", },
-              ipaaca.Ipaaca.IU.class,
-              ipaaca.Ipaaca.IU.Builder.class);
-          internal_static_ipaaca_IUPayloadUpdate_descriptor =
-            getDescriptor().getMessageTypes().get(4);
-          internal_static_ipaaca_IUPayloadUpdate_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IUPayloadUpdate_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "NewItems", "KeysToRemove", "IsDelta", "WriterName", },
-              ipaaca.Ipaaca.IUPayloadUpdate.class,
-              ipaaca.Ipaaca.IUPayloadUpdate.Builder.class);
-          internal_static_ipaaca_IURetraction_descriptor =
-            getDescriptor().getMessageTypes().get(5);
-          internal_static_ipaaca_IURetraction_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IURetraction_descriptor,
-              new java.lang.String[] { "Uid", "Revision", },
-              ipaaca.Ipaaca.IURetraction.class,
-              ipaaca.Ipaaca.IURetraction.Builder.class);
-          internal_static_ipaaca_IUCommission_descriptor =
-            getDescriptor().getMessageTypes().get(6);
-          internal_static_ipaaca_IUCommission_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IUCommission_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "WriterName", },
-              ipaaca.Ipaaca.IUCommission.class,
-              ipaaca.Ipaaca.IUCommission.Builder.class);
-          internal_static_ipaaca_IULinkUpdate_descriptor =
-            getDescriptor().getMessageTypes().get(7);
-          internal_static_ipaaca_IULinkUpdate_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_IULinkUpdate_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "NewLinks", "LinksToRemove", "IsDelta", "WriterName", },
-              ipaaca.Ipaaca.IULinkUpdate.class,
-              ipaaca.Ipaaca.IULinkUpdate.Builder.class);
-          return null;
-        }
-      };
-    com.google.protobuf.Descriptors.FileDescriptor
-      .internalBuildGeneratedFileFrom(descriptorData,
-        new com.google.protobuf.Descriptors.FileDescriptor[] {
-        }, assigner);
-  }
-  
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/java/src/ipaaca/LinkUpdateConverter.java b/java/src/ipaaca/LinkUpdateConverter.java
index fa506d01eb16ac0f7ba54bd3e6c691d844bb9d2e..db85edb589f192c7bcb0a90d8f9d0e8c71896567 100644
--- a/java/src/ipaaca/LinkUpdateConverter.java
+++ b/java/src/ipaaca/LinkUpdateConverter.java
@@ -1,6 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
 
 import java.nio.ByteBuffer;
 
diff --git a/java/src/ipaaca/LocalIU.java b/java/src/ipaaca/LocalIU.java
index a73d882dbb34f606dcc374472031b18db6f300a4..8fa38d212386e7e41c8c4c6fc61dded71810ec22 100644
--- a/java/src/ipaaca/LocalIU.java
+++ b/java/src/ipaaca/LocalIU.java
@@ -1,5 +1,10 @@
 package ipaaca;
 
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
+
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -8,11 +13,6 @@ import java.util.Set;
 
 import com.google.common.collect.SetMultimap;
 
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
-
 public class LocalIU extends AbstractIU
 {
 
@@ -248,5 +248,4 @@ public class LocalIU extends AbstractIU
             getOutputBuffer().sendIUPayloadUpdate(this, update);
         }
     }
-
 }
diff --git a/java/src/ipaaca/OutputBuffer.java b/java/src/ipaaca/OutputBuffer.java
index 488e1f37fd4fa6de499817222f971c390941378b..60521414ba5b5959ee4c7e73ca13c343450b0c7e 100644
--- a/java/src/ipaaca/OutputBuffer.java
+++ b/java/src/ipaaca/OutputBuffer.java
@@ -7,12 +7,12 @@ import rsb.RSBException;
 import rsb.patterns.DataCallback;
 import rsb.patterns.LocalServer;
 
-import ipaaca.Ipaaca;
-import ipaaca.Ipaaca.IUCommission;
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
+import ipaaca.protobuf.Ipaaca;
+import ipaaca.protobuf.Ipaaca.IUCommission;
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
 
 import java.util.HashMap;
 import java.util.Map;
diff --git a/java/src/ipaaca/Payload.java b/java/src/ipaaca/Payload.java
index 50f6342d01416dcca73ab439f55de0211a130d55..77d6ec10550db8f439a3668f1d40d1cd30f7696e 100644
--- a/java/src/ipaaca/Payload.java
+++ b/java/src/ipaaca/Payload.java
@@ -1,6 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.PayloadItem;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
 
 import java.util.Collection;
 import java.util.HashMap;
diff --git a/java/src/ipaaca/PayloadConverter.java b/java/src/ipaaca/PayloadConverter.java
index 6e32b40b42f6ccb11632c3cbf67cdc0b1b9445c9..a95e7110080722ec36007713ee3ad802713cfb74 100644
--- a/java/src/ipaaca/PayloadConverter.java
+++ b/java/src/ipaaca/PayloadConverter.java
@@ -1,6 +1,6 @@
 package ipaaca;
 
-import ipaaca.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
 
 import java.nio.ByteBuffer;
 
diff --git a/java/src/ipaaca/RemotePushIU.java b/java/src/ipaaca/RemotePushIU.java
index a0b5392c55eb9885f1b48cc36da02e199e27fe77..b61272aff7cd887cf1b9433b64df0ce57e0200e1 100644
--- a/java/src/ipaaca/RemotePushIU.java
+++ b/java/src/ipaaca/RemotePushIU.java
@@ -1,5 +1,12 @@
 package ipaaca;
 
+import ipaaca.protobuf.Ipaaca;
+import ipaaca.protobuf.Ipaaca.IUCommission;
+import ipaaca.protobuf.Ipaaca.IULinkUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
+
 import java.util.Collection;
 import java.util.HashSet;
 import java.util.List;
@@ -13,12 +20,6 @@ import com.google.common.collect.SetMultimap;
 
 import rsb.RSBException;
 import rsb.patterns.RemoteServer;
-import ipaaca.Ipaaca;
-import ipaaca.Ipaaca.IUCommission;
-import ipaaca.Ipaaca.IULinkUpdate;
-import ipaaca.Ipaaca.IUPayloadUpdate;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
 
 /**
  * A remote IU with access mode 'PUSH'.
diff --git a/java/test/src/ipaaca/ComponentCommunicationIntegrationTest.java b/java/test/src/ipaaca/ComponentCommunicationIntegrationTest.java
index 3041995cc752d11420d5852868c64dd1eeff0e78..02c3958554a711eed00a4345e2ca746bd55bb1ba 100644
--- a/java/test/src/ipaaca/ComponentCommunicationIntegrationTest.java
+++ b/java/test/src/ipaaca/ComponentCommunicationIntegrationTest.java
@@ -10,6 +10,7 @@ import java.util.Set;
 import static org.hamcrest.collection.IsIterableContainingInAnyOrder.*;
 import org.junit.After;
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableMap;
@@ -25,7 +26,8 @@ import static ipaaca.IUTestUtil.*;
  */
 public class ComponentCommunicationIntegrationTest
 {
-    static
+    @BeforeClass
+    public static void setupStatic()
     {
         Initializer.initializeIpaacaRsb();
     }
diff --git a/java/test/src/ipaaca/IUTestUtil.java b/java/test/src/ipaaca/IUTestUtil.java
index aca1b2d442fb361174b4a5364e4608a2a8b49206..9d70c30e141ff62f3f4231191688f6d61ec23597 100644
--- a/java/test/src/ipaaca/IUTestUtil.java
+++ b/java/test/src/ipaaca/IUTestUtil.java
@@ -3,9 +3,9 @@ import static org.hamcrest.collection.IsIterableContainingInAnyOrder.containsInA
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertThat;
 import static org.junit.Assert.assertTrue;
-import ipaaca.Ipaaca.IU;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
+import ipaaca.protobuf.Ipaaca.IU;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
 
 import java.util.Collection;
 import java.util.List;
diff --git a/java/test/src/ipaaca/IuConverterTest.java b/java/test/src/ipaaca/IuConverterTest.java
index 5e2f8ac755ae6c3a42bc63f937f9c8bc62adc247..d1b558ff0bc0191da401c37ea6975dfba98949e4 100644
--- a/java/test/src/ipaaca/IuConverterTest.java
+++ b/java/test/src/ipaaca/IuConverterTest.java
@@ -1,14 +1,15 @@
 package ipaaca;
 
+import ipaaca.protobuf.Ipaaca;
+import ipaaca.protobuf.Ipaaca.IU;
+import ipaaca.protobuf.Ipaaca.IU.AccessMode;
+import ipaaca.protobuf.Ipaaca.LinkSet;
+import ipaaca.protobuf.Ipaaca.PayloadItem;
+
 import java.nio.ByteBuffer;
 import java.util.ArrayList;
 import java.util.List;
 
-import ipaaca.Ipaaca;
-import ipaaca.Ipaaca.IU;
-import ipaaca.Ipaaca.IU.AccessMode;
-import ipaaca.Ipaaca.LinkSet;
-import ipaaca.Ipaaca.PayloadItem;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.*;
 import static org.mockito.Mockito.*;
diff --git a/java/test/src/ipaaca/JavaPythonTest.java b/java/test/src/ipaaca/JavaPythonTest.java
index 18e6150298fceb58d3e30aeac3f08de0870e0656..f046631892eaf4b373fe268d6819c3a7a3f76265 100644
--- a/java/test/src/ipaaca/JavaPythonTest.java
+++ b/java/test/src/ipaaca/JavaPythonTest.java
@@ -11,14 +11,22 @@ import java.io.InputStreamReader;
 import java.util.Set;
 
 import org.junit.Before;
+import org.junit.BeforeClass;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableSet;
 
+/**
+ * Integration tests to test the connection between Python and Java Ipaaca modules.
+ * Requires a running spread daemon.
+ * @author hvanwelbergen
+ *
+ */
 public class JavaPythonTest
 {
 
-    static
+    @BeforeClass
+    public static void setupStatic()
     {
         Initializer.initializeIpaacaRsb();
     }
diff --git a/java/test/src/ipaaca/LocalIUTest.java b/java/test/src/ipaaca/LocalIUTest.java
index 61e4db52b35729abdbfad6937b48e41cfe5b1bcf..eb58b6400437c909c9af68bb63ea38317ae17d4d 100644
--- a/java/test/src/ipaaca/LocalIUTest.java
+++ b/java/test/src/ipaaca/LocalIUTest.java
@@ -1,7 +1,7 @@
 package ipaaca;
 
 import static org.junit.Assert.*;
-import ipaaca.Ipaaca.IUPayloadUpdate;
+import ipaaca.protobuf.Ipaaca.IUPayloadUpdate;
 
 import org.junit.Before;
 import org.junit.Test;
diff --git a/proto/build.properties b/proto/build.properties
deleted file mode 100644
index c6cb709e3c9a5ac48c8deb2d502d0cfc9beae574..0000000000000000000000000000000000000000
--- a/proto/build.properties
+++ /dev/null
@@ -1,4 +0,0 @@
-language=proto
-resolve.status=beta
-resource.path=
-rebuild.list=
diff --git a/proto/build.xml b/proto/build.xml
deleted file mode 100644
index 7be237d759bae3f89d5d1ba435c967fa1c3eb6d6..0000000000000000000000000000000000000000
--- a/proto/build.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project name="IpaacaJava"  default="run">
-   <import file="../../soashared/ant/build.xml" />
-</project>
diff --git a/proto/build/cpp/src/ipaaca.pb.cc b/proto/build/cpp/src/ipaaca.pb.cc
deleted file mode 100644
index 3364b9c7e86c8e1d3dd0e1d79d286eaba738d37c..0000000000000000000000000000000000000000
--- a/proto/build/cpp/src/ipaaca.pb.cc
+++ /dev/null
@@ -1,3292 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-
-#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
-#include "src/ipaaca.pb.h"
-
-#include <algorithm>
-
-#include <google/protobuf/stubs/once.h>
-#include <google/protobuf/io/coded_stream.h>
-#include <google/protobuf/wire_format_lite_inl.h>
-#include <google/protobuf/descriptor.h>
-#include <google/protobuf/reflection_ops.h>
-#include <google/protobuf/wire_format.h>
-// @@protoc_insertion_point(includes)
-
-namespace ipaaca {
-namespace protobuf {
-
-namespace {
-
-const ::google::protobuf::Descriptor* IntMessage_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  IntMessage_reflection_ = NULL;
-const ::google::protobuf::Descriptor* LinkSet_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  LinkSet_reflection_ = NULL;
-const ::google::protobuf::Descriptor* PayloadItem_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  PayloadItem_reflection_ = NULL;
-const ::google::protobuf::Descriptor* IU_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  IU_reflection_ = NULL;
-const ::google::protobuf::EnumDescriptor* IU_AccessMode_descriptor_ = NULL;
-const ::google::protobuf::Descriptor* IUPayloadUpdate_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  IUPayloadUpdate_reflection_ = NULL;
-const ::google::protobuf::Descriptor* IURetraction_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  IURetraction_reflection_ = NULL;
-const ::google::protobuf::Descriptor* IUCommission_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  IUCommission_reflection_ = NULL;
-const ::google::protobuf::Descriptor* IULinkUpdate_descriptor_ = NULL;
-const ::google::protobuf::internal::GeneratedMessageReflection*
-  IULinkUpdate_reflection_ = NULL;
-
-}  // namespace
-
-
-void protobuf_AssignDesc_src_2fipaaca_2eproto() {
-  protobuf_AddDesc_src_2fipaaca_2eproto();
-  const ::google::protobuf::FileDescriptor* file =
-    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
-      "src/ipaaca.proto");
-  GOOGLE_CHECK(file != NULL);
-  IntMessage_descriptor_ = file->message_type(0);
-  static const int IntMessage_offsets_[1] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IntMessage, value_),
-  };
-  IntMessage_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      IntMessage_descriptor_,
-      IntMessage::default_instance_,
-      IntMessage_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IntMessage, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IntMessage, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(IntMessage));
-  LinkSet_descriptor_ = file->message_type(1);
-  static const int LinkSet_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LinkSet, type_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LinkSet, targets_),
-  };
-  LinkSet_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      LinkSet_descriptor_,
-      LinkSet::default_instance_,
-      LinkSet_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LinkSet, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(LinkSet, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(LinkSet));
-  PayloadItem_descriptor_ = file->message_type(2);
-  static const int PayloadItem_offsets_[3] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PayloadItem, key_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PayloadItem, value_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PayloadItem, type_),
-  };
-  PayloadItem_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      PayloadItem_descriptor_,
-      PayloadItem::default_instance_,
-      PayloadItem_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PayloadItem, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(PayloadItem, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(PayloadItem));
-  IU_descriptor_ = file->message_type(3);
-  static const int IU_offsets_[10] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, uid_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, revision_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, category_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, payload_type_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, owner_name_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, committed_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, access_mode_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, read_only_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, payload_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, links_),
-  };
-  IU_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      IU_descriptor_,
-      IU::default_instance_,
-      IU_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IU, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(IU));
-  IU_AccessMode_descriptor_ = IU_descriptor_->enum_type(0);
-  IUPayloadUpdate_descriptor_ = file->message_type(4);
-  static const int IUPayloadUpdate_offsets_[6] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUPayloadUpdate, uid_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUPayloadUpdate, revision_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUPayloadUpdate, new_items_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUPayloadUpdate, keys_to_remove_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUPayloadUpdate, is_delta_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUPayloadUpdate, writer_name_),
-  };
-  IUPayloadUpdate_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      IUPayloadUpdate_descriptor_,
-      IUPayloadUpdate::default_instance_,
-      IUPayloadUpdate_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUPayloadUpdate, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUPayloadUpdate, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(IUPayloadUpdate));
-  IURetraction_descriptor_ = file->message_type(5);
-  static const int IURetraction_offsets_[2] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IURetraction, uid_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IURetraction, revision_),
-  };
-  IURetraction_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      IURetraction_descriptor_,
-      IURetraction::default_instance_,
-      IURetraction_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IURetraction, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IURetraction, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(IURetraction));
-  IUCommission_descriptor_ = file->message_type(6);
-  static const int IUCommission_offsets_[3] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUCommission, uid_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUCommission, revision_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUCommission, writer_name_),
-  };
-  IUCommission_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      IUCommission_descriptor_,
-      IUCommission::default_instance_,
-      IUCommission_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUCommission, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUCommission, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(IUCommission));
-  IULinkUpdate_descriptor_ = file->message_type(7);
-  static const int IULinkUpdate_offsets_[6] = {
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IULinkUpdate, uid_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IULinkUpdate, revision_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IULinkUpdate, new_links_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IULinkUpdate, links_to_remove_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IULinkUpdate, is_delta_),
-    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IULinkUpdate, writer_name_),
-  };
-  IULinkUpdate_reflection_ =
-    new ::google::protobuf::internal::GeneratedMessageReflection(
-      IULinkUpdate_descriptor_,
-      IULinkUpdate::default_instance_,
-      IULinkUpdate_offsets_,
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IULinkUpdate, _has_bits_[0]),
-      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IULinkUpdate, _unknown_fields_),
-      -1,
-      ::google::protobuf::DescriptorPool::generated_pool(),
-      ::google::protobuf::MessageFactory::generated_factory(),
-      sizeof(IULinkUpdate));
-}
-
-namespace {
-
-GOOGLE_PROTOBUF_DECLARE_ONCE(protobuf_AssignDescriptors_once_);
-inline void protobuf_AssignDescriptorsOnce() {
-  ::google::protobuf::GoogleOnceInit(&protobuf_AssignDescriptors_once_,
-                 &protobuf_AssignDesc_src_2fipaaca_2eproto);
-}
-
-void protobuf_RegisterTypes(const ::std::string&) {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    IntMessage_descriptor_, &IntMessage::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    LinkSet_descriptor_, &LinkSet::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    PayloadItem_descriptor_, &PayloadItem::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    IU_descriptor_, &IU::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    IUPayloadUpdate_descriptor_, &IUPayloadUpdate::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    IURetraction_descriptor_, &IURetraction::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    IUCommission_descriptor_, &IUCommission::default_instance());
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
-    IULinkUpdate_descriptor_, &IULinkUpdate::default_instance());
-}
-
-}  // namespace
-
-void protobuf_ShutdownFile_src_2fipaaca_2eproto() {
-  delete IntMessage::default_instance_;
-  delete IntMessage_reflection_;
-  delete LinkSet::default_instance_;
-  delete LinkSet_reflection_;
-  delete PayloadItem::default_instance_;
-  delete PayloadItem_reflection_;
-  delete IU::default_instance_;
-  delete IU_reflection_;
-  delete IUPayloadUpdate::default_instance_;
-  delete IUPayloadUpdate_reflection_;
-  delete IURetraction::default_instance_;
-  delete IURetraction_reflection_;
-  delete IUCommission::default_instance_;
-  delete IUCommission_reflection_;
-  delete IULinkUpdate::default_instance_;
-  delete IULinkUpdate_reflection_;
-}
-
-void protobuf_AddDesc_src_2fipaaca_2eproto() {
-  static bool already_here = false;
-  if (already_here) return;
-  already_here = true;
-  GOOGLE_PROTOBUF_VERIFY_VERSION;
-
-  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
-    "\n\020src/ipaaca.proto\022\017ipaaca.protobuf\"\033\n\nI"
-    "ntMessage\022\r\n\005value\030\001 \002(\021\"(\n\007LinkSet\022\014\n\004t"
-    "ype\030\001 \002(\t\022\017\n\007targets\030\002 \003(\t\"<\n\013PayloadIte"
-    "m\022\013\n\003key\030\001 \002(\t\022\r\n\005value\030\002 \002(\t\022\021\n\004type\030\003 "
-    "\002(\t:\003str\"\343\002\n\002IU\022\013\n\003uid\030\001 \002(\t\022\020\n\010revision"
-    "\030\002 \002(\r\022\027\n\010category\030\003 \002(\t:\005undef\022\031\n\014paylo"
-    "ad_type\030\004 \002(\t:\003MAP\022\022\n\nowner_name\030\005 \002(\t\022\030"
-    "\n\tcommitted\030\006 \002(\010:\005false\0229\n\013access_mode\030"
-    "\007 \002(\0162\036.ipaaca.protobuf.IU.AccessMode:\004P"
-    "USH\022\030\n\tread_only\030\010 \002(\010:\005false\022-\n\007payload"
-    "\030\t \003(\0132\034.ipaaca.protobuf.PayloadItem\022\'\n\005"
-    "links\030\n \003(\0132\030.ipaaca.protobuf.LinkSet\"/\n"
-    "\nAccessMode\022\010\n\004PUSH\020\000\022\n\n\006REMOTE\020\001\022\013\n\007MES"
-    "SAGE\020\002\"\247\001\n\017IUPayloadUpdate\022\013\n\003uid\030\001 \002(\t\022"
-    "\020\n\010revision\030\002 \002(\r\022/\n\tnew_items\030\003 \003(\0132\034.i"
-    "paaca.protobuf.PayloadItem\022\026\n\016keys_to_re"
-    "move\030\004 \003(\t\022\027\n\010is_delta\030\005 \002(\010:\005false\022\023\n\013w"
-    "riter_name\030\006 \002(\t\"-\n\014IURetraction\022\013\n\003uid\030"
-    "\001 \002(\t\022\020\n\010revision\030\002 \002(\r\"B\n\014IUCommission\022"
-    "\013\n\003uid\030\001 \002(\t\022\020\n\010revision\030\002 \002(\r\022\023\n\013writer"
-    "_name\030\003 \002(\t\"\273\001\n\014IULinkUpdate\022\013\n\003uid\030\001 \002("
-    "\t\022\020\n\010revision\030\002 \002(\r\022+\n\tnew_links\030\003 \003(\0132\030"
-    ".ipaaca.protobuf.LinkSet\0221\n\017links_to_rem"
-    "ove\030\004 \003(\0132\030.ipaaca.protobuf.LinkSet\022\027\n\010i"
-    "s_delta\030\005 \002(\010:\005false\022\023\n\013writer_name\030\006 \002("
-    "\t", 1001);
-  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
-    "src/ipaaca.proto", &protobuf_RegisterTypes);
-  IntMessage::default_instance_ = new IntMessage();
-  LinkSet::default_instance_ = new LinkSet();
-  PayloadItem::default_instance_ = new PayloadItem();
-  IU::default_instance_ = new IU();
-  IUPayloadUpdate::default_instance_ = new IUPayloadUpdate();
-  IURetraction::default_instance_ = new IURetraction();
-  IUCommission::default_instance_ = new IUCommission();
-  IULinkUpdate::default_instance_ = new IULinkUpdate();
-  IntMessage::default_instance_->InitAsDefaultInstance();
-  LinkSet::default_instance_->InitAsDefaultInstance();
-  PayloadItem::default_instance_->InitAsDefaultInstance();
-  IU::default_instance_->InitAsDefaultInstance();
-  IUPayloadUpdate::default_instance_->InitAsDefaultInstance();
-  IURetraction::default_instance_->InitAsDefaultInstance();
-  IUCommission::default_instance_->InitAsDefaultInstance();
-  IULinkUpdate::default_instance_->InitAsDefaultInstance();
-  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_src_2fipaaca_2eproto);
-}
-
-// Force AddDescriptors() to be called at static initialization time.
-struct StaticDescriptorInitializer_src_2fipaaca_2eproto {
-  StaticDescriptorInitializer_src_2fipaaca_2eproto() {
-    protobuf_AddDesc_src_2fipaaca_2eproto();
-  }
-} static_descriptor_initializer_src_2fipaaca_2eproto_;
-
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int IntMessage::kValueFieldNumber;
-#endif  // !_MSC_VER
-
-IntMessage::IntMessage()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void IntMessage::InitAsDefaultInstance() {
-}
-
-IntMessage::IntMessage(const IntMessage& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void IntMessage::SharedCtor() {
-  _cached_size_ = 0;
-  value_ = 0;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-IntMessage::~IntMessage() {
-  SharedDtor();
-}
-
-void IntMessage::SharedDtor() {
-  if (this != default_instance_) {
-  }
-}
-
-void IntMessage::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* IntMessage::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return IntMessage_descriptor_;
-}
-
-const IntMessage& IntMessage::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_src_2fipaaca_2eproto();  return *default_instance_;
-}
-
-IntMessage* IntMessage::default_instance_ = NULL;
-
-IntMessage* IntMessage::New() const {
-  return new IntMessage;
-}
-
-void IntMessage::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    value_ = 0;
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool IntMessage::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required sint32 value = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::int32, ::google::protobuf::internal::WireFormatLite::TYPE_SINT32>(
-                 input, &value_)));
-          set_has_value();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-      
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void IntMessage::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required sint32 value = 1;
-  if (has_value()) {
-    ::google::protobuf::internal::WireFormatLite::WriteSInt32(1, this->value(), output);
-  }
-  
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* IntMessage::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required sint32 value = 1;
-  if (has_value()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteSInt32ToArray(1, this->value(), target);
-  }
-  
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int IntMessage::ByteSize() const {
-  int total_size = 0;
-  
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required sint32 value = 1;
-    if (has_value()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::SInt32Size(
-          this->value());
-    }
-    
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void IntMessage::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const IntMessage* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const IntMessage*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void IntMessage::MergeFrom(const IntMessage& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_value()) {
-      set_value(from.value());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void IntMessage::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void IntMessage::CopyFrom(const IntMessage& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool IntMessage::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
-  
-  return true;
-}
-
-void IntMessage::Swap(IntMessage* other) {
-  if (other != this) {
-    std::swap(value_, other->value_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata IntMessage::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = IntMessage_descriptor_;
-  metadata.reflection = IntMessage_reflection_;
-  return metadata;
-}
-
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int LinkSet::kTypeFieldNumber;
-const int LinkSet::kTargetsFieldNumber;
-#endif  // !_MSC_VER
-
-LinkSet::LinkSet()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void LinkSet::InitAsDefaultInstance() {
-}
-
-LinkSet::LinkSet(const LinkSet& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void LinkSet::SharedCtor() {
-  _cached_size_ = 0;
-  type_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-LinkSet::~LinkSet() {
-  SharedDtor();
-}
-
-void LinkSet::SharedDtor() {
-  if (type_ != &::google::protobuf::internal::kEmptyString) {
-    delete type_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void LinkSet::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* LinkSet::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return LinkSet_descriptor_;
-}
-
-const LinkSet& LinkSet::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_src_2fipaaca_2eproto();  return *default_instance_;
-}
-
-LinkSet* LinkSet::default_instance_ = NULL;
-
-LinkSet* LinkSet::New() const {
-  return new LinkSet;
-}
-
-void LinkSet::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_type()) {
-      if (type_ != &::google::protobuf::internal::kEmptyString) {
-        type_->clear();
-      }
-    }
-  }
-  targets_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool LinkSet::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string type = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_type()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->type().data(), this->type().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_targets;
-        break;
-      }
-      
-      // repeated string targets = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_targets:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->add_targets()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->targets(0).data(), this->targets(0).length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_targets;
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-      
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void LinkSet::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string type = 1;
-  if (has_type()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->type().data(), this->type().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->type(), output);
-  }
-  
-  // repeated string targets = 2;
-  for (int i = 0; i < this->targets_size(); i++) {
-  ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-    this->targets(i).data(), this->targets(i).length(),
-    ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      2, this->targets(i), output);
-  }
-  
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* LinkSet::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string type = 1;
-  if (has_type()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->type().data(), this->type().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->type(), target);
-  }
-  
-  // repeated string targets = 2;
-  for (int i = 0; i < this->targets_size(); i++) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->targets(i).data(), this->targets(i).length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteStringToArray(2, this->targets(i), target);
-  }
-  
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int LinkSet::ByteSize() const {
-  int total_size = 0;
-  
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string type = 1;
-    if (has_type()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->type());
-    }
-    
-  }
-  // repeated string targets = 2;
-  total_size += 1 * this->targets_size();
-  for (int i = 0; i < this->targets_size(); i++) {
-    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
-      this->targets(i));
-  }
-  
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void LinkSet::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const LinkSet* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const LinkSet*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void LinkSet::MergeFrom(const LinkSet& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  targets_.MergeFrom(from.targets_);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_type()) {
-      set_type(from.type());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void LinkSet::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void LinkSet::CopyFrom(const LinkSet& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool LinkSet::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000001) != 0x00000001) return false;
-  
-  return true;
-}
-
-void LinkSet::Swap(LinkSet* other) {
-  if (other != this) {
-    std::swap(type_, other->type_);
-    targets_.Swap(&other->targets_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata LinkSet::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = LinkSet_descriptor_;
-  metadata.reflection = LinkSet_reflection_;
-  return metadata;
-}
-
-
-// ===================================================================
-
-const ::std::string PayloadItem::_default_type_("str");
-#ifndef _MSC_VER
-const int PayloadItem::kKeyFieldNumber;
-const int PayloadItem::kValueFieldNumber;
-const int PayloadItem::kTypeFieldNumber;
-#endif  // !_MSC_VER
-
-PayloadItem::PayloadItem()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void PayloadItem::InitAsDefaultInstance() {
-}
-
-PayloadItem::PayloadItem(const PayloadItem& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void PayloadItem::SharedCtor() {
-  _cached_size_ = 0;
-  key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  value_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  type_ = const_cast< ::std::string*>(&_default_type_);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-PayloadItem::~PayloadItem() {
-  SharedDtor();
-}
-
-void PayloadItem::SharedDtor() {
-  if (key_ != &::google::protobuf::internal::kEmptyString) {
-    delete key_;
-  }
-  if (value_ != &::google::protobuf::internal::kEmptyString) {
-    delete value_;
-  }
-  if (type_ != &_default_type_) {
-    delete type_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void PayloadItem::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* PayloadItem::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return PayloadItem_descriptor_;
-}
-
-const PayloadItem& PayloadItem::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_src_2fipaaca_2eproto();  return *default_instance_;
-}
-
-PayloadItem* PayloadItem::default_instance_ = NULL;
-
-PayloadItem* PayloadItem::New() const {
-  return new PayloadItem;
-}
-
-void PayloadItem::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_key()) {
-      if (key_ != &::google::protobuf::internal::kEmptyString) {
-        key_->clear();
-      }
-    }
-    if (has_value()) {
-      if (value_ != &::google::protobuf::internal::kEmptyString) {
-        value_->clear();
-      }
-    }
-    if (has_type()) {
-      if (type_ != &_default_type_) {
-        type_->assign(_default_type_);
-      }
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool PayloadItem::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string key = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_key()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->key().data(), this->key().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(18)) goto parse_value;
-        break;
-      }
-      
-      // required string value = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_value:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_value()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->value().data(), this->value().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_type;
-        break;
-      }
-      
-      // required string type = 3 [default = "str"];
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_type:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_type()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->type().data(), this->type().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-      
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void PayloadItem::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string key = 1;
-  if (has_key()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->key().data(), this->key().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->key(), output);
-  }
-  
-  // required string value = 2;
-  if (has_value()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->value().data(), this->value().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      2, this->value(), output);
-  }
-  
-  // required string type = 3 [default = "str"];
-  if (has_type()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->type().data(), this->type().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      3, this->type(), output);
-  }
-  
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* PayloadItem::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string key = 1;
-  if (has_key()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->key().data(), this->key().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->key(), target);
-  }
-  
-  // required string value = 2;
-  if (has_value()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->value().data(), this->value().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        2, this->value(), target);
-  }
-  
-  // required string type = 3 [default = "str"];
-  if (has_type()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->type().data(), this->type().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        3, this->type(), target);
-  }
-  
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int PayloadItem::ByteSize() const {
-  int total_size = 0;
-  
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string key = 1;
-    if (has_key()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->key());
-    }
-    
-    // required string value = 2;
-    if (has_value()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->value());
-    }
-    
-    // required string type = 3 [default = "str"];
-    if (has_type()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->type());
-    }
-    
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void PayloadItem::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const PayloadItem* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const PayloadItem*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void PayloadItem::MergeFrom(const PayloadItem& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_key()) {
-      set_key(from.key());
-    }
-    if (from.has_value()) {
-      set_value(from.value());
-    }
-    if (from.has_type()) {
-      set_type(from.type());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void PayloadItem::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void PayloadItem::CopyFrom(const PayloadItem& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool PayloadItem::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
-  
-  return true;
-}
-
-void PayloadItem::Swap(PayloadItem* other) {
-  if (other != this) {
-    std::swap(key_, other->key_);
-    std::swap(value_, other->value_);
-    std::swap(type_, other->type_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata PayloadItem::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = PayloadItem_descriptor_;
-  metadata.reflection = PayloadItem_reflection_;
-  return metadata;
-}
-
-
-// ===================================================================
-
-const ::google::protobuf::EnumDescriptor* IU_AccessMode_descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return IU_AccessMode_descriptor_;
-}
-bool IU_AccessMode_IsValid(int value) {
-  switch(value) {
-    case 0:
-    case 1:
-    case 2:
-      return true;
-    default:
-      return false;
-  }
-}
-
-#ifndef _MSC_VER
-const IU_AccessMode IU::PUSH;
-const IU_AccessMode IU::REMOTE;
-const IU_AccessMode IU::MESSAGE;
-const IU_AccessMode IU::AccessMode_MIN;
-const IU_AccessMode IU::AccessMode_MAX;
-const int IU::AccessMode_ARRAYSIZE;
-#endif  // _MSC_VER
-const ::std::string IU::_default_category_("undef");
-const ::std::string IU::_default_payload_type_("MAP");
-#ifndef _MSC_VER
-const int IU::kUidFieldNumber;
-const int IU::kRevisionFieldNumber;
-const int IU::kCategoryFieldNumber;
-const int IU::kPayloadTypeFieldNumber;
-const int IU::kOwnerNameFieldNumber;
-const int IU::kCommittedFieldNumber;
-const int IU::kAccessModeFieldNumber;
-const int IU::kReadOnlyFieldNumber;
-const int IU::kPayloadFieldNumber;
-const int IU::kLinksFieldNumber;
-#endif  // !_MSC_VER
-
-IU::IU()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void IU::InitAsDefaultInstance() {
-}
-
-IU::IU(const IU& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void IU::SharedCtor() {
-  _cached_size_ = 0;
-  uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  revision_ = 0u;
-  category_ = const_cast< ::std::string*>(&_default_category_);
-  payload_type_ = const_cast< ::std::string*>(&_default_payload_type_);
-  owner_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  committed_ = false;
-  access_mode_ = 0;
-  read_only_ = false;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-IU::~IU() {
-  SharedDtor();
-}
-
-void IU::SharedDtor() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    delete uid_;
-  }
-  if (category_ != &_default_category_) {
-    delete category_;
-  }
-  if (payload_type_ != &_default_payload_type_) {
-    delete payload_type_;
-  }
-  if (owner_name_ != &::google::protobuf::internal::kEmptyString) {
-    delete owner_name_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void IU::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* IU::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return IU_descriptor_;
-}
-
-const IU& IU::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_src_2fipaaca_2eproto();  return *default_instance_;
-}
-
-IU* IU::default_instance_ = NULL;
-
-IU* IU::New() const {
-  return new IU;
-}
-
-void IU::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_uid()) {
-      if (uid_ != &::google::protobuf::internal::kEmptyString) {
-        uid_->clear();
-      }
-    }
-    revision_ = 0u;
-    if (has_category()) {
-      if (category_ != &_default_category_) {
-        category_->assign(_default_category_);
-      }
-    }
-    if (has_payload_type()) {
-      if (payload_type_ != &_default_payload_type_) {
-        payload_type_->assign(_default_payload_type_);
-      }
-    }
-    if (has_owner_name()) {
-      if (owner_name_ != &::google::protobuf::internal::kEmptyString) {
-        owner_name_->clear();
-      }
-    }
-    committed_ = false;
-    access_mode_ = 0;
-    read_only_ = false;
-  }
-  payload_.Clear();
-  links_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool IU::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string uid = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_uid()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->uid().data(), this->uid().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_revision;
-        break;
-      }
-      
-      // required uint32 revision = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_revision:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, &revision_)));
-          set_has_revision();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_category;
-        break;
-      }
-      
-      // required string category = 3 [default = "undef"];
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_category:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_category()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->category().data(), this->category().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(34)) goto parse_payload_type;
-        break;
-      }
-      
-      // required string payload_type = 4 [default = "MAP"];
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_payload_type:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_payload_type()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->payload_type().data(), this->payload_type().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(42)) goto parse_owner_name;
-        break;
-      }
-      
-      // required string owner_name = 5;
-      case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_owner_name:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_owner_name()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->owner_name().data(), this->owner_name().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(48)) goto parse_committed;
-        break;
-      }
-      
-      // required bool committed = 6 [default = false];
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_committed:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
-                 input, &committed_)));
-          set_has_committed();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(56)) goto parse_access_mode;
-        break;
-      }
-      
-      // required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-      case 7: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_access_mode:
-          int value;
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   int, ::google::protobuf::internal::WireFormatLite::TYPE_ENUM>(
-                 input, &value)));
-          if (::ipaaca::protobuf::IU_AccessMode_IsValid(value)) {
-            set_access_mode(static_cast< ::ipaaca::protobuf::IU_AccessMode >(value));
-          } else {
-            mutable_unknown_fields()->AddVarint(7, value);
-          }
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(64)) goto parse_read_only;
-        break;
-      }
-      
-      // required bool read_only = 8 [default = false];
-      case 8: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_read_only:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
-                 input, &read_only_)));
-          set_has_read_only();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(74)) goto parse_payload;
-        break;
-      }
-      
-      // repeated .ipaaca.protobuf.PayloadItem payload = 9;
-      case 9: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_payload:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-                input, add_payload()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(74)) goto parse_payload;
-        if (input->ExpectTag(82)) goto parse_links;
-        break;
-      }
-      
-      // repeated .ipaaca.protobuf.LinkSet links = 10;
-      case 10: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_links:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-                input, add_links()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(82)) goto parse_links;
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-      
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void IU::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->uid(), output);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->revision(), output);
-  }
-  
-  // required string category = 3 [default = "undef"];
-  if (has_category()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->category().data(), this->category().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      3, this->category(), output);
-  }
-  
-  // required string payload_type = 4 [default = "MAP"];
-  if (has_payload_type()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->payload_type().data(), this->payload_type().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      4, this->payload_type(), output);
-  }
-  
-  // required string owner_name = 5;
-  if (has_owner_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->owner_name().data(), this->owner_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      5, this->owner_name(), output);
-  }
-  
-  // required bool committed = 6 [default = false];
-  if (has_committed()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBool(6, this->committed(), output);
-  }
-  
-  // required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-  if (has_access_mode()) {
-    ::google::protobuf::internal::WireFormatLite::WriteEnum(
-      7, this->access_mode(), output);
-  }
-  
-  // required bool read_only = 8 [default = false];
-  if (has_read_only()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBool(8, this->read_only(), output);
-  }
-  
-  // repeated .ipaaca.protobuf.PayloadItem payload = 9;
-  for (int i = 0; i < this->payload_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      9, this->payload(i), output);
-  }
-  
-  // repeated .ipaaca.protobuf.LinkSet links = 10;
-  for (int i = 0; i < this->links_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      10, this->links(i), output);
-  }
-  
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* IU::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->uid(), target);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->revision(), target);
-  }
-  
-  // required string category = 3 [default = "undef"];
-  if (has_category()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->category().data(), this->category().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        3, this->category(), target);
-  }
-  
-  // required string payload_type = 4 [default = "MAP"];
-  if (has_payload_type()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->payload_type().data(), this->payload_type().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        4, this->payload_type(), target);
-  }
-  
-  // required string owner_name = 5;
-  if (has_owner_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->owner_name().data(), this->owner_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        5, this->owner_name(), target);
-  }
-  
-  // required bool committed = 6 [default = false];
-  if (has_committed()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(6, this->committed(), target);
-  }
-  
-  // required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-  if (has_access_mode()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteEnumToArray(
-      7, this->access_mode(), target);
-  }
-  
-  // required bool read_only = 8 [default = false];
-  if (has_read_only()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(8, this->read_only(), target);
-  }
-  
-  // repeated .ipaaca.protobuf.PayloadItem payload = 9;
-  for (int i = 0; i < this->payload_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        9, this->payload(i), target);
-  }
-  
-  // repeated .ipaaca.protobuf.LinkSet links = 10;
-  for (int i = 0; i < this->links_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        10, this->links(i), target);
-  }
-  
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int IU::ByteSize() const {
-  int total_size = 0;
-  
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string uid = 1;
-    if (has_uid()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->uid());
-    }
-    
-    // required uint32 revision = 2;
-    if (has_revision()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt32Size(
-          this->revision());
-    }
-    
-    // required string category = 3 [default = "undef"];
-    if (has_category()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->category());
-    }
-    
-    // required string payload_type = 4 [default = "MAP"];
-    if (has_payload_type()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->payload_type());
-    }
-    
-    // required string owner_name = 5;
-    if (has_owner_name()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->owner_name());
-    }
-    
-    // required bool committed = 6 [default = false];
-    if (has_committed()) {
-      total_size += 1 + 1;
-    }
-    
-    // required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-    if (has_access_mode()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::EnumSize(this->access_mode());
-    }
-    
-    // required bool read_only = 8 [default = false];
-    if (has_read_only()) {
-      total_size += 1 + 1;
-    }
-    
-  }
-  // repeated .ipaaca.protobuf.PayloadItem payload = 9;
-  total_size += 1 * this->payload_size();
-  for (int i = 0; i < this->payload_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->payload(i));
-  }
-  
-  // repeated .ipaaca.protobuf.LinkSet links = 10;
-  total_size += 1 * this->links_size();
-  for (int i = 0; i < this->links_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->links(i));
-  }
-  
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void IU::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const IU* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const IU*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void IU::MergeFrom(const IU& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  payload_.MergeFrom(from.payload_);
-  links_.MergeFrom(from.links_);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_uid()) {
-      set_uid(from.uid());
-    }
-    if (from.has_revision()) {
-      set_revision(from.revision());
-    }
-    if (from.has_category()) {
-      set_category(from.category());
-    }
-    if (from.has_payload_type()) {
-      set_payload_type(from.payload_type());
-    }
-    if (from.has_owner_name()) {
-      set_owner_name(from.owner_name());
-    }
-    if (from.has_committed()) {
-      set_committed(from.committed());
-    }
-    if (from.has_access_mode()) {
-      set_access_mode(from.access_mode());
-    }
-    if (from.has_read_only()) {
-      set_read_only(from.read_only());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void IU::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void IU::CopyFrom(const IU& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool IU::IsInitialized() const {
-  if ((_has_bits_[0] & 0x000000ff) != 0x000000ff) return false;
-  
-  for (int i = 0; i < payload_size(); i++) {
-    if (!this->payload(i).IsInitialized()) return false;
-  }
-  for (int i = 0; i < links_size(); i++) {
-    if (!this->links(i).IsInitialized()) return false;
-  }
-  return true;
-}
-
-void IU::Swap(IU* other) {
-  if (other != this) {
-    std::swap(uid_, other->uid_);
-    std::swap(revision_, other->revision_);
-    std::swap(category_, other->category_);
-    std::swap(payload_type_, other->payload_type_);
-    std::swap(owner_name_, other->owner_name_);
-    std::swap(committed_, other->committed_);
-    std::swap(access_mode_, other->access_mode_);
-    std::swap(read_only_, other->read_only_);
-    payload_.Swap(&other->payload_);
-    links_.Swap(&other->links_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata IU::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = IU_descriptor_;
-  metadata.reflection = IU_reflection_;
-  return metadata;
-}
-
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int IUPayloadUpdate::kUidFieldNumber;
-const int IUPayloadUpdate::kRevisionFieldNumber;
-const int IUPayloadUpdate::kNewItemsFieldNumber;
-const int IUPayloadUpdate::kKeysToRemoveFieldNumber;
-const int IUPayloadUpdate::kIsDeltaFieldNumber;
-const int IUPayloadUpdate::kWriterNameFieldNumber;
-#endif  // !_MSC_VER
-
-IUPayloadUpdate::IUPayloadUpdate()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void IUPayloadUpdate::InitAsDefaultInstance() {
-}
-
-IUPayloadUpdate::IUPayloadUpdate(const IUPayloadUpdate& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void IUPayloadUpdate::SharedCtor() {
-  _cached_size_ = 0;
-  uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  revision_ = 0u;
-  is_delta_ = false;
-  writer_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-IUPayloadUpdate::~IUPayloadUpdate() {
-  SharedDtor();
-}
-
-void IUPayloadUpdate::SharedDtor() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    delete uid_;
-  }
-  if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-    delete writer_name_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void IUPayloadUpdate::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* IUPayloadUpdate::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return IUPayloadUpdate_descriptor_;
-}
-
-const IUPayloadUpdate& IUPayloadUpdate::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_src_2fipaaca_2eproto();  return *default_instance_;
-}
-
-IUPayloadUpdate* IUPayloadUpdate::default_instance_ = NULL;
-
-IUPayloadUpdate* IUPayloadUpdate::New() const {
-  return new IUPayloadUpdate;
-}
-
-void IUPayloadUpdate::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_uid()) {
-      if (uid_ != &::google::protobuf::internal::kEmptyString) {
-        uid_->clear();
-      }
-    }
-    revision_ = 0u;
-    is_delta_ = false;
-    if (has_writer_name()) {
-      if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-        writer_name_->clear();
-      }
-    }
-  }
-  new_items_.Clear();
-  keys_to_remove_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool IUPayloadUpdate::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string uid = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_uid()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->uid().data(), this->uid().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_revision;
-        break;
-      }
-      
-      // required uint32 revision = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_revision:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, &revision_)));
-          set_has_revision();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_new_items;
-        break;
-      }
-      
-      // repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_new_items:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-                input, add_new_items()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_new_items;
-        if (input->ExpectTag(34)) goto parse_keys_to_remove;
-        break;
-      }
-      
-      // repeated string keys_to_remove = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_keys_to_remove:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->add_keys_to_remove()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->keys_to_remove(0).data(), this->keys_to_remove(0).length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(34)) goto parse_keys_to_remove;
-        if (input->ExpectTag(40)) goto parse_is_delta;
-        break;
-      }
-      
-      // required bool is_delta = 5 [default = false];
-      case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_is_delta:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
-                 input, &is_delta_)));
-          set_has_is_delta();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(50)) goto parse_writer_name;
-        break;
-      }
-      
-      // required string writer_name = 6;
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_writer_name:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_writer_name()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->writer_name().data(), this->writer_name().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-      
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void IUPayloadUpdate::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->uid(), output);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->revision(), output);
-  }
-  
-  // repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-  for (int i = 0; i < this->new_items_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      3, this->new_items(i), output);
-  }
-  
-  // repeated string keys_to_remove = 4;
-  for (int i = 0; i < this->keys_to_remove_size(); i++) {
-  ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-    this->keys_to_remove(i).data(), this->keys_to_remove(i).length(),
-    ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      4, this->keys_to_remove(i), output);
-  }
-  
-  // required bool is_delta = 5 [default = false];
-  if (has_is_delta()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->is_delta(), output);
-  }
-  
-  // required string writer_name = 6;
-  if (has_writer_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->writer_name().data(), this->writer_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      6, this->writer_name(), output);
-  }
-  
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* IUPayloadUpdate::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->uid(), target);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->revision(), target);
-  }
-  
-  // repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-  for (int i = 0; i < this->new_items_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        3, this->new_items(i), target);
-  }
-  
-  // repeated string keys_to_remove = 4;
-  for (int i = 0; i < this->keys_to_remove_size(); i++) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->keys_to_remove(i).data(), this->keys_to_remove(i).length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteStringToArray(4, this->keys_to_remove(i), target);
-  }
-  
-  // required bool is_delta = 5 [default = false];
-  if (has_is_delta()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->is_delta(), target);
-  }
-  
-  // required string writer_name = 6;
-  if (has_writer_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->writer_name().data(), this->writer_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        6, this->writer_name(), target);
-  }
-  
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int IUPayloadUpdate::ByteSize() const {
-  int total_size = 0;
-  
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string uid = 1;
-    if (has_uid()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->uid());
-    }
-    
-    // required uint32 revision = 2;
-    if (has_revision()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt32Size(
-          this->revision());
-    }
-    
-    // required bool is_delta = 5 [default = false];
-    if (has_is_delta()) {
-      total_size += 1 + 1;
-    }
-    
-    // required string writer_name = 6;
-    if (has_writer_name()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->writer_name());
-    }
-    
-  }
-  // repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-  total_size += 1 * this->new_items_size();
-  for (int i = 0; i < this->new_items_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->new_items(i));
-  }
-  
-  // repeated string keys_to_remove = 4;
-  total_size += 1 * this->keys_to_remove_size();
-  for (int i = 0; i < this->keys_to_remove_size(); i++) {
-    total_size += ::google::protobuf::internal::WireFormatLite::StringSize(
-      this->keys_to_remove(i));
-  }
-  
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void IUPayloadUpdate::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const IUPayloadUpdate* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const IUPayloadUpdate*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void IUPayloadUpdate::MergeFrom(const IUPayloadUpdate& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  new_items_.MergeFrom(from.new_items_);
-  keys_to_remove_.MergeFrom(from.keys_to_remove_);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_uid()) {
-      set_uid(from.uid());
-    }
-    if (from.has_revision()) {
-      set_revision(from.revision());
-    }
-    if (from.has_is_delta()) {
-      set_is_delta(from.is_delta());
-    }
-    if (from.has_writer_name()) {
-      set_writer_name(from.writer_name());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void IUPayloadUpdate::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void IUPayloadUpdate::CopyFrom(const IUPayloadUpdate& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool IUPayloadUpdate::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000033) != 0x00000033) return false;
-  
-  for (int i = 0; i < new_items_size(); i++) {
-    if (!this->new_items(i).IsInitialized()) return false;
-  }
-  return true;
-}
-
-void IUPayloadUpdate::Swap(IUPayloadUpdate* other) {
-  if (other != this) {
-    std::swap(uid_, other->uid_);
-    std::swap(revision_, other->revision_);
-    new_items_.Swap(&other->new_items_);
-    keys_to_remove_.Swap(&other->keys_to_remove_);
-    std::swap(is_delta_, other->is_delta_);
-    std::swap(writer_name_, other->writer_name_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata IUPayloadUpdate::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = IUPayloadUpdate_descriptor_;
-  metadata.reflection = IUPayloadUpdate_reflection_;
-  return metadata;
-}
-
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int IURetraction::kUidFieldNumber;
-const int IURetraction::kRevisionFieldNumber;
-#endif  // !_MSC_VER
-
-IURetraction::IURetraction()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void IURetraction::InitAsDefaultInstance() {
-}
-
-IURetraction::IURetraction(const IURetraction& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void IURetraction::SharedCtor() {
-  _cached_size_ = 0;
-  uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  revision_ = 0u;
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-IURetraction::~IURetraction() {
-  SharedDtor();
-}
-
-void IURetraction::SharedDtor() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    delete uid_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void IURetraction::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* IURetraction::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return IURetraction_descriptor_;
-}
-
-const IURetraction& IURetraction::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_src_2fipaaca_2eproto();  return *default_instance_;
-}
-
-IURetraction* IURetraction::default_instance_ = NULL;
-
-IURetraction* IURetraction::New() const {
-  return new IURetraction;
-}
-
-void IURetraction::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_uid()) {
-      if (uid_ != &::google::protobuf::internal::kEmptyString) {
-        uid_->clear();
-      }
-    }
-    revision_ = 0u;
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool IURetraction::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string uid = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_uid()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->uid().data(), this->uid().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_revision;
-        break;
-      }
-      
-      // required uint32 revision = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_revision:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, &revision_)));
-          set_has_revision();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-      
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void IURetraction::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->uid(), output);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->revision(), output);
-  }
-  
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* IURetraction::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->uid(), target);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->revision(), target);
-  }
-  
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int IURetraction::ByteSize() const {
-  int total_size = 0;
-  
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string uid = 1;
-    if (has_uid()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->uid());
-    }
-    
-    // required uint32 revision = 2;
-    if (has_revision()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt32Size(
-          this->revision());
-    }
-    
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void IURetraction::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const IURetraction* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const IURetraction*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void IURetraction::MergeFrom(const IURetraction& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_uid()) {
-      set_uid(from.uid());
-    }
-    if (from.has_revision()) {
-      set_revision(from.revision());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void IURetraction::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void IURetraction::CopyFrom(const IURetraction& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool IURetraction::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
-  
-  return true;
-}
-
-void IURetraction::Swap(IURetraction* other) {
-  if (other != this) {
-    std::swap(uid_, other->uid_);
-    std::swap(revision_, other->revision_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata IURetraction::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = IURetraction_descriptor_;
-  metadata.reflection = IURetraction_reflection_;
-  return metadata;
-}
-
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int IUCommission::kUidFieldNumber;
-const int IUCommission::kRevisionFieldNumber;
-const int IUCommission::kWriterNameFieldNumber;
-#endif  // !_MSC_VER
-
-IUCommission::IUCommission()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void IUCommission::InitAsDefaultInstance() {
-}
-
-IUCommission::IUCommission(const IUCommission& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void IUCommission::SharedCtor() {
-  _cached_size_ = 0;
-  uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  revision_ = 0u;
-  writer_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-IUCommission::~IUCommission() {
-  SharedDtor();
-}
-
-void IUCommission::SharedDtor() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    delete uid_;
-  }
-  if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-    delete writer_name_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void IUCommission::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* IUCommission::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return IUCommission_descriptor_;
-}
-
-const IUCommission& IUCommission::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_src_2fipaaca_2eproto();  return *default_instance_;
-}
-
-IUCommission* IUCommission::default_instance_ = NULL;
-
-IUCommission* IUCommission::New() const {
-  return new IUCommission;
-}
-
-void IUCommission::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_uid()) {
-      if (uid_ != &::google::protobuf::internal::kEmptyString) {
-        uid_->clear();
-      }
-    }
-    revision_ = 0u;
-    if (has_writer_name()) {
-      if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-        writer_name_->clear();
-      }
-    }
-  }
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool IUCommission::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string uid = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_uid()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->uid().data(), this->uid().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_revision;
-        break;
-      }
-      
-      // required uint32 revision = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_revision:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, &revision_)));
-          set_has_revision();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_writer_name;
-        break;
-      }
-      
-      // required string writer_name = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_writer_name:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_writer_name()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->writer_name().data(), this->writer_name().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-      
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void IUCommission::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->uid(), output);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->revision(), output);
-  }
-  
-  // required string writer_name = 3;
-  if (has_writer_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->writer_name().data(), this->writer_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      3, this->writer_name(), output);
-  }
-  
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* IUCommission::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->uid(), target);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->revision(), target);
-  }
-  
-  // required string writer_name = 3;
-  if (has_writer_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->writer_name().data(), this->writer_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        3, this->writer_name(), target);
-  }
-  
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int IUCommission::ByteSize() const {
-  int total_size = 0;
-  
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string uid = 1;
-    if (has_uid()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->uid());
-    }
-    
-    // required uint32 revision = 2;
-    if (has_revision()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt32Size(
-          this->revision());
-    }
-    
-    // required string writer_name = 3;
-    if (has_writer_name()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->writer_name());
-    }
-    
-  }
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void IUCommission::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const IUCommission* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const IUCommission*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void IUCommission::MergeFrom(const IUCommission& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_uid()) {
-      set_uid(from.uid());
-    }
-    if (from.has_revision()) {
-      set_revision(from.revision());
-    }
-    if (from.has_writer_name()) {
-      set_writer_name(from.writer_name());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void IUCommission::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void IUCommission::CopyFrom(const IUCommission& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool IUCommission::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000007) != 0x00000007) return false;
-  
-  return true;
-}
-
-void IUCommission::Swap(IUCommission* other) {
-  if (other != this) {
-    std::swap(uid_, other->uid_);
-    std::swap(revision_, other->revision_);
-    std::swap(writer_name_, other->writer_name_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata IUCommission::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = IUCommission_descriptor_;
-  metadata.reflection = IUCommission_reflection_;
-  return metadata;
-}
-
-
-// ===================================================================
-
-#ifndef _MSC_VER
-const int IULinkUpdate::kUidFieldNumber;
-const int IULinkUpdate::kRevisionFieldNumber;
-const int IULinkUpdate::kNewLinksFieldNumber;
-const int IULinkUpdate::kLinksToRemoveFieldNumber;
-const int IULinkUpdate::kIsDeltaFieldNumber;
-const int IULinkUpdate::kWriterNameFieldNumber;
-#endif  // !_MSC_VER
-
-IULinkUpdate::IULinkUpdate()
-  : ::google::protobuf::Message() {
-  SharedCtor();
-}
-
-void IULinkUpdate::InitAsDefaultInstance() {
-}
-
-IULinkUpdate::IULinkUpdate(const IULinkUpdate& from)
-  : ::google::protobuf::Message() {
-  SharedCtor();
-  MergeFrom(from);
-}
-
-void IULinkUpdate::SharedCtor() {
-  _cached_size_ = 0;
-  uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  revision_ = 0u;
-  is_delta_ = false;
-  writer_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-}
-
-IULinkUpdate::~IULinkUpdate() {
-  SharedDtor();
-}
-
-void IULinkUpdate::SharedDtor() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    delete uid_;
-  }
-  if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-    delete writer_name_;
-  }
-  if (this != default_instance_) {
-  }
-}
-
-void IULinkUpdate::SetCachedSize(int size) const {
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-}
-const ::google::protobuf::Descriptor* IULinkUpdate::descriptor() {
-  protobuf_AssignDescriptorsOnce();
-  return IULinkUpdate_descriptor_;
-}
-
-const IULinkUpdate& IULinkUpdate::default_instance() {
-  if (default_instance_ == NULL) protobuf_AddDesc_src_2fipaaca_2eproto();  return *default_instance_;
-}
-
-IULinkUpdate* IULinkUpdate::default_instance_ = NULL;
-
-IULinkUpdate* IULinkUpdate::New() const {
-  return new IULinkUpdate;
-}
-
-void IULinkUpdate::Clear() {
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (has_uid()) {
-      if (uid_ != &::google::protobuf::internal::kEmptyString) {
-        uid_->clear();
-      }
-    }
-    revision_ = 0u;
-    is_delta_ = false;
-    if (has_writer_name()) {
-      if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-        writer_name_->clear();
-      }
-    }
-  }
-  new_links_.Clear();
-  links_to_remove_.Clear();
-  ::memset(_has_bits_, 0, sizeof(_has_bits_));
-  mutable_unknown_fields()->Clear();
-}
-
-bool IULinkUpdate::MergePartialFromCodedStream(
-    ::google::protobuf::io::CodedInputStream* input) {
-#define DO_(EXPRESSION) if (!(EXPRESSION)) return false
-  ::google::protobuf::uint32 tag;
-  while ((tag = input->ReadTag()) != 0) {
-    switch (::google::protobuf::internal::WireFormatLite::GetTagFieldNumber(tag)) {
-      // required string uid = 1;
-      case 1: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_uid()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->uid().data(), this->uid().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(16)) goto parse_revision;
-        break;
-      }
-      
-      // required uint32 revision = 2;
-      case 2: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_revision:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   ::google::protobuf::uint32, ::google::protobuf::internal::WireFormatLite::TYPE_UINT32>(
-                 input, &revision_)));
-          set_has_revision();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_new_links;
-        break;
-      }
-      
-      // repeated .ipaaca.protobuf.LinkSet new_links = 3;
-      case 3: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_new_links:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-                input, add_new_links()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(26)) goto parse_new_links;
-        if (input->ExpectTag(34)) goto parse_links_to_remove;
-        break;
-      }
-      
-      // repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-      case 4: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_links_to_remove:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadMessageNoVirtual(
-                input, add_links_to_remove()));
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(34)) goto parse_links_to_remove;
-        if (input->ExpectTag(40)) goto parse_is_delta;
-        break;
-      }
-      
-      // required bool is_delta = 5 [default = false];
-      case 5: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_VARINT) {
-         parse_is_delta:
-          DO_((::google::protobuf::internal::WireFormatLite::ReadPrimitive<
-                   bool, ::google::protobuf::internal::WireFormatLite::TYPE_BOOL>(
-                 input, &is_delta_)));
-          set_has_is_delta();
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectTag(50)) goto parse_writer_name;
-        break;
-      }
-      
-      // required string writer_name = 6;
-      case 6: {
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
-         parse_writer_name:
-          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
-                input, this->mutable_writer_name()));
-          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-            this->writer_name().data(), this->writer_name().length(),
-            ::google::protobuf::internal::WireFormat::PARSE);
-        } else {
-          goto handle_uninterpreted;
-        }
-        if (input->ExpectAtEnd()) return true;
-        break;
-      }
-      
-      default: {
-      handle_uninterpreted:
-        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
-            ::google::protobuf::internal::WireFormatLite::WIRETYPE_END_GROUP) {
-          return true;
-        }
-        DO_(::google::protobuf::internal::WireFormat::SkipField(
-              input, tag, mutable_unknown_fields()));
-        break;
-      }
-    }
-  }
-  return true;
-#undef DO_
-}
-
-void IULinkUpdate::SerializeWithCachedSizes(
-    ::google::protobuf::io::CodedOutputStream* output) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      1, this->uid(), output);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    ::google::protobuf::internal::WireFormatLite::WriteUInt32(2, this->revision(), output);
-  }
-  
-  // repeated .ipaaca.protobuf.LinkSet new_links = 3;
-  for (int i = 0; i < this->new_links_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      3, this->new_links(i), output);
-  }
-  
-  // repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-  for (int i = 0; i < this->links_to_remove_size(); i++) {
-    ::google::protobuf::internal::WireFormatLite::WriteMessageMaybeToArray(
-      4, this->links_to_remove(i), output);
-  }
-  
-  // required bool is_delta = 5 [default = false];
-  if (has_is_delta()) {
-    ::google::protobuf::internal::WireFormatLite::WriteBool(5, this->is_delta(), output);
-  }
-  
-  // required string writer_name = 6;
-  if (has_writer_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->writer_name().data(), this->writer_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    ::google::protobuf::internal::WireFormatLite::WriteString(
-      6, this->writer_name(), output);
-  }
-  
-  if (!unknown_fields().empty()) {
-    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
-        unknown_fields(), output);
-  }
-}
-
-::google::protobuf::uint8* IULinkUpdate::SerializeWithCachedSizesToArray(
-    ::google::protobuf::uint8* target) const {
-  // required string uid = 1;
-  if (has_uid()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->uid().data(), this->uid().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        1, this->uid(), target);
-  }
-  
-  // required uint32 revision = 2;
-  if (has_revision()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteUInt32ToArray(2, this->revision(), target);
-  }
-  
-  // repeated .ipaaca.protobuf.LinkSet new_links = 3;
-  for (int i = 0; i < this->new_links_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        3, this->new_links(i), target);
-  }
-  
-  // repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-  for (int i = 0; i < this->links_to_remove_size(); i++) {
-    target = ::google::protobuf::internal::WireFormatLite::
-      WriteMessageNoVirtualToArray(
-        4, this->links_to_remove(i), target);
-  }
-  
-  // required bool is_delta = 5 [default = false];
-  if (has_is_delta()) {
-    target = ::google::protobuf::internal::WireFormatLite::WriteBoolToArray(5, this->is_delta(), target);
-  }
-  
-  // required string writer_name = 6;
-  if (has_writer_name()) {
-    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
-      this->writer_name().data(), this->writer_name().length(),
-      ::google::protobuf::internal::WireFormat::SERIALIZE);
-    target =
-      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
-        6, this->writer_name(), target);
-  }
-  
-  if (!unknown_fields().empty()) {
-    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
-        unknown_fields(), target);
-  }
-  return target;
-}
-
-int IULinkUpdate::ByteSize() const {
-  int total_size = 0;
-  
-  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    // required string uid = 1;
-    if (has_uid()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->uid());
-    }
-    
-    // required uint32 revision = 2;
-    if (has_revision()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::UInt32Size(
-          this->revision());
-    }
-    
-    // required bool is_delta = 5 [default = false];
-    if (has_is_delta()) {
-      total_size += 1 + 1;
-    }
-    
-    // required string writer_name = 6;
-    if (has_writer_name()) {
-      total_size += 1 +
-        ::google::protobuf::internal::WireFormatLite::StringSize(
-          this->writer_name());
-    }
-    
-  }
-  // repeated .ipaaca.protobuf.LinkSet new_links = 3;
-  total_size += 1 * this->new_links_size();
-  for (int i = 0; i < this->new_links_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->new_links(i));
-  }
-  
-  // repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-  total_size += 1 * this->links_to_remove_size();
-  for (int i = 0; i < this->links_to_remove_size(); i++) {
-    total_size +=
-      ::google::protobuf::internal::WireFormatLite::MessageSizeNoVirtual(
-        this->links_to_remove(i));
-  }
-  
-  if (!unknown_fields().empty()) {
-    total_size +=
-      ::google::protobuf::internal::WireFormat::ComputeUnknownFieldsSize(
-        unknown_fields());
-  }
-  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
-  _cached_size_ = total_size;
-  GOOGLE_SAFE_CONCURRENT_WRITES_END();
-  return total_size;
-}
-
-void IULinkUpdate::MergeFrom(const ::google::protobuf::Message& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  const IULinkUpdate* source =
-    ::google::protobuf::internal::dynamic_cast_if_available<const IULinkUpdate*>(
-      &from);
-  if (source == NULL) {
-    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
-  } else {
-    MergeFrom(*source);
-  }
-}
-
-void IULinkUpdate::MergeFrom(const IULinkUpdate& from) {
-  GOOGLE_CHECK_NE(&from, this);
-  new_links_.MergeFrom(from.new_links_);
-  links_to_remove_.MergeFrom(from.links_to_remove_);
-  if (from._has_bits_[0 / 32] & (0xffu << (0 % 32))) {
-    if (from.has_uid()) {
-      set_uid(from.uid());
-    }
-    if (from.has_revision()) {
-      set_revision(from.revision());
-    }
-    if (from.has_is_delta()) {
-      set_is_delta(from.is_delta());
-    }
-    if (from.has_writer_name()) {
-      set_writer_name(from.writer_name());
-    }
-  }
-  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
-}
-
-void IULinkUpdate::CopyFrom(const ::google::protobuf::Message& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-void IULinkUpdate::CopyFrom(const IULinkUpdate& from) {
-  if (&from == this) return;
-  Clear();
-  MergeFrom(from);
-}
-
-bool IULinkUpdate::IsInitialized() const {
-  if ((_has_bits_[0] & 0x00000033) != 0x00000033) return false;
-  
-  for (int i = 0; i < new_links_size(); i++) {
-    if (!this->new_links(i).IsInitialized()) return false;
-  }
-  for (int i = 0; i < links_to_remove_size(); i++) {
-    if (!this->links_to_remove(i).IsInitialized()) return false;
-  }
-  return true;
-}
-
-void IULinkUpdate::Swap(IULinkUpdate* other) {
-  if (other != this) {
-    std::swap(uid_, other->uid_);
-    std::swap(revision_, other->revision_);
-    new_links_.Swap(&other->new_links_);
-    links_to_remove_.Swap(&other->links_to_remove_);
-    std::swap(is_delta_, other->is_delta_);
-    std::swap(writer_name_, other->writer_name_);
-    std::swap(_has_bits_[0], other->_has_bits_[0]);
-    _unknown_fields_.Swap(&other->_unknown_fields_);
-    std::swap(_cached_size_, other->_cached_size_);
-  }
-}
-
-::google::protobuf::Metadata IULinkUpdate::GetMetadata() const {
-  protobuf_AssignDescriptorsOnce();
-  ::google::protobuf::Metadata metadata;
-  metadata.descriptor = IULinkUpdate_descriptor_;
-  metadata.reflection = IULinkUpdate_reflection_;
-  return metadata;
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace protobuf
-}  // namespace ipaaca
-
-// @@protoc_insertion_point(global_scope)
diff --git a/proto/build/cpp/src/ipaaca.pb.h b/proto/build/cpp/src/ipaaca.pb.h
deleted file mode 100644
index dccdd32450e19778018981d482b0dec38a3c7608..0000000000000000000000000000000000000000
--- a/proto/build/cpp/src/ipaaca.pb.h
+++ /dev/null
@@ -1,2470 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: src/ipaaca.proto
-
-#ifndef PROTOBUF_src_2fipaaca_2eproto__INCLUDED
-#define PROTOBUF_src_2fipaaca_2eproto__INCLUDED
-
-#include <string>
-
-#include <google/protobuf/stubs/common.h>
-
-#if GOOGLE_PROTOBUF_VERSION < 2004000
-#error This file was generated by a newer version of protoc which is
-#error incompatible with your Protocol Buffer headers.  Please update
-#error your headers.
-#endif
-#if 2004001 < GOOGLE_PROTOBUF_MIN_PROTOC_VERSION
-#error This file was generated by an older version of protoc which is
-#error incompatible with your Protocol Buffer headers.  Please
-#error regenerate this file with a newer version of protoc.
-#endif
-
-#include <google/protobuf/generated_message_util.h>
-#include <google/protobuf/repeated_field.h>
-#include <google/protobuf/extension_set.h>
-#include <google/protobuf/generated_message_reflection.h>
-// @@protoc_insertion_point(includes)
-
-namespace ipaaca {
-namespace protobuf {
-
-// Internal implementation detail -- do not call these.
-void  protobuf_AddDesc_src_2fipaaca_2eproto();
-void protobuf_AssignDesc_src_2fipaaca_2eproto();
-void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-
-class IntMessage;
-class LinkSet;
-class PayloadItem;
-class IU;
-class IUPayloadUpdate;
-class IURetraction;
-class IUCommission;
-class IULinkUpdate;
-
-enum IU_AccessMode {
-  IU_AccessMode_PUSH = 0,
-  IU_AccessMode_REMOTE = 1,
-  IU_AccessMode_MESSAGE = 2
-};
-bool IU_AccessMode_IsValid(int value);
-const IU_AccessMode IU_AccessMode_AccessMode_MIN = IU_AccessMode_PUSH;
-const IU_AccessMode IU_AccessMode_AccessMode_MAX = IU_AccessMode_MESSAGE;
-const int IU_AccessMode_AccessMode_ARRAYSIZE = IU_AccessMode_AccessMode_MAX + 1;
-
-const ::google::protobuf::EnumDescriptor* IU_AccessMode_descriptor();
-inline const ::std::string& IU_AccessMode_Name(IU_AccessMode value) {
-  return ::google::protobuf::internal::NameOfEnum(
-    IU_AccessMode_descriptor(), value);
-}
-inline bool IU_AccessMode_Parse(
-    const ::std::string& name, IU_AccessMode* value) {
-  return ::google::protobuf::internal::ParseNamedEnum<IU_AccessMode>(
-    IU_AccessMode_descriptor(), name, value);
-}
-// ===================================================================
-
-class IntMessage : public ::google::protobuf::Message {
- public:
-  IntMessage();
-  virtual ~IntMessage();
-  
-  IntMessage(const IntMessage& from);
-  
-  inline IntMessage& operator=(const IntMessage& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-  
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-  
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const IntMessage& default_instance();
-  
-  void Swap(IntMessage* other);
-  
-  // implements Message ----------------------------------------------
-  
-  IntMessage* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const IntMessage& from);
-  void MergeFrom(const IntMessage& from);
-  void Clear();
-  bool IsInitialized() const;
-  
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-  
-  ::google::protobuf::Metadata GetMetadata() const;
-  
-  // nested types ----------------------------------------------------
-  
-  // accessors -------------------------------------------------------
-  
-  // required sint32 value = 1;
-  inline bool has_value() const;
-  inline void clear_value();
-  static const int kValueFieldNumber = 1;
-  inline ::google::protobuf::int32 value() const;
-  inline void set_value(::google::protobuf::int32 value);
-  
-  // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IntMessage)
- private:
-  inline void set_has_value();
-  inline void clear_has_value();
-  
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-  
-  ::google::protobuf::int32 value_;
-  
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(1 + 31) / 32];
-  
-  friend void  protobuf_AddDesc_src_2fipaaca_2eproto();
-  friend void protobuf_AssignDesc_src_2fipaaca_2eproto();
-  friend void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-  
-  void InitAsDefaultInstance();
-  static IntMessage* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class LinkSet : public ::google::protobuf::Message {
- public:
-  LinkSet();
-  virtual ~LinkSet();
-  
-  LinkSet(const LinkSet& from);
-  
-  inline LinkSet& operator=(const LinkSet& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-  
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-  
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const LinkSet& default_instance();
-  
-  void Swap(LinkSet* other);
-  
-  // implements Message ----------------------------------------------
-  
-  LinkSet* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const LinkSet& from);
-  void MergeFrom(const LinkSet& from);
-  void Clear();
-  bool IsInitialized() const;
-  
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-  
-  ::google::protobuf::Metadata GetMetadata() const;
-  
-  // nested types ----------------------------------------------------
-  
-  // accessors -------------------------------------------------------
-  
-  // required string type = 1;
-  inline bool has_type() const;
-  inline void clear_type();
-  static const int kTypeFieldNumber = 1;
-  inline const ::std::string& type() const;
-  inline void set_type(const ::std::string& value);
-  inline void set_type(const char* value);
-  inline void set_type(const char* value, size_t size);
-  inline ::std::string* mutable_type();
-  inline ::std::string* release_type();
-  
-  // repeated string targets = 2;
-  inline int targets_size() const;
-  inline void clear_targets();
-  static const int kTargetsFieldNumber = 2;
-  inline const ::std::string& targets(int index) const;
-  inline ::std::string* mutable_targets(int index);
-  inline void set_targets(int index, const ::std::string& value);
-  inline void set_targets(int index, const char* value);
-  inline void set_targets(int index, const char* value, size_t size);
-  inline ::std::string* add_targets();
-  inline void add_targets(const ::std::string& value);
-  inline void add_targets(const char* value);
-  inline void add_targets(const char* value, size_t size);
-  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& targets() const;
-  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_targets();
-  
-  // @@protoc_insertion_point(class_scope:ipaaca.protobuf.LinkSet)
- private:
-  inline void set_has_type();
-  inline void clear_has_type();
-  
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-  
-  ::std::string* type_;
-  ::google::protobuf::RepeatedPtrField< ::std::string> targets_;
-  
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-  
-  friend void  protobuf_AddDesc_src_2fipaaca_2eproto();
-  friend void protobuf_AssignDesc_src_2fipaaca_2eproto();
-  friend void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-  
-  void InitAsDefaultInstance();
-  static LinkSet* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class PayloadItem : public ::google::protobuf::Message {
- public:
-  PayloadItem();
-  virtual ~PayloadItem();
-  
-  PayloadItem(const PayloadItem& from);
-  
-  inline PayloadItem& operator=(const PayloadItem& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-  
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-  
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const PayloadItem& default_instance();
-  
-  void Swap(PayloadItem* other);
-  
-  // implements Message ----------------------------------------------
-  
-  PayloadItem* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const PayloadItem& from);
-  void MergeFrom(const PayloadItem& from);
-  void Clear();
-  bool IsInitialized() const;
-  
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-  
-  ::google::protobuf::Metadata GetMetadata() const;
-  
-  // nested types ----------------------------------------------------
-  
-  // accessors -------------------------------------------------------
-  
-  // required string key = 1;
-  inline bool has_key() const;
-  inline void clear_key();
-  static const int kKeyFieldNumber = 1;
-  inline const ::std::string& key() const;
-  inline void set_key(const ::std::string& value);
-  inline void set_key(const char* value);
-  inline void set_key(const char* value, size_t size);
-  inline ::std::string* mutable_key();
-  inline ::std::string* release_key();
-  
-  // required string value = 2;
-  inline bool has_value() const;
-  inline void clear_value();
-  static const int kValueFieldNumber = 2;
-  inline const ::std::string& value() const;
-  inline void set_value(const ::std::string& value);
-  inline void set_value(const char* value);
-  inline void set_value(const char* value, size_t size);
-  inline ::std::string* mutable_value();
-  inline ::std::string* release_value();
-  
-  // required string type = 3 [default = "str"];
-  inline bool has_type() const;
-  inline void clear_type();
-  static const int kTypeFieldNumber = 3;
-  inline const ::std::string& type() const;
-  inline void set_type(const ::std::string& value);
-  inline void set_type(const char* value);
-  inline void set_type(const char* value, size_t size);
-  inline ::std::string* mutable_type();
-  inline ::std::string* release_type();
-  
-  // @@protoc_insertion_point(class_scope:ipaaca.protobuf.PayloadItem)
- private:
-  inline void set_has_key();
-  inline void clear_has_key();
-  inline void set_has_value();
-  inline void clear_has_value();
-  inline void set_has_type();
-  inline void clear_has_type();
-  
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-  
-  ::std::string* key_;
-  ::std::string* value_;
-  ::std::string* type_;
-  static const ::std::string _default_type_;
-  
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-  
-  friend void  protobuf_AddDesc_src_2fipaaca_2eproto();
-  friend void protobuf_AssignDesc_src_2fipaaca_2eproto();
-  friend void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-  
-  void InitAsDefaultInstance();
-  static PayloadItem* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class IU : public ::google::protobuf::Message {
- public:
-  IU();
-  virtual ~IU();
-  
-  IU(const IU& from);
-  
-  inline IU& operator=(const IU& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-  
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-  
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const IU& default_instance();
-  
-  void Swap(IU* other);
-  
-  // implements Message ----------------------------------------------
-  
-  IU* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const IU& from);
-  void MergeFrom(const IU& from);
-  void Clear();
-  bool IsInitialized() const;
-  
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-  
-  ::google::protobuf::Metadata GetMetadata() const;
-  
-  // nested types ----------------------------------------------------
-  
-  typedef IU_AccessMode AccessMode;
-  static const AccessMode PUSH = IU_AccessMode_PUSH;
-  static const AccessMode REMOTE = IU_AccessMode_REMOTE;
-  static const AccessMode MESSAGE = IU_AccessMode_MESSAGE;
-  static inline bool AccessMode_IsValid(int value) {
-    return IU_AccessMode_IsValid(value);
-  }
-  static const AccessMode AccessMode_MIN =
-    IU_AccessMode_AccessMode_MIN;
-  static const AccessMode AccessMode_MAX =
-    IU_AccessMode_AccessMode_MAX;
-  static const int AccessMode_ARRAYSIZE =
-    IU_AccessMode_AccessMode_ARRAYSIZE;
-  static inline const ::google::protobuf::EnumDescriptor*
-  AccessMode_descriptor() {
-    return IU_AccessMode_descriptor();
-  }
-  static inline const ::std::string& AccessMode_Name(AccessMode value) {
-    return IU_AccessMode_Name(value);
-  }
-  static inline bool AccessMode_Parse(const ::std::string& name,
-      AccessMode* value) {
-    return IU_AccessMode_Parse(name, value);
-  }
-  
-  // accessors -------------------------------------------------------
-  
-  // required string uid = 1;
-  inline bool has_uid() const;
-  inline void clear_uid();
-  static const int kUidFieldNumber = 1;
-  inline const ::std::string& uid() const;
-  inline void set_uid(const ::std::string& value);
-  inline void set_uid(const char* value);
-  inline void set_uid(const char* value, size_t size);
-  inline ::std::string* mutable_uid();
-  inline ::std::string* release_uid();
-  
-  // required uint32 revision = 2;
-  inline bool has_revision() const;
-  inline void clear_revision();
-  static const int kRevisionFieldNumber = 2;
-  inline ::google::protobuf::uint32 revision() const;
-  inline void set_revision(::google::protobuf::uint32 value);
-  
-  // required string category = 3 [default = "undef"];
-  inline bool has_category() const;
-  inline void clear_category();
-  static const int kCategoryFieldNumber = 3;
-  inline const ::std::string& category() const;
-  inline void set_category(const ::std::string& value);
-  inline void set_category(const char* value);
-  inline void set_category(const char* value, size_t size);
-  inline ::std::string* mutable_category();
-  inline ::std::string* release_category();
-  
-  // required string payload_type = 4 [default = "MAP"];
-  inline bool has_payload_type() const;
-  inline void clear_payload_type();
-  static const int kPayloadTypeFieldNumber = 4;
-  inline const ::std::string& payload_type() const;
-  inline void set_payload_type(const ::std::string& value);
-  inline void set_payload_type(const char* value);
-  inline void set_payload_type(const char* value, size_t size);
-  inline ::std::string* mutable_payload_type();
-  inline ::std::string* release_payload_type();
-  
-  // required string owner_name = 5;
-  inline bool has_owner_name() const;
-  inline void clear_owner_name();
-  static const int kOwnerNameFieldNumber = 5;
-  inline const ::std::string& owner_name() const;
-  inline void set_owner_name(const ::std::string& value);
-  inline void set_owner_name(const char* value);
-  inline void set_owner_name(const char* value, size_t size);
-  inline ::std::string* mutable_owner_name();
-  inline ::std::string* release_owner_name();
-  
-  // required bool committed = 6 [default = false];
-  inline bool has_committed() const;
-  inline void clear_committed();
-  static const int kCommittedFieldNumber = 6;
-  inline bool committed() const;
-  inline void set_committed(bool value);
-  
-  // required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-  inline bool has_access_mode() const;
-  inline void clear_access_mode();
-  static const int kAccessModeFieldNumber = 7;
-  inline ::ipaaca::protobuf::IU_AccessMode access_mode() const;
-  inline void set_access_mode(::ipaaca::protobuf::IU_AccessMode value);
-  
-  // required bool read_only = 8 [default = false];
-  inline bool has_read_only() const;
-  inline void clear_read_only();
-  static const int kReadOnlyFieldNumber = 8;
-  inline bool read_only() const;
-  inline void set_read_only(bool value);
-  
-  // repeated .ipaaca.protobuf.PayloadItem payload = 9;
-  inline int payload_size() const;
-  inline void clear_payload();
-  static const int kPayloadFieldNumber = 9;
-  inline const ::ipaaca::protobuf::PayloadItem& payload(int index) const;
-  inline ::ipaaca::protobuf::PayloadItem* mutable_payload(int index);
-  inline ::ipaaca::protobuf::PayloadItem* add_payload();
-  inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem >&
-      payload() const;
-  inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem >*
-      mutable_payload();
-  
-  // repeated .ipaaca.protobuf.LinkSet links = 10;
-  inline int links_size() const;
-  inline void clear_links();
-  static const int kLinksFieldNumber = 10;
-  inline const ::ipaaca::protobuf::LinkSet& links(int index) const;
-  inline ::ipaaca::protobuf::LinkSet* mutable_links(int index);
-  inline ::ipaaca::protobuf::LinkSet* add_links();
-  inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >&
-      links() const;
-  inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >*
-      mutable_links();
-  
-  // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IU)
- private:
-  inline void set_has_uid();
-  inline void clear_has_uid();
-  inline void set_has_revision();
-  inline void clear_has_revision();
-  inline void set_has_category();
-  inline void clear_has_category();
-  inline void set_has_payload_type();
-  inline void clear_has_payload_type();
-  inline void set_has_owner_name();
-  inline void clear_has_owner_name();
-  inline void set_has_committed();
-  inline void clear_has_committed();
-  inline void set_has_access_mode();
-  inline void clear_has_access_mode();
-  inline void set_has_read_only();
-  inline void clear_has_read_only();
-  
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-  
-  ::std::string* uid_;
-  ::std::string* category_;
-  static const ::std::string _default_category_;
-  ::std::string* payload_type_;
-  static const ::std::string _default_payload_type_;
-  ::google::protobuf::uint32 revision_;
-  int access_mode_;
-  ::std::string* owner_name_;
-  ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem > payload_;
-  ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet > links_;
-  bool committed_;
-  bool read_only_;
-  
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(10 + 31) / 32];
-  
-  friend void  protobuf_AddDesc_src_2fipaaca_2eproto();
-  friend void protobuf_AssignDesc_src_2fipaaca_2eproto();
-  friend void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-  
-  void InitAsDefaultInstance();
-  static IU* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class IUPayloadUpdate : public ::google::protobuf::Message {
- public:
-  IUPayloadUpdate();
-  virtual ~IUPayloadUpdate();
-  
-  IUPayloadUpdate(const IUPayloadUpdate& from);
-  
-  inline IUPayloadUpdate& operator=(const IUPayloadUpdate& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-  
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-  
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const IUPayloadUpdate& default_instance();
-  
-  void Swap(IUPayloadUpdate* other);
-  
-  // implements Message ----------------------------------------------
-  
-  IUPayloadUpdate* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const IUPayloadUpdate& from);
-  void MergeFrom(const IUPayloadUpdate& from);
-  void Clear();
-  bool IsInitialized() const;
-  
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-  
-  ::google::protobuf::Metadata GetMetadata() const;
-  
-  // nested types ----------------------------------------------------
-  
-  // accessors -------------------------------------------------------
-  
-  // required string uid = 1;
-  inline bool has_uid() const;
-  inline void clear_uid();
-  static const int kUidFieldNumber = 1;
-  inline const ::std::string& uid() const;
-  inline void set_uid(const ::std::string& value);
-  inline void set_uid(const char* value);
-  inline void set_uid(const char* value, size_t size);
-  inline ::std::string* mutable_uid();
-  inline ::std::string* release_uid();
-  
-  // required uint32 revision = 2;
-  inline bool has_revision() const;
-  inline void clear_revision();
-  static const int kRevisionFieldNumber = 2;
-  inline ::google::protobuf::uint32 revision() const;
-  inline void set_revision(::google::protobuf::uint32 value);
-  
-  // repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-  inline int new_items_size() const;
-  inline void clear_new_items();
-  static const int kNewItemsFieldNumber = 3;
-  inline const ::ipaaca::protobuf::PayloadItem& new_items(int index) const;
-  inline ::ipaaca::protobuf::PayloadItem* mutable_new_items(int index);
-  inline ::ipaaca::protobuf::PayloadItem* add_new_items();
-  inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem >&
-      new_items() const;
-  inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem >*
-      mutable_new_items();
-  
-  // repeated string keys_to_remove = 4;
-  inline int keys_to_remove_size() const;
-  inline void clear_keys_to_remove();
-  static const int kKeysToRemoveFieldNumber = 4;
-  inline const ::std::string& keys_to_remove(int index) const;
-  inline ::std::string* mutable_keys_to_remove(int index);
-  inline void set_keys_to_remove(int index, const ::std::string& value);
-  inline void set_keys_to_remove(int index, const char* value);
-  inline void set_keys_to_remove(int index, const char* value, size_t size);
-  inline ::std::string* add_keys_to_remove();
-  inline void add_keys_to_remove(const ::std::string& value);
-  inline void add_keys_to_remove(const char* value);
-  inline void add_keys_to_remove(const char* value, size_t size);
-  inline const ::google::protobuf::RepeatedPtrField< ::std::string>& keys_to_remove() const;
-  inline ::google::protobuf::RepeatedPtrField< ::std::string>* mutable_keys_to_remove();
-  
-  // required bool is_delta = 5 [default = false];
-  inline bool has_is_delta() const;
-  inline void clear_is_delta();
-  static const int kIsDeltaFieldNumber = 5;
-  inline bool is_delta() const;
-  inline void set_is_delta(bool value);
-  
-  // required string writer_name = 6;
-  inline bool has_writer_name() const;
-  inline void clear_writer_name();
-  static const int kWriterNameFieldNumber = 6;
-  inline const ::std::string& writer_name() const;
-  inline void set_writer_name(const ::std::string& value);
-  inline void set_writer_name(const char* value);
-  inline void set_writer_name(const char* value, size_t size);
-  inline ::std::string* mutable_writer_name();
-  inline ::std::string* release_writer_name();
-  
-  // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IUPayloadUpdate)
- private:
-  inline void set_has_uid();
-  inline void clear_has_uid();
-  inline void set_has_revision();
-  inline void clear_has_revision();
-  inline void set_has_is_delta();
-  inline void clear_has_is_delta();
-  inline void set_has_writer_name();
-  inline void clear_has_writer_name();
-  
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-  
-  ::std::string* uid_;
-  ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem > new_items_;
-  ::google::protobuf::uint32 revision_;
-  bool is_delta_;
-  ::google::protobuf::RepeatedPtrField< ::std::string> keys_to_remove_;
-  ::std::string* writer_name_;
-  
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];
-  
-  friend void  protobuf_AddDesc_src_2fipaaca_2eproto();
-  friend void protobuf_AssignDesc_src_2fipaaca_2eproto();
-  friend void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-  
-  void InitAsDefaultInstance();
-  static IUPayloadUpdate* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class IURetraction : public ::google::protobuf::Message {
- public:
-  IURetraction();
-  virtual ~IURetraction();
-  
-  IURetraction(const IURetraction& from);
-  
-  inline IURetraction& operator=(const IURetraction& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-  
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-  
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const IURetraction& default_instance();
-  
-  void Swap(IURetraction* other);
-  
-  // implements Message ----------------------------------------------
-  
-  IURetraction* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const IURetraction& from);
-  void MergeFrom(const IURetraction& from);
-  void Clear();
-  bool IsInitialized() const;
-  
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-  
-  ::google::protobuf::Metadata GetMetadata() const;
-  
-  // nested types ----------------------------------------------------
-  
-  // accessors -------------------------------------------------------
-  
-  // required string uid = 1;
-  inline bool has_uid() const;
-  inline void clear_uid();
-  static const int kUidFieldNumber = 1;
-  inline const ::std::string& uid() const;
-  inline void set_uid(const ::std::string& value);
-  inline void set_uid(const char* value);
-  inline void set_uid(const char* value, size_t size);
-  inline ::std::string* mutable_uid();
-  inline ::std::string* release_uid();
-  
-  // required uint32 revision = 2;
-  inline bool has_revision() const;
-  inline void clear_revision();
-  static const int kRevisionFieldNumber = 2;
-  inline ::google::protobuf::uint32 revision() const;
-  inline void set_revision(::google::protobuf::uint32 value);
-  
-  // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IURetraction)
- private:
-  inline void set_has_uid();
-  inline void clear_has_uid();
-  inline void set_has_revision();
-  inline void clear_has_revision();
-  
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-  
-  ::std::string* uid_;
-  ::google::protobuf::uint32 revision_;
-  
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(2 + 31) / 32];
-  
-  friend void  protobuf_AddDesc_src_2fipaaca_2eproto();
-  friend void protobuf_AssignDesc_src_2fipaaca_2eproto();
-  friend void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-  
-  void InitAsDefaultInstance();
-  static IURetraction* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class IUCommission : public ::google::protobuf::Message {
- public:
-  IUCommission();
-  virtual ~IUCommission();
-  
-  IUCommission(const IUCommission& from);
-  
-  inline IUCommission& operator=(const IUCommission& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-  
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-  
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const IUCommission& default_instance();
-  
-  void Swap(IUCommission* other);
-  
-  // implements Message ----------------------------------------------
-  
-  IUCommission* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const IUCommission& from);
-  void MergeFrom(const IUCommission& from);
-  void Clear();
-  bool IsInitialized() const;
-  
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-  
-  ::google::protobuf::Metadata GetMetadata() const;
-  
-  // nested types ----------------------------------------------------
-  
-  // accessors -------------------------------------------------------
-  
-  // required string uid = 1;
-  inline bool has_uid() const;
-  inline void clear_uid();
-  static const int kUidFieldNumber = 1;
-  inline const ::std::string& uid() const;
-  inline void set_uid(const ::std::string& value);
-  inline void set_uid(const char* value);
-  inline void set_uid(const char* value, size_t size);
-  inline ::std::string* mutable_uid();
-  inline ::std::string* release_uid();
-  
-  // required uint32 revision = 2;
-  inline bool has_revision() const;
-  inline void clear_revision();
-  static const int kRevisionFieldNumber = 2;
-  inline ::google::protobuf::uint32 revision() const;
-  inline void set_revision(::google::protobuf::uint32 value);
-  
-  // required string writer_name = 3;
-  inline bool has_writer_name() const;
-  inline void clear_writer_name();
-  static const int kWriterNameFieldNumber = 3;
-  inline const ::std::string& writer_name() const;
-  inline void set_writer_name(const ::std::string& value);
-  inline void set_writer_name(const char* value);
-  inline void set_writer_name(const char* value, size_t size);
-  inline ::std::string* mutable_writer_name();
-  inline ::std::string* release_writer_name();
-  
-  // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IUCommission)
- private:
-  inline void set_has_uid();
-  inline void clear_has_uid();
-  inline void set_has_revision();
-  inline void clear_has_revision();
-  inline void set_has_writer_name();
-  inline void clear_has_writer_name();
-  
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-  
-  ::std::string* uid_;
-  ::std::string* writer_name_;
-  ::google::protobuf::uint32 revision_;
-  
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(3 + 31) / 32];
-  
-  friend void  protobuf_AddDesc_src_2fipaaca_2eproto();
-  friend void protobuf_AssignDesc_src_2fipaaca_2eproto();
-  friend void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-  
-  void InitAsDefaultInstance();
-  static IUCommission* default_instance_;
-};
-// -------------------------------------------------------------------
-
-class IULinkUpdate : public ::google::protobuf::Message {
- public:
-  IULinkUpdate();
-  virtual ~IULinkUpdate();
-  
-  IULinkUpdate(const IULinkUpdate& from);
-  
-  inline IULinkUpdate& operator=(const IULinkUpdate& from) {
-    CopyFrom(from);
-    return *this;
-  }
-  
-  inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const {
-    return _unknown_fields_;
-  }
-  
-  inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() {
-    return &_unknown_fields_;
-  }
-  
-  static const ::google::protobuf::Descriptor* descriptor();
-  static const IULinkUpdate& default_instance();
-  
-  void Swap(IULinkUpdate* other);
-  
-  // implements Message ----------------------------------------------
-  
-  IULinkUpdate* New() const;
-  void CopyFrom(const ::google::protobuf::Message& from);
-  void MergeFrom(const ::google::protobuf::Message& from);
-  void CopyFrom(const IULinkUpdate& from);
-  void MergeFrom(const IULinkUpdate& from);
-  void Clear();
-  bool IsInitialized() const;
-  
-  int ByteSize() const;
-  bool MergePartialFromCodedStream(
-      ::google::protobuf::io::CodedInputStream* input);
-  void SerializeWithCachedSizes(
-      ::google::protobuf::io::CodedOutputStream* output) const;
-  ::google::protobuf::uint8* SerializeWithCachedSizesToArray(::google::protobuf::uint8* output) const;
-  int GetCachedSize() const { return _cached_size_; }
-  private:
-  void SharedCtor();
-  void SharedDtor();
-  void SetCachedSize(int size) const;
-  public:
-  
-  ::google::protobuf::Metadata GetMetadata() const;
-  
-  // nested types ----------------------------------------------------
-  
-  // accessors -------------------------------------------------------
-  
-  // required string uid = 1;
-  inline bool has_uid() const;
-  inline void clear_uid();
-  static const int kUidFieldNumber = 1;
-  inline const ::std::string& uid() const;
-  inline void set_uid(const ::std::string& value);
-  inline void set_uid(const char* value);
-  inline void set_uid(const char* value, size_t size);
-  inline ::std::string* mutable_uid();
-  inline ::std::string* release_uid();
-  
-  // required uint32 revision = 2;
-  inline bool has_revision() const;
-  inline void clear_revision();
-  static const int kRevisionFieldNumber = 2;
-  inline ::google::protobuf::uint32 revision() const;
-  inline void set_revision(::google::protobuf::uint32 value);
-  
-  // repeated .ipaaca.protobuf.LinkSet new_links = 3;
-  inline int new_links_size() const;
-  inline void clear_new_links();
-  static const int kNewLinksFieldNumber = 3;
-  inline const ::ipaaca::protobuf::LinkSet& new_links(int index) const;
-  inline ::ipaaca::protobuf::LinkSet* mutable_new_links(int index);
-  inline ::ipaaca::protobuf::LinkSet* add_new_links();
-  inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >&
-      new_links() const;
-  inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >*
-      mutable_new_links();
-  
-  // repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-  inline int links_to_remove_size() const;
-  inline void clear_links_to_remove();
-  static const int kLinksToRemoveFieldNumber = 4;
-  inline const ::ipaaca::protobuf::LinkSet& links_to_remove(int index) const;
-  inline ::ipaaca::protobuf::LinkSet* mutable_links_to_remove(int index);
-  inline ::ipaaca::protobuf::LinkSet* add_links_to_remove();
-  inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >&
-      links_to_remove() const;
-  inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >*
-      mutable_links_to_remove();
-  
-  // required bool is_delta = 5 [default = false];
-  inline bool has_is_delta() const;
-  inline void clear_is_delta();
-  static const int kIsDeltaFieldNumber = 5;
-  inline bool is_delta() const;
-  inline void set_is_delta(bool value);
-  
-  // required string writer_name = 6;
-  inline bool has_writer_name() const;
-  inline void clear_writer_name();
-  static const int kWriterNameFieldNumber = 6;
-  inline const ::std::string& writer_name() const;
-  inline void set_writer_name(const ::std::string& value);
-  inline void set_writer_name(const char* value);
-  inline void set_writer_name(const char* value, size_t size);
-  inline ::std::string* mutable_writer_name();
-  inline ::std::string* release_writer_name();
-  
-  // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IULinkUpdate)
- private:
-  inline void set_has_uid();
-  inline void clear_has_uid();
-  inline void set_has_revision();
-  inline void clear_has_revision();
-  inline void set_has_is_delta();
-  inline void clear_has_is_delta();
-  inline void set_has_writer_name();
-  inline void clear_has_writer_name();
-  
-  ::google::protobuf::UnknownFieldSet _unknown_fields_;
-  
-  ::std::string* uid_;
-  ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet > new_links_;
-  ::google::protobuf::uint32 revision_;
-  bool is_delta_;
-  ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet > links_to_remove_;
-  ::std::string* writer_name_;
-  
-  mutable int _cached_size_;
-  ::google::protobuf::uint32 _has_bits_[(6 + 31) / 32];
-  
-  friend void  protobuf_AddDesc_src_2fipaaca_2eproto();
-  friend void protobuf_AssignDesc_src_2fipaaca_2eproto();
-  friend void protobuf_ShutdownFile_src_2fipaaca_2eproto();
-  
-  void InitAsDefaultInstance();
-  static IULinkUpdate* default_instance_;
-};
-// ===================================================================
-
-
-// ===================================================================
-
-// IntMessage
-
-// required sint32 value = 1;
-inline bool IntMessage::has_value() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void IntMessage::set_has_value() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void IntMessage::clear_has_value() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void IntMessage::clear_value() {
-  value_ = 0;
-  clear_has_value();
-}
-inline ::google::protobuf::int32 IntMessage::value() const {
-  return value_;
-}
-inline void IntMessage::set_value(::google::protobuf::int32 value) {
-  set_has_value();
-  value_ = value;
-}
-
-// -------------------------------------------------------------------
-
-// LinkSet
-
-// required string type = 1;
-inline bool LinkSet::has_type() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void LinkSet::set_has_type() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void LinkSet::clear_has_type() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void LinkSet::clear_type() {
-  if (type_ != &::google::protobuf::internal::kEmptyString) {
-    type_->clear();
-  }
-  clear_has_type();
-}
-inline const ::std::string& LinkSet::type() const {
-  return *type_;
-}
-inline void LinkSet::set_type(const ::std::string& value) {
-  set_has_type();
-  if (type_ == &::google::protobuf::internal::kEmptyString) {
-    type_ = new ::std::string;
-  }
-  type_->assign(value);
-}
-inline void LinkSet::set_type(const char* value) {
-  set_has_type();
-  if (type_ == &::google::protobuf::internal::kEmptyString) {
-    type_ = new ::std::string;
-  }
-  type_->assign(value);
-}
-inline void LinkSet::set_type(const char* value, size_t size) {
-  set_has_type();
-  if (type_ == &::google::protobuf::internal::kEmptyString) {
-    type_ = new ::std::string;
-  }
-  type_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* LinkSet::mutable_type() {
-  set_has_type();
-  if (type_ == &::google::protobuf::internal::kEmptyString) {
-    type_ = new ::std::string;
-  }
-  return type_;
-}
-inline ::std::string* LinkSet::release_type() {
-  clear_has_type();
-  if (type_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = type_;
-    type_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// repeated string targets = 2;
-inline int LinkSet::targets_size() const {
-  return targets_.size();
-}
-inline void LinkSet::clear_targets() {
-  targets_.Clear();
-}
-inline const ::std::string& LinkSet::targets(int index) const {
-  return targets_.Get(index);
-}
-inline ::std::string* LinkSet::mutable_targets(int index) {
-  return targets_.Mutable(index);
-}
-inline void LinkSet::set_targets(int index, const ::std::string& value) {
-  targets_.Mutable(index)->assign(value);
-}
-inline void LinkSet::set_targets(int index, const char* value) {
-  targets_.Mutable(index)->assign(value);
-}
-inline void LinkSet::set_targets(int index, const char* value, size_t size) {
-  targets_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* LinkSet::add_targets() {
-  return targets_.Add();
-}
-inline void LinkSet::add_targets(const ::std::string& value) {
-  targets_.Add()->assign(value);
-}
-inline void LinkSet::add_targets(const char* value) {
-  targets_.Add()->assign(value);
-}
-inline void LinkSet::add_targets(const char* value, size_t size) {
-  targets_.Add()->assign(reinterpret_cast<const char*>(value), size);
-}
-inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
-LinkSet::targets() const {
-  return targets_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::std::string>*
-LinkSet::mutable_targets() {
-  return &targets_;
-}
-
-// -------------------------------------------------------------------
-
-// PayloadItem
-
-// required string key = 1;
-inline bool PayloadItem::has_key() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void PayloadItem::set_has_key() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void PayloadItem::clear_has_key() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void PayloadItem::clear_key() {
-  if (key_ != &::google::protobuf::internal::kEmptyString) {
-    key_->clear();
-  }
-  clear_has_key();
-}
-inline const ::std::string& PayloadItem::key() const {
-  return *key_;
-}
-inline void PayloadItem::set_key(const ::std::string& value) {
-  set_has_key();
-  if (key_ == &::google::protobuf::internal::kEmptyString) {
-    key_ = new ::std::string;
-  }
-  key_->assign(value);
-}
-inline void PayloadItem::set_key(const char* value) {
-  set_has_key();
-  if (key_ == &::google::protobuf::internal::kEmptyString) {
-    key_ = new ::std::string;
-  }
-  key_->assign(value);
-}
-inline void PayloadItem::set_key(const char* value, size_t size) {
-  set_has_key();
-  if (key_ == &::google::protobuf::internal::kEmptyString) {
-    key_ = new ::std::string;
-  }
-  key_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* PayloadItem::mutable_key() {
-  set_has_key();
-  if (key_ == &::google::protobuf::internal::kEmptyString) {
-    key_ = new ::std::string;
-  }
-  return key_;
-}
-inline ::std::string* PayloadItem::release_key() {
-  clear_has_key();
-  if (key_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = key_;
-    key_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// required string value = 2;
-inline bool PayloadItem::has_value() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void PayloadItem::set_has_value() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void PayloadItem::clear_has_value() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void PayloadItem::clear_value() {
-  if (value_ != &::google::protobuf::internal::kEmptyString) {
-    value_->clear();
-  }
-  clear_has_value();
-}
-inline const ::std::string& PayloadItem::value() const {
-  return *value_;
-}
-inline void PayloadItem::set_value(const ::std::string& value) {
-  set_has_value();
-  if (value_ == &::google::protobuf::internal::kEmptyString) {
-    value_ = new ::std::string;
-  }
-  value_->assign(value);
-}
-inline void PayloadItem::set_value(const char* value) {
-  set_has_value();
-  if (value_ == &::google::protobuf::internal::kEmptyString) {
-    value_ = new ::std::string;
-  }
-  value_->assign(value);
-}
-inline void PayloadItem::set_value(const char* value, size_t size) {
-  set_has_value();
-  if (value_ == &::google::protobuf::internal::kEmptyString) {
-    value_ = new ::std::string;
-  }
-  value_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* PayloadItem::mutable_value() {
-  set_has_value();
-  if (value_ == &::google::protobuf::internal::kEmptyString) {
-    value_ = new ::std::string;
-  }
-  return value_;
-}
-inline ::std::string* PayloadItem::release_value() {
-  clear_has_value();
-  if (value_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = value_;
-    value_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// required string type = 3 [default = "str"];
-inline bool PayloadItem::has_type() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void PayloadItem::set_has_type() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void PayloadItem::clear_has_type() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void PayloadItem::clear_type() {
-  if (type_ != &_default_type_) {
-    type_->assign(_default_type_);
-  }
-  clear_has_type();
-}
-inline const ::std::string& PayloadItem::type() const {
-  return *type_;
-}
-inline void PayloadItem::set_type(const ::std::string& value) {
-  set_has_type();
-  if (type_ == &_default_type_) {
-    type_ = new ::std::string;
-  }
-  type_->assign(value);
-}
-inline void PayloadItem::set_type(const char* value) {
-  set_has_type();
-  if (type_ == &_default_type_) {
-    type_ = new ::std::string;
-  }
-  type_->assign(value);
-}
-inline void PayloadItem::set_type(const char* value, size_t size) {
-  set_has_type();
-  if (type_ == &_default_type_) {
-    type_ = new ::std::string;
-  }
-  type_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* PayloadItem::mutable_type() {
-  set_has_type();
-  if (type_ == &_default_type_) {
-    type_ = new ::std::string(_default_type_);
-  }
-  return type_;
-}
-inline ::std::string* PayloadItem::release_type() {
-  clear_has_type();
-  if (type_ == &_default_type_) {
-    return NULL;
-  } else {
-    ::std::string* temp = type_;
-    type_ = const_cast< ::std::string*>(&_default_type_);
-    return temp;
-  }
-}
-
-// -------------------------------------------------------------------
-
-// IU
-
-// required string uid = 1;
-inline bool IU::has_uid() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void IU::set_has_uid() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void IU::clear_has_uid() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void IU::clear_uid() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    uid_->clear();
-  }
-  clear_has_uid();
-}
-inline const ::std::string& IU::uid() const {
-  return *uid_;
-}
-inline void IU::set_uid(const ::std::string& value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IU::set_uid(const char* value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IU::set_uid(const char* value, size_t size) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IU::mutable_uid() {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  return uid_;
-}
-inline ::std::string* IU::release_uid() {
-  clear_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = uid_;
-    uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// required uint32 revision = 2;
-inline bool IU::has_revision() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void IU::set_has_revision() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void IU::clear_has_revision() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void IU::clear_revision() {
-  revision_ = 0u;
-  clear_has_revision();
-}
-inline ::google::protobuf::uint32 IU::revision() const {
-  return revision_;
-}
-inline void IU::set_revision(::google::protobuf::uint32 value) {
-  set_has_revision();
-  revision_ = value;
-}
-
-// required string category = 3 [default = "undef"];
-inline bool IU::has_category() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void IU::set_has_category() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void IU::clear_has_category() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void IU::clear_category() {
-  if (category_ != &_default_category_) {
-    category_->assign(_default_category_);
-  }
-  clear_has_category();
-}
-inline const ::std::string& IU::category() const {
-  return *category_;
-}
-inline void IU::set_category(const ::std::string& value) {
-  set_has_category();
-  if (category_ == &_default_category_) {
-    category_ = new ::std::string;
-  }
-  category_->assign(value);
-}
-inline void IU::set_category(const char* value) {
-  set_has_category();
-  if (category_ == &_default_category_) {
-    category_ = new ::std::string;
-  }
-  category_->assign(value);
-}
-inline void IU::set_category(const char* value, size_t size) {
-  set_has_category();
-  if (category_ == &_default_category_) {
-    category_ = new ::std::string;
-  }
-  category_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IU::mutable_category() {
-  set_has_category();
-  if (category_ == &_default_category_) {
-    category_ = new ::std::string(_default_category_);
-  }
-  return category_;
-}
-inline ::std::string* IU::release_category() {
-  clear_has_category();
-  if (category_ == &_default_category_) {
-    return NULL;
-  } else {
-    ::std::string* temp = category_;
-    category_ = const_cast< ::std::string*>(&_default_category_);
-    return temp;
-  }
-}
-
-// required string payload_type = 4 [default = "MAP"];
-inline bool IU::has_payload_type() const {
-  return (_has_bits_[0] & 0x00000008u) != 0;
-}
-inline void IU::set_has_payload_type() {
-  _has_bits_[0] |= 0x00000008u;
-}
-inline void IU::clear_has_payload_type() {
-  _has_bits_[0] &= ~0x00000008u;
-}
-inline void IU::clear_payload_type() {
-  if (payload_type_ != &_default_payload_type_) {
-    payload_type_->assign(_default_payload_type_);
-  }
-  clear_has_payload_type();
-}
-inline const ::std::string& IU::payload_type() const {
-  return *payload_type_;
-}
-inline void IU::set_payload_type(const ::std::string& value) {
-  set_has_payload_type();
-  if (payload_type_ == &_default_payload_type_) {
-    payload_type_ = new ::std::string;
-  }
-  payload_type_->assign(value);
-}
-inline void IU::set_payload_type(const char* value) {
-  set_has_payload_type();
-  if (payload_type_ == &_default_payload_type_) {
-    payload_type_ = new ::std::string;
-  }
-  payload_type_->assign(value);
-}
-inline void IU::set_payload_type(const char* value, size_t size) {
-  set_has_payload_type();
-  if (payload_type_ == &_default_payload_type_) {
-    payload_type_ = new ::std::string;
-  }
-  payload_type_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IU::mutable_payload_type() {
-  set_has_payload_type();
-  if (payload_type_ == &_default_payload_type_) {
-    payload_type_ = new ::std::string(_default_payload_type_);
-  }
-  return payload_type_;
-}
-inline ::std::string* IU::release_payload_type() {
-  clear_has_payload_type();
-  if (payload_type_ == &_default_payload_type_) {
-    return NULL;
-  } else {
-    ::std::string* temp = payload_type_;
-    payload_type_ = const_cast< ::std::string*>(&_default_payload_type_);
-    return temp;
-  }
-}
-
-// required string owner_name = 5;
-inline bool IU::has_owner_name() const {
-  return (_has_bits_[0] & 0x00000010u) != 0;
-}
-inline void IU::set_has_owner_name() {
-  _has_bits_[0] |= 0x00000010u;
-}
-inline void IU::clear_has_owner_name() {
-  _has_bits_[0] &= ~0x00000010u;
-}
-inline void IU::clear_owner_name() {
-  if (owner_name_ != &::google::protobuf::internal::kEmptyString) {
-    owner_name_->clear();
-  }
-  clear_has_owner_name();
-}
-inline const ::std::string& IU::owner_name() const {
-  return *owner_name_;
-}
-inline void IU::set_owner_name(const ::std::string& value) {
-  set_has_owner_name();
-  if (owner_name_ == &::google::protobuf::internal::kEmptyString) {
-    owner_name_ = new ::std::string;
-  }
-  owner_name_->assign(value);
-}
-inline void IU::set_owner_name(const char* value) {
-  set_has_owner_name();
-  if (owner_name_ == &::google::protobuf::internal::kEmptyString) {
-    owner_name_ = new ::std::string;
-  }
-  owner_name_->assign(value);
-}
-inline void IU::set_owner_name(const char* value, size_t size) {
-  set_has_owner_name();
-  if (owner_name_ == &::google::protobuf::internal::kEmptyString) {
-    owner_name_ = new ::std::string;
-  }
-  owner_name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IU::mutable_owner_name() {
-  set_has_owner_name();
-  if (owner_name_ == &::google::protobuf::internal::kEmptyString) {
-    owner_name_ = new ::std::string;
-  }
-  return owner_name_;
-}
-inline ::std::string* IU::release_owner_name() {
-  clear_has_owner_name();
-  if (owner_name_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = owner_name_;
-    owner_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// required bool committed = 6 [default = false];
-inline bool IU::has_committed() const {
-  return (_has_bits_[0] & 0x00000020u) != 0;
-}
-inline void IU::set_has_committed() {
-  _has_bits_[0] |= 0x00000020u;
-}
-inline void IU::clear_has_committed() {
-  _has_bits_[0] &= ~0x00000020u;
-}
-inline void IU::clear_committed() {
-  committed_ = false;
-  clear_has_committed();
-}
-inline bool IU::committed() const {
-  return committed_;
-}
-inline void IU::set_committed(bool value) {
-  set_has_committed();
-  committed_ = value;
-}
-
-// required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-inline bool IU::has_access_mode() const {
-  return (_has_bits_[0] & 0x00000040u) != 0;
-}
-inline void IU::set_has_access_mode() {
-  _has_bits_[0] |= 0x00000040u;
-}
-inline void IU::clear_has_access_mode() {
-  _has_bits_[0] &= ~0x00000040u;
-}
-inline void IU::clear_access_mode() {
-  access_mode_ = 0;
-  clear_has_access_mode();
-}
-inline ::ipaaca::protobuf::IU_AccessMode IU::access_mode() const {
-  return static_cast< ::ipaaca::protobuf::IU_AccessMode >(access_mode_);
-}
-inline void IU::set_access_mode(::ipaaca::protobuf::IU_AccessMode value) {
-  GOOGLE_DCHECK(::ipaaca::protobuf::IU_AccessMode_IsValid(value));
-  set_has_access_mode();
-  access_mode_ = value;
-}
-
-// required bool read_only = 8 [default = false];
-inline bool IU::has_read_only() const {
-  return (_has_bits_[0] & 0x00000080u) != 0;
-}
-inline void IU::set_has_read_only() {
-  _has_bits_[0] |= 0x00000080u;
-}
-inline void IU::clear_has_read_only() {
-  _has_bits_[0] &= ~0x00000080u;
-}
-inline void IU::clear_read_only() {
-  read_only_ = false;
-  clear_has_read_only();
-}
-inline bool IU::read_only() const {
-  return read_only_;
-}
-inline void IU::set_read_only(bool value) {
-  set_has_read_only();
-  read_only_ = value;
-}
-
-// repeated .ipaaca.protobuf.PayloadItem payload = 9;
-inline int IU::payload_size() const {
-  return payload_.size();
-}
-inline void IU::clear_payload() {
-  payload_.Clear();
-}
-inline const ::ipaaca::protobuf::PayloadItem& IU::payload(int index) const {
-  return payload_.Get(index);
-}
-inline ::ipaaca::protobuf::PayloadItem* IU::mutable_payload(int index) {
-  return payload_.Mutable(index);
-}
-inline ::ipaaca::protobuf::PayloadItem* IU::add_payload() {
-  return payload_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem >&
-IU::payload() const {
-  return payload_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem >*
-IU::mutable_payload() {
-  return &payload_;
-}
-
-// repeated .ipaaca.protobuf.LinkSet links = 10;
-inline int IU::links_size() const {
-  return links_.size();
-}
-inline void IU::clear_links() {
-  links_.Clear();
-}
-inline const ::ipaaca::protobuf::LinkSet& IU::links(int index) const {
-  return links_.Get(index);
-}
-inline ::ipaaca::protobuf::LinkSet* IU::mutable_links(int index) {
-  return links_.Mutable(index);
-}
-inline ::ipaaca::protobuf::LinkSet* IU::add_links() {
-  return links_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >&
-IU::links() const {
-  return links_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >*
-IU::mutable_links() {
-  return &links_;
-}
-
-// -------------------------------------------------------------------
-
-// IUPayloadUpdate
-
-// required string uid = 1;
-inline bool IUPayloadUpdate::has_uid() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void IUPayloadUpdate::set_has_uid() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void IUPayloadUpdate::clear_has_uid() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void IUPayloadUpdate::clear_uid() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    uid_->clear();
-  }
-  clear_has_uid();
-}
-inline const ::std::string& IUPayloadUpdate::uid() const {
-  return *uid_;
-}
-inline void IUPayloadUpdate::set_uid(const ::std::string& value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IUPayloadUpdate::set_uid(const char* value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IUPayloadUpdate::set_uid(const char* value, size_t size) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IUPayloadUpdate::mutable_uid() {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  return uid_;
-}
-inline ::std::string* IUPayloadUpdate::release_uid() {
-  clear_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = uid_;
-    uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// required uint32 revision = 2;
-inline bool IUPayloadUpdate::has_revision() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void IUPayloadUpdate::set_has_revision() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void IUPayloadUpdate::clear_has_revision() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void IUPayloadUpdate::clear_revision() {
-  revision_ = 0u;
-  clear_has_revision();
-}
-inline ::google::protobuf::uint32 IUPayloadUpdate::revision() const {
-  return revision_;
-}
-inline void IUPayloadUpdate::set_revision(::google::protobuf::uint32 value) {
-  set_has_revision();
-  revision_ = value;
-}
-
-// repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-inline int IUPayloadUpdate::new_items_size() const {
-  return new_items_.size();
-}
-inline void IUPayloadUpdate::clear_new_items() {
-  new_items_.Clear();
-}
-inline const ::ipaaca::protobuf::PayloadItem& IUPayloadUpdate::new_items(int index) const {
-  return new_items_.Get(index);
-}
-inline ::ipaaca::protobuf::PayloadItem* IUPayloadUpdate::mutable_new_items(int index) {
-  return new_items_.Mutable(index);
-}
-inline ::ipaaca::protobuf::PayloadItem* IUPayloadUpdate::add_new_items() {
-  return new_items_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem >&
-IUPayloadUpdate::new_items() const {
-  return new_items_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::PayloadItem >*
-IUPayloadUpdate::mutable_new_items() {
-  return &new_items_;
-}
-
-// repeated string keys_to_remove = 4;
-inline int IUPayloadUpdate::keys_to_remove_size() const {
-  return keys_to_remove_.size();
-}
-inline void IUPayloadUpdate::clear_keys_to_remove() {
-  keys_to_remove_.Clear();
-}
-inline const ::std::string& IUPayloadUpdate::keys_to_remove(int index) const {
-  return keys_to_remove_.Get(index);
-}
-inline ::std::string* IUPayloadUpdate::mutable_keys_to_remove(int index) {
-  return keys_to_remove_.Mutable(index);
-}
-inline void IUPayloadUpdate::set_keys_to_remove(int index, const ::std::string& value) {
-  keys_to_remove_.Mutable(index)->assign(value);
-}
-inline void IUPayloadUpdate::set_keys_to_remove(int index, const char* value) {
-  keys_to_remove_.Mutable(index)->assign(value);
-}
-inline void IUPayloadUpdate::set_keys_to_remove(int index, const char* value, size_t size) {
-  keys_to_remove_.Mutable(index)->assign(
-    reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IUPayloadUpdate::add_keys_to_remove() {
-  return keys_to_remove_.Add();
-}
-inline void IUPayloadUpdate::add_keys_to_remove(const ::std::string& value) {
-  keys_to_remove_.Add()->assign(value);
-}
-inline void IUPayloadUpdate::add_keys_to_remove(const char* value) {
-  keys_to_remove_.Add()->assign(value);
-}
-inline void IUPayloadUpdate::add_keys_to_remove(const char* value, size_t size) {
-  keys_to_remove_.Add()->assign(reinterpret_cast<const char*>(value), size);
-}
-inline const ::google::protobuf::RepeatedPtrField< ::std::string>&
-IUPayloadUpdate::keys_to_remove() const {
-  return keys_to_remove_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::std::string>*
-IUPayloadUpdate::mutable_keys_to_remove() {
-  return &keys_to_remove_;
-}
-
-// required bool is_delta = 5 [default = false];
-inline bool IUPayloadUpdate::has_is_delta() const {
-  return (_has_bits_[0] & 0x00000010u) != 0;
-}
-inline void IUPayloadUpdate::set_has_is_delta() {
-  _has_bits_[0] |= 0x00000010u;
-}
-inline void IUPayloadUpdate::clear_has_is_delta() {
-  _has_bits_[0] &= ~0x00000010u;
-}
-inline void IUPayloadUpdate::clear_is_delta() {
-  is_delta_ = false;
-  clear_has_is_delta();
-}
-inline bool IUPayloadUpdate::is_delta() const {
-  return is_delta_;
-}
-inline void IUPayloadUpdate::set_is_delta(bool value) {
-  set_has_is_delta();
-  is_delta_ = value;
-}
-
-// required string writer_name = 6;
-inline bool IUPayloadUpdate::has_writer_name() const {
-  return (_has_bits_[0] & 0x00000020u) != 0;
-}
-inline void IUPayloadUpdate::set_has_writer_name() {
-  _has_bits_[0] |= 0x00000020u;
-}
-inline void IUPayloadUpdate::clear_has_writer_name() {
-  _has_bits_[0] &= ~0x00000020u;
-}
-inline void IUPayloadUpdate::clear_writer_name() {
-  if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-    writer_name_->clear();
-  }
-  clear_has_writer_name();
-}
-inline const ::std::string& IUPayloadUpdate::writer_name() const {
-  return *writer_name_;
-}
-inline void IUPayloadUpdate::set_writer_name(const ::std::string& value) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(value);
-}
-inline void IUPayloadUpdate::set_writer_name(const char* value) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(value);
-}
-inline void IUPayloadUpdate::set_writer_name(const char* value, size_t size) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IUPayloadUpdate::mutable_writer_name() {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  return writer_name_;
-}
-inline ::std::string* IUPayloadUpdate::release_writer_name() {
-  clear_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = writer_name_;
-    writer_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// -------------------------------------------------------------------
-
-// IURetraction
-
-// required string uid = 1;
-inline bool IURetraction::has_uid() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void IURetraction::set_has_uid() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void IURetraction::clear_has_uid() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void IURetraction::clear_uid() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    uid_->clear();
-  }
-  clear_has_uid();
-}
-inline const ::std::string& IURetraction::uid() const {
-  return *uid_;
-}
-inline void IURetraction::set_uid(const ::std::string& value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IURetraction::set_uid(const char* value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IURetraction::set_uid(const char* value, size_t size) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IURetraction::mutable_uid() {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  return uid_;
-}
-inline ::std::string* IURetraction::release_uid() {
-  clear_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = uid_;
-    uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// required uint32 revision = 2;
-inline bool IURetraction::has_revision() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void IURetraction::set_has_revision() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void IURetraction::clear_has_revision() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void IURetraction::clear_revision() {
-  revision_ = 0u;
-  clear_has_revision();
-}
-inline ::google::protobuf::uint32 IURetraction::revision() const {
-  return revision_;
-}
-inline void IURetraction::set_revision(::google::protobuf::uint32 value) {
-  set_has_revision();
-  revision_ = value;
-}
-
-// -------------------------------------------------------------------
-
-// IUCommission
-
-// required string uid = 1;
-inline bool IUCommission::has_uid() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void IUCommission::set_has_uid() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void IUCommission::clear_has_uid() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void IUCommission::clear_uid() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    uid_->clear();
-  }
-  clear_has_uid();
-}
-inline const ::std::string& IUCommission::uid() const {
-  return *uid_;
-}
-inline void IUCommission::set_uid(const ::std::string& value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IUCommission::set_uid(const char* value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IUCommission::set_uid(const char* value, size_t size) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IUCommission::mutable_uid() {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  return uid_;
-}
-inline ::std::string* IUCommission::release_uid() {
-  clear_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = uid_;
-    uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// required uint32 revision = 2;
-inline bool IUCommission::has_revision() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void IUCommission::set_has_revision() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void IUCommission::clear_has_revision() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void IUCommission::clear_revision() {
-  revision_ = 0u;
-  clear_has_revision();
-}
-inline ::google::protobuf::uint32 IUCommission::revision() const {
-  return revision_;
-}
-inline void IUCommission::set_revision(::google::protobuf::uint32 value) {
-  set_has_revision();
-  revision_ = value;
-}
-
-// required string writer_name = 3;
-inline bool IUCommission::has_writer_name() const {
-  return (_has_bits_[0] & 0x00000004u) != 0;
-}
-inline void IUCommission::set_has_writer_name() {
-  _has_bits_[0] |= 0x00000004u;
-}
-inline void IUCommission::clear_has_writer_name() {
-  _has_bits_[0] &= ~0x00000004u;
-}
-inline void IUCommission::clear_writer_name() {
-  if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-    writer_name_->clear();
-  }
-  clear_has_writer_name();
-}
-inline const ::std::string& IUCommission::writer_name() const {
-  return *writer_name_;
-}
-inline void IUCommission::set_writer_name(const ::std::string& value) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(value);
-}
-inline void IUCommission::set_writer_name(const char* value) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(value);
-}
-inline void IUCommission::set_writer_name(const char* value, size_t size) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IUCommission::mutable_writer_name() {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  return writer_name_;
-}
-inline ::std::string* IUCommission::release_writer_name() {
-  clear_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = writer_name_;
-    writer_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// -------------------------------------------------------------------
-
-// IULinkUpdate
-
-// required string uid = 1;
-inline bool IULinkUpdate::has_uid() const {
-  return (_has_bits_[0] & 0x00000001u) != 0;
-}
-inline void IULinkUpdate::set_has_uid() {
-  _has_bits_[0] |= 0x00000001u;
-}
-inline void IULinkUpdate::clear_has_uid() {
-  _has_bits_[0] &= ~0x00000001u;
-}
-inline void IULinkUpdate::clear_uid() {
-  if (uid_ != &::google::protobuf::internal::kEmptyString) {
-    uid_->clear();
-  }
-  clear_has_uid();
-}
-inline const ::std::string& IULinkUpdate::uid() const {
-  return *uid_;
-}
-inline void IULinkUpdate::set_uid(const ::std::string& value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IULinkUpdate::set_uid(const char* value) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(value);
-}
-inline void IULinkUpdate::set_uid(const char* value, size_t size) {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  uid_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IULinkUpdate::mutable_uid() {
-  set_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    uid_ = new ::std::string;
-  }
-  return uid_;
-}
-inline ::std::string* IULinkUpdate::release_uid() {
-  clear_has_uid();
-  if (uid_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = uid_;
-    uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-// required uint32 revision = 2;
-inline bool IULinkUpdate::has_revision() const {
-  return (_has_bits_[0] & 0x00000002u) != 0;
-}
-inline void IULinkUpdate::set_has_revision() {
-  _has_bits_[0] |= 0x00000002u;
-}
-inline void IULinkUpdate::clear_has_revision() {
-  _has_bits_[0] &= ~0x00000002u;
-}
-inline void IULinkUpdate::clear_revision() {
-  revision_ = 0u;
-  clear_has_revision();
-}
-inline ::google::protobuf::uint32 IULinkUpdate::revision() const {
-  return revision_;
-}
-inline void IULinkUpdate::set_revision(::google::protobuf::uint32 value) {
-  set_has_revision();
-  revision_ = value;
-}
-
-// repeated .ipaaca.protobuf.LinkSet new_links = 3;
-inline int IULinkUpdate::new_links_size() const {
-  return new_links_.size();
-}
-inline void IULinkUpdate::clear_new_links() {
-  new_links_.Clear();
-}
-inline const ::ipaaca::protobuf::LinkSet& IULinkUpdate::new_links(int index) const {
-  return new_links_.Get(index);
-}
-inline ::ipaaca::protobuf::LinkSet* IULinkUpdate::mutable_new_links(int index) {
-  return new_links_.Mutable(index);
-}
-inline ::ipaaca::protobuf::LinkSet* IULinkUpdate::add_new_links() {
-  return new_links_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >&
-IULinkUpdate::new_links() const {
-  return new_links_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >*
-IULinkUpdate::mutable_new_links() {
-  return &new_links_;
-}
-
-// repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-inline int IULinkUpdate::links_to_remove_size() const {
-  return links_to_remove_.size();
-}
-inline void IULinkUpdate::clear_links_to_remove() {
-  links_to_remove_.Clear();
-}
-inline const ::ipaaca::protobuf::LinkSet& IULinkUpdate::links_to_remove(int index) const {
-  return links_to_remove_.Get(index);
-}
-inline ::ipaaca::protobuf::LinkSet* IULinkUpdate::mutable_links_to_remove(int index) {
-  return links_to_remove_.Mutable(index);
-}
-inline ::ipaaca::protobuf::LinkSet* IULinkUpdate::add_links_to_remove() {
-  return links_to_remove_.Add();
-}
-inline const ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >&
-IULinkUpdate::links_to_remove() const {
-  return links_to_remove_;
-}
-inline ::google::protobuf::RepeatedPtrField< ::ipaaca::protobuf::LinkSet >*
-IULinkUpdate::mutable_links_to_remove() {
-  return &links_to_remove_;
-}
-
-// required bool is_delta = 5 [default = false];
-inline bool IULinkUpdate::has_is_delta() const {
-  return (_has_bits_[0] & 0x00000010u) != 0;
-}
-inline void IULinkUpdate::set_has_is_delta() {
-  _has_bits_[0] |= 0x00000010u;
-}
-inline void IULinkUpdate::clear_has_is_delta() {
-  _has_bits_[0] &= ~0x00000010u;
-}
-inline void IULinkUpdate::clear_is_delta() {
-  is_delta_ = false;
-  clear_has_is_delta();
-}
-inline bool IULinkUpdate::is_delta() const {
-  return is_delta_;
-}
-inline void IULinkUpdate::set_is_delta(bool value) {
-  set_has_is_delta();
-  is_delta_ = value;
-}
-
-// required string writer_name = 6;
-inline bool IULinkUpdate::has_writer_name() const {
-  return (_has_bits_[0] & 0x00000020u) != 0;
-}
-inline void IULinkUpdate::set_has_writer_name() {
-  _has_bits_[0] |= 0x00000020u;
-}
-inline void IULinkUpdate::clear_has_writer_name() {
-  _has_bits_[0] &= ~0x00000020u;
-}
-inline void IULinkUpdate::clear_writer_name() {
-  if (writer_name_ != &::google::protobuf::internal::kEmptyString) {
-    writer_name_->clear();
-  }
-  clear_has_writer_name();
-}
-inline const ::std::string& IULinkUpdate::writer_name() const {
-  return *writer_name_;
-}
-inline void IULinkUpdate::set_writer_name(const ::std::string& value) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(value);
-}
-inline void IULinkUpdate::set_writer_name(const char* value) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(value);
-}
-inline void IULinkUpdate::set_writer_name(const char* value, size_t size) {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  writer_name_->assign(reinterpret_cast<const char*>(value), size);
-}
-inline ::std::string* IULinkUpdate::mutable_writer_name() {
-  set_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    writer_name_ = new ::std::string;
-  }
-  return writer_name_;
-}
-inline ::std::string* IULinkUpdate::release_writer_name() {
-  clear_has_writer_name();
-  if (writer_name_ == &::google::protobuf::internal::kEmptyString) {
-    return NULL;
-  } else {
-    ::std::string* temp = writer_name_;
-    writer_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
-    return temp;
-  }
-}
-
-
-// @@protoc_insertion_point(namespace_scope)
-
-}  // namespace protobuf
-}  // namespace ipaaca
-
-#ifndef SWIG
-namespace google {
-namespace protobuf {
-
-template <>
-inline const EnumDescriptor* GetEnumDescriptor< ::ipaaca::protobuf::IU_AccessMode>() {
-  return ::ipaaca::protobuf::IU_AccessMode_descriptor();
-}
-
-}  // namespace google
-}  // namespace protobuf
-#endif  // SWIG
-
-// @@protoc_insertion_point(global_scope)
-
-#endif  // PROTOBUF_src_2fipaaca_2eproto__INCLUDED
diff --git a/proto/build/java/ipaaca/protobuf/Ipaaca.java b/proto/build/java/ipaaca/protobuf/Ipaaca.java
deleted file mode 100644
index 85830229076b8520fc720466c1d012c7914c7fa5..0000000000000000000000000000000000000000
--- a/proto/build/java/ipaaca/protobuf/Ipaaca.java
+++ /dev/null
@@ -1,6387 +0,0 @@
-// Generated by the protocol buffer compiler.  DO NOT EDIT!
-// source: src/ipaaca.proto
-
-package ipaaca.protobuf;
-
-public final class Ipaaca {
-  private Ipaaca() {}
-  public static void registerAllExtensions(
-      com.google.protobuf.ExtensionRegistry registry) {
-  }
-  public interface IntMessageOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required sint32 value = 1;
-    boolean hasValue();
-    int getValue();
-  }
-  public static final class IntMessage extends
-      com.google.protobuf.GeneratedMessage
-      implements IntMessageOrBuilder {
-    // Use IntMessage.newBuilder() to construct.
-    private IntMessage(Builder builder) {
-      super(builder);
-    }
-    private IntMessage(boolean noInit) {}
-    
-    private static final IntMessage defaultInstance;
-    public static IntMessage getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IntMessage getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IntMessage_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IntMessage_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required sint32 value = 1;
-    public static final int VALUE_FIELD_NUMBER = 1;
-    private int value_;
-    public boolean hasValue() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public int getValue() {
-      return value_;
-    }
-    
-    private void initFields() {
-      value_ = 0;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasValue()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeSInt32(1, value_);
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeSInt32Size(1, value_);
-      }
-      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 ipaaca.protobuf.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IntMessage parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.protobuf.Ipaaca.IntMessage prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.protobuf.Ipaaca.IntMessageOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IntMessage_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IntMessage_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.protobuf.Ipaaca.IntMessage.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        value_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000001);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.protobuf.Ipaaca.IntMessage.getDescriptor();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IntMessage getDefaultInstanceForType() {
-        return ipaaca.protobuf.Ipaaca.IntMessage.getDefaultInstance();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IntMessage build() {
-        ipaaca.protobuf.Ipaaca.IntMessage result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.protobuf.Ipaaca.IntMessage buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.protobuf.Ipaaca.IntMessage result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IntMessage buildPartial() {
-        ipaaca.protobuf.Ipaaca.IntMessage result = new ipaaca.protobuf.Ipaaca.IntMessage(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.value_ = value_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.protobuf.Ipaaca.IntMessage) {
-          return mergeFrom((ipaaca.protobuf.Ipaaca.IntMessage)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.protobuf.Ipaaca.IntMessage other) {
-        if (other == ipaaca.protobuf.Ipaaca.IntMessage.getDefaultInstance()) return this;
-        if (other.hasValue()) {
-          setValue(other.getValue());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasValue()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 8: {
-              bitField0_ |= 0x00000001;
-              value_ = input.readSInt32();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required sint32 value = 1;
-      private int value_ ;
-      public boolean hasValue() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public int getValue() {
-        return value_;
-      }
-      public Builder setValue(int value) {
-        bitField0_ |= 0x00000001;
-        value_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearValue() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        value_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.protobuf.IntMessage)
-    }
-    
-    static {
-      defaultInstance = new IntMessage(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IntMessage)
-  }
-  
-  public interface LinkSetOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string type = 1;
-    boolean hasType();
-    String getType();
-    
-    // repeated string targets = 2;
-    java.util.List<String> getTargetsList();
-    int getTargetsCount();
-    String getTargets(int index);
-  }
-  public static final class LinkSet extends
-      com.google.protobuf.GeneratedMessage
-      implements LinkSetOrBuilder {
-    // Use LinkSet.newBuilder() to construct.
-    private LinkSet(Builder builder) {
-      super(builder);
-    }
-    private LinkSet(boolean noInit) {}
-    
-    private static final LinkSet defaultInstance;
-    public static LinkSet getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public LinkSet getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_LinkSet_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_LinkSet_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string type = 1;
-    public static final int TYPE_FIELD_NUMBER = 1;
-    private java.lang.Object type_;
-    public boolean hasType() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getType() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          type_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getTypeBytes() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        type_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // repeated string targets = 2;
-    public static final int TARGETS_FIELD_NUMBER = 2;
-    private com.google.protobuf.LazyStringList targets_;
-    public java.util.List<String>
-        getTargetsList() {
-      return targets_;
-    }
-    public int getTargetsCount() {
-      return targets_.size();
-    }
-    public String getTargets(int index) {
-      return targets_.get(index);
-    }
-    
-    private void initFields() {
-      type_ = "";
-      targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getTypeBytes());
-      }
-      for (int i = 0; i < targets_.size(); i++) {
-        output.writeBytes(2, targets_.getByteString(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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getTypeBytes());
-      }
-      {
-        int dataSize = 0;
-        for (int i = 0; i < targets_.size(); i++) {
-          dataSize += com.google.protobuf.CodedOutputStream
-            .computeBytesSizeNoTag(targets_.getByteString(i));
-        }
-        size += dataSize;
-        size += 1 * getTargetsList().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 ipaaca.protobuf.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.LinkSet parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.protobuf.Ipaaca.LinkSet prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.protobuf.Ipaaca.LinkSetOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_LinkSet_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_LinkSet_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.protobuf.Ipaaca.LinkSet.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        type_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.protobuf.Ipaaca.LinkSet.getDescriptor();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.LinkSet getDefaultInstanceForType() {
-        return ipaaca.protobuf.Ipaaca.LinkSet.getDefaultInstance();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.LinkSet build() {
-        ipaaca.protobuf.Ipaaca.LinkSet result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.protobuf.Ipaaca.LinkSet buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.protobuf.Ipaaca.LinkSet result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.protobuf.Ipaaca.LinkSet buildPartial() {
-        ipaaca.protobuf.Ipaaca.LinkSet result = new ipaaca.protobuf.Ipaaca.LinkSet(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.type_ = type_;
-        if (((bitField0_ & 0x00000002) == 0x00000002)) {
-          targets_ = new com.google.protobuf.UnmodifiableLazyStringList(
-              targets_);
-          bitField0_ = (bitField0_ & ~0x00000002);
-        }
-        result.targets_ = targets_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.protobuf.Ipaaca.LinkSet) {
-          return mergeFrom((ipaaca.protobuf.Ipaaca.LinkSet)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.protobuf.Ipaaca.LinkSet other) {
-        if (other == ipaaca.protobuf.Ipaaca.LinkSet.getDefaultInstance()) return this;
-        if (other.hasType()) {
-          setType(other.getType());
-        }
-        if (!other.targets_.isEmpty()) {
-          if (targets_.isEmpty()) {
-            targets_ = other.targets_;
-            bitField0_ = (bitField0_ & ~0x00000002);
-          } else {
-            ensureTargetsIsMutable();
-            targets_.addAll(other.targets_);
-          }
-          onChanged();
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasType()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              type_ = input.readBytes();
-              break;
-            }
-            case 18: {
-              ensureTargetsIsMutable();
-              targets_.add(input.readBytes());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string type = 1;
-      private java.lang.Object type_ = "";
-      public boolean hasType() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getType() {
-        java.lang.Object ref = type_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          type_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        type_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearType() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        type_ = getDefaultInstance().getType();
-        onChanged();
-        return this;
-      }
-      void setType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        type_ = value;
-        onChanged();
-      }
-      
-      // repeated string targets = 2;
-      private com.google.protobuf.LazyStringList targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      private void ensureTargetsIsMutable() {
-        if (!((bitField0_ & 0x00000002) == 0x00000002)) {
-          targets_ = new com.google.protobuf.LazyStringArrayList(targets_);
-          bitField0_ |= 0x00000002;
-         }
-      }
-      public java.util.List<String>
-          getTargetsList() {
-        return java.util.Collections.unmodifiableList(targets_);
-      }
-      public int getTargetsCount() {
-        return targets_.size();
-      }
-      public String getTargets(int index) {
-        return targets_.get(index);
-      }
-      public Builder setTargets(
-          int index, String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureTargetsIsMutable();
-        targets_.set(index, value);
-        onChanged();
-        return this;
-      }
-      public Builder addTargets(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureTargetsIsMutable();
-        targets_.add(value);
-        onChanged();
-        return this;
-      }
-      public Builder addAllTargets(
-          java.lang.Iterable<String> values) {
-        ensureTargetsIsMutable();
-        super.addAll(values, targets_);
-        onChanged();
-        return this;
-      }
-      public Builder clearTargets() {
-        targets_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        onChanged();
-        return this;
-      }
-      void addTargets(com.google.protobuf.ByteString value) {
-        ensureTargetsIsMutable();
-        targets_.add(value);
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.protobuf.LinkSet)
-    }
-    
-    static {
-      defaultInstance = new LinkSet(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.protobuf.LinkSet)
-  }
-  
-  public interface PayloadItemOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string key = 1;
-    boolean hasKey();
-    String getKey();
-    
-    // required string value = 2;
-    boolean hasValue();
-    String getValue();
-    
-    // required string type = 3 [default = "str"];
-    boolean hasType();
-    String getType();
-  }
-  public static final class PayloadItem extends
-      com.google.protobuf.GeneratedMessage
-      implements PayloadItemOrBuilder {
-    // Use PayloadItem.newBuilder() to construct.
-    private PayloadItem(Builder builder) {
-      super(builder);
-    }
-    private PayloadItem(boolean noInit) {}
-    
-    private static final PayloadItem defaultInstance;
-    public static PayloadItem getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public PayloadItem getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_PayloadItem_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_PayloadItem_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string key = 1;
-    public static final int KEY_FIELD_NUMBER = 1;
-    private java.lang.Object key_;
-    public boolean hasKey() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getKey() {
-      java.lang.Object ref = key_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          key_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getKeyBytes() {
-      java.lang.Object ref = key_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        key_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string value = 2;
-    public static final int VALUE_FIELD_NUMBER = 2;
-    private java.lang.Object value_;
-    public boolean hasValue() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public String getValue() {
-      java.lang.Object ref = value_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          value_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getValueBytes() {
-      java.lang.Object ref = value_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        value_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string type = 3 [default = "str"];
-    public static final int TYPE_FIELD_NUMBER = 3;
-    private java.lang.Object type_;
-    public boolean hasType() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getType() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          type_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getTypeBytes() {
-      java.lang.Object ref = type_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        type_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      key_ = "";
-      value_ = "";
-      type_ = "str";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasKey()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasValue()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getKeyBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeBytes(2, getValueBytes());
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getTypeBytes());
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getKeyBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(2, getValueBytes());
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getTypeBytes());
-      }
-      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 ipaaca.protobuf.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.PayloadItem parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.protobuf.Ipaaca.PayloadItem prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_PayloadItem_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_PayloadItem_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.protobuf.Ipaaca.PayloadItem.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        key_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        value_ = "";
-        bitField0_ = (bitField0_ & ~0x00000002);
-        type_ = "str";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.protobuf.Ipaaca.PayloadItem.getDescriptor();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.PayloadItem getDefaultInstanceForType() {
-        return ipaaca.protobuf.Ipaaca.PayloadItem.getDefaultInstance();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.PayloadItem build() {
-        ipaaca.protobuf.Ipaaca.PayloadItem result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.protobuf.Ipaaca.PayloadItem buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.protobuf.Ipaaca.PayloadItem result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.protobuf.Ipaaca.PayloadItem buildPartial() {
-        ipaaca.protobuf.Ipaaca.PayloadItem result = new ipaaca.protobuf.Ipaaca.PayloadItem(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.value_ = value_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.type_ = type_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.protobuf.Ipaaca.PayloadItem) {
-          return mergeFrom((ipaaca.protobuf.Ipaaca.PayloadItem)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.protobuf.Ipaaca.PayloadItem other) {
-        if (other == ipaaca.protobuf.Ipaaca.PayloadItem.getDefaultInstance()) return this;
-        if (other.hasKey()) {
-          setKey(other.getKey());
-        }
-        if (other.hasValue()) {
-          setValue(other.getValue());
-        }
-        if (other.hasType()) {
-          setType(other.getType());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasKey()) {
-          
-          return false;
-        }
-        if (!hasValue()) {
-          
-          return false;
-        }
-        if (!hasType()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              key_ = input.readBytes();
-              break;
-            }
-            case 18: {
-              bitField0_ |= 0x00000002;
-              value_ = input.readBytes();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              type_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string key = 1;
-      private java.lang.Object key_ = "";
-      public boolean hasKey() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getKey() {
-        java.lang.Object ref = key_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          key_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setKey(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        key_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearKey() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        key_ = getDefaultInstance().getKey();
-        onChanged();
-        return this;
-      }
-      void setKey(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        key_ = value;
-        onChanged();
-      }
-      
-      // required string value = 2;
-      private java.lang.Object value_ = "";
-      public boolean hasValue() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public String getValue() {
-        java.lang.Object ref = value_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          value_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setValue(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000002;
-        value_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearValue() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        value_ = getDefaultInstance().getValue();
-        onChanged();
-        return this;
-      }
-      void setValue(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000002;
-        value_ = value;
-        onChanged();
-      }
-      
-      // required string type = 3 [default = "str"];
-      private java.lang.Object type_ = "str";
-      public boolean hasType() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getType() {
-        java.lang.Object ref = type_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          type_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        type_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearType() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        type_ = getDefaultInstance().getType();
-        onChanged();
-        return this;
-      }
-      void setType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        type_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.protobuf.PayloadItem)
-    }
-    
-    static {
-      defaultInstance = new PayloadItem(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.protobuf.PayloadItem)
-  }
-  
-  public interface IUOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // required string category = 3 [default = "undef"];
-    boolean hasCategory();
-    String getCategory();
-    
-    // required string payload_type = 4 [default = "MAP"];
-    boolean hasPayloadType();
-    String getPayloadType();
-    
-    // required string owner_name = 5;
-    boolean hasOwnerName();
-    String getOwnerName();
-    
-    // required bool committed = 6 [default = false];
-    boolean hasCommitted();
-    boolean getCommitted();
-    
-    // required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-    boolean hasAccessMode();
-    ipaaca.protobuf.Ipaaca.IU.AccessMode getAccessMode();
-    
-    // required bool read_only = 8 [default = false];
-    boolean hasReadOnly();
-    boolean getReadOnly();
-    
-    // repeated .ipaaca.protobuf.PayloadItem payload = 9;
-    java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> 
-        getPayloadList();
-    ipaaca.protobuf.Ipaaca.PayloadItem getPayload(int index);
-    int getPayloadCount();
-    java.util.List<? extends ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> 
-        getPayloadOrBuilderList();
-    ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-        int index);
-    
-    // repeated .ipaaca.protobuf.LinkSet links = 10;
-    java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> 
-        getLinksList();
-    ipaaca.protobuf.Ipaaca.LinkSet getLinks(int index);
-    int getLinksCount();
-    java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-        getLinksOrBuilderList();
-    ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-        int index);
-  }
-  public static final class IU extends
-      com.google.protobuf.GeneratedMessage
-      implements IUOrBuilder {
-    // Use IU.newBuilder() to construct.
-    private IU(Builder builder) {
-      super(builder);
-    }
-    private IU(boolean noInit) {}
-    
-    private static final IU defaultInstance;
-    public static IU getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IU getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IU_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IU_fieldAccessorTable;
-    }
-    
-    public enum AccessMode
-        implements com.google.protobuf.ProtocolMessageEnum {
-      PUSH(0, 0),
-      REMOTE(1, 1),
-      MESSAGE(2, 2),
-      ;
-      
-      public static final int PUSH_VALUE = 0;
-      public static final int REMOTE_VALUE = 1;
-      public static final int MESSAGE_VALUE = 2;
-      
-      
-      public final int getNumber() { return value; }
-      
-      public static AccessMode valueOf(int value) {
-        switch (value) {
-          case 0: return PUSH;
-          case 1: return REMOTE;
-          case 2: return MESSAGE;
-          default: return null;
-        }
-      }
-      
-      public static com.google.protobuf.Internal.EnumLiteMap<AccessMode>
-          internalGetValueMap() {
-        return internalValueMap;
-      }
-      private static com.google.protobuf.Internal.EnumLiteMap<AccessMode>
-          internalValueMap =
-            new com.google.protobuf.Internal.EnumLiteMap<AccessMode>() {
-              public AccessMode findValueByNumber(int number) {
-                return AccessMode.valueOf(number);
-              }
-            };
-      
-      public final com.google.protobuf.Descriptors.EnumValueDescriptor
-          getValueDescriptor() {
-        return getDescriptor().getValues().get(index);
-      }
-      public final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptorForType() {
-        return getDescriptor();
-      }
-      public static final com.google.protobuf.Descriptors.EnumDescriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.IU.getDescriptor().getEnumTypes().get(0);
-      }
-      
-      private static final AccessMode[] VALUES = {
-        PUSH, REMOTE, MESSAGE, 
-      };
-      
-      public static AccessMode valueOf(
-          com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
-        if (desc.getType() != getDescriptor()) {
-          throw new java.lang.IllegalArgumentException(
-            "EnumValueDescriptor is not for this type.");
-        }
-        return VALUES[desc.getIndex()];
-      }
-      
-      private final int index;
-      private final int value;
-      
-      private AccessMode(int index, int value) {
-        this.index = index;
-        this.value = value;
-      }
-      
-      // @@protoc_insertion_point(enum_scope:ipaaca.protobuf.IU.AccessMode)
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // required string category = 3 [default = "undef"];
-    public static final int CATEGORY_FIELD_NUMBER = 3;
-    private java.lang.Object category_;
-    public boolean hasCategory() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getCategory() {
-      java.lang.Object ref = category_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          category_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getCategoryBytes() {
-      java.lang.Object ref = category_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        category_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string payload_type = 4 [default = "MAP"];
-    public static final int PAYLOAD_TYPE_FIELD_NUMBER = 4;
-    private java.lang.Object payloadType_;
-    public boolean hasPayloadType() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getPayloadType() {
-      java.lang.Object ref = payloadType_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          payloadType_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getPayloadTypeBytes() {
-      java.lang.Object ref = payloadType_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        payloadType_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required string owner_name = 5;
-    public static final int OWNER_NAME_FIELD_NUMBER = 5;
-    private java.lang.Object ownerName_;
-    public boolean hasOwnerName() {
-      return ((bitField0_ & 0x00000010) == 0x00000010);
-    }
-    public String getOwnerName() {
-      java.lang.Object ref = ownerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          ownerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getOwnerNameBytes() {
-      java.lang.Object ref = ownerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        ownerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required bool committed = 6 [default = false];
-    public static final int COMMITTED_FIELD_NUMBER = 6;
-    private boolean committed_;
-    public boolean hasCommitted() {
-      return ((bitField0_ & 0x00000020) == 0x00000020);
-    }
-    public boolean getCommitted() {
-      return committed_;
-    }
-    
-    // required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-    public static final int ACCESS_MODE_FIELD_NUMBER = 7;
-    private ipaaca.protobuf.Ipaaca.IU.AccessMode accessMode_;
-    public boolean hasAccessMode() {
-      return ((bitField0_ & 0x00000040) == 0x00000040);
-    }
-    public ipaaca.protobuf.Ipaaca.IU.AccessMode getAccessMode() {
-      return accessMode_;
-    }
-    
-    // required bool read_only = 8 [default = false];
-    public static final int READ_ONLY_FIELD_NUMBER = 8;
-    private boolean readOnly_;
-    public boolean hasReadOnly() {
-      return ((bitField0_ & 0x00000080) == 0x00000080);
-    }
-    public boolean getReadOnly() {
-      return readOnly_;
-    }
-    
-    // repeated .ipaaca.protobuf.PayloadItem payload = 9;
-    public static final int PAYLOAD_FIELD_NUMBER = 9;
-    private java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> payload_;
-    public java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> getPayloadList() {
-      return payload_;
-    }
-    public java.util.List<? extends ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> 
-        getPayloadOrBuilderList() {
-      return payload_;
-    }
-    public int getPayloadCount() {
-      return payload_.size();
-    }
-    public ipaaca.protobuf.Ipaaca.PayloadItem getPayload(int index) {
-      return payload_.get(index);
-    }
-    public ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-        int index) {
-      return payload_.get(index);
-    }
-    
-    // repeated .ipaaca.protobuf.LinkSet links = 10;
-    public static final int LINKS_FIELD_NUMBER = 10;
-    private java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> links_;
-    public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> getLinksList() {
-      return links_;
-    }
-    public java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-        getLinksOrBuilderList() {
-      return links_;
-    }
-    public int getLinksCount() {
-      return links_.size();
-    }
-    public ipaaca.protobuf.Ipaaca.LinkSet getLinks(int index) {
-      return links_.get(index);
-    }
-    public ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-        int index) {
-      return links_.get(index);
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      category_ = "undef";
-      payloadType_ = "MAP";
-      ownerName_ = "";
-      committed_ = false;
-      accessMode_ = ipaaca.protobuf.Ipaaca.IU.AccessMode.PUSH;
-      readOnly_ = false;
-      payload_ = java.util.Collections.emptyList();
-      links_ = java.util.Collections.emptyList();
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasCategory()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasPayloadType()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasOwnerName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasCommitted()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasAccessMode()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasReadOnly()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getPayloadCount(); i++) {
-        if (!getPayload(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      for (int i = 0; i < getLinksCount(); i++) {
-        if (!getLinks(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getCategoryBytes());
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(4, getPayloadTypeBytes());
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        output.writeBytes(5, getOwnerNameBytes());
-      }
-      if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        output.writeBool(6, committed_);
-      }
-      if (((bitField0_ & 0x00000040) == 0x00000040)) {
-        output.writeEnum(7, accessMode_.getNumber());
-      }
-      if (((bitField0_ & 0x00000080) == 0x00000080)) {
-        output.writeBool(8, readOnly_);
-      }
-      for (int i = 0; i < payload_.size(); i++) {
-        output.writeMessage(9, payload_.get(i));
-      }
-      for (int i = 0; i < links_.size(); i++) {
-        output.writeMessage(10, links_.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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getCategoryBytes());
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(4, getPayloadTypeBytes());
-      }
-      if (((bitField0_ & 0x00000010) == 0x00000010)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(5, getOwnerNameBytes());
-      }
-      if (((bitField0_ & 0x00000020) == 0x00000020)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(6, committed_);
-      }
-      if (((bitField0_ & 0x00000040) == 0x00000040)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeEnumSize(7, accessMode_.getNumber());
-      }
-      if (((bitField0_ & 0x00000080) == 0x00000080)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(8, readOnly_);
-      }
-      for (int i = 0; i < payload_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(9, payload_.get(i));
-      }
-      for (int i = 0; i < links_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(10, links_.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 ipaaca.protobuf.Ipaaca.IU parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IU parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.protobuf.Ipaaca.IU prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.protobuf.Ipaaca.IUOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IU_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IU_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.protobuf.Ipaaca.IU.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getPayloadFieldBuilder();
-          getLinksFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        category_ = "undef";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        payloadType_ = "MAP";
-        bitField0_ = (bitField0_ & ~0x00000008);
-        ownerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000010);
-        committed_ = false;
-        bitField0_ = (bitField0_ & ~0x00000020);
-        accessMode_ = ipaaca.protobuf.Ipaaca.IU.AccessMode.PUSH;
-        bitField0_ = (bitField0_ & ~0x00000040);
-        readOnly_ = false;
-        bitField0_ = (bitField0_ & ~0x00000080);
-        if (payloadBuilder_ == null) {
-          payload_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000100);
-        } else {
-          payloadBuilder_.clear();
-        }
-        if (linksBuilder_ == null) {
-          links_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000200);
-        } else {
-          linksBuilder_.clear();
-        }
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.protobuf.Ipaaca.IU.getDescriptor();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IU getDefaultInstanceForType() {
-        return ipaaca.protobuf.Ipaaca.IU.getDefaultInstance();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IU build() {
-        ipaaca.protobuf.Ipaaca.IU result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.protobuf.Ipaaca.IU buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.protobuf.Ipaaca.IU result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IU buildPartial() {
-        ipaaca.protobuf.Ipaaca.IU result = new ipaaca.protobuf.Ipaaca.IU(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.category_ = category_;
-        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.payloadType_ = payloadType_;
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000010;
-        }
-        result.ownerName_ = ownerName_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000020;
-        }
-        result.committed_ = committed_;
-        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
-          to_bitField0_ |= 0x00000040;
-        }
-        result.accessMode_ = accessMode_;
-        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
-          to_bitField0_ |= 0x00000080;
-        }
-        result.readOnly_ = readOnly_;
-        if (payloadBuilder_ == null) {
-          if (((bitField0_ & 0x00000100) == 0x00000100)) {
-            payload_ = java.util.Collections.unmodifiableList(payload_);
-            bitField0_ = (bitField0_ & ~0x00000100);
-          }
-          result.payload_ = payload_;
-        } else {
-          result.payload_ = payloadBuilder_.build();
-        }
-        if (linksBuilder_ == null) {
-          if (((bitField0_ & 0x00000200) == 0x00000200)) {
-            links_ = java.util.Collections.unmodifiableList(links_);
-            bitField0_ = (bitField0_ & ~0x00000200);
-          }
-          result.links_ = links_;
-        } else {
-          result.links_ = linksBuilder_.build();
-        }
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.protobuf.Ipaaca.IU) {
-          return mergeFrom((ipaaca.protobuf.Ipaaca.IU)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.protobuf.Ipaaca.IU other) {
-        if (other == ipaaca.protobuf.Ipaaca.IU.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (other.hasCategory()) {
-          setCategory(other.getCategory());
-        }
-        if (other.hasPayloadType()) {
-          setPayloadType(other.getPayloadType());
-        }
-        if (other.hasOwnerName()) {
-          setOwnerName(other.getOwnerName());
-        }
-        if (other.hasCommitted()) {
-          setCommitted(other.getCommitted());
-        }
-        if (other.hasAccessMode()) {
-          setAccessMode(other.getAccessMode());
-        }
-        if (other.hasReadOnly()) {
-          setReadOnly(other.getReadOnly());
-        }
-        if (payloadBuilder_ == null) {
-          if (!other.payload_.isEmpty()) {
-            if (payload_.isEmpty()) {
-              payload_ = other.payload_;
-              bitField0_ = (bitField0_ & ~0x00000100);
-            } else {
-              ensurePayloadIsMutable();
-              payload_.addAll(other.payload_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.payload_.isEmpty()) {
-            if (payloadBuilder_.isEmpty()) {
-              payloadBuilder_.dispose();
-              payloadBuilder_ = null;
-              payload_ = other.payload_;
-              bitField0_ = (bitField0_ & ~0x00000100);
-              payloadBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getPayloadFieldBuilder() : null;
-            } else {
-              payloadBuilder_.addAllMessages(other.payload_);
-            }
-          }
-        }
-        if (linksBuilder_ == null) {
-          if (!other.links_.isEmpty()) {
-            if (links_.isEmpty()) {
-              links_ = other.links_;
-              bitField0_ = (bitField0_ & ~0x00000200);
-            } else {
-              ensureLinksIsMutable();
-              links_.addAll(other.links_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.links_.isEmpty()) {
-            if (linksBuilder_.isEmpty()) {
-              linksBuilder_.dispose();
-              linksBuilder_ = null;
-              links_ = other.links_;
-              bitField0_ = (bitField0_ & ~0x00000200);
-              linksBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getLinksFieldBuilder() : null;
-            } else {
-              linksBuilder_.addAllMessages(other.links_);
-            }
-          }
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasCategory()) {
-          
-          return false;
-        }
-        if (!hasPayloadType()) {
-          
-          return false;
-        }
-        if (!hasOwnerName()) {
-          
-          return false;
-        }
-        if (!hasCommitted()) {
-          
-          return false;
-        }
-        if (!hasAccessMode()) {
-          
-          return false;
-        }
-        if (!hasReadOnly()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getPayloadCount(); i++) {
-          if (!getPayload(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        for (int i = 0; i < getLinksCount(); i++) {
-          if (!getLinks(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              category_ = input.readBytes();
-              break;
-            }
-            case 34: {
-              bitField0_ |= 0x00000008;
-              payloadType_ = input.readBytes();
-              break;
-            }
-            case 42: {
-              bitField0_ |= 0x00000010;
-              ownerName_ = input.readBytes();
-              break;
-            }
-            case 48: {
-              bitField0_ |= 0x00000020;
-              committed_ = input.readBool();
-              break;
-            }
-            case 56: {
-              int rawValue = input.readEnum();
-              ipaaca.protobuf.Ipaaca.IU.AccessMode value = ipaaca.protobuf.Ipaaca.IU.AccessMode.valueOf(rawValue);
-              if (value == null) {
-                unknownFields.mergeVarintField(7, rawValue);
-              } else {
-                bitField0_ |= 0x00000040;
-                accessMode_ = value;
-              }
-              break;
-            }
-            case 64: {
-              bitField0_ |= 0x00000080;
-              readOnly_ = input.readBool();
-              break;
-            }
-            case 74: {
-              ipaaca.protobuf.Ipaaca.PayloadItem.Builder subBuilder = ipaaca.protobuf.Ipaaca.PayloadItem.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addPayload(subBuilder.buildPartial());
-              break;
-            }
-            case 82: {
-              ipaaca.protobuf.Ipaaca.LinkSet.Builder subBuilder = ipaaca.protobuf.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addLinks(subBuilder.buildPartial());
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // required string category = 3 [default = "undef"];
-      private java.lang.Object category_ = "undef";
-      public boolean hasCategory() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getCategory() {
-        java.lang.Object ref = category_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          category_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setCategory(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        category_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearCategory() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        category_ = getDefaultInstance().getCategory();
-        onChanged();
-        return this;
-      }
-      void setCategory(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        category_ = value;
-        onChanged();
-      }
-      
-      // required string payload_type = 4 [default = "MAP"];
-      private java.lang.Object payloadType_ = "MAP";
-      public boolean hasPayloadType() {
-        return ((bitField0_ & 0x00000008) == 0x00000008);
-      }
-      public String getPayloadType() {
-        java.lang.Object ref = payloadType_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          payloadType_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setPayloadType(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000008;
-        payloadType_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearPayloadType() {
-        bitField0_ = (bitField0_ & ~0x00000008);
-        payloadType_ = getDefaultInstance().getPayloadType();
-        onChanged();
-        return this;
-      }
-      void setPayloadType(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000008;
-        payloadType_ = value;
-        onChanged();
-      }
-      
-      // required string owner_name = 5;
-      private java.lang.Object ownerName_ = "";
-      public boolean hasOwnerName() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public String getOwnerName() {
-        java.lang.Object ref = ownerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          ownerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setOwnerName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000010;
-        ownerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearOwnerName() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        ownerName_ = getDefaultInstance().getOwnerName();
-        onChanged();
-        return this;
-      }
-      void setOwnerName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000010;
-        ownerName_ = value;
-        onChanged();
-      }
-      
-      // required bool committed = 6 [default = false];
-      private boolean committed_ ;
-      public boolean hasCommitted() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public boolean getCommitted() {
-        return committed_;
-      }
-      public Builder setCommitted(boolean value) {
-        bitField0_ |= 0x00000020;
-        committed_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearCommitted() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        committed_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required .ipaaca.protobuf.IU.AccessMode access_mode = 7 [default = PUSH];
-      private ipaaca.protobuf.Ipaaca.IU.AccessMode accessMode_ = ipaaca.protobuf.Ipaaca.IU.AccessMode.PUSH;
-      public boolean hasAccessMode() {
-        return ((bitField0_ & 0x00000040) == 0x00000040);
-      }
-      public ipaaca.protobuf.Ipaaca.IU.AccessMode getAccessMode() {
-        return accessMode_;
-      }
-      public Builder setAccessMode(ipaaca.protobuf.Ipaaca.IU.AccessMode value) {
-        if (value == null) {
-          throw new NullPointerException();
-        }
-        bitField0_ |= 0x00000040;
-        accessMode_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearAccessMode() {
-        bitField0_ = (bitField0_ & ~0x00000040);
-        accessMode_ = ipaaca.protobuf.Ipaaca.IU.AccessMode.PUSH;
-        onChanged();
-        return this;
-      }
-      
-      // required bool read_only = 8 [default = false];
-      private boolean readOnly_ ;
-      public boolean hasReadOnly() {
-        return ((bitField0_ & 0x00000080) == 0x00000080);
-      }
-      public boolean getReadOnly() {
-        return readOnly_;
-      }
-      public Builder setReadOnly(boolean value) {
-        bitField0_ |= 0x00000080;
-        readOnly_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearReadOnly() {
-        bitField0_ = (bitField0_ & ~0x00000080);
-        readOnly_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.protobuf.PayloadItem payload = 9;
-      private java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> payload_ =
-        java.util.Collections.emptyList();
-      private void ensurePayloadIsMutable() {
-        if (!((bitField0_ & 0x00000100) == 0x00000100)) {
-          payload_ = new java.util.ArrayList<ipaaca.protobuf.Ipaaca.PayloadItem>(payload_);
-          bitField0_ |= 0x00000100;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.PayloadItem, ipaaca.protobuf.Ipaaca.PayloadItem.Builder, ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> payloadBuilder_;
-      
-      public java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> getPayloadList() {
-        if (payloadBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(payload_);
-        } else {
-          return payloadBuilder_.getMessageList();
-        }
-      }
-      public int getPayloadCount() {
-        if (payloadBuilder_ == null) {
-          return payload_.size();
-        } else {
-          return payloadBuilder_.getCount();
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItem getPayload(int index) {
-        if (payloadBuilder_ == null) {
-          return payload_.get(index);
-        } else {
-          return payloadBuilder_.getMessage(index);
-        }
-      }
-      public Builder setPayload(
-          int index, ipaaca.protobuf.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.set(index, value);
-          onChanged();
-        } else {
-          payloadBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setPayload(
-          int index, ipaaca.protobuf.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addPayload(ipaaca.protobuf.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.add(value);
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addPayload(
-          int index, ipaaca.protobuf.Ipaaca.PayloadItem value) {
-        if (payloadBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensurePayloadIsMutable();
-          payload_.add(index, value);
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addPayload(
-          ipaaca.protobuf.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.add(builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addPayload(
-          int index, ipaaca.protobuf.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          payloadBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllPayload(
-          java.lang.Iterable<? extends ipaaca.protobuf.Ipaaca.PayloadItem> values) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          super.addAll(values, payload_);
-          onChanged();
-        } else {
-          payloadBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearPayload() {
-        if (payloadBuilder_ == null) {
-          payload_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000100);
-          onChanged();
-        } else {
-          payloadBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removePayload(int index) {
-        if (payloadBuilder_ == null) {
-          ensurePayloadIsMutable();
-          payload_.remove(index);
-          onChanged();
-        } else {
-          payloadBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItem.Builder getPayloadBuilder(
-          int index) {
-        return getPayloadFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder getPayloadOrBuilder(
-          int index) {
-        if (payloadBuilder_ == null) {
-          return payload_.get(index);  } else {
-          return payloadBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> 
-           getPayloadOrBuilderList() {
-        if (payloadBuilder_ != null) {
-          return payloadBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(payload_);
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItem.Builder addPayloadBuilder() {
-        return getPayloadFieldBuilder().addBuilder(
-            ipaaca.protobuf.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItem.Builder addPayloadBuilder(
-          int index) {
-        return getPayloadFieldBuilder().addBuilder(
-            index, ipaaca.protobuf.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem.Builder> 
-           getPayloadBuilderList() {
-        return getPayloadFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.PayloadItem, ipaaca.protobuf.Ipaaca.PayloadItem.Builder, ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> 
-          getPayloadFieldBuilder() {
-        if (payloadBuilder_ == null) {
-          payloadBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.protobuf.Ipaaca.PayloadItem, ipaaca.protobuf.Ipaaca.PayloadItem.Builder, ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder>(
-                  payload_,
-                  ((bitField0_ & 0x00000100) == 0x00000100),
-                  getParentForChildren(),
-                  isClean());
-          payload_ = null;
-        }
-        return payloadBuilder_;
-      }
-      
-      // repeated .ipaaca.protobuf.LinkSet links = 10;
-      private java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> links_ =
-        java.util.Collections.emptyList();
-      private void ensureLinksIsMutable() {
-        if (!((bitField0_ & 0x00000200) == 0x00000200)) {
-          links_ = new java.util.ArrayList<ipaaca.protobuf.Ipaaca.LinkSet>(links_);
-          bitField0_ |= 0x00000200;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> linksBuilder_;
-      
-      public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> getLinksList() {
-        if (linksBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(links_);
-        } else {
-          return linksBuilder_.getMessageList();
-        }
-      }
-      public int getLinksCount() {
-        if (linksBuilder_ == null) {
-          return links_.size();
-        } else {
-          return linksBuilder_.getCount();
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet getLinks(int index) {
-        if (linksBuilder_ == null) {
-          return links_.get(index);
-        } else {
-          return linksBuilder_.getMessage(index);
-        }
-      }
-      public Builder setLinks(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.set(index, value);
-          onChanged();
-        } else {
-          linksBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setLinks(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinks(ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.add(value);
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addLinks(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (linksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksIsMutable();
-          links_.add(index, value);
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addLinks(
-          ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.add(builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinks(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllLinks(
-          java.lang.Iterable<? extends ipaaca.protobuf.Ipaaca.LinkSet> values) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          super.addAll(values, links_);
-          onChanged();
-        } else {
-          linksBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearLinks() {
-        if (linksBuilder_ == null) {
-          links_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000200);
-          onChanged();
-        } else {
-          linksBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeLinks(int index) {
-        if (linksBuilder_ == null) {
-          ensureLinksIsMutable();
-          links_.remove(index);
-          onChanged();
-        } else {
-          linksBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder getLinksBuilder(
-          int index) {
-        return getLinksFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getLinksOrBuilder(
-          int index) {
-        if (linksBuilder_ == null) {
-          return links_.get(index);  } else {
-          return linksBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-           getLinksOrBuilderList() {
-        if (linksBuilder_ != null) {
-          return linksBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(links_);
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder addLinksBuilder() {
-        return getLinksFieldBuilder().addBuilder(
-            ipaaca.protobuf.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder addLinksBuilder(
-          int index) {
-        return getLinksFieldBuilder().addBuilder(
-            index, ipaaca.protobuf.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet.Builder> 
-           getLinksBuilderList() {
-        return getLinksFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-          getLinksFieldBuilder() {
-        if (linksBuilder_ == null) {
-          linksBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder>(
-                  links_,
-                  ((bitField0_ & 0x00000200) == 0x00000200),
-                  getParentForChildren(),
-                  isClean());
-          links_ = null;
-        }
-        return linksBuilder_;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.protobuf.IU)
-    }
-    
-    static {
-      defaultInstance = new IU(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IU)
-  }
-  
-  public interface IUPayloadUpdateOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-    java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> 
-        getNewItemsList();
-    ipaaca.protobuf.Ipaaca.PayloadItem getNewItems(int index);
-    int getNewItemsCount();
-    java.util.List<? extends ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> 
-        getNewItemsOrBuilderList();
-    ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-        int index);
-    
-    // repeated string keys_to_remove = 4;
-    java.util.List<String> getKeysToRemoveList();
-    int getKeysToRemoveCount();
-    String getKeysToRemove(int index);
-    
-    // required bool is_delta = 5 [default = false];
-    boolean hasIsDelta();
-    boolean getIsDelta();
-    
-    // required string writer_name = 6;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IUPayloadUpdate extends
-      com.google.protobuf.GeneratedMessage
-      implements IUPayloadUpdateOrBuilder {
-    // Use IUPayloadUpdate.newBuilder() to construct.
-    private IUPayloadUpdate(Builder builder) {
-      super(builder);
-    }
-    private IUPayloadUpdate(boolean noInit) {}
-    
-    private static final IUPayloadUpdate defaultInstance;
-    public static IUPayloadUpdate getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IUPayloadUpdate getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IUPayloadUpdate_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IUPayloadUpdate_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-    public static final int NEW_ITEMS_FIELD_NUMBER = 3;
-    private java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> newItems_;
-    public java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> getNewItemsList() {
-      return newItems_;
-    }
-    public java.util.List<? extends ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> 
-        getNewItemsOrBuilderList() {
-      return newItems_;
-    }
-    public int getNewItemsCount() {
-      return newItems_.size();
-    }
-    public ipaaca.protobuf.Ipaaca.PayloadItem getNewItems(int index) {
-      return newItems_.get(index);
-    }
-    public ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-        int index) {
-      return newItems_.get(index);
-    }
-    
-    // repeated string keys_to_remove = 4;
-    public static final int KEYS_TO_REMOVE_FIELD_NUMBER = 4;
-    private com.google.protobuf.LazyStringList keysToRemove_;
-    public java.util.List<String>
-        getKeysToRemoveList() {
-      return keysToRemove_;
-    }
-    public int getKeysToRemoveCount() {
-      return keysToRemove_.size();
-    }
-    public String getKeysToRemove(int index) {
-      return keysToRemove_.get(index);
-    }
-    
-    // required bool is_delta = 5 [default = false];
-    public static final int IS_DELTA_FIELD_NUMBER = 5;
-    private boolean isDelta_;
-    public boolean hasIsDelta() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public boolean getIsDelta() {
-      return isDelta_;
-    }
-    
-    // required string writer_name = 6;
-    public static final int WRITER_NAME_FIELD_NUMBER = 6;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      newItems_ = java.util.Collections.emptyList();
-      keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      isDelta_ = false;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasIsDelta()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getNewItemsCount(); i++) {
-        if (!getNewItems(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      for (int i = 0; i < newItems_.size(); i++) {
-        output.writeMessage(3, newItems_.get(i));
-      }
-      for (int i = 0; i < keysToRemove_.size(); i++) {
-        output.writeBytes(4, keysToRemove_.getByteString(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBool(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(6, getWriterNameBytes());
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      for (int i = 0; i < newItems_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, newItems_.get(i));
-      }
-      {
-        int dataSize = 0;
-        for (int i = 0; i < keysToRemove_.size(); i++) {
-          dataSize += com.google.protobuf.CodedOutputStream
-            .computeBytesSizeNoTag(keysToRemove_.getByteString(i));
-        }
-        size += dataSize;
-        size += 1 * getKeysToRemoveList().size();
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(6, getWriterNameBytes());
-      }
-      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 ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUPayloadUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.protobuf.Ipaaca.IUPayloadUpdate prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.protobuf.Ipaaca.IUPayloadUpdateOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IUPayloadUpdate_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IUPayloadUpdate_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.protobuf.Ipaaca.IUPayloadUpdate.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getNewItemsFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        if (newItemsBuilder_ == null) {
-          newItems_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        } else {
-          newItemsBuilder_.clear();
-        }
-        keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000008);
-        isDelta_ = false;
-        bitField0_ = (bitField0_ & ~0x00000010);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000020);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.protobuf.Ipaaca.IUPayloadUpdate.getDescriptor();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IUPayloadUpdate getDefaultInstanceForType() {
-        return ipaaca.protobuf.Ipaaca.IUPayloadUpdate.getDefaultInstance();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IUPayloadUpdate build() {
-        ipaaca.protobuf.Ipaaca.IUPayloadUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.protobuf.Ipaaca.IUPayloadUpdate buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.protobuf.Ipaaca.IUPayloadUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IUPayloadUpdate buildPartial() {
-        ipaaca.protobuf.Ipaaca.IUPayloadUpdate result = new ipaaca.protobuf.Ipaaca.IUPayloadUpdate(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (newItemsBuilder_ == null) {
-          if (((bitField0_ & 0x00000004) == 0x00000004)) {
-            newItems_ = java.util.Collections.unmodifiableList(newItems_);
-            bitField0_ = (bitField0_ & ~0x00000004);
-          }
-          result.newItems_ = newItems_;
-        } else {
-          result.newItems_ = newItemsBuilder_.build();
-        }
-        if (((bitField0_ & 0x00000008) == 0x00000008)) {
-          keysToRemove_ = new com.google.protobuf.UnmodifiableLazyStringList(
-              keysToRemove_);
-          bitField0_ = (bitField0_ & ~0x00000008);
-        }
-        result.keysToRemove_ = keysToRemove_;
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.isDelta_ = isDelta_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.protobuf.Ipaaca.IUPayloadUpdate) {
-          return mergeFrom((ipaaca.protobuf.Ipaaca.IUPayloadUpdate)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.protobuf.Ipaaca.IUPayloadUpdate other) {
-        if (other == ipaaca.protobuf.Ipaaca.IUPayloadUpdate.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (newItemsBuilder_ == null) {
-          if (!other.newItems_.isEmpty()) {
-            if (newItems_.isEmpty()) {
-              newItems_ = other.newItems_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-            } else {
-              ensureNewItemsIsMutable();
-              newItems_.addAll(other.newItems_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.newItems_.isEmpty()) {
-            if (newItemsBuilder_.isEmpty()) {
-              newItemsBuilder_.dispose();
-              newItemsBuilder_ = null;
-              newItems_ = other.newItems_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-              newItemsBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getNewItemsFieldBuilder() : null;
-            } else {
-              newItemsBuilder_.addAllMessages(other.newItems_);
-            }
-          }
-        }
-        if (!other.keysToRemove_.isEmpty()) {
-          if (keysToRemove_.isEmpty()) {
-            keysToRemove_ = other.keysToRemove_;
-            bitField0_ = (bitField0_ & ~0x00000008);
-          } else {
-            ensureKeysToRemoveIsMutable();
-            keysToRemove_.addAll(other.keysToRemove_);
-          }
-          onChanged();
-        }
-        if (other.hasIsDelta()) {
-          setIsDelta(other.getIsDelta());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasIsDelta()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getNewItemsCount(); i++) {
-          if (!getNewItems(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              ipaaca.protobuf.Ipaaca.PayloadItem.Builder subBuilder = ipaaca.protobuf.Ipaaca.PayloadItem.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addNewItems(subBuilder.buildPartial());
-              break;
-            }
-            case 34: {
-              ensureKeysToRemoveIsMutable();
-              keysToRemove_.add(input.readBytes());
-              break;
-            }
-            case 40: {
-              bitField0_ |= 0x00000010;
-              isDelta_ = input.readBool();
-              break;
-            }
-            case 50: {
-              bitField0_ |= 0x00000020;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.protobuf.PayloadItem new_items = 3;
-      private java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> newItems_ =
-        java.util.Collections.emptyList();
-      private void ensureNewItemsIsMutable() {
-        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
-          newItems_ = new java.util.ArrayList<ipaaca.protobuf.Ipaaca.PayloadItem>(newItems_);
-          bitField0_ |= 0x00000004;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.PayloadItem, ipaaca.protobuf.Ipaaca.PayloadItem.Builder, ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> newItemsBuilder_;
-      
-      public java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem> getNewItemsList() {
-        if (newItemsBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(newItems_);
-        } else {
-          return newItemsBuilder_.getMessageList();
-        }
-      }
-      public int getNewItemsCount() {
-        if (newItemsBuilder_ == null) {
-          return newItems_.size();
-        } else {
-          return newItemsBuilder_.getCount();
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItem getNewItems(int index) {
-        if (newItemsBuilder_ == null) {
-          return newItems_.get(index);
-        } else {
-          return newItemsBuilder_.getMessage(index);
-        }
-      }
-      public Builder setNewItems(
-          int index, ipaaca.protobuf.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.set(index, value);
-          onChanged();
-        } else {
-          newItemsBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setNewItems(
-          int index, ipaaca.protobuf.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewItems(ipaaca.protobuf.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.add(value);
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          int index, ipaaca.protobuf.Ipaaca.PayloadItem value) {
-        if (newItemsBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewItemsIsMutable();
-          newItems_.add(index, value);
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          ipaaca.protobuf.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.add(builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewItems(
-          int index, ipaaca.protobuf.Ipaaca.PayloadItem.Builder builderForValue) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          newItemsBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllNewItems(
-          java.lang.Iterable<? extends ipaaca.protobuf.Ipaaca.PayloadItem> values) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          super.addAll(values, newItems_);
-          onChanged();
-        } else {
-          newItemsBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearNewItems() {
-        if (newItemsBuilder_ == null) {
-          newItems_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-          onChanged();
-        } else {
-          newItemsBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeNewItems(int index) {
-        if (newItemsBuilder_ == null) {
-          ensureNewItemsIsMutable();
-          newItems_.remove(index);
-          onChanged();
-        } else {
-          newItemsBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItem.Builder getNewItemsBuilder(
-          int index) {
-        return getNewItemsFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder getNewItemsOrBuilder(
-          int index) {
-        if (newItemsBuilder_ == null) {
-          return newItems_.get(index);  } else {
-          return newItemsBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> 
-           getNewItemsOrBuilderList() {
-        if (newItemsBuilder_ != null) {
-          return newItemsBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(newItems_);
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItem.Builder addNewItemsBuilder() {
-        return getNewItemsFieldBuilder().addBuilder(
-            ipaaca.protobuf.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public ipaaca.protobuf.Ipaaca.PayloadItem.Builder addNewItemsBuilder(
-          int index) {
-        return getNewItemsFieldBuilder().addBuilder(
-            index, ipaaca.protobuf.Ipaaca.PayloadItem.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.protobuf.Ipaaca.PayloadItem.Builder> 
-           getNewItemsBuilderList() {
-        return getNewItemsFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.PayloadItem, ipaaca.protobuf.Ipaaca.PayloadItem.Builder, ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder> 
-          getNewItemsFieldBuilder() {
-        if (newItemsBuilder_ == null) {
-          newItemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.protobuf.Ipaaca.PayloadItem, ipaaca.protobuf.Ipaaca.PayloadItem.Builder, ipaaca.protobuf.Ipaaca.PayloadItemOrBuilder>(
-                  newItems_,
-                  ((bitField0_ & 0x00000004) == 0x00000004),
-                  getParentForChildren(),
-                  isClean());
-          newItems_ = null;
-        }
-        return newItemsBuilder_;
-      }
-      
-      // repeated string keys_to_remove = 4;
-      private com.google.protobuf.LazyStringList keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-      private void ensureKeysToRemoveIsMutable() {
-        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
-          keysToRemove_ = new com.google.protobuf.LazyStringArrayList(keysToRemove_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-      public java.util.List<String>
-          getKeysToRemoveList() {
-        return java.util.Collections.unmodifiableList(keysToRemove_);
-      }
-      public int getKeysToRemoveCount() {
-        return keysToRemove_.size();
-      }
-      public String getKeysToRemove(int index) {
-        return keysToRemove_.get(index);
-      }
-      public Builder setKeysToRemove(
-          int index, String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureKeysToRemoveIsMutable();
-        keysToRemove_.set(index, value);
-        onChanged();
-        return this;
-      }
-      public Builder addKeysToRemove(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  ensureKeysToRemoveIsMutable();
-        keysToRemove_.add(value);
-        onChanged();
-        return this;
-      }
-      public Builder addAllKeysToRemove(
-          java.lang.Iterable<String> values) {
-        ensureKeysToRemoveIsMutable();
-        super.addAll(values, keysToRemove_);
-        onChanged();
-        return this;
-      }
-      public Builder clearKeysToRemove() {
-        keysToRemove_ = com.google.protobuf.LazyStringArrayList.EMPTY;
-        bitField0_ = (bitField0_ & ~0x00000008);
-        onChanged();
-        return this;
-      }
-      void addKeysToRemove(com.google.protobuf.ByteString value) {
-        ensureKeysToRemoveIsMutable();
-        keysToRemove_.add(value);
-        onChanged();
-      }
-      
-      // required bool is_delta = 5 [default = false];
-      private boolean isDelta_ ;
-      public boolean hasIsDelta() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public boolean getIsDelta() {
-        return isDelta_;
-      }
-      public Builder setIsDelta(boolean value) {
-        bitField0_ |= 0x00000010;
-        isDelta_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearIsDelta() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        isDelta_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 6;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.protobuf.IUPayloadUpdate)
-    }
-    
-    static {
-      defaultInstance = new IUPayloadUpdate(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IUPayloadUpdate)
-  }
-  
-  public interface IURetractionOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-  }
-  public static final class IURetraction extends
-      com.google.protobuf.GeneratedMessage
-      implements IURetractionOrBuilder {
-    // Use IURetraction.newBuilder() to construct.
-    private IURetraction(Builder builder) {
-      super(builder);
-    }
-    private IURetraction(boolean noInit) {}
-    
-    private static final IURetraction defaultInstance;
-    public static IURetraction getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IURetraction getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IURetraction_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IURetraction_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      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 ipaaca.protobuf.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IURetraction parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.protobuf.Ipaaca.IURetraction prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.protobuf.Ipaaca.IURetractionOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IURetraction_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IURetraction_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.protobuf.Ipaaca.IURetraction.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.protobuf.Ipaaca.IURetraction.getDescriptor();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IURetraction getDefaultInstanceForType() {
-        return ipaaca.protobuf.Ipaaca.IURetraction.getDefaultInstance();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IURetraction build() {
-        ipaaca.protobuf.Ipaaca.IURetraction result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.protobuf.Ipaaca.IURetraction buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.protobuf.Ipaaca.IURetraction result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IURetraction buildPartial() {
-        ipaaca.protobuf.Ipaaca.IURetraction result = new ipaaca.protobuf.Ipaaca.IURetraction(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.protobuf.Ipaaca.IURetraction) {
-          return mergeFrom((ipaaca.protobuf.Ipaaca.IURetraction)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.protobuf.Ipaaca.IURetraction other) {
-        if (other == ipaaca.protobuf.Ipaaca.IURetraction.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.protobuf.IURetraction)
-    }
-    
-    static {
-      defaultInstance = new IURetraction(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IURetraction)
-  }
-  
-  public interface IUCommissionOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // required string writer_name = 3;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IUCommission extends
-      com.google.protobuf.GeneratedMessage
-      implements IUCommissionOrBuilder {
-    // Use IUCommission.newBuilder() to construct.
-    private IUCommission(Builder builder) {
-      super(builder);
-    }
-    private IUCommission(boolean noInit) {}
-    
-    private static final IUCommission defaultInstance;
-    public static IUCommission getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IUCommission getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IUCommission_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IUCommission_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // required string writer_name = 3;
-    public static final int WRITER_NAME_FIELD_NUMBER = 3;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBytes(3, getWriterNameBytes());
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(3, getWriterNameBytes());
-      }
-      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 ipaaca.protobuf.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IUCommission parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.protobuf.Ipaaca.IUCommission prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.protobuf.Ipaaca.IUCommissionOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IUCommission_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IUCommission_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.protobuf.Ipaaca.IUCommission.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000004);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.protobuf.Ipaaca.IUCommission.getDescriptor();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IUCommission getDefaultInstanceForType() {
-        return ipaaca.protobuf.Ipaaca.IUCommission.getDefaultInstance();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IUCommission build() {
-        ipaaca.protobuf.Ipaaca.IUCommission result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.protobuf.Ipaaca.IUCommission buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.protobuf.Ipaaca.IUCommission result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IUCommission buildPartial() {
-        ipaaca.protobuf.Ipaaca.IUCommission result = new ipaaca.protobuf.Ipaaca.IUCommission(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.protobuf.Ipaaca.IUCommission) {
-          return mergeFrom((ipaaca.protobuf.Ipaaca.IUCommission)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.protobuf.Ipaaca.IUCommission other) {
-        if (other == ipaaca.protobuf.Ipaaca.IUCommission.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              bitField0_ |= 0x00000004;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 3;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000004) == 0x00000004);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000004;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000004);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000004;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.protobuf.IUCommission)
-    }
-    
-    static {
-      defaultInstance = new IUCommission(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IUCommission)
-  }
-  
-  public interface IULinkUpdateOrBuilder
-      extends com.google.protobuf.MessageOrBuilder {
-    
-    // required string uid = 1;
-    boolean hasUid();
-    String getUid();
-    
-    // required uint32 revision = 2;
-    boolean hasRevision();
-    int getRevision();
-    
-    // repeated .ipaaca.protobuf.LinkSet new_links = 3;
-    java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> 
-        getNewLinksList();
-    ipaaca.protobuf.Ipaaca.LinkSet getNewLinks(int index);
-    int getNewLinksCount();
-    java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-        getNewLinksOrBuilderList();
-    ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-        int index);
-    
-    // repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-    java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> 
-        getLinksToRemoveList();
-    ipaaca.protobuf.Ipaaca.LinkSet getLinksToRemove(int index);
-    int getLinksToRemoveCount();
-    java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-        getLinksToRemoveOrBuilderList();
-    ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-        int index);
-    
-    // required bool is_delta = 5 [default = false];
-    boolean hasIsDelta();
-    boolean getIsDelta();
-    
-    // required string writer_name = 6;
-    boolean hasWriterName();
-    String getWriterName();
-  }
-  public static final class IULinkUpdate extends
-      com.google.protobuf.GeneratedMessage
-      implements IULinkUpdateOrBuilder {
-    // Use IULinkUpdate.newBuilder() to construct.
-    private IULinkUpdate(Builder builder) {
-      super(builder);
-    }
-    private IULinkUpdate(boolean noInit) {}
-    
-    private static final IULinkUpdate defaultInstance;
-    public static IULinkUpdate getDefaultInstance() {
-      return defaultInstance;
-    }
-    
-    public IULinkUpdate getDefaultInstanceForType() {
-      return defaultInstance;
-    }
-    
-    public static final com.google.protobuf.Descriptors.Descriptor
-        getDescriptor() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IULinkUpdate_descriptor;
-    }
-    
-    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-        internalGetFieldAccessorTable() {
-      return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IULinkUpdate_fieldAccessorTable;
-    }
-    
-    private int bitField0_;
-    // required string uid = 1;
-    public static final int UID_FIELD_NUMBER = 1;
-    private java.lang.Object uid_;
-    public boolean hasUid() {
-      return ((bitField0_ & 0x00000001) == 0x00000001);
-    }
-    public String getUid() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          uid_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getUidBytes() {
-      java.lang.Object ref = uid_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        uid_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    // required uint32 revision = 2;
-    public static final int REVISION_FIELD_NUMBER = 2;
-    private int revision_;
-    public boolean hasRevision() {
-      return ((bitField0_ & 0x00000002) == 0x00000002);
-    }
-    public int getRevision() {
-      return revision_;
-    }
-    
-    // repeated .ipaaca.protobuf.LinkSet new_links = 3;
-    public static final int NEW_LINKS_FIELD_NUMBER = 3;
-    private java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> newLinks_;
-    public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> getNewLinksList() {
-      return newLinks_;
-    }
-    public java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-        getNewLinksOrBuilderList() {
-      return newLinks_;
-    }
-    public int getNewLinksCount() {
-      return newLinks_.size();
-    }
-    public ipaaca.protobuf.Ipaaca.LinkSet getNewLinks(int index) {
-      return newLinks_.get(index);
-    }
-    public ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-        int index) {
-      return newLinks_.get(index);
-    }
-    
-    // repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-    public static final int LINKS_TO_REMOVE_FIELD_NUMBER = 4;
-    private java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> linksToRemove_;
-    public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> getLinksToRemoveList() {
-      return linksToRemove_;
-    }
-    public java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-        getLinksToRemoveOrBuilderList() {
-      return linksToRemove_;
-    }
-    public int getLinksToRemoveCount() {
-      return linksToRemove_.size();
-    }
-    public ipaaca.protobuf.Ipaaca.LinkSet getLinksToRemove(int index) {
-      return linksToRemove_.get(index);
-    }
-    public ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-        int index) {
-      return linksToRemove_.get(index);
-    }
-    
-    // required bool is_delta = 5 [default = false];
-    public static final int IS_DELTA_FIELD_NUMBER = 5;
-    private boolean isDelta_;
-    public boolean hasIsDelta() {
-      return ((bitField0_ & 0x00000004) == 0x00000004);
-    }
-    public boolean getIsDelta() {
-      return isDelta_;
-    }
-    
-    // required string writer_name = 6;
-    public static final int WRITER_NAME_FIELD_NUMBER = 6;
-    private java.lang.Object writerName_;
-    public boolean hasWriterName() {
-      return ((bitField0_ & 0x00000008) == 0x00000008);
-    }
-    public String getWriterName() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        return (String) ref;
-      } else {
-        com.google.protobuf.ByteString bs = 
-            (com.google.protobuf.ByteString) ref;
-        String s = bs.toStringUtf8();
-        if (com.google.protobuf.Internal.isValidUtf8(bs)) {
-          writerName_ = s;
-        }
-        return s;
-      }
-    }
-    private com.google.protobuf.ByteString getWriterNameBytes() {
-      java.lang.Object ref = writerName_;
-      if (ref instanceof String) {
-        com.google.protobuf.ByteString b = 
-            com.google.protobuf.ByteString.copyFromUtf8((String) ref);
-        writerName_ = b;
-        return b;
-      } else {
-        return (com.google.protobuf.ByteString) ref;
-      }
-    }
-    
-    private void initFields() {
-      uid_ = "";
-      revision_ = 0;
-      newLinks_ = java.util.Collections.emptyList();
-      linksToRemove_ = java.util.Collections.emptyList();
-      isDelta_ = false;
-      writerName_ = "";
-    }
-    private byte memoizedIsInitialized = -1;
-    public final boolean isInitialized() {
-      byte isInitialized = memoizedIsInitialized;
-      if (isInitialized != -1) return isInitialized == 1;
-      
-      if (!hasUid()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasRevision()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasIsDelta()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      if (!hasWriterName()) {
-        memoizedIsInitialized = 0;
-        return false;
-      }
-      for (int i = 0; i < getNewLinksCount(); i++) {
-        if (!getNewLinks(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      for (int i = 0; i < getLinksToRemoveCount(); i++) {
-        if (!getLinksToRemove(i).isInitialized()) {
-          memoizedIsInitialized = 0;
-          return false;
-        }
-      }
-      memoizedIsInitialized = 1;
-      return true;
-    }
-    
-    public void writeTo(com.google.protobuf.CodedOutputStream output)
-                        throws java.io.IOException {
-      getSerializedSize();
-      if (((bitField0_ & 0x00000001) == 0x00000001)) {
-        output.writeBytes(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        output.writeUInt32(2, revision_);
-      }
-      for (int i = 0; i < newLinks_.size(); i++) {
-        output.writeMessage(3, newLinks_.get(i));
-      }
-      for (int i = 0; i < linksToRemove_.size(); i++) {
-        output.writeMessage(4, linksToRemove_.get(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        output.writeBool(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        output.writeBytes(6, getWriterNameBytes());
-      }
-      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 += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(1, getUidBytes());
-      }
-      if (((bitField0_ & 0x00000002) == 0x00000002)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeUInt32Size(2, revision_);
-      }
-      for (int i = 0; i < newLinks_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(3, newLinks_.get(i));
-      }
-      for (int i = 0; i < linksToRemove_.size(); i++) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeMessageSize(4, linksToRemove_.get(i));
-      }
-      if (((bitField0_ & 0x00000004) == 0x00000004)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBoolSize(5, isDelta_);
-      }
-      if (((bitField0_ & 0x00000008) == 0x00000008)) {
-        size += com.google.protobuf.CodedOutputStream
-          .computeBytesSize(6, getWriterNameBytes());
-      }
-      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 ipaaca.protobuf.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.ByteString data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.ByteString data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseFrom(byte[] data)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseFrom(
-        byte[] data,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws com.google.protobuf.InvalidProtocolBufferException {
-      return newBuilder().mergeFrom(data, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseDelimitedFrom(java.io.InputStream input)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseDelimitedFrom(
-        java.io.InputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      Builder builder = newBuilder();
-      if (builder.mergeDelimitedFrom(input, extensionRegistry)) {
-        return builder.buildParsed();
-      } else {
-        return null;
-      }
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input).buildParsed();
-    }
-    public static ipaaca.protobuf.Ipaaca.IULinkUpdate parseFrom(
-        com.google.protobuf.CodedInputStream input,
-        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-        throws java.io.IOException {
-      return newBuilder().mergeFrom(input, extensionRegistry)
-               .buildParsed();
-    }
-    
-    public static Builder newBuilder() { return Builder.create(); }
-    public Builder newBuilderForType() { return newBuilder(); }
-    public static Builder newBuilder(ipaaca.protobuf.Ipaaca.IULinkUpdate prototype) {
-      return newBuilder().mergeFrom(prototype);
-    }
-    public Builder toBuilder() { return newBuilder(this); }
-    
-    @java.lang.Override
-    protected Builder newBuilderForType(
-        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
-      Builder builder = new Builder(parent);
-      return builder;
-    }
-    public static final class Builder extends
-        com.google.protobuf.GeneratedMessage.Builder<Builder>
-       implements ipaaca.protobuf.Ipaaca.IULinkUpdateOrBuilder {
-      public static final com.google.protobuf.Descriptors.Descriptor
-          getDescriptor() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IULinkUpdate_descriptor;
-      }
-      
-      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
-          internalGetFieldAccessorTable() {
-        return ipaaca.protobuf.Ipaaca.internal_static_ipaaca_protobuf_IULinkUpdate_fieldAccessorTable;
-      }
-      
-      // Construct using ipaaca.protobuf.Ipaaca.IULinkUpdate.newBuilder()
-      private Builder() {
-        maybeForceBuilderInitialization();
-      }
-      
-      private Builder(BuilderParent parent) {
-        super(parent);
-        maybeForceBuilderInitialization();
-      }
-      private void maybeForceBuilderInitialization() {
-        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
-          getNewLinksFieldBuilder();
-          getLinksToRemoveFieldBuilder();
-        }
-      }
-      private static Builder create() {
-        return new Builder();
-      }
-      
-      public Builder clear() {
-        super.clear();
-        uid_ = "";
-        bitField0_ = (bitField0_ & ~0x00000001);
-        revision_ = 0;
-        bitField0_ = (bitField0_ & ~0x00000002);
-        if (newLinksBuilder_ == null) {
-          newLinks_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-        } else {
-          newLinksBuilder_.clear();
-        }
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemove_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-        } else {
-          linksToRemoveBuilder_.clear();
-        }
-        isDelta_ = false;
-        bitField0_ = (bitField0_ & ~0x00000010);
-        writerName_ = "";
-        bitField0_ = (bitField0_ & ~0x00000020);
-        return this;
-      }
-      
-      public Builder clone() {
-        return create().mergeFrom(buildPartial());
-      }
-      
-      public com.google.protobuf.Descriptors.Descriptor
-          getDescriptorForType() {
-        return ipaaca.protobuf.Ipaaca.IULinkUpdate.getDescriptor();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IULinkUpdate getDefaultInstanceForType() {
-        return ipaaca.protobuf.Ipaaca.IULinkUpdate.getDefaultInstance();
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IULinkUpdate build() {
-        ipaaca.protobuf.Ipaaca.IULinkUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(result);
-        }
-        return result;
-      }
-      
-      private ipaaca.protobuf.Ipaaca.IULinkUpdate buildParsed()
-          throws com.google.protobuf.InvalidProtocolBufferException {
-        ipaaca.protobuf.Ipaaca.IULinkUpdate result = buildPartial();
-        if (!result.isInitialized()) {
-          throw newUninitializedMessageException(
-            result).asInvalidProtocolBufferException();
-        }
-        return result;
-      }
-      
-      public ipaaca.protobuf.Ipaaca.IULinkUpdate buildPartial() {
-        ipaaca.protobuf.Ipaaca.IULinkUpdate result = new ipaaca.protobuf.Ipaaca.IULinkUpdate(this);
-        int from_bitField0_ = bitField0_;
-        int to_bitField0_ = 0;
-        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
-          to_bitField0_ |= 0x00000001;
-        }
-        result.uid_ = uid_;
-        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
-          to_bitField0_ |= 0x00000002;
-        }
-        result.revision_ = revision_;
-        if (newLinksBuilder_ == null) {
-          if (((bitField0_ & 0x00000004) == 0x00000004)) {
-            newLinks_ = java.util.Collections.unmodifiableList(newLinks_);
-            bitField0_ = (bitField0_ & ~0x00000004);
-          }
-          result.newLinks_ = newLinks_;
-        } else {
-          result.newLinks_ = newLinksBuilder_.build();
-        }
-        if (linksToRemoveBuilder_ == null) {
-          if (((bitField0_ & 0x00000008) == 0x00000008)) {
-            linksToRemove_ = java.util.Collections.unmodifiableList(linksToRemove_);
-            bitField0_ = (bitField0_ & ~0x00000008);
-          }
-          result.linksToRemove_ = linksToRemove_;
-        } else {
-          result.linksToRemove_ = linksToRemoveBuilder_.build();
-        }
-        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
-          to_bitField0_ |= 0x00000004;
-        }
-        result.isDelta_ = isDelta_;
-        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
-          to_bitField0_ |= 0x00000008;
-        }
-        result.writerName_ = writerName_;
-        result.bitField0_ = to_bitField0_;
-        onBuilt();
-        return result;
-      }
-      
-      public Builder mergeFrom(com.google.protobuf.Message other) {
-        if (other instanceof ipaaca.protobuf.Ipaaca.IULinkUpdate) {
-          return mergeFrom((ipaaca.protobuf.Ipaaca.IULinkUpdate)other);
-        } else {
-          super.mergeFrom(other);
-          return this;
-        }
-      }
-      
-      public Builder mergeFrom(ipaaca.protobuf.Ipaaca.IULinkUpdate other) {
-        if (other == ipaaca.protobuf.Ipaaca.IULinkUpdate.getDefaultInstance()) return this;
-        if (other.hasUid()) {
-          setUid(other.getUid());
-        }
-        if (other.hasRevision()) {
-          setRevision(other.getRevision());
-        }
-        if (newLinksBuilder_ == null) {
-          if (!other.newLinks_.isEmpty()) {
-            if (newLinks_.isEmpty()) {
-              newLinks_ = other.newLinks_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-            } else {
-              ensureNewLinksIsMutable();
-              newLinks_.addAll(other.newLinks_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.newLinks_.isEmpty()) {
-            if (newLinksBuilder_.isEmpty()) {
-              newLinksBuilder_.dispose();
-              newLinksBuilder_ = null;
-              newLinks_ = other.newLinks_;
-              bitField0_ = (bitField0_ & ~0x00000004);
-              newLinksBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getNewLinksFieldBuilder() : null;
-            } else {
-              newLinksBuilder_.addAllMessages(other.newLinks_);
-            }
-          }
-        }
-        if (linksToRemoveBuilder_ == null) {
-          if (!other.linksToRemove_.isEmpty()) {
-            if (linksToRemove_.isEmpty()) {
-              linksToRemove_ = other.linksToRemove_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-            } else {
-              ensureLinksToRemoveIsMutable();
-              linksToRemove_.addAll(other.linksToRemove_);
-            }
-            onChanged();
-          }
-        } else {
-          if (!other.linksToRemove_.isEmpty()) {
-            if (linksToRemoveBuilder_.isEmpty()) {
-              linksToRemoveBuilder_.dispose();
-              linksToRemoveBuilder_ = null;
-              linksToRemove_ = other.linksToRemove_;
-              bitField0_ = (bitField0_ & ~0x00000008);
-              linksToRemoveBuilder_ = 
-                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
-                   getLinksToRemoveFieldBuilder() : null;
-            } else {
-              linksToRemoveBuilder_.addAllMessages(other.linksToRemove_);
-            }
-          }
-        }
-        if (other.hasIsDelta()) {
-          setIsDelta(other.getIsDelta());
-        }
-        if (other.hasWriterName()) {
-          setWriterName(other.getWriterName());
-        }
-        this.mergeUnknownFields(other.getUnknownFields());
-        return this;
-      }
-      
-      public final boolean isInitialized() {
-        if (!hasUid()) {
-          
-          return false;
-        }
-        if (!hasRevision()) {
-          
-          return false;
-        }
-        if (!hasIsDelta()) {
-          
-          return false;
-        }
-        if (!hasWriterName()) {
-          
-          return false;
-        }
-        for (int i = 0; i < getNewLinksCount(); i++) {
-          if (!getNewLinks(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        for (int i = 0; i < getLinksToRemoveCount(); i++) {
-          if (!getLinksToRemove(i).isInitialized()) {
-            
-            return false;
-          }
-        }
-        return true;
-      }
-      
-      public Builder mergeFrom(
-          com.google.protobuf.CodedInputStream input,
-          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
-          throws java.io.IOException {
-        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
-          com.google.protobuf.UnknownFieldSet.newBuilder(
-            this.getUnknownFields());
-        while (true) {
-          int tag = input.readTag();
-          switch (tag) {
-            case 0:
-              this.setUnknownFields(unknownFields.build());
-              onChanged();
-              return this;
-            default: {
-              if (!parseUnknownField(input, unknownFields,
-                                     extensionRegistry, tag)) {
-                this.setUnknownFields(unknownFields.build());
-                onChanged();
-                return this;
-              }
-              break;
-            }
-            case 10: {
-              bitField0_ |= 0x00000001;
-              uid_ = input.readBytes();
-              break;
-            }
-            case 16: {
-              bitField0_ |= 0x00000002;
-              revision_ = input.readUInt32();
-              break;
-            }
-            case 26: {
-              ipaaca.protobuf.Ipaaca.LinkSet.Builder subBuilder = ipaaca.protobuf.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addNewLinks(subBuilder.buildPartial());
-              break;
-            }
-            case 34: {
-              ipaaca.protobuf.Ipaaca.LinkSet.Builder subBuilder = ipaaca.protobuf.Ipaaca.LinkSet.newBuilder();
-              input.readMessage(subBuilder, extensionRegistry);
-              addLinksToRemove(subBuilder.buildPartial());
-              break;
-            }
-            case 40: {
-              bitField0_ |= 0x00000010;
-              isDelta_ = input.readBool();
-              break;
-            }
-            case 50: {
-              bitField0_ |= 0x00000020;
-              writerName_ = input.readBytes();
-              break;
-            }
-          }
-        }
-      }
-      
-      private int bitField0_;
-      
-      // required string uid = 1;
-      private java.lang.Object uid_ = "";
-      public boolean hasUid() {
-        return ((bitField0_ & 0x00000001) == 0x00000001);
-      }
-      public String getUid() {
-        java.lang.Object ref = uid_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          uid_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setUid(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearUid() {
-        bitField0_ = (bitField0_ & ~0x00000001);
-        uid_ = getDefaultInstance().getUid();
-        onChanged();
-        return this;
-      }
-      void setUid(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000001;
-        uid_ = value;
-        onChanged();
-      }
-      
-      // required uint32 revision = 2;
-      private int revision_ ;
-      public boolean hasRevision() {
-        return ((bitField0_ & 0x00000002) == 0x00000002);
-      }
-      public int getRevision() {
-        return revision_;
-      }
-      public Builder setRevision(int value) {
-        bitField0_ |= 0x00000002;
-        revision_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearRevision() {
-        bitField0_ = (bitField0_ & ~0x00000002);
-        revision_ = 0;
-        onChanged();
-        return this;
-      }
-      
-      // repeated .ipaaca.protobuf.LinkSet new_links = 3;
-      private java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> newLinks_ =
-        java.util.Collections.emptyList();
-      private void ensureNewLinksIsMutable() {
-        if (!((bitField0_ & 0x00000004) == 0x00000004)) {
-          newLinks_ = new java.util.ArrayList<ipaaca.protobuf.Ipaaca.LinkSet>(newLinks_);
-          bitField0_ |= 0x00000004;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> newLinksBuilder_;
-      
-      public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> getNewLinksList() {
-        if (newLinksBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(newLinks_);
-        } else {
-          return newLinksBuilder_.getMessageList();
-        }
-      }
-      public int getNewLinksCount() {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.size();
-        } else {
-          return newLinksBuilder_.getCount();
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet getNewLinks(int index) {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.get(index);
-        } else {
-          return newLinksBuilder_.getMessage(index);
-        }
-      }
-      public Builder setNewLinks(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.set(index, value);
-          onChanged();
-        } else {
-          newLinksBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setNewLinks(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewLinks(ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.add(value);
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (newLinksBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureNewLinksIsMutable();
-          newLinks_.add(index, value);
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.add(builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addNewLinks(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          newLinksBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllNewLinks(
-          java.lang.Iterable<? extends ipaaca.protobuf.Ipaaca.LinkSet> values) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          super.addAll(values, newLinks_);
-          onChanged();
-        } else {
-          newLinksBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearNewLinks() {
-        if (newLinksBuilder_ == null) {
-          newLinks_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000004);
-          onChanged();
-        } else {
-          newLinksBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeNewLinks(int index) {
-        if (newLinksBuilder_ == null) {
-          ensureNewLinksIsMutable();
-          newLinks_.remove(index);
-          onChanged();
-        } else {
-          newLinksBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder getNewLinksBuilder(
-          int index) {
-        return getNewLinksFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getNewLinksOrBuilder(
-          int index) {
-        if (newLinksBuilder_ == null) {
-          return newLinks_.get(index);  } else {
-          return newLinksBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-           getNewLinksOrBuilderList() {
-        if (newLinksBuilder_ != null) {
-          return newLinksBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(newLinks_);
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder addNewLinksBuilder() {
-        return getNewLinksFieldBuilder().addBuilder(
-            ipaaca.protobuf.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder addNewLinksBuilder(
-          int index) {
-        return getNewLinksFieldBuilder().addBuilder(
-            index, ipaaca.protobuf.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet.Builder> 
-           getNewLinksBuilderList() {
-        return getNewLinksFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-          getNewLinksFieldBuilder() {
-        if (newLinksBuilder_ == null) {
-          newLinksBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder>(
-                  newLinks_,
-                  ((bitField0_ & 0x00000004) == 0x00000004),
-                  getParentForChildren(),
-                  isClean());
-          newLinks_ = null;
-        }
-        return newLinksBuilder_;
-      }
-      
-      // repeated .ipaaca.protobuf.LinkSet links_to_remove = 4;
-      private java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> linksToRemove_ =
-        java.util.Collections.emptyList();
-      private void ensureLinksToRemoveIsMutable() {
-        if (!((bitField0_ & 0x00000008) == 0x00000008)) {
-          linksToRemove_ = new java.util.ArrayList<ipaaca.protobuf.Ipaaca.LinkSet>(linksToRemove_);
-          bitField0_ |= 0x00000008;
-         }
-      }
-      
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> linksToRemoveBuilder_;
-      
-      public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet> getLinksToRemoveList() {
-        if (linksToRemoveBuilder_ == null) {
-          return java.util.Collections.unmodifiableList(linksToRemove_);
-        } else {
-          return linksToRemoveBuilder_.getMessageList();
-        }
-      }
-      public int getLinksToRemoveCount() {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.size();
-        } else {
-          return linksToRemoveBuilder_.getCount();
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet getLinksToRemove(int index) {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.get(index);
-        } else {
-          return linksToRemoveBuilder_.getMessage(index);
-        }
-      }
-      public Builder setLinksToRemove(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.set(index, value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.setMessage(index, value);
-        }
-        return this;
-      }
-      public Builder setLinksToRemove(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.set(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.setMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(value);
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet value) {
-        if (linksToRemoveBuilder_ == null) {
-          if (value == null) {
-            throw new NullPointerException();
-          }
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(index, value);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(index, value);
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addLinksToRemove(
-          int index, ipaaca.protobuf.Ipaaca.LinkSet.Builder builderForValue) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.add(index, builderForValue.build());
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addMessage(index, builderForValue.build());
-        }
-        return this;
-      }
-      public Builder addAllLinksToRemove(
-          java.lang.Iterable<? extends ipaaca.protobuf.Ipaaca.LinkSet> values) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          super.addAll(values, linksToRemove_);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.addAllMessages(values);
-        }
-        return this;
-      }
-      public Builder clearLinksToRemove() {
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemove_ = java.util.Collections.emptyList();
-          bitField0_ = (bitField0_ & ~0x00000008);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.clear();
-        }
-        return this;
-      }
-      public Builder removeLinksToRemove(int index) {
-        if (linksToRemoveBuilder_ == null) {
-          ensureLinksToRemoveIsMutable();
-          linksToRemove_.remove(index);
-          onChanged();
-        } else {
-          linksToRemoveBuilder_.remove(index);
-        }
-        return this;
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder getLinksToRemoveBuilder(
-          int index) {
-        return getLinksToRemoveFieldBuilder().getBuilder(index);
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSetOrBuilder getLinksToRemoveOrBuilder(
-          int index) {
-        if (linksToRemoveBuilder_ == null) {
-          return linksToRemove_.get(index);  } else {
-          return linksToRemoveBuilder_.getMessageOrBuilder(index);
-        }
-      }
-      public java.util.List<? extends ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-           getLinksToRemoveOrBuilderList() {
-        if (linksToRemoveBuilder_ != null) {
-          return linksToRemoveBuilder_.getMessageOrBuilderList();
-        } else {
-          return java.util.Collections.unmodifiableList(linksToRemove_);
-        }
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder addLinksToRemoveBuilder() {
-        return getLinksToRemoveFieldBuilder().addBuilder(
-            ipaaca.protobuf.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public ipaaca.protobuf.Ipaaca.LinkSet.Builder addLinksToRemoveBuilder(
-          int index) {
-        return getLinksToRemoveFieldBuilder().addBuilder(
-            index, ipaaca.protobuf.Ipaaca.LinkSet.getDefaultInstance());
-      }
-      public java.util.List<ipaaca.protobuf.Ipaaca.LinkSet.Builder> 
-           getLinksToRemoveBuilderList() {
-        return getLinksToRemoveFieldBuilder().getBuilderList();
-      }
-      private com.google.protobuf.RepeatedFieldBuilder<
-          ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder> 
-          getLinksToRemoveFieldBuilder() {
-        if (linksToRemoveBuilder_ == null) {
-          linksToRemoveBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
-              ipaaca.protobuf.Ipaaca.LinkSet, ipaaca.protobuf.Ipaaca.LinkSet.Builder, ipaaca.protobuf.Ipaaca.LinkSetOrBuilder>(
-                  linksToRemove_,
-                  ((bitField0_ & 0x00000008) == 0x00000008),
-                  getParentForChildren(),
-                  isClean());
-          linksToRemove_ = null;
-        }
-        return linksToRemoveBuilder_;
-      }
-      
-      // required bool is_delta = 5 [default = false];
-      private boolean isDelta_ ;
-      public boolean hasIsDelta() {
-        return ((bitField0_ & 0x00000010) == 0x00000010);
-      }
-      public boolean getIsDelta() {
-        return isDelta_;
-      }
-      public Builder setIsDelta(boolean value) {
-        bitField0_ |= 0x00000010;
-        isDelta_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearIsDelta() {
-        bitField0_ = (bitField0_ & ~0x00000010);
-        isDelta_ = false;
-        onChanged();
-        return this;
-      }
-      
-      // required string writer_name = 6;
-      private java.lang.Object writerName_ = "";
-      public boolean hasWriterName() {
-        return ((bitField0_ & 0x00000020) == 0x00000020);
-      }
-      public String getWriterName() {
-        java.lang.Object ref = writerName_;
-        if (!(ref instanceof String)) {
-          String s = ((com.google.protobuf.ByteString) ref).toStringUtf8();
-          writerName_ = s;
-          return s;
-        } else {
-          return (String) ref;
-        }
-      }
-      public Builder setWriterName(String value) {
-        if (value == null) {
-    throw new NullPointerException();
-  }
-  bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-        return this;
-      }
-      public Builder clearWriterName() {
-        bitField0_ = (bitField0_ & ~0x00000020);
-        writerName_ = getDefaultInstance().getWriterName();
-        onChanged();
-        return this;
-      }
-      void setWriterName(com.google.protobuf.ByteString value) {
-        bitField0_ |= 0x00000020;
-        writerName_ = value;
-        onChanged();
-      }
-      
-      // @@protoc_insertion_point(builder_scope:ipaaca.protobuf.IULinkUpdate)
-    }
-    
-    static {
-      defaultInstance = new IULinkUpdate(true);
-      defaultInstance.initFields();
-    }
-    
-    // @@protoc_insertion_point(class_scope:ipaaca.protobuf.IULinkUpdate)
-  }
-  
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_protobuf_IntMessage_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_protobuf_IntMessage_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_protobuf_LinkSet_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_protobuf_LinkSet_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_protobuf_PayloadItem_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_protobuf_PayloadItem_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_protobuf_IU_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_protobuf_IU_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_protobuf_IUPayloadUpdate_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_protobuf_IUPayloadUpdate_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_protobuf_IURetraction_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_protobuf_IURetraction_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_protobuf_IUCommission_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_protobuf_IUCommission_fieldAccessorTable;
-  private static com.google.protobuf.Descriptors.Descriptor
-    internal_static_ipaaca_protobuf_IULinkUpdate_descriptor;
-  private static
-    com.google.protobuf.GeneratedMessage.FieldAccessorTable
-      internal_static_ipaaca_protobuf_IULinkUpdate_fieldAccessorTable;
-  
-  public static com.google.protobuf.Descriptors.FileDescriptor
-      getDescriptor() {
-    return descriptor;
-  }
-  private static com.google.protobuf.Descriptors.FileDescriptor
-      descriptor;
-  static {
-    java.lang.String[] descriptorData = {
-      "\n\020src/ipaaca.proto\022\017ipaaca.protobuf\"\033\n\nI" +
-      "ntMessage\022\r\n\005value\030\001 \002(\021\"(\n\007LinkSet\022\014\n\004t" +
-      "ype\030\001 \002(\t\022\017\n\007targets\030\002 \003(\t\"<\n\013PayloadIte" +
-      "m\022\013\n\003key\030\001 \002(\t\022\r\n\005value\030\002 \002(\t\022\021\n\004type\030\003 " +
-      "\002(\t:\003str\"\343\002\n\002IU\022\013\n\003uid\030\001 \002(\t\022\020\n\010revision" +
-      "\030\002 \002(\r\022\027\n\010category\030\003 \002(\t:\005undef\022\031\n\014paylo" +
-      "ad_type\030\004 \002(\t:\003MAP\022\022\n\nowner_name\030\005 \002(\t\022\030" +
-      "\n\tcommitted\030\006 \002(\010:\005false\0229\n\013access_mode\030" +
-      "\007 \002(\0162\036.ipaaca.protobuf.IU.AccessMode:\004P" +
-      "USH\022\030\n\tread_only\030\010 \002(\010:\005false\022-\n\007payload",
-      "\030\t \003(\0132\034.ipaaca.protobuf.PayloadItem\022\'\n\005" +
-      "links\030\n \003(\0132\030.ipaaca.protobuf.LinkSet\"/\n" +
-      "\nAccessMode\022\010\n\004PUSH\020\000\022\n\n\006REMOTE\020\001\022\013\n\007MES" +
-      "SAGE\020\002\"\247\001\n\017IUPayloadUpdate\022\013\n\003uid\030\001 \002(\t\022" +
-      "\020\n\010revision\030\002 \002(\r\022/\n\tnew_items\030\003 \003(\0132\034.i" +
-      "paaca.protobuf.PayloadItem\022\026\n\016keys_to_re" +
-      "move\030\004 \003(\t\022\027\n\010is_delta\030\005 \002(\010:\005false\022\023\n\013w" +
-      "riter_name\030\006 \002(\t\"-\n\014IURetraction\022\013\n\003uid\030" +
-      "\001 \002(\t\022\020\n\010revision\030\002 \002(\r\"B\n\014IUCommission\022" +
-      "\013\n\003uid\030\001 \002(\t\022\020\n\010revision\030\002 \002(\r\022\023\n\013writer",
-      "_name\030\003 \002(\t\"\273\001\n\014IULinkUpdate\022\013\n\003uid\030\001 \002(" +
-      "\t\022\020\n\010revision\030\002 \002(\r\022+\n\tnew_links\030\003 \003(\0132\030" +
-      ".ipaaca.protobuf.LinkSet\0221\n\017links_to_rem" +
-      "ove\030\004 \003(\0132\030.ipaaca.protobuf.LinkSet\022\027\n\010i" +
-      "s_delta\030\005 \002(\010:\005false\022\023\n\013writer_name\030\006 \002(" +
-      "\t"
-    };
-    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
-      new com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner() {
-        public com.google.protobuf.ExtensionRegistry assignDescriptors(
-            com.google.protobuf.Descriptors.FileDescriptor root) {
-          descriptor = root;
-          internal_static_ipaaca_protobuf_IntMessage_descriptor =
-            getDescriptor().getMessageTypes().get(0);
-          internal_static_ipaaca_protobuf_IntMessage_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_protobuf_IntMessage_descriptor,
-              new java.lang.String[] { "Value", },
-              ipaaca.protobuf.Ipaaca.IntMessage.class,
-              ipaaca.protobuf.Ipaaca.IntMessage.Builder.class);
-          internal_static_ipaaca_protobuf_LinkSet_descriptor =
-            getDescriptor().getMessageTypes().get(1);
-          internal_static_ipaaca_protobuf_LinkSet_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_protobuf_LinkSet_descriptor,
-              new java.lang.String[] { "Type", "Targets", },
-              ipaaca.protobuf.Ipaaca.LinkSet.class,
-              ipaaca.protobuf.Ipaaca.LinkSet.Builder.class);
-          internal_static_ipaaca_protobuf_PayloadItem_descriptor =
-            getDescriptor().getMessageTypes().get(2);
-          internal_static_ipaaca_protobuf_PayloadItem_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_protobuf_PayloadItem_descriptor,
-              new java.lang.String[] { "Key", "Value", "Type", },
-              ipaaca.protobuf.Ipaaca.PayloadItem.class,
-              ipaaca.protobuf.Ipaaca.PayloadItem.Builder.class);
-          internal_static_ipaaca_protobuf_IU_descriptor =
-            getDescriptor().getMessageTypes().get(3);
-          internal_static_ipaaca_protobuf_IU_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_protobuf_IU_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "Category", "PayloadType", "OwnerName", "Committed", "AccessMode", "ReadOnly", "Payload", "Links", },
-              ipaaca.protobuf.Ipaaca.IU.class,
-              ipaaca.protobuf.Ipaaca.IU.Builder.class);
-          internal_static_ipaaca_protobuf_IUPayloadUpdate_descriptor =
-            getDescriptor().getMessageTypes().get(4);
-          internal_static_ipaaca_protobuf_IUPayloadUpdate_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_protobuf_IUPayloadUpdate_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "NewItems", "KeysToRemove", "IsDelta", "WriterName", },
-              ipaaca.protobuf.Ipaaca.IUPayloadUpdate.class,
-              ipaaca.protobuf.Ipaaca.IUPayloadUpdate.Builder.class);
-          internal_static_ipaaca_protobuf_IURetraction_descriptor =
-            getDescriptor().getMessageTypes().get(5);
-          internal_static_ipaaca_protobuf_IURetraction_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_protobuf_IURetraction_descriptor,
-              new java.lang.String[] { "Uid", "Revision", },
-              ipaaca.protobuf.Ipaaca.IURetraction.class,
-              ipaaca.protobuf.Ipaaca.IURetraction.Builder.class);
-          internal_static_ipaaca_protobuf_IUCommission_descriptor =
-            getDescriptor().getMessageTypes().get(6);
-          internal_static_ipaaca_protobuf_IUCommission_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_protobuf_IUCommission_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "WriterName", },
-              ipaaca.protobuf.Ipaaca.IUCommission.class,
-              ipaaca.protobuf.Ipaaca.IUCommission.Builder.class);
-          internal_static_ipaaca_protobuf_IULinkUpdate_descriptor =
-            getDescriptor().getMessageTypes().get(7);
-          internal_static_ipaaca_protobuf_IULinkUpdate_fieldAccessorTable = new
-            com.google.protobuf.GeneratedMessage.FieldAccessorTable(
-              internal_static_ipaaca_protobuf_IULinkUpdate_descriptor,
-              new java.lang.String[] { "Uid", "Revision", "NewLinks", "LinksToRemove", "IsDelta", "WriterName", },
-              ipaaca.protobuf.Ipaaca.IULinkUpdate.class,
-              ipaaca.protobuf.Ipaaca.IULinkUpdate.Builder.class);
-          return null;
-        }
-      };
-    com.google.protobuf.Descriptors.FileDescriptor
-      .internalBuildGeneratedFileFrom(descriptorData,
-        new com.google.protobuf.Descriptors.FileDescriptor[] {
-        }, assigner);
-  }
-  
-  // @@protoc_insertion_point(outer_class_scope)
-}
diff --git a/proto/build/python/src/ipaaca_pb2.py b/proto/build/python/src/ipaaca_pb2.py
deleted file mode 100644
index 944f2936fedf7d593103b65dd883a3b09834b965..0000000000000000000000000000000000000000
--- a/proto/build/python/src/ipaaca_pb2.py
+++ /dev/null
@@ -1,507 +0,0 @@
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-
-from google.protobuf import descriptor
-from google.protobuf import message
-from google.protobuf import reflection
-from google.protobuf import descriptor_pb2
-# @@protoc_insertion_point(imports)
-
-
-
-DESCRIPTOR = descriptor.FileDescriptor(
-  name='src/ipaaca.proto',
-  package='ipaaca.protobuf',
-  serialized_pb='\n\x10src/ipaaca.proto\x12\x0fipaaca.protobuf\"\x1b\n\nIntMessage\x12\r\n\x05value\x18\x01 \x02(\x11\"(\n\x07LinkSet\x12\x0c\n\x04type\x18\x01 \x02(\t\x12\x0f\n\x07targets\x18\x02 \x03(\t\"<\n\x0bPayloadItem\x12\x0b\n\x03key\x18\x01 \x02(\t\x12\r\n\x05value\x18\x02 \x02(\t\x12\x11\n\x04type\x18\x03 \x02(\t:\x03str\"\xe3\x02\n\x02IU\x12\x0b\n\x03uid\x18\x01 \x02(\t\x12\x10\n\x08revision\x18\x02 \x02(\r\x12\x17\n\x08\x63\x61tegory\x18\x03 \x02(\t:\x05undef\x12\x19\n\x0cpayload_type\x18\x04 \x02(\t:\x03MAP\x12\x12\n\nowner_name\x18\x05 \x02(\t\x12\x18\n\tcommitted\x18\x06 \x02(\x08:\x05\x66\x61lse\x12\x39\n\x0b\x61\x63\x63\x65ss_mode\x18\x07 \x02(\x0e\x32\x1e.ipaaca.protobuf.IU.AccessMode:\x04PUSH\x12\x18\n\tread_only\x18\x08 \x02(\x08:\x05\x66\x61lse\x12-\n\x07payload\x18\t \x03(\x0b\x32\x1c.ipaaca.protobuf.PayloadItem\x12\'\n\x05links\x18\n \x03(\x0b\x32\x18.ipaaca.protobuf.LinkSet\"/\n\nAccessMode\x12\x08\n\x04PUSH\x10\x00\x12\n\n\x06REMOTE\x10\x01\x12\x0b\n\x07MESSAGE\x10\x02\"\xa7\x01\n\x0fIUPayloadUpdate\x12\x0b\n\x03uid\x18\x01 \x02(\t\x12\x10\n\x08revision\x18\x02 \x02(\r\x12/\n\tnew_items\x18\x03 \x03(\x0b\x32\x1c.ipaaca.protobuf.PayloadItem\x12\x16\n\x0ekeys_to_remove\x18\x04 \x03(\t\x12\x17\n\x08is_delta\x18\x05 \x02(\x08:\x05\x66\x61lse\x12\x13\n\x0bwriter_name\x18\x06 \x02(\t\"-\n\x0cIURetraction\x12\x0b\n\x03uid\x18\x01 \x02(\t\x12\x10\n\x08revision\x18\x02 \x02(\r\"B\n\x0cIUCommission\x12\x0b\n\x03uid\x18\x01 \x02(\t\x12\x10\n\x08revision\x18\x02 \x02(\r\x12\x13\n\x0bwriter_name\x18\x03 \x02(\t\"\xbb\x01\n\x0cIULinkUpdate\x12\x0b\n\x03uid\x18\x01 \x02(\t\x12\x10\n\x08revision\x18\x02 \x02(\r\x12+\n\tnew_links\x18\x03 \x03(\x0b\x32\x18.ipaaca.protobuf.LinkSet\x12\x31\n\x0flinks_to_remove\x18\x04 \x03(\x0b\x32\x18.ipaaca.protobuf.LinkSet\x12\x17\n\x08is_delta\x18\x05 \x02(\x08:\x05\x66\x61lse\x12\x13\n\x0bwriter_name\x18\x06 \x02(\t')
-
-
-
-_IU_ACCESSMODE = descriptor.EnumDescriptor(
-  name='AccessMode',
-  full_name='ipaaca.protobuf.IU.AccessMode',
-  filename=None,
-  file=DESCRIPTOR,
-  values=[
-    descriptor.EnumValueDescriptor(
-      name='PUSH', index=0, number=0,
-      options=None,
-      type=None),
-    descriptor.EnumValueDescriptor(
-      name='REMOTE', index=1, number=1,
-      options=None,
-      type=None),
-    descriptor.EnumValueDescriptor(
-      name='MESSAGE', index=2, number=2,
-      options=None,
-      type=None),
-  ],
-  containing_type=None,
-  options=None,
-  serialized_start=479,
-  serialized_end=526,
-)
-
-
-_INTMESSAGE = descriptor.Descriptor(
-  name='IntMessage',
-  full_name='ipaaca.protobuf.IntMessage',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    descriptor.FieldDescriptor(
-      name='value', full_name='ipaaca.protobuf.IntMessage.value', index=0,
-      number=1, type=17, cpp_type=1, label=2,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  extension_ranges=[],
-  serialized_start=37,
-  serialized_end=64,
-)
-
-
-_LINKSET = descriptor.Descriptor(
-  name='LinkSet',
-  full_name='ipaaca.protobuf.LinkSet',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    descriptor.FieldDescriptor(
-      name='type', full_name='ipaaca.protobuf.LinkSet.type', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='targets', full_name='ipaaca.protobuf.LinkSet.targets', index=1,
-      number=2, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  extension_ranges=[],
-  serialized_start=66,
-  serialized_end=106,
-)
-
-
-_PAYLOADITEM = descriptor.Descriptor(
-  name='PayloadItem',
-  full_name='ipaaca.protobuf.PayloadItem',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    descriptor.FieldDescriptor(
-      name='key', full_name='ipaaca.protobuf.PayloadItem.key', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='value', full_name='ipaaca.protobuf.PayloadItem.value', index=1,
-      number=2, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='type', full_name='ipaaca.protobuf.PayloadItem.type', index=2,
-      number=3, type=9, cpp_type=9, label=2,
-      has_default_value=True, default_value=unicode("str", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  extension_ranges=[],
-  serialized_start=108,
-  serialized_end=168,
-)
-
-
-_IU = descriptor.Descriptor(
-  name='IU',
-  full_name='ipaaca.protobuf.IU',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    descriptor.FieldDescriptor(
-      name='uid', full_name='ipaaca.protobuf.IU.uid', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='revision', full_name='ipaaca.protobuf.IU.revision', index=1,
-      number=2, type=13, cpp_type=3, label=2,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='category', full_name='ipaaca.protobuf.IU.category', index=2,
-      number=3, type=9, cpp_type=9, label=2,
-      has_default_value=True, default_value=unicode("undef", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='payload_type', full_name='ipaaca.protobuf.IU.payload_type', index=3,
-      number=4, type=9, cpp_type=9, label=2,
-      has_default_value=True, default_value=unicode("MAP", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='owner_name', full_name='ipaaca.protobuf.IU.owner_name', index=4,
-      number=5, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='committed', full_name='ipaaca.protobuf.IU.committed', index=5,
-      number=6, type=8, cpp_type=7, label=2,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='access_mode', full_name='ipaaca.protobuf.IU.access_mode', index=6,
-      number=7, type=14, cpp_type=8, label=2,
-      has_default_value=True, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='read_only', full_name='ipaaca.protobuf.IU.read_only', index=7,
-      number=8, type=8, cpp_type=7, label=2,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='payload', full_name='ipaaca.protobuf.IU.payload', index=8,
-      number=9, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='links', full_name='ipaaca.protobuf.IU.links', index=9,
-      number=10, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-    _IU_ACCESSMODE,
-  ],
-  options=None,
-  is_extendable=False,
-  extension_ranges=[],
-  serialized_start=171,
-  serialized_end=526,
-)
-
-
-_IUPAYLOADUPDATE = descriptor.Descriptor(
-  name='IUPayloadUpdate',
-  full_name='ipaaca.protobuf.IUPayloadUpdate',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    descriptor.FieldDescriptor(
-      name='uid', full_name='ipaaca.protobuf.IUPayloadUpdate.uid', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='revision', full_name='ipaaca.protobuf.IUPayloadUpdate.revision', index=1,
-      number=2, type=13, cpp_type=3, label=2,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='new_items', full_name='ipaaca.protobuf.IUPayloadUpdate.new_items', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='keys_to_remove', full_name='ipaaca.protobuf.IUPayloadUpdate.keys_to_remove', index=3,
-      number=4, type=9, cpp_type=9, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='is_delta', full_name='ipaaca.protobuf.IUPayloadUpdate.is_delta', index=4,
-      number=5, type=8, cpp_type=7, label=2,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='writer_name', full_name='ipaaca.protobuf.IUPayloadUpdate.writer_name', index=5,
-      number=6, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  extension_ranges=[],
-  serialized_start=529,
-  serialized_end=696,
-)
-
-
-_IURETRACTION = descriptor.Descriptor(
-  name='IURetraction',
-  full_name='ipaaca.protobuf.IURetraction',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    descriptor.FieldDescriptor(
-      name='uid', full_name='ipaaca.protobuf.IURetraction.uid', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='revision', full_name='ipaaca.protobuf.IURetraction.revision', index=1,
-      number=2, type=13, cpp_type=3, label=2,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  extension_ranges=[],
-  serialized_start=698,
-  serialized_end=743,
-)
-
-
-_IUCOMMISSION = descriptor.Descriptor(
-  name='IUCommission',
-  full_name='ipaaca.protobuf.IUCommission',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    descriptor.FieldDescriptor(
-      name='uid', full_name='ipaaca.protobuf.IUCommission.uid', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='revision', full_name='ipaaca.protobuf.IUCommission.revision', index=1,
-      number=2, type=13, cpp_type=3, label=2,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='writer_name', full_name='ipaaca.protobuf.IUCommission.writer_name', index=2,
-      number=3, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  extension_ranges=[],
-  serialized_start=745,
-  serialized_end=811,
-)
-
-
-_IULINKUPDATE = descriptor.Descriptor(
-  name='IULinkUpdate',
-  full_name='ipaaca.protobuf.IULinkUpdate',
-  filename=None,
-  file=DESCRIPTOR,
-  containing_type=None,
-  fields=[
-    descriptor.FieldDescriptor(
-      name='uid', full_name='ipaaca.protobuf.IULinkUpdate.uid', index=0,
-      number=1, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='revision', full_name='ipaaca.protobuf.IULinkUpdate.revision', index=1,
-      number=2, type=13, cpp_type=3, label=2,
-      has_default_value=False, default_value=0,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='new_links', full_name='ipaaca.protobuf.IULinkUpdate.new_links', index=2,
-      number=3, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='links_to_remove', full_name='ipaaca.protobuf.IULinkUpdate.links_to_remove', index=3,
-      number=4, type=11, cpp_type=10, label=3,
-      has_default_value=False, default_value=[],
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='is_delta', full_name='ipaaca.protobuf.IULinkUpdate.is_delta', index=4,
-      number=5, type=8, cpp_type=7, label=2,
-      has_default_value=True, default_value=False,
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-    descriptor.FieldDescriptor(
-      name='writer_name', full_name='ipaaca.protobuf.IULinkUpdate.writer_name', index=5,
-      number=6, type=9, cpp_type=9, label=2,
-      has_default_value=False, default_value=unicode("", "utf-8"),
-      message_type=None, enum_type=None, containing_type=None,
-      is_extension=False, extension_scope=None,
-      options=None),
-  ],
-  extensions=[
-  ],
-  nested_types=[],
-  enum_types=[
-  ],
-  options=None,
-  is_extendable=False,
-  extension_ranges=[],
-  serialized_start=814,
-  serialized_end=1001,
-)
-
-_IU.fields_by_name['access_mode'].enum_type = _IU_ACCESSMODE
-_IU.fields_by_name['payload'].message_type = _PAYLOADITEM
-_IU.fields_by_name['links'].message_type = _LINKSET
-_IU_ACCESSMODE.containing_type = _IU;
-_IUPAYLOADUPDATE.fields_by_name['new_items'].message_type = _PAYLOADITEM
-_IULINKUPDATE.fields_by_name['new_links'].message_type = _LINKSET
-_IULINKUPDATE.fields_by_name['links_to_remove'].message_type = _LINKSET
-DESCRIPTOR.message_types_by_name['IntMessage'] = _INTMESSAGE
-DESCRIPTOR.message_types_by_name['LinkSet'] = _LINKSET
-DESCRIPTOR.message_types_by_name['PayloadItem'] = _PAYLOADITEM
-DESCRIPTOR.message_types_by_name['IU'] = _IU
-DESCRIPTOR.message_types_by_name['IUPayloadUpdate'] = _IUPAYLOADUPDATE
-DESCRIPTOR.message_types_by_name['IURetraction'] = _IURETRACTION
-DESCRIPTOR.message_types_by_name['IUCommission'] = _IUCOMMISSION
-DESCRIPTOR.message_types_by_name['IULinkUpdate'] = _IULINKUPDATE
-
-class IntMessage(message.Message):
-  __metaclass__ = reflection.GeneratedProtocolMessageType
-  DESCRIPTOR = _INTMESSAGE
-  
-  # @@protoc_insertion_point(class_scope:ipaaca.protobuf.IntMessage)
-
-class LinkSet(message.Message):
-  __metaclass__ = reflection.GeneratedProtocolMessageType
-  DESCRIPTOR = _LINKSET
-  
-  # @@protoc_insertion_point(class_scope:ipaaca.protobuf.LinkSet)
-
-class PayloadItem(message.Message):
-  __metaclass__ = reflection.GeneratedProtocolMessageType
-  DESCRIPTOR = _PAYLOADITEM
-  
-  # @@protoc_insertion_point(class_scope:ipaaca.protobuf.PayloadItem)
-
-class IU(message.Message):
-  __metaclass__ = reflection.GeneratedProtocolMessageType
-  DESCRIPTOR = _IU
-  
-  # @@protoc_insertion_point(class_scope:ipaaca.protobuf.IU)
-
-class IUPayloadUpdate(message.Message):
-  __metaclass__ = reflection.GeneratedProtocolMessageType
-  DESCRIPTOR = _IUPAYLOADUPDATE
-  
-  # @@protoc_insertion_point(class_scope:ipaaca.protobuf.IUPayloadUpdate)
-
-class IURetraction(message.Message):
-  __metaclass__ = reflection.GeneratedProtocolMessageType
-  DESCRIPTOR = _IURETRACTION
-  
-  # @@protoc_insertion_point(class_scope:ipaaca.protobuf.IURetraction)
-
-class IUCommission(message.Message):
-  __metaclass__ = reflection.GeneratedProtocolMessageType
-  DESCRIPTOR = _IUCOMMISSION
-  
-  # @@protoc_insertion_point(class_scope:ipaaca.protobuf.IUCommission)
-
-class IULinkUpdate(message.Message):
-  __metaclass__ = reflection.GeneratedProtocolMessageType
-  DESCRIPTOR = _IULINKUPDATE
-  
-  # @@protoc_insertion_point(class_scope:ipaaca.protobuf.IULinkUpdate)
-
-# @@protoc_insertion_point(module_scope)
diff --git a/proto/src/ipaaca.proto b/proto/ipaaca.proto
similarity index 100%
rename from proto/src/ipaaca.proto
rename to proto/ipaaca.proto
diff --git a/proto/ivy.xml b/proto/ivy.xml
deleted file mode 100644
index 264e38d71c246f3cdb159e42c9ad965210bd4a90..0000000000000000000000000000000000000000
--- a/proto/ivy.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<ivy-module version="2.0">
-   <info organisation="HMI" module="IpaacaJava" />
-   <dependencies>
-      <dependency org="junit" name="junit" rev="latest.release"/>
-   </dependencies>
-</ivy-module>