suntianyu
2021-07-26 d3f4c0623c48d216998fa8260d37fefa311d0fb1
lib/utils/protomsg.pb.cc
@@ -14,104 +14,90 @@
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>
extern PROTOBUF_INTERNAL_EXPORT_protomsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Rect_protomsg_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_protomsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SDKMessage_protomsg_2eproto;
extern PROTOBUF_INTERNAL_EXPORT_protomsg_2eproto ::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Target_protomsg_2eproto;
PROTOBUF_PRAGMA_INIT_SEG
namespace protomsg {
class ImageDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Image> _instance;
} _Image_default_instance_;
class RectDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Rect> _instance;
} _Rect_default_instance_;
class TargetDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<Target> _instance;
} _Target_default_instance_;
class SDKMessageDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<SDKMessage> _instance;
} _SDKMessage_default_instance_;
class RuleMessageDefaultTypeInternal {
 public:
  ::PROTOBUF_NAMESPACE_ID::internal::ExplicitlyConstructed<RuleMessage> _instance;
} _RuleMessage_default_instance_;
constexpr Image::Image(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : data_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , timestamp_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , cid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , cname_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , width_(0)
  , height_(0)
  , id_(int64_t{0}){}
struct ImageDefaultTypeInternal {
  constexpr ImageDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~ImageDefaultTypeInternal() {}
  union {
    Image _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT ImageDefaultTypeInternal _Image_default_instance_;
constexpr Rect::Rect(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : left_(0)
  , top_(0)
  , right_(0)
  , bottom_(0){}
struct RectDefaultTypeInternal {
  constexpr RectDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~RectDefaultTypeInternal() {}
  union {
    Rect _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RectDefaultTypeInternal _Rect_default_instance_;
constexpr Target::Target(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : type_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , feature_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , attribute_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , rect_(nullptr)
  , id_(uint64_t{0u})
  , confidence_(0){}
struct TargetDefaultTypeInternal {
  constexpr TargetDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~TargetDefaultTypeInternal() {}
  union {
    Target _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT TargetDefaultTypeInternal _Target_default_instance_;
constexpr SDKMessage::SDKMessage(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : target_()
  , sdkid_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sdktype_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , sdkname_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , timestamp_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct SDKMessageDefaultTypeInternal {
  constexpr SDKMessageDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~SDKMessageDefaultTypeInternal() {}
  union {
    SDKMessage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT SDKMessageDefaultTypeInternal _SDKMessage_default_instance_;
constexpr RuleMessage::RuleMessage(
  ::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized)
  : message_()
  , datatype_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string)
  , handletrack_(&::PROTOBUF_NAMESPACE_ID::internal::fixed_address_empty_string){}
struct RuleMessageDefaultTypeInternal {
  constexpr RuleMessageDefaultTypeInternal()
    : _instance(::PROTOBUF_NAMESPACE_ID::internal::ConstantInitialized{}) {}
  ~RuleMessageDefaultTypeInternal() {}
  union {
    RuleMessage _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT RuleMessageDefaultTypeInternal _RuleMessage_default_instance_;
}  // namespace protomsg
static void InitDefaultsscc_info_Image_protomsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;
  {
    void* ptr = &::protomsg::_Image_default_instance_;
    new (ptr) ::protomsg::Image();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::protomsg::Image::InitAsDefaultInstance();
}
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Image_protomsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Image_protomsg_2eproto}, {}};
static void InitDefaultsscc_info_Rect_protomsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;
  {
    void* ptr = &::protomsg::_Rect_default_instance_;
    new (ptr) ::protomsg::Rect();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::protomsg::Rect::InitAsDefaultInstance();
}
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<0> scc_info_Rect_protomsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 0, 0, InitDefaultsscc_info_Rect_protomsg_2eproto}, {}};
static void InitDefaultsscc_info_RuleMessage_protomsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;
  {
    void* ptr = &::protomsg::_RuleMessage_default_instance_;
    new (ptr) ::protomsg::RuleMessage();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::protomsg::RuleMessage::InitAsDefaultInstance();
}
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_RuleMessage_protomsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_RuleMessage_protomsg_2eproto}, {
      &scc_info_SDKMessage_protomsg_2eproto.base,}};
static void InitDefaultsscc_info_SDKMessage_protomsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;
  {
    void* ptr = &::protomsg::_SDKMessage_default_instance_;
    new (ptr) ::protomsg::SDKMessage();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::protomsg::SDKMessage::InitAsDefaultInstance();
}
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_SDKMessage_protomsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_SDKMessage_protomsg_2eproto}, {
      &scc_info_Target_protomsg_2eproto.base,}};
static void InitDefaultsscc_info_Target_protomsg_2eproto() {
  GOOGLE_PROTOBUF_VERIFY_VERSION;
  {
    void* ptr = &::protomsg::_Target_default_instance_;
    new (ptr) ::protomsg::Target();
    ::PROTOBUF_NAMESPACE_ID::internal::OnShutdownDestroyMessage(ptr);
  }
  ::protomsg::Target::InitAsDefaultInstance();
}
::PROTOBUF_NAMESPACE_ID::internal::SCCInfo<1> scc_info_Target_protomsg_2eproto =
    {{ATOMIC_VAR_INIT(::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase::kUninitialized), 1, 0, InitDefaultsscc_info_Target_protomsg_2eproto}, {
      &scc_info_Rect_protomsg_2eproto.base,}};
static ::PROTOBUF_NAMESPACE_ID::Metadata file_level_metadata_protomsg_2eproto[5];
static constexpr ::PROTOBUF_NAMESPACE_ID::EnumDescriptor const** file_level_enum_descriptors_protomsg_2eproto = nullptr;
static constexpr ::PROTOBUF_NAMESPACE_ID::ServiceDescriptor const** file_level_service_descriptors_protomsg_2eproto = nullptr;
@@ -200,60 +186,55 @@
  "handleTrack\030\002 \001(\t\022%\n\007message\030\003 \003(\0132\024.pro"
  "tomsg.SDKMessageb\006proto3"
  ;
static const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable*const descriptor_table_protomsg_2eproto_deps[1] = {
};
static ::PROTOBUF_NAMESPACE_ID::internal::SCCInfoBase*const descriptor_table_protomsg_2eproto_sccs[5] = {
  &scc_info_Image_protomsg_2eproto.base,
  &scc_info_Rect_protomsg_2eproto.base,
  &scc_info_RuleMessage_protomsg_2eproto.base,
  &scc_info_SDKMessage_protomsg_2eproto.base,
  &scc_info_Target_protomsg_2eproto.base,
};
static ::PROTOBUF_NAMESPACE_ID::internal::once_flag descriptor_table_protomsg_2eproto_once;
static bool descriptor_table_protomsg_2eproto_initialized = false;
const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable descriptor_table_protomsg_2eproto = {
  &descriptor_table_protomsg_2eproto_initialized, descriptor_table_protodef_protomsg_2eproto, "protomsg.proto", 544,
  &descriptor_table_protomsg_2eproto_once, descriptor_table_protomsg_2eproto_sccs, descriptor_table_protomsg_2eproto_deps, 5, 0,
  false, false, 544, descriptor_table_protodef_protomsg_2eproto, "protomsg.proto",
  &descriptor_table_protomsg_2eproto_once, nullptr, 0, 5,
  schemas, file_default_instances, TableStruct_protomsg_2eproto::offsets,
  file_level_metadata_protomsg_2eproto, 5, file_level_enum_descriptors_protomsg_2eproto, file_level_service_descriptors_protomsg_2eproto,
  file_level_metadata_protomsg_2eproto, file_level_enum_descriptors_protomsg_2eproto, file_level_service_descriptors_protomsg_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::PROTOBUF_NAMESPACE_ID::internal::DescriptorTable* descriptor_table_protomsg_2eproto_getter() {
  return &descriptor_table_protomsg_2eproto;
}
// Force running AddDescriptors() at dynamic initialization time.
static bool dynamic_init_dummy_protomsg_2eproto = (  ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptors(&descriptor_table_protomsg_2eproto), true);
PROTOBUF_ATTRIBUTE_INIT_PRIORITY static ::PROTOBUF_NAMESPACE_ID::internal::AddDescriptorsRunner dynamic_init_dummy_protomsg_2eproto(&descriptor_table_protomsg_2eproto);
namespace protomsg {
// ===================================================================
void Image::InitAsDefaultInstance() {
}
class Image::_Internal {
 public:
};
Image::Image()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
Image::Image(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protomsg.Image)
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:protomsg.Image)
}
Image::Image(const Image& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_data().empty()) {
    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
    data_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_data(),
      GetArenaForAllocation());
  }
  timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_timestamp().empty()) {
    timestamp_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.timestamp_);
    timestamp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_timestamp(),
      GetArenaForAllocation());
  }
  cid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_cid().empty()) {
    cid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.cid_);
    cid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_cid(),
      GetArenaForAllocation());
  }
  cname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_cname().empty()) {
    cname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.cname_);
    cname_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_cname(),
      GetArenaForAllocation());
  }
  ::memcpy(&width_, &from.width_,
    static_cast<size_t>(reinterpret_cast<char*>(&id_) -
@@ -262,36 +243,39 @@
}
void Image::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Image_protomsg_2eproto.base);
  data_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  cid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  cname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&width_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&id_) -
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&width_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&id_) -
      reinterpret_cast<char*>(&width_)) + sizeof(id_));
}
Image::~Image() {
  // @@protoc_insertion_point(destructor:protomsg.Image)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
void Image::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  data_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  timestamp_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  cid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  cname_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
void Image::ArenaDtor(void* object) {
  Image* _this = reinterpret_cast< Image* >(object);
  (void)_this;
}
void Image::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Image::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Image& Image::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Image_protomsg_2eproto.base);
  return *internal_default_instance();
}
void Image::Clear() {
// @@protoc_insertion_point(message_clear_start:protomsg.Image)
@@ -299,14 +283,14 @@
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;
  data_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  timestamp_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  cid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  cname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  data_.ClearToEmpty();
  timestamp_.ClearToEmpty();
  cid_.ClearToEmpty();
  cname_.ClearToEmpty();
  ::memset(&width_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&id_) -
      reinterpret_cast<char*>(&width_)) + sizeof(id_));
  _internal_metadata_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* Image::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -314,64 +298,73 @@
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 width = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          width_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 height = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          height_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes data = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(_internal_mutable_data(), ptr, ctx);
          auto str = _internal_mutable_data();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string timestamp = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 34)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_timestamp(), ptr, ctx, "protomsg.Image.timestamp");
          auto str = _internal_mutable_timestamp();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.Image.timestamp"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int64 id = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 40)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string cid = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_cid(), ptr, ctx, "protomsg.Image.cid");
          auto str = _internal_mutable_cid();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.Image.cid"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string cname = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 58)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_cname(), ptr, ctx, "protomsg.Image.cname");
          auto str = _internal_mutable_cname();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.Image.cname"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
        if ((tag == 0) || ((tag & 7) == 4)) {
          CHK_(ptr);
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
@@ -385,7 +378,7 @@
#undef CHK_
}
::PROTOBUF_NAMESPACE_ID::uint8* Image::InternalSerializeWithCachedSizesToArray(
::PROTOBUF_NAMESPACE_ID::uint8* Image::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:protomsg.Image)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
@@ -393,24 +386,24 @@
  // int32 width = 1;
  if (this->width() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_width(), target);
  }
  // int32 height = 2;
  if (this->height() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_height(), target);
  }
  // bytes data = 3;
  if (this->data().size() > 0) {
  if (!this->data().empty()) {
    target = stream->WriteBytesMaybeAliased(
        3, this->_internal_data(), target);
  }
  // string timestamp = 4;
  if (this->timestamp().size() > 0) {
  if (!this->timestamp().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_timestamp().data(), static_cast<int>(this->_internal_timestamp().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -421,12 +414,12 @@
  // int64 id = 5;
  if (this->id() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt64ToArray(5, this->_internal_id(), target);
  }
  // string cid = 6;
  if (this->cid().size() > 0) {
  if (!this->cid().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_cid().data(), static_cast<int>(this->_internal_cid().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -436,7 +429,7 @@
  }
  // string cname = 7;
  if (this->cname().size() > 0) {
  if (!this->cname().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_cname().data(), static_cast<int>(this->_internal_cname().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -447,7 +440,7 @@
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protomsg.Image)
  return target;
@@ -462,28 +455,28 @@
  (void) cached_has_bits;
  // bytes data = 3;
  if (this->data().size() > 0) {
  if (!this->data().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_data());
  }
  // string timestamp = 4;
  if (this->timestamp().size() > 0) {
  if (!this->timestamp().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_timestamp());
  }
  // string cid = 6;
  if (this->cid().size() > 0) {
  if (!this->cid().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_cid());
  }
  // string cname = 7;
  if (this->cname().size() > 0) {
  if (!this->cname().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_cname());
@@ -537,25 +530,21 @@
void Image::MergeFrom(const Image& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:protomsg.Image)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;
  if (from.data().size() > 0) {
    data_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.data_);
  if (!from.data().empty()) {
    _internal_set_data(from._internal_data());
  }
  if (from.timestamp().size() > 0) {
    timestamp_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.timestamp_);
  if (!from.timestamp().empty()) {
    _internal_set_timestamp(from._internal_timestamp());
  }
  if (from.cid().size() > 0) {
    cid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.cid_);
  if (!from.cid().empty()) {
    _internal_set_cid(from._internal_cid());
  }
  if (from.cname().size() > 0) {
    cname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.cname_);
  if (!from.cname().empty()) {
    _internal_set_cname(from._internal_cname());
  }
  if (from.width() != 0) {
    _internal_set_width(from._internal_width());
@@ -588,42 +577,56 @@
void Image::InternalSwap(Image* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  data_.Swap(&other->data_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  timestamp_.Swap(&other->timestamp_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  cid_.Swap(&other->cid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  cname_.Swap(&other->cname_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(width_, other->width_);
  swap(height_, other->height_);
  swap(id_, other->id_);
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &data_, GetArenaForAllocation(),
      &other->data_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &timestamp_, GetArenaForAllocation(),
      &other->timestamp_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &cid_, GetArenaForAllocation(),
      &other->cid_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &cname_, GetArenaForAllocation(),
      &other->cname_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Image, id_)
      + sizeof(Image::id_)
      - PROTOBUF_FIELD_OFFSET(Image, width_)>(
          reinterpret_cast<char*>(&width_),
          reinterpret_cast<char*>(&other->width_));
}
::PROTOBUF_NAMESPACE_ID::Metadata Image::GetMetadata() const {
  return GetMetadataStatic();
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
      file_level_metadata_protomsg_2eproto[0]);
}
// ===================================================================
void Rect::InitAsDefaultInstance() {
}
class Rect::_Internal {
 public:
};
Rect::Rect()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
Rect::Rect(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protomsg.Rect)
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:protomsg.Rect)
}
Rect::Rect(const Rect& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::memcpy(&left_, &from.left_,
    static_cast<size_t>(reinterpret_cast<char*>(&bottom_) -
    reinterpret_cast<char*>(&left_)) + sizeof(bottom_));
@@ -631,27 +634,31 @@
}
void Rect::SharedCtor() {
  ::memset(&left_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&bottom_) -
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&left_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&bottom_) -
      reinterpret_cast<char*>(&left_)) + sizeof(bottom_));
}
Rect::~Rect() {
  // @@protoc_insertion_point(destructor:protomsg.Rect)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
void Rect::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}
void Rect::ArenaDtor(void* object) {
  Rect* _this = reinterpret_cast< Rect* >(object);
  (void)_this;
}
void Rect::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Rect::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Rect& Rect::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Rect_protomsg_2eproto.base);
  return *internal_default_instance();
}
void Rect::Clear() {
// @@protoc_insertion_point(message_clear_start:protomsg.Rect)
@@ -662,7 +669,7 @@
  ::memset(&left_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&bottom_) -
      reinterpret_cast<char*>(&left_)) + sizeof(bottom_));
  _internal_metadata_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* Rect::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -670,43 +677,45 @@
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // int32 left = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          left_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          left_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 top = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 16)) {
          top_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          top_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 right = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          right_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          right_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 bottom = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 32)) {
          bottom_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          bottom_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
        if ((tag == 0) || ((tag & 7) == 4)) {
          CHK_(ptr);
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
@@ -720,7 +729,7 @@
#undef CHK_
}
::PROTOBUF_NAMESPACE_ID::uint8* Rect::InternalSerializeWithCachedSizesToArray(
::PROTOBUF_NAMESPACE_ID::uint8* Rect::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:protomsg.Rect)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
@@ -728,31 +737,31 @@
  // int32 left = 1;
  if (this->left() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(1, this->_internal_left(), target);
  }
  // int32 top = 2;
  if (this->top() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(2, this->_internal_top(), target);
  }
  // int32 right = 3;
  if (this->right() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_right(), target);
  }
  // int32 bottom = 4;
  if (this->bottom() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(4, this->_internal_bottom(), target);
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protomsg.Rect)
  return target;
@@ -821,7 +830,7 @@
void Rect::MergeFrom(const Rect& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:protomsg.Rect)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;
@@ -859,24 +868,23 @@
void Rect::InternalSwap(Rect* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  swap(left_, other->left_);
  swap(top_, other->top_);
  swap(right_, other->right_);
  swap(bottom_, other->bottom_);
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Rect, bottom_)
      + sizeof(Rect::bottom_)
      - PROTOBUF_FIELD_OFFSET(Rect, left_)>(
          reinterpret_cast<char*>(&left_),
          reinterpret_cast<char*>(&other->left_));
}
::PROTOBUF_NAMESPACE_ID::Metadata Rect::GetMetadata() const {
  return GetMetadataStatic();
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
      file_level_metadata_protomsg_2eproto[1]);
}
// ===================================================================
void Target::InitAsDefaultInstance() {
  ::protomsg::_Target_default_instance_._instance.get_mutable()->rect_ = const_cast< ::protomsg::Rect*>(
      ::protomsg::Rect::internal_default_instance());
}
class Target::_Internal {
 public:
  static const ::protomsg::Rect& rect(const Target* msg);
@@ -886,26 +894,29 @@
Target::_Internal::rect(const Target* msg) {
  return *msg->rect_;
}
Target::Target()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
Target::Target(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protomsg.Target)
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:protomsg.Target)
}
Target::Target(const Target& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_type().empty()) {
    type_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.type_);
    type_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_type(),
      GetArenaForAllocation());
  }
  feature_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_feature().empty()) {
    feature_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.feature_);
    feature_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_feature(),
      GetArenaForAllocation());
  }
  attribute_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_attribute().empty()) {
    attribute_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.attribute_);
    attribute_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_attribute(),
      GetArenaForAllocation());
  }
  if (from._internal_has_rect()) {
    rect_ = new ::protomsg::Rect(*from.rect_);
@@ -919,35 +930,38 @@
}
void Target::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_Target_protomsg_2eproto.base);
  type_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  feature_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  attribute_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  ::memset(&rect_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&confidence_) -
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&rect_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&confidence_) -
      reinterpret_cast<char*>(&rect_)) + sizeof(confidence_));
}
Target::~Target() {
  // @@protoc_insertion_point(destructor:protomsg.Target)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
void Target::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  type_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  feature_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  attribute_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (this != internal_default_instance()) delete rect_;
}
void Target::ArenaDtor(void* object) {
  Target* _this = reinterpret_cast< Target* >(object);
  (void)_this;
}
void Target::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void Target::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const Target& Target::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_Target_protomsg_2eproto.base);
  return *internal_default_instance();
}
void Target::Clear() {
// @@protoc_insertion_point(message_clear_start:protomsg.Target)
@@ -955,17 +969,17 @@
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;
  type_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  feature_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  attribute_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (GetArenaNoVirtual() == nullptr && rect_ != nullptr) {
  type_.ClearToEmpty();
  feature_.ClearToEmpty();
  attribute_.ClearToEmpty();
  if (GetArenaForAllocation() == nullptr && rect_ != nullptr) {
    delete rect_;
  }
  rect_ = nullptr;
  ::memset(&id_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&confidence_) -
      reinterpret_cast<char*>(&id_)) + sizeof(confidence_));
  _internal_metadata_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* Target::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -973,26 +987,27 @@
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // uint64 id = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 8)) {
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          id_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string type = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_type(), ptr, ctx, "protomsg.Target.type");
          auto str = _internal_mutable_type();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.Target.type"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // int32 confidence = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 24)) {
          confidence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint(&ptr);
          confidence_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint64(&ptr);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
