// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: mod-agi.proto

#include "mod-agi.pb.h"

#include <algorithm>

#include <google/protobuf/io/coded_stream.h>
#include <google/protobuf/extension_set.h>
#include <google/protobuf/wire_format_lite.h>
#include <google/protobuf/descriptor.h>
#include <google/protobuf/generated_message_reflection.h>
#include <google/protobuf/reflection_ops.h>
#include <google/protobuf/wire_format.h>
// @@protoc_insertion_point(includes)
#include <google/protobuf/port_def.inc>

PROTOBUF_PRAGMA_INIT_SEG

namespace _pb = ::PROTOBUF_NAMESPACE_ID;
namespace _pbi = _pb::internal;

namespace satllite {
namespace protobuf {
namespace agi {
PROTOBUF_CONSTEXPR CalcTleReq::CalcTleReq(
    ::_pbi::ConstantInitialized)
  : noradname_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , noradid_(0)
  , year_(0)
  , month_(0)
  , day_(0)
  , hour_(0)
  , minute_(0)
  , second_(0)
  , a_(0)
  , ee_(0)
  , i_(0)
  , raan_(0)
  , arc_(0)
  , m_(0){}
struct CalcTleReqDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CalcTleReqDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CalcTleReqDefaultTypeInternal() {}
  union {
    CalcTleReq _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CalcTleReqDefaultTypeInternal _CalcTleReq_default_instance_;
PROTOBUF_CONSTEXPR CalcTleRet::CalcTleRet(
    ::_pbi::ConstantInitialized)
  : line0_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , line1_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , line2_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{}){}
struct CalcTleRetDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CalcTleRetDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CalcTleRetDefaultTypeInternal() {}
  union {
    CalcTleRet _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CalcTleRetDefaultTypeInternal _CalcTleRet_default_instance_;
PROTOBUF_CONSTEXPR CalcReportReq::CalcReportReq(
    ::_pbi::ConstantInitialized)
  : startdatetime_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , enddatetime_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , line0_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , line1_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , line2_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , latitude_(0)
  , longitude_(0)
  , altitude_(0)
  , slice_(0)
  , minazi_(0)
  , maxazi_(0)
  , minele_(0)
  , maxele_(0)
  , mindist_(0)
  , maxdist_(0)
  , pointslice_(0)
  , pointcollect_(0){}
struct CalcReportReqDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CalcReportReqDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CalcReportReqDefaultTypeInternal() {}
  union {
    CalcReportReq _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CalcReportReqDefaultTypeInternal _CalcReportReq_default_instance_;
PROTOBUF_CONSTEXPR CalcReportRet::CalcReportRet(
    ::_pbi::ConstantInitialized)
  : xxds_()
  , tasks_(){}
struct CalcReportRetDefaultTypeInternal {
  PROTOBUF_CONSTEXPR CalcReportRetDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~CalcReportRetDefaultTypeInternal() {}
  union {
    CalcReportRet _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 CalcReportRetDefaultTypeInternal _CalcReportRet_default_instance_;
PROTOBUF_CONSTEXPR Xxd::Xxd(
    ::_pbi::ConstantInitialized)
  : dt_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , lon_(0)
  , lat_(0)
  , height_(0){}
struct XxdDefaultTypeInternal {
  PROTOBUF_CONSTEXPR XxdDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~XxdDefaultTypeInternal() {}
  union {
    Xxd _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 XxdDefaultTypeInternal _Xxd_default_instance_;
PROTOBUF_CONSTEXPR Task::Task(
    ::_pbi::ConstantInitialized)
  : obss_()
  , start_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , end_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , startazi_(0)
  , endazi_(0)
  , startele_(0)
  , maxele_(0)
  , mindist_(0)
  , maxdist_(0){}
struct TaskDefaultTypeInternal {
  PROTOBUF_CONSTEXPR TaskDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~TaskDefaultTypeInternal() {}
  union {
    Task _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 TaskDefaultTypeInternal _Task_default_instance_;
PROTOBUF_CONSTEXPR Obs::Obs(
    ::_pbi::ConstantInitialized)
  : dt_(&::_pbi::fixed_address_empty_string, ::_pbi::ConstantInitialized{})
  , azi_(0)
  , ele_(0)
  , range_(0){}
struct ObsDefaultTypeInternal {
  PROTOBUF_CONSTEXPR ObsDefaultTypeInternal()
      : _instance(::_pbi::ConstantInitialized{}) {}
  ~ObsDefaultTypeInternal() {}
  union {
    Obs _instance;
  };
};
PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 ObsDefaultTypeInternal _Obs_default_instance_;
}  // namespace agi
}  // namespace protobuf
}  // namespace satllite
static ::_pb::Metadata file_level_metadata_mod_2dagi_2eproto[7];
static constexpr ::_pb::EnumDescriptor const** file_level_enum_descriptors_mod_2dagi_2eproto = nullptr;
static constexpr ::_pb::ServiceDescriptor const** file_level_service_descriptors_mod_2dagi_2eproto = nullptr;

const uint32_t TableStruct_mod_2dagi_2eproto::offsets[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, noradid_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, noradname_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, year_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, month_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, day_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, hour_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, minute_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, second_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, a_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, ee_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, i_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, raan_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, arc_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleReq, m_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleRet, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleRet, line0_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleRet, line1_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcTleRet, line2_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, startdatetime_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, enddatetime_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, latitude_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, longitude_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, altitude_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, slice_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, minazi_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, maxazi_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, minele_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, maxele_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, mindist_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, maxdist_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, pointslice_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, pointcollect_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, line0_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, line1_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportReq, line2_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportRet, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportRet, xxds_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::CalcReportRet, tasks_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Xxd, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Xxd, dt_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Xxd, lon_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Xxd, lat_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Xxd, height_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, start_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, end_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, startazi_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, endazi_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, startele_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, maxele_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, mindist_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, maxdist_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Task, obss_),
  ~0u,  // no _has_bits_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Obs, _internal_metadata_),
  ~0u,  // no _extensions_
  ~0u,  // no _oneof_case_
  ~0u,  // no _weak_field_map_
  ~0u,  // no _inlined_string_donated_
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Obs, dt_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Obs, azi_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Obs, ele_),
  PROTOBUF_FIELD_OFFSET(::satllite::protobuf::agi::Obs, range_),
};
static const ::_pbi::MigrationSchema schemas[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) = {
  { 0, -1, -1, sizeof(::satllite::protobuf::agi::CalcTleReq)},
  { 20, -1, -1, sizeof(::satllite::protobuf::agi::CalcTleRet)},
  { 29, -1, -1, sizeof(::satllite::protobuf::agi::CalcReportReq)},
  { 52, -1, -1, sizeof(::satllite::protobuf::agi::CalcReportRet)},
  { 60, -1, -1, sizeof(::satllite::protobuf::agi::Xxd)},
  { 70, -1, -1, sizeof(::satllite::protobuf::agi::Task)},
  { 85, -1, -1, sizeof(::satllite::protobuf::agi::Obs)},
};

static const ::_pb::Message* const file_default_instances[] = {
  &::satllite::protobuf::agi::_CalcTleReq_default_instance_._instance,
  &::satllite::protobuf::agi::_CalcTleRet_default_instance_._instance,
  &::satllite::protobuf::agi::_CalcReportReq_default_instance_._instance,
  &::satllite::protobuf::agi::_CalcReportRet_default_instance_._instance,
  &::satllite::protobuf::agi::_Xxd_default_instance_._instance,
  &::satllite::protobuf::agi::_Task_default_instance_._instance,
  &::satllite::protobuf::agi::_Obs_default_instance_._instance,
};

const char descriptor_table_protodef_mod_2dagi_2eproto[] PROTOBUF_SECTION_VARIABLE(protodesc_cold) =
  "\n\rmod-agi.proto\022\025satllite.protobuf.agi\"\320"
  "\001\n\nCalcTleReq\022\017\n\007noradID\030\001 \001(\005\022\021\n\tnoradN"
  "ame\030\002 \001(\t\022\014\n\004year\030\003 \001(\005\022\r\n\005month\030\004 \001(\005\022\013"
  "\n\003day\030\005 \001(\005\022\014\n\004hour\030\006 \001(\005\022\016\n\006minute\030\007 \001("
  "\005\022\016\n\006second\030\010 \001(\005\022\t\n\001a\030\t \001(\002\022\n\n\002ee\030\n \001(\002"
  "\022\t\n\001I\030\013 \001(\002\022\014\n\004raan\030\014 \001(\002\022\013\n\003arc\030\r \001(\002\022\t"
  "\n\001m\030\016 \001(\002\"9\n\nCalcTleRet\022\r\n\005line0\030\001 \001(\t\022\r"
  "\n\005line1\030\002 \001(\t\022\r\n\005line2\030\003 \001(\t\"\272\002\n\rCalcRep"
  "ortReq\022\025\n\rstartDateTime\030\001 \001(\t\022\023\n\013endDate"
  "Time\030\002 \001(\t\022\020\n\010latitude\030\003 \001(\001\022\021\n\tlongitud"
  "e\030\004 \001(\001\022\020\n\010altitude\030\005 \001(\001\022\r\n\005slice\030\006 \001(\001"
  "\022\016\n\006minAzi\030\007 \001(\001\022\016\n\006maxAzi\030\010 \001(\001\022\016\n\006minE"
  "le\030\t \001(\001\022\016\n\006maxEle\030\n \001(\001\022\017\n\007minDist\030\013 \001("
  "\001\022\017\n\007maxDist\030\014 \001(\001\022\022\n\npointSlice\030\r \001(\001\022\024"
  "\n\014pointCollect\030\016 \001(\005\022\r\n\005line0\030\017 \001(\t\022\r\n\005l"
  "ine1\030\020 \001(\t\022\r\n\005line2\030\021 \001(\t\"e\n\rCalcReportR"
  "et\022(\n\004xxds\030\001 \003(\0132\032.satllite.protobuf.agi"
  ".Xxd\022*\n\005tasks\030\002 \003(\0132\033.satllite.protobuf."
  "agi.Task\";\n\003Xxd\022\n\n\002dt\030\001 \001(\t\022\013\n\003lon\030\002 \001(\001"
  "\022\013\n\003lat\030\003 \001(\001\022\016\n\006height\030\004 \001(\001\"\262\001\n\004Task\022\r"
  "\n\005start\030\001 \001(\t\022\013\n\003end\030\002 \001(\t\022\020\n\010startAzi\030\003"
  " \001(\001\022\016\n\006endAzi\030\004 \001(\001\022\020\n\010startEle\030\005 \001(\001\022\016"
  "\n\006maxEle\030\006 \001(\001\022\017\n\007minDist\030\007 \001(\001\022\017\n\007maxDi"
  "st\030\010 \001(\001\022(\n\004obss\030\t \003(\0132\032.satllite.protob"
  "uf.agi.Obs\":\n\003Obs\022\n\n\002dt\030\001 \001(\t\022\013\n\003azi\030\002 \001"
  "(\001\022\013\n\003ele\030\003 \001(\001\022\r\n\005range\030\004 \001(\001B\014Z\n../pro"
  "togob\006proto3"
  ;
static ::_pbi::once_flag descriptor_table_mod_2dagi_2eproto_once;
const ::_pbi::DescriptorTable descriptor_table_mod_2dagi_2eproto = {
    false, false, 1052, descriptor_table_protodef_mod_2dagi_2eproto,
    "mod-agi.proto",
    &descriptor_table_mod_2dagi_2eproto_once, nullptr, 0, 7,
    schemas, file_default_instances, TableStruct_mod_2dagi_2eproto::offsets,
    file_level_metadata_mod_2dagi_2eproto, file_level_enum_descriptors_mod_2dagi_2eproto,
    file_level_service_descriptors_mod_2dagi_2eproto,
};
PROTOBUF_ATTRIBUTE_WEAK const ::_pbi::DescriptorTable* descriptor_table_mod_2dagi_2eproto_getter() {
  return &descriptor_table_mod_2dagi_2eproto;
}

// Force running AddDescriptors() at dynamic initialization time.
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::_pbi::AddDescriptorsRunner dynamic_init_dummy_mod_2dagi_2eproto(&descriptor_table_mod_2dagi_2eproto);
namespace satllite {
namespace protobuf {
namespace agi {

// ===================================================================

class CalcTleReq::_Internal {
 public:
};

CalcTleReq::CalcTleReq(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:satllite.protobuf.agi.CalcTleReq)
}
CalcTleReq::CalcTleReq(const CalcTleReq& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  noradname_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    noradname_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_noradname().empty()) {
    noradname_.Set(from._internal_noradname(), 
      GetArenaForAllocation());
  }
  ::memcpy(&noradid_, &from.noradid_,
    static_cast<size_t>(reinterpret_cast<char*>(&m_) -
    reinterpret_cast<char*>(&noradid_)) + sizeof(m_));
  // @@protoc_insertion_point(copy_constructor:satllite.protobuf.agi.CalcTleReq)
}

inline void CalcTleReq::SharedCtor() {
noradname_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  noradname_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&noradid_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&m_) -
    reinterpret_cast<char*>(&noradid_)) + sizeof(m_));
}

CalcTleReq::~CalcTleReq() {
  // @@protoc_insertion_point(destructor:satllite.protobuf.agi.CalcTleReq)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CalcTleReq::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  noradname_.Destroy();
}

void CalcTleReq::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CalcTleReq::Clear() {
// @@protoc_insertion_point(message_clear_start:satllite.protobuf.agi.CalcTleReq)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  noradname_.ClearToEmpty();
  ::memset(&noradid_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&m_) -
      reinterpret_cast<char*>(&noradid_)) + sizeof(m_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CalcTleReq::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // int32 noradID = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 8)) {
          noradid_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string noradName = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_noradname();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcTleReq.noradName"));
        } else
          goto handle_unusual;
        continue;
      // int32 year = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 24)) {
          year_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 month = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 32)) {
          month_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 day = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 40)) {
          day_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 hour = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 48)) {
          hour_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 minute = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 56)) {
          minute_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // int32 second = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 64)) {
          second_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // float a = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 77)) {
          a_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float ee = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 85)) {
          ee_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float I = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 93)) {
          i_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float raan = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 101)) {
          raan_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float arc = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 109)) {
          arc_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      // float m = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 117)) {
          m_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<float>(ptr);
          ptr += sizeof(float);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CalcTleReq::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:satllite.protobuf.agi.CalcTleReq)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // int32 noradID = 1;
  if (this->_internal_noradid() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(1, this->_internal_noradid(), target);
  }

  // string noradName = 2;
  if (!this->_internal_noradname().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_noradname().data(), static_cast<int>(this->_internal_noradname().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcTleReq.noradName");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_noradname(), target);
  }

  // int32 year = 3;
  if (this->_internal_year() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(3, this->_internal_year(), target);
  }

  // int32 month = 4;
  if (this->_internal_month() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(4, this->_internal_month(), target);
  }

  // int32 day = 5;
  if (this->_internal_day() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(5, this->_internal_day(), target);
  }

  // int32 hour = 6;
  if (this->_internal_hour() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(6, this->_internal_hour(), target);
  }

  // int32 minute = 7;
  if (this->_internal_minute() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(7, this->_internal_minute(), target);
  }

  // int32 second = 8;
  if (this->_internal_second() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(8, this->_internal_second(), target);
  }

  // float a = 9;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_a = this->_internal_a();
  uint32_t raw_a;
  memcpy(&raw_a, &tmp_a, sizeof(tmp_a));
  if (raw_a != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(9, this->_internal_a(), target);
  }

  // float ee = 10;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_ee = this->_internal_ee();
  uint32_t raw_ee;
  memcpy(&raw_ee, &tmp_ee, sizeof(tmp_ee));
  if (raw_ee != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(10, this->_internal_ee(), target);
  }

  // float I = 11;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_i = this->_internal_i();
  uint32_t raw_i;
  memcpy(&raw_i, &tmp_i, sizeof(tmp_i));
  if (raw_i != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(11, this->_internal_i(), target);
  }

  // float raan = 12;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_raan = this->_internal_raan();
  uint32_t raw_raan;
  memcpy(&raw_raan, &tmp_raan, sizeof(tmp_raan));
  if (raw_raan != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(12, this->_internal_raan(), target);
  }

  // float arc = 13;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_arc = this->_internal_arc();
  uint32_t raw_arc;
  memcpy(&raw_arc, &tmp_arc, sizeof(tmp_arc));
  if (raw_arc != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(13, this->_internal_arc(), target);
  }

  // float m = 14;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_m = this->_internal_m();
  uint32_t raw_m;
  memcpy(&raw_m, &tmp_m, sizeof(tmp_m));
  if (raw_m != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteFloatToArray(14, this->_internal_m(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:satllite.protobuf.agi.CalcTleReq)
  return target;
}

size_t CalcTleReq::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:satllite.protobuf.agi.CalcTleReq)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string noradName = 2;
  if (!this->_internal_noradname().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_noradname());
  }

  // int32 noradID = 1;
  if (this->_internal_noradid() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_noradid());
  }

  // int32 year = 3;
  if (this->_internal_year() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_year());
  }

  // int32 month = 4;
  if (this->_internal_month() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_month());
  }

  // int32 day = 5;
  if (this->_internal_day() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_day());
  }

  // int32 hour = 6;
  if (this->_internal_hour() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_hour());
  }

  // int32 minute = 7;
  if (this->_internal_minute() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_minute());
  }

  // int32 second = 8;
  if (this->_internal_second() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_second());
  }

  // float a = 9;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_a = this->_internal_a();
  uint32_t raw_a;
  memcpy(&raw_a, &tmp_a, sizeof(tmp_a));
  if (raw_a != 0) {
    total_size += 1 + 4;
  }

  // float ee = 10;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_ee = this->_internal_ee();
  uint32_t raw_ee;
  memcpy(&raw_ee, &tmp_ee, sizeof(tmp_ee));
  if (raw_ee != 0) {
    total_size += 1 + 4;
  }

  // float I = 11;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_i = this->_internal_i();
  uint32_t raw_i;
  memcpy(&raw_i, &tmp_i, sizeof(tmp_i));
  if (raw_i != 0) {
    total_size += 1 + 4;
  }

  // float raan = 12;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_raan = this->_internal_raan();
  uint32_t raw_raan;
  memcpy(&raw_raan, &tmp_raan, sizeof(tmp_raan));
  if (raw_raan != 0) {
    total_size += 1 + 4;
  }

  // float arc = 13;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_arc = this->_internal_arc();
  uint32_t raw_arc;
  memcpy(&raw_arc, &tmp_arc, sizeof(tmp_arc));
  if (raw_arc != 0) {
    total_size += 1 + 4;
  }

  // float m = 14;
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_m = this->_internal_m();
  uint32_t raw_m;
  memcpy(&raw_m, &tmp_m, sizeof(tmp_m));
  if (raw_m != 0) {
    total_size += 1 + 4;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CalcTleReq::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CalcTleReq::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CalcTleReq::GetClassData() const { return &_class_data_; }

void CalcTleReq::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CalcTleReq *>(to)->MergeFrom(
      static_cast<const CalcTleReq &>(from));
}


