// Generated by the protocol buffer compiler.  DO NOT EDIT!
// NO CHECKED-IN PROTOBUF GENCODE
// source: lib/config/layout.proto
// Protobuf C++ Version: 7.36.0

#include "lib/config/layout.pb.h"

#include <algorithm>
#include <type_traits>
#include "google/protobuf/io/coded_stream.h"
#include "google/protobuf/generated_message_tctable_impl.h"
#include "google/protobuf/internal_visibility.h"
#include "google/protobuf/extension_set.h"
#include "google/protobuf/generated_message_util.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)

// Must be included last.
#include "google/protobuf/port_def.inc"
PROTOBUF_PRAGMA_INIT_SEG
namespace _pb = ::google::protobuf;
namespace _pbi = ::google::protobuf::internal;
namespace _fl = ::google::protobuf::internal::field_layout;
#ifdef PROTOBUF_MESSAGE_GLOBALS
namespace {
PROTOBUF_CONSTINIT ::google::protobuf::internal::ReflectionData
    file_reflection_data[] = {
        // ::SectorListProto
        {&::_pbi::kDescriptorMethods, &::descriptor_table_lib_2fconfig_2flayout_2eproto, /* tracker*/ nullptr,},
        // ::LayoutProto_LayoutdataProto
        {&::_pbi::kDescriptorMethods, &::descriptor_table_lib_2fconfig_2flayout_2eproto, /* tracker*/ nullptr,},
        // ::LayoutProto
        {&::_pbi::kDescriptorMethods, &::descriptor_table_lib_2fconfig_2flayout_2eproto, /* tracker*/ nullptr,},
};
}  // namespace
#endif
class SectorListProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<SectorListProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_._has_bits_);
};

constexpr SectorListProto::ParseTableT_ SectorListProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_._has_bits_),
      0, // no _extensions_
      4, 24,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967280,  // skipmap
      offsetof(ParseTableT_, field_entries),
      4,  // num_field_entries
      0,  // num_aux_entries
      offsetof(ParseTableT_, field_names),  // no aux_entries
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::SectorListProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      // optional int32 skew = 4 [default = 1, json_name = "skew", (.help) = "apply this skew between sectors"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SectorListProto, _impl_.skew_), 3>(),
       {32, 3, 0,
        PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.skew_)}},
      // repeated int32 sector = 1 [json_name = "sector", (.help) = "sector ID"];
      {::_pbi::TcParser::FastV32R1,
       {8, 0, 0,
        PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.sector_)}},
      // optional int32 start_sector = 2 [json_name = "startSector", (.help) = "first sector of a continuous run"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SectorListProto, _impl_.start_sector_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.start_sector_)}},
      // optional int32 count = 3 [json_name = "count", (.help) = "number of sectors in a continuous run"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(SectorListProto, _impl_.count_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.count_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated int32 sector = 1 [json_name = "sector", (.help) = "sector ID"];
      {PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.sector_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kInt32)},
      // optional int32 start_sector = 2 [json_name = "startSector", (.help) = "first sector of a continuous run"];
      {PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.start_sector_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 count = 3 [json_name = "count", (.help) = "number of sectors in a continuous run"];
      {PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.count_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 skew = 4 [default = 1, json_name = "skew", (.help) = "apply this skew between sectors"];
      {PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.skew_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
    }},
    // no aux_entries
    {{
    }},
  };
}


inline constexpr SectorListProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : sector_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::SectorListProto,
            PROTOBUF_FIELD_OFFSET(::SectorListProto, _impl_.sector_)>()
         }
        ,
        start_sector_{0},
        count_{0},
        skew_{1} {}

template <typename>
constexpr SectorListProto::SectorListProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL SectorListProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) SectorListProto(arena);
}
constexpr auto SectorListProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(SectorListProto), alignof(SectorListProto));
}
constexpr auto SectorListProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &SectorListProto::MergeImpl,
          Super_::GetNewImpl<SectorListProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &SectorListProto::SharedDtor,
          Super_::GetClearImpl<SectorListProto>(), &SectorListProto::ByteSizeLong,
              &SectorListProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[0],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_lib_2fconfig_2flayout_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct SectorListProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr SectorListProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 SectorListProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(SectorListProto::InternalGenerateClassData_(
            _default, &SectorListProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<SectorListProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~SectorListProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) SectorListProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<SectorListProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(SectorListProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST SectorListProtoGlobalsTypeInternal SectorListProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* SectorListProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return SectorListProto_globals_.GetClassData();
#else
  return SectorListProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class LayoutProto_LayoutdataProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<LayoutProto_LayoutdataProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_._has_bits_);
};

constexpr LayoutProto_LayoutdataProto::ParseTableT_ LayoutProto_LayoutdataProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_._has_bits_),
      0, // no _extensions_
      6, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967232,  // skipmap
      offsetof(ParseTableT_, field_entries),
      6,  // num_field_entries
      2,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::LayoutProto_LayoutdataProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // optional int32 track = 1 [json_name = "track", (.help) = "if present, this format only applies to this logical track"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LayoutProto_LayoutdataProto, _impl_.track_), 2>(),
       {8, 2, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.track_)}},
      // optional int32 side = 2 [json_name = "side", (.help) = "if present, this format only applies to this logical side"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LayoutProto_LayoutdataProto, _impl_.side_), 3>(),
       {16, 3, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.side_)}},
      // optional int32 sector_size = 3 [default = 512, json_name = "sectorSize", (.help) = "number of bytes per sector"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LayoutProto_LayoutdataProto, _impl_.sector_size_), 5>(),
       {24, 5, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.sector_size_)}},
      // optional .SectorListProto physical = 4 [json_name = "physical", (.help) = "physical order of sectors on disk"];
      {::_pbi::TcParser::FastMtS1,
       {34, 0, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.physical_)}},
      // optional int32 up_to_track = 5 [json_name = "upToTrack", (.help) = "if present, forms a range with track"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LayoutProto_LayoutdataProto, _impl_.up_to_track_), 4>(),
       {40, 4, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.up_to_track_)}},
      // optional .SectorListProto filesystem = 6 [json_name = "filesystem", (.help) = "logical order of sectors in filesystem"];
      {::_pbi::TcParser::FastMtS1,
       {50, 1, 1,
        PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.filesystem_)}},
      {::_pbi::TcParser::MiniParse, {}},
    }}, {{
      65535, 65535
    }}, {{
      // optional int32 track = 1 [json_name = "track", (.help) = "if present, this format only applies to this logical track"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.track_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 side = 2 [json_name = "side", (.help) = "if present, this format only applies to this logical side"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.side_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 sector_size = 3 [default = 512, json_name = "sectorSize", (.help) = "number of bytes per sector"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.sector_size_), _Internal::kHasBitsOffset + 5, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional .SectorListProto physical = 4 [json_name = "physical", (.help) = "physical order of sectors on disk"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.physical_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional int32 up_to_track = 5 [json_name = "upToTrack", (.help) = "if present, forms a range with track"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.up_to_track_), _Internal::kHasBitsOffset + 4, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional .SectorListProto filesystem = 6 [json_name = "filesystem", (.help) = "logical order of sectors in filesystem"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.filesystem_), _Internal::kHasBitsOffset + 1, 1, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::SectorListProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::SectorListProto_globals_},
        #endif
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::SectorListProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::SectorListProto_globals_},
        #endif
    }},
    {{
    }},
  };
}