@@ -1006,24 +1021,29 @@
      // bytes feature = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(_internal_mutable_feature(), ptr, ctx);
          auto str = _internal_mutable_feature();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // bytes attribute = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 50)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(_internal_mutable_attribute(), ptr, ctx);
          auto str = _internal_mutable_attribute();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
        if ((tag == 0) || ((tag & 7) == 4)) {
          CHK_(ptr);
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
@@ -1037,7 +1057,7 @@
#undef CHK_
}
::PROTOBUF_NAMESPACE_ID::uint8* Target::InternalSerializeWithCachedSizesToArray(
::PROTOBUF_NAMESPACE_ID::uint8* Target::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:protomsg.Target)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
@@ -1045,12 +1065,12 @@
  // uint64 id = 1;
  if (this->id() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteUInt64ToArray(1, this->_internal_id(), target);
  }
  // string type = 2;
  if (this->type().size() > 0) {
  if (!this->type().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_type().data(), static_cast<int>(this->_internal_type().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1061,33 +1081,33 @@
  // int32 confidence = 3;
  if (this->confidence() != 0) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::WriteInt32ToArray(3, this->_internal_confidence(), target);
  }
  // .protomsg.Rect rect = 4;
  if (this->has_rect()) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(
      InternalWriteMessage(
        4, _Internal::rect(this), target, stream);
  }
  // bytes feature = 5;
  if (this->feature().size() > 0) {
  if (!this->feature().empty()) {
    target = stream->WriteBytesMaybeAliased(
        5, this->_internal_feature(), target);
  }
  // bytes attribute = 6;
  if (this->attribute().size() > 0) {
  if (!this->attribute().empty()) {
    target = stream->WriteBytesMaybeAliased(
        6, this->_internal_attribute(), target);
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protomsg.Target)
  return target;
@@ -1102,21 +1122,21 @@
  (void) cached_has_bits;
  // string type = 2;
  if (this->type().size() > 0) {
  if (!this->type().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_type());
  }
  // bytes feature = 5;
  if (this->feature().size() > 0) {
  if (!this->feature().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_feature());
  }
  // bytes attribute = 6;
  if (this->attribute().size() > 0) {
  if (!this->attribute().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::BytesSize(
        this->_internal_attribute());
@@ -1170,21 +1190,18 @@
void Target::MergeFrom(const Target& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:protomsg.Target)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;
  if (from.type().size() > 0) {
    type_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.type_);
  if (!from.type().empty()) {
    _internal_set_type(from._internal_type());
  }
  if (from.feature().size() > 0) {
    feature_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.feature_);
  if (!from.feature().empty()) {
    _internal_set_feature(from._internal_feature());
  }
  if (from.attribute().size() > 0) {
    attribute_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.attribute_);
  if (!from.attribute().empty()) {
    _internal_set_attribute(from._internal_attribute());
  }
  if (from.has_rect()) {
    _internal_mutable_rect()->::protomsg::Rect::MergeFrom(from._internal_rect());
@@ -1217,62 +1234,77 @@
void Target::InternalSwap(Target* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  type_.Swap(&other->type_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  feature_.Swap(&other->feature_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  attribute_.Swap(&other->attribute_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  swap(rect_, other->rect_);
  swap(id_, other->id_);
  swap(confidence_, other->confidence_);
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &type_, GetArenaForAllocation(),
      &other->type_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &feature_, GetArenaForAllocation(),
      &other->feature_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &attribute_, GetArenaForAllocation(),
      &other->attribute_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Target, confidence_)
      + sizeof(Target::confidence_)
      - PROTOBUF_FIELD_OFFSET(Target, rect_)>(
          reinterpret_cast<char*>(&rect_),
          reinterpret_cast<char*>(&other->rect_));
}
::PROTOBUF_NAMESPACE_ID::Metadata Target::GetMetadata() const {
  return GetMetadataStatic();
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
      file_level_metadata_protomsg_2eproto[2]);
}
// ===================================================================
void SDKMessage::InitAsDefaultInstance() {
}
class SDKMessage::_Internal {
 public:
};
SDKMessage::SDKMessage()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
SDKMessage::SDKMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  target_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protomsg.SDKMessage)
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:protomsg.SDKMessage)
}
SDKMessage::SDKMessage(const SDKMessage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      target_(from.target_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  sdkid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_sdkid().empty()) {
    sdkid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdkid_);
    sdkid_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdkid(),
      GetArenaForAllocation());
  }
  sdktype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_sdktype().empty()) {
    sdktype_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdktype_);
    sdktype_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdktype(),
      GetArenaForAllocation());
  }
  sdkname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_sdkname().empty()) {
    sdkname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdkname_);
    sdkname_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_sdkname(),
      GetArenaForAllocation());
  }
  timestamp_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_timestamp().empty()) {
    timestamp_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.timestamp_);
    timestamp_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_timestamp(),
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:protomsg.SDKMessage)
}
void SDKMessage::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_SDKMessage_protomsg_2eproto.base);
  sdkid_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdktype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdkname_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
