/* Generated by the protocol buffer compiler.  DO NOT EDIT! */
/* Generated from: proto/metadata.proto */

/* Do not generate deprecated warnings for self */
#ifndef PROTOBUF_C__NO_DEPRECATED
#define PROTOBUF_C__NO_DEPRECATED
#endif

#include "metadata.pb-c.h"
void   top_tracks__init
                     (TopTracks         *message)
{
  static const TopTracks init_value = TOP_TRACKS__INIT;
  *message = init_value;
}
size_t top_tracks__get_packed_size
                     (const TopTracks *message)
{
  assert(message->base.descriptor == &top_tracks__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t top_tracks__pack
                     (const TopTracks *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &top_tracks__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t top_tracks__pack_to_buffer
                     (const TopTracks *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &top_tracks__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
TopTracks *
       top_tracks__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (TopTracks *)
     protobuf_c_message_unpack (&top_tracks__descriptor,
                                allocator, len, data);
}
void   top_tracks__free_unpacked
                     (TopTracks *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &top_tracks__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   activity_period__init
                     (ActivityPeriod         *message)
{
  static const ActivityPeriod init_value = ACTIVITY_PERIOD__INIT;
  *message = init_value;
}
size_t activity_period__get_packed_size
                     (const ActivityPeriod *message)
{
  assert(message->base.descriptor == &activity_period__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t activity_period__pack
                     (const ActivityPeriod *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &activity_period__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t activity_period__pack_to_buffer
                     (const ActivityPeriod *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &activity_period__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
ActivityPeriod *
       activity_period__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (ActivityPeriod *)
     protobuf_c_message_unpack (&activity_period__descriptor,
                                allocator, len, data);
}
void   activity_period__free_unpacked
                     (ActivityPeriod *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &activity_period__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   artist__init
                     (Artist         *message)
{
  static const Artist init_value = ARTIST__INIT;
  *message = init_value;
}
size_t artist__get_packed_size
                     (const Artist *message)
{
  assert(message->base.descriptor == &artist__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t artist__pack
                     (const Artist *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &artist__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t artist__pack_to_buffer
                     (const Artist *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &artist__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Artist *
       artist__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Artist *)
     protobuf_c_message_unpack (&artist__descriptor,
                                allocator, len, data);
}
void   artist__free_unpacked
                     (Artist *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &artist__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   album_group__init
                     (AlbumGroup         *message)
{
  static const AlbumGroup init_value = ALBUM_GROUP__INIT;
  *message = init_value;
}
size_t album_group__get_packed_size
                     (const AlbumGroup *message)
{
  assert(message->base.descriptor == &album_group__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t album_group__pack
                     (const AlbumGroup *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &album_group__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t album_group__pack_to_buffer
                     (const AlbumGroup *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &album_group__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
AlbumGroup *
       album_group__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (AlbumGroup *)
     protobuf_c_message_unpack (&album_group__descriptor,
                                allocator, len, data);
}
void   album_group__free_unpacked
                     (AlbumGroup *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &album_group__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   date__init
                     (Date         *message)
{
  static const Date init_value = DATE__INIT;
  *message = init_value;
}
size_t date__get_packed_size
                     (const Date *message)
{
  assert(message->base.descriptor == &date__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t date__pack
                     (const Date *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &date__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t date__pack_to_buffer
                     (const Date *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &date__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Date *
       date__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Date *)
     protobuf_c_message_unpack (&date__descriptor,
                                allocator, len, data);
}
void   date__free_unpacked
                     (Date *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &date__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   album__init
                     (Album         *message)
{
  static const Album init_value = ALBUM__INIT;
  *message = init_value;
}
size_t album__get_packed_size
                     (const Album *message)
{
  assert(message->base.descriptor == &album__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t album__pack
                     (const Album *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &album__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t album__pack_to_buffer
                     (const Album *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &album__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Album *
       album__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Album *)
     protobuf_c_message_unpack (&album__descriptor,
                                allocator, len, data);
}
void   album__free_unpacked
                     (Album *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &album__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   track__init
                     (Track         *message)
{
  static const Track init_value = TRACK__INIT;
  *message = init_value;
}
size_t track__get_packed_size
                     (const Track *message)
{
  assert(message->base.descriptor == &track__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t track__pack
                     (const Track *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &track__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t track__pack_to_buffer
                     (const Track *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &track__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Track *
       track__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Track *)
     protobuf_c_message_unpack (&track__descriptor,
                                allocator, len, data);
}
void   track__free_unpacked
                     (Track *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &track__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   image__init
                     (Image         *message)
{
  static const Image init_value = IMAGE__INIT;
  *message = init_value;
}
size_t image__get_packed_size
                     (const Image *message)
{
  assert(message->base.descriptor == &image__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t image__pack
                     (const Image *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &image__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t image__pack_to_buffer
                     (const Image *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &image__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Image *
       image__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Image *)
     protobuf_c_message_unpack (&image__descriptor,
                                allocator, len, data);
}
void   image__free_unpacked
                     (Image *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &image__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   image_group__init
                     (ImageGroup         *message)
{
  static const ImageGroup init_value = IMAGE_GROUP__INIT;
  *message = init_value;
}
size_t image_group__get_packed_size
                     (const ImageGroup *message)
{
  assert(message->base.descriptor == &image_group__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t image_group__pack
                     (const ImageGroup *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &image_group__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t image_group__pack_to_buffer
                     (const ImageGroup *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &image_group__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
ImageGroup *
       image_group__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (ImageGroup *)
     protobuf_c_message_unpack (&image_group__descriptor,
                                allocator, len, data);
}
void   image_group__free_unpacked
                     (ImageGroup *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &image_group__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   biography__init
                     (Biography         *message)
{
  static const Biography init_value = BIOGRAPHY__INIT;
  *message = init_value;
}
size_t biography__get_packed_size
                     (const Biography *message)
{
  assert(message->base.descriptor == &biography__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t biography__pack
                     (const Biography *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &biography__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t biography__pack_to_buffer
                     (const Biography *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &biography__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Biography *
       biography__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Biography *)
     protobuf_c_message_unpack (&biography__descriptor,
                                allocator, len, data);
}
void   biography__free_unpacked
                     (Biography *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &biography__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   disc__init
                     (Disc         *message)
{
  static const Disc init_value = DISC__INIT;
  *message = init_value;
}
size_t disc__get_packed_size
                     (const Disc *message)
{
  assert(message->base.descriptor == &disc__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t disc__pack
                     (const Disc *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &disc__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t disc__pack_to_buffer
                     (const Disc *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &disc__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Disc *
       disc__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Disc *)
     protobuf_c_message_unpack (&disc__descriptor,
                                allocator, len, data);
}
void   disc__free_unpacked
                     (Disc *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &disc__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   copyright__init
                     (Copyright         *message)
{
  static const Copyright init_value = COPYRIGHT__INIT;
  *message = init_value;
}
size_t copyright__get_packed_size
                     (const Copyright *message)
{
  assert(message->base.descriptor == &copyright__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t copyright__pack
                     (const Copyright *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &copyright__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t copyright__pack_to_buffer
                     (const Copyright *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &copyright__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Copyright *
       copyright__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Copyright *)
     protobuf_c_message_unpack (&copyright__descriptor,
                                allocator, len, data);
}
void   copyright__free_unpacked
                     (Copyright *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &copyright__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   restriction__init
                     (Restriction         *message)
{
  static const Restriction init_value = RESTRICTION__INIT;
  *message = init_value;
}
size_t restriction__get_packed_size
                     (const Restriction *message)
{
  assert(message->base.descriptor == &restriction__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t restriction__pack
                     (const Restriction *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &restriction__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t restriction__pack_to_buffer
                     (const Restriction *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &restriction__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Restriction *
       restriction__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Restriction *)
     protobuf_c_message_unpack (&restriction__descriptor,
                                allocator, len, data);
}
void   restriction__free_unpacked
                     (Restriction *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &restriction__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   availability__init
                     (Availability         *message)
{
  static const Availability init_value = AVAILABILITY__INIT;
  *message = init_value;
}
size_t availability__get_packed_size
                     (const Availability *message)
{
  assert(message->base.descriptor == &availability__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t availability__pack
                     (const Availability *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &availability__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t availability__pack_to_buffer
                     (const Availability *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &availability__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Availability *
       availability__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Availability *)
     protobuf_c_message_unpack (&availability__descriptor,
                                allocator, len, data);
}
void   availability__free_unpacked
                     (Availability *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &availability__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   sale_period__init
                     (SalePeriod         *message)
{
  static const SalePeriod init_value = SALE_PERIOD__INIT;
  *message = init_value;
}
size_t sale_period__get_packed_size
                     (const SalePeriod *message)
{
  assert(message->base.descriptor == &sale_period__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t sale_period__pack
                     (const SalePeriod *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &sale_period__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t sale_period__pack_to_buffer
                     (const SalePeriod *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &sale_period__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
SalePeriod *
       sale_period__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (SalePeriod *)
     protobuf_c_message_unpack (&sale_period__descriptor,
                                allocator, len, data);
}
void   sale_period__free_unpacked
                     (SalePeriod *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &sale_period__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   external_id__init
                     (ExternalId         *message)
{
  static const ExternalId init_value = EXTERNAL_ID__INIT;
  *message = init_value;
}
size_t external_id__get_packed_size
                     (const ExternalId *message)
{
  assert(message->base.descriptor == &external_id__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t external_id__pack
                     (const ExternalId *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &external_id__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t external_id__pack_to_buffer
                     (const ExternalId *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &external_id__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
ExternalId *
       external_id__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (ExternalId *)
     protobuf_c_message_unpack (&external_id__descriptor,
                                allocator, len, data);
}
void   external_id__free_unpacked
                     (ExternalId *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &external_id__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   audio_file__init
                     (AudioFile         *message)
{
  static const AudioFile init_value = AUDIO_FILE__INIT;
  *message = init_value;
}
size_t audio_file__get_packed_size
                     (const AudioFile *message)
{
  assert(message->base.descriptor == &audio_file__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t audio_file__pack
                     (const AudioFile *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &audio_file__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t audio_file__pack_to_buffer
                     (const AudioFile *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &audio_file__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
AudioFile *
       audio_file__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (AudioFile *)
     protobuf_c_message_unpack (&audio_file__descriptor,
                                allocator, len, data);
}
void   audio_file__free_unpacked
                     (AudioFile *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &audio_file__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   video_file__init
                     (VideoFile         *message)
{
  static const VideoFile init_value = VIDEO_FILE__INIT;
  *message = init_value;
}
size_t video_file__get_packed_size
                     (const VideoFile *message)
{
  assert(message->base.descriptor == &video_file__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t video_file__pack
                     (const VideoFile *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &video_file__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t video_file__pack_to_buffer
                     (const VideoFile *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &video_file__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
VideoFile *
       video_file__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (VideoFile *)
     protobuf_c_message_unpack (&video_file__descriptor,
                                allocator, len, data);
}
void   video_file__free_unpacked
                     (VideoFile *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &video_file__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   show__init
                     (Show         *message)
{
  static const Show init_value = SHOW__INIT;
  *message = init_value;
}
size_t show__get_packed_size
                     (const Show *message)
{
  assert(message->base.descriptor == &show__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t show__pack
                     (const Show *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &show__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t show__pack_to_buffer
                     (const Show *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &show__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Show *
       show__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Show *)
     protobuf_c_message_unpack (&show__descriptor,
                                allocator, len, data);
}
void   show__free_unpacked
                     (Show *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &show__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   episode__init
                     (Episode         *message)
{
  static const Episode init_value = EPISODE__INIT;
  *message = init_value;
}
size_t episode__get_packed_size
                     (const Episode *message)
{
  assert(message->base.descriptor == &episode__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t episode__pack
                     (const Episode *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &episode__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t episode__pack_to_buffer
                     (const Episode *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &episode__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Episode *
       episode__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Episode *)
     protobuf_c_message_unpack (&episode__descriptor,
                                allocator, len, data);
}
void   episode__free_unpacked
                     (Episode *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &episode__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   category__init
                     (Category         *message)
{
  static const Category init_value = CATEGORY__INIT;
  *message = init_value;
}
size_t category__get_packed_size
                     (const Category *message)
{
  assert(message->base.descriptor == &category__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t category__pack
                     (const Category *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &category__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t category__pack_to_buffer
                     (const Category *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &category__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
Category *
       category__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (Category *)
     protobuf_c_message_unpack (&category__descriptor,
                                allocator, len, data);
}
void   category__free_unpacked
                     (Category *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &category__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
void   original_audio__init
                     (OriginalAudio         *message)
{
  static const OriginalAudio init_value = ORIGINAL_AUDIO__INIT;
  *message = init_value;
}
size_t original_audio__get_packed_size
                     (const OriginalAudio *message)
{
  assert(message->base.descriptor == &original_audio__descriptor);
  return protobuf_c_message_get_packed_size ((const ProtobufCMessage*)(message));
}
size_t original_audio__pack
                     (const OriginalAudio *message,
                      uint8_t       *out)
{
  assert(message->base.descriptor == &original_audio__descriptor);
  return protobuf_c_message_pack ((const ProtobufCMessage*)message, out);
}
size_t original_audio__pack_to_buffer
                     (const OriginalAudio *message,
                      ProtobufCBuffer *buffer)
{
  assert(message->base.descriptor == &original_audio__descriptor);
  return protobuf_c_message_pack_to_buffer ((const ProtobufCMessage*)message, buffer);
}
OriginalAudio *
       original_audio__unpack
                     (ProtobufCAllocator  *allocator,
                      size_t               len,
                      const uint8_t       *data)
{
  return (OriginalAudio *)
     protobuf_c_message_unpack (&original_audio__descriptor,
                                allocator, len, data);
}
void   original_audio__free_unpacked
                     (OriginalAudio *message,
                      ProtobufCAllocator *allocator)
{
  if(!message)
    return;
  assert(message->base.descriptor == &original_audio__descriptor);
  protobuf_c_message_free_unpacked ((ProtobufCMessage*)message, allocator);
}
static const ProtobufCFieldDescriptor top_tracks__field_descriptors[2] =
{
  {
    "country",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(TopTracks, country),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "track",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(TopTracks, n_track),
    offsetof(TopTracks, track),
    &track__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned top_tracks__field_indices_by_name[] = {
  0,   /* field[0] = country */
  1,   /* field[1] = track */
};
static const ProtobufCIntRange top_tracks__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor top_tracks__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "TopTracks",
  "TopTracks",
  "TopTracks",
  "",
  sizeof(TopTracks),
  2,
  top_tracks__field_descriptors,
  top_tracks__field_indices_by_name,
  1,  top_tracks__number_ranges,
  (ProtobufCMessageInit) top_tracks__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor activity_period__field_descriptors[3] =
{
  {
    "start_year",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(ActivityPeriod, has_start_year),
    offsetof(ActivityPeriod, start_year),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end_year",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(ActivityPeriod, has_end_year),
    offsetof(ActivityPeriod, end_year),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "decade",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(ActivityPeriod, has_decade),
    offsetof(ActivityPeriod, decade),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned activity_period__field_indices_by_name[] = {
  2,   /* field[2] = decade */
  1,   /* field[1] = end_year */
  0,   /* field[0] = start_year */
};
static const ProtobufCIntRange activity_period__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor activity_period__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ActivityPeriod",
  "ActivityPeriod",
  "ActivityPeriod",
  "",
  sizeof(ActivityPeriod),
  3,
  activity_period__field_descriptors,
  activity_period__field_indices_by_name,
  1,  activity_period__number_ranges,
  (ProtobufCMessageInit) activity_period__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor artist__field_descriptors[17] =
{
  {
    "gid",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Artist, has_gid),
    offsetof(Artist, gid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Artist, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "popularity",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Artist, has_popularity),
    offsetof(Artist, popularity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "top_track",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_top_track),
    offsetof(Artist, top_track),
    &top_tracks__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "album_group",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_album_group),
    offsetof(Artist, album_group),
    &album_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "single_group",
    6,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_single_group),
    offsetof(Artist, single_group),
    &album_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "compilation_group",
    7,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_compilation_group),
    offsetof(Artist, compilation_group),
    &album_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "appears_on_group",
    8,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_appears_on_group),
    offsetof(Artist, appears_on_group),
    &album_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "genre",
    9,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Artist, n_genre),
    offsetof(Artist, genre),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "external_id",
    10,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_external_id),
    offsetof(Artist, external_id),
    &external_id__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "portrait",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_portrait),
    offsetof(Artist, portrait),
    &image__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "biography",
    12,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_biography),
    offsetof(Artist, biography),
    &biography__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "activity_period",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_activity_period),
    offsetof(Artist, activity_period),
    &activity_period__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "restriction",
    14,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_restriction),
    offsetof(Artist, restriction),
    &restriction__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "related",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Artist, n_related),
    offsetof(Artist, related),
    &artist__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "is_portrait_album_cover",
    16,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Artist, has_is_portrait_album_cover),
    offsetof(Artist, is_portrait_album_cover),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "portrait_group",
    17,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Artist, portrait_group),
    &image_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned artist__field_indices_by_name[] = {
  12,   /* field[12] = activity_period */
  4,   /* field[4] = album_group */
  7,   /* field[7] = appears_on_group */
  11,   /* field[11] = biography */
  6,   /* field[6] = compilation_group */
  9,   /* field[9] = external_id */
  8,   /* field[8] = genre */
  0,   /* field[0] = gid */
  15,   /* field[15] = is_portrait_album_cover */
  1,   /* field[1] = name */
  2,   /* field[2] = popularity */
  10,   /* field[10] = portrait */
  16,   /* field[16] = portrait_group */
  14,   /* field[14] = related */
  13,   /* field[13] = restriction */
  5,   /* field[5] = single_group */
  3,   /* field[3] = top_track */
};
static const ProtobufCIntRange artist__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 17 }
};
const ProtobufCMessageDescriptor artist__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Artist",
  "Artist",
  "Artist",
  "",
  sizeof(Artist),
  17,
  artist__field_descriptors,
  artist__field_indices_by_name,
  1,  artist__number_ranges,
  (ProtobufCMessageInit) artist__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor album_group__field_descriptors[1] =
{
  {
    "album",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(AlbumGroup, n_album),
    offsetof(AlbumGroup, album),
    &album__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned album_group__field_indices_by_name[] = {
  0,   /* field[0] = album */
};
static const ProtobufCIntRange album_group__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor album_group__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "AlbumGroup",
  "AlbumGroup",
  "AlbumGroup",
  "",
  sizeof(AlbumGroup),
  1,
  album_group__field_descriptors,
  album_group__field_indices_by_name,
  1,  album_group__number_ranges,
  (ProtobufCMessageInit) album_group__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor date__field_descriptors[5] =
{
  {
    "year",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Date, has_year),
    offsetof(Date, year),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "month",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Date, has_month),
    offsetof(Date, month),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "day",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Date, has_day),
    offsetof(Date, day),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "hour",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Date, has_hour),
    offsetof(Date, hour),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "minute",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Date, has_minute),
    offsetof(Date, minute),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned date__field_indices_by_name[] = {
  2,   /* field[2] = day */
  3,   /* field[3] = hour */
  4,   /* field[4] = minute */
  1,   /* field[1] = month */
  0,   /* field[0] = year */
};
static const ProtobufCIntRange date__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 5 }
};
const ProtobufCMessageDescriptor date__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Date",
  "Date",
  "Date",
  "",
  sizeof(Date),
  5,
  date__field_descriptors,
  date__field_indices_by_name,
  1,  date__number_ranges,
  (ProtobufCMessageInit) date__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue album__type__enum_values_by_number[4] =
{
  { "ALBUM", "ALBUM__TYPE__ALBUM", 1 },
  { "SINGLE", "ALBUM__TYPE__SINGLE", 2 },
  { "COMPILATION", "ALBUM__TYPE__COMPILATION", 3 },
  { "EP", "ALBUM__TYPE__EP", 4 },
};
static const ProtobufCIntRange album__type__value_ranges[] = {
{1, 0},{0, 4}
};
static const ProtobufCEnumValueIndex album__type__enum_values_by_name[4] =
{
  { "ALBUM", 0 },
  { "COMPILATION", 2 },
  { "EP", 3 },
  { "SINGLE", 1 },
};
const ProtobufCEnumDescriptor album__type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Album.Type",
  "Type",
  "Album__Type",
  "",
  4,
  album__type__enum_values_by_number,
  4,
  album__type__enum_values_by_name,
  1,
  album__type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor album__field_descriptors[17] =
{
  {
    "gid",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Album, has_gid),
    offsetof(Album, gid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Album, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "artist",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Album, n_artist),
    offsetof(Album, artist),
    &artist__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "typ",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Album, has_typ),
    offsetof(Album, typ),
    &album__type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "label",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Album, label),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "date",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Album, date),
    &date__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "popularity",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Album, has_popularity),
    offsetof(Album, popularity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "genre",
    8,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Album, n_genre),
    offsetof(Album, genre),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "cover",
    9,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Album, n_cover),
    offsetof(Album, cover),
    &image__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "external_id",
    10,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Album, n_external_id),
    offsetof(Album, external_id),
    &external_id__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "disc",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Album, n_disc),
    offsetof(Album, disc),
    &disc__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "review",
    12,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Album, n_review),
    offsetof(Album, review),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "copyright",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Album, n_copyright),
    offsetof(Album, copyright),
    &copyright__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "restriction",
    14,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Album, n_restriction),
    offsetof(Album, restriction),
    &restriction__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "related",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Album, n_related),
    offsetof(Album, related),
    &album__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sale_period",
    16,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Album, n_sale_period),
    offsetof(Album, sale_period),
    &sale_period__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "cover_group",
    17,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Album, cover_group),
    &image_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned album__field_indices_by_name[] = {
  2,   /* field[2] = artist */
  12,   /* field[12] = copyright */
  8,   /* field[8] = cover */
  16,   /* field[16] = cover_group */
  5,   /* field[5] = date */
  10,   /* field[10] = disc */
  9,   /* field[9] = external_id */
  7,   /* field[7] = genre */
  0,   /* field[0] = gid */
  4,   /* field[4] = label */
  1,   /* field[1] = name */
  6,   /* field[6] = popularity */
  14,   /* field[14] = related */
  13,   /* field[13] = restriction */
  11,   /* field[11] = review */
  15,   /* field[15] = sale_period */
  3,   /* field[3] = typ */
};
static const ProtobufCIntRange album__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 17 }
};
const ProtobufCMessageDescriptor album__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Album",
  "Album",
  "Album",
  "",
  sizeof(Album),
  17,
  album__field_descriptors,
  album__field_indices_by_name,
  1,  album__number_ranges,
  (ProtobufCMessageInit) album__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor track__field_descriptors[15] =
{
  {
    "gid",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Track, has_gid),
    offsetof(Track, gid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Track, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "album",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Track, album),
    &album__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "artist",
    4,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Track, n_artist),
    offsetof(Track, artist),
    &artist__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "number",
    5,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Track, has_number),
    offsetof(Track, number),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "disc_number",
    6,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Track, has_disc_number),
    offsetof(Track, disc_number),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "duration",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Track, has_duration),
    offsetof(Track, duration),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "popularity",
    8,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Track, has_popularity),
    offsetof(Track, popularity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "explicit",
    9,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Track, has_explicit_),
    offsetof(Track, explicit_),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "external_id",
    10,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Track, n_external_id),
    offsetof(Track, external_id),
    &external_id__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "restriction",
    11,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Track, n_restriction),
    offsetof(Track, restriction),
    &restriction__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "file",
    12,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Track, n_file),
    offsetof(Track, file),
    &audio_file__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "alternative",
    13,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Track, n_alternative),
    offsetof(Track, alternative),
    &track__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "sale_period",
    14,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Track, n_sale_period),
    offsetof(Track, sale_period),
    &sale_period__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "preview",
    15,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Track, n_preview),
    offsetof(Track, preview),
    &audio_file__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned track__field_indices_by_name[] = {
  2,   /* field[2] = album */
  12,   /* field[12] = alternative */
  3,   /* field[3] = artist */
  5,   /* field[5] = disc_number */
  6,   /* field[6] = duration */
  8,   /* field[8] = explicit */
  9,   /* field[9] = external_id */
  11,   /* field[11] = file */
  0,   /* field[0] = gid */
  1,   /* field[1] = name */
  4,   /* field[4] = number */
  7,   /* field[7] = popularity */
  14,   /* field[14] = preview */
  10,   /* field[10] = restriction */
  13,   /* field[13] = sale_period */
};
static const ProtobufCIntRange track__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 15 }
};
const ProtobufCMessageDescriptor track__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Track",
  "Track",
  "Track",
  "",
  sizeof(Track),
  15,
  track__field_descriptors,
  track__field_indices_by_name,
  1,  track__number_ranges,
  (ProtobufCMessageInit) track__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue image__size__enum_values_by_number[4] =
{
  { "DEFAULT", "IMAGE__SIZE__DEFAULT", 0 },
  { "SMALL", "IMAGE__SIZE__SMALL", 1 },
  { "LARGE", "IMAGE__SIZE__LARGE", 2 },
  { "XLARGE", "IMAGE__SIZE__XLARGE", 3 },
};
static const ProtobufCIntRange image__size__value_ranges[] = {
{0, 0},{0, 4}
};
static const ProtobufCEnumValueIndex image__size__enum_values_by_name[4] =
{
  { "DEFAULT", 0 },
  { "LARGE", 2 },
  { "SMALL", 1 },
  { "XLARGE", 3 },
};
const ProtobufCEnumDescriptor image__size__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Image.Size",
  "Size",
  "Image__Size",
  "",
  4,
  image__size__enum_values_by_number,
  4,
  image__size__enum_values_by_name,
  1,
  image__size__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor image__field_descriptors[4] =
{
  {
    "file_id",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Image, has_file_id),
    offsetof(Image, file_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "size",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Image, has_size),
    offsetof(Image, size),
    &image__size__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "width",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Image, has_width),
    offsetof(Image, width),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "height",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Image, has_height),
    offsetof(Image, height),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned image__field_indices_by_name[] = {
  0,   /* field[0] = file_id */
  3,   /* field[3] = height */
  1,   /* field[1] = size */
  2,   /* field[2] = width */
};
static const ProtobufCIntRange image__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 4 }
};
const ProtobufCMessageDescriptor image__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Image",
  "Image",
  "Image",
  "",
  sizeof(Image),
  4,
  image__field_descriptors,
  image__field_indices_by_name,
  1,  image__number_ranges,
  (ProtobufCMessageInit) image__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor image_group__field_descriptors[1] =
{
  {
    "image",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(ImageGroup, n_image),
    offsetof(ImageGroup, image),
    &image__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned image_group__field_indices_by_name[] = {
  0,   /* field[0] = image */
};
static const ProtobufCIntRange image_group__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor image_group__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ImageGroup",
  "ImageGroup",
  "ImageGroup",
  "",
  sizeof(ImageGroup),
  1,
  image_group__field_descriptors,
  image_group__field_indices_by_name,
  1,  image_group__number_ranges,
  (ProtobufCMessageInit) image_group__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor biography__field_descriptors[3] =
{
  {
    "text",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Biography, text),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "portrait",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Biography, n_portrait),
    offsetof(Biography, portrait),
    &image__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "portrait_group",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Biography, n_portrait_group),
    offsetof(Biography, portrait_group),
    &image_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned biography__field_indices_by_name[] = {
  1,   /* field[1] = portrait */
  2,   /* field[2] = portrait_group */
  0,   /* field[0] = text */
};
static const ProtobufCIntRange biography__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor biography__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Biography",
  "Biography",
  "Biography",
  "",
  sizeof(Biography),
  3,
  biography__field_descriptors,
  biography__field_indices_by_name,
  1,  biography__number_ranges,
  (ProtobufCMessageInit) biography__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor disc__field_descriptors[3] =
{
  {
    "number",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Disc, has_number),
    offsetof(Disc, number),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Disc, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "track",
    3,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Disc, n_track),
    offsetof(Disc, track),
    &track__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned disc__field_indices_by_name[] = {
  1,   /* field[1] = name */
  0,   /* field[0] = number */
  2,   /* field[2] = track */
};
static const ProtobufCIntRange disc__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor disc__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Disc",
  "Disc",
  "Disc",
  "",
  sizeof(Disc),
  3,
  disc__field_descriptors,
  disc__field_indices_by_name,
  1,  disc__number_ranges,
  (ProtobufCMessageInit) disc__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue copyright__type__enum_values_by_number[2] =
{
  { "P", "COPYRIGHT__TYPE__P", 0 },
  { "C", "COPYRIGHT__TYPE__C", 1 },
};
static const ProtobufCIntRange copyright__type__value_ranges[] = {
{0, 0},{0, 2}
};
static const ProtobufCEnumValueIndex copyright__type__enum_values_by_name[2] =
{
  { "C", 1 },
  { "P", 0 },
};
const ProtobufCEnumDescriptor copyright__type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Copyright.Type",
  "Type",
  "Copyright__Type",
  "",
  2,
  copyright__type__enum_values_by_number,
  2,
  copyright__type__enum_values_by_name,
  1,
  copyright__type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor copyright__field_descriptors[2] =
{
  {
    "typ",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Copyright, has_typ),
    offsetof(Copyright, typ),
    &copyright__type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "text",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Copyright, text),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned copyright__field_indices_by_name[] = {
  1,   /* field[1] = text */
  0,   /* field[0] = typ */
};
static const ProtobufCIntRange copyright__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor copyright__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Copyright",
  "Copyright",
  "Copyright",
  "",
  sizeof(Copyright),
  2,
  copyright__field_descriptors,
  copyright__field_indices_by_name,
  1,  copyright__number_ranges,
  (ProtobufCMessageInit) copyright__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue restriction__catalogue__enum_values_by_number[5] =
{
  { "AD", "RESTRICTION__CATALOGUE__AD", 0 },
  { "SUBSCRIPTION", "RESTRICTION__CATALOGUE__SUBSCRIPTION", 1 },
  { "CATALOGUE_ALL", "RESTRICTION__CATALOGUE__CATALOGUE_ALL", 2 },
  { "SHUFFLE", "RESTRICTION__CATALOGUE__SHUFFLE", 3 },
  { "COMMERCIAL", "RESTRICTION__CATALOGUE__COMMERCIAL", 4 },
};
static const ProtobufCIntRange restriction__catalogue__value_ranges[] = {
{0, 0},{0, 5}
};
static const ProtobufCEnumValueIndex restriction__catalogue__enum_values_by_name[5] =
{
  { "AD", 0 },
  { "CATALOGUE_ALL", 2 },
  { "COMMERCIAL", 4 },
  { "SHUFFLE", 3 },
  { "SUBSCRIPTION", 1 },
};
const ProtobufCEnumDescriptor restriction__catalogue__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Restriction.Catalogue",
  "Catalogue",
  "Restriction__Catalogue",
  "",
  5,
  restriction__catalogue__enum_values_by_number,
  5,
  restriction__catalogue__enum_values_by_name,
  1,
  restriction__catalogue__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue restriction__type__enum_values_by_number[1] =
{
  { "STREAMING", "RESTRICTION__TYPE__STREAMING", 0 },
};
static const ProtobufCIntRange restriction__type__value_ranges[] = {
{0, 0},{0, 1}
};
static const ProtobufCEnumValueIndex restriction__type__enum_values_by_name[1] =
{
  { "STREAMING", 0 },
};
const ProtobufCEnumDescriptor restriction__type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Restriction.Type",
  "Type",
  "Restriction__Type",
  "",
  1,
  restriction__type__enum_values_by_number,
  1,
  restriction__type__enum_values_by_name,
  1,
  restriction__type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor restriction__field_descriptors[5] =
{
  {
    "catalogue",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Restriction, n_catalogue),
    offsetof(Restriction, catalogue),
    &restriction__catalogue__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "countries_allowed",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Restriction, countries_allowed),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "countries_forbidden",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Restriction, countries_forbidden),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "typ",
    4,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Restriction, has_typ),
    offsetof(Restriction, typ),
    &restriction__type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "catalogue_str",
    5,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Restriction, n_catalogue_str),
    offsetof(Restriction, catalogue_str),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned restriction__field_indices_by_name[] = {
  0,   /* field[0] = catalogue */
  4,   /* field[4] = catalogue_str */
  1,   /* field[1] = countries_allowed */
  2,   /* field[2] = countries_forbidden */
  3,   /* field[3] = typ */
};
static const ProtobufCIntRange restriction__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 5 }
};
const ProtobufCMessageDescriptor restriction__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Restriction",
  "Restriction",
  "Restriction",
  "",
  sizeof(Restriction),
  5,
  restriction__field_descriptors,
  restriction__field_indices_by_name,
  1,  restriction__number_ranges,
  (ProtobufCMessageInit) restriction__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor availability__field_descriptors[2] =
{
  {
    "catalogue_str",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Availability, n_catalogue_str),
    offsetof(Availability, catalogue_str),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "start",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Availability, start),
    &date__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned availability__field_indices_by_name[] = {
  0,   /* field[0] = catalogue_str */
  1,   /* field[1] = start */
};
static const ProtobufCIntRange availability__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor availability__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Availability",
  "Availability",
  "Availability",
  "",
  sizeof(Availability),
  2,
  availability__field_descriptors,
  availability__field_indices_by_name,
  1,  availability__number_ranges,
  (ProtobufCMessageInit) availability__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor sale_period__field_descriptors[3] =
{
  {
    "restriction",
    1,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(SalePeriod, n_restriction),
    offsetof(SalePeriod, restriction),
    &restriction__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "start",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(SalePeriod, start),
    &date__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "end",
    3,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(SalePeriod, end),
    &date__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned sale_period__field_indices_by_name[] = {
  2,   /* field[2] = end */
  0,   /* field[0] = restriction */
  1,   /* field[1] = start */
};
static const ProtobufCIntRange sale_period__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 3 }
};
const ProtobufCMessageDescriptor sale_period__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "SalePeriod",
  "SalePeriod",
  "SalePeriod",
  "",
  sizeof(SalePeriod),
  3,
  sale_period__field_descriptors,
  sale_period__field_indices_by_name,
  1,  sale_period__number_ranges,
  (ProtobufCMessageInit) sale_period__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor external_id__field_descriptors[2] =
{
  {
    "typ",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(ExternalId, typ),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "id",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(ExternalId, id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned external_id__field_indices_by_name[] = {
  1,   /* field[1] = id */
  0,   /* field[0] = typ */
};
static const ProtobufCIntRange external_id__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor external_id__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "ExternalId",
  "ExternalId",
  "ExternalId",
  "",
  sizeof(ExternalId),
  2,
  external_id__field_descriptors,
  external_id__field_indices_by_name,
  1,  external_id__number_ranges,
  (ProtobufCMessageInit) external_id__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue audio_file__format__enum_values_by_number[14] =
{
  { "OGG_VORBIS_96", "AUDIO_FILE__FORMAT__OGG_VORBIS_96", 0 },
  { "OGG_VORBIS_160", "AUDIO_FILE__FORMAT__OGG_VORBIS_160", 1 },
  { "OGG_VORBIS_320", "AUDIO_FILE__FORMAT__OGG_VORBIS_320", 2 },
  { "MP3_256", "AUDIO_FILE__FORMAT__MP3_256", 3 },
  { "MP3_320", "AUDIO_FILE__FORMAT__MP3_320", 4 },
  { "MP3_160", "AUDIO_FILE__FORMAT__MP3_160", 5 },
  { "MP3_96", "AUDIO_FILE__FORMAT__MP3_96", 6 },
  { "MP3_160_ENC", "AUDIO_FILE__FORMAT__MP3_160_ENC", 7 },
  { "MP4_128_DUAL", "AUDIO_FILE__FORMAT__MP4_128_DUAL", 8 },
  { "OTHER3", "AUDIO_FILE__FORMAT__OTHER3", 9 },
  { "AAC_160", "AUDIO_FILE__FORMAT__AAC_160", 10 },
  { "AAC_320", "AUDIO_FILE__FORMAT__AAC_320", 11 },
  { "MP4_128", "AUDIO_FILE__FORMAT__MP4_128", 12 },
  { "OTHER5", "AUDIO_FILE__FORMAT__OTHER5", 13 },
};
static const ProtobufCIntRange audio_file__format__value_ranges[] = {
{0, 0},{0, 14}
};
static const ProtobufCEnumValueIndex audio_file__format__enum_values_by_name[14] =
{
  { "AAC_160", 10 },
  { "AAC_320", 11 },
  { "MP3_160", 5 },
  { "MP3_160_ENC", 7 },
  { "MP3_256", 3 },
  { "MP3_320", 4 },
  { "MP3_96", 6 },
  { "MP4_128", 12 },
  { "MP4_128_DUAL", 8 },
  { "OGG_VORBIS_160", 1 },
  { "OGG_VORBIS_320", 2 },
  { "OGG_VORBIS_96", 0 },
  { "OTHER3", 9 },
  { "OTHER5", 13 },
};
const ProtobufCEnumDescriptor audio_file__format__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "AudioFile.Format",
  "Format",
  "AudioFile__Format",
  "",
  14,
  audio_file__format__enum_values_by_number,
  14,
  audio_file__format__enum_values_by_name,
  1,
  audio_file__format__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor audio_file__field_descriptors[2] =
{
  {
    "file_id",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(AudioFile, has_file_id),
    offsetof(AudioFile, file_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "format",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(AudioFile, has_format),
    offsetof(AudioFile, format),
    &audio_file__format__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned audio_file__field_indices_by_name[] = {
  0,   /* field[0] = file_id */
  1,   /* field[1] = format */
};
static const ProtobufCIntRange audio_file__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor audio_file__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "AudioFile",
  "AudioFile",
  "AudioFile",
  "",
  sizeof(AudioFile),
  2,
  audio_file__field_descriptors,
  audio_file__field_indices_by_name,
  1,  audio_file__number_ranges,
  (ProtobufCMessageInit) audio_file__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor video_file__field_descriptors[1] =
{
  {
    "file_id",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(VideoFile, has_file_id),
    offsetof(VideoFile, file_id),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned video_file__field_indices_by_name[] = {
  0,   /* field[0] = file_id */
};
static const ProtobufCIntRange video_file__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor video_file__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "VideoFile",
  "VideoFile",
  "VideoFile",
  "",
  sizeof(VideoFile),
  1,
  video_file__field_descriptors,
  video_file__field_indices_by_name,
  1,  video_file__number_ranges,
  (ProtobufCMessageInit) video_file__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCEnumValue show__media_type__enum_values_by_number[3] =
{
  { "MIXED", "SHOW__MEDIA_TYPE__MIXED", 0 },
  { "AUDIO", "SHOW__MEDIA_TYPE__AUDIO", 1 },
  { "VIDEO", "SHOW__MEDIA_TYPE__VIDEO", 2 },
};
static const ProtobufCIntRange show__media_type__value_ranges[] = {
{0, 0},{0, 3}
};
static const ProtobufCEnumValueIndex show__media_type__enum_values_by_name[3] =
{
  { "AUDIO", 1 },
  { "MIXED", 0 },
  { "VIDEO", 2 },
};
const ProtobufCEnumDescriptor show__media_type__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Show.MediaType",
  "MediaType",
  "Show__MediaType",
  "",
  3,
  show__media_type__enum_values_by_number,
  3,
  show__media_type__enum_values_by_name,
  1,
  show__media_type__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue show__consumption_order__enum_values_by_number[3] =
{
  { "SEQUENTIAL", "SHOW__CONSUMPTION_ORDER__SEQUENTIAL", 1 },
  { "EPISODIC", "SHOW__CONSUMPTION_ORDER__EPISODIC", 2 },
  { "RECENT", "SHOW__CONSUMPTION_ORDER__RECENT", 3 },
};
static const ProtobufCIntRange show__consumption_order__value_ranges[] = {
{1, 0},{0, 3}
};
static const ProtobufCEnumValueIndex show__consumption_order__enum_values_by_name[3] =
{
  { "EPISODIC", 1 },
  { "RECENT", 2 },
  { "SEQUENTIAL", 0 },
};
const ProtobufCEnumDescriptor show__consumption_order__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Show.ConsumptionOrder",
  "ConsumptionOrder",
  "Show__ConsumptionOrder",
  "",
  3,
  show__consumption_order__enum_values_by_number,
  3,
  show__consumption_order__enum_values_by_name,
  1,
  show__consumption_order__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCEnumValue show__passthrough_enum__enum_values_by_number[3] =
{
  { "UNKNOWN", "SHOW__PASSTHROUGH_ENUM__UNKNOWN", 0 },
  { "NONE", "SHOW__PASSTHROUGH_ENUM__NONE", 1 },
  { "ALLOWED", "SHOW__PASSTHROUGH_ENUM__ALLOWED", 2 },
};
static const ProtobufCIntRange show__passthrough_enum__value_ranges[] = {
{0, 0},{0, 3}
};
static const ProtobufCEnumValueIndex show__passthrough_enum__enum_values_by_name[3] =
{
  { "ALLOWED", 2 },
  { "NONE", 1 },
  { "UNKNOWN", 0 },
};
const ProtobufCEnumDescriptor show__passthrough_enum__descriptor =
{
  PROTOBUF_C__ENUM_DESCRIPTOR_MAGIC,
  "Show.PassthroughEnum",
  "PassthroughEnum",
  "Show__PassthroughEnum",
  "",
  3,
  show__passthrough_enum__enum_values_by_number,
  3,
  show__passthrough_enum__enum_values_by_name,
  1,
  show__passthrough_enum__value_ranges,
  NULL,NULL,NULL,NULL   /* reserved[1234] */
};
static const ProtobufCFieldDescriptor show__field_descriptors[19] =
{
  {
    "gid",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Show, has_gid),
    offsetof(Show, gid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Show, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "description",
    64,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Show, description),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "deprecated_popularity",
    65,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Show, has_deprecated_popularity),
    offsetof(Show, deprecated_popularity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "publisher",
    66,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Show, publisher),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "language",
    67,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Show, language),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "explicit",
    68,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Show, has_explicit_),
    offsetof(Show, explicit_),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "covers",
    69,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Show, covers),
    &image_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "episode",
    70,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Show, n_episode),
    offsetof(Show, episode),
    &episode__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "copyright",
    71,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Show, n_copyright),
    offsetof(Show, copyright),
    &copyright__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "restriction",
    72,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Show, n_restriction),
    offsetof(Show, restriction),
    &restriction__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "keyword",
    73,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Show, n_keyword),
    offsetof(Show, keyword),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "media_type",
    74,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Show, has_media_type),
    offsetof(Show, media_type),
    &show__media_type__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "consumption_order",
    75,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Show, has_consumption_order),
    offsetof(Show, consumption_order),
    &show__consumption_order__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "interpret_restriction_using_geoip",
    76,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Show, has_interpret_restriction_using_geoip),
    offsetof(Show, interpret_restriction_using_geoip),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "availability",
    78,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Show, n_availability),
    offsetof(Show, availability),
    &availability__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "country_of_origin",
    79,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Show, country_of_origin),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "categories",
    80,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Show, n_categories),
    offsetof(Show, categories),
    &category__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "passthrough",
    81,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_ENUM,
    offsetof(Show, has_passthrough),
    offsetof(Show, passthrough),
    &show__passthrough_enum__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned show__field_indices_by_name[] = {
  15,   /* field[15] = availability */
  17,   /* field[17] = categories */
  13,   /* field[13] = consumption_order */
  9,   /* field[9] = copyright */
  16,   /* field[16] = country_of_origin */
  7,   /* field[7] = covers */
  3,   /* field[3] = deprecated_popularity */
  2,   /* field[2] = description */
  8,   /* field[8] = episode */
  6,   /* field[6] = explicit */
  0,   /* field[0] = gid */
  14,   /* field[14] = interpret_restriction_using_geoip */
  11,   /* field[11] = keyword */
  5,   /* field[5] = language */
  12,   /* field[12] = media_type */
  1,   /* field[1] = name */
  18,   /* field[18] = passthrough */
  4,   /* field[4] = publisher */
  10,   /* field[10] = restriction */
};
static const ProtobufCIntRange show__number_ranges[3 + 1] =
{
  { 1, 0 },
  { 64, 2 },
  { 78, 15 },
  { 0, 19 }
};
const ProtobufCMessageDescriptor show__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Show",
  "Show",
  "Show",
  "",
  sizeof(Show),
  19,
  show__field_descriptors,
  show__field_indices_by_name,
  3,  show__number_ranges,
  (ProtobufCMessageInit) show__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor episode__field_descriptors[25] =
{
  {
    "gid",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(Episode, has_gid),
    offsetof(Episode, gid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "name",
    2,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Episode, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "duration",
    7,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Episode, has_duration),
    offsetof(Episode, duration),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "popularity",
    8,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Episode, has_popularity),
    offsetof(Episode, popularity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "file",
    12,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Episode, n_file),
    offsetof(Episode, file),
    &audio_file__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "description",
    64,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Episode, description),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "number",
    65,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Episode, has_number),
    offsetof(Episode, number),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "publish_time",
    66,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Episode, publish_time),
    &date__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "deprecated_popularity",
    67,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_SINT32,
    offsetof(Episode, has_deprecated_popularity),
    offsetof(Episode, deprecated_popularity),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "covers",
    68,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Episode, covers),
    &image_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "language",
    69,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Episode, language),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "explicit",
    70,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Episode, has_explicit_),
    offsetof(Episode, explicit_),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "show",
    71,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Episode, show),
    &show__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "video",
    72,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Episode, n_video),
    offsetof(Episode, video),
    &video_file__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "video_preview",
    73,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Episode, n_video_preview),
    offsetof(Episode, video_preview),
    &video_file__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "audio_preview",
    74,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Episode, n_audio_preview),
    offsetof(Episode, audio_preview),
    &audio_file__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "restriction",
    75,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Episode, n_restriction),
    offsetof(Episode, restriction),
    &restriction__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "freeze_frame",
    76,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Episode, freeze_frame),
    &image_group__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "keyword",
    77,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_STRING,
    offsetof(Episode, n_keyword),
    offsetof(Episode, keyword),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "suppress_monetization",
    78,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Episode, has_suppress_monetization),
    offsetof(Episode, suppress_monetization),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "interpret_restriction_using_geoip",
    79,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Episode, has_interpret_restriction_using_geoip),
    offsetof(Episode, interpret_restriction_using_geoip),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "allow_background_playback",
    81,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BOOL,
    offsetof(Episode, has_allow_background_playback),
    offsetof(Episode, allow_background_playback),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "availability",
    82,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Episode, n_availability),
    offsetof(Episode, availability),
    &availability__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "external_url",
    83,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Episode, external_url),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "original_audio",
    84,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_MESSAGE,
    0,   /* quantifier_offset */
    offsetof(Episode, original_audio),
    &original_audio__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned episode__field_indices_by_name[] = {
  21,   /* field[21] = allow_background_playback */
  15,   /* field[15] = audio_preview */
  22,   /* field[22] = availability */
  9,   /* field[9] = covers */
  8,   /* field[8] = deprecated_popularity */
  5,   /* field[5] = description */
  2,   /* field[2] = duration */
  11,   /* field[11] = explicit */
  23,   /* field[23] = external_url */
  4,   /* field[4] = file */
  17,   /* field[17] = freeze_frame */
  0,   /* field[0] = gid */
  20,   /* field[20] = interpret_restriction_using_geoip */
  18,   /* field[18] = keyword */
  10,   /* field[10] = language */
  1,   /* field[1] = name */
  6,   /* field[6] = number */
  24,   /* field[24] = original_audio */
  3,   /* field[3] = popularity */
  7,   /* field[7] = publish_time */
  16,   /* field[16] = restriction */
  12,   /* field[12] = show */
  19,   /* field[19] = suppress_monetization */
  13,   /* field[13] = video */
  14,   /* field[14] = video_preview */
};
static const ProtobufCIntRange episode__number_ranges[5 + 1] =
{
  { 1, 0 },
  { 7, 2 },
  { 12, 4 },
  { 64, 5 },
  { 81, 21 },
  { 0, 25 }
};
const ProtobufCMessageDescriptor episode__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Episode",
  "Episode",
  "Episode",
  "",
  sizeof(Episode),
  25,
  episode__field_descriptors,
  episode__field_indices_by_name,
  5,  episode__number_ranges,
  (ProtobufCMessageInit) episode__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor category__field_descriptors[2] =
{
  {
    "name",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_STRING,
    0,   /* quantifier_offset */
    offsetof(Category, name),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
  {
    "subcategories",
    2,
    PROTOBUF_C_LABEL_REPEATED,
    PROTOBUF_C_TYPE_MESSAGE,
    offsetof(Category, n_subcategories),
    offsetof(Category, subcategories),
    &category__descriptor,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned category__field_indices_by_name[] = {
  0,   /* field[0] = name */
  1,   /* field[1] = subcategories */
};
static const ProtobufCIntRange category__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 2 }
};
const ProtobufCMessageDescriptor category__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "Category",
  "Category",
  "Category",
  "",
  sizeof(Category),
  2,
  category__field_descriptors,
  category__field_indices_by_name,
  1,  category__number_ranges,
  (ProtobufCMessageInit) category__init,
  NULL,NULL,NULL    /* reserved[123] */
};
static const ProtobufCFieldDescriptor original_audio__field_descriptors[1] =
{
  {
    "uuid",
    1,
    PROTOBUF_C_LABEL_OPTIONAL,
    PROTOBUF_C_TYPE_BYTES,
    offsetof(OriginalAudio, has_uuid),
    offsetof(OriginalAudio, uuid),
    NULL,
    NULL,
    0,             /* flags */
    0,NULL,NULL    /* reserved1,reserved2, etc */
  },
};
static const unsigned original_audio__field_indices_by_name[] = {
  0,   /* field[0] = uuid */
};
static const ProtobufCIntRange original_audio__number_ranges[1 + 1] =
{
  { 1, 0 },
  { 0, 1 }
};
const ProtobufCMessageDescriptor original_audio__descriptor =
{
  PROTOBUF_C__MESSAGE_DESCRIPTOR_MAGIC,
  "OriginalAudio",
  "OriginalAudio",
  "OriginalAudio",
  "",
  sizeof(OriginalAudio),
  1,
  original_audio__field_descriptors,
  original_audio__field_indices_by_name,
  1,  original_audio__number_ranges,
  (ProtobufCMessageInit) original_audio__init,
  NULL,NULL,NULL    /* reserved[123] */
};