inline constexpr LayoutProto_LayoutdataProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : physical_{nullptr},
        filesystem_{nullptr},
        track_{0},
        side_{0},
        up_to_track_{0},
        sector_size_{512} {}

template <typename>
constexpr LayoutProto_LayoutdataProto::LayoutProto_LayoutdataProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LayoutProto_LayoutdataProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LayoutProto_LayoutdataProto(arena);
}
constexpr auto LayoutProto_LayoutdataProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LayoutProto_LayoutdataProto), alignof(LayoutProto_LayoutdataProto));
}
constexpr auto LayoutProto_LayoutdataProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LayoutProto_LayoutdataProto::MergeImpl,
          Super_::GetNewImpl<LayoutProto_LayoutdataProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LayoutProto_LayoutdataProto::SharedDtor,
          Super_::GetClearImpl<LayoutProto_LayoutdataProto>(), &LayoutProto_LayoutdataProto::ByteSizeLong,
              &LayoutProto_LayoutdataProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[1],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_lib_2fconfig_2flayout_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LayoutProto_LayoutdataProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LayoutProto_LayoutdataProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LayoutProto_LayoutdataProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LayoutProto_LayoutdataProto::InternalGenerateClassData_(
            _default, &LayoutProto_LayoutdataProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LayoutProto_LayoutdataProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LayoutProto_LayoutdataProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LayoutProto_LayoutdataProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LayoutProto_LayoutdataProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST LayoutProto_LayoutdataProtoGlobalsTypeInternal LayoutProto_LayoutdataProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* LayoutProto_LayoutdataProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return LayoutProto_LayoutdataProto_globals_.GetClassData();
#else
  return LayoutProto_LayoutdataProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
class LayoutProto::_Internal {
 public:
  using HasBits = decltype(::std::declval<LayoutProto>()._impl_._has_bits_);
  static constexpr ::int32_t kHasBitsOffset =
      8 * PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_._has_bits_);
};

constexpr LayoutProto::ParseTableT_ LayoutProto::InternalGenerateParseTable_(const ::_pbi::ClassData* class_data) {
  return ParseTableT_{
    {
      PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_._has_bits_),
      0, // no _extensions_
      7, 56,  // max_field_number, fast_idx_mask
      offsetof(ParseTableT_, field_lookup_table),
      4294967168,  // skipmap
      offsetof(ParseTableT_, field_entries),
      7,  // num_field_entries
      4,  // num_aux_entries
      offsetof(ParseTableT_, aux_entries),
      class_data,
      nullptr,  // post_loop_handler
      ::_pbi::TcParser::MpUnknownFields,  // fallback
      #ifdef PROTOBUF_PREFETCH_PARSE_TABLE
      ::_pbi::TcParser::GetTable<::LayoutProto>(),  // to_prefetch
      #endif  // PROTOBUF_PREFETCH_PARSE_TABLE
    }, {{
      {::_pbi::TcParser::MiniParse, {}},
      // repeated .LayoutProto.LayoutdataProto layoutdata = 1 [json_name = "layoutdata", (.help) = "per-track layout information (repeatable)"];
      {::_pbi::TcParser::FastMtR1,
       {10, 0, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.layoutdata_)}},
      // optional int32 tracks = 2 [default = 0, json_name = "tracks", (.help) = "number of tracks in image"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LayoutProto, _impl_.tracks_), 1>(),
       {16, 1, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.tracks_)}},
      // optional int32 sides = 3 [default = 0, json_name = "sides", (.help) = "number of sides in image"];
      {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(LayoutProto, _impl_.sides_), 2>(),
       {24, 2, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.sides_)}},
      // optional .LayoutProto.Order filesystem_track_order = 4 [default = CHS, json_name = "filesystemTrackOrder", (.help) = "the order of sectors in the filesystem"];
      {::_pbi::TcParser::FastEr0S1,
       {32, 5, 3,
        PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.filesystem_track_order_)}},
      // optional .LayoutProto.Order image_track_order = 5 [default = CHS, json_name = "imageTrackOrder", (.help) = "the order of sectors in disk images"];
      {::_pbi::TcParser::FastEr0S1,
       {40, 6, 3,
        PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.image_track_order_)}},
      // optional bool swap_sides = 6 [default = false, json_name = "swapSides", (.help) = "the sides are inverted on this disk"];
      {::_pbi::TcParser::SingularVarintNoZag1<bool, offsetof(LayoutProto, _impl_.swap_sides_), 3>(),
       {48, 3, 0,
        PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.swap_sides_)}},
      // optional .FormatType format_type = 7 [default = FORMATTYPE_UNKNOWN, json_name = "formatType", (.help) = "Format type of image"];
      {::_pbi::TcParser::FastEr0S1,
       {56, 4, 2,
        PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.format_type_)}},
    }}, {{
      65535, 65535
    }}, {{
      // repeated .LayoutProto.LayoutdataProto layoutdata = 1 [json_name = "layoutdata", (.help) = "per-track layout information (repeatable)"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.layoutdata_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcRepeated | ::_fl::kMessage | ::_fl::kTvTable)},
      // optional int32 tracks = 2 [default = 0, json_name = "tracks", (.help) = "number of tracks in image"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.tracks_), _Internal::kHasBitsOffset + 1, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional int32 sides = 3 [default = 0, json_name = "sides", (.help) = "number of sides in image"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.sides_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)},
      // optional .LayoutProto.Order filesystem_track_order = 4 [default = CHS, json_name = "filesystemTrackOrder", (.help) = "the order of sectors in the filesystem"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.filesystem_track_order_), _Internal::kHasBitsOffset + 5, 1, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional .LayoutProto.Order image_track_order = 5 [default = CHS, json_name = "imageTrackOrder", (.help) = "the order of sectors in disk images"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.image_track_order_), _Internal::kHasBitsOffset + 6, 2, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
      // optional bool swap_sides = 6 [default = false, json_name = "swapSides", (.help) = "the sides are inverted on this disk"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.swap_sides_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)},
      // optional .FormatType format_type = 7 [default = FORMATTYPE_UNKNOWN, json_name = "formatType", (.help) = "Format type of image"];
      {PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.format_type_), _Internal::kHasBitsOffset + 4, 3, (0 | ::_fl::kFcOptional | ::_fl::kEnumRange)},
    }},
    {{
        #ifndef PROTOBUF_MESSAGE_GLOBALS
        {::_pbi::TcParser::GetTable<::LayoutProto_LayoutdataProto>()},
        #else
        {::_pbi::FieldAuxMessageGlobals(), &::LayoutProto_LayoutdataProto_globals_},
        #endif
        {0, 3},
        {0, 3},
        {0, 2},
    }},
    {{
    }},
  };
}


inline constexpr LayoutProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    ::_pbi::ConstantInitialized) noexcept
      : layoutdata_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::LayoutProto,
            PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.layoutdata_)>()
         }
        ,
        tracks_{0},
        sides_{0},
        swap_sides_{false},
        format_type_{static_cast< ::FormatType >(0)},
        filesystem_track_order_{static_cast< ::LayoutProto_Order >(1)},
        image_track_order_{static_cast< ::LayoutProto_Order >(1)} {}

template <typename>
constexpr LayoutProto::LayoutProto(::_pbi::ConstantInitialized,
                       const ::_pbi::ClassData* PROTOBUF_NONNULL class_data)
    : Super_(
#if defined(PROTOBUF_CUSTOM_VTABLE)
          class_data
#endif  // PROTOBUF_CUSTOM_VTABLE
          ),
      _impl_(internal_visibility(), ::_pbi::ConstantInitialized()) {
}
inline void* PROTOBUF_NONNULL LayoutProto::PlacementNew_(
    const void* PROTOBUF_NONNULL, void* PROTOBUF_NONNULL mem,
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena) {
  return ::new (mem) LayoutProto(arena);
}
constexpr auto LayoutProto::InternalNewImpl_() {
  return ::google::protobuf::internal::MessageCreator::CopyInit(sizeof(LayoutProto), alignof(LayoutProto));
}
constexpr auto LayoutProto::InternalGenerateClassData_(
    const MessageLite& prototype,
    const ::google::protobuf::internal::TcParseTableBase* tc_table) {
  return ::google::protobuf::internal::ClassDataFull{
      ::google::protobuf::internal::ClassData{
          &prototype,
#ifndef PROTOBUF_MESSAGE_GLOBALS
          &_table_.header,
#else
          tc_table,
#endif
          nullptr,  // IsInitialized
          &LayoutProto::MergeImpl,
          Super_::GetNewImpl<LayoutProto>(),
#if defined(PROTOBUF_CUSTOM_VTABLE)
          &LayoutProto::SharedDtor,
          Super_::GetClearImpl<LayoutProto>(), &LayoutProto::ByteSizeLong,
              &LayoutProto::_InternalSerialize,
#endif  // PROTOBUF_CUSTOM_VTABLE
          PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_._cached_size_),
          false,
      },
#ifdef PROTOBUF_MESSAGE_GLOBALS
      &file_reflection_data[2],
#else   // !PROTOBUF_MESSAGE_GLOBALS
      &::_pbi::kDescriptorMethods,
      &descriptor_table_lib_2fconfig_2flayout_2eproto,
      nullptr,  // tracker
#endif  // PROTOBUF_MESSAGE_GLOBALS
  };
}
struct LayoutProtoGlobalsTypeInternal : ::_pbi::MessageGlobalsBase {
  constexpr LayoutProtoGlobalsTypeInternal()
      :
#ifndef PROTOBUF_MESSAGE_GLOBALS
        _default(::_pbi::ConstantInitialized{},
                 LayoutProto_class_data_.base())
#else   // !PROTOBUF_MESSAGE_GLOBALS
        MessageGlobalsBase(LayoutProto::InternalGenerateClassData_(
            _default, &LayoutProto_globals_._table.header)),
        _default(::_pbi::ConstantInitialized{}, GetClassData()),
        _table(::_pbi::PrivateAccess::GenerateParseTable<LayoutProto>(
            GetClassData()))
#endif  // PROTOBUF_MESSAGE_GLOBALS
  {
  }
  ~LayoutProtoGlobalsTypeInternal() {}
  union {
    alignas(::_pbi::kMaxMessageAlignment) LayoutProto _default;
  };
#ifdef PROTOBUF_MESSAGE_GLOBALS
  decltype(::_pbi::PrivateAccess::GenerateParseTable<LayoutProto>(
      ::std::declval<const ::_pbi::ClassData*>())) _table;
#endif
};
#ifdef PROTOBUF_MESSAGE_GLOBALS
static_assert(PROTOBUF_FIELD_OFFSET(LayoutProtoGlobalsTypeInternal, _default) ==
              ::_pbi::MessageGlobalsBase::OffsetToDefault());
#endif  // PROTOBUF_MESSAGE_GLOBALS

PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT
    PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 PROTOBUF_MESSAGE_GLOBALS_CONST LayoutProtoGlobalsTypeInternal LayoutProto_globals_
        PROTOBUF_MESSAGE_GLOBALS_SECTION(.data.rel.ro);
#if defined(PROTOBUF_CUSTOM_VTABLE)
namespace {
const ::_pbi::ClassData* LayoutProto_get_class_data() {
#ifdef PROTOBUF_MESSAGE_GLOBALS
  return LayoutProto_globals_.GetClassData();
#else
  return LayoutProto_class_data_.base();
#endif  // PROTOBUF_MESSAGE_GLOBALS
}
}  // namespace
#endif  // PROTOBUF_CUSTOM_VTABLE
static const ::_pb::EnumDescriptor* PROTOBUF_NONNULL
    file_level_enum_descriptors_lib_2fconfig_2flayout_2eproto[1];
static constexpr const ::_pb::ServiceDescriptor* PROTOBUF_NONNULL* PROTOBUF_NULLABLE
    file_level_service_descriptors_lib_2fconfig_2flayout_2eproto = nullptr;
const ::uint32_t
    TableStruct_lib_2fconfig_2flayout_2eproto::offsets[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
        protodesc_cold) = {
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::SectorListProto, _impl_._has_bits_),
        7, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::SectorListProto, _impl_.sector_),
        PROTOBUF_FIELD_OFFSET(::SectorListProto, _impl_.start_sector_),
        PROTOBUF_FIELD_OFFSET(::SectorListProto, _impl_.count_),
        PROTOBUF_FIELD_OFFSET(::SectorListProto, _impl_.skew_),
        0,
        1,
        2,
        3,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::LayoutProto_LayoutdataProto, _impl_._has_bits_),
        9, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::LayoutProto_LayoutdataProto, _impl_.track_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto_LayoutdataProto, _impl_.up_to_track_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto_LayoutdataProto, _impl_.side_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto_LayoutdataProto, _impl_.sector_size_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto_LayoutdataProto, _impl_.physical_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto_LayoutdataProto, _impl_.filesystem_),
        2,
        4,
        3,
        5,
        0,
        1,
        0x081, // bitmap
        PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_._has_bits_),
        10, // hasbit index offset
        PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.layoutdata_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.tracks_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.sides_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.filesystem_track_order_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.image_track_order_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.swap_sides_),
        PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.format_type_),
        0,
        1,
        2,
        5,
        6,
        3,
        4,
};