@@ -1282,23 +1314,26 @@
SDKMessage::~SDKMessage() {
  // @@protoc_insertion_point(destructor:protomsg.SDKMessage)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
void SDKMessage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  sdkid_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdktype_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdkname_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  timestamp_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
void SDKMessage::ArenaDtor(void* object) {
  SDKMessage* _this = reinterpret_cast< SDKMessage* >(object);
  (void)_this;
}
void SDKMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void SDKMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const SDKMessage& SDKMessage::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_SDKMessage_protomsg_2eproto.base);
  return *internal_default_instance();
}
void SDKMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:protomsg.SDKMessage)
@@ -1307,11 +1342,11 @@
  (void) cached_has_bits;
  target_.Clear();
  sdkid_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdktype_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  sdkname_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  timestamp_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
  sdkid_.ClearToEmpty();
  sdktype_.ClearToEmpty();
  sdkname_.ClearToEmpty();
  timestamp_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* SDKMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -1319,26 +1354,31 @@
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string sdkID = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_sdkid(), ptr, ctx, "protomsg.SDKMessage.sdkID");
          auto str = _internal_mutable_sdkid();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.SDKMessage.sdkID"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string sdkType = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_sdktype(), ptr, ctx, "protomsg.SDKMessage.sdkType");
          auto str = _internal_mutable_sdktype();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.SDKMessage.sdkType"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string sdkName = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 26)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_sdkname(), ptr, ctx, "protomsg.SDKMessage.sdkName");
          auto str = _internal_mutable_sdkname();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.SDKMessage.sdkName"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