void CalcTleReq::MergeFrom(const CalcTleReq& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:satllite.protobuf.agi.CalcTleReq)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_noradname().empty()) {
    _internal_set_noradname(from._internal_noradname());
  }
  if (from._internal_noradid() != 0) {
    _internal_set_noradid(from._internal_noradid());
  }
  if (from._internal_year() != 0) {
    _internal_set_year(from._internal_year());
  }
  if (from._internal_month() != 0) {
    _internal_set_month(from._internal_month());
  }
  if (from._internal_day() != 0) {
    _internal_set_day(from._internal_day());
  }
  if (from._internal_hour() != 0) {
    _internal_set_hour(from._internal_hour());
  }
  if (from._internal_minute() != 0) {
    _internal_set_minute(from._internal_minute());
  }
  if (from._internal_second() != 0) {
    _internal_set_second(from._internal_second());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_a = from._internal_a();
  uint32_t raw_a;
  memcpy(&raw_a, &tmp_a, sizeof(tmp_a));
  if (raw_a != 0) {
    _internal_set_a(from._internal_a());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_ee = from._internal_ee();
  uint32_t raw_ee;
  memcpy(&raw_ee, &tmp_ee, sizeof(tmp_ee));
  if (raw_ee != 0) {
    _internal_set_ee(from._internal_ee());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_i = from._internal_i();
  uint32_t raw_i;
  memcpy(&raw_i, &tmp_i, sizeof(tmp_i));
  if (raw_i != 0) {
    _internal_set_i(from._internal_i());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_raan = from._internal_raan();
  uint32_t raw_raan;
  memcpy(&raw_raan, &tmp_raan, sizeof(tmp_raan));
  if (raw_raan != 0) {
    _internal_set_raan(from._internal_raan());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_arc = from._internal_arc();
  uint32_t raw_arc;
  memcpy(&raw_arc, &tmp_arc, sizeof(tmp_arc));
  if (raw_arc != 0) {
    _internal_set_arc(from._internal_arc());
  }
  static_assert(sizeof(uint32_t) == sizeof(float), "Code assumes uint32_t and float are the same size.");
  float tmp_m = from._internal_m();
  uint32_t raw_m;
  memcpy(&raw_m, &tmp_m, sizeof(tmp_m));
  if (raw_m != 0) {
    _internal_set_m(from._internal_m());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CalcTleReq::CopyFrom(const CalcTleReq& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:satllite.protobuf.agi.CalcTleReq)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CalcTleReq::IsInitialized() const {
  return true;
}

void CalcTleReq::InternalSwap(CalcTleReq* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &noradname_, lhs_arena,
      &other->noradname_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CalcTleReq, m_)
      + sizeof(CalcTleReq::m_)
      - PROTOBUF_FIELD_OFFSET(CalcTleReq, noradid_)>(
          reinterpret_cast<char*>(&noradid_),
          reinterpret_cast<char*>(&other->noradid_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CalcTleReq::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_mod_2dagi_2eproto_getter, &descriptor_table_mod_2dagi_2eproto_once,
      file_level_metadata_mod_2dagi_2eproto[0]);
}

// ===================================================================

class CalcTleRet::_Internal {
 public:
};

CalcTleRet::CalcTleRet(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:satllite.protobuf.agi.CalcTleRet)
}
CalcTleRet::CalcTleRet(const CalcTleRet& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  line0_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    line0_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_line0().empty()) {
    line0_.Set(from._internal_line0(), 
      GetArenaForAllocation());
  }
  line1_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    line1_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_line1().empty()) {
    line1_.Set(from._internal_line1(), 
      GetArenaForAllocation());
  }
  line2_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    line2_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_line2().empty()) {
    line2_.Set(from._internal_line2(), 
      GetArenaForAllocation());
  }
  // @@protoc_insertion_point(copy_constructor:satllite.protobuf.agi.CalcTleRet)
}

inline void CalcTleRet::SharedCtor() {
line0_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  line0_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
line1_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  line1_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
line2_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  line2_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
}

CalcTleRet::~CalcTleRet() {
  // @@protoc_insertion_point(destructor:satllite.protobuf.agi.CalcTleRet)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CalcTleRet::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  line0_.Destroy();
  line1_.Destroy();
  line2_.Destroy();
}

void CalcTleRet::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CalcTleRet::Clear() {
// @@protoc_insertion_point(message_clear_start:satllite.protobuf.agi.CalcTleRet)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  line0_.ClearToEmpty();
  line1_.ClearToEmpty();
  line2_.ClearToEmpty();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CalcTleRet::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string line0 = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_line0();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcTleRet.line0"));
        } else
          goto handle_unusual;
        continue;
      // string line1 = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_line1();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcTleRet.line1"));
        } else
          goto handle_unusual;
        continue;
      // string line2 = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 26)) {
          auto str = _internal_mutable_line2();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcTleRet.line2"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CalcTleRet::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:satllite.protobuf.agi.CalcTleRet)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string line0 = 1;
  if (!this->_internal_line0().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_line0().data(), static_cast<int>(this->_internal_line0().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcTleRet.line0");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_line0(), target);
  }

  // string line1 = 2;
  if (!this->_internal_line1().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_line1().data(), static_cast<int>(this->_internal_line1().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcTleRet.line1");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_line1(), target);
  }

  // string line2 = 3;
  if (!this->_internal_line2().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_line2().data(), static_cast<int>(this->_internal_line2().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcTleRet.line2");
    target = stream->WriteStringMaybeAliased(
        3, this->_internal_line2(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:satllite.protobuf.agi.CalcTleRet)
  return target;
}

size_t CalcTleRet::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:satllite.protobuf.agi.CalcTleRet)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string line0 = 1;
  if (!this->_internal_line0().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_line0());
  }

  // string line1 = 2;
  if (!this->_internal_line1().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_line1());
  }

  // string line2 = 3;
  if (!this->_internal_line2().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_line2());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CalcTleRet::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CalcTleRet::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CalcTleRet::GetClassData() const { return &_class_data_; }

void CalcTleRet::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CalcTleRet *>(to)->MergeFrom(
      static_cast<const CalcTleRet &>(from));
}


void CalcTleRet::MergeFrom(const CalcTleRet& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:satllite.protobuf.agi.CalcTleRet)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_line0().empty()) {
    _internal_set_line0(from._internal_line0());
  }
  if (!from._internal_line1().empty()) {
    _internal_set_line1(from._internal_line1());
  }
  if (!from._internal_line2().empty()) {
    _internal_set_line2(from._internal_line2());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CalcTleRet::CopyFrom(const CalcTleRet& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:satllite.protobuf.agi.CalcTleRet)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CalcTleRet::IsInitialized() const {
  return true;
}

void CalcTleRet::InternalSwap(CalcTleRet* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &line0_, lhs_arena,
      &other->line0_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &line1_, lhs_arena,
      &other->line1_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &line2_, lhs_arena,
      &other->line2_, rhs_arena
  );
}