static const ::_pbi::MigrationSchema
    schemas[] ABSL_ATTRIBUTE_SECTION_VARIABLE(protodesc_cold) = {
        {0, sizeof(::SectorListProto)},
        {11, sizeof(::LayoutProto_LayoutdataProto)},
        {26, sizeof(::LayoutProto)},
};
static const ::_pbi::MessageGlobalsBase* PROTOBUF_NONNULL const
    file_message_globals[] = {
        &::SectorListProto_globals_,
        &::LayoutProto_LayoutdataProto_globals_,
        &::LayoutProto_globals_,
};
const char descriptor_table_protodef_lib_2fconfig_2flayout_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE(
    protodesc_cold) = {
    "\n\027lib/config/layout.proto\032\027lib/config/co"
    "mmon.proto\032\026lib/external/fl2.proto\"\376\001\n\017S"
    "ectorListProto\022%\n\006sector\030\001 \003(\005B\r\202\265\030\tsect"
    "or IDR\006sector\022G\n\014start_sector\030\002 \001(\005B$\202\265\030"
    " first sector of a continuous runR\013start"
    "Sector\022\?\n\005count\030\003 \001(\005B)\202\265\030%number of sec"
    "tors in a continuous runR\005count\022:\n\004skew\030"
    "\004 \001(\005:\0011B#\202\265\030\037apply this skew between se"
    "ctorsR\004skew\"\266\t\n\013LayoutProto\022k\n\nlayoutdat"
    "a\030\001 \003(\0132\034.LayoutProto.LayoutdataProtoB-\202"
    "\265\030)per-track layout information (repeata"
    "ble)R\nlayoutdata\0228\n\006tracks\030\002 \001(\005:\0010B\035\202\265\030"
    "\031number of tracks in imageR\006tracks\0225\n\005si"
    "des\030\003 \001(\005:\0010B\034\202\265\030\030number of sides in ima"
    "geR\005sides\022y\n\026filesystem_track_order\030\004 \001("
    "\0162\022.LayoutProto.Order:\003CHSB*\202\265\030&the orde"
    "r of sectors in the filesystemR\024filesyst"
    "emTrackOrder\022l\n\021image_track_order\030\005 \001(\0162"
    "\022.LayoutProto.Order:\003CHSB\'\202\265\030#the order "
    "of sectors in disk imagesR\017imageTrackOrd"
    "er\022M\n\nswap_sides\030\006 \001(\010:\005falseB\'\202\265\030#the s"
    "ides are inverted on this diskR\tswapSide"
    "s\022Z\n\013format_type\030\007 \001(\0162\013.FormatType:\022FOR"
    "MATTYPE_UNKNOWNB\030\202\265\030\024Format type of imag"
    "eR\nformatType\032\375\003\n\017LayoutdataProto\022T\n\005tra"
    "ck\030\001 \001(\005B>\202\265\030:if present, this format on"
    "ly applies to this logical trackR\005track\022"
    "H\n\013up_to_track\030\005 \001(\005B(\202\265\030$if present, fo"
    "rms a range with trackR\tupToTrack\022Q\n\004sid"
    "e\030\002 \001(\005B=\202\265\0309if present, this format onl"
    "y applies to this logical sideR\004side\022D\n\013"
    "sector_size\030\003 \001(\005:\003512B\036\202\265\030\032number of by"
    "tes per sectorR\nsectorSize\022S\n\010physical\030\004"
    " \001(\0132\020.SectorListProtoB%\202\265\030!physical ord"
    "er of sectors on diskR\010physical\022\\\n\nfiles"
    "ystem\030\006 \001(\0132\020.SectorListProtoB*\202\265\030&logic"
    "al order of sectors in filesystemR\nfiles"
    "ystem\"5\n\005Order\022\r\n\tUNDEFINED\020\000\022\007\n\003CHS\020\001\022\007"
    "\n\003HCS\020\002\022\013\n\007HCS_RH1\020\003"
};
static const ::_pbi::DescriptorTable* PROTOBUF_NONNULL const
    descriptor_table_lib_2fconfig_2flayout_2eproto_deps[2] = {
        &::descriptor_table_lib_2fconfig_2fcommon_2eproto,
        &::descriptor_table_lib_2fexternal_2ffl2_2eproto,
};
static ::absl::once_flag descriptor_table_lib_2fconfig_2flayout_2eproto_once;
PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_lib_2fconfig_2flayout_2eproto = {
    false,
    false,
    1540,
    descriptor_table_protodef_lib_2fconfig_2flayout_2eproto,
    "lib/config/layout.proto",
    &descriptor_table_lib_2fconfig_2flayout_2eproto_once,
    descriptor_table_lib_2fconfig_2flayout_2eproto_deps,
    2,
    3,
    schemas,
    file_message_globals,
    TableStruct_lib_2fconfig_2flayout_2eproto::offsets,
    file_level_enum_descriptors_lib_2fconfig_2flayout_2eproto,
    file_level_service_descriptors_lib_2fconfig_2flayout_2eproto,
};
[[nodiscard]] const ::google::protobuf::EnumDescriptor* PROTOBUF_NONNULL
LayoutProto_Order_descriptor() {
  ::google::protobuf::internal::AssignDescriptors(&descriptor_table_lib_2fconfig_2flayout_2eproto);
  return file_level_enum_descriptors_lib_2fconfig_2flayout_2eproto[0];
}
PROTOBUF_CONSTINIT const uint32_t LayoutProto_Order_internal_data_[] = {
    262144u, 0u, };
// ===================================================================

SectorListProto::SectorListProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, SectorListProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:SectorListProto)
}
PROTOBUF_NDEBUG_INLINE SectorListProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::SectorListProto& from_msg)
      : _has_bits_{from._has_bits_},
        sector_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::SectorListProto,
              PROTOBUF_FIELD_OFFSET(::SectorListProto, _impl_.sector_)>()
          , arena, from.sector_
        }
     {}