@@ -1357,17 +1397,22 @@
      // string timestamp = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 42)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_timestamp(), ptr, ctx, "protomsg.SDKMessage.timestamp");
          auto str = _internal_mutable_timestamp();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.SDKMessage.timestamp"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
        if ((tag == 0) || ((tag & 7) == 4)) {
          CHK_(ptr);
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
@@ -1381,14 +1426,14 @@
#undef CHK_
}
::PROTOBUF_NAMESPACE_ID::uint8* SDKMessage::InternalSerializeWithCachedSizesToArray(
::PROTOBUF_NAMESPACE_ID::uint8* SDKMessage::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:protomsg.SDKMessage)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;
  // string sdkID = 1;
  if (this->sdkid().size() > 0) {
  if (!this->sdkid().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_sdkid().data(), static_cast<int>(this->_internal_sdkid().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1398,7 +1443,7 @@
  }
  // string sdkType = 2;
  if (this->sdktype().size() > 0) {
  if (!this->sdktype().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_sdktype().data(), static_cast<int>(this->_internal_sdktype().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1408,7 +1453,7 @@
  }
  // string sdkName = 3;
  if (this->sdkname().size() > 0) {
  if (!this->sdkname().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_sdkname().data(), static_cast<int>(this->_internal_sdkname().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1420,13 +1465,13 @@
  // repeated .protomsg.Target target = 4;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_target_size()); i < n; i++) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(4, this->_internal_target(i), target, stream);
      InternalWriteMessage(4, this->_internal_target(i), target, stream);
  }
  // string timestamp = 5;
  if (this->timestamp().size() > 0) {
  if (!this->timestamp().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_timestamp().data(), static_cast<int>(this->_internal_timestamp().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1437,7 +1482,7 @@
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protomsg.SDKMessage)
  return target;
@@ -1459,28 +1504,28 @@
  }
  // string sdkID = 1;
  if (this->sdkid().size() > 0) {
  if (!this->sdkid().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_sdkid());
  }
  // string sdkType = 2;
  if (this->sdktype().size() > 0) {
  if (!this->sdktype().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_sdktype());
  }
  // string sdkName = 3;
  if (this->sdkname().size() > 0) {
  if (!this->sdkname().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_sdkname());
  }
  // string timestamp = 5;
  if (this->timestamp().size() > 0) {
  if (!this->timestamp().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_timestamp());
@@ -1513,26 +1558,22 @@
void SDKMessage::MergeFrom(const SDKMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:protomsg.SDKMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;
  target_.MergeFrom(from.target_);
  if (from.sdkid().size() > 0) {
    sdkid_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdkid_);
  if (!from.sdkid().empty()) {
    _internal_set_sdkid(from._internal_sdkid());
  }
  if (from.sdktype().size() > 0) {
    sdktype_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdktype_);
  if (!from.sdktype().empty()) {
    _internal_set_sdktype(from._internal_sdktype());
  }
  if (from.sdkname().size() > 0) {
    sdkname_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.sdkname_);
  if (!from.sdkname().empty()) {
    _internal_set_sdkname(from._internal_sdkname());
  }
  if (from.timestamp().size() > 0) {
    timestamp_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.timestamp_);
  if (!from.timestamp().empty()) {
    _internal_set_timestamp(from._internal_timestamp());
  }
}
@@ -1556,54 +1597,67 @@
void SDKMessage::InternalSwap(SDKMessage* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  target_.InternalSwap(&other->target_);
  sdkid_.Swap(&other->sdkid_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  sdktype_.Swap(&other->sdktype_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  sdkname_.Swap(&other->sdkname_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  timestamp_.Swap(&other->timestamp_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &sdkid_, GetArenaForAllocation(),
      &other->sdkid_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &sdktype_, GetArenaForAllocation(),
      &other->sdktype_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &sdkname_, GetArenaForAllocation(),
      &other->sdkname_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &timestamp_, GetArenaForAllocation(),
      &other->timestamp_, other->GetArenaForAllocation()
  );
}
::PROTOBUF_NAMESPACE_ID::Metadata SDKMessage::GetMetadata() const {
  return GetMetadataStatic();
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
      file_level_metadata_protomsg_2eproto[3]);
}
// ===================================================================
void RuleMessage::InitAsDefaultInstance() {
}
class RuleMessage::_Internal {
 public:
};
RuleMessage::RuleMessage()
  : ::PROTOBUF_NAMESPACE_ID::Message(), _internal_metadata_(nullptr) {
RuleMessage::RuleMessage(::PROTOBUF_NAMESPACE_ID::Arena* arena)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena),
  message_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(constructor:protomsg.RuleMessage)
  RegisterArenaDtor(arena);
  // @@protoc_insertion_point(arena_constructor:protomsg.RuleMessage)
}
RuleMessage::RuleMessage(const RuleMessage& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      _internal_metadata_(nullptr),
      message_(from.message_) {
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  datatype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_datatype().empty()) {
    datatype_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.datatype_);
    datatype_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_datatype(),
      GetArenaForAllocation());
  }
  handletrack_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  if (!from._internal_handletrack().empty()) {
    handletrack_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.handletrack_);
    handletrack_.Set(::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::EmptyDefault{}, from._internal_handletrack(),
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:protomsg.RuleMessage)
}
void RuleMessage::SharedCtor() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&scc_info_RuleMessage_protomsg_2eproto.base);
  datatype_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  handletrack_.UnsafeSetDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
@@ -1611,21 +1665,24 @@
RuleMessage::~RuleMessage() {
  // @@protoc_insertion_point(destructor:protomsg.RuleMessage)
  SharedDtor();
  _internal_metadata_.Delete<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
void RuleMessage::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  datatype_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  handletrack_.DestroyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
}
void RuleMessage::ArenaDtor(void* object) {
  RuleMessage* _this = reinterpret_cast< RuleMessage* >(object);
  (void)_this;
}
void RuleMessage::RegisterArenaDtor(::PROTOBUF_NAMESPACE_ID::Arena*) {
}
void RuleMessage::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}
const RuleMessage& RuleMessage::default_instance() {
  ::PROTOBUF_NAMESPACE_ID::internal::InitSCC(&::scc_info_RuleMessage_protomsg_2eproto.base);
  return *internal_default_instance();
}
void RuleMessage::Clear() {
// @@protoc_insertion_point(message_clear_start:protomsg.RuleMessage)
@@ -1634,9 +1691,9 @@
  (void) cached_has_bits;
  message_.Clear();
  datatype_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  handletrack_.ClearToEmptyNoArena(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited());
  _internal_metadata_.Clear();
  datatype_.ClearToEmpty();
  handletrack_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}
const char* RuleMessage::_InternalParse(const char* ptr, ::PROTOBUF_NAMESPACE_ID::internal::ParseContext* ctx) {
@@ -1644,19 +1701,22 @@
  while (!ctx->Done(&ptr)) {
    ::PROTOBUF_NAMESPACE_ID::uint32 tag;
    ptr = ::PROTOBUF_NAMESPACE_ID::internal::ReadTag(ptr, &tag);
    CHK_(ptr);
    switch (tag >> 3) {
      // string dataType = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 10)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_datatype(), ptr, ctx, "protomsg.RuleMessage.dataType");
          auto str = _internal_mutable_datatype();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.RuleMessage.dataType"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
      // string handleTrack = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<::PROTOBUF_NAMESPACE_ID::uint8>(tag) == 18)) {
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParserUTF8(_internal_mutable_handletrack(), ptr, ctx, "protomsg.RuleMessage.handleTrack");
          auto str = _internal_mutable_handletrack();
          ptr = ::PROTOBUF_NAMESPACE_ID::internal::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(::PROTOBUF_NAMESPACE_ID::internal::VerifyUTF8(str, "protomsg.RuleMessage.handleTrack"));
          CHK_(ptr);
        } else goto handle_unusual;
        continue;
@@ -1674,11 +1734,14 @@
        continue;
      default: {
      handle_unusual:
        if ((tag & 7) == 4 || tag == 0) {
        if ((tag == 0) || ((tag & 7) == 4)) {
          CHK_(ptr);
          ctx->SetLastTag(tag);
          goto success;
        }
        ptr = UnknownFieldParse(tag, &_internal_metadata_, ptr, ctx);
        ptr = UnknownFieldParse(tag,
            _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
            ptr, ctx);
        CHK_(ptr != nullptr);
        continue;
      }
@@ -1692,14 +1755,14 @@
#undef CHK_
}
::PROTOBUF_NAMESPACE_ID::uint8* RuleMessage::InternalSerializeWithCachedSizesToArray(
::PROTOBUF_NAMESPACE_ID::uint8* RuleMessage::_InternalSerialize(
    ::PROTOBUF_NAMESPACE_ID::uint8* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:protomsg.RuleMessage)
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;
  // string dataType = 1;
  if (this->datatype().size() > 0) {
  if (!this->datatype().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_datatype().data(), static_cast<int>(this->_internal_datatype().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1709,7 +1772,7 @@
  }
  // string handleTrack = 2;
  if (this->handletrack().size() > 0) {
  if (!this->handletrack().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_handletrack().data(), static_cast<int>(this->_internal_handletrack().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
@@ -1721,14 +1784,14 @@
  // repeated .protomsg.SDKMessage message = 3;
  for (unsigned int i = 0,
      n = static_cast<unsigned int>(this->_internal_message_size()); i < n; i++) {
    stream->EnsureSpace(&target);
    target = stream->EnsureSpace(target);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
      InternalWriteMessageToArray(3, this->_internal_message(i), target, stream);
      InternalWriteMessage(3, this->_internal_message(i), target, stream);
  }
  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields(), target, stream);
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:protomsg.RuleMessage)
  return target;
@@ -1750,14 +1813,14 @@
  }
  // string dataType = 1;
  if (this->datatype().size() > 0) {
  if (!this->datatype().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_datatype());
  }
  // string handleTrack = 2;
  if (this->handletrack().size() > 0) {
  if (!this->handletrack().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_handletrack());
@@ -1790,18 +1853,16 @@
void RuleMessage::MergeFrom(const RuleMessage& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:protomsg.RuleMessage)
  GOOGLE_DCHECK_NE(&from, this);
  _internal_metadata_.MergeFrom(from._internal_metadata_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::uint32 cached_has_bits = 0;
  (void) cached_has_bits;
  message_.MergeFrom(from.message_);
  if (from.datatype().size() > 0) {
    datatype_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.datatype_);
  if (!from.datatype().empty()) {
    _internal_set_datatype(from._internal_datatype());
  }
  if (from.handletrack().size() > 0) {
    handletrack_.AssignWithDefault(&::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(), from.handletrack_);
  if (!from.handletrack().empty()) {
    _internal_set_handletrack(from._internal_handletrack());
  }
}
@@ -1825,36 +1886,43 @@
void RuleMessage::InternalSwap(RuleMessage* other) {
  using std::swap;
  _internal_metadata_.Swap(&other->_internal_metadata_);
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  message_.InternalSwap(&other->message_);
  datatype_.Swap(&other->datatype_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  handletrack_.Swap(&other->handletrack_, &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
    GetArenaNoVirtual());
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &datatype_, GetArenaForAllocation(),
      &other->datatype_, other->GetArenaForAllocation()
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &::PROTOBUF_NAMESPACE_ID::internal::GetEmptyStringAlreadyInited(),
      &handletrack_, GetArenaForAllocation(),
      &other->handletrack_, other->GetArenaForAllocation()
  );
}
::PROTOBUF_NAMESPACE_ID::Metadata RuleMessage::GetMetadata() const {
  return GetMetadataStatic();
  return ::PROTOBUF_NAMESPACE_ID::internal::AssignDescriptors(
      &descriptor_table_protomsg_2eproto_getter, &descriptor_table_protomsg_2eproto_once,
      file_level_metadata_protomsg_2eproto[4]);
}
// @@protoc_insertion_point(namespace_scope)
}  // namespace protomsg
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::protomsg::Image* Arena::CreateMaybeMessage< ::protomsg::Image >(Arena* arena) {
  return Arena::CreateInternal< ::protomsg::Image >(arena);
  return Arena::CreateMessageInternal< ::protomsg::Image >(arena);
}
template<> PROTOBUF_NOINLINE ::protomsg::Rect* Arena::CreateMaybeMessage< ::protomsg::Rect >(Arena* arena) {
  return Arena::CreateInternal< ::protomsg::Rect >(arena);
  return Arena::CreateMessageInternal< ::protomsg::Rect >(arena);
}
template<> PROTOBUF_NOINLINE ::protomsg::Target* Arena::CreateMaybeMessage< ::protomsg::Target >(Arena* arena) {
  return Arena::CreateInternal< ::protomsg::Target >(arena);
  return Arena::CreateMessageInternal< ::protomsg::Target >(arena);
}
template<> PROTOBUF_NOINLINE ::protomsg::SDKMessage* Arena::CreateMaybeMessage< ::protomsg::SDKMessage >(Arena* arena) {
  return Arena::CreateInternal< ::protomsg::SDKMessage >(arena);
  return Arena::CreateMessageInternal< ::protomsg::SDKMessage >(arena);
}
template<> PROTOBUF_NOINLINE ::protomsg::RuleMessage* Arena::CreateMaybeMessage< ::protomsg::RuleMessage >(Arena* arena) {
  return Arena::CreateInternal< ::protomsg::RuleMessage >(arena);
  return Arena::CreateMessageInternal< ::protomsg::RuleMessage >(arena);
}
PROTOBUF_NAMESPACE_CLOSE