// Generated by the protocol buffer compiler.  DO NOT EDIT!

#define INTERNAL_SUPPRESS_PROTOBUF_FIELD_DEPRECATION
#include "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* IUResendRequest_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  IUResendRequest_reflection_ = NULL;
const ::google::protobuf::Descriptor* IULinkUpdate_descriptor_ = NULL;
const ::google::protobuf::internal::GeneratedMessageReflection*
  IULinkUpdate_reflection_ = NULL;

}  // namespace


void protobuf_AssignDesc_ipaaca_2eproto() {
  protobuf_AddDesc_ipaaca_2eproto();
  const ::google::protobuf::FileDescriptor* file =
    ::google::protobuf::DescriptorPool::generated_pool()->FindFileByName(
      "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));
  IUResendRequest_descriptor_ = file->message_type(7);
  static const int IUResendRequest_offsets_[2] = {
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUResendRequest, uid_),
    GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUResendRequest, hidden_scope_name_),
  };
  IUResendRequest_reflection_ =
    new ::google::protobuf::internal::GeneratedMessageReflection(
      IUResendRequest_descriptor_,
      IUResendRequest::default_instance_,
      IUResendRequest_offsets_,
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUResendRequest, _has_bits_[0]),
      GOOGLE_PROTOBUF_GENERATED_MESSAGE_FIELD_OFFSET(IUResendRequest, _unknown_fields_),
      -1,
      ::google::protobuf::DescriptorPool::generated_pool(),
      ::google::protobuf::MessageFactory::generated_factory(),
      sizeof(IUResendRequest));
  IULinkUpdate_descriptor_ = file->message_type(8);
  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_ipaaca_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(
    IUResendRequest_descriptor_, &IUResendRequest::default_instance());
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedMessage(
    IULinkUpdate_descriptor_, &IULinkUpdate::default_instance());
}

}  // namespace

void protobuf_ShutdownFile_ipaaca_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 IUResendRequest::default_instance_;
  delete IUResendRequest_reflection_;
  delete IULinkUpdate::default_instance_;
  delete IULinkUpdate_reflection_;
}