SectorListProto::SectorListProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const SectorListProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, SectorListProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SectorListProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_sector_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, start_sector_),
           offsetof(Impl_, skew_) -
               offsetof(Impl_, start_sector_) +
               sizeof(Impl_::skew_));

  // @@protoc_insertion_point(copy_constructor:SectorListProto)
}
PROTOBUF_NDEBUG_INLINE SectorListProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : sector_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::SectorListProto,
            PROTOBUF_FIELD_OFFSET(::SectorListProto, _impl_.sector_)>()
         }
        ,
        skew_{1} {}

inline void SectorListProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, start_sector_),
           0,
           offsetof(Impl_, count_) -
               offsetof(Impl_, start_sector_) +
               sizeof(Impl_::count_));
}
SectorListProto::~SectorListProto() {
  // @@protoc_insertion_point(destructor:SectorListProto)
  SharedDtor(*this);
}
inline void SectorListProto::SharedDtor(MessageLite& self) {
  SectorListProto& this_ = static_cast<SectorListProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull SectorListProto_class_data_ =
        SectorListProto::InternalGenerateClassData_(SectorListProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SectorListProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SectorListProto_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(SectorListProto_class_data_.tc_table);
  return SectorListProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
SectorListProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&SectorListProto_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&SectorListProto_globals_));
  return SectorListProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const SectorListProto::ParseTableT_
    SectorListProto::_table_ =
        SectorListProto::InternalGenerateParseTable_(SectorListProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void SectorListProto::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:SectorListProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.sector_.Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000000eU)) {
    ::memset(&this_._impl_.start_sector_, 0,
             static_cast<::size_t>(
                 reinterpret_cast<char*>(&this_._impl_.count_) -
                 reinterpret_cast<char*>(&this_._impl_.start_sector_)) +
                 sizeof(_impl_.count_));
    this_._impl_.skew_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL SectorListProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const SectorListProto& this_ = static_cast<const SectorListProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL SectorListProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const SectorListProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:SectorListProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated int32 sector = 1 [json_name = "sector", (.help) = "sector ID"];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (int i = 0, n = this_._internal_sector_size(); i < n; ++i) {
      target = stream->EnsureSpace(target);
      target = ::_pbi::WireFormatLite::WriteInt32ToArray(
          1, this_._internal_sector().Get(i), target);
    }
  }

  // optional int32 start_sector = 2 [json_name = "startSector", (.help) = "first sector of a continuous run"];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_start_sector(), target);
  }

  // optional int32 count = 3 [json_name = "count", (.help) = "number of sectors in a continuous run"];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_count(), target);
  }

  // optional int32 skew = 4 [default = 1, json_name = "skew", (.help) = "apply this skew between sectors"];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<4>(
            stream, this_._internal_skew(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:SectorListProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t SectorListProto::ByteSizeLong(const MessageLite& base) {
  const SectorListProto& this_ = static_cast<const SectorListProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t SectorListProto::ByteSizeLong() const {
  const SectorListProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:SectorListProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    // repeated int32 sector = 1 [json_name = "sector", (.help) = "sector ID"];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ::size_t data_size = ::_pbi::WireFormatLite::Int32Size(
          this_._internal_sector());
      ::size_t tag_size = ::size_t{1} *
          ::_pbi::FromIntSize(this_._internal_sector_size());
      total_size += tag_size + data_size;
    }
    // optional int32 start_sector = 2 [json_name = "startSector", (.help) = "first sector of a continuous run"];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_start_sector());
    }
    // optional int32 count = 3 [json_name = "count", (.help) = "number of sectors in a continuous run"];
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_count());
    }
    // optional int32 skew = 4 [default = 1, json_name = "skew", (.help) = "apply this skew between sectors"];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_skew());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void SectorListProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<SectorListProto*>(&to_msg);
  auto& from = static_cast<const SectorListProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(class_specific_merge_from_start:SectorListProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000000fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_sector()->MergeFrom(from._internal_sector());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.start_sector_ = from._impl_.start_sector_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.count_ = from._impl_.count_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.skew_ = from._impl_.skew_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void SectorListProto::CopyFrom(const SectorListProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:SectorListProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void SectorListProto::InternalSwap(SectorListProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.sector_.InternalSwap(&other->_impl_.sector_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.skew_)
      + sizeof(SectorListProto::_impl_.skew_)
      - PROTOBUF_FIELD_OFFSET(SectorListProto, _impl_.start_sector_)>(
          reinterpret_cast<char*>(&_impl_.start_sector_),
          reinterpret_cast<char*>(&other->_impl_.start_sector_));
}

::google::protobuf::Metadata SectorListProto::GetMetadata() const {
  return Super_::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LayoutProto_LayoutdataProto::LayoutProto_LayoutdataProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, LayoutProto_LayoutdataProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:LayoutProto.LayoutdataProto)
}
PROTOBUF_NDEBUG_INLINE LayoutProto_LayoutdataProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::LayoutProto_LayoutdataProto& from_msg)
      : _has_bits_{from._has_bits_} {}

LayoutProto_LayoutdataProto::LayoutProto_LayoutdataProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LayoutProto_LayoutdataProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, LayoutProto_LayoutdataProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LayoutProto_LayoutdataProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::uint32_t cached_has_bits = _impl_._has_bits_[0];
  _impl_.physical_ = (CheckHasBit(cached_has_bits, 0x00000001U))
                 ? Super_::CopyConstruct(arena, *from._impl_.physical_)
                 : nullptr;
  _impl_.filesystem_ = (CheckHasBit(cached_has_bits, 0x00000002U))
                 ? Super_::CopyConstruct(arena, *from._impl_.filesystem_)
                 : nullptr;
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, track_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, track_),
           offsetof(Impl_, sector_size_) -
               offsetof(Impl_, track_) +
               sizeof(Impl_::sector_size_));

  // @@protoc_insertion_point(copy_constructor:LayoutProto.LayoutdataProto)
}
PROTOBUF_NDEBUG_INLINE LayoutProto_LayoutdataProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : sector_size_{512} {}