::PROTOBUF_NAMESPACE_ID::Metadata CalcTleRet::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_mod_2dagi_2eproto_getter, &descriptor_table_mod_2dagi_2eproto_once,
      file_level_metadata_mod_2dagi_2eproto[1]);
}

// ===================================================================

class CalcReportReq::_Internal {
 public:
};

CalcReportReq::CalcReportReq(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:satllite.protobuf.agi.CalcReportReq)
}
CalcReportReq::CalcReportReq(const CalcReportReq& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  startdatetime_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    startdatetime_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_startdatetime().empty()) {
    startdatetime_.Set(from._internal_startdatetime(), 
      GetArenaForAllocation());
  }
  enddatetime_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    enddatetime_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_enddatetime().empty()) {
    enddatetime_.Set(from._internal_enddatetime(), 
      GetArenaForAllocation());
  }
  line0_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    line0_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_line0().empty()) {
    line0_.Set(from._internal_line0(), 
      GetArenaForAllocation());
  }
  line1_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    line1_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_line1().empty()) {
    line1_.Set(from._internal_line1(), 
      GetArenaForAllocation());
  }
  line2_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    line2_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_line2().empty()) {
    line2_.Set(from._internal_line2(), 
      GetArenaForAllocation());
  }
  ::memcpy(&latitude_, &from.latitude_,
    static_cast<size_t>(reinterpret_cast<char*>(&pointcollect_) -
    reinterpret_cast<char*>(&latitude_)) + sizeof(pointcollect_));
  // @@protoc_insertion_point(copy_constructor:satllite.protobuf.agi.CalcReportReq)
}

inline void CalcReportReq::SharedCtor() {
startdatetime_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  startdatetime_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
enddatetime_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  enddatetime_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
line0_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  line0_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
line1_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  line1_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
line2_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  line2_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&latitude_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&pointcollect_) -
    reinterpret_cast<char*>(&latitude_)) + sizeof(pointcollect_));
}

CalcReportReq::~CalcReportReq() {
  // @@protoc_insertion_point(destructor:satllite.protobuf.agi.CalcReportReq)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CalcReportReq::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  startdatetime_.Destroy();
  enddatetime_.Destroy();
  line0_.Destroy();
  line1_.Destroy();
  line2_.Destroy();
}

void CalcReportReq::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CalcReportReq::Clear() {
// @@protoc_insertion_point(message_clear_start:satllite.protobuf.agi.CalcReportReq)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  startdatetime_.ClearToEmpty();
  enddatetime_.ClearToEmpty();
  line0_.ClearToEmpty();
  line1_.ClearToEmpty();
  line2_.ClearToEmpty();
  ::memset(&latitude_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&pointcollect_) -
      reinterpret_cast<char*>(&latitude_)) + sizeof(pointcollect_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CalcReportReq::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string startDateTime = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_startdatetime();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcReportReq.startDateTime"));
        } else
          goto handle_unusual;
        continue;
      // string endDateTime = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_enddatetime();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcReportReq.endDateTime"));
        } else
          goto handle_unusual;
        continue;
      // double latitude = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 25)) {
          latitude_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double longitude = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 33)) {
          longitude_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double altitude = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 41)) {
          altitude_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double slice = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 49)) {
          slice_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double minAzi = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 57)) {
          minazi_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double maxAzi = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 65)) {
          maxazi_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double minEle = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 73)) {
          minele_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double maxEle = 10;
      case 10:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 81)) {
          maxele_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double minDist = 11;
      case 11:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 89)) {
          mindist_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double maxDist = 12;
      case 12:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 97)) {
          maxdist_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double pointSlice = 13;
      case 13:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 105)) {
          pointslice_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // int32 pointCollect = 14;
      case 14:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 112)) {
          pointcollect_ = ::PROTOBUF_NAMESPACE_ID::internal::ReadVarint32(&ptr);
          CHK_(ptr);
        } else
          goto handle_unusual;
        continue;
      // string line0 = 15;
      case 15:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 122)) {
          auto str = _internal_mutable_line0();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcReportReq.line0"));
        } else
          goto handle_unusual;
        continue;
      // string line1 = 16;
      case 16:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 130)) {
          auto str = _internal_mutable_line1();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcReportReq.line1"));
        } else
          goto handle_unusual;
        continue;
      // string line2 = 17;
      case 17:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 138)) {
          auto str = _internal_mutable_line2();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.CalcReportReq.line2"));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CalcReportReq::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:satllite.protobuf.agi.CalcReportReq)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string startDateTime = 1;
  if (!this->_internal_startdatetime().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_startdatetime().data(), static_cast<int>(this->_internal_startdatetime().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcReportReq.startDateTime");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_startdatetime(), target);
  }

  // string endDateTime = 2;
  if (!this->_internal_enddatetime().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_enddatetime().data(), static_cast<int>(this->_internal_enddatetime().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcReportReq.endDateTime");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_enddatetime(), target);
  }

  // double latitude = 3;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_latitude = this->_internal_latitude();
  uint64_t raw_latitude;
  memcpy(&raw_latitude, &tmp_latitude, sizeof(tmp_latitude));
  if (raw_latitude != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(3, this->_internal_latitude(), target);
  }

  // double longitude = 4;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_longitude = this->_internal_longitude();
  uint64_t raw_longitude;
  memcpy(&raw_longitude, &tmp_longitude, sizeof(tmp_longitude));
  if (raw_longitude != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(4, this->_internal_longitude(), target);
  }

  // double altitude = 5;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_altitude = this->_internal_altitude();
  uint64_t raw_altitude;
  memcpy(&raw_altitude, &tmp_altitude, sizeof(tmp_altitude));
  if (raw_altitude != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(5, this->_internal_altitude(), target);
  }

  // double slice = 6;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_slice = this->_internal_slice();
  uint64_t raw_slice;
  memcpy(&raw_slice, &tmp_slice, sizeof(tmp_slice));
  if (raw_slice != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(6, this->_internal_slice(), target);
  }

  // double minAzi = 7;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_minazi = this->_internal_minazi();
  uint64_t raw_minazi;
  memcpy(&raw_minazi, &tmp_minazi, sizeof(tmp_minazi));
  if (raw_minazi != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(7, this->_internal_minazi(), target);
  }

  // double maxAzi = 8;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxazi = this->_internal_maxazi();
  uint64_t raw_maxazi;
  memcpy(&raw_maxazi, &tmp_maxazi, sizeof(tmp_maxazi));
  if (raw_maxazi != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(8, this->_internal_maxazi(), target);
  }

  // double minEle = 9;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_minele = this->_internal_minele();
  uint64_t raw_minele;
  memcpy(&raw_minele, &tmp_minele, sizeof(tmp_minele));
  if (raw_minele != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(9, this->_internal_minele(), target);
  }

  // double maxEle = 10;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxele = this->_internal_maxele();
  uint64_t raw_maxele;
  memcpy(&raw_maxele, &tmp_maxele, sizeof(tmp_maxele));
  if (raw_maxele != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(10, this->_internal_maxele(), target);
  }

  // double minDist = 11;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_mindist = this->_internal_mindist();
  uint64_t raw_mindist;
  memcpy(&raw_mindist, &tmp_mindist, sizeof(tmp_mindist));
  if (raw_mindist != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(11, this->_internal_mindist(), target);
  }

  // double maxDist = 12;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxdist = this->_internal_maxdist();
  uint64_t raw_maxdist;
  memcpy(&raw_maxdist, &tmp_maxdist, sizeof(tmp_maxdist));
  if (raw_maxdist != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(12, this->_internal_maxdist(), target);
  }

  // double pointSlice = 13;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_pointslice = this->_internal_pointslice();
  uint64_t raw_pointslice;
  memcpy(&raw_pointslice, &tmp_pointslice, sizeof(tmp_pointslice));
  if (raw_pointslice != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(13, this->_internal_pointslice(), target);
  }

  // int32 pointCollect = 14;
  if (this->_internal_pointcollect() != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteInt32ToArray(14, this->_internal_pointcollect(), target);
  }

  // string line0 = 15;
  if (!this->_internal_line0().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_line0().data(), static_cast<int>(this->_internal_line0().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcReportReq.line0");
    target = stream->WriteStringMaybeAliased(
        15, this->_internal_line0(), target);
  }

  // string line1 = 16;
  if (!this->_internal_line1().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_line1().data(), static_cast<int>(this->_internal_line1().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcReportReq.line1");
    target = stream->WriteStringMaybeAliased(
        16, this->_internal_line1(), target);
  }

  // string line2 = 17;
  if (!this->_internal_line2().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_line2().data(), static_cast<int>(this->_internal_line2().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.CalcReportReq.line2");
    target = stream->WriteStringMaybeAliased(
        17, this->_internal_line2(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:satllite.protobuf.agi.CalcReportReq)
  return target;
}

size_t CalcReportReq::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:satllite.protobuf.agi.CalcReportReq)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string startDateTime = 1;
  if (!this->_internal_startdatetime().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_startdatetime());
  }

  // string endDateTime = 2;
  if (!this->_internal_enddatetime().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_enddatetime());
  }

  // string line0 = 15;
  if (!this->_internal_line0().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_line0());
  }

  // string line1 = 16;
  if (!this->_internal_line1().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_line1());
  }

  // string line2 = 17;
  if (!this->_internal_line2().empty()) {
    total_size += 2 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_line2());
  }

  // double latitude = 3;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_latitude = this->_internal_latitude();
  uint64_t raw_latitude;
  memcpy(&raw_latitude, &tmp_latitude, sizeof(tmp_latitude));
  if (raw_latitude != 0) {
    total_size += 1 + 8;
  }

  // double longitude = 4;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_longitude = this->_internal_longitude();
  uint64_t raw_longitude;
  memcpy(&raw_longitude, &tmp_longitude, sizeof(tmp_longitude));
  if (raw_longitude != 0) {
    total_size += 1 + 8;
  }

  // double altitude = 5;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_altitude = this->_internal_altitude();
  uint64_t raw_altitude;
  memcpy(&raw_altitude, &tmp_altitude, sizeof(tmp_altitude));
  if (raw_altitude != 0) {
    total_size += 1 + 8;
  }

  // double slice = 6;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_slice = this->_internal_slice();
  uint64_t raw_slice;
  memcpy(&raw_slice, &tmp_slice, sizeof(tmp_slice));
  if (raw_slice != 0) {
    total_size += 1 + 8;
  }

  // double minAzi = 7;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_minazi = this->_internal_minazi();
  uint64_t raw_minazi;
  memcpy(&raw_minazi, &tmp_minazi, sizeof(tmp_minazi));
  if (raw_minazi != 0) {
    total_size += 1 + 8;
  }

  // double maxAzi = 8;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxazi = this->_internal_maxazi();
  uint64_t raw_maxazi;
  memcpy(&raw_maxazi, &tmp_maxazi, sizeof(tmp_maxazi));
  if (raw_maxazi != 0) {
    total_size += 1 + 8;
  }

  // double minEle = 9;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_minele = this->_internal_minele();
  uint64_t raw_minele;
  memcpy(&raw_minele, &tmp_minele, sizeof(tmp_minele));
  if (raw_minele != 0) {
    total_size += 1 + 8;
  }

  // double maxEle = 10;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxele = this->_internal_maxele();
  uint64_t raw_maxele;
  memcpy(&raw_maxele, &tmp_maxele, sizeof(tmp_maxele));
  if (raw_maxele != 0) {
    total_size += 1 + 8;
  }

  // double minDist = 11;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_mindist = this->_internal_mindist();
  uint64_t raw_mindist;
  memcpy(&raw_mindist, &tmp_mindist, sizeof(tmp_mindist));
  if (raw_mindist != 0) {
    total_size += 1 + 8;
  }

  // double maxDist = 12;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxdist = this->_internal_maxdist();
  uint64_t raw_maxdist;
  memcpy(&raw_maxdist, &tmp_maxdist, sizeof(tmp_maxdist));
  if (raw_maxdist != 0) {
    total_size += 1 + 8;
  }

  // double pointSlice = 13;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_pointslice = this->_internal_pointslice();
  uint64_t raw_pointslice;
  memcpy(&raw_pointslice, &tmp_pointslice, sizeof(tmp_pointslice));
  if (raw_pointslice != 0) {
    total_size += 1 + 8;
  }

  // int32 pointCollect = 14;
  if (this->_internal_pointcollect() != 0) {
    total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(this->_internal_pointcollect());
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CalcReportReq::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CalcReportReq::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CalcReportReq::GetClassData() const { return &_class_data_; }

void CalcReportReq::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CalcReportReq *>(to)->MergeFrom(
      static_cast<const CalcReportReq &>(from));
}


void CalcReportReq::MergeFrom(const CalcReportReq& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:satllite.protobuf.agi.CalcReportReq)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_startdatetime().empty()) {
    _internal_set_startdatetime(from._internal_startdatetime());
  }
  if (!from._internal_enddatetime().empty()) {
    _internal_set_enddatetime(from._internal_enddatetime());
  }
  if (!from._internal_line0().empty()) {
    _internal_set_line0(from._internal_line0());
  }
  if (!from._internal_line1().empty()) {
    _internal_set_line1(from._internal_line1());
  }
  if (!from._internal_line2().empty()) {
    _internal_set_line2(from._internal_line2());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_latitude = from._internal_latitude();
  uint64_t raw_latitude;
  memcpy(&raw_latitude, &tmp_latitude, sizeof(tmp_latitude));
  if (raw_latitude != 0) {
    _internal_set_latitude(from._internal_latitude());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_longitude = from._internal_longitude();
  uint64_t raw_longitude;
  memcpy(&raw_longitude, &tmp_longitude, sizeof(tmp_longitude));
  if (raw_longitude != 0) {
    _internal_set_longitude(from._internal_longitude());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_altitude = from._internal_altitude();
  uint64_t raw_altitude;
  memcpy(&raw_altitude, &tmp_altitude, sizeof(tmp_altitude));
  if (raw_altitude != 0) {
    _internal_set_altitude(from._internal_altitude());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_slice = from._internal_slice();
  uint64_t raw_slice;
  memcpy(&raw_slice, &tmp_slice, sizeof(tmp_slice));
  if (raw_slice != 0) {
    _internal_set_slice(from._internal_slice());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_minazi = from._internal_minazi();
  uint64_t raw_minazi;
  memcpy(&raw_minazi, &tmp_minazi, sizeof(tmp_minazi));
  if (raw_minazi != 0) {
    _internal_set_minazi(from._internal_minazi());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxazi = from._internal_maxazi();
  uint64_t raw_maxazi;
  memcpy(&raw_maxazi, &tmp_maxazi, sizeof(tmp_maxazi));
  if (raw_maxazi != 0) {
    _internal_set_maxazi(from._internal_maxazi());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_minele = from._internal_minele();
  uint64_t raw_minele;
  memcpy(&raw_minele, &tmp_minele, sizeof(tmp_minele));
  if (raw_minele != 0) {
    _internal_set_minele(from._internal_minele());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxele = from._internal_maxele();
  uint64_t raw_maxele;
  memcpy(&raw_maxele, &tmp_maxele, sizeof(tmp_maxele));
  if (raw_maxele != 0) {
    _internal_set_maxele(from._internal_maxele());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_mindist = from._internal_mindist();
  uint64_t raw_mindist;
  memcpy(&raw_mindist, &tmp_mindist, sizeof(tmp_mindist));
  if (raw_mindist != 0) {
    _internal_set_mindist(from._internal_mindist());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxdist = from._internal_maxdist();
  uint64_t raw_maxdist;
  memcpy(&raw_maxdist, &tmp_maxdist, sizeof(tmp_maxdist));
  if (raw_maxdist != 0) {
    _internal_set_maxdist(from._internal_maxdist());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_pointslice = from._internal_pointslice();
  uint64_t raw_pointslice;
  memcpy(&raw_pointslice, &tmp_pointslice, sizeof(tmp_pointslice));
  if (raw_pointslice != 0) {
    _internal_set_pointslice(from._internal_pointslice());
  }
  if (from._internal_pointcollect() != 0) {
    _internal_set_pointcollect(from._internal_pointcollect());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CalcReportReq::CopyFrom(const CalcReportReq& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:satllite.protobuf.agi.CalcReportReq)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CalcReportReq::IsInitialized() const {
  return true;
}

void CalcReportReq::InternalSwap(CalcReportReq* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &startdatetime_, lhs_arena,
      &other->startdatetime_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &enddatetime_, lhs_arena,
      &other->enddatetime_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &line0_, lhs_arena,
      &other->line0_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &line1_, lhs_arena,
      &other->line1_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &line2_, lhs_arena,
      &other->line2_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(CalcReportReq, pointcollect_)
      + sizeof(CalcReportReq::pointcollect_)
      - PROTOBUF_FIELD_OFFSET(CalcReportReq, latitude_)>(
          reinterpret_cast<char*>(&latitude_),
          reinterpret_cast<char*>(&other->latitude_));
}

::PROTOBUF_NAMESPACE_ID::Metadata CalcReportReq::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_mod_2dagi_2eproto_getter, &descriptor_table_mod_2dagi_2eproto_once,
      file_level_metadata_mod_2dagi_2eproto[2]);
}

// ===================================================================

class CalcReportRet::_Internal {
 public:
};

CalcReportRet::CalcReportRet(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  xxds_(arena),
  tasks_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:satllite.protobuf.agi.CalcReportRet)
}
CalcReportRet::CalcReportRet(const CalcReportRet& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      xxds_(from.xxds_),
      tasks_(from.tasks_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  // @@protoc_insertion_point(copy_constructor:satllite.protobuf.agi.CalcReportRet)
}

inline void CalcReportRet::SharedCtor() {
}

CalcReportRet::~CalcReportRet() {
  // @@protoc_insertion_point(destructor:satllite.protobuf.agi.CalcReportRet)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void CalcReportRet::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
}

void CalcReportRet::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void CalcReportRet::Clear() {
// @@protoc_insertion_point(message_clear_start:satllite.protobuf.agi.CalcReportRet)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  xxds_.Clear();
  tasks_.Clear();
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* CalcReportRet::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // repeated .satllite.protobuf.agi.Xxd xxds = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_xxds(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<10>(ptr));
        } else
          goto handle_unusual;
        continue;
      // repeated .satllite.protobuf.agi.Task tasks = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_tasks(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<18>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* CalcReportRet::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:satllite.protobuf.agi.CalcReportRet)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // repeated .satllite.protobuf.agi.Xxd xxds = 1;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_xxds_size()); i < n; i++) {
    const auto& repfield = this->_internal_xxds(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(1, repfield, repfield.GetCachedSize(), target, stream);
  }

  // repeated .satllite.protobuf.agi.Task tasks = 2;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_tasks_size()); i < n; i++) {
    const auto& repfield = this->_internal_tasks(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(2, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:satllite.protobuf.agi.CalcReportRet)
  return target;
}

size_t CalcReportRet::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:satllite.protobuf.agi.CalcReportRet)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .satllite.protobuf.agi.Xxd xxds = 1;
  total_size += 1UL * this->_internal_xxds_size();
  for (const auto& msg : this->xxds_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // repeated .satllite.protobuf.agi.Task tasks = 2;
  total_size += 1UL * this->_internal_tasks_size();
  for (const auto& msg : this->tasks_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData CalcReportRet::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    CalcReportRet::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*CalcReportRet::GetClassData() const { return &_class_data_; }

void CalcReportRet::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<CalcReportRet *>(to)->MergeFrom(
      static_cast<const CalcReportRet &>(from));
}


void CalcReportRet::MergeFrom(const CalcReportRet& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:satllite.protobuf.agi.CalcReportRet)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  xxds_.MergeFrom(from.xxds_);
  tasks_.MergeFrom(from.tasks_);
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void CalcReportRet::CopyFrom(const CalcReportRet& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:satllite.protobuf.agi.CalcReportRet)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool CalcReportRet::IsInitialized() const {
  return true;
}

void CalcReportRet::InternalSwap(CalcReportRet* other) {
  using std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  xxds_.InternalSwap(&other->xxds_);
  tasks_.InternalSwap(&other->tasks_);
}

::PROTOBUF_NAMESPACE_ID::Metadata CalcReportRet::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_mod_2dagi_2eproto_getter, &descriptor_table_mod_2dagi_2eproto_once,
      file_level_metadata_mod_2dagi_2eproto[3]);
}

// ===================================================================

class Xxd::_Internal {
 public:
};

Xxd::Xxd(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:satllite.protobuf.agi.Xxd)
}
Xxd::Xxd(const Xxd& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  dt_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    dt_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_dt().empty()) {
    dt_.Set(from._internal_dt(), 
      GetArenaForAllocation());
  }
  ::memcpy(&lon_, &from.lon_,
    static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&lon_)) + sizeof(height_));
  // @@protoc_insertion_point(copy_constructor:satllite.protobuf.agi.Xxd)
}

inline void Xxd::SharedCtor() {
dt_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  dt_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&lon_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&height_) -
    reinterpret_cast<char*>(&lon_)) + sizeof(height_));
}

Xxd::~Xxd() {
  // @@protoc_insertion_point(destructor:satllite.protobuf.agi.Xxd)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Xxd::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  dt_.Destroy();
}

void Xxd::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Xxd::Clear() {
// @@protoc_insertion_point(message_clear_start:satllite.protobuf.agi.Xxd)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  dt_.ClearToEmpty();
  ::memset(&lon_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&height_) -
      reinterpret_cast<char*>(&lon_)) + sizeof(height_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Xxd::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string dt = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_dt();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.Xxd.dt"));
        } else
          goto handle_unusual;
        continue;
      // double lon = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 17)) {
          lon_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double lat = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 25)) {
          lat_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double height = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 33)) {
          height_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Xxd::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:satllite.protobuf.agi.Xxd)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string dt = 1;
  if (!this->_internal_dt().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_dt().data(), static_cast<int>(this->_internal_dt().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.Xxd.dt");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_dt(), target);
  }

  // double lon = 2;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_lon = this->_internal_lon();
  uint64_t raw_lon;
  memcpy(&raw_lon, &tmp_lon, sizeof(tmp_lon));
  if (raw_lon != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(2, this->_internal_lon(), target);
  }

  // double lat = 3;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_lat = this->_internal_lat();
  uint64_t raw_lat;
  memcpy(&raw_lat, &tmp_lat, sizeof(tmp_lat));
  if (raw_lat != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(3, this->_internal_lat(), target);
  }

  // double height = 4;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_height = this->_internal_height();
  uint64_t raw_height;
  memcpy(&raw_height, &tmp_height, sizeof(tmp_height));
  if (raw_height != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(4, this->_internal_height(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:satllite.protobuf.agi.Xxd)
  return target;
}

size_t Xxd::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:satllite.protobuf.agi.Xxd)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string dt = 1;
  if (!this->_internal_dt().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_dt());
  }

  // double lon = 2;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_lon = this->_internal_lon();
  uint64_t raw_lon;
  memcpy(&raw_lon, &tmp_lon, sizeof(tmp_lon));
  if (raw_lon != 0) {
    total_size += 1 + 8;
  }

  // double lat = 3;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_lat = this->_internal_lat();
  uint64_t raw_lat;
  memcpy(&raw_lat, &tmp_lat, sizeof(tmp_lat));
  if (raw_lat != 0) {
    total_size += 1 + 8;
  }

  // double height = 4;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_height = this->_internal_height();
  uint64_t raw_height;
  memcpy(&raw_height, &tmp_height, sizeof(tmp_height));
  if (raw_height != 0) {
    total_size += 1 + 8;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Xxd::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Xxd::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Xxd::GetClassData() const { return &_class_data_; }

void Xxd::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Xxd *>(to)->MergeFrom(
      static_cast<const Xxd &>(from));
}


void Xxd::MergeFrom(const Xxd& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:satllite.protobuf.agi.Xxd)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_dt().empty()) {
    _internal_set_dt(from._internal_dt());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_lon = from._internal_lon();
  uint64_t raw_lon;
  memcpy(&raw_lon, &tmp_lon, sizeof(tmp_lon));
  if (raw_lon != 0) {
    _internal_set_lon(from._internal_lon());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_lat = from._internal_lat();
  uint64_t raw_lat;
  memcpy(&raw_lat, &tmp_lat, sizeof(tmp_lat));
  if (raw_lat != 0) {
    _internal_set_lat(from._internal_lat());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_height = from._internal_height();
  uint64_t raw_height;
  memcpy(&raw_height, &tmp_height, sizeof(tmp_height));
  if (raw_height != 0) {
    _internal_set_height(from._internal_height());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Xxd::CopyFrom(const Xxd& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:satllite.protobuf.agi.Xxd)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Xxd::IsInitialized() const {
  return true;
}

void Xxd::InternalSwap(Xxd* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &dt_, lhs_arena,
      &other->dt_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Xxd, height_)
      + sizeof(Xxd::height_)
      - PROTOBUF_FIELD_OFFSET(Xxd, lon_)>(
          reinterpret_cast<char*>(&lon_),
          reinterpret_cast<char*>(&other->lon_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Xxd::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_mod_2dagi_2eproto_getter, &descriptor_table_mod_2dagi_2eproto_once,
      file_level_metadata_mod_2dagi_2eproto[4]);
}

// ===================================================================

class Task::_Internal {
 public:
};

Task::Task(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned),
  obss_(arena) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:satllite.protobuf.agi.Task)
}
Task::Task(const Task& from)
  : ::PROTOBUF_NAMESPACE_ID::Message(),
      obss_(from.obss_) {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  start_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    start_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_start().empty()) {
    start_.Set(from._internal_start(), 
      GetArenaForAllocation());
  }
  end_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    end_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_end().empty()) {
    end_.Set(from._internal_end(), 
      GetArenaForAllocation());
  }
  ::memcpy(&startazi_, &from.startazi_,
    static_cast<size_t>(reinterpret_cast<char*>(&maxdist_) -
    reinterpret_cast<char*>(&startazi_)) + sizeof(maxdist_));
  // @@protoc_insertion_point(copy_constructor:satllite.protobuf.agi.Task)
}

inline void Task::SharedCtor() {
start_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  start_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
end_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  end_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&startazi_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&maxdist_) -
    reinterpret_cast<char*>(&startazi_)) + sizeof(maxdist_));
}

Task::~Task() {
  // @@protoc_insertion_point(destructor:satllite.protobuf.agi.Task)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Task::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  start_.Destroy();
  end_.Destroy();
}

void Task::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Task::Clear() {
// @@protoc_insertion_point(message_clear_start:satllite.protobuf.agi.Task)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  obss_.Clear();
  start_.ClearToEmpty();
  end_.ClearToEmpty();
  ::memset(&startazi_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&maxdist_) -
      reinterpret_cast<char*>(&startazi_)) + sizeof(maxdist_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Task::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string start = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_start();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.Task.start"));
        } else
          goto handle_unusual;
        continue;
      // string end = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 18)) {
          auto str = _internal_mutable_end();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.Task.end"));
        } else
          goto handle_unusual;
        continue;
      // double startAzi = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 25)) {
          startazi_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double endAzi = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 33)) {
          endazi_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double startEle = 5;
      case 5:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 41)) {
          startele_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double maxEle = 6;
      case 6:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 49)) {
          maxele_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double minDist = 7;
      case 7:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 57)) {
          mindist_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double maxDist = 8;
      case 8:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 65)) {
          maxdist_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // repeated .satllite.protobuf.agi.Obs obss = 9;
      case 9:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 74)) {
          ptr -= 1;
          do {
            ptr += 1;
            ptr = ctx->ParseMessage(_internal_add_obss(), ptr);
            CHK_(ptr);
            if (!ctx->DataAvailable(ptr)) break;
          } while (::PROTOBUF_NAMESPACE_ID::internal::ExpectTag<74>(ptr));
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Task::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:satllite.protobuf.agi.Task)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string start = 1;
  if (!this->_internal_start().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_start().data(), static_cast<int>(this->_internal_start().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.Task.start");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_start(), target);
  }

  // string end = 2;
  if (!this->_internal_end().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_end().data(), static_cast<int>(this->_internal_end().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.Task.end");
    target = stream->WriteStringMaybeAliased(
        2, this->_internal_end(), target);
  }

  // double startAzi = 3;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_startazi = this->_internal_startazi();
  uint64_t raw_startazi;
  memcpy(&raw_startazi, &tmp_startazi, sizeof(tmp_startazi));
  if (raw_startazi != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(3, this->_internal_startazi(), target);
  }

  // double endAzi = 4;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_endazi = this->_internal_endazi();
  uint64_t raw_endazi;
  memcpy(&raw_endazi, &tmp_endazi, sizeof(tmp_endazi));
  if (raw_endazi != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(4, this->_internal_endazi(), target);
  }

  // double startEle = 5;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_startele = this->_internal_startele();
  uint64_t raw_startele;
  memcpy(&raw_startele, &tmp_startele, sizeof(tmp_startele));
  if (raw_startele != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(5, this->_internal_startele(), target);
  }

  // double maxEle = 6;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxele = this->_internal_maxele();
  uint64_t raw_maxele;
  memcpy(&raw_maxele, &tmp_maxele, sizeof(tmp_maxele));
  if (raw_maxele != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(6, this->_internal_maxele(), target);
  }

  // double minDist = 7;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_mindist = this->_internal_mindist();
  uint64_t raw_mindist;
  memcpy(&raw_mindist, &tmp_mindist, sizeof(tmp_mindist));
  if (raw_mindist != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(7, this->_internal_mindist(), target);
  }

  // double maxDist = 8;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxdist = this->_internal_maxdist();
  uint64_t raw_maxdist;
  memcpy(&raw_maxdist, &tmp_maxdist, sizeof(tmp_maxdist));
  if (raw_maxdist != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(8, this->_internal_maxdist(), target);
  }

  // repeated .satllite.protobuf.agi.Obs obss = 9;
  for (unsigned i = 0,
      n = static_cast<unsigned>(this->_internal_obss_size()); i < n; i++) {
    const auto& repfield = this->_internal_obss(i);
    target = ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::
        InternalWriteMessage(9, repfield, repfield.GetCachedSize(), target, stream);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:satllite.protobuf.agi.Task)
  return target;
}

size_t Task::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:satllite.protobuf.agi.Task)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // repeated .satllite.protobuf.agi.Obs obss = 9;
  total_size += 1UL * this->_internal_obss_size();
  for (const auto& msg : this->obss_) {
    total_size +=
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::MessageSize(msg);
  }

  // string start = 1;
  if (!this->_internal_start().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_start());
  }

  // string end = 2;
  if (!this->_internal_end().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_end());
  }

  // double startAzi = 3;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_startazi = this->_internal_startazi();
  uint64_t raw_startazi;
  memcpy(&raw_startazi, &tmp_startazi, sizeof(tmp_startazi));
  if (raw_startazi != 0) {
    total_size += 1 + 8;
  }

  // double endAzi = 4;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_endazi = this->_internal_endazi();
  uint64_t raw_endazi;
  memcpy(&raw_endazi, &tmp_endazi, sizeof(tmp_endazi));
  if (raw_endazi != 0) {
    total_size += 1 + 8;
  }

  // double startEle = 5;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_startele = this->_internal_startele();
  uint64_t raw_startele;
  memcpy(&raw_startele, &tmp_startele, sizeof(tmp_startele));
  if (raw_startele != 0) {
    total_size += 1 + 8;
  }

  // double maxEle = 6;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxele = this->_internal_maxele();
  uint64_t raw_maxele;
  memcpy(&raw_maxele, &tmp_maxele, sizeof(tmp_maxele));
  if (raw_maxele != 0) {
    total_size += 1 + 8;
  }

  // double minDist = 7;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_mindist = this->_internal_mindist();
  uint64_t raw_mindist;
  memcpy(&raw_mindist, &tmp_mindist, sizeof(tmp_mindist));
  if (raw_mindist != 0) {
    total_size += 1 + 8;
  }

  // double maxDist = 8;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxdist = this->_internal_maxdist();
  uint64_t raw_maxdist;
  memcpy(&raw_maxdist, &tmp_maxdist, sizeof(tmp_maxdist));
  if (raw_maxdist != 0) {
    total_size += 1 + 8;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Task::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Task::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Task::GetClassData() const { return &_class_data_; }

void Task::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Task *>(to)->MergeFrom(
      static_cast<const Task &>(from));
}


void Task::MergeFrom(const Task& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:satllite.protobuf.agi.Task)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  obss_.MergeFrom(from.obss_);
  if (!from._internal_start().empty()) {
    _internal_set_start(from._internal_start());
  }
  if (!from._internal_end().empty()) {
    _internal_set_end(from._internal_end());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_startazi = from._internal_startazi();
  uint64_t raw_startazi;
  memcpy(&raw_startazi, &tmp_startazi, sizeof(tmp_startazi));
  if (raw_startazi != 0) {
    _internal_set_startazi(from._internal_startazi());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_endazi = from._internal_endazi();
  uint64_t raw_endazi;
  memcpy(&raw_endazi, &tmp_endazi, sizeof(tmp_endazi));
  if (raw_endazi != 0) {
    _internal_set_endazi(from._internal_endazi());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_startele = from._internal_startele();
  uint64_t raw_startele;
  memcpy(&raw_startele, &tmp_startele, sizeof(tmp_startele));
  if (raw_startele != 0) {
    _internal_set_startele(from._internal_startele());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxele = from._internal_maxele();
  uint64_t raw_maxele;
  memcpy(&raw_maxele, &tmp_maxele, sizeof(tmp_maxele));
  if (raw_maxele != 0) {
    _internal_set_maxele(from._internal_maxele());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_mindist = from._internal_mindist();
  uint64_t raw_mindist;
  memcpy(&raw_mindist, &tmp_mindist, sizeof(tmp_mindist));
  if (raw_mindist != 0) {
    _internal_set_mindist(from._internal_mindist());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_maxdist = from._internal_maxdist();
  uint64_t raw_maxdist;
  memcpy(&raw_maxdist, &tmp_maxdist, sizeof(tmp_maxdist));
  if (raw_maxdist != 0) {
    _internal_set_maxdist(from._internal_maxdist());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Task::CopyFrom(const Task& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:satllite.protobuf.agi.Task)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Task::IsInitialized() const {
  return true;
}

void Task::InternalSwap(Task* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  obss_.InternalSwap(&other->obss_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &start_, lhs_arena,
      &other->start_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &end_, lhs_arena,
      &other->end_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Task, maxdist_)
      + sizeof(Task::maxdist_)
      - PROTOBUF_FIELD_OFFSET(Task, startazi_)>(
          reinterpret_cast<char*>(&startazi_),
          reinterpret_cast<char*>(&other->startazi_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Task::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_mod_2dagi_2eproto_getter, &descriptor_table_mod_2dagi_2eproto_once,
      file_level_metadata_mod_2dagi_2eproto[5]);
}

// ===================================================================

class Obs::_Internal {
 public:
};

Obs::Obs(::PROTOBUF_NAMESPACE_ID::Arena* arena,
                         bool is_message_owned)
  : ::PROTOBUF_NAMESPACE_ID::Message(arena, is_message_owned) {
  SharedCtor();
  // @@protoc_insertion_point(arena_constructor:satllite.protobuf.agi.Obs)
}
Obs::Obs(const Obs& from)
  : ::PROTOBUF_NAMESPACE_ID::Message() {
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
  dt_.InitDefault();
  #ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
    dt_.Set("", GetArenaForAllocation());
  #endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
  if (!from._internal_dt().empty()) {
    dt_.Set(from._internal_dt(), 
      GetArenaForAllocation());
  }
  ::memcpy(&azi_, &from.azi_,
    static_cast<size_t>(reinterpret_cast<char*>(&range_) -
    reinterpret_cast<char*>(&azi_)) + sizeof(range_));
  // @@protoc_insertion_point(copy_constructor:satllite.protobuf.agi.Obs)
}

inline void Obs::SharedCtor() {
dt_.InitDefault();
#ifdef PROTOBUF_FORCE_COPY_DEFAULT_STRING
  dt_.Set("", GetArenaForAllocation());
#endif // PROTOBUF_FORCE_COPY_DEFAULT_STRING
::memset(reinterpret_cast<char*>(this) + static_cast<size_t>(
    reinterpret_cast<char*>(&azi_) - reinterpret_cast<char*>(this)),
    0, static_cast<size_t>(reinterpret_cast<char*>(&range_) -
    reinterpret_cast<char*>(&azi_)) + sizeof(range_));
}

Obs::~Obs() {
  // @@protoc_insertion_point(destructor:satllite.protobuf.agi.Obs)
  if (auto *arena = _internal_metadata_.DeleteReturnArena<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>()) {
  (void)arena;
    return;
  }
  SharedDtor();
}

inline void Obs::SharedDtor() {
  GOOGLE_DCHECK(GetArenaForAllocation() == nullptr);
  dt_.Destroy();
}

void Obs::SetCachedSize(int size) const {
  _cached_size_.Set(size);
}

void Obs::Clear() {
// @@protoc_insertion_point(message_clear_start:satllite.protobuf.agi.Obs)
  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  dt_.ClearToEmpty();
  ::memset(&azi_, 0, static_cast<size_t>(
      reinterpret_cast<char*>(&range_) -
      reinterpret_cast<char*>(&azi_)) + sizeof(range_));
  _internal_metadata_.Clear<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>();
}

const char* Obs::_InternalParse(const char* ptr, ::_pbi::ParseContext* ctx) {
#define CHK_(x) if (PROTOBUF_PREDICT_FALSE(!(x))) goto failure
  while (!ctx->Done(&ptr)) {
    uint32_t tag;
    ptr = ::_pbi::ReadTag(ptr, &tag);
    switch (tag >> 3) {
      // string dt = 1;
      case 1:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 10)) {
          auto str = _internal_mutable_dt();
          ptr = ::_pbi::InlineGreedyStringParser(str, ptr, ctx);
          CHK_(ptr);
          CHK_(::_pbi::VerifyUTF8(str, "satllite.protobuf.agi.Obs.dt"));
        } else
          goto handle_unusual;
        continue;
      // double azi = 2;
      case 2:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 17)) {
          azi_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double ele = 3;
      case 3:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 25)) {
          ele_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      // double range = 4;
      case 4:
        if (PROTOBUF_PREDICT_TRUE(static_cast<uint8_t>(tag) == 33)) {
          range_ = ::PROTOBUF_NAMESPACE_ID::internal::UnalignedLoad<double>(ptr);
          ptr += sizeof(double);
        } else
          goto handle_unusual;
        continue;
      default:
        goto handle_unusual;
    }  // switch
  handle_unusual:
    if ((tag == 0) || ((tag & 7) == 4)) {
      CHK_(ptr);
      ctx->SetLastTag(tag);
      goto message_done;
    }
    ptr = UnknownFieldParse(
        tag,
        _internal_metadata_.mutable_unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(),
        ptr, ctx);
    CHK_(ptr != nullptr);
  }  // while
message_done:
  return ptr;
failure:
  ptr = nullptr;
  goto message_done;
#undef CHK_
}

uint8_t* Obs::_InternalSerialize(
    uint8_t* target, ::PROTOBUF_NAMESPACE_ID::io::EpsCopyOutputStream* stream) const {
  // @@protoc_insertion_point(serialize_to_array_start:satllite.protobuf.agi.Obs)
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  // string dt = 1;
  if (!this->_internal_dt().empty()) {
    ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::VerifyUtf8String(
      this->_internal_dt().data(), static_cast<int>(this->_internal_dt().length()),
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::SERIALIZE,
      "satllite.protobuf.agi.Obs.dt");
    target = stream->WriteStringMaybeAliased(
        1, this->_internal_dt(), target);
  }

  // double azi = 2;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_azi = this->_internal_azi();
  uint64_t raw_azi;
  memcpy(&raw_azi, &tmp_azi, sizeof(tmp_azi));
  if (raw_azi != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(2, this->_internal_azi(), target);
  }

  // double ele = 3;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_ele = this->_internal_ele();
  uint64_t raw_ele;
  memcpy(&raw_ele, &tmp_ele, sizeof(tmp_ele));
  if (raw_ele != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(3, this->_internal_ele(), target);
  }

  // double range = 4;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_range = this->_internal_range();
  uint64_t raw_range;
  memcpy(&raw_range, &tmp_range, sizeof(tmp_range));
  if (raw_range != 0) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteDoubleToArray(4, this->_internal_range(), target);
  }

  if (PROTOBUF_PREDICT_FALSE(_internal_metadata_.have_unknown_fields())) {
    target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
        _internal_metadata_.unknown_fields<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(::PROTOBUF_NAMESPACE_ID::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:satllite.protobuf.agi.Obs)
  return target;
}

size_t Obs::ByteSizeLong() const {
// @@protoc_insertion_point(message_byte_size_start:satllite.protobuf.agi.Obs)
  size_t total_size = 0;

  uint32_t cached_has_bits = 0;
  // Prevent compiler warnings about cached_has_bits being unused
  (void) cached_has_bits;

  // string dt = 1;
  if (!this->_internal_dt().empty()) {
    total_size += 1 +
      ::PROTOBUF_NAMESPACE_ID::internal::WireFormatLite::StringSize(
        this->_internal_dt());
  }

  // double azi = 2;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_azi = this->_internal_azi();
  uint64_t raw_azi;
  memcpy(&raw_azi, &tmp_azi, sizeof(tmp_azi));
  if (raw_azi != 0) {
    total_size += 1 + 8;
  }

  // double ele = 3;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_ele = this->_internal_ele();
  uint64_t raw_ele;
  memcpy(&raw_ele, &tmp_ele, sizeof(tmp_ele));
  if (raw_ele != 0) {
    total_size += 1 + 8;
  }

  // double range = 4;
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_range = this->_internal_range();
  uint64_t raw_range;
  memcpy(&raw_range, &tmp_range, sizeof(tmp_range));
  if (raw_range != 0) {
    total_size += 1 + 8;
  }

  return MaybeComputeUnknownFieldsSize(total_size, &_cached_size_);
}

const ::PROTOBUF_NAMESPACE_ID::Message::ClassData Obs::_class_data_ = {
    ::PROTOBUF_NAMESPACE_ID::Message::CopyWithSizeCheck,
    Obs::MergeImpl
};
const ::PROTOBUF_NAMESPACE_ID::Message::ClassData*Obs::GetClassData() const { return &_class_data_; }

void Obs::MergeImpl(::PROTOBUF_NAMESPACE_ID::Message* to,
                      const ::PROTOBUF_NAMESPACE_ID::Message& from) {
  static_cast<Obs *>(to)->MergeFrom(
      static_cast<const Obs &>(from));
}


void Obs::MergeFrom(const Obs& from) {
// @@protoc_insertion_point(class_specific_merge_from_start:satllite.protobuf.agi.Obs)
  GOOGLE_DCHECK_NE(&from, this);
  uint32_t cached_has_bits = 0;
  (void) cached_has_bits;

  if (!from._internal_dt().empty()) {
    _internal_set_dt(from._internal_dt());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_azi = from._internal_azi();
  uint64_t raw_azi;
  memcpy(&raw_azi, &tmp_azi, sizeof(tmp_azi));
  if (raw_azi != 0) {
    _internal_set_azi(from._internal_azi());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_ele = from._internal_ele();
  uint64_t raw_ele;
  memcpy(&raw_ele, &tmp_ele, sizeof(tmp_ele));
  if (raw_ele != 0) {
    _internal_set_ele(from._internal_ele());
  }
  static_assert(sizeof(uint64_t) == sizeof(double), "Code assumes uint64_t and double are the same size.");
  double tmp_range = from._internal_range();
  uint64_t raw_range;
  memcpy(&raw_range, &tmp_range, sizeof(tmp_range));
  if (raw_range != 0) {
    _internal_set_range(from._internal_range());
  }
  _internal_metadata_.MergeFrom<::PROTOBUF_NAMESPACE_ID::UnknownFieldSet>(from._internal_metadata_);
}

void Obs::CopyFrom(const Obs& from) {
// @@protoc_insertion_point(class_specific_copy_from_start:satllite.protobuf.agi.Obs)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}

bool Obs::IsInitialized() const {
  return true;
}

void Obs::InternalSwap(Obs* other) {
  using std::swap;
  auto* lhs_arena = GetArenaForAllocation();
  auto* rhs_arena = other->GetArenaForAllocation();
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  ::PROTOBUF_NAMESPACE_ID::internal::ArenaStringPtr::InternalSwap(
      &dt_, lhs_arena,
      &other->dt_, rhs_arena
  );
  ::PROTOBUF_NAMESPACE_ID::internal::memswap<
      PROTOBUF_FIELD_OFFSET(Obs, range_)
      + sizeof(Obs::range_)
      - PROTOBUF_FIELD_OFFSET(Obs, azi_)>(
          reinterpret_cast<char*>(&azi_),
          reinterpret_cast<char*>(&other->azi_));
}

::PROTOBUF_NAMESPACE_ID::Metadata Obs::GetMetadata() const {
  return ::_pbi::AssignDescriptors(
      &descriptor_table_mod_2dagi_2eproto_getter, &descriptor_table_mod_2dagi_2eproto_once,
      file_level_metadata_mod_2dagi_2eproto[6]);
}

// @@protoc_insertion_point(namespace_scope)
}  // namespace agi
}  // namespace protobuf
}  // namespace satllite
PROTOBUF_NAMESPACE_OPEN
template<> PROTOBUF_NOINLINE ::satllite::protobuf::agi::CalcTleReq*
Arena::CreateMaybeMessage< ::satllite::protobuf::agi::CalcTleReq >(Arena* arena) {
  return Arena::CreateMessageInternal< ::satllite::protobuf::agi::CalcTleReq >(arena);
}
template<> PROTOBUF_NOINLINE ::satllite::protobuf::agi::CalcTleRet*
Arena::CreateMaybeMessage< ::satllite::protobuf::agi::CalcTleRet >(Arena* arena) {
  return Arena::CreateMessageInternal< ::satllite::protobuf::agi::CalcTleRet >(arena);
}
template<> PROTOBUF_NOINLINE ::satllite::protobuf::agi::CalcReportReq*
Arena::CreateMaybeMessage< ::satllite::protobuf::agi::CalcReportReq >(Arena* arena) {
  return Arena::CreateMessageInternal< ::satllite::protobuf::agi::CalcReportReq >(arena);
}
template<> PROTOBUF_NOINLINE ::satllite::protobuf::agi::CalcReportRet*
Arena::CreateMaybeMessage< ::satllite::protobuf::agi::CalcReportRet >(Arena* arena) {
  return Arena::CreateMessageInternal< ::satllite::protobuf::agi::CalcReportRet >(arena);
}
template<> PROTOBUF_NOINLINE ::satllite::protobuf::agi::Xxd*
Arena::CreateMaybeMessage< ::satllite::protobuf::agi::Xxd >(Arena* arena) {
  return Arena::CreateMessageInternal< ::satllite::protobuf::agi::Xxd >(arena);
}
template<> PROTOBUF_NOINLINE ::satllite::protobuf::agi::Task*
Arena::CreateMaybeMessage< ::satllite::protobuf::agi::Task >(Arena* arena) {
  return Arena::CreateMessageInternal< ::satllite::protobuf::agi::Task >(arena);
}
template<> PROTOBUF_NOINLINE ::satllite::protobuf::agi::Obs*
Arena::CreateMaybeMessage< ::satllite::protobuf::agi::Obs >(Arena* arena) {
  return Arena::CreateMessageInternal< ::satllite::protobuf::agi::Obs >(arena);
}
PROTOBUF_NAMESPACE_CLOSE

// @@protoc_insertion_point(global_scope)
#include <google/protobuf/port_undef.inc>