void protobuf_AddDesc_ipaaca_2eproto() {
  static bool already_here = false;
  if (already_here) return;
  already_here = true;
  GOOGLE_PROTOBUF_VERIFY_VERSION;

  ::google::protobuf::DescriptorPool::InternalAddGeneratedFile(
    "\n\014ipaaca.proto\022\017ipaaca.protobuf\"\033\n\nIntMe"
    "ssage\022\r\n\005value\030\001 \002(\021\"(\n\007LinkSet\022\014\n\004type\030"
    "\001 \002(\t\022\017\n\007targets\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\"\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\014payload_t"
    "ype\030\004 \002(\t:\003MAP\022\022\n\nowner_name\030\005 \002(\t\022\030\n\tco"
    "mmitted\030\006 \002(\010:\005false\0229\n\013access_mode\030\007 \002("
    "\0162\036.ipaaca.protobuf.IU.AccessMode:\004PUSH\022"
    "\030\n\tread_only\030\010 \002(\010:\005false\022-\n\007payload\030\t \003"
    "(\0132\034.ipaaca.protobuf.PayloadItem\022\'\n\005link"
    "s\030\n \003(\0132\030.ipaaca.protobuf.LinkSet\"/\n\nAcc"
    "essMode\022\010\n\004PUSH\020\000\022\n\n\006REMOTE\020\001\022\013\n\007MESSAGE"
    "\020\002\"\247\001\n\017IUPayloadUpdate\022\013\n\003uid\030\001 \002(\t\022\020\n\010r"
    "evision\030\002 \002(\r\022/\n\tnew_items\030\003 \003(\0132\034.ipaac"
    "a.protobuf.PayloadItem\022\026\n\016keys_to_remove"
    "\030\004 \003(\t\022\027\n\010is_delta\030\005 \002(\010:\005false\022\023\n\013write"
    "r_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\003u"
    "id\030\001 \002(\t\022\020\n\010revision\030\002 \002(\r\022\023\n\013writer_nam"
    "e\030\003 \002(\t\"9\n\017IUResendRequest\022\013\n\003uid\030\001 \002(\t\022"
    "\031\n\021hidden_scope_name\030\002 \002(\t\"\273\001\n\014IULinkUpd"
    "ate\022\013\n\003uid\030\001 \002(\t\022\020\n\010revision\030\002 \002(\r\022+\n\tne"
    "w_links\030\003 \003(\0132\030.ipaaca.protobuf.LinkSet\022"
    "1\n\017links_to_remove\030\004 \003(\0132\030.ipaaca.protob"
    "uf.LinkSet\022\027\n\010is_delta\030\005 \002(\010:\005false\022\023\n\013w"
    "riter_name\030\006 \002(\t", 1056);
  ::google::protobuf::MessageFactory::InternalRegisterGeneratedFile(
    "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();
  IUResendRequest::default_instance_ = new IUResendRequest();
  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();
  IUResendRequest::default_instance_->InitAsDefaultInstance();
  IULinkUpdate::default_instance_->InitAsDefaultInstance();
  ::google::protobuf::internal::OnShutdown(&protobuf_ShutdownFile_ipaaca_2eproto);
}

// Force AddDescriptors() to be called at static initialization time.
struct StaticDescriptorInitializer_ipaaca_2eproto {
  StaticDescriptorInitializer_ipaaca_2eproto() {
    protobuf_AddDesc_ipaaca_2eproto();
  }
} static_descriptor_initializer_ipaaca_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_ipaaca_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_ipaaca_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_ipaaca_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_ipaaca_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_ipaaca_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_ipaaca_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_ipaaca_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 IUResendRequest::kUidFieldNumber;
const int IUResendRequest::kHiddenScopeNameFieldNumber;
#endif  // !_MSC_VER

IUResendRequest::IUResendRequest()
  : ::google::protobuf::Message() {
  SharedCtor();
}

void IUResendRequest::InitAsDefaultInstance() {
}

IUResendRequest::IUResendRequest(const IUResendRequest& from)
  : ::google::protobuf::Message() {
  SharedCtor();
  MergeFrom(from);
}

void IUResendRequest::SharedCtor() {
  _cached_size_ = 0;
  uid_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  hidden_scope_name_ = const_cast< ::std::string*>(&::google::protobuf::internal::kEmptyString);
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
}

IUResendRequest::~IUResendRequest() {
  SharedDtor();
}

void IUResendRequest::SharedDtor() {
  if (uid_ != &::google::protobuf::internal::kEmptyString) {
    delete uid_;
  }
  if (hidden_scope_name_ != &::google::protobuf::internal::kEmptyString) {
    delete hidden_scope_name_;
  }
  if (this != default_instance_) {
  }
}

void IUResendRequest::SetCachedSize(int size) const {
  GOOGLE_SAFE_CONCURRENT_WRITES_BEGIN();
  _cached_size_ = size;
  GOOGLE_SAFE_CONCURRENT_WRITES_END();
}
const ::google::protobuf::Descriptor* IUResendRequest::descriptor() {
  protobuf_AssignDescriptorsOnce();
  return IUResendRequest_descriptor_;
}

const IUResendRequest& IUResendRequest::default_instance() {
  if (default_instance_ == NULL) protobuf_AddDesc_ipaaca_2eproto();  return *default_instance_;
}

IUResendRequest* IUResendRequest::default_instance_ = NULL;

IUResendRequest* IUResendRequest::New() const {
  return new IUResendRequest;
}

void IUResendRequest::Clear() {
  if (_has_bits_[0 / 32] & (0xffu << (0 % 32))) {
    if (has_uid()) {
      if (uid_ != &::google::protobuf::internal::kEmptyString) {
        uid_->clear();
      }
    }
    if (has_hidden_scope_name()) {
      if (hidden_scope_name_ != &::google::protobuf::internal::kEmptyString) {
        hidden_scope_name_->clear();
      }
    }
  }
  ::memset(_has_bits_, 0, sizeof(_has_bits_));
  mutable_unknown_fields()->Clear();
}

bool IUResendRequest::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(18)) goto parse_hidden_scope_name;
        break;
      }
      
      // required string hidden_scope_name = 2;
      case 2: {
        if (::google::protobuf::internal::WireFormatLite::GetTagWireType(tag) ==
            ::google::protobuf::internal::WireFormatLite::WIRETYPE_LENGTH_DELIMITED) {
         parse_hidden_scope_name:
          DO_(::google::protobuf::internal::WireFormatLite::ReadString(
                input, this->mutable_hidden_scope_name()));
          ::google::protobuf::internal::WireFormat::VerifyUTF8String(
            this->hidden_scope_name().data(), this->hidden_scope_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 IUResendRequest::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 string hidden_scope_name = 2;
  if (has_hidden_scope_name()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
      this->hidden_scope_name().data(), this->hidden_scope_name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE);
    ::google::protobuf::internal::WireFormatLite::WriteString(
      2, this->hidden_scope_name(), output);
  }
  
  if (!unknown_fields().empty()) {
    ::google::protobuf::internal::WireFormat::SerializeUnknownFields(
        unknown_fields(), output);
  }
}

::google::protobuf::uint8* IUResendRequest::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 string hidden_scope_name = 2;
  if (has_hidden_scope_name()) {
    ::google::protobuf::internal::WireFormat::VerifyUTF8String(
      this->hidden_scope_name().data(), this->hidden_scope_name().length(),
      ::google::protobuf::internal::WireFormat::SERIALIZE);
    target =
      ::google::protobuf::internal::WireFormatLite::WriteStringToArray(
        2, this->hidden_scope_name(), target);
  }
  
  if (!unknown_fields().empty()) {
    target = ::google::protobuf::internal::WireFormat::SerializeUnknownFieldsToArray(
        unknown_fields(), target);
  }
  return target;
}