inline void LayoutProto_LayoutdataProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, physical_),
           0,
           offsetof(Impl_, up_to_track_) -
               offsetof(Impl_, physical_) +
               sizeof(Impl_::up_to_track_));
}
LayoutProto_LayoutdataProto::~LayoutProto_LayoutdataProto() {
  // @@protoc_insertion_point(destructor:LayoutProto.LayoutdataProto)
  SharedDtor(*this);
}
inline void LayoutProto_LayoutdataProto::SharedDtor(MessageLite& self) {
  LayoutProto_LayoutdataProto& this_ = static_cast<LayoutProto_LayoutdataProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  delete this_._impl_.physical_;
  delete this_._impl_.filesystem_;
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LayoutProto_LayoutdataProto_class_data_ =
        LayoutProto_LayoutdataProto::InternalGenerateClassData_(LayoutProto_LayoutdataProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LayoutProto_LayoutdataProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LayoutProto_LayoutdataProto_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LayoutProto_LayoutdataProto_class_data_.tc_table);
  return LayoutProto_LayoutdataProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LayoutProto_LayoutdataProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LayoutProto_LayoutdataProto_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LayoutProto_LayoutdataProto_globals_));
  return LayoutProto_LayoutdataProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LayoutProto_LayoutdataProto::ParseTableT_
    LayoutProto_LayoutdataProto::_table_ =
        LayoutProto_LayoutdataProto::InternalGenerateParseTable_(LayoutProto_LayoutdataProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LayoutProto_LayoutdataProto::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:LayoutProto.LayoutdataProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x00000003U)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(this_._impl_.physical_ != nullptr);
      this_._impl_.physical_->Clear();
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(this_._impl_.filesystem_ != nullptr);
      this_._impl_.filesystem_->Clear();
    }
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000003cU)) {
    ::memset(&this_._impl_.track_, 0,
             static_cast<::size_t>(
                 reinterpret_cast<char*>(&this_._impl_.up_to_track_) -
                 reinterpret_cast<char*>(&this_._impl_.track_)) +
                 sizeof(_impl_.up_to_track_));
    this_._impl_.sector_size_ = 512;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL LayoutProto_LayoutdataProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const LayoutProto_LayoutdataProto& this_ = static_cast<const LayoutProto_LayoutdataProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL LayoutProto_LayoutdataProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const LayoutProto_LayoutdataProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:LayoutProto.LayoutdataProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // optional int32 track = 1 [json_name = "track", (.help) = "if present, this format only applies to this logical track"];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<1>(
            stream, this_._internal_track(), target);
  }

  // optional int32 side = 2 [json_name = "side", (.help) = "if present, this format only applies to this logical side"];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_side(), target);
  }

  // optional int32 sector_size = 3 [default = 512, json_name = "sectorSize", (.help) = "number of bytes per sector"];
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_sector_size(), target);
  }

  // optional .SectorListProto physical = 4 [json_name = "physical", (.help) = "physical order of sectors on disk"];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        4, *this_._impl_.physical_, this_._impl_.physical_->GetCachedSize(), target,
        stream);
  }

  // optional int32 up_to_track = 5 [json_name = "upToTrack", (.help) = "if present, forms a range with track"];
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<5>(
            stream, this_._internal_up_to_track(), target);
  }

  // optional .SectorListProto filesystem = 6 [json_name = "filesystem", (.help) = "logical order of sectors in filesystem"];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
        6, *this_._impl_.filesystem_, this_._impl_.filesystem_->GetCachedSize(), target,
        stream);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:LayoutProto.LayoutdataProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t LayoutProto_LayoutdataProto::ByteSizeLong(const MessageLite& base) {
  const LayoutProto_LayoutdataProto& this_ = static_cast<const LayoutProto_LayoutdataProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t LayoutProto_LayoutdataProto::ByteSizeLong() const {
  const LayoutProto_LayoutdataProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:LayoutProto.LayoutdataProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    // optional .SectorListProto physical = 4 [json_name = "physical", (.help) = "physical order of sectors on disk"];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.physical_);
    }
    // optional .SectorListProto filesystem = 6 [json_name = "filesystem", (.help) = "logical order of sectors in filesystem"];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += 1 +
                    ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.filesystem_);
    }
    // optional int32 track = 1 [json_name = "track", (.help) = "if present, this format only applies to this logical track"];
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_track());
    }
    // optional int32 side = 2 [json_name = "side", (.help) = "if present, this format only applies to this logical side"];
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_side());
    }
    // optional int32 up_to_track = 5 [json_name = "upToTrack", (.help) = "if present, forms a range with track"];
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_up_to_track());
    }
    // optional int32 sector_size = 3 [default = 512, json_name = "sectorSize", (.help) = "number of bytes per sector"];
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_sector_size());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void LayoutProto_LayoutdataProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<LayoutProto_LayoutdataProto*>(&to_msg);
  auto& from = static_cast<const LayoutProto_LayoutdataProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:LayoutProto.LayoutdataProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000003fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      ABSL_DCHECK(from._impl_.physical_ != nullptr);
      if (_this->_impl_.physical_ == nullptr) {
        _this->_impl_.physical_ = Super_::CopyConstruct(arena, *from._impl_.physical_);
      } else {
        _this->_impl_.physical_->MergeFrom(*from._impl_.physical_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      ABSL_DCHECK(from._impl_.filesystem_ != nullptr);
      if (_this->_impl_.filesystem_ == nullptr) {
        _this->_impl_.filesystem_ = Super_::CopyConstruct(arena, *from._impl_.filesystem_);
      } else {
        _this->_impl_.filesystem_->MergeFrom(*from._impl_.filesystem_);
      }
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.track_ = from._impl_.track_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.side_ = from._impl_.side_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.up_to_track_ = from._impl_.up_to_track_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.sector_size_ = from._impl_.sector_size_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void LayoutProto_LayoutdataProto::CopyFrom(const LayoutProto_LayoutdataProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:LayoutProto.LayoutdataProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void LayoutProto_LayoutdataProto::InternalSwap(LayoutProto_LayoutdataProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.sector_size_)
      + sizeof(LayoutProto_LayoutdataProto::_impl_.sector_size_)
      - PROTOBUF_FIELD_OFFSET(LayoutProto_LayoutdataProto, _impl_.physical_)>(
          reinterpret_cast<char*>(&_impl_.physical_),
          reinterpret_cast<char*>(&other->_impl_.physical_));
}

::google::protobuf::Metadata LayoutProto_LayoutdataProto::GetMetadata() const {
  return Super_::GetMetadataImpl(GetClassData()->full());
}
// ===================================================================

LayoutProto::LayoutProto(::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, LayoutProto_get_class_data()) {
#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  SharedCtor(arena);
  // @@protoc_insertion_point(arena_constructor:LayoutProto)
}
PROTOBUF_NDEBUG_INLINE LayoutProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena, const Impl_& from,
    [[maybe_unused]] const ::LayoutProto& from_msg)
      : _has_bits_{from._has_bits_},
        layoutdata_ {
          visibility, ::_pbi::InternalMetadataOffset::Build<
              ::LayoutProto,
              PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.layoutdata_)>()
          , arena, from.layoutdata_
        }
     {}

LayoutProto::LayoutProto(
    ::google::protobuf::Arena* PROTOBUF_NULLABLE arena,
    const LayoutProto& from)
#if defined(PROTOBUF_CUSTOM_VTABLE)
    : Super_(arena, LayoutProto_get_class_data()) {

#else   // PROTOBUF_CUSTOM_VTABLE
    : Super_(arena) {
#endif  // PROTOBUF_CUSTOM_VTABLE
  LayoutProto* const _this = this;
  (void)_this;
  _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
  new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from);
  ::memcpy(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, tracks_),
           reinterpret_cast<const char*>(&from._impl_) +
               offsetof(Impl_, tracks_),
           offsetof(Impl_, image_track_order_) -
               offsetof(Impl_, tracks_) +
               sizeof(Impl_::image_track_order_));

  // @@protoc_insertion_point(copy_constructor:LayoutProto)
}
PROTOBUF_NDEBUG_INLINE LayoutProto::Impl_::Impl_(
    [[maybe_unused]] ::google::protobuf::internal::InternalVisibility visibility,
    [[maybe_unused]] ::google::protobuf::Arena* PROTOBUF_NULLABLE arena)
      : layoutdata_ { visibility, ::_pbi::InternalMetadataOffset::Build<
            ::LayoutProto,
            PROTOBUF_FIELD_OFFSET(::LayoutProto, _impl_.layoutdata_)>()
         }
        ,
        filesystem_track_order_{static_cast< ::LayoutProto_Order >(1)},
        image_track_order_{static_cast< ::LayoutProto_Order >(1)} {}

inline void LayoutProto::SharedCtor(::_pb::Arena* PROTOBUF_NULLABLE arena) {
  new (&_impl_) Impl_(internal_visibility(), arena);
  ::memset(reinterpret_cast<char*>(&_impl_) +
               offsetof(Impl_, tracks_),
           0,
           offsetof(Impl_, format_type_) -
               offsetof(Impl_, tracks_) +
               sizeof(Impl_::format_type_));
}
LayoutProto::~LayoutProto() {
  // @@protoc_insertion_point(destructor:LayoutProto)
  SharedDtor(*this);
}
inline void LayoutProto::SharedDtor(MessageLite& self) {
  LayoutProto& this_ = static_cast<LayoutProto&>(self);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>();
  ABSL_DCHECK(this_.GetArena() == nullptr);
  this_._impl_.~Impl_();
}

#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const
    ::google::protobuf::internal::ClassDataFull LayoutProto_class_data_ =
        LayoutProto::InternalGenerateClassData_(LayoutProto_globals_._default);

PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LayoutProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LayoutProto_class_data_);
  ::google::protobuf::internal::PrefetchToLocalCache(LayoutProto_class_data_.tc_table);
  return LayoutProto_class_data_.base();
}
#else
PROTOBUF_ATTRIBUTE_WEAK const ::google::protobuf::internal::ClassData* PROTOBUF_NONNULL
LayoutProto::GetClassData() const {
  ::google::protobuf::internal::PrefetchToLocalCache(&LayoutProto_globals_);
  ::google::protobuf::internal::PrefetchToLocalCache(
      ::google::protobuf::internal::MessageGlobalsBase::ToParseTableBase(&LayoutProto_globals_));
  return LayoutProto_globals_.GetClassData();
}
#endif  // !PROTOBUF_MESSAGE_GLOBALS
#ifndef PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_CONSTINIT
PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 const LayoutProto::ParseTableT_
    LayoutProto::_table_ =
        LayoutProto::InternalGenerateParseTable_(LayoutProto_class_data_.base());
#endif  // !PROTOBUF_MESSAGE_GLOBALS
PROTOBUF_NOINLINE void LayoutProto::Clear() {
  auto& this_ [[maybe_unused]] = *this;
  // @@protoc_insertion_point(message_clear_start:LayoutProto)
  ::google::protobuf::internal::TSanWrite(&_impl_);
  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  cached_has_bits = this_._impl_._has_bits_[0];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    _impl_.layoutdata_.Clear();
  }
  if (BatchCheckHasBit(cached_has_bits, 0x0000007eU)) {
    ::memset(&this_._impl_.tracks_, 0,
             static_cast<::size_t>(
                 reinterpret_cast<char*>(&this_._impl_.format_type_) -
                 reinterpret_cast<char*>(&this_._impl_.tracks_)) +
                 sizeof(_impl_.format_type_));
    this_._impl_.filesystem_track_order_ = 1;
    this_._impl_.image_track_order_ = 1;
  }
  _impl_._has_bits_.Clear();
  _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>();
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::uint8_t* PROTOBUF_NONNULL LayoutProto::_InternalSerialize(
    const ::google::protobuf::MessageLite& base, ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) {
  const LayoutProto& this_ = static_cast<const LayoutProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::uint8_t* PROTOBUF_NONNULL LayoutProto::_InternalSerialize(
    ::uint8_t* PROTOBUF_NONNULL target,
    ::google::protobuf::io::EpsCopyOutputStream* PROTOBUF_NONNULL stream) const {
  const LayoutProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    this_.CheckHasBitConsistency();
  }
  // @@protoc_insertion_point(serialize_to_array_start:LayoutProto)
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = this_._impl_._has_bits_[0];
  // repeated .LayoutProto.LayoutdataProto layoutdata = 1 [json_name = "layoutdata", (.help) = "per-track layout information (repeatable)"];
  if (CheckHasBit(cached_has_bits, 0x00000001U)) {
    for (unsigned i = 0, n = static_cast<unsigned>(
                             this_._internal_layoutdata_size());
         i < n; i++) {
      const auto& repfield = this_._internal_layoutdata().Get(i);
      target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage(
          1, repfield, repfield.GetCachedSize(), target,
          stream);
    }
  }

  // optional int32 tracks = 2 [default = 0, json_name = "tracks", (.help) = "number of tracks in image"];
  if (CheckHasBit(cached_has_bits, 0x00000002U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<2>(
            stream, this_._internal_tracks(), target);
  }

  // optional int32 sides = 3 [default = 0, json_name = "sides", (.help) = "number of sides in image"];
  if (CheckHasBit(cached_has_bits, 0x00000004U)) {
    target =
        ::google::protobuf::internal::WireFormatLite::WriteInt32ToArrayWithField<3>(
            stream, this_._internal_sides(), target);
  }

  // optional .LayoutProto.Order filesystem_track_order = 4 [default = CHS, json_name = "filesystemTrackOrder", (.help) = "the order of sectors in the filesystem"];
  if (CheckHasBit(cached_has_bits, 0x00000020U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        4, this_._internal_filesystem_track_order(), target);
  }

  // optional .LayoutProto.Order image_track_order = 5 [default = CHS, json_name = "imageTrackOrder", (.help) = "the order of sectors in disk images"];
  if (CheckHasBit(cached_has_bits, 0x00000040U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        5, this_._internal_image_track_order(), target);
  }

  // optional bool swap_sides = 6 [default = false, json_name = "swapSides", (.help) = "the sides are inverted on this disk"];
  if (CheckHasBit(cached_has_bits, 0x00000008U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteBoolToArray(
        6, this_._internal_swap_sides(), target);
  }

  // optional .FormatType format_type = 7 [default = FORMATTYPE_UNKNOWN, json_name = "formatType", (.help) = "Format type of image"];
  if (CheckHasBit(cached_has_bits, 0x00000010U)) {
    target = stream->EnsureSpace(target);
    target = ::_pbi::WireFormatLite::WriteEnumToArray(
        7, this_._internal_format_type(), target);
  }

  if (ABSL_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) {
    target =
        ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray(
            this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream);
  }
  // @@protoc_insertion_point(serialize_to_array_end:LayoutProto)
  return target;
}

#if defined(PROTOBUF_CUSTOM_VTABLE)
::size_t LayoutProto::ByteSizeLong(const MessageLite& base) {
  const LayoutProto& this_ = static_cast<const LayoutProto&>(base);
#else   // PROTOBUF_CUSTOM_VTABLE
::size_t LayoutProto::ByteSizeLong() const {
  const LayoutProto& this_ = *this;
#endif  // PROTOBUF_CUSTOM_VTABLE
  // @@protoc_insertion_point(message_byte_size_start:LayoutProto)
  ::size_t total_size = 0;

  ::uint32_t cached_has_bits [[maybe_unused]] = 0;

  ::_pbi::Prefetch5LinesFrom7Lines(&this_);
  cached_has_bits = this_._impl_._has_bits_[0];
  total_size += static_cast<bool>(0x00000008U & cached_has_bits) * 2;
  if (BatchCheckHasBit(cached_has_bits, 0x00000077U)) {
    // repeated .LayoutProto.LayoutdataProto layoutdata = 1 [json_name = "layoutdata", (.help) = "per-track layout information (repeatable)"];
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      total_size += 1UL * this_._internal_layoutdata_size();
      for (const auto& msg : this_._internal_layoutdata()) {
        total_size += ::google::protobuf::internal::WireFormatLite::MessageSize(msg);
      }
    }
    // optional int32 tracks = 2 [default = 0, json_name = "tracks", (.help) = "number of tracks in image"];
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_tracks());
    }
    // optional int32 sides = 3 [default = 0, json_name = "sides", (.help) = "number of sides in image"];
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      total_size += ::_pbi::WireFormatLite::Int32SizePlusOne(
          this_._internal_sides());
    }
    // optional .FormatType format_type = 7 [default = FORMATTYPE_UNKNOWN, json_name = "formatType", (.help) = "Format type of image"];
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_format_type());
    }
    // optional .LayoutProto.Order filesystem_track_order = 4 [default = CHS, json_name = "filesystemTrackOrder", (.help) = "the order of sectors in the filesystem"];
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_filesystem_track_order());
    }
    // optional .LayoutProto.Order image_track_order = 5 [default = CHS, json_name = "imageTrackOrder", (.help) = "the order of sectors in disk images"];
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      total_size += 1 +
                    ::_pbi::WireFormatLite::EnumSize(this_._internal_image_track_order());
    }
  }
  return this_.MaybeComputeUnknownFieldsSize(total_size,
                                             &this_._impl_._cached_size_);
}

void LayoutProto::MergeImpl(::google::protobuf::MessageLite& to_msg,
                      const ::google::protobuf::MessageLite& from_msg) {
   auto* const _this = static_cast<LayoutProto*>(&to_msg);
  auto& from = static_cast<const LayoutProto&>(from_msg);
  if constexpr (::_pbi::DebugHardenCheckHasBitConsistency()) {
    from.CheckHasBitConsistency();
  }
  ::google::protobuf::Arena* arena = _this->GetArena();
  // @@protoc_insertion_point(class_specific_merge_from_start:LayoutProto)
  ABSL_DCHECK_NE(&from, _this);
  ::uint32_t cached_has_bits = 0;
  (void)cached_has_bits;

  cached_has_bits = from._impl_._has_bits_[0];
  if (BatchCheckHasBit(cached_has_bits, 0x0000007fU)) {
    if (CheckHasBit(cached_has_bits, 0x00000001U)) {
      _this->_internal_mutable_layoutdata()->InternalMergeFromWithArena(
          ::google::protobuf::MessageLite::internal_visibility(), arena,
          from._internal_layoutdata());
    }
    if (CheckHasBit(cached_has_bits, 0x00000002U)) {
      _this->_impl_.tracks_ = from._impl_.tracks_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000004U)) {
      _this->_impl_.sides_ = from._impl_.sides_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000008U)) {
      _this->_impl_.swap_sides_ = from._impl_.swap_sides_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000010U)) {
      _this->_impl_.format_type_ = from._impl_.format_type_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000020U)) {
      _this->_impl_.filesystem_track_order_ = from._impl_.filesystem_track_order_;
    }
    if (CheckHasBit(cached_has_bits, 0x00000040U)) {
      _this->_impl_.image_track_order_ = from._impl_.image_track_order_;
    }
  }
  _this->_impl_._has_bits_[0] |= cached_has_bits;
  _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(
      from._internal_metadata_);
}

void LayoutProto::CopyFrom(const LayoutProto& from) {
  // @@protoc_insertion_point(class_specific_copy_from_start:LayoutProto)
  if (&from == this) return;
  Clear();
  MergeFrom(from);
}


void LayoutProto::InternalSwap(LayoutProto* PROTOBUF_RESTRICT PROTOBUF_NONNULL other) {
  using ::std::swap;
  _internal_metadata_.InternalSwap(&other->_internal_metadata_);
  swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]);
  _impl_.layoutdata_.InternalSwap(&other->_impl_.layoutdata_);
  ::google::protobuf::internal::memswap<
      PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.image_track_order_)
      + sizeof(LayoutProto::_impl_.image_track_order_)
      - PROTOBUF_FIELD_OFFSET(LayoutProto, _impl_.tracks_)>(
          reinterpret_cast<char*>(&_impl_.tracks_),
          reinterpret_cast<char*>(&other->_impl_.tracks_));
}

::google::protobuf::Metadata LayoutProto::GetMetadata() const {
  return Super_::GetMetadataImpl(GetClassData()->full());
}
// @@protoc_insertion_point(namespace_scope)
namespace google {
namespace protobuf {
}  // namespace protobuf
}  // namespace google
// @@protoc_insertion_point(global_scope)
PROTOBUF_ATTRIBUTE_INIT_PRIORITY2 static ::std::false_type
    _static_init2_ [[maybe_unused]] =
        (::_pbi::AddDescriptors(&descriptor_table_lib_2fconfig_2flayout_2eproto),
         ::std::false_type{});
#include "google/protobuf/port_undef.inc"