int IUResendRequest::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 string hidden_scope_name = 2;
    if (has_hidden_scope_name()) {
      total_size += 1 +
        ::google::protobuf::internal::WireFormatLite::StringSize(
          this->hidden_scope_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 IUResendRequest::MergeFrom(const ::google::protobuf::Message& from) {
  GOOGLE_CHECK_NE(&from, this);
  const IUResendRequest* source =
    ::google::protobuf::internal::dynamic_cast_if_available<const IUResendRequest*>(
      &from);
  if (source == NULL) {
    ::google::protobuf::internal::ReflectionOps::Merge(from, this);
  } else {
    MergeFrom(*source);
  }
}

void IUResendRequest::MergeFrom(const IUResendRequest& 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_hidden_scope_name()) {
      set_hidden_scope_name(from.hidden_scope_name());
    }
  }
  mutable_unknown_fields()->MergeFrom(from.unknown_fields());
}

void IUResendRequest::CopyFrom(const ::google::protobuf::Message& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

void IUResendRequest::CopyFrom(const IUResendRequest& from) {
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool IUResendRequest::IsInitialized() const {
  if ((_has_bits_[0] & 0x00000003) != 0x00000003) return false;
  
  return true;
}

void IUResendRequest::Swap(IUResendRequest* other) {
  if (other != this) {
    std::swap(uid_, other->uid_);
    std::swap(hidden_scope_name_, other->hidden_scope_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 IUResendRequest::GetMetadata() const {
  protobuf_AssignDescriptorsOnce();
  ::google::protobuf::Metadata metadata;
  metadata.descriptor = IUResendRequest_descriptor_;
  metadata.reflection = IUResendRequest_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_ipaaca_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)