src/runtime/Tests/UnittestLite.pb.m
// Generated by the protocol buffer compiler.  DO NOT EDIT!

#import "UnittestLite.pb.h"

@implementation UnittestLiteRoot
static id<PBExtensionField> UnittestLiteRoot_optionalInt32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalInt64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalUint32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalUint64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalSint32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalSint64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalFixed32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalFixed64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalSfixed32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalSfixed64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalFloatExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalDoubleExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalBoolExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalStringExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalBytesExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalGroupExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalNestedMessageExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalForeignMessageExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalImportMessageExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalNestedEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalForeignEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalImportEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalStringPieceExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_optionalCordExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedInt32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedInt64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedUint32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedUint64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedSint32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedSint64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedFixed32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedFixed64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedSfixed32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedSfixed64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedFloatExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedDoubleExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedBoolExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedStringExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedBytesExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedGroupExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedNestedMessageExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedForeignMessageExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedImportMessageExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedNestedEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedForeignEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedImportEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedStringPieceExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_repeatedCordExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultInt32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultInt64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultUint32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultUint64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultSint32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultSint64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultFixed32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultFixed64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultSfixed32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultSfixed64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultFloatExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultDoubleExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultBoolExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultStringExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultBytesExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultNestedEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultForeignEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultImportEnumExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultStringPieceExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_defaultCordExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedInt32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedInt64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedUint32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedUint64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedSint32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedSint64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedFixed32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedFixed64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedSfixed32ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedSfixed64ExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedFloatExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedDoubleExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedBoolExtensionLite = nil;
static id<PBExtensionField> UnittestLiteRoot_packedEnumExtensionLite = nil;
static id<PBExtensionField> TestNestedExtensionLite_nestedExtension = nil;
static PBExtensionRegistry* extensionRegistry = nil;
+ (PBExtensionRegistry*) extensionRegistry {
  return extensionRegistry;
}

+ (void) initialize {
  if (self == [UnittestLiteRoot class]) {
    UnittestLiteRoot_optionalInt32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:1
                                      defaultValue:[NSNumber numberWithInt:0]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalInt64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:2
                                      defaultValue:[NSNumber numberWithLongLong:0L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalUint32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeUInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:3
                                      defaultValue:[NSNumber numberWithInt:0]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalUint64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeUInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:4
                                      defaultValue:[NSNumber numberWithLongLong:0L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalSint32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:5
                                      defaultValue:[NSNumber numberWithInt:0]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalSint64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:6
                                      defaultValue:[NSNumber numberWithLongLong:0L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalFixed32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFixed32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:7
                                      defaultValue:[NSNumber numberWithInt:0]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalFixed64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFixed64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:8
                                      defaultValue:[NSNumber numberWithLongLong:0L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalSfixed32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSFixed32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:9
                                      defaultValue:[NSNumber numberWithInt:0]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalSfixed64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSFixed64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:10
                                      defaultValue:[NSNumber numberWithLongLong:0L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalFloatExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFloat
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:11
                                      defaultValue:[NSNumber numberWithFloat:0]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalDoubleExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeDouble
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:12
                                      defaultValue:[NSNumber numberWithDouble:0]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalBoolExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeBool
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:13
                                      defaultValue:[NSNumber numberWithBool:NO]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalStringExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:14
                                      defaultValue:@""
                               messageOrGroupClass:[NSString class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalBytesExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeBytes
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:15
                                      defaultValue:[NSData data]
                               messageOrGroupClass:[NSData class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalGroupExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeGroup
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:16
                                      defaultValue:[OptionalGroup_extension_lite defaultInstance]
                               messageOrGroupClass:[OptionalGroup_extension_lite class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalNestedMessageExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeMessage
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:18
                                      defaultValue:[TestAllTypesLite_NestedMessage defaultInstance]
                               messageOrGroupClass:[TestAllTypesLite_NestedMessage class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalForeignMessageExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeMessage
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:19
                                      defaultValue:[ForeignMessageLite defaultInstance]
                               messageOrGroupClass:[ForeignMessageLite class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalImportMessageExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeMessage
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:20
                                      defaultValue:[ImportMessageLite defaultInstance]
                               messageOrGroupClass:[ImportMessageLite class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalNestedEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:21
                                      defaultValue:[NSNumber numberWithInt:TestAllTypesLite_NestedEnumFoo]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalForeignEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:22
                                      defaultValue:[NSNumber numberWithInt:ForeignEnumLiteForeignLiteFoo]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalImportEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:23
                                      defaultValue:[NSNumber numberWithInt:ImportEnumLiteImportLiteFoo]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalStringPieceExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:24
                                      defaultValue:@""
                               messageOrGroupClass:[NSString class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_optionalCordExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:25
                                      defaultValue:@""
                               messageOrGroupClass:[NSString class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedInt32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:31
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedInt64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:32
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedUint32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeUInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:33
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeUInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedUint64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeUInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:34
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeUInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedSint32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:35
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedSint64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:36
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedFixed32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFixed32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:37
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeUInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedFixed64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFixed64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:38
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeUInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedSfixed32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSFixed32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:39
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedSfixed64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSFixed64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:40
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedFloatExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFloat
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:41
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeFloat]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedDoubleExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeDouble
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:42
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeDouble]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedBoolExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeBool
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:43
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeBool]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedStringExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:44
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[NSString class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedBytesExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeBytes
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:45
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[NSData class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedGroupExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeGroup
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:46
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[RepeatedGroup_extension_lite class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedNestedMessageExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeMessage
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:48
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[TestAllTypesLite_NestedMessage class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedForeignMessageExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeMessage
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:49
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[ForeignMessageLite class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedImportMessageExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeMessage
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:50
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[ImportMessageLite class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedNestedEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:51
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedForeignEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:52
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedImportEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:53
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedStringPieceExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:54
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[NSString class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_repeatedCordExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:55
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[NSString class]
                                        isRepeated:YES
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultInt32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:61
                                      defaultValue:[NSNumber numberWithInt:41]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultInt64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:62
                                      defaultValue:[NSNumber numberWithLongLong:42L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultUint32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeUInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:63
                                      defaultValue:[NSNumber numberWithInt:43]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultUint64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeUInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:64
                                      defaultValue:[NSNumber numberWithLongLong:44L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultSint32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:65
                                      defaultValue:[NSNumber numberWithInt:-45]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultSint64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSInt64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:66
                                      defaultValue:[NSNumber numberWithLongLong:46L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultFixed32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFixed32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:67
                                      defaultValue:[NSNumber numberWithInt:47]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultFixed64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFixed64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:68
                                      defaultValue:[NSNumber numberWithLongLong:48L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultSfixed32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSFixed32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:69
                                      defaultValue:[NSNumber numberWithInt:49]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultSfixed64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSFixed64
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:70
                                      defaultValue:[NSNumber numberWithLongLong:-50L]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultFloatExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFloat
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:71
                                      defaultValue:[NSNumber numberWithFloat:51.5]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultDoubleExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeDouble
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:72
                                      defaultValue:[NSNumber numberWithDouble:52000]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultBoolExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeBool
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:73
                                      defaultValue:[NSNumber numberWithBool:YES]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultStringExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:74
                                      defaultValue:@"hello"
                               messageOrGroupClass:[NSString class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultBytesExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeBytes
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:75
                                      defaultValue:[NSData dataWithBytes:"world" length:5]
                               messageOrGroupClass:[NSData class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultNestedEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:81
                                      defaultValue:[NSNumber numberWithInt:TestAllTypesLite_NestedEnumBar]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultForeignEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:82
                                      defaultValue:[NSNumber numberWithInt:ForeignEnumLiteForeignLiteBar]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultImportEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:83
                                      defaultValue:[NSNumber numberWithInt:ImportEnumLiteImportLiteBar]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultStringPieceExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:84
                                      defaultValue:@"abc"
                               messageOrGroupClass:[NSString class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_defaultCordExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeString
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:85
                                      defaultValue:@"123"
                               messageOrGroupClass:[NSString class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedInt32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt32
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:90
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedInt64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt64
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:91
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedUint32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeUInt32
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:92
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeUInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedUint64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeUInt64
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:93
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeUInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedSint32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSInt32
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:94
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedSint64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSInt64
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:95
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedFixed32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFixed32
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:96
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeUInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedFixed64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFixed64
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:97
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeUInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedSfixed32ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSFixed32
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:98
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt32]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedSfixed64ExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeSFixed64
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:99
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeInt64]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedFloatExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeFloat
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:100
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeFloat]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedDoubleExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeDouble
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:101
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeDouble]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedBoolExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeBool
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:102
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeBool]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    UnittestLiteRoot_packedEnumExtensionLite =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeEnum
                                     extendedClass:[TestPackedExtensionsLite class]
                                       fieldNumber:103
                                      defaultValue:[PBArray arrayWithValueType:PBArrayValueTypeObject]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:YES
                                          isPacked:YES
                            isMessageSetWireFormat:NO] retain];
    TestNestedExtensionLite_nestedExtension =
      [[PBConcreteExtensionField extensionWithType:PBExtensionTypeInt32
                                     extendedClass:[TestAllExtensionsLite class]
                                       fieldNumber:12345
                                      defaultValue:[NSNumber numberWithInt:0]
                               messageOrGroupClass:[NSNumber class]
                                        isRepeated:NO
                                          isPacked:NO
                            isMessageSetWireFormat:NO] retain];
    PBMutableExtensionRegistry* registry = [PBMutableExtensionRegistry registry];
    [self registerAllExtensions:registry];
    [UnittestImportLiteRoot registerAllExtensions:registry];
    extensionRegistry = [registry retain];
  }
}
+ (void) registerAllExtensions:(PBMutableExtensionRegistry*) registry {
  [registry addExtension:UnittestLiteRoot_optionalInt32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalInt64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalUint32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalUint64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalSint32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalSint64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalFixed32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalFixed64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalSfixed32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalSfixed64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalFloatExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalDoubleExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalBoolExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalStringExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalBytesExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalGroupExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalNestedMessageExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalForeignMessageExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalImportMessageExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalNestedEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalForeignEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalImportEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalStringPieceExtensionLite];
  [registry addExtension:UnittestLiteRoot_optionalCordExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedInt32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedInt64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedUint32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedUint64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedSint32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedSint64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedFixed32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedFixed64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedSfixed32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedSfixed64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedFloatExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedDoubleExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedBoolExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedStringExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedBytesExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedGroupExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedNestedMessageExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedForeignMessageExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedImportMessageExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedNestedEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedForeignEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedImportEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedStringPieceExtensionLite];
  [registry addExtension:UnittestLiteRoot_repeatedCordExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultInt32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultInt64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultUint32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultUint64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultSint32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultSint64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultFixed32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultFixed64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultSfixed32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultSfixed64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultFloatExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultDoubleExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultBoolExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultStringExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultBytesExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultNestedEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultForeignEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultImportEnumExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultStringPieceExtensionLite];
  [registry addExtension:UnittestLiteRoot_defaultCordExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedInt32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedInt64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedUint32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedUint64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedSint32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedSint64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedFixed32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedFixed64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedSfixed32ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedSfixed64ExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedFloatExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedDoubleExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedBoolExtensionLite];
  [registry addExtension:UnittestLiteRoot_packedEnumExtensionLite];
  [registry addExtension:TestNestedExtensionLite_nestedExtension];
}
+ (id<PBExtensionField>) optionalInt32ExtensionLite {
  return UnittestLiteRoot_optionalInt32ExtensionLite;
}
+ (id<PBExtensionField>) optionalInt64ExtensionLite {
  return UnittestLiteRoot_optionalInt64ExtensionLite;
}
+ (id<PBExtensionField>) optionalUint32ExtensionLite {
  return UnittestLiteRoot_optionalUint32ExtensionLite;
}
+ (id<PBExtensionField>) optionalUint64ExtensionLite {
  return UnittestLiteRoot_optionalUint64ExtensionLite;
}
+ (id<PBExtensionField>) optionalSint32ExtensionLite {
  return UnittestLiteRoot_optionalSint32ExtensionLite;
}
+ (id<PBExtensionField>) optionalSint64ExtensionLite {
  return UnittestLiteRoot_optionalSint64ExtensionLite;
}
+ (id<PBExtensionField>) optionalFixed32ExtensionLite {
  return UnittestLiteRoot_optionalFixed32ExtensionLite;
}
+ (id<PBExtensionField>) optionalFixed64ExtensionLite {
  return UnittestLiteRoot_optionalFixed64ExtensionLite;
}
+ (id<PBExtensionField>) optionalSfixed32ExtensionLite {
  return UnittestLiteRoot_optionalSfixed32ExtensionLite;
}
+ (id<PBExtensionField>) optionalSfixed64ExtensionLite {
  return UnittestLiteRoot_optionalSfixed64ExtensionLite;
}
+ (id<PBExtensionField>) optionalFloatExtensionLite {
  return UnittestLiteRoot_optionalFloatExtensionLite;
}
+ (id<PBExtensionField>) optionalDoubleExtensionLite {
  return UnittestLiteRoot_optionalDoubleExtensionLite;
}
+ (id<PBExtensionField>) optionalBoolExtensionLite {
  return UnittestLiteRoot_optionalBoolExtensionLite;
}
+ (id<PBExtensionField>) optionalStringExtensionLite {
  return UnittestLiteRoot_optionalStringExtensionLite;
}
+ (id<PBExtensionField>) optionalBytesExtensionLite {
  return UnittestLiteRoot_optionalBytesExtensionLite;
}
+ (id<PBExtensionField>) optionalGroupExtensionLite {
  return UnittestLiteRoot_optionalGroupExtensionLite;
}
+ (id<PBExtensionField>) optionalNestedMessageExtensionLite {
  return UnittestLiteRoot_optionalNestedMessageExtensionLite;
}
+ (id<PBExtensionField>) optionalForeignMessageExtensionLite {
  return UnittestLiteRoot_optionalForeignMessageExtensionLite;
}
+ (id<PBExtensionField>) optionalImportMessageExtensionLite {
  return UnittestLiteRoot_optionalImportMessageExtensionLite;
}
+ (id<PBExtensionField>) optionalNestedEnumExtensionLite {
  return UnittestLiteRoot_optionalNestedEnumExtensionLite;
}
+ (id<PBExtensionField>) optionalForeignEnumExtensionLite {
  return UnittestLiteRoot_optionalForeignEnumExtensionLite;
}
+ (id<PBExtensionField>) optionalImportEnumExtensionLite {
  return UnittestLiteRoot_optionalImportEnumExtensionLite;
}
+ (id<PBExtensionField>) optionalStringPieceExtensionLite {
  return UnittestLiteRoot_optionalStringPieceExtensionLite;
}
+ (id<PBExtensionField>) optionalCordExtensionLite {
  return UnittestLiteRoot_optionalCordExtensionLite;
}
+ (id<PBExtensionField>) repeatedInt32ExtensionLite {
  return UnittestLiteRoot_repeatedInt32ExtensionLite;
}
+ (id<PBExtensionField>) repeatedInt64ExtensionLite {
  return UnittestLiteRoot_repeatedInt64ExtensionLite;
}
+ (id<PBExtensionField>) repeatedUint32ExtensionLite {
  return UnittestLiteRoot_repeatedUint32ExtensionLite;
}
+ (id<PBExtensionField>) repeatedUint64ExtensionLite {
  return UnittestLiteRoot_repeatedUint64ExtensionLite;
}
+ (id<PBExtensionField>) repeatedSint32ExtensionLite {
  return UnittestLiteRoot_repeatedSint32ExtensionLite;
}
+ (id<PBExtensionField>) repeatedSint64ExtensionLite {
  return UnittestLiteRoot_repeatedSint64ExtensionLite;
}
+ (id<PBExtensionField>) repeatedFixed32ExtensionLite {
  return UnittestLiteRoot_repeatedFixed32ExtensionLite;
}
+ (id<PBExtensionField>) repeatedFixed64ExtensionLite {
  return UnittestLiteRoot_repeatedFixed64ExtensionLite;
}
+ (id<PBExtensionField>) repeatedSfixed32ExtensionLite {
  return UnittestLiteRoot_repeatedSfixed32ExtensionLite;
}
+ (id<PBExtensionField>) repeatedSfixed64ExtensionLite {
  return UnittestLiteRoot_repeatedSfixed64ExtensionLite;
}
+ (id<PBExtensionField>) repeatedFloatExtensionLite {
  return UnittestLiteRoot_repeatedFloatExtensionLite;
}
+ (id<PBExtensionField>) repeatedDoubleExtensionLite {
  return UnittestLiteRoot_repeatedDoubleExtensionLite;
}
+ (id<PBExtensionField>) repeatedBoolExtensionLite {
  return UnittestLiteRoot_repeatedBoolExtensionLite;
}
+ (id<PBExtensionField>) repeatedStringExtensionLite {
  return UnittestLiteRoot_repeatedStringExtensionLite;
}
+ (id<PBExtensionField>) repeatedBytesExtensionLite {
  return UnittestLiteRoot_repeatedBytesExtensionLite;
}
+ (id<PBExtensionField>) repeatedGroupExtensionLite {
  return UnittestLiteRoot_repeatedGroupExtensionLite;
}
+ (id<PBExtensionField>) repeatedNestedMessageExtensionLite {
  return UnittestLiteRoot_repeatedNestedMessageExtensionLite;
}
+ (id<PBExtensionField>) repeatedForeignMessageExtensionLite {
  return UnittestLiteRoot_repeatedForeignMessageExtensionLite;
}
+ (id<PBExtensionField>) repeatedImportMessageExtensionLite {
  return UnittestLiteRoot_repeatedImportMessageExtensionLite;
}
+ (id<PBExtensionField>) repeatedNestedEnumExtensionLite {
  return UnittestLiteRoot_repeatedNestedEnumExtensionLite;
}
+ (id<PBExtensionField>) repeatedForeignEnumExtensionLite {
  return UnittestLiteRoot_repeatedForeignEnumExtensionLite;
}
+ (id<PBExtensionField>) repeatedImportEnumExtensionLite {
  return UnittestLiteRoot_repeatedImportEnumExtensionLite;
}
+ (id<PBExtensionField>) repeatedStringPieceExtensionLite {
  return UnittestLiteRoot_repeatedStringPieceExtensionLite;
}
+ (id<PBExtensionField>) repeatedCordExtensionLite {
  return UnittestLiteRoot_repeatedCordExtensionLite;
}
+ (id<PBExtensionField>) defaultInt32ExtensionLite {
  return UnittestLiteRoot_defaultInt32ExtensionLite;
}
+ (id<PBExtensionField>) defaultInt64ExtensionLite {
  return UnittestLiteRoot_defaultInt64ExtensionLite;
}
+ (id<PBExtensionField>) defaultUint32ExtensionLite {
  return UnittestLiteRoot_defaultUint32ExtensionLite;
}
+ (id<PBExtensionField>) defaultUint64ExtensionLite {
  return UnittestLiteRoot_defaultUint64ExtensionLite;
}
+ (id<PBExtensionField>) defaultSint32ExtensionLite {
  return UnittestLiteRoot_defaultSint32ExtensionLite;
}
+ (id<PBExtensionField>) defaultSint64ExtensionLite {
  return UnittestLiteRoot_defaultSint64ExtensionLite;
}
+ (id<PBExtensionField>) defaultFixed32ExtensionLite {
  return UnittestLiteRoot_defaultFixed32ExtensionLite;
}
+ (id<PBExtensionField>) defaultFixed64ExtensionLite {
  return UnittestLiteRoot_defaultFixed64ExtensionLite;
}
+ (id<PBExtensionField>) defaultSfixed32ExtensionLite {
  return UnittestLiteRoot_defaultSfixed32ExtensionLite;
}
+ (id<PBExtensionField>) defaultSfixed64ExtensionLite {
  return UnittestLiteRoot_defaultSfixed64ExtensionLite;
}
+ (id<PBExtensionField>) defaultFloatExtensionLite {
  return UnittestLiteRoot_defaultFloatExtensionLite;
}
+ (id<PBExtensionField>) defaultDoubleExtensionLite {
  return UnittestLiteRoot_defaultDoubleExtensionLite;
}
+ (id<PBExtensionField>) defaultBoolExtensionLite {
  return UnittestLiteRoot_defaultBoolExtensionLite;
}
+ (id<PBExtensionField>) defaultStringExtensionLite {
  return UnittestLiteRoot_defaultStringExtensionLite;
}
+ (id<PBExtensionField>) defaultBytesExtensionLite {
  return UnittestLiteRoot_defaultBytesExtensionLite;
}
+ (id<PBExtensionField>) defaultNestedEnumExtensionLite {
  return UnittestLiteRoot_defaultNestedEnumExtensionLite;
}
+ (id<PBExtensionField>) defaultForeignEnumExtensionLite {
  return UnittestLiteRoot_defaultForeignEnumExtensionLite;
}
+ (id<PBExtensionField>) defaultImportEnumExtensionLite {
  return UnittestLiteRoot_defaultImportEnumExtensionLite;
}
+ (id<PBExtensionField>) defaultStringPieceExtensionLite {
  return UnittestLiteRoot_defaultStringPieceExtensionLite;
}
+ (id<PBExtensionField>) defaultCordExtensionLite {
  return UnittestLiteRoot_defaultCordExtensionLite;
}
+ (id<PBExtensionField>) packedInt32ExtensionLite {
  return UnittestLiteRoot_packedInt32ExtensionLite;
}
+ (id<PBExtensionField>) packedInt64ExtensionLite {
  return UnittestLiteRoot_packedInt64ExtensionLite;
}
+ (id<PBExtensionField>) packedUint32ExtensionLite {
  return UnittestLiteRoot_packedUint32ExtensionLite;
}
+ (id<PBExtensionField>) packedUint64ExtensionLite {
  return UnittestLiteRoot_packedUint64ExtensionLite;
}
+ (id<PBExtensionField>) packedSint32ExtensionLite {
  return UnittestLiteRoot_packedSint32ExtensionLite;
}
+ (id<PBExtensionField>) packedSint64ExtensionLite {
  return UnittestLiteRoot_packedSint64ExtensionLite;
}
+ (id<PBExtensionField>) packedFixed32ExtensionLite {
  return UnittestLiteRoot_packedFixed32ExtensionLite;
}
+ (id<PBExtensionField>) packedFixed64ExtensionLite {
  return UnittestLiteRoot_packedFixed64ExtensionLite;
}
+ (id<PBExtensionField>) packedSfixed32ExtensionLite {
  return UnittestLiteRoot_packedSfixed32ExtensionLite;
}
+ (id<PBExtensionField>) packedSfixed64ExtensionLite {
  return UnittestLiteRoot_packedSfixed64ExtensionLite;
}
+ (id<PBExtensionField>) packedFloatExtensionLite {
  return UnittestLiteRoot_packedFloatExtensionLite;
}
+ (id<PBExtensionField>) packedDoubleExtensionLite {
  return UnittestLiteRoot_packedDoubleExtensionLite;
}
+ (id<PBExtensionField>) packedBoolExtensionLite {
  return UnittestLiteRoot_packedBoolExtensionLite;
}
+ (id<PBExtensionField>) packedEnumExtensionLite {
  return UnittestLiteRoot_packedEnumExtensionLite;
}
@end

BOOL ForeignEnumLiteIsValidValue(ForeignEnumLite value) {
  switch (value) {
    case ForeignEnumLiteForeignLiteFoo:
    case ForeignEnumLiteForeignLiteBar:
    case ForeignEnumLiteForeignLiteBaz:
      return YES;
    default:
      return NO;
  }
}
@interface TestAllTypesLite ()
@property int32_t optionalInt32;
@property int64_t optionalInt64;
@property uint32_t optionalUint32;
@property uint64_t optionalUint64;
@property int32_t optionalSint32;
@property int64_t optionalSint64;
@property uint32_t optionalFixed32;
@property uint64_t optionalFixed64;
@property int32_t optionalSfixed32;
@property int64_t optionalSfixed64;
@property Float32 optionalFloat;
@property Float64 optionalDouble;
@property BOOL optionalBool;
@property (retain) NSString* optionalString;
@property (retain) NSData* optionalBytes;
@property (retain) TestAllTypesLite_OptionalGroup* optionalGroup;
@property (retain) TestAllTypesLite_NestedMessage* optionalNestedMessage;
@property (retain) ForeignMessageLite* optionalForeignMessage;
@property (retain) ImportMessageLite* optionalImportMessage;
@property TestAllTypesLite_NestedEnum optionalNestedEnum;
@property ForeignEnumLite optionalForeignEnum;
@property ImportEnumLite optionalImportEnum;
@property (retain) NSString* optionalStringPiece;
@property (retain) NSString* optionalCord;
@property (retain) PBAppendableArray * repeatedInt32Array;
@property (retain) PBAppendableArray * repeatedInt64Array;
@property (retain) PBAppendableArray * repeatedUint32Array;
@property (retain) PBAppendableArray * repeatedUint64Array;
@property (retain) PBAppendableArray * repeatedSint32Array;
@property (retain) PBAppendableArray * repeatedSint64Array;
@property (retain) PBAppendableArray * repeatedFixed32Array;
@property (retain) PBAppendableArray * repeatedFixed64Array;
@property (retain) PBAppendableArray * repeatedSfixed32Array;
@property (retain) PBAppendableArray * repeatedSfixed64Array;
@property (retain) PBAppendableArray * repeatedFloatArray;
@property (retain) PBAppendableArray * repeatedDoubleArray;
@property (retain) PBAppendableArray * repeatedBoolArray;
@property (retain) PBAppendableArray * repeatedStringArray;
@property (retain) PBAppendableArray * repeatedBytesArray;
@property (retain) PBAppendableArray * repeatedGroupArray;
@property (retain) PBAppendableArray * repeatedNestedMessageArray;
@property (retain) PBAppendableArray * repeatedForeignMessageArray;
@property (retain) PBAppendableArray * repeatedImportMessageArray;
@property (retain) PBAppendableArray * repeatedNestedEnumArray;
@property (retain) PBAppendableArray * repeatedForeignEnumArray;
@property (retain) PBAppendableArray * repeatedImportEnumArray;
@property (retain) PBAppendableArray * repeatedStringPieceArray;
@property (retain) PBAppendableArray * repeatedCordArray;
@property int32_t defaultInt32;
@property int64_t defaultInt64;
@property uint32_t defaultUint32;
@property uint64_t defaultUint64;
@property int32_t defaultSint32;
@property int64_t defaultSint64;
@property uint32_t defaultFixed32;
@property uint64_t defaultFixed64;
@property int32_t defaultSfixed32;
@property int64_t defaultSfixed64;
@property Float32 defaultFloat;
@property Float64 defaultDouble;
@property BOOL defaultBool;
@property (retain) NSString* defaultString;
@property (retain) NSData* defaultBytes;
@property TestAllTypesLite_NestedEnum defaultNestedEnum;
@property ForeignEnumLite defaultForeignEnum;
@property ImportEnumLite defaultImportEnum;
@property (retain) NSString* defaultStringPiece;
@property (retain) NSString* defaultCord;
@end

@implementation TestAllTypesLite

- (BOOL) hasOptionalInt32 {
  return !!hasOptionalInt32_;
}
- (void) setHasOptionalInt32:(BOOL) value {
  hasOptionalInt32_ = !!value;
}
@synthesize optionalInt32;
- (BOOL) hasOptionalInt64 {
  return !!hasOptionalInt64_;
}
- (void) setHasOptionalInt64:(BOOL) value {
  hasOptionalInt64_ = !!value;
}
@synthesize optionalInt64;
- (BOOL) hasOptionalUint32 {
  return !!hasOptionalUint32_;
}
- (void) setHasOptionalUint32:(BOOL) value {
  hasOptionalUint32_ = !!value;
}
@synthesize optionalUint32;
- (BOOL) hasOptionalUint64 {
  return !!hasOptionalUint64_;
}
- (void) setHasOptionalUint64:(BOOL) value {
  hasOptionalUint64_ = !!value;
}
@synthesize optionalUint64;
- (BOOL) hasOptionalSint32 {
  return !!hasOptionalSint32_;
}
- (void) setHasOptionalSint32:(BOOL) value {
  hasOptionalSint32_ = !!value;
}
@synthesize optionalSint32;
- (BOOL) hasOptionalSint64 {
  return !!hasOptionalSint64_;
}
- (void) setHasOptionalSint64:(BOOL) value {
  hasOptionalSint64_ = !!value;
}
@synthesize optionalSint64;
- (BOOL) hasOptionalFixed32 {
  return !!hasOptionalFixed32_;
}
- (void) setHasOptionalFixed32:(BOOL) value {
  hasOptionalFixed32_ = !!value;
}
@synthesize optionalFixed32;
- (BOOL) hasOptionalFixed64 {
  return !!hasOptionalFixed64_;
}
- (void) setHasOptionalFixed64:(BOOL) value {
  hasOptionalFixed64_ = !!value;
}
@synthesize optionalFixed64;
- (BOOL) hasOptionalSfixed32 {
  return !!hasOptionalSfixed32_;
}
- (void) setHasOptionalSfixed32:(BOOL) value {
  hasOptionalSfixed32_ = !!value;
}
@synthesize optionalSfixed32;
- (BOOL) hasOptionalSfixed64 {
  return !!hasOptionalSfixed64_;
}
- (void) setHasOptionalSfixed64:(BOOL) value {
  hasOptionalSfixed64_ = !!value;
}
@synthesize optionalSfixed64;
- (BOOL) hasOptionalFloat {
  return !!hasOptionalFloat_;
}
- (void) setHasOptionalFloat:(BOOL) value {
  hasOptionalFloat_ = !!value;
}
@synthesize optionalFloat;
- (BOOL) hasOptionalDouble {
  return !!hasOptionalDouble_;
}
- (void) setHasOptionalDouble:(BOOL) value {
  hasOptionalDouble_ = !!value;
}
@synthesize optionalDouble;
- (BOOL) hasOptionalBool {
  return !!hasOptionalBool_;
}
- (void) setHasOptionalBool:(BOOL) value {
  hasOptionalBool_ = !!value;
}
- (BOOL) optionalBool {
  return !!optionalBool_;
}
- (void) setOptionalBool:(BOOL) value {
  optionalBool_ = !!value;
}
- (BOOL) hasOptionalString {
  return !!hasOptionalString_;
}
- (void) setHasOptionalString:(BOOL) value {
  hasOptionalString_ = !!value;
}
@synthesize optionalString;
- (BOOL) hasOptionalBytes {
  return !!hasOptionalBytes_;
}
- (void) setHasOptionalBytes:(BOOL) value {
  hasOptionalBytes_ = !!value;
}
@synthesize optionalBytes;
- (BOOL) hasOptionalGroup {
  return !!hasOptionalGroup_;
}
- (void) setHasOptionalGroup:(BOOL) value {
  hasOptionalGroup_ = !!value;
}
@synthesize optionalGroup;
- (BOOL) hasOptionalNestedMessage {
  return !!hasOptionalNestedMessage_;
}
- (void) setHasOptionalNestedMessage:(BOOL) value {
  hasOptionalNestedMessage_ = !!value;
}
@synthesize optionalNestedMessage;
- (BOOL) hasOptionalForeignMessage {
  return !!hasOptionalForeignMessage_;
}
- (void) setHasOptionalForeignMessage:(BOOL) value {
  hasOptionalForeignMessage_ = !!value;
}
@synthesize optionalForeignMessage;
- (BOOL) hasOptionalImportMessage {
  return !!hasOptionalImportMessage_;
}
- (void) setHasOptionalImportMessage:(BOOL) value {
  hasOptionalImportMessage_ = !!value;
}
@synthesize optionalImportMessage;
- (BOOL) hasOptionalNestedEnum {
  return !!hasOptionalNestedEnum_;
}
- (void) setHasOptionalNestedEnum:(BOOL) value {
  hasOptionalNestedEnum_ = !!value;
}
@synthesize optionalNestedEnum;
- (BOOL) hasOptionalForeignEnum {
  return !!hasOptionalForeignEnum_;
}
- (void) setHasOptionalForeignEnum:(BOOL) value {
  hasOptionalForeignEnum_ = !!value;
}
@synthesize optionalForeignEnum;
- (BOOL) hasOptionalImportEnum {
  return !!hasOptionalImportEnum_;
}
- (void) setHasOptionalImportEnum:(BOOL) value {
  hasOptionalImportEnum_ = !!value;
}
@synthesize optionalImportEnum;
- (BOOL) hasOptionalStringPiece {
  return !!hasOptionalStringPiece_;
}
- (void) setHasOptionalStringPiece:(BOOL) value {
  hasOptionalStringPiece_ = !!value;
}
@synthesize optionalStringPiece;
- (BOOL) hasOptionalCord {
  return !!hasOptionalCord_;
}
- (void) setHasOptionalCord:(BOOL) value {
  hasOptionalCord_ = !!value;
}
@synthesize optionalCord;
@synthesize repeatedInt32Array;
@dynamic repeatedInt32;
@synthesize repeatedInt64Array;
@dynamic repeatedInt64;
@synthesize repeatedUint32Array;
@dynamic repeatedUint32;
@synthesize repeatedUint64Array;
@dynamic repeatedUint64;
@synthesize repeatedSint32Array;
@dynamic repeatedSint32;
@synthesize repeatedSint64Array;
@dynamic repeatedSint64;
@synthesize repeatedFixed32Array;
@dynamic repeatedFixed32;
@synthesize repeatedFixed64Array;
@dynamic repeatedFixed64;
@synthesize repeatedSfixed32Array;
@dynamic repeatedSfixed32;
@synthesize repeatedSfixed64Array;
@dynamic repeatedSfixed64;
@synthesize repeatedFloatArray;
@dynamic repeatedFloat;
@synthesize repeatedDoubleArray;
@dynamic repeatedDouble;
@synthesize repeatedBoolArray;
@dynamic repeatedBool;
@synthesize repeatedStringArray;
@dynamic repeatedString;
@synthesize repeatedBytesArray;
@dynamic repeatedBytes;
@synthesize repeatedGroupArray;
@dynamic repeatedGroup;
@synthesize repeatedNestedMessageArray;
@dynamic repeatedNestedMessage;
@synthesize repeatedForeignMessageArray;
@dynamic repeatedForeignMessage;
@synthesize repeatedImportMessageArray;
@dynamic repeatedImportMessage;
@synthesize repeatedNestedEnumArray;
@dynamic repeatedNestedEnum;
@synthesize repeatedForeignEnumArray;
@dynamic repeatedForeignEnum;
@synthesize repeatedImportEnumArray;
@dynamic repeatedImportEnum;
@synthesize repeatedStringPieceArray;
@dynamic repeatedStringPiece;
@synthesize repeatedCordArray;
@dynamic repeatedCord;
- (BOOL) hasDefaultInt32 {
  return !!hasDefaultInt32_;
}
- (void) setHasDefaultInt32:(BOOL) value {
  hasDefaultInt32_ = !!value;
}
@synthesize defaultInt32;
- (BOOL) hasDefaultInt64 {
  return !!hasDefaultInt64_;
}
- (void) setHasDefaultInt64:(BOOL) value {
  hasDefaultInt64_ = !!value;
}
@synthesize defaultInt64;
- (BOOL) hasDefaultUint32 {
  return !!hasDefaultUint32_;
}
- (void) setHasDefaultUint32:(BOOL) value {
  hasDefaultUint32_ = !!value;
}
@synthesize defaultUint32;
- (BOOL) hasDefaultUint64 {
  return !!hasDefaultUint64_;
}
- (void) setHasDefaultUint64:(BOOL) value {
  hasDefaultUint64_ = !!value;
}
@synthesize defaultUint64;
- (BOOL) hasDefaultSint32 {
  return !!hasDefaultSint32_;
}
- (void) setHasDefaultSint32:(BOOL) value {
  hasDefaultSint32_ = !!value;
}
@synthesize defaultSint32;
- (BOOL) hasDefaultSint64 {
  return !!hasDefaultSint64_;
}
- (void) setHasDefaultSint64:(BOOL) value {
  hasDefaultSint64_ = !!value;
}
@synthesize defaultSint64;
- (BOOL) hasDefaultFixed32 {
  return !!hasDefaultFixed32_;
}
- (void) setHasDefaultFixed32:(BOOL) value {
  hasDefaultFixed32_ = !!value;
}
@synthesize defaultFixed32;
- (BOOL) hasDefaultFixed64 {
  return !!hasDefaultFixed64_;
}
- (void) setHasDefaultFixed64:(BOOL) value {
  hasDefaultFixed64_ = !!value;
}
@synthesize defaultFixed64;
- (BOOL) hasDefaultSfixed32 {
  return !!hasDefaultSfixed32_;
}
- (void) setHasDefaultSfixed32:(BOOL) value {
  hasDefaultSfixed32_ = !!value;
}
@synthesize defaultSfixed32;
- (BOOL) hasDefaultSfixed64 {
  return !!hasDefaultSfixed64_;
}
- (void) setHasDefaultSfixed64:(BOOL) value {
  hasDefaultSfixed64_ = !!value;
}
@synthesize defaultSfixed64;
- (BOOL) hasDefaultFloat {
  return !!hasDefaultFloat_;
}
- (void) setHasDefaultFloat:(BOOL) value {
  hasDefaultFloat_ = !!value;
}
@synthesize defaultFloat;
- (BOOL) hasDefaultDouble {
  return !!hasDefaultDouble_;
}
- (void) setHasDefaultDouble:(BOOL) value {
  hasDefaultDouble_ = !!value;
}
@synthesize defaultDouble;
- (BOOL) hasDefaultBool {
  return !!hasDefaultBool_;
}
- (void) setHasDefaultBool:(BOOL) value {
  hasDefaultBool_ = !!value;
}
- (BOOL) defaultBool {
  return !!defaultBool_;
}
- (void) setDefaultBool:(BOOL) value {
  defaultBool_ = !!value;
}
- (BOOL) hasDefaultString {
  return !!hasDefaultString_;
}
- (void) setHasDefaultString:(BOOL) value {
  hasDefaultString_ = !!value;
}
@synthesize defaultString;
- (BOOL) hasDefaultBytes {
  return !!hasDefaultBytes_;
}
- (void) setHasDefaultBytes:(BOOL) value {
  hasDefaultBytes_ = !!value;
}
@synthesize defaultBytes;
- (BOOL) hasDefaultNestedEnum {
  return !!hasDefaultNestedEnum_;
}
- (void) setHasDefaultNestedEnum:(BOOL) value {
  hasDefaultNestedEnum_ = !!value;
}
@synthesize defaultNestedEnum;
- (BOOL) hasDefaultForeignEnum {
  return !!hasDefaultForeignEnum_;
}
- (void) setHasDefaultForeignEnum:(BOOL) value {
  hasDefaultForeignEnum_ = !!value;
}
@synthesize defaultForeignEnum;
- (BOOL) hasDefaultImportEnum {
  return !!hasDefaultImportEnum_;
}
- (void) setHasDefaultImportEnum:(BOOL) value {
  hasDefaultImportEnum_ = !!value;
}
@synthesize defaultImportEnum;
- (BOOL) hasDefaultStringPiece {
  return !!hasDefaultStringPiece_;
}
- (void) setHasDefaultStringPiece:(BOOL) value {
  hasDefaultStringPiece_ = !!value;
}
@synthesize defaultStringPiece;
- (BOOL) hasDefaultCord {
  return !!hasDefaultCord_;
}
- (void) setHasDefaultCord:(BOOL) value {
  hasDefaultCord_ = !!value;
}
@synthesize defaultCord;
- (void) dealloc {
  self.optionalString = nil;
  self.optionalBytes = nil;
  self.optionalGroup = nil;
  self.optionalNestedMessage = nil;
  self.optionalForeignMessage = nil;
  self.optionalImportMessage = nil;
  self.optionalStringPiece = nil;
  self.optionalCord = nil;
  self.repeatedInt32Array = nil;
  self.repeatedInt64Array = nil;
  self.repeatedUint32Array = nil;
  self.repeatedUint64Array = nil;
  self.repeatedSint32Array = nil;
  self.repeatedSint64Array = nil;
  self.repeatedFixed32Array = nil;
  self.repeatedFixed64Array = nil;
  self.repeatedSfixed32Array = nil;
  self.repeatedSfixed64Array = nil;
  self.repeatedFloatArray = nil;
  self.repeatedDoubleArray = nil;
  self.repeatedBoolArray = nil;
  self.repeatedStringArray = nil;
  self.repeatedBytesArray = nil;
  self.repeatedGroupArray = nil;
  self.repeatedNestedMessageArray = nil;
  self.repeatedForeignMessageArray = nil;
  self.repeatedImportMessageArray = nil;
  self.repeatedNestedEnumArray = nil;
  self.repeatedForeignEnumArray = nil;
  self.repeatedImportEnumArray = nil;
  self.repeatedStringPieceArray = nil;
  self.repeatedCordArray = nil;
  self.defaultString = nil;
  self.defaultBytes = nil;
  self.defaultStringPiece = nil;
  self.defaultCord = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.optionalInt32 = 0;
    self.optionalInt64 = 0L;
    self.optionalUint32 = 0;
    self.optionalUint64 = 0L;
    self.optionalSint32 = 0;
    self.optionalSint64 = 0L;
    self.optionalFixed32 = 0;
    self.optionalFixed64 = 0L;
    self.optionalSfixed32 = 0;
    self.optionalSfixed64 = 0L;
    self.optionalFloat = 0;
    self.optionalDouble = 0;
    self.optionalBool = NO;
    self.optionalString = @"";
    self.optionalBytes = [NSData data];
    self.optionalGroup = [TestAllTypesLite_OptionalGroup defaultInstance];
    self.optionalNestedMessage = [TestAllTypesLite_NestedMessage defaultInstance];
    self.optionalForeignMessage = [ForeignMessageLite defaultInstance];
    self.optionalImportMessage = [ImportMessageLite defaultInstance];
    self.optionalNestedEnum = TestAllTypesLite_NestedEnumFoo;
    self.optionalForeignEnum = ForeignEnumLiteForeignLiteFoo;
    self.optionalImportEnum = ImportEnumLiteImportLiteFoo;
    self.optionalStringPiece = @"";
    self.optionalCord = @"";
    self.defaultInt32 = 41;
    self.defaultInt64 = 42L;
    self.defaultUint32 = 43;
    self.defaultUint64 = 44L;
    self.defaultSint32 = -45;
    self.defaultSint64 = 46L;
    self.defaultFixed32 = 47;
    self.defaultFixed64 = 48L;
    self.defaultSfixed32 = 49;
    self.defaultSfixed64 = -50L;
    self.defaultFloat = 51.5;
    self.defaultDouble = 52000;
    self.defaultBool = YES;
    self.defaultString = @"hello";
    self.defaultBytes = [NSData dataWithBytes:"world" length:5];
    self.defaultNestedEnum = TestAllTypesLite_NestedEnumBar;
    self.defaultForeignEnum = ForeignEnumLiteForeignLiteBar;
    self.defaultImportEnum = ImportEnumLiteImportLiteBar;
    self.defaultStringPiece = @"abc";
    self.defaultCord = @"123";
  }
  return self;
}
static TestAllTypesLite* defaultTestAllTypesLiteInstance = nil;
+ (void) initialize {
  if (self == [TestAllTypesLite class]) {
    defaultTestAllTypesLiteInstance = [[TestAllTypesLite alloc] init];
  }
}
+ (TestAllTypesLite*) defaultInstance {
  return defaultTestAllTypesLiteInstance;
}
- (TestAllTypesLite*) defaultInstance {
  return defaultTestAllTypesLiteInstance;
}
- (PBArray *)repeatedInt32 {
  return repeatedInt32Array;
}
- (int32_t)repeatedInt32AtIndex:(NSUInteger)index {
  return [repeatedInt32Array int32AtIndex:index];
}
- (PBArray *)repeatedInt64 {
  return repeatedInt64Array;
}
- (int64_t)repeatedInt64AtIndex:(NSUInteger)index {
  return [repeatedInt64Array int64AtIndex:index];
}
- (PBArray *)repeatedUint32 {
  return repeatedUint32Array;
}
- (uint32_t)repeatedUint32AtIndex:(NSUInteger)index {
  return [repeatedUint32Array uint32AtIndex:index];
}
- (PBArray *)repeatedUint64 {
  return repeatedUint64Array;
}
- (uint64_t)repeatedUint64AtIndex:(NSUInteger)index {
  return [repeatedUint64Array uint64AtIndex:index];
}
- (PBArray *)repeatedSint32 {
  return repeatedSint32Array;
}
- (int32_t)repeatedSint32AtIndex:(NSUInteger)index {
  return [repeatedSint32Array int32AtIndex:index];
}
- (PBArray *)repeatedSint64 {
  return repeatedSint64Array;
}
- (int64_t)repeatedSint64AtIndex:(NSUInteger)index {
  return [repeatedSint64Array int64AtIndex:index];
}
- (PBArray *)repeatedFixed32 {
  return repeatedFixed32Array;
}
- (uint32_t)repeatedFixed32AtIndex:(NSUInteger)index {
  return [repeatedFixed32Array uint32AtIndex:index];
}
- (PBArray *)repeatedFixed64 {
  return repeatedFixed64Array;
}
- (uint64_t)repeatedFixed64AtIndex:(NSUInteger)index {
  return [repeatedFixed64Array uint64AtIndex:index];
}
- (PBArray *)repeatedSfixed32 {
  return repeatedSfixed32Array;
}
- (int32_t)repeatedSfixed32AtIndex:(NSUInteger)index {
  return [repeatedSfixed32Array int32AtIndex:index];
}
- (PBArray *)repeatedSfixed64 {
  return repeatedSfixed64Array;
}
- (int64_t)repeatedSfixed64AtIndex:(NSUInteger)index {
  return [repeatedSfixed64Array int64AtIndex:index];
}
- (PBArray *)repeatedFloat {
  return repeatedFloatArray;
}
- (Float32)repeatedFloatAtIndex:(NSUInteger)index {
  return [repeatedFloatArray floatAtIndex:index];
}
- (PBArray *)repeatedDouble {
  return repeatedDoubleArray;
}
- (Float64)repeatedDoubleAtIndex:(NSUInteger)index {
  return [repeatedDoubleArray doubleAtIndex:index];
}
- (PBArray *)repeatedBool {
  return repeatedBoolArray;
}
- (BOOL)repeatedBoolAtIndex:(NSUInteger)index {
  return [repeatedBoolArray boolAtIndex:index];
}
- (PBArray *)repeatedString {
  return repeatedStringArray;
}
- (NSString*)repeatedStringAtIndex:(NSUInteger)index {
  return [repeatedStringArray objectAtIndex:index];
}
- (PBArray *)repeatedBytes {
  return repeatedBytesArray;
}
- (NSData*)repeatedBytesAtIndex:(NSUInteger)index {
  return [repeatedBytesArray objectAtIndex:index];
}
- (PBArray *)repeatedGroup {
  return repeatedGroupArray;
}
- (TestAllTypesLite_RepeatedGroup*)repeatedGroupAtIndex:(NSUInteger)index {
  return [repeatedGroupArray objectAtIndex:index];
}
- (PBArray *)repeatedNestedMessage {
  return repeatedNestedMessageArray;
}
- (TestAllTypesLite_NestedMessage*)repeatedNestedMessageAtIndex:(NSUInteger)index {
  return [repeatedNestedMessageArray objectAtIndex:index];
}
- (PBArray *)repeatedForeignMessage {
  return repeatedForeignMessageArray;
}
- (ForeignMessageLite*)repeatedForeignMessageAtIndex:(NSUInteger)index {
  return [repeatedForeignMessageArray objectAtIndex:index];
}
- (PBArray *)repeatedImportMessage {
  return repeatedImportMessageArray;
}
- (ImportMessageLite*)repeatedImportMessageAtIndex:(NSUInteger)index {
  return [repeatedImportMessageArray objectAtIndex:index];
}
- (PBArray *)repeatedNestedEnum {
  return repeatedNestedEnumArray;
}
- (TestAllTypesLite_NestedEnum)repeatedNestedEnumAtIndex:(NSUInteger)index {
  return [repeatedNestedEnumArray int32AtIndex:index];
}
- (PBArray *)repeatedForeignEnum {
  return repeatedForeignEnumArray;
}
- (ForeignEnumLite)repeatedForeignEnumAtIndex:(NSUInteger)index {
  return [repeatedForeignEnumArray int32AtIndex:index];
}
- (PBArray *)repeatedImportEnum {
  return repeatedImportEnumArray;
}
- (ImportEnumLite)repeatedImportEnumAtIndex:(NSUInteger)index {
  return [repeatedImportEnumArray int32AtIndex:index];
}
- (PBArray *)repeatedStringPiece {
  return repeatedStringPieceArray;
}
- (NSString*)repeatedStringPieceAtIndex:(NSUInteger)index {
  return [repeatedStringPieceArray objectAtIndex:index];
}
- (PBArray *)repeatedCord {
  return repeatedCordArray;
}
- (NSString*)repeatedCordAtIndex:(NSUInteger)index {
  return [repeatedCordArray objectAtIndex:index];
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  if (self.hasOptionalInt32) {
    [output writeInt32:1 value:self.optionalInt32];
  }
  if (self.hasOptionalInt64) {
    [output writeInt64:2 value:self.optionalInt64];
  }
  if (self.hasOptionalUint32) {
    [output writeUInt32:3 value:self.optionalUint32];
  }
  if (self.hasOptionalUint64) {
    [output writeUInt64:4 value:self.optionalUint64];
  }
  if (self.hasOptionalSint32) {
    [output writeSInt32:5 value:self.optionalSint32];
  }
  if (self.hasOptionalSint64) {
    [output writeSInt64:6 value:self.optionalSint64];
  }
  if (self.hasOptionalFixed32) {
    [output writeFixed32:7 value:self.optionalFixed32];
  }
  if (self.hasOptionalFixed64) {
    [output writeFixed64:8 value:self.optionalFixed64];
  }
  if (self.hasOptionalSfixed32) {
    [output writeSFixed32:9 value:self.optionalSfixed32];
  }
  if (self.hasOptionalSfixed64) {
    [output writeSFixed64:10 value:self.optionalSfixed64];
  }
  if (self.hasOptionalFloat) {
    [output writeFloat:11 value:self.optionalFloat];
  }
  if (self.hasOptionalDouble) {
    [output writeDouble:12 value:self.optionalDouble];
  }
  if (self.hasOptionalBool) {
    [output writeBool:13 value:self.optionalBool];
  }
  if (self.hasOptionalString) {
    [output writeString:14 value:self.optionalString];
  }
  if (self.hasOptionalBytes) {
    [output writeData:15 value:self.optionalBytes];
  }
  if (self.hasOptionalGroup) {
    [output writeGroup:16 value:self.optionalGroup];
  }
  if (self.hasOptionalNestedMessage) {
    [output writeMessage:18 value:self.optionalNestedMessage];
  }
  if (self.hasOptionalForeignMessage) {
    [output writeMessage:19 value:self.optionalForeignMessage];
  }
  if (self.hasOptionalImportMessage) {
    [output writeMessage:20 value:self.optionalImportMessage];
  }
  if (self.hasOptionalNestedEnum) {
    [output writeEnum:21 value:self.optionalNestedEnum];
  }
  if (self.hasOptionalForeignEnum) {
    [output writeEnum:22 value:self.optionalForeignEnum];
  }
  if (self.hasOptionalImportEnum) {
    [output writeEnum:23 value:self.optionalImportEnum];
  }
  if (self.hasOptionalStringPiece) {
    [output writeString:24 value:self.optionalStringPiece];
  }
  if (self.hasOptionalCord) {
    [output writeString:25 value:self.optionalCord];
  }
  const NSUInteger repeatedInt32ArrayCount = self.repeatedInt32Array.count;
  if (repeatedInt32ArrayCount > 0) {
    const int32_t *values = (const int32_t *)self.repeatedInt32Array.data;
    for (NSUInteger i = 0; i < repeatedInt32ArrayCount; ++i) {
      [output writeInt32:31 value:values[i]];
    }
  }
  const NSUInteger repeatedInt64ArrayCount = self.repeatedInt64Array.count;
  if (repeatedInt64ArrayCount > 0) {
    const int64_t *values = (const int64_t *)self.repeatedInt64Array.data;
    for (NSUInteger i = 0; i < repeatedInt64ArrayCount; ++i) {
      [output writeInt64:32 value:values[i]];
    }
  }
  const NSUInteger repeatedUint32ArrayCount = self.repeatedUint32Array.count;
  if (repeatedUint32ArrayCount > 0) {
    const uint32_t *values = (const uint32_t *)self.repeatedUint32Array.data;
    for (NSUInteger i = 0; i < repeatedUint32ArrayCount; ++i) {
      [output writeUInt32:33 value:values[i]];
    }
  }
  const NSUInteger repeatedUint64ArrayCount = self.repeatedUint64Array.count;
  if (repeatedUint64ArrayCount > 0) {
    const uint64_t *values = (const uint64_t *)self.repeatedUint64Array.data;
    for (NSUInteger i = 0; i < repeatedUint64ArrayCount; ++i) {
      [output writeUInt64:34 value:values[i]];
    }
  }
  const NSUInteger repeatedSint32ArrayCount = self.repeatedSint32Array.count;
  if (repeatedSint32ArrayCount > 0) {
    const int32_t *values = (const int32_t *)self.repeatedSint32Array.data;
    for (NSUInteger i = 0; i < repeatedSint32ArrayCount; ++i) {
      [output writeSInt32:35 value:values[i]];
    }
  }
  const NSUInteger repeatedSint64ArrayCount = self.repeatedSint64Array.count;
  if (repeatedSint64ArrayCount > 0) {
    const int64_t *values = (const int64_t *)self.repeatedSint64Array.data;
    for (NSUInteger i = 0; i < repeatedSint64ArrayCount; ++i) {
      [output writeSInt64:36 value:values[i]];
    }
  }
  const NSUInteger repeatedFixed32ArrayCount = self.repeatedFixed32Array.count;
  if (repeatedFixed32ArrayCount > 0) {
    const uint32_t *values = (const uint32_t *)self.repeatedFixed32Array.data;
    for (NSUInteger i = 0; i < repeatedFixed32ArrayCount; ++i) {
      [output writeFixed32:37 value:values[i]];
    }
  }
  const NSUInteger repeatedFixed64ArrayCount = self.repeatedFixed64Array.count;
  if (repeatedFixed64ArrayCount > 0) {
    const uint64_t *values = (const uint64_t *)self.repeatedFixed64Array.data;
    for (NSUInteger i = 0; i < repeatedFixed64ArrayCount; ++i) {
      [output writeFixed64:38 value:values[i]];
    }
  }
  const NSUInteger repeatedSfixed32ArrayCount = self.repeatedSfixed32Array.count;
  if (repeatedSfixed32ArrayCount > 0) {
    const int32_t *values = (const int32_t *)self.repeatedSfixed32Array.data;
    for (NSUInteger i = 0; i < repeatedSfixed32ArrayCount; ++i) {
      [output writeSFixed32:39 value:values[i]];
    }
  }
  const NSUInteger repeatedSfixed64ArrayCount = self.repeatedSfixed64Array.count;
  if (repeatedSfixed64ArrayCount > 0) {
    const int64_t *values = (const int64_t *)self.repeatedSfixed64Array.data;
    for (NSUInteger i = 0; i < repeatedSfixed64ArrayCount; ++i) {
      [output writeSFixed64:40 value:values[i]];
    }
  }
  const NSUInteger repeatedFloatArrayCount = self.repeatedFloatArray.count;
  if (repeatedFloatArrayCount > 0) {
    const Float32 *values = (const Float32 *)self.repeatedFloatArray.data;
    for (NSUInteger i = 0; i < repeatedFloatArrayCount; ++i) {
      [output writeFloat:41 value:values[i]];
    }
  }
  const NSUInteger repeatedDoubleArrayCount = self.repeatedDoubleArray.count;
  if (repeatedDoubleArrayCount > 0) {
    const Float64 *values = (const Float64 *)self.repeatedDoubleArray.data;
    for (NSUInteger i = 0; i < repeatedDoubleArrayCount; ++i) {
      [output writeDouble:42 value:values[i]];
    }
  }
  const NSUInteger repeatedBoolArrayCount = self.repeatedBoolArray.count;
  if (repeatedBoolArrayCount > 0) {
    const BOOL *values = (const BOOL *)self.repeatedBoolArray.data;
    for (NSUInteger i = 0; i < repeatedBoolArrayCount; ++i) {
      [output writeBool:43 value:values[i]];
    }
  }
  const NSUInteger repeatedStringArrayCount = self.repeatedStringArray.count;
  if (repeatedStringArrayCount > 0) {
    const NSString* *values = (const NSString* *)self.repeatedStringArray.data;
    for (NSUInteger i = 0; i < repeatedStringArrayCount; ++i) {
      [output writeString:44 value:values[i]];
    }
  }
  const NSUInteger repeatedBytesArrayCount = self.repeatedBytesArray.count;
  if (repeatedBytesArrayCount > 0) {
    const NSData* *values = (const NSData* *)self.repeatedBytesArray.data;
    for (NSUInteger i = 0; i < repeatedBytesArrayCount; ++i) {
      [output writeData:45 value:values[i]];
    }
  }
  for (TestAllTypesLite_RepeatedGroup *element in self.repeatedGroupArray) {
    [output writeGroup:46 value:element];
  }
  for (TestAllTypesLite_NestedMessage *element in self.repeatedNestedMessageArray) {
    [output writeMessage:48 value:element];
  }
  for (ForeignMessageLite *element in self.repeatedForeignMessageArray) {
    [output writeMessage:49 value:element];
  }
  for (ImportMessageLite *element in self.repeatedImportMessageArray) {
    [output writeMessage:50 value:element];
  }
  const NSUInteger repeatedNestedEnumArrayCount = self.repeatedNestedEnumArray.count;
  const TestAllTypesLite_NestedEnum *repeatedNestedEnumArrayValues = (const TestAllTypesLite_NestedEnum *)self.repeatedNestedEnumArray.data;
  for (NSUInteger i = 0; i < repeatedNestedEnumArrayCount; ++i) {
    [output writeEnum:51 value:repeatedNestedEnumArrayValues[i]];
  }
  const NSUInteger repeatedForeignEnumArrayCount = self.repeatedForeignEnumArray.count;
  const ForeignEnumLite *repeatedForeignEnumArrayValues = (const ForeignEnumLite *)self.repeatedForeignEnumArray.data;
  for (NSUInteger i = 0; i < repeatedForeignEnumArrayCount; ++i) {
    [output writeEnum:52 value:repeatedForeignEnumArrayValues[i]];
  }
  const NSUInteger repeatedImportEnumArrayCount = self.repeatedImportEnumArray.count;
  const ImportEnumLite *repeatedImportEnumArrayValues = (const ImportEnumLite *)self.repeatedImportEnumArray.data;
  for (NSUInteger i = 0; i < repeatedImportEnumArrayCount; ++i) {
    [output writeEnum:53 value:repeatedImportEnumArrayValues[i]];
  }
  const NSUInteger repeatedStringPieceArrayCount = self.repeatedStringPieceArray.count;
  if (repeatedStringPieceArrayCount > 0) {
    const NSString* *values = (const NSString* *)self.repeatedStringPieceArray.data;
    for (NSUInteger i = 0; i < repeatedStringPieceArrayCount; ++i) {
      [output writeString:54 value:values[i]];
    }
  }
  const NSUInteger repeatedCordArrayCount = self.repeatedCordArray.count;
  if (repeatedCordArrayCount > 0) {
    const NSString* *values = (const NSString* *)self.repeatedCordArray.data;
    for (NSUInteger i = 0; i < repeatedCordArrayCount; ++i) {
      [output writeString:55 value:values[i]];
    }
  }
  if (self.hasDefaultInt32) {
    [output writeInt32:61 value:self.defaultInt32];
  }
  if (self.hasDefaultInt64) {
    [output writeInt64:62 value:self.defaultInt64];
  }
  if (self.hasDefaultUint32) {
    [output writeUInt32:63 value:self.defaultUint32];
  }
  if (self.hasDefaultUint64) {
    [output writeUInt64:64 value:self.defaultUint64];
  }
  if (self.hasDefaultSint32) {
    [output writeSInt32:65 value:self.defaultSint32];
  }
  if (self.hasDefaultSint64) {
    [output writeSInt64:66 value:self.defaultSint64];
  }
  if (self.hasDefaultFixed32) {
    [output writeFixed32:67 value:self.defaultFixed32];
  }
  if (self.hasDefaultFixed64) {
    [output writeFixed64:68 value:self.defaultFixed64];
  }
  if (self.hasDefaultSfixed32) {
    [output writeSFixed32:69 value:self.defaultSfixed32];
  }
  if (self.hasDefaultSfixed64) {
    [output writeSFixed64:70 value:self.defaultSfixed64];
  }
  if (self.hasDefaultFloat) {
    [output writeFloat:71 value:self.defaultFloat];
  }
  if (self.hasDefaultDouble) {
    [output writeDouble:72 value:self.defaultDouble];
  }
  if (self.hasDefaultBool) {
    [output writeBool:73 value:self.defaultBool];
  }
  if (self.hasDefaultString) {
    [output writeString:74 value:self.defaultString];
  }
  if (self.hasDefaultBytes) {
    [output writeData:75 value:self.defaultBytes];
  }
  if (self.hasDefaultNestedEnum) {
    [output writeEnum:81 value:self.defaultNestedEnum];
  }
  if (self.hasDefaultForeignEnum) {
    [output writeEnum:82 value:self.defaultForeignEnum];
  }
  if (self.hasDefaultImportEnum) {
    [output writeEnum:83 value:self.defaultImportEnum];
  }
  if (self.hasDefaultStringPiece) {
    [output writeString:84 value:self.defaultStringPiece];
  }
  if (self.hasDefaultCord) {
    [output writeString:85 value:self.defaultCord];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  if (self.hasOptionalInt32) {
    size += computeInt32Size(1, self.optionalInt32);
  }
  if (self.hasOptionalInt64) {
    size += computeInt64Size(2, self.optionalInt64);
  }
  if (self.hasOptionalUint32) {
    size += computeUInt32Size(3, self.optionalUint32);
  }
  if (self.hasOptionalUint64) {
    size += computeUInt64Size(4, self.optionalUint64);
  }
  if (self.hasOptionalSint32) {
    size += computeSInt32Size(5, self.optionalSint32);
  }
  if (self.hasOptionalSint64) {
    size += computeSInt64Size(6, self.optionalSint64);
  }
  if (self.hasOptionalFixed32) {
    size += computeFixed32Size(7, self.optionalFixed32);
  }
  if (self.hasOptionalFixed64) {
    size += computeFixed64Size(8, self.optionalFixed64);
  }
  if (self.hasOptionalSfixed32) {
    size += computeSFixed32Size(9, self.optionalSfixed32);
  }
  if (self.hasOptionalSfixed64) {
    size += computeSFixed64Size(10, self.optionalSfixed64);
  }
  if (self.hasOptionalFloat) {
    size += computeFloatSize(11, self.optionalFloat);
  }
  if (self.hasOptionalDouble) {
    size += computeDoubleSize(12, self.optionalDouble);
  }
  if (self.hasOptionalBool) {
    size += computeBoolSize(13, self.optionalBool);
  }
  if (self.hasOptionalString) {
    size += computeStringSize(14, self.optionalString);
  }
  if (self.hasOptionalBytes) {
    size += computeDataSize(15, self.optionalBytes);
  }
  if (self.hasOptionalGroup) {
    size += computeGroupSize(16, self.optionalGroup);
  }
  if (self.hasOptionalNestedMessage) {
    size += computeMessageSize(18, self.optionalNestedMessage);
  }
  if (self.hasOptionalForeignMessage) {
    size += computeMessageSize(19, self.optionalForeignMessage);
  }
  if (self.hasOptionalImportMessage) {
    size += computeMessageSize(20, self.optionalImportMessage);
  }
  if (self.hasOptionalNestedEnum) {
    size += computeEnumSize(21, self.optionalNestedEnum);
  }
  if (self.hasOptionalForeignEnum) {
    size += computeEnumSize(22, self.optionalForeignEnum);
  }
  if (self.hasOptionalImportEnum) {
    size += computeEnumSize(23, self.optionalImportEnum);
  }
  if (self.hasOptionalStringPiece) {
    size += computeStringSize(24, self.optionalStringPiece);
  }
  if (self.hasOptionalCord) {
    size += computeStringSize(25, self.optionalCord);
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedInt32Array.count;
    const int32_t *values = (const int32_t *)self.repeatedInt32Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeInt32SizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedInt64Array.count;
    const int64_t *values = (const int64_t *)self.repeatedInt64Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeInt64SizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedUint32Array.count;
    const uint32_t *values = (const uint32_t *)self.repeatedUint32Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeUInt32SizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedUint64Array.count;
    const uint64_t *values = (const uint64_t *)self.repeatedUint64Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeUInt64SizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedSint32Array.count;
    const int32_t *values = (const int32_t *)self.repeatedSint32Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeSInt32SizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedSint64Array.count;
    const int64_t *values = (const int64_t *)self.repeatedSint64Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeSInt64SizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedFixed32Array.count;
    dataSize = 4 * count;
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedFixed64Array.count;
    dataSize = 8 * count;
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedSfixed32Array.count;
    dataSize = 4 * count;
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedSfixed64Array.count;
    dataSize = 8 * count;
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedFloatArray.count;
    dataSize = 4 * count;
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedDoubleArray.count;
    dataSize = 8 * count;
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedBoolArray.count;
    dataSize = 1 * count;
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedStringArray.count;
    const NSString* *values = (const NSString* *)self.repeatedStringArray.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeStringSizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedBytesArray.count;
    const NSData* *values = (const NSData* *)self.repeatedBytesArray.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeDataSizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  for (TestAllTypesLite_RepeatedGroup *element in self.repeatedGroupArray) {
    size += computeGroupSize(46, element);
  }
  for (TestAllTypesLite_NestedMessage *element in self.repeatedNestedMessageArray) {
    size += computeMessageSize(48, element);
  }
  for (ForeignMessageLite *element in self.repeatedForeignMessageArray) {
    size += computeMessageSize(49, element);
  }
  for (ImportMessageLite *element in self.repeatedImportMessageArray) {
    size += computeMessageSize(50, element);
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedNestedEnumArray.count;
    const TestAllTypesLite_NestedEnum *values = (const TestAllTypesLite_NestedEnum *)self.repeatedNestedEnumArray.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeEnumSizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedForeignEnumArray.count;
    const ForeignEnumLite *values = (const ForeignEnumLite *)self.repeatedForeignEnumArray.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeEnumSizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedImportEnumArray.count;
    const ImportEnumLite *values = (const ImportEnumLite *)self.repeatedImportEnumArray.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeEnumSizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedStringPieceArray.count;
    const NSString* *values = (const NSString* *)self.repeatedStringPieceArray.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeStringSizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.repeatedCordArray.count;
    const NSString* *values = (const NSString* *)self.repeatedCordArray.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeStringSizeNoTag(values[i]);
    }
    size += dataSize;
    size += 2 * count;
  }
  if (self.hasDefaultInt32) {
    size += computeInt32Size(61, self.defaultInt32);
  }
  if (self.hasDefaultInt64) {
    size += computeInt64Size(62, self.defaultInt64);
  }
  if (self.hasDefaultUint32) {
    size += computeUInt32Size(63, self.defaultUint32);
  }
  if (self.hasDefaultUint64) {
    size += computeUInt64Size(64, self.defaultUint64);
  }
  if (self.hasDefaultSint32) {
    size += computeSInt32Size(65, self.defaultSint32);
  }
  if (self.hasDefaultSint64) {
    size += computeSInt64Size(66, self.defaultSint64);
  }
  if (self.hasDefaultFixed32) {
    size += computeFixed32Size(67, self.defaultFixed32);
  }
  if (self.hasDefaultFixed64) {
    size += computeFixed64Size(68, self.defaultFixed64);
  }
  if (self.hasDefaultSfixed32) {
    size += computeSFixed32Size(69, self.defaultSfixed32);
  }
  if (self.hasDefaultSfixed64) {
    size += computeSFixed64Size(70, self.defaultSfixed64);
  }
  if (self.hasDefaultFloat) {
    size += computeFloatSize(71, self.defaultFloat);
  }
  if (self.hasDefaultDouble) {
    size += computeDoubleSize(72, self.defaultDouble);
  }
  if (self.hasDefaultBool) {
    size += computeBoolSize(73, self.defaultBool);
  }
  if (self.hasDefaultString) {
    size += computeStringSize(74, self.defaultString);
  }
  if (self.hasDefaultBytes) {
    size += computeDataSize(75, self.defaultBytes);
  }
  if (self.hasDefaultNestedEnum) {
    size += computeEnumSize(81, self.defaultNestedEnum);
  }
  if (self.hasDefaultForeignEnum) {
    size += computeEnumSize(82, self.defaultForeignEnum);
  }
  if (self.hasDefaultImportEnum) {
    size += computeEnumSize(83, self.defaultImportEnum);
  }
  if (self.hasDefaultStringPiece) {
    size += computeStringSize(84, self.defaultStringPiece);
  }
  if (self.hasDefaultCord) {
    size += computeStringSize(85, self.defaultCord);
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestAllTypesLite*) parseFromData:(NSData*) data {
  return (TestAllTypesLite*)[[[TestAllTypesLite builder] mergeFromData:data] build];
}
+ (TestAllTypesLite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite*)[[[TestAllTypesLite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite*) parseFromInputStream:(NSInputStream*) input {
  return (TestAllTypesLite*)[[[TestAllTypesLite builder] mergeFromInputStream:input] build];
}
+ (TestAllTypesLite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite*)[[[TestAllTypesLite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestAllTypesLite*)[[[TestAllTypesLite builder] mergeFromCodedInputStream:input] build];
}
+ (TestAllTypesLite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite*)[[[TestAllTypesLite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_Builder*) builder {
  return [[[TestAllTypesLite_Builder alloc] init] autorelease];
}
+ (TestAllTypesLite_Builder*) builderWithPrototype:(TestAllTypesLite*) prototype {
  return [[TestAllTypesLite builder] mergeFrom:prototype];
}
- (TestAllTypesLite_Builder*) builder {
  return [TestAllTypesLite builder];
}
- (TestAllTypesLite_Builder*) toBuilder {
  return [TestAllTypesLite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  if (self.hasOptionalInt32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalInt32", [NSNumber numberWithInt:self.optionalInt32]];
  }
  if (self.hasOptionalInt64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalInt64", [NSNumber numberWithLongLong:self.optionalInt64]];
  }
  if (self.hasOptionalUint32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalUint32", [NSNumber numberWithInt:self.optionalUint32]];
  }
  if (self.hasOptionalUint64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalUint64", [NSNumber numberWithLongLong:self.optionalUint64]];
  }
  if (self.hasOptionalSint32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalSint32", [NSNumber numberWithInt:self.optionalSint32]];
  }
  if (self.hasOptionalSint64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalSint64", [NSNumber numberWithLongLong:self.optionalSint64]];
  }
  if (self.hasOptionalFixed32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalFixed32", [NSNumber numberWithInt:self.optionalFixed32]];
  }
  if (self.hasOptionalFixed64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalFixed64", [NSNumber numberWithLongLong:self.optionalFixed64]];
  }
  if (self.hasOptionalSfixed32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalSfixed32", [NSNumber numberWithInt:self.optionalSfixed32]];
  }
  if (self.hasOptionalSfixed64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalSfixed64", [NSNumber numberWithLongLong:self.optionalSfixed64]];
  }
  if (self.hasOptionalFloat) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalFloat", [NSNumber numberWithFloat:self.optionalFloat]];
  }
  if (self.hasOptionalDouble) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalDouble", [NSNumber numberWithDouble:self.optionalDouble]];
  }
  if (self.hasOptionalBool) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalBool", [NSNumber numberWithBool:self.optionalBool]];
  }
  if (self.hasOptionalString) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalString", self.optionalString];
  }
  if (self.hasOptionalBytes) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalBytes", self.optionalBytes];
  }
  if (self.hasOptionalGroup) {
    [output appendFormat:@"%@%@ {\n", indent, @"optionalGroup"];
    [self.optionalGroup writeDescriptionTo:output
                         withIndent:[NSString stringWithFormat:@"%@  ", indent]];
    [output appendFormat:@"%@}\n", indent];
  }
  if (self.hasOptionalNestedMessage) {
    [output appendFormat:@"%@%@ {\n", indent, @"optionalNestedMessage"];
    [self.optionalNestedMessage writeDescriptionTo:output
                         withIndent:[NSString stringWithFormat:@"%@  ", indent]];
    [output appendFormat:@"%@}\n", indent];
  }
  if (self.hasOptionalForeignMessage) {
    [output appendFormat:@"%@%@ {\n", indent, @"optionalForeignMessage"];
    [self.optionalForeignMessage writeDescriptionTo:output
                         withIndent:[NSString stringWithFormat:@"%@  ", indent]];
    [output appendFormat:@"%@}\n", indent];
  }
  if (self.hasOptionalImportMessage) {
    [output appendFormat:@"%@%@ {\n", indent, @"optionalImportMessage"];
    [self.optionalImportMessage writeDescriptionTo:output
                         withIndent:[NSString stringWithFormat:@"%@  ", indent]];
    [output appendFormat:@"%@}\n", indent];
  }
  if (self.hasOptionalNestedEnum) {
    [output appendFormat:@"%@%@: %d\n", indent, @"optionalNestedEnum", self.optionalNestedEnum];
  }
  if (self.hasOptionalForeignEnum) {
    [output appendFormat:@"%@%@: %d\n", indent, @"optionalForeignEnum", self.optionalForeignEnum];
  }
  if (self.hasOptionalImportEnum) {
    [output appendFormat:@"%@%@: %d\n", indent, @"optionalImportEnum", self.optionalImportEnum];
  }
  if (self.hasOptionalStringPiece) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalStringPiece", self.optionalStringPiece];
  }
  if (self.hasOptionalCord) {
    [output appendFormat:@"%@%@: %@\n", indent, @"optionalCord", self.optionalCord];
  }
  for (NSNumber* value in self.repeatedInt32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedInt32", value];
  }
  for (NSNumber* value in self.repeatedInt64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedInt64", value];
  }
  for (NSNumber* value in self.repeatedUint32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedUint32", value];
  }
  for (NSNumber* value in self.repeatedUint64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedUint64", value];
  }
  for (NSNumber* value in self.repeatedSint32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedSint32", value];
  }
  for (NSNumber* value in self.repeatedSint64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedSint64", value];
  }
  for (NSNumber* value in self.repeatedFixed32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedFixed32", value];
  }
  for (NSNumber* value in self.repeatedFixed64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedFixed64", value];
  }
  for (NSNumber* value in self.repeatedSfixed32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedSfixed32", value];
  }
  for (NSNumber* value in self.repeatedSfixed64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedSfixed64", value];
  }
  for (NSNumber* value in self.repeatedFloatArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedFloat", value];
  }
  for (NSNumber* value in self.repeatedDoubleArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedDouble", value];
  }
  for (NSNumber* value in self.repeatedBoolArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedBool", value];
  }
  for (NSString* element in self.repeatedStringArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedString", element];
  }
  for (NSData* element in self.repeatedBytesArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedBytes", element];
  }
  for (TestAllTypesLite_RepeatedGroup* element in self.repeatedGroupArray) {
    [output appendFormat:@"%@%@ {\n", indent, @"repeatedGroup"];
    [element writeDescriptionTo:output
                     withIndent:[NSString stringWithFormat:@"%@  ", indent]];
    [output appendFormat:@"%@}\n", indent];
  }
  for (TestAllTypesLite_NestedMessage* element in self.repeatedNestedMessageArray) {
    [output appendFormat:@"%@%@ {\n", indent, @"repeatedNestedMessage"];
    [element writeDescriptionTo:output
                     withIndent:[NSString stringWithFormat:@"%@  ", indent]];
    [output appendFormat:@"%@}\n", indent];
  }
  for (ForeignMessageLite* element in self.repeatedForeignMessageArray) {
    [output appendFormat:@"%@%@ {\n", indent, @"repeatedForeignMessage"];
    [element writeDescriptionTo:output
                     withIndent:[NSString stringWithFormat:@"%@  ", indent]];
    [output appendFormat:@"%@}\n", indent];
  }
  for (ImportMessageLite* element in self.repeatedImportMessageArray) {
    [output appendFormat:@"%@%@ {\n", indent, @"repeatedImportMessage"];
    [element writeDescriptionTo:output
                     withIndent:[NSString stringWithFormat:@"%@  ", indent]];
    [output appendFormat:@"%@}\n", indent];
  }
  for (NSNumber* element in self.repeatedNestedEnumArray) {
    [output appendFormat:@"%@%@: %d\n", indent, @"repeatedNestedEnum", element.intValue];
  }
  for (NSNumber* element in self.repeatedForeignEnumArray) {
    [output appendFormat:@"%@%@: %d\n", indent, @"repeatedForeignEnum", element.intValue];
  }
  for (NSNumber* element in self.repeatedImportEnumArray) {
    [output appendFormat:@"%@%@: %d\n", indent, @"repeatedImportEnum", element.intValue];
  }
  for (NSString* element in self.repeatedStringPieceArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedStringPiece", element];
  }
  for (NSString* element in self.repeatedCordArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"repeatedCord", element];
  }
  if (self.hasDefaultInt32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultInt32", [NSNumber numberWithInt:self.defaultInt32]];
  }
  if (self.hasDefaultInt64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultInt64", [NSNumber numberWithLongLong:self.defaultInt64]];
  }
  if (self.hasDefaultUint32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultUint32", [NSNumber numberWithInt:self.defaultUint32]];
  }
  if (self.hasDefaultUint64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultUint64", [NSNumber numberWithLongLong:self.defaultUint64]];
  }
  if (self.hasDefaultSint32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultSint32", [NSNumber numberWithInt:self.defaultSint32]];
  }
  if (self.hasDefaultSint64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultSint64", [NSNumber numberWithLongLong:self.defaultSint64]];
  }
  if (self.hasDefaultFixed32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultFixed32", [NSNumber numberWithInt:self.defaultFixed32]];
  }
  if (self.hasDefaultFixed64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultFixed64", [NSNumber numberWithLongLong:self.defaultFixed64]];
  }
  if (self.hasDefaultSfixed32) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultSfixed32", [NSNumber numberWithInt:self.defaultSfixed32]];
  }
  if (self.hasDefaultSfixed64) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultSfixed64", [NSNumber numberWithLongLong:self.defaultSfixed64]];
  }
  if (self.hasDefaultFloat) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultFloat", [NSNumber numberWithFloat:self.defaultFloat]];
  }
  if (self.hasDefaultDouble) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultDouble", [NSNumber numberWithDouble:self.defaultDouble]];
  }
  if (self.hasDefaultBool) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultBool", [NSNumber numberWithBool:self.defaultBool]];
  }
  if (self.hasDefaultString) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultString", self.defaultString];
  }
  if (self.hasDefaultBytes) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultBytes", self.defaultBytes];
  }
  if (self.hasDefaultNestedEnum) {
    [output appendFormat:@"%@%@: %d\n", indent, @"defaultNestedEnum", self.defaultNestedEnum];
  }
  if (self.hasDefaultForeignEnum) {
    [output appendFormat:@"%@%@: %d\n", indent, @"defaultForeignEnum", self.defaultForeignEnum];
  }
  if (self.hasDefaultImportEnum) {
    [output appendFormat:@"%@%@: %d\n", indent, @"defaultImportEnum", self.defaultImportEnum];
  }
  if (self.hasDefaultStringPiece) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultStringPiece", self.defaultStringPiece];
  }
  if (self.hasDefaultCord) {
    [output appendFormat:@"%@%@: %@\n", indent, @"defaultCord", self.defaultCord];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestAllTypesLite class]]) {
    return NO;
  }
  TestAllTypesLite *otherMessage = other;
  return
      self.hasOptionalInt32 == otherMessage.hasOptionalInt32 &&
      (!self.hasOptionalInt32 || self.optionalInt32 == otherMessage.optionalInt32) &&
      
      self.hasOptionalInt64 == otherMessage.hasOptionalInt64 &&
      (!self.hasOptionalInt64 || self.optionalInt64 == otherMessage.optionalInt64) &&
      
      self.hasOptionalUint32 == otherMessage.hasOptionalUint32 &&
      (!self.hasOptionalUint32 || self.optionalUint32 == otherMessage.optionalUint32) &&
      
      self.hasOptionalUint64 == otherMessage.hasOptionalUint64 &&
      (!self.hasOptionalUint64 || self.optionalUint64 == otherMessage.optionalUint64) &&
      
      self.hasOptionalSint32 == otherMessage.hasOptionalSint32 &&
      (!self.hasOptionalSint32 || self.optionalSint32 == otherMessage.optionalSint32) &&
      
      self.hasOptionalSint64 == otherMessage.hasOptionalSint64 &&
      (!self.hasOptionalSint64 || self.optionalSint64 == otherMessage.optionalSint64) &&
      
      self.hasOptionalFixed32 == otherMessage.hasOptionalFixed32 &&
      (!self.hasOptionalFixed32 || self.optionalFixed32 == otherMessage.optionalFixed32) &&
      
      self.hasOptionalFixed64 == otherMessage.hasOptionalFixed64 &&
      (!self.hasOptionalFixed64 || self.optionalFixed64 == otherMessage.optionalFixed64) &&
      
      self.hasOptionalSfixed32 == otherMessage.hasOptionalSfixed32 &&
      (!self.hasOptionalSfixed32 || self.optionalSfixed32 == otherMessage.optionalSfixed32) &&
      
      self.hasOptionalSfixed64 == otherMessage.hasOptionalSfixed64 &&
      (!self.hasOptionalSfixed64 || self.optionalSfixed64 == otherMessage.optionalSfixed64) &&
      
      self.hasOptionalFloat == otherMessage.hasOptionalFloat &&
      (!self.hasOptionalFloat || self.optionalFloat == otherMessage.optionalFloat) &&
      
      self.hasOptionalDouble == otherMessage.hasOptionalDouble &&
      (!self.hasOptionalDouble || self.optionalDouble == otherMessage.optionalDouble) &&
      
      self.hasOptionalBool == otherMessage.hasOptionalBool &&
      (!self.hasOptionalBool || self.optionalBool == otherMessage.optionalBool) &&
      
      self.hasOptionalString == otherMessage.hasOptionalString &&
      (!self.hasOptionalString || [self.optionalString isEqual:otherMessage.optionalString]) &&
      
      self.hasOptionalBytes == otherMessage.hasOptionalBytes &&
      (!self.hasOptionalBytes || [self.optionalBytes isEqual:otherMessage.optionalBytes]) &&
      
      self.hasOptionalGroup == otherMessage.hasOptionalGroup &&
      (!self.hasOptionalGroup || [self.optionalGroup isEqual:otherMessage.optionalGroup]) &&
      
      self.hasOptionalNestedMessage == otherMessage.hasOptionalNestedMessage &&
      (!self.hasOptionalNestedMessage || [self.optionalNestedMessage isEqual:otherMessage.optionalNestedMessage]) &&
      
      self.hasOptionalForeignMessage == otherMessage.hasOptionalForeignMessage &&
      (!self.hasOptionalForeignMessage || [self.optionalForeignMessage isEqual:otherMessage.optionalForeignMessage]) &&
      
      self.hasOptionalImportMessage == otherMessage.hasOptionalImportMessage &&
      (!self.hasOptionalImportMessage || [self.optionalImportMessage isEqual:otherMessage.optionalImportMessage]) &&
      
      self.hasOptionalNestedEnum == otherMessage.hasOptionalNestedEnum &&
      (!self.hasOptionalNestedEnum || self.optionalNestedEnum != otherMessage.optionalNestedEnum) &&
      
      self.hasOptionalForeignEnum == otherMessage.hasOptionalForeignEnum &&
      (!self.hasOptionalForeignEnum || self.optionalForeignEnum != otherMessage.optionalForeignEnum) &&
      
      self.hasOptionalImportEnum == otherMessage.hasOptionalImportEnum &&
      (!self.hasOptionalImportEnum || self.optionalImportEnum != otherMessage.optionalImportEnum) &&
      
      self.hasOptionalStringPiece == otherMessage.hasOptionalStringPiece &&
      (!self.hasOptionalStringPiece || [self.optionalStringPiece isEqual:otherMessage.optionalStringPiece]) &&
      
      self.hasOptionalCord == otherMessage.hasOptionalCord &&
      (!self.hasOptionalCord || [self.optionalCord isEqual:otherMessage.optionalCord]) &&
      
      [self.repeatedInt32Array isEqualToArray:otherMessage.repeatedInt32Array] &&
      
      [self.repeatedInt64Array isEqualToArray:otherMessage.repeatedInt64Array] &&
      
      [self.repeatedUint32Array isEqualToArray:otherMessage.repeatedUint32Array] &&
      
      [self.repeatedUint64Array isEqualToArray:otherMessage.repeatedUint64Array] &&
      
      [self.repeatedSint32Array isEqualToArray:otherMessage.repeatedSint32Array] &&
      
      [self.repeatedSint64Array isEqualToArray:otherMessage.repeatedSint64Array] &&
      
      [self.repeatedFixed32Array isEqualToArray:otherMessage.repeatedFixed32Array] &&
      
      [self.repeatedFixed64Array isEqualToArray:otherMessage.repeatedFixed64Array] &&
      
      [self.repeatedSfixed32Array isEqualToArray:otherMessage.repeatedSfixed32Array] &&
      
      [self.repeatedSfixed64Array isEqualToArray:otherMessage.repeatedSfixed64Array] &&
      
      [self.repeatedFloatArray isEqualToArray:otherMessage.repeatedFloatArray] &&
      
      [self.repeatedDoubleArray isEqualToArray:otherMessage.repeatedDoubleArray] &&
      
      [self.repeatedBoolArray isEqualToArray:otherMessage.repeatedBoolArray] &&
      
      [self.repeatedStringArray isEqualToArray:otherMessage.repeatedStringArray] &&
      
      [self.repeatedBytesArray isEqualToArray:otherMessage.repeatedBytesArray] &&
      
      [self.repeatedGroupArray isEqualToArray:otherMessage.repeatedGroupArray] &&
      
      [self.repeatedNestedMessageArray isEqualToArray:otherMessage.repeatedNestedMessageArray] &&
      
      [self.repeatedForeignMessageArray isEqualToArray:otherMessage.repeatedForeignMessageArray] &&
      
      [self.repeatedImportMessageArray isEqualToArray:otherMessage.repeatedImportMessageArray] &&
      
      [self.repeatedNestedEnumArray isEqualToArray:otherMessage.repeatedNestedEnumArray] &&
      
      [self.repeatedForeignEnumArray isEqualToArray:otherMessage.repeatedForeignEnumArray] &&
      
      [self.repeatedImportEnumArray isEqualToArray:otherMessage.repeatedImportEnumArray] &&
      
      [self.repeatedStringPieceArray isEqualToArray:otherMessage.repeatedStringPieceArray] &&
      
      [self.repeatedCordArray isEqualToArray:otherMessage.repeatedCordArray] &&
      
      self.hasDefaultInt32 == otherMessage.hasDefaultInt32 &&
      (!self.hasDefaultInt32 || self.defaultInt32 == otherMessage.defaultInt32) &&
      
      self.hasDefaultInt64 == otherMessage.hasDefaultInt64 &&
      (!self.hasDefaultInt64 || self.defaultInt64 == otherMessage.defaultInt64) &&
      
      self.hasDefaultUint32 == otherMessage.hasDefaultUint32 &&
      (!self.hasDefaultUint32 || self.defaultUint32 == otherMessage.defaultUint32) &&
      
      self.hasDefaultUint64 == otherMessage.hasDefaultUint64 &&
      (!self.hasDefaultUint64 || self.defaultUint64 == otherMessage.defaultUint64) &&
      
      self.hasDefaultSint32 == otherMessage.hasDefaultSint32 &&
      (!self.hasDefaultSint32 || self.defaultSint32 == otherMessage.defaultSint32) &&
      
      self.hasDefaultSint64 == otherMessage.hasDefaultSint64 &&
      (!self.hasDefaultSint64 || self.defaultSint64 == otherMessage.defaultSint64) &&
      
      self.hasDefaultFixed32 == otherMessage.hasDefaultFixed32 &&
      (!self.hasDefaultFixed32 || self.defaultFixed32 == otherMessage.defaultFixed32) &&
      
      self.hasDefaultFixed64 == otherMessage.hasDefaultFixed64 &&
      (!self.hasDefaultFixed64 || self.defaultFixed64 == otherMessage.defaultFixed64) &&
      
      self.hasDefaultSfixed32 == otherMessage.hasDefaultSfixed32 &&
      (!self.hasDefaultSfixed32 || self.defaultSfixed32 == otherMessage.defaultSfixed32) &&
      
      self.hasDefaultSfixed64 == otherMessage.hasDefaultSfixed64 &&
      (!self.hasDefaultSfixed64 || self.defaultSfixed64 == otherMessage.defaultSfixed64) &&
      
      self.hasDefaultFloat == otherMessage.hasDefaultFloat &&
      (!self.hasDefaultFloat || self.defaultFloat == otherMessage.defaultFloat) &&
      
      self.hasDefaultDouble == otherMessage.hasDefaultDouble &&
      (!self.hasDefaultDouble || self.defaultDouble == otherMessage.defaultDouble) &&
      
      self.hasDefaultBool == otherMessage.hasDefaultBool &&
      (!self.hasDefaultBool || self.defaultBool == otherMessage.defaultBool) &&
      
      self.hasDefaultString == otherMessage.hasDefaultString &&
      (!self.hasDefaultString || [self.defaultString isEqual:otherMessage.defaultString]) &&
      
      self.hasDefaultBytes == otherMessage.hasDefaultBytes &&
      (!self.hasDefaultBytes || [self.defaultBytes isEqual:otherMessage.defaultBytes]) &&
      
      self.hasDefaultNestedEnum == otherMessage.hasDefaultNestedEnum &&
      (!self.hasDefaultNestedEnum || self.defaultNestedEnum != otherMessage.defaultNestedEnum) &&
      
      self.hasDefaultForeignEnum == otherMessage.hasDefaultForeignEnum &&
      (!self.hasDefaultForeignEnum || self.defaultForeignEnum != otherMessage.defaultForeignEnum) &&
      
      self.hasDefaultImportEnum == otherMessage.hasDefaultImportEnum &&
      (!self.hasDefaultImportEnum || self.defaultImportEnum != otherMessage.defaultImportEnum) &&
      
      self.hasDefaultStringPiece == otherMessage.hasDefaultStringPiece &&
      (!self.hasDefaultStringPiece || [self.defaultStringPiece isEqual:otherMessage.defaultStringPiece]) &&
      
      self.hasDefaultCord == otherMessage.hasDefaultCord &&
      (!self.hasDefaultCord || [self.defaultCord isEqual:otherMessage.defaultCord]) &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  if (self.hasOptionalInt32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.optionalInt32] hash];
  }
  if (self.hasOptionalInt64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.optionalInt64] hash];
  }
  if (self.hasOptionalUint32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.optionalUint32] hash];
  }
  if (self.hasOptionalUint64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.optionalUint64] hash];
  }
  if (self.hasOptionalSint32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.optionalSint32] hash];
  }
  if (self.hasOptionalSint64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.optionalSint64] hash];
  }
  if (self.hasOptionalFixed32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.optionalFixed32] hash];
  }
  if (self.hasOptionalFixed64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.optionalFixed64] hash];
  }
  if (self.hasOptionalSfixed32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.optionalSfixed32] hash];
  }
  if (self.hasOptionalSfixed64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.optionalSfixed64] hash];
  }
  if (self.hasOptionalFloat) {
    hashCode = hashCode * 31 + [[NSNumber numberWithFloat:self.optionalFloat] hash];
  }
  if (self.hasOptionalDouble) {
    hashCode = hashCode * 31 + [[NSNumber numberWithDouble:self.optionalDouble] hash];
  }
  if (self.hasOptionalBool) {
    hashCode = hashCode * 31 + [[NSNumber numberWithBool:self.optionalBool] hash];
  }
  if (self.hasOptionalString) {
    hashCode = hashCode * 31 + [self.optionalString hash];
  }
  if (self.hasOptionalBytes) {
    hashCode = hashCode * 31 + [self.optionalBytes hash];
  }
  if (self.hasOptionalGroup) {
    hashCode = hashCode * 31 + [self.optionalGroup hash];
  }
  if (self.hasOptionalNestedMessage) {
    hashCode = hashCode * 31 + [self.optionalNestedMessage hash];
  }
  if (self.hasOptionalForeignMessage) {
    hashCode = hashCode * 31 + [self.optionalForeignMessage hash];
  }
  if (self.hasOptionalImportMessage) {
    hashCode = hashCode * 31 + [self.optionalImportMessage hash];
  }
  if (self.hasOptionalNestedEnum) {
    hashCode = hashCode * 31 + self.optionalNestedEnum;
  }
  if (self.hasOptionalForeignEnum) {
    hashCode = hashCode * 31 + self.optionalForeignEnum;
  }
  if (self.hasOptionalImportEnum) {
    hashCode = hashCode * 31 + self.optionalImportEnum;
  }
  if (self.hasOptionalStringPiece) {
    hashCode = hashCode * 31 + [self.optionalStringPiece hash];
  }
  if (self.hasOptionalCord) {
    hashCode = hashCode * 31 + [self.optionalCord hash];
  }
  for (NSNumber* value in self.repeatedInt32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedInt64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedUint32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedUint64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedSint32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedSint64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedFixed32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedFixed64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedSfixed32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedSfixed64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedFloatArray) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedDoubleArray) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.repeatedBoolArray) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSString* element in self.repeatedStringArray) {
    hashCode = hashCode * 31 + [element hash];
  }
  for (NSData* element in self.repeatedBytesArray) {
    hashCode = hashCode * 31 + [element hash];
  }
  for (TestAllTypesLite_RepeatedGroup* element in self.repeatedGroupArray) {
    hashCode = hashCode * 31 + [element hash];
  }
  for (TestAllTypesLite_NestedMessage* element in self.repeatedNestedMessageArray) {
    hashCode = hashCode * 31 + [element hash];
  }
  for (ForeignMessageLite* element in self.repeatedForeignMessageArray) {
    hashCode = hashCode * 31 + [element hash];
  }
  for (ImportMessageLite* element in self.repeatedImportMessageArray) {
    hashCode = hashCode * 31 + [element hash];
  }
  for (NSNumber* element in self.repeatedNestedEnumArray) {
    hashCode = hashCode * 31 + element.intValue;
  }
  for (NSNumber* element in self.repeatedForeignEnumArray) {
    hashCode = hashCode * 31 + element.intValue;
  }
  for (NSNumber* element in self.repeatedImportEnumArray) {
    hashCode = hashCode * 31 + element.intValue;
  }
  for (NSString* element in self.repeatedStringPieceArray) {
    hashCode = hashCode * 31 + [element hash];
  }
  for (NSString* element in self.repeatedCordArray) {
    hashCode = hashCode * 31 + [element hash];
  }
  if (self.hasDefaultInt32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.defaultInt32] hash];
  }
  if (self.hasDefaultInt64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.defaultInt64] hash];
  }
  if (self.hasDefaultUint32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.defaultUint32] hash];
  }
  if (self.hasDefaultUint64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.defaultUint64] hash];
  }
  if (self.hasDefaultSint32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.defaultSint32] hash];
  }
  if (self.hasDefaultSint64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.defaultSint64] hash];
  }
  if (self.hasDefaultFixed32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.defaultFixed32] hash];
  }
  if (self.hasDefaultFixed64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.defaultFixed64] hash];
  }
  if (self.hasDefaultSfixed32) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.defaultSfixed32] hash];
  }
  if (self.hasDefaultSfixed64) {
    hashCode = hashCode * 31 + [[NSNumber numberWithLongLong:self.defaultSfixed64] hash];
  }
  if (self.hasDefaultFloat) {
    hashCode = hashCode * 31 + [[NSNumber numberWithFloat:self.defaultFloat] hash];
  }
  if (self.hasDefaultDouble) {
    hashCode = hashCode * 31 + [[NSNumber numberWithDouble:self.defaultDouble] hash];
  }
  if (self.hasDefaultBool) {
    hashCode = hashCode * 31 + [[NSNumber numberWithBool:self.defaultBool] hash];
  }
  if (self.hasDefaultString) {
    hashCode = hashCode * 31 + [self.defaultString hash];
  }
  if (self.hasDefaultBytes) {
    hashCode = hashCode * 31 + [self.defaultBytes hash];
  }
  if (self.hasDefaultNestedEnum) {
    hashCode = hashCode * 31 + self.defaultNestedEnum;
  }
  if (self.hasDefaultForeignEnum) {
    hashCode = hashCode * 31 + self.defaultForeignEnum;
  }
  if (self.hasDefaultImportEnum) {
    hashCode = hashCode * 31 + self.defaultImportEnum;
  }
  if (self.hasDefaultStringPiece) {
    hashCode = hashCode * 31 + [self.defaultStringPiece hash];
  }
  if (self.hasDefaultCord) {
    hashCode = hashCode * 31 + [self.defaultCord hash];
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

BOOL TestAllTypesLite_NestedEnumIsValidValue(TestAllTypesLite_NestedEnum value) {
  switch (value) {
    case TestAllTypesLite_NestedEnumFoo:
    case TestAllTypesLite_NestedEnumBar:
    case TestAllTypesLite_NestedEnumBaz:
      return YES;
    default:
      return NO;
  }
}
@interface TestAllTypesLite_NestedMessage ()
@property int32_t bb;
@end

@implementation TestAllTypesLite_NestedMessage

- (BOOL) hasBb {
  return !!hasBb_;
}
- (void) setHasBb:(BOOL) value {
  hasBb_ = !!value;
}
@synthesize bb;
- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.bb = 0;
  }
  return self;
}
static TestAllTypesLite_NestedMessage* defaultTestAllTypesLite_NestedMessageInstance = nil;
+ (void) initialize {
  if (self == [TestAllTypesLite_NestedMessage class]) {
    defaultTestAllTypesLite_NestedMessageInstance = [[TestAllTypesLite_NestedMessage alloc] init];
  }
}
+ (TestAllTypesLite_NestedMessage*) defaultInstance {
  return defaultTestAllTypesLite_NestedMessageInstance;
}
- (TestAllTypesLite_NestedMessage*) defaultInstance {
  return defaultTestAllTypesLite_NestedMessageInstance;
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  if (self.hasBb) {
    [output writeInt32:1 value:self.bb];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  if (self.hasBb) {
    size += computeInt32Size(1, self.bb);
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestAllTypesLite_NestedMessage*) parseFromData:(NSData*) data {
  return (TestAllTypesLite_NestedMessage*)[[[TestAllTypesLite_NestedMessage builder] mergeFromData:data] build];
}
+ (TestAllTypesLite_NestedMessage*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_NestedMessage*)[[[TestAllTypesLite_NestedMessage builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_NestedMessage*) parseFromInputStream:(NSInputStream*) input {
  return (TestAllTypesLite_NestedMessage*)[[[TestAllTypesLite_NestedMessage builder] mergeFromInputStream:input] build];
}
+ (TestAllTypesLite_NestedMessage*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_NestedMessage*)[[[TestAllTypesLite_NestedMessage builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_NestedMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestAllTypesLite_NestedMessage*)[[[TestAllTypesLite_NestedMessage builder] mergeFromCodedInputStream:input] build];
}
+ (TestAllTypesLite_NestedMessage*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_NestedMessage*)[[[TestAllTypesLite_NestedMessage builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_NestedMessage_Builder*) builder {
  return [[[TestAllTypesLite_NestedMessage_Builder alloc] init] autorelease];
}
+ (TestAllTypesLite_NestedMessage_Builder*) builderWithPrototype:(TestAllTypesLite_NestedMessage*) prototype {
  return [[TestAllTypesLite_NestedMessage builder] mergeFrom:prototype];
}
- (TestAllTypesLite_NestedMessage_Builder*) builder {
  return [TestAllTypesLite_NestedMessage builder];
}
- (TestAllTypesLite_NestedMessage_Builder*) toBuilder {
  return [TestAllTypesLite_NestedMessage builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  if (self.hasBb) {
    [output appendFormat:@"%@%@: %@\n", indent, @"bb", [NSNumber numberWithInt:self.bb]];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestAllTypesLite_NestedMessage class]]) {
    return NO;
  }
  TestAllTypesLite_NestedMessage *otherMessage = other;
  return
      self.hasBb == otherMessage.hasBb &&
      (!self.hasBb || self.bb == otherMessage.bb) &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  if (self.hasBb) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.bb] hash];
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface TestAllTypesLite_NestedMessage_Builder()
@property (retain) TestAllTypesLite_NestedMessage* result;
@end

@implementation TestAllTypesLite_NestedMessage_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestAllTypesLite_NestedMessage alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (TestAllTypesLite_NestedMessage_Builder*) clear {
  self.result = [[[TestAllTypesLite_NestedMessage alloc] init] autorelease];
  return self;
}
- (TestAllTypesLite_NestedMessage_Builder*) clone {
  return [TestAllTypesLite_NestedMessage builderWithPrototype:result];
}
- (TestAllTypesLite_NestedMessage*) defaultInstance {
  return [TestAllTypesLite_NestedMessage defaultInstance];
}
- (TestAllTypesLite_NestedMessage*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestAllTypesLite_NestedMessage*) buildPartial {
  TestAllTypesLite_NestedMessage* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestAllTypesLite_NestedMessage_Builder*) mergeFrom:(TestAllTypesLite_NestedMessage*) other {
  if (other == [TestAllTypesLite_NestedMessage defaultInstance]) {
    return self;
  }
  if (other.hasBb) {
    [self setBb:other.bb];
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestAllTypesLite_NestedMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestAllTypesLite_NestedMessage_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 8: {
        [self setBb:[input readInt32]];
        break;
      }
    }
  }
}
- (BOOL) hasBb {
  return result.hasBb;
}
- (int32_t) bb {
  return result.bb;
}
- (TestAllTypesLite_NestedMessage_Builder*) setBb:(int32_t) value {
  result.hasBb = YES;
  result.bb = value;
  return self;
}
- (TestAllTypesLite_NestedMessage_Builder*) clearBb {
  result.hasBb = NO;
  result.bb = 0;
  return self;
}
@end

@interface TestAllTypesLite_OptionalGroup ()
@property int32_t a;
@end

@implementation TestAllTypesLite_OptionalGroup

- (BOOL) hasA {
  return !!hasA_;
}
- (void) setHasA:(BOOL) value {
  hasA_ = !!value;
}
@synthesize a;
- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.a = 0;
  }
  return self;
}
static TestAllTypesLite_OptionalGroup* defaultTestAllTypesLite_OptionalGroupInstance = nil;
+ (void) initialize {
  if (self == [TestAllTypesLite_OptionalGroup class]) {
    defaultTestAllTypesLite_OptionalGroupInstance = [[TestAllTypesLite_OptionalGroup alloc] init];
  }
}
+ (TestAllTypesLite_OptionalGroup*) defaultInstance {
  return defaultTestAllTypesLite_OptionalGroupInstance;
}
- (TestAllTypesLite_OptionalGroup*) defaultInstance {
  return defaultTestAllTypesLite_OptionalGroupInstance;
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  if (self.hasA) {
    [output writeInt32:17 value:self.a];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  if (self.hasA) {
    size += computeInt32Size(17, self.a);
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestAllTypesLite_OptionalGroup*) parseFromData:(NSData*) data {
  return (TestAllTypesLite_OptionalGroup*)[[[TestAllTypesLite_OptionalGroup builder] mergeFromData:data] build];
}
+ (TestAllTypesLite_OptionalGroup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_OptionalGroup*)[[[TestAllTypesLite_OptionalGroup builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_OptionalGroup*) parseFromInputStream:(NSInputStream*) input {
  return (TestAllTypesLite_OptionalGroup*)[[[TestAllTypesLite_OptionalGroup builder] mergeFromInputStream:input] build];
}
+ (TestAllTypesLite_OptionalGroup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_OptionalGroup*)[[[TestAllTypesLite_OptionalGroup builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_OptionalGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestAllTypesLite_OptionalGroup*)[[[TestAllTypesLite_OptionalGroup builder] mergeFromCodedInputStream:input] build];
}
+ (TestAllTypesLite_OptionalGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_OptionalGroup*)[[[TestAllTypesLite_OptionalGroup builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_OptionalGroup_Builder*) builder {
  return [[[TestAllTypesLite_OptionalGroup_Builder alloc] init] autorelease];
}
+ (TestAllTypesLite_OptionalGroup_Builder*) builderWithPrototype:(TestAllTypesLite_OptionalGroup*) prototype {
  return [[TestAllTypesLite_OptionalGroup builder] mergeFrom:prototype];
}
- (TestAllTypesLite_OptionalGroup_Builder*) builder {
  return [TestAllTypesLite_OptionalGroup builder];
}
- (TestAllTypesLite_OptionalGroup_Builder*) toBuilder {
  return [TestAllTypesLite_OptionalGroup builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  if (self.hasA) {
    [output appendFormat:@"%@%@: %@\n", indent, @"a", [NSNumber numberWithInt:self.a]];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestAllTypesLite_OptionalGroup class]]) {
    return NO;
  }
  TestAllTypesLite_OptionalGroup *otherMessage = other;
  return
      self.hasA == otherMessage.hasA &&
      (!self.hasA || self.a == otherMessage.a) &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  if (self.hasA) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.a] hash];
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface TestAllTypesLite_OptionalGroup_Builder()
@property (retain) TestAllTypesLite_OptionalGroup* result;
@end

@implementation TestAllTypesLite_OptionalGroup_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestAllTypesLite_OptionalGroup alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (TestAllTypesLite_OptionalGroup_Builder*) clear {
  self.result = [[[TestAllTypesLite_OptionalGroup alloc] init] autorelease];
  return self;
}
- (TestAllTypesLite_OptionalGroup_Builder*) clone {
  return [TestAllTypesLite_OptionalGroup builderWithPrototype:result];
}
- (TestAllTypesLite_OptionalGroup*) defaultInstance {
  return [TestAllTypesLite_OptionalGroup defaultInstance];
}
- (TestAllTypesLite_OptionalGroup*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestAllTypesLite_OptionalGroup*) buildPartial {
  TestAllTypesLite_OptionalGroup* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestAllTypesLite_OptionalGroup_Builder*) mergeFrom:(TestAllTypesLite_OptionalGroup*) other {
  if (other == [TestAllTypesLite_OptionalGroup defaultInstance]) {
    return self;
  }
  if (other.hasA) {
    [self setA:other.a];
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestAllTypesLite_OptionalGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestAllTypesLite_OptionalGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 136: {
        [self setA:[input readInt32]];
        break;
      }
    }
  }
}
- (BOOL) hasA {
  return result.hasA;
}
- (int32_t) a {
  return result.a;
}
- (TestAllTypesLite_OptionalGroup_Builder*) setA:(int32_t) value {
  result.hasA = YES;
  result.a = value;
  return self;
}
- (TestAllTypesLite_OptionalGroup_Builder*) clearA {
  result.hasA = NO;
  result.a = 0;
  return self;
}
@end

@interface TestAllTypesLite_RepeatedGroup ()
@property int32_t a;
@end

@implementation TestAllTypesLite_RepeatedGroup

- (BOOL) hasA {
  return !!hasA_;
}
- (void) setHasA:(BOOL) value {
  hasA_ = !!value;
}
@synthesize a;
- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.a = 0;
  }
  return self;
}
static TestAllTypesLite_RepeatedGroup* defaultTestAllTypesLite_RepeatedGroupInstance = nil;
+ (void) initialize {
  if (self == [TestAllTypesLite_RepeatedGroup class]) {
    defaultTestAllTypesLite_RepeatedGroupInstance = [[TestAllTypesLite_RepeatedGroup alloc] init];
  }
}
+ (TestAllTypesLite_RepeatedGroup*) defaultInstance {
  return defaultTestAllTypesLite_RepeatedGroupInstance;
}
- (TestAllTypesLite_RepeatedGroup*) defaultInstance {
  return defaultTestAllTypesLite_RepeatedGroupInstance;
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  if (self.hasA) {
    [output writeInt32:47 value:self.a];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  if (self.hasA) {
    size += computeInt32Size(47, self.a);
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestAllTypesLite_RepeatedGroup*) parseFromData:(NSData*) data {
  return (TestAllTypesLite_RepeatedGroup*)[[[TestAllTypesLite_RepeatedGroup builder] mergeFromData:data] build];
}
+ (TestAllTypesLite_RepeatedGroup*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_RepeatedGroup*)[[[TestAllTypesLite_RepeatedGroup builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_RepeatedGroup*) parseFromInputStream:(NSInputStream*) input {
  return (TestAllTypesLite_RepeatedGroup*)[[[TestAllTypesLite_RepeatedGroup builder] mergeFromInputStream:input] build];
}
+ (TestAllTypesLite_RepeatedGroup*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_RepeatedGroup*)[[[TestAllTypesLite_RepeatedGroup builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_RepeatedGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestAllTypesLite_RepeatedGroup*)[[[TestAllTypesLite_RepeatedGroup builder] mergeFromCodedInputStream:input] build];
}
+ (TestAllTypesLite_RepeatedGroup*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllTypesLite_RepeatedGroup*)[[[TestAllTypesLite_RepeatedGroup builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllTypesLite_RepeatedGroup_Builder*) builder {
  return [[[TestAllTypesLite_RepeatedGroup_Builder alloc] init] autorelease];
}
+ (TestAllTypesLite_RepeatedGroup_Builder*) builderWithPrototype:(TestAllTypesLite_RepeatedGroup*) prototype {
  return [[TestAllTypesLite_RepeatedGroup builder] mergeFrom:prototype];
}
- (TestAllTypesLite_RepeatedGroup_Builder*) builder {
  return [TestAllTypesLite_RepeatedGroup builder];
}
- (TestAllTypesLite_RepeatedGroup_Builder*) toBuilder {
  return [TestAllTypesLite_RepeatedGroup builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  if (self.hasA) {
    [output appendFormat:@"%@%@: %@\n", indent, @"a", [NSNumber numberWithInt:self.a]];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestAllTypesLite_RepeatedGroup class]]) {
    return NO;
  }
  TestAllTypesLite_RepeatedGroup *otherMessage = other;
  return
      self.hasA == otherMessage.hasA &&
      (!self.hasA || self.a == otherMessage.a) &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  if (self.hasA) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.a] hash];
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface TestAllTypesLite_RepeatedGroup_Builder()
@property (retain) TestAllTypesLite_RepeatedGroup* result;
@end

@implementation TestAllTypesLite_RepeatedGroup_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestAllTypesLite_RepeatedGroup alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (TestAllTypesLite_RepeatedGroup_Builder*) clear {
  self.result = [[[TestAllTypesLite_RepeatedGroup alloc] init] autorelease];
  return self;
}
- (TestAllTypesLite_RepeatedGroup_Builder*) clone {
  return [TestAllTypesLite_RepeatedGroup builderWithPrototype:result];
}
- (TestAllTypesLite_RepeatedGroup*) defaultInstance {
  return [TestAllTypesLite_RepeatedGroup defaultInstance];
}
- (TestAllTypesLite_RepeatedGroup*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestAllTypesLite_RepeatedGroup*) buildPartial {
  TestAllTypesLite_RepeatedGroup* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestAllTypesLite_RepeatedGroup_Builder*) mergeFrom:(TestAllTypesLite_RepeatedGroup*) other {
  if (other == [TestAllTypesLite_RepeatedGroup defaultInstance]) {
    return self;
  }
  if (other.hasA) {
    [self setA:other.a];
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestAllTypesLite_RepeatedGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestAllTypesLite_RepeatedGroup_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 376: {
        [self setA:[input readInt32]];
        break;
      }
    }
  }
}
- (BOOL) hasA {
  return result.hasA;
}
- (int32_t) a {
  return result.a;
}
- (TestAllTypesLite_RepeatedGroup_Builder*) setA:(int32_t) value {
  result.hasA = YES;
  result.a = value;
  return self;
}
- (TestAllTypesLite_RepeatedGroup_Builder*) clearA {
  result.hasA = NO;
  result.a = 0;
  return self;
}
@end

@interface TestAllTypesLite_Builder()
@property (retain) TestAllTypesLite* result;
@end

@implementation TestAllTypesLite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestAllTypesLite alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (TestAllTypesLite_Builder*) clear {
  self.result = [[[TestAllTypesLite alloc] init] autorelease];
  return self;
}
- (TestAllTypesLite_Builder*) clone {
  return [TestAllTypesLite builderWithPrototype:result];
}
- (TestAllTypesLite*) defaultInstance {
  return [TestAllTypesLite defaultInstance];
}
- (TestAllTypesLite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestAllTypesLite*) buildPartial {
  TestAllTypesLite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestAllTypesLite_Builder*) mergeFrom:(TestAllTypesLite*) other {
  if (other == [TestAllTypesLite defaultInstance]) {
    return self;
  }
  if (other.hasOptionalInt32) {
    [self setOptionalInt32:other.optionalInt32];
  }
  if (other.hasOptionalInt64) {
    [self setOptionalInt64:other.optionalInt64];
  }
  if (other.hasOptionalUint32) {
    [self setOptionalUint32:other.optionalUint32];
  }
  if (other.hasOptionalUint64) {
    [self setOptionalUint64:other.optionalUint64];
  }
  if (other.hasOptionalSint32) {
    [self setOptionalSint32:other.optionalSint32];
  }
  if (other.hasOptionalSint64) {
    [self setOptionalSint64:other.optionalSint64];
  }
  if (other.hasOptionalFixed32) {
    [self setOptionalFixed32:other.optionalFixed32];
  }
  if (other.hasOptionalFixed64) {
    [self setOptionalFixed64:other.optionalFixed64];
  }
  if (other.hasOptionalSfixed32) {
    [self setOptionalSfixed32:other.optionalSfixed32];
  }
  if (other.hasOptionalSfixed64) {
    [self setOptionalSfixed64:other.optionalSfixed64];
  }
  if (other.hasOptionalFloat) {
    [self setOptionalFloat:other.optionalFloat];
  }
  if (other.hasOptionalDouble) {
    [self setOptionalDouble:other.optionalDouble];
  }
  if (other.hasOptionalBool) {
    [self setOptionalBool:other.optionalBool];
  }
  if (other.hasOptionalString) {
    [self setOptionalString:other.optionalString];
  }
  if (other.hasOptionalBytes) {
    [self setOptionalBytes:other.optionalBytes];
  }
  if (other.hasOptionalGroup) {
    [self mergeOptionalGroup:other.optionalGroup];
  }
  if (other.hasOptionalNestedMessage) {
    [self mergeOptionalNestedMessage:other.optionalNestedMessage];
  }
  if (other.hasOptionalForeignMessage) {
    [self mergeOptionalForeignMessage:other.optionalForeignMessage];
  }
  if (other.hasOptionalImportMessage) {
    [self mergeOptionalImportMessage:other.optionalImportMessage];
  }
  if (other.hasOptionalNestedEnum) {
    [self setOptionalNestedEnum:other.optionalNestedEnum];
  }
  if (other.hasOptionalForeignEnum) {
    [self setOptionalForeignEnum:other.optionalForeignEnum];
  }
  if (other.hasOptionalImportEnum) {
    [self setOptionalImportEnum:other.optionalImportEnum];
  }
  if (other.hasOptionalStringPiece) {
    [self setOptionalStringPiece:other.optionalStringPiece];
  }
  if (other.hasOptionalCord) {
    [self setOptionalCord:other.optionalCord];
  }
  if (other.repeatedInt32Array.count > 0) {
    if (result.repeatedInt32Array == nil) {
      result.repeatedInt32Array = [[other.repeatedInt32Array copyWithZone:[other.repeatedInt32Array zone]] autorelease];
    } else {
      [result.repeatedInt32Array appendArray:other.repeatedInt32Array];
    }
  }
  if (other.repeatedInt64Array.count > 0) {
    if (result.repeatedInt64Array == nil) {
      result.repeatedInt64Array = [[other.repeatedInt64Array copyWithZone:[other.repeatedInt64Array zone]] autorelease];
    } else {
      [result.repeatedInt64Array appendArray:other.repeatedInt64Array];
    }
  }
  if (other.repeatedUint32Array.count > 0) {
    if (result.repeatedUint32Array == nil) {
      result.repeatedUint32Array = [[other.repeatedUint32Array copyWithZone:[other.repeatedUint32Array zone]] autorelease];
    } else {
      [result.repeatedUint32Array appendArray:other.repeatedUint32Array];
    }
  }
  if (other.repeatedUint64Array.count > 0) {
    if (result.repeatedUint64Array == nil) {
      result.repeatedUint64Array = [[other.repeatedUint64Array copyWithZone:[other.repeatedUint64Array zone]] autorelease];
    } else {
      [result.repeatedUint64Array appendArray:other.repeatedUint64Array];
    }
  }
  if (other.repeatedSint32Array.count > 0) {
    if (result.repeatedSint32Array == nil) {
      result.repeatedSint32Array = [[other.repeatedSint32Array copyWithZone:[other.repeatedSint32Array zone]] autorelease];
    } else {
      [result.repeatedSint32Array appendArray:other.repeatedSint32Array];
    }
  }
  if (other.repeatedSint64Array.count > 0) {
    if (result.repeatedSint64Array == nil) {
      result.repeatedSint64Array = [[other.repeatedSint64Array copyWithZone:[other.repeatedSint64Array zone]] autorelease];
    } else {
      [result.repeatedSint64Array appendArray:other.repeatedSint64Array];
    }
  }
  if (other.repeatedFixed32Array.count > 0) {
    if (result.repeatedFixed32Array == nil) {
      result.repeatedFixed32Array = [[other.repeatedFixed32Array copyWithZone:[other.repeatedFixed32Array zone]] autorelease];
    } else {
      [result.repeatedFixed32Array appendArray:other.repeatedFixed32Array];
    }
  }
  if (other.repeatedFixed64Array.count > 0) {
    if (result.repeatedFixed64Array == nil) {
      result.repeatedFixed64Array = [[other.repeatedFixed64Array copyWithZone:[other.repeatedFixed64Array zone]] autorelease];
    } else {
      [result.repeatedFixed64Array appendArray:other.repeatedFixed64Array];
    }
  }
  if (other.repeatedSfixed32Array.count > 0) {
    if (result.repeatedSfixed32Array == nil) {
      result.repeatedSfixed32Array = [[other.repeatedSfixed32Array copyWithZone:[other.repeatedSfixed32Array zone]] autorelease];
    } else {
      [result.repeatedSfixed32Array appendArray:other.repeatedSfixed32Array];
    }
  }
  if (other.repeatedSfixed64Array.count > 0) {
    if (result.repeatedSfixed64Array == nil) {
      result.repeatedSfixed64Array = [[other.repeatedSfixed64Array copyWithZone:[other.repeatedSfixed64Array zone]] autorelease];
    } else {
      [result.repeatedSfixed64Array appendArray:other.repeatedSfixed64Array];
    }
  }
  if (other.repeatedFloatArray.count > 0) {
    if (result.repeatedFloatArray == nil) {
      result.repeatedFloatArray = [[other.repeatedFloatArray copyWithZone:[other.repeatedFloatArray zone]] autorelease];
    } else {
      [result.repeatedFloatArray appendArray:other.repeatedFloatArray];
    }
  }
  if (other.repeatedDoubleArray.count > 0) {
    if (result.repeatedDoubleArray == nil) {
      result.repeatedDoubleArray = [[other.repeatedDoubleArray copyWithZone:[other.repeatedDoubleArray zone]] autorelease];
    } else {
      [result.repeatedDoubleArray appendArray:other.repeatedDoubleArray];
    }
  }
  if (other.repeatedBoolArray.count > 0) {
    if (result.repeatedBoolArray == nil) {
      result.repeatedBoolArray = [[other.repeatedBoolArray copyWithZone:[other.repeatedBoolArray zone]] autorelease];
    } else {
      [result.repeatedBoolArray appendArray:other.repeatedBoolArray];
    }
  }
  if (other.repeatedStringArray.count > 0) {
    if (result.repeatedStringArray == nil) {
      result.repeatedStringArray = [[other.repeatedStringArray copyWithZone:[other.repeatedStringArray zone]] autorelease];
    } else {
      [result.repeatedStringArray appendArray:other.repeatedStringArray];
    }
  }
  if (other.repeatedBytesArray.count > 0) {
    if (result.repeatedBytesArray == nil) {
      result.repeatedBytesArray = [[other.repeatedBytesArray copyWithZone:[other.repeatedBytesArray zone]] autorelease];
    } else {
      [result.repeatedBytesArray appendArray:other.repeatedBytesArray];
    }
  }
  if (other.repeatedGroupArray.count > 0) {
    if (result.repeatedGroupArray == nil) {
      result.repeatedGroupArray = [[other.repeatedGroupArray copyWithZone:[other.repeatedGroupArray zone]] autorelease];
    } else {
      [result.repeatedGroupArray appendArray:other.repeatedGroupArray];
    }
  }
  if (other.repeatedNestedMessageArray.count > 0) {
    if (result.repeatedNestedMessageArray == nil) {
      result.repeatedNestedMessageArray = [[other.repeatedNestedMessageArray copyWithZone:[other.repeatedNestedMessageArray zone]] autorelease];
    } else {
      [result.repeatedNestedMessageArray appendArray:other.repeatedNestedMessageArray];
    }
  }
  if (other.repeatedForeignMessageArray.count > 0) {
    if (result.repeatedForeignMessageArray == nil) {
      result.repeatedForeignMessageArray = [[other.repeatedForeignMessageArray copyWithZone:[other.repeatedForeignMessageArray zone]] autorelease];
    } else {
      [result.repeatedForeignMessageArray appendArray:other.repeatedForeignMessageArray];
    }
  }
  if (other.repeatedImportMessageArray.count > 0) {
    if (result.repeatedImportMessageArray == nil) {
      result.repeatedImportMessageArray = [[other.repeatedImportMessageArray copyWithZone:[other.repeatedImportMessageArray zone]] autorelease];
    } else {
      [result.repeatedImportMessageArray appendArray:other.repeatedImportMessageArray];
    }
  }
  if (other.repeatedNestedEnumArray.count > 0) {
    if (result.repeatedNestedEnumArray == nil) {
      result.repeatedNestedEnumArray = [[other.repeatedNestedEnumArray copyWithZone:[other.repeatedNestedEnumArray zone]] autorelease];
    } else {
      [result.repeatedNestedEnumArray appendArray:other.repeatedNestedEnumArray];
    }
  }
  if (other.repeatedForeignEnumArray.count > 0) {
    if (result.repeatedForeignEnumArray == nil) {
      result.repeatedForeignEnumArray = [[other.repeatedForeignEnumArray copyWithZone:[other.repeatedForeignEnumArray zone]] autorelease];
    } else {
      [result.repeatedForeignEnumArray appendArray:other.repeatedForeignEnumArray];
    }
  }
  if (other.repeatedImportEnumArray.count > 0) {
    if (result.repeatedImportEnumArray == nil) {
      result.repeatedImportEnumArray = [[other.repeatedImportEnumArray copyWithZone:[other.repeatedImportEnumArray zone]] autorelease];
    } else {
      [result.repeatedImportEnumArray appendArray:other.repeatedImportEnumArray];
    }
  }
  if (other.repeatedStringPieceArray.count > 0) {
    if (result.repeatedStringPieceArray == nil) {
      result.repeatedStringPieceArray = [[other.repeatedStringPieceArray copyWithZone:[other.repeatedStringPieceArray zone]] autorelease];
    } else {
      [result.repeatedStringPieceArray appendArray:other.repeatedStringPieceArray];
    }
  }
  if (other.repeatedCordArray.count > 0) {
    if (result.repeatedCordArray == nil) {
      result.repeatedCordArray = [[other.repeatedCordArray copyWithZone:[other.repeatedCordArray zone]] autorelease];
    } else {
      [result.repeatedCordArray appendArray:other.repeatedCordArray];
    }
  }
  if (other.hasDefaultInt32) {
    [self setDefaultInt32:other.defaultInt32];
  }
  if (other.hasDefaultInt64) {
    [self setDefaultInt64:other.defaultInt64];
  }
  if (other.hasDefaultUint32) {
    [self setDefaultUint32:other.defaultUint32];
  }
  if (other.hasDefaultUint64) {
    [self setDefaultUint64:other.defaultUint64];
  }
  if (other.hasDefaultSint32) {
    [self setDefaultSint32:other.defaultSint32];
  }
  if (other.hasDefaultSint64) {
    [self setDefaultSint64:other.defaultSint64];
  }
  if (other.hasDefaultFixed32) {
    [self setDefaultFixed32:other.defaultFixed32];
  }
  if (other.hasDefaultFixed64) {
    [self setDefaultFixed64:other.defaultFixed64];
  }
  if (other.hasDefaultSfixed32) {
    [self setDefaultSfixed32:other.defaultSfixed32];
  }
  if (other.hasDefaultSfixed64) {
    [self setDefaultSfixed64:other.defaultSfixed64];
  }
  if (other.hasDefaultFloat) {
    [self setDefaultFloat:other.defaultFloat];
  }
  if (other.hasDefaultDouble) {
    [self setDefaultDouble:other.defaultDouble];
  }
  if (other.hasDefaultBool) {
    [self setDefaultBool:other.defaultBool];
  }
  if (other.hasDefaultString) {
    [self setDefaultString:other.defaultString];
  }
  if (other.hasDefaultBytes) {
    [self setDefaultBytes:other.defaultBytes];
  }
  if (other.hasDefaultNestedEnum) {
    [self setDefaultNestedEnum:other.defaultNestedEnum];
  }
  if (other.hasDefaultForeignEnum) {
    [self setDefaultForeignEnum:other.defaultForeignEnum];
  }
  if (other.hasDefaultImportEnum) {
    [self setDefaultImportEnum:other.defaultImportEnum];
  }
  if (other.hasDefaultStringPiece) {
    [self setDefaultStringPiece:other.defaultStringPiece];
  }
  if (other.hasDefaultCord) {
    [self setDefaultCord:other.defaultCord];
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestAllTypesLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestAllTypesLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 8: {
        [self setOptionalInt32:[input readInt32]];
        break;
      }
      case 16: {
        [self setOptionalInt64:[input readInt64]];
        break;
      }
      case 24: {
        [self setOptionalUint32:[input readUInt32]];
        break;
      }
      case 32: {
        [self setOptionalUint64:[input readUInt64]];
        break;
      }
      case 40: {
        [self setOptionalSint32:[input readSInt32]];
        break;
      }
      case 48: {
        [self setOptionalSint64:[input readSInt64]];
        break;
      }
      case 61: {
        [self setOptionalFixed32:[input readFixed32]];
        break;
      }
      case 65: {
        [self setOptionalFixed64:[input readFixed64]];
        break;
      }
      case 77: {
        [self setOptionalSfixed32:[input readSFixed32]];
        break;
      }
      case 81: {
        [self setOptionalSfixed64:[input readSFixed64]];
        break;
      }
      case 93: {
        [self setOptionalFloat:[input readFloat]];
        break;
      }
      case 97: {
        [self setOptionalDouble:[input readDouble]];
        break;
      }
      case 104: {
        [self setOptionalBool:[input readBool]];
        break;
      }
      case 114: {
        [self setOptionalString:[input readString]];
        break;
      }
      case 122: {
        [self setOptionalBytes:[input readData]];
        break;
      }
      case 131: {
        TestAllTypesLite_OptionalGroup_Builder* subBuilder = [TestAllTypesLite_OptionalGroup builder];
        if (self.hasOptionalGroup) {
          [subBuilder mergeFrom:self.optionalGroup];
        }
        [input readGroup:16 builder:subBuilder extensionRegistry:extensionRegistry];
        [self setOptionalGroup:[subBuilder buildPartial]];
        break;
      }
      case 146: {
        TestAllTypesLite_NestedMessage_Builder* subBuilder = [TestAllTypesLite_NestedMessage builder];
        if (self.hasOptionalNestedMessage) {
          [subBuilder mergeFrom:self.optionalNestedMessage];
        }
        [input readMessage:subBuilder extensionRegistry:extensionRegistry];
        [self setOptionalNestedMessage:[subBuilder buildPartial]];
        break;
      }
      case 154: {
        ForeignMessageLite_Builder* subBuilder = [ForeignMessageLite builder];
        if (self.hasOptionalForeignMessage) {
          [subBuilder mergeFrom:self.optionalForeignMessage];
        }
        [input readMessage:subBuilder extensionRegistry:extensionRegistry];
        [self setOptionalForeignMessage:[subBuilder buildPartial]];
        break;
      }
      case 162: {
        ImportMessageLite_Builder* subBuilder = [ImportMessageLite builder];
        if (self.hasOptionalImportMessage) {
          [subBuilder mergeFrom:self.optionalImportMessage];
        }
        [input readMessage:subBuilder extensionRegistry:extensionRegistry];
        [self setOptionalImportMessage:[subBuilder buildPartial]];
        break;
      }
      case 168: {
        int32_t value = [input readEnum];
        if (TestAllTypesLite_NestedEnumIsValidValue(value)) {
          [self setOptionalNestedEnum:value];
        } else {
          [unknownFields mergeVarintField:21 value:value];
        }
        break;
      }
      case 176: {
        int32_t value = [input readEnum];
        if (ForeignEnumLiteIsValidValue(value)) {
          [self setOptionalForeignEnum:value];
        } else {
          [unknownFields mergeVarintField:22 value:value];
        }
        break;
      }
      case 184: {
        int32_t value = [input readEnum];
        if (ImportEnumLiteIsValidValue(value)) {
          [self setOptionalImportEnum:value];
        } else {
          [unknownFields mergeVarintField:23 value:value];
        }
        break;
      }
      case 194: {
        [self setOptionalStringPiece:[input readString]];
        break;
      }
      case 202: {
        [self setOptionalCord:[input readString]];
        break;
      }
      case 248: {
        [self addRepeatedInt32:[input readInt32]];
        break;
      }
      case 256: {
        [self addRepeatedInt64:[input readInt64]];
        break;
      }
      case 264: {
        [self addRepeatedUint32:[input readUInt32]];
        break;
      }
      case 272: {
        [self addRepeatedUint64:[input readUInt64]];
        break;
      }
      case 280: {
        [self addRepeatedSint32:[input readSInt32]];
        break;
      }
      case 288: {
        [self addRepeatedSint64:[input readSInt64]];
        break;
      }
      case 301: {
        [self addRepeatedFixed32:[input readFixed32]];
        break;
      }
      case 305: {
        [self addRepeatedFixed64:[input readFixed64]];
        break;
      }
      case 317: {
        [self addRepeatedSfixed32:[input readSFixed32]];
        break;
      }
      case 321: {
        [self addRepeatedSfixed64:[input readSFixed64]];
        break;
      }
      case 333: {
        [self addRepeatedFloat:[input readFloat]];
        break;
      }
      case 337: {
        [self addRepeatedDouble:[input readDouble]];
        break;
      }
      case 344: {
        [self addRepeatedBool:[input readBool]];
        break;
      }
      case 354: {
        [self addRepeatedString:[input readString]];
        break;
      }
      case 362: {
        [self addRepeatedBytes:[input readData]];
        break;
      }
      case 371: {
        TestAllTypesLite_RepeatedGroup_Builder* subBuilder = [TestAllTypesLite_RepeatedGroup builder];
        [input readGroup:46 builder:subBuilder extensionRegistry:extensionRegistry];
        [self addRepeatedGroup:[subBuilder buildPartial]];
        break;
      }
      case 386: {
        TestAllTypesLite_NestedMessage_Builder* subBuilder = [TestAllTypesLite_NestedMessage builder];
        [input readMessage:subBuilder extensionRegistry:extensionRegistry];
        [self addRepeatedNestedMessage:[subBuilder buildPartial]];
        break;
      }
      case 394: {
        ForeignMessageLite_Builder* subBuilder = [ForeignMessageLite builder];
        [input readMessage:subBuilder extensionRegistry:extensionRegistry];
        [self addRepeatedForeignMessage:[subBuilder buildPartial]];
        break;
      }
      case 402: {
        ImportMessageLite_Builder* subBuilder = [ImportMessageLite builder];
        [input readMessage:subBuilder extensionRegistry:extensionRegistry];
        [self addRepeatedImportMessage:[subBuilder buildPartial]];
        break;
      }
      case 408: {
        int32_t value = [input readEnum];
        if (TestAllTypesLite_NestedEnumIsValidValue(value)) {
          [self addRepeatedNestedEnum:value];
        } else {
          [unknownFields mergeVarintField:51 value:value];
        }
        break;
      }
      case 416: {
        int32_t value = [input readEnum];
        if (ForeignEnumLiteIsValidValue(value)) {
          [self addRepeatedForeignEnum:value];
        } else {
          [unknownFields mergeVarintField:52 value:value];
        }
        break;
      }
      case 424: {
        int32_t value = [input readEnum];
        if (ImportEnumLiteIsValidValue(value)) {
          [self addRepeatedImportEnum:value];
        } else {
          [unknownFields mergeVarintField:53 value:value];
        }
        break;
      }
      case 434: {
        [self addRepeatedStringPiece:[input readString]];
        break;
      }
      case 442: {
        [self addRepeatedCord:[input readString]];
        break;
      }
      case 488: {
        [self setDefaultInt32:[input readInt32]];
        break;
      }
      case 496: {
        [self setDefaultInt64:[input readInt64]];
        break;
      }
      case 504: {
        [self setDefaultUint32:[input readUInt32]];
        break;
      }
      case 512: {
        [self setDefaultUint64:[input readUInt64]];
        break;
      }
      case 520: {
        [self setDefaultSint32:[input readSInt32]];
        break;
      }
      case 528: {
        [self setDefaultSint64:[input readSInt64]];
        break;
      }
      case 541: {
        [self setDefaultFixed32:[input readFixed32]];
        break;
      }
      case 545: {
        [self setDefaultFixed64:[input readFixed64]];
        break;
      }
      case 557: {
        [self setDefaultSfixed32:[input readSFixed32]];
        break;
      }
      case 561: {
        [self setDefaultSfixed64:[input readSFixed64]];
        break;
      }
      case 573: {
        [self setDefaultFloat:[input readFloat]];
        break;
      }
      case 577: {
        [self setDefaultDouble:[input readDouble]];
        break;
      }
      case 584: {
        [self setDefaultBool:[input readBool]];
        break;
      }
      case 594: {
        [self setDefaultString:[input readString]];
        break;
      }
      case 602: {
        [self setDefaultBytes:[input readData]];
        break;
      }
      case 648: {
        int32_t value = [input readEnum];
        if (TestAllTypesLite_NestedEnumIsValidValue(value)) {
          [self setDefaultNestedEnum:value];
        } else {
          [unknownFields mergeVarintField:81 value:value];
        }
        break;
      }
      case 656: {
        int32_t value = [input readEnum];
        if (ForeignEnumLiteIsValidValue(value)) {
          [self setDefaultForeignEnum:value];
        } else {
          [unknownFields mergeVarintField:82 value:value];
        }
        break;
      }
      case 664: {
        int32_t value = [input readEnum];
        if (ImportEnumLiteIsValidValue(value)) {
          [self setDefaultImportEnum:value];
        } else {
          [unknownFields mergeVarintField:83 value:value];
        }
        break;
      }
      case 674: {
        [self setDefaultStringPiece:[input readString]];
        break;
      }
      case 682: {
        [self setDefaultCord:[input readString]];
        break;
      }
    }
  }
}
- (BOOL) hasOptionalInt32 {
  return result.hasOptionalInt32;
}
- (int32_t) optionalInt32 {
  return result.optionalInt32;
}
- (TestAllTypesLite_Builder*) setOptionalInt32:(int32_t) value {
  result.hasOptionalInt32 = YES;
  result.optionalInt32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalInt32 {
  result.hasOptionalInt32 = NO;
  result.optionalInt32 = 0;
  return self;
}
- (BOOL) hasOptionalInt64 {
  return result.hasOptionalInt64;
}
- (int64_t) optionalInt64 {
  return result.optionalInt64;
}
- (TestAllTypesLite_Builder*) setOptionalInt64:(int64_t) value {
  result.hasOptionalInt64 = YES;
  result.optionalInt64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalInt64 {
  result.hasOptionalInt64 = NO;
  result.optionalInt64 = 0L;
  return self;
}
- (BOOL) hasOptionalUint32 {
  return result.hasOptionalUint32;
}
- (uint32_t) optionalUint32 {
  return result.optionalUint32;
}
- (TestAllTypesLite_Builder*) setOptionalUint32:(uint32_t) value {
  result.hasOptionalUint32 = YES;
  result.optionalUint32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalUint32 {
  result.hasOptionalUint32 = NO;
  result.optionalUint32 = 0;
  return self;
}
- (BOOL) hasOptionalUint64 {
  return result.hasOptionalUint64;
}
- (uint64_t) optionalUint64 {
  return result.optionalUint64;
}
- (TestAllTypesLite_Builder*) setOptionalUint64:(uint64_t) value {
  result.hasOptionalUint64 = YES;
  result.optionalUint64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalUint64 {
  result.hasOptionalUint64 = NO;
  result.optionalUint64 = 0L;
  return self;
}
- (BOOL) hasOptionalSint32 {
  return result.hasOptionalSint32;
}
- (int32_t) optionalSint32 {
  return result.optionalSint32;
}
- (TestAllTypesLite_Builder*) setOptionalSint32:(int32_t) value {
  result.hasOptionalSint32 = YES;
  result.optionalSint32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalSint32 {
  result.hasOptionalSint32 = NO;
  result.optionalSint32 = 0;
  return self;
}
- (BOOL) hasOptionalSint64 {
  return result.hasOptionalSint64;
}
- (int64_t) optionalSint64 {
  return result.optionalSint64;
}
- (TestAllTypesLite_Builder*) setOptionalSint64:(int64_t) value {
  result.hasOptionalSint64 = YES;
  result.optionalSint64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalSint64 {
  result.hasOptionalSint64 = NO;
  result.optionalSint64 = 0L;
  return self;
}
- (BOOL) hasOptionalFixed32 {
  return result.hasOptionalFixed32;
}
- (uint32_t) optionalFixed32 {
  return result.optionalFixed32;
}
- (TestAllTypesLite_Builder*) setOptionalFixed32:(uint32_t) value {
  result.hasOptionalFixed32 = YES;
  result.optionalFixed32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalFixed32 {
  result.hasOptionalFixed32 = NO;
  result.optionalFixed32 = 0;
  return self;
}
- (BOOL) hasOptionalFixed64 {
  return result.hasOptionalFixed64;
}
- (uint64_t) optionalFixed64 {
  return result.optionalFixed64;
}
- (TestAllTypesLite_Builder*) setOptionalFixed64:(uint64_t) value {
  result.hasOptionalFixed64 = YES;
  result.optionalFixed64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalFixed64 {
  result.hasOptionalFixed64 = NO;
  result.optionalFixed64 = 0L;
  return self;
}
- (BOOL) hasOptionalSfixed32 {
  return result.hasOptionalSfixed32;
}
- (int32_t) optionalSfixed32 {
  return result.optionalSfixed32;
}
- (TestAllTypesLite_Builder*) setOptionalSfixed32:(int32_t) value {
  result.hasOptionalSfixed32 = YES;
  result.optionalSfixed32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalSfixed32 {
  result.hasOptionalSfixed32 = NO;
  result.optionalSfixed32 = 0;
  return self;
}
- (BOOL) hasOptionalSfixed64 {
  return result.hasOptionalSfixed64;
}
- (int64_t) optionalSfixed64 {
  return result.optionalSfixed64;
}
- (TestAllTypesLite_Builder*) setOptionalSfixed64:(int64_t) value {
  result.hasOptionalSfixed64 = YES;
  result.optionalSfixed64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalSfixed64 {
  result.hasOptionalSfixed64 = NO;
  result.optionalSfixed64 = 0L;
  return self;
}
- (BOOL) hasOptionalFloat {
  return result.hasOptionalFloat;
}
- (Float32) optionalFloat {
  return result.optionalFloat;
}
- (TestAllTypesLite_Builder*) setOptionalFloat:(Float32) value {
  result.hasOptionalFloat = YES;
  result.optionalFloat = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalFloat {
  result.hasOptionalFloat = NO;
  result.optionalFloat = 0;
  return self;
}
- (BOOL) hasOptionalDouble {
  return result.hasOptionalDouble;
}
- (Float64) optionalDouble {
  return result.optionalDouble;
}
- (TestAllTypesLite_Builder*) setOptionalDouble:(Float64) value {
  result.hasOptionalDouble = YES;
  result.optionalDouble = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalDouble {
  result.hasOptionalDouble = NO;
  result.optionalDouble = 0;
  return self;
}
- (BOOL) hasOptionalBool {
  return result.hasOptionalBool;
}
- (BOOL) optionalBool {
  return result.optionalBool;
}
- (TestAllTypesLite_Builder*) setOptionalBool:(BOOL) value {
  result.hasOptionalBool = YES;
  result.optionalBool = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalBool {
  result.hasOptionalBool = NO;
  result.optionalBool = NO;
  return self;
}
- (BOOL) hasOptionalString {
  return result.hasOptionalString;
}
- (NSString*) optionalString {
  return result.optionalString;
}
- (TestAllTypesLite_Builder*) setOptionalString:(NSString*) value {
  result.hasOptionalString = YES;
  result.optionalString = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalString {
  result.hasOptionalString = NO;
  result.optionalString = @"";
  return self;
}
- (BOOL) hasOptionalBytes {
  return result.hasOptionalBytes;
}
- (NSData*) optionalBytes {
  return result.optionalBytes;
}
- (TestAllTypesLite_Builder*) setOptionalBytes:(NSData*) value {
  result.hasOptionalBytes = YES;
  result.optionalBytes = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalBytes {
  result.hasOptionalBytes = NO;
  result.optionalBytes = [NSData data];
  return self;
}
- (BOOL) hasOptionalGroup {
  return result.hasOptionalGroup;
}
- (TestAllTypesLite_OptionalGroup*) optionalGroup {
  return result.optionalGroup;
}
- (TestAllTypesLite_Builder*) setOptionalGroup:(TestAllTypesLite_OptionalGroup*) value {
  result.hasOptionalGroup = YES;
  result.optionalGroup = value;
  return self;
}
- (TestAllTypesLite_Builder*) setOptionalGroupBuilder:(TestAllTypesLite_OptionalGroup_Builder*) builderForValue {
  return [self setOptionalGroup:[builderForValue build]];
}
- (TestAllTypesLite_Builder*) mergeOptionalGroup:(TestAllTypesLite_OptionalGroup*) value {
  if (result.hasOptionalGroup &&
      result.optionalGroup != [TestAllTypesLite_OptionalGroup defaultInstance]) {
    result.optionalGroup =
      [[[TestAllTypesLite_OptionalGroup builderWithPrototype:result.optionalGroup] mergeFrom:value] buildPartial];
  } else {
    result.optionalGroup = value;
  }
  result.hasOptionalGroup = YES;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalGroup {
  result.hasOptionalGroup = NO;
  result.optionalGroup = [TestAllTypesLite_OptionalGroup defaultInstance];
  return self;
}
- (BOOL) hasOptionalNestedMessage {
  return result.hasOptionalNestedMessage;
}
- (TestAllTypesLite_NestedMessage*) optionalNestedMessage {
  return result.optionalNestedMessage;
}
- (TestAllTypesLite_Builder*) setOptionalNestedMessage:(TestAllTypesLite_NestedMessage*) value {
  result.hasOptionalNestedMessage = YES;
  result.optionalNestedMessage = value;
  return self;
}
- (TestAllTypesLite_Builder*) setOptionalNestedMessageBuilder:(TestAllTypesLite_NestedMessage_Builder*) builderForValue {
  return [self setOptionalNestedMessage:[builderForValue build]];
}
- (TestAllTypesLite_Builder*) mergeOptionalNestedMessage:(TestAllTypesLite_NestedMessage*) value {
  if (result.hasOptionalNestedMessage &&
      result.optionalNestedMessage != [TestAllTypesLite_NestedMessage defaultInstance]) {
    result.optionalNestedMessage =
      [[[TestAllTypesLite_NestedMessage builderWithPrototype:result.optionalNestedMessage] mergeFrom:value] buildPartial];
  } else {
    result.optionalNestedMessage = value;
  }
  result.hasOptionalNestedMessage = YES;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalNestedMessage {
  result.hasOptionalNestedMessage = NO;
  result.optionalNestedMessage = [TestAllTypesLite_NestedMessage defaultInstance];
  return self;
}
- (BOOL) hasOptionalForeignMessage {
  return result.hasOptionalForeignMessage;
}
- (ForeignMessageLite*) optionalForeignMessage {
  return result.optionalForeignMessage;
}
- (TestAllTypesLite_Builder*) setOptionalForeignMessage:(ForeignMessageLite*) value {
  result.hasOptionalForeignMessage = YES;
  result.optionalForeignMessage = value;
  return self;
}
- (TestAllTypesLite_Builder*) setOptionalForeignMessageBuilder:(ForeignMessageLite_Builder*) builderForValue {
  return [self setOptionalForeignMessage:[builderForValue build]];
}
- (TestAllTypesLite_Builder*) mergeOptionalForeignMessage:(ForeignMessageLite*) value {
  if (result.hasOptionalForeignMessage &&
      result.optionalForeignMessage != [ForeignMessageLite defaultInstance]) {
    result.optionalForeignMessage =
      [[[ForeignMessageLite builderWithPrototype:result.optionalForeignMessage] mergeFrom:value] buildPartial];
  } else {
    result.optionalForeignMessage = value;
  }
  result.hasOptionalForeignMessage = YES;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalForeignMessage {
  result.hasOptionalForeignMessage = NO;
  result.optionalForeignMessage = [ForeignMessageLite defaultInstance];
  return self;
}
- (BOOL) hasOptionalImportMessage {
  return result.hasOptionalImportMessage;
}
- (ImportMessageLite*) optionalImportMessage {
  return result.optionalImportMessage;
}
- (TestAllTypesLite_Builder*) setOptionalImportMessage:(ImportMessageLite*) value {
  result.hasOptionalImportMessage = YES;
  result.optionalImportMessage = value;
  return self;
}
- (TestAllTypesLite_Builder*) setOptionalImportMessageBuilder:(ImportMessageLite_Builder*) builderForValue {
  return [self setOptionalImportMessage:[builderForValue build]];
}
- (TestAllTypesLite_Builder*) mergeOptionalImportMessage:(ImportMessageLite*) value {
  if (result.hasOptionalImportMessage &&
      result.optionalImportMessage != [ImportMessageLite defaultInstance]) {
    result.optionalImportMessage =
      [[[ImportMessageLite builderWithPrototype:result.optionalImportMessage] mergeFrom:value] buildPartial];
  } else {
    result.optionalImportMessage = value;
  }
  result.hasOptionalImportMessage = YES;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalImportMessage {
  result.hasOptionalImportMessage = NO;
  result.optionalImportMessage = [ImportMessageLite defaultInstance];
  return self;
}
- (BOOL) hasOptionalNestedEnum {
  return result.hasOptionalNestedEnum;
}
- (TestAllTypesLite_NestedEnum) optionalNestedEnum {
  return result.optionalNestedEnum;
}
- (TestAllTypesLite_Builder*) setOptionalNestedEnum:(TestAllTypesLite_NestedEnum) value {
  result.hasOptionalNestedEnum = YES;
  result.optionalNestedEnum = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalNestedEnum {
  result.hasOptionalNestedEnum = NO;
  result.optionalNestedEnum = TestAllTypesLite_NestedEnumFoo;
  return self;
}
- (BOOL) hasOptionalForeignEnum {
  return result.hasOptionalForeignEnum;
}
- (ForeignEnumLite) optionalForeignEnum {
  return result.optionalForeignEnum;
}
- (TestAllTypesLite_Builder*) setOptionalForeignEnum:(ForeignEnumLite) value {
  result.hasOptionalForeignEnum = YES;
  result.optionalForeignEnum = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalForeignEnum {
  result.hasOptionalForeignEnum = NO;
  result.optionalForeignEnum = ForeignEnumLiteForeignLiteFoo;
  return self;
}
- (BOOL) hasOptionalImportEnum {
  return result.hasOptionalImportEnum;
}
- (ImportEnumLite) optionalImportEnum {
  return result.optionalImportEnum;
}
- (TestAllTypesLite_Builder*) setOptionalImportEnum:(ImportEnumLite) value {
  result.hasOptionalImportEnum = YES;
  result.optionalImportEnum = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalImportEnum {
  result.hasOptionalImportEnum = NO;
  result.optionalImportEnum = ImportEnumLiteImportLiteFoo;
  return self;
}
- (BOOL) hasOptionalStringPiece {
  return result.hasOptionalStringPiece;
}
- (NSString*) optionalStringPiece {
  return result.optionalStringPiece;
}
- (TestAllTypesLite_Builder*) setOptionalStringPiece:(NSString*) value {
  result.hasOptionalStringPiece = YES;
  result.optionalStringPiece = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalStringPiece {
  result.hasOptionalStringPiece = NO;
  result.optionalStringPiece = @"";
  return self;
}
- (BOOL) hasOptionalCord {
  return result.hasOptionalCord;
}
- (NSString*) optionalCord {
  return result.optionalCord;
}
- (TestAllTypesLite_Builder*) setOptionalCord:(NSString*) value {
  result.hasOptionalCord = YES;
  result.optionalCord = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearOptionalCord {
  result.hasOptionalCord = NO;
  result.optionalCord = @"";
  return self;
}
- (PBAppendableArray *)repeatedInt32 {
  return result.repeatedInt32Array;
}
- (int32_t)repeatedInt32AtIndex:(NSUInteger)index {
  return [result repeatedInt32AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedInt32:(int32_t)value {
  if (result.repeatedInt32Array == nil) {
    result.repeatedInt32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.repeatedInt32Array addInt32:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedInt32Array:(NSArray *)array {
  result.repeatedInt32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedInt32Values:(const int32_t *)values count:(NSUInteger)count {
  result.repeatedInt32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedInt32 {
  result.repeatedInt32Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedInt64 {
  return result.repeatedInt64Array;
}
- (int64_t)repeatedInt64AtIndex:(NSUInteger)index {
  return [result repeatedInt64AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedInt64:(int64_t)value {
  if (result.repeatedInt64Array == nil) {
    result.repeatedInt64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
  }
  [result.repeatedInt64Array addInt64:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedInt64Array:(NSArray *)array {
  result.repeatedInt64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedInt64Values:(const int64_t *)values count:(NSUInteger)count {
  result.repeatedInt64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedInt64 {
  result.repeatedInt64Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedUint32 {
  return result.repeatedUint32Array;
}
- (uint32_t)repeatedUint32AtIndex:(NSUInteger)index {
  return [result repeatedUint32AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedUint32:(uint32_t)value {
  if (result.repeatedUint32Array == nil) {
    result.repeatedUint32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt32];
  }
  [result.repeatedUint32Array addUint32:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedUint32Array:(NSArray *)array {
  result.repeatedUint32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt32];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedUint32Values:(const uint32_t *)values count:(NSUInteger)count {
  result.repeatedUint32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt32];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedUint32 {
  result.repeatedUint32Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedUint64 {
  return result.repeatedUint64Array;
}
- (uint64_t)repeatedUint64AtIndex:(NSUInteger)index {
  return [result repeatedUint64AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedUint64:(uint64_t)value {
  if (result.repeatedUint64Array == nil) {
    result.repeatedUint64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt64];
  }
  [result.repeatedUint64Array addUint64:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedUint64Array:(NSArray *)array {
  result.repeatedUint64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt64];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedUint64Values:(const uint64_t *)values count:(NSUInteger)count {
  result.repeatedUint64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt64];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedUint64 {
  result.repeatedUint64Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedSint32 {
  return result.repeatedSint32Array;
}
- (int32_t)repeatedSint32AtIndex:(NSUInteger)index {
  return [result repeatedSint32AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedSint32:(int32_t)value {
  if (result.repeatedSint32Array == nil) {
    result.repeatedSint32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.repeatedSint32Array addInt32:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedSint32Array:(NSArray *)array {
  result.repeatedSint32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedSint32Values:(const int32_t *)values count:(NSUInteger)count {
  result.repeatedSint32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedSint32 {
  result.repeatedSint32Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedSint64 {
  return result.repeatedSint64Array;
}
- (int64_t)repeatedSint64AtIndex:(NSUInteger)index {
  return [result repeatedSint64AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedSint64:(int64_t)value {
  if (result.repeatedSint64Array == nil) {
    result.repeatedSint64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
  }
  [result.repeatedSint64Array addInt64:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedSint64Array:(NSArray *)array {
  result.repeatedSint64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedSint64Values:(const int64_t *)values count:(NSUInteger)count {
  result.repeatedSint64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedSint64 {
  result.repeatedSint64Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedFixed32 {
  return result.repeatedFixed32Array;
}
- (uint32_t)repeatedFixed32AtIndex:(NSUInteger)index {
  return [result repeatedFixed32AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedFixed32:(uint32_t)value {
  if (result.repeatedFixed32Array == nil) {
    result.repeatedFixed32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt32];
  }
  [result.repeatedFixed32Array addUint32:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedFixed32Array:(NSArray *)array {
  result.repeatedFixed32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt32];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedFixed32Values:(const uint32_t *)values count:(NSUInteger)count {
  result.repeatedFixed32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt32];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedFixed32 {
  result.repeatedFixed32Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedFixed64 {
  return result.repeatedFixed64Array;
}
- (uint64_t)repeatedFixed64AtIndex:(NSUInteger)index {
  return [result repeatedFixed64AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedFixed64:(uint64_t)value {
  if (result.repeatedFixed64Array == nil) {
    result.repeatedFixed64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt64];
  }
  [result.repeatedFixed64Array addUint64:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedFixed64Array:(NSArray *)array {
  result.repeatedFixed64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt64];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedFixed64Values:(const uint64_t *)values count:(NSUInteger)count {
  result.repeatedFixed64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt64];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedFixed64 {
  result.repeatedFixed64Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedSfixed32 {
  return result.repeatedSfixed32Array;
}
- (int32_t)repeatedSfixed32AtIndex:(NSUInteger)index {
  return [result repeatedSfixed32AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedSfixed32:(int32_t)value {
  if (result.repeatedSfixed32Array == nil) {
    result.repeatedSfixed32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.repeatedSfixed32Array addInt32:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedSfixed32Array:(NSArray *)array {
  result.repeatedSfixed32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedSfixed32Values:(const int32_t *)values count:(NSUInteger)count {
  result.repeatedSfixed32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedSfixed32 {
  result.repeatedSfixed32Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedSfixed64 {
  return result.repeatedSfixed64Array;
}
- (int64_t)repeatedSfixed64AtIndex:(NSUInteger)index {
  return [result repeatedSfixed64AtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedSfixed64:(int64_t)value {
  if (result.repeatedSfixed64Array == nil) {
    result.repeatedSfixed64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
  }
  [result.repeatedSfixed64Array addInt64:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedSfixed64Array:(NSArray *)array {
  result.repeatedSfixed64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedSfixed64Values:(const int64_t *)values count:(NSUInteger)count {
  result.repeatedSfixed64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedSfixed64 {
  result.repeatedSfixed64Array = nil;
  return self;
}
- (PBAppendableArray *)repeatedFloat {
  return result.repeatedFloatArray;
}
- (Float32)repeatedFloatAtIndex:(NSUInteger)index {
  return [result repeatedFloatAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedFloat:(Float32)value {
  if (result.repeatedFloatArray == nil) {
    result.repeatedFloatArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeFloat];
  }
  [result.repeatedFloatArray addFloat:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedFloatArray:(NSArray *)array {
  result.repeatedFloatArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeFloat];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedFloatValues:(const Float32 *)values count:(NSUInteger)count {
  result.repeatedFloatArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeFloat];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedFloat {
  result.repeatedFloatArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedDouble {
  return result.repeatedDoubleArray;
}
- (Float64)repeatedDoubleAtIndex:(NSUInteger)index {
  return [result repeatedDoubleAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedDouble:(Float64)value {
  if (result.repeatedDoubleArray == nil) {
    result.repeatedDoubleArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeDouble];
  }
  [result.repeatedDoubleArray addDouble:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedDoubleArray:(NSArray *)array {
  result.repeatedDoubleArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeDouble];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedDoubleValues:(const Float64 *)values count:(NSUInteger)count {
  result.repeatedDoubleArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeDouble];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedDouble {
  result.repeatedDoubleArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedBool {
  return result.repeatedBoolArray;
}
- (BOOL)repeatedBoolAtIndex:(NSUInteger)index {
  return [result repeatedBoolAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedBool:(BOOL)value {
  if (result.repeatedBoolArray == nil) {
    result.repeatedBoolArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeBool];
  }
  [result.repeatedBoolArray addBool:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedBoolArray:(NSArray *)array {
  result.repeatedBoolArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeBool];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedBoolValues:(const BOOL *)values count:(NSUInteger)count {
  result.repeatedBoolArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeBool];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedBool {
  result.repeatedBoolArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedString {
  return result.repeatedStringArray;
}
- (NSString*)repeatedStringAtIndex:(NSUInteger)index {
  return [result repeatedStringAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedString:(NSString*)value {
  if (result.repeatedStringArray == nil) {
    result.repeatedStringArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeObject];
  }
  [result.repeatedStringArray addObject:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedStringArray:(NSArray *)array {
  result.repeatedStringArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedStringValues:(const NSString* *)values count:(NSUInteger)count {
  result.repeatedStringArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedString {
  result.repeatedStringArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedBytes {
  return result.repeatedBytesArray;
}
- (NSData*)repeatedBytesAtIndex:(NSUInteger)index {
  return [result repeatedBytesAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedBytes:(NSData*)value {
  if (result.repeatedBytesArray == nil) {
    result.repeatedBytesArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeObject];
  }
  [result.repeatedBytesArray addObject:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedBytesArray:(NSArray *)array {
  result.repeatedBytesArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedBytesValues:(const NSData* *)values count:(NSUInteger)count {
  result.repeatedBytesArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedBytes {
  result.repeatedBytesArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedGroup {
  return result.repeatedGroupArray;
}
- (TestAllTypesLite_RepeatedGroup*)repeatedGroupAtIndex:(NSUInteger)index {
  return [result repeatedGroupAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedGroup:(TestAllTypesLite_RepeatedGroup*)value {
  if (result.repeatedGroupArray == nil) {
    result.repeatedGroupArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeObject];
  }
  [result.repeatedGroupArray addObject:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedGroupArray:(NSArray *)array {
  result.repeatedGroupArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedGroupValues:(const TestAllTypesLite_RepeatedGroup* *)values count:(NSUInteger)count {
  result.repeatedGroupArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedGroup {
  result.repeatedGroupArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedNestedMessage {
  return result.repeatedNestedMessageArray;
}
- (TestAllTypesLite_NestedMessage*)repeatedNestedMessageAtIndex:(NSUInteger)index {
  return [result repeatedNestedMessageAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedNestedMessage:(TestAllTypesLite_NestedMessage*)value {
  if (result.repeatedNestedMessageArray == nil) {
    result.repeatedNestedMessageArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeObject];
  }
  [result.repeatedNestedMessageArray addObject:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedNestedMessageArray:(NSArray *)array {
  result.repeatedNestedMessageArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedNestedMessageValues:(const TestAllTypesLite_NestedMessage* *)values count:(NSUInteger)count {
  result.repeatedNestedMessageArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedNestedMessage {
  result.repeatedNestedMessageArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedForeignMessage {
  return result.repeatedForeignMessageArray;
}
- (ForeignMessageLite*)repeatedForeignMessageAtIndex:(NSUInteger)index {
  return [result repeatedForeignMessageAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedForeignMessage:(ForeignMessageLite*)value {
  if (result.repeatedForeignMessageArray == nil) {
    result.repeatedForeignMessageArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeObject];
  }
  [result.repeatedForeignMessageArray addObject:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedForeignMessageArray:(NSArray *)array {
  result.repeatedForeignMessageArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedForeignMessageValues:(const ForeignMessageLite* *)values count:(NSUInteger)count {
  result.repeatedForeignMessageArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedForeignMessage {
  result.repeatedForeignMessageArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedImportMessage {
  return result.repeatedImportMessageArray;
}
- (ImportMessageLite*)repeatedImportMessageAtIndex:(NSUInteger)index {
  return [result repeatedImportMessageAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedImportMessage:(ImportMessageLite*)value {
  if (result.repeatedImportMessageArray == nil) {
    result.repeatedImportMessageArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeObject];
  }
  [result.repeatedImportMessageArray addObject:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedImportMessageArray:(NSArray *)array {
  result.repeatedImportMessageArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedImportMessageValues:(const ImportMessageLite* *)values count:(NSUInteger)count {
  result.repeatedImportMessageArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedImportMessage {
  result.repeatedImportMessageArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedNestedEnum {
  return result.repeatedNestedEnumArray;
}
- (TestAllTypesLite_NestedEnum)repeatedNestedEnumAtIndex:(NSUInteger)index {
  return [result repeatedNestedEnumAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedNestedEnum:(TestAllTypesLite_NestedEnum)value {
  if (result.repeatedNestedEnumArray == nil) {
    result.repeatedNestedEnumArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.repeatedNestedEnumArray addInt32:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedNestedEnumArray:(NSArray *)array {
  result.repeatedNestedEnumArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedNestedEnumValues:(const TestAllTypesLite_NestedEnum *)values count:(NSUInteger)count {
  result.repeatedNestedEnumArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedNestedEnum {
  result.repeatedNestedEnumArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedForeignEnum {
  return result.repeatedForeignEnumArray;
}
- (ForeignEnumLite)repeatedForeignEnumAtIndex:(NSUInteger)index {
  return [result repeatedForeignEnumAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedForeignEnum:(ForeignEnumLite)value {
  if (result.repeatedForeignEnumArray == nil) {
    result.repeatedForeignEnumArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.repeatedForeignEnumArray addInt32:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedForeignEnumArray:(NSArray *)array {
  result.repeatedForeignEnumArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedForeignEnumValues:(const ForeignEnumLite *)values count:(NSUInteger)count {
  result.repeatedForeignEnumArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedForeignEnum {
  result.repeatedForeignEnumArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedImportEnum {
  return result.repeatedImportEnumArray;
}
- (ImportEnumLite)repeatedImportEnumAtIndex:(NSUInteger)index {
  return [result repeatedImportEnumAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedImportEnum:(ImportEnumLite)value {
  if (result.repeatedImportEnumArray == nil) {
    result.repeatedImportEnumArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.repeatedImportEnumArray addInt32:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedImportEnumArray:(NSArray *)array {
  result.repeatedImportEnumArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedImportEnumValues:(const ImportEnumLite *)values count:(NSUInteger)count {
  result.repeatedImportEnumArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedImportEnum {
  result.repeatedImportEnumArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedStringPiece {
  return result.repeatedStringPieceArray;
}
- (NSString*)repeatedStringPieceAtIndex:(NSUInteger)index {
  return [result repeatedStringPieceAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedStringPiece:(NSString*)value {
  if (result.repeatedStringPieceArray == nil) {
    result.repeatedStringPieceArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeObject];
  }
  [result.repeatedStringPieceArray addObject:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedStringPieceArray:(NSArray *)array {
  result.repeatedStringPieceArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedStringPieceValues:(const NSString* *)values count:(NSUInteger)count {
  result.repeatedStringPieceArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedStringPiece {
  result.repeatedStringPieceArray = nil;
  return self;
}
- (PBAppendableArray *)repeatedCord {
  return result.repeatedCordArray;
}
- (NSString*)repeatedCordAtIndex:(NSUInteger)index {
  return [result repeatedCordAtIndex:index];
}
- (TestAllTypesLite_Builder *)addRepeatedCord:(NSString*)value {
  if (result.repeatedCordArray == nil) {
    result.repeatedCordArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeObject];
  }
  [result.repeatedCordArray addObject:value];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedCordArray:(NSArray *)array {
  result.repeatedCordArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)setRepeatedCordValues:(const NSString* *)values count:(NSUInteger)count {
  result.repeatedCordArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeObject];
  return self;
}
- (TestAllTypesLite_Builder *)clearRepeatedCord {
  result.repeatedCordArray = nil;
  return self;
}
- (BOOL) hasDefaultInt32 {
  return result.hasDefaultInt32;
}
- (int32_t) defaultInt32 {
  return result.defaultInt32;
}
- (TestAllTypesLite_Builder*) setDefaultInt32:(int32_t) value {
  result.hasDefaultInt32 = YES;
  result.defaultInt32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultInt32 {
  result.hasDefaultInt32 = NO;
  result.defaultInt32 = 41;
  return self;
}
- (BOOL) hasDefaultInt64 {
  return result.hasDefaultInt64;
}
- (int64_t) defaultInt64 {
  return result.defaultInt64;
}
- (TestAllTypesLite_Builder*) setDefaultInt64:(int64_t) value {
  result.hasDefaultInt64 = YES;
  result.defaultInt64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultInt64 {
  result.hasDefaultInt64 = NO;
  result.defaultInt64 = 42L;
  return self;
}
- (BOOL) hasDefaultUint32 {
  return result.hasDefaultUint32;
}
- (uint32_t) defaultUint32 {
  return result.defaultUint32;
}
- (TestAllTypesLite_Builder*) setDefaultUint32:(uint32_t) value {
  result.hasDefaultUint32 = YES;
  result.defaultUint32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultUint32 {
  result.hasDefaultUint32 = NO;
  result.defaultUint32 = 43;
  return self;
}
- (BOOL) hasDefaultUint64 {
  return result.hasDefaultUint64;
}
- (uint64_t) defaultUint64 {
  return result.defaultUint64;
}
- (TestAllTypesLite_Builder*) setDefaultUint64:(uint64_t) value {
  result.hasDefaultUint64 = YES;
  result.defaultUint64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultUint64 {
  result.hasDefaultUint64 = NO;
  result.defaultUint64 = 44L;
  return self;
}
- (BOOL) hasDefaultSint32 {
  return result.hasDefaultSint32;
}
- (int32_t) defaultSint32 {
  return result.defaultSint32;
}
- (TestAllTypesLite_Builder*) setDefaultSint32:(int32_t) value {
  result.hasDefaultSint32 = YES;
  result.defaultSint32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultSint32 {
  result.hasDefaultSint32 = NO;
  result.defaultSint32 = -45;
  return self;
}
- (BOOL) hasDefaultSint64 {
  return result.hasDefaultSint64;
}
- (int64_t) defaultSint64 {
  return result.defaultSint64;
}
- (TestAllTypesLite_Builder*) setDefaultSint64:(int64_t) value {
  result.hasDefaultSint64 = YES;
  result.defaultSint64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultSint64 {
  result.hasDefaultSint64 = NO;
  result.defaultSint64 = 46L;
  return self;
}
- (BOOL) hasDefaultFixed32 {
  return result.hasDefaultFixed32;
}
- (uint32_t) defaultFixed32 {
  return result.defaultFixed32;
}
- (TestAllTypesLite_Builder*) setDefaultFixed32:(uint32_t) value {
  result.hasDefaultFixed32 = YES;
  result.defaultFixed32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultFixed32 {
  result.hasDefaultFixed32 = NO;
  result.defaultFixed32 = 47;
  return self;
}
- (BOOL) hasDefaultFixed64 {
  return result.hasDefaultFixed64;
}
- (uint64_t) defaultFixed64 {
  return result.defaultFixed64;
}
- (TestAllTypesLite_Builder*) setDefaultFixed64:(uint64_t) value {
  result.hasDefaultFixed64 = YES;
  result.defaultFixed64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultFixed64 {
  result.hasDefaultFixed64 = NO;
  result.defaultFixed64 = 48L;
  return self;
}
- (BOOL) hasDefaultSfixed32 {
  return result.hasDefaultSfixed32;
}
- (int32_t) defaultSfixed32 {
  return result.defaultSfixed32;
}
- (TestAllTypesLite_Builder*) setDefaultSfixed32:(int32_t) value {
  result.hasDefaultSfixed32 = YES;
  result.defaultSfixed32 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultSfixed32 {
  result.hasDefaultSfixed32 = NO;
  result.defaultSfixed32 = 49;
  return self;
}
- (BOOL) hasDefaultSfixed64 {
  return result.hasDefaultSfixed64;
}
- (int64_t) defaultSfixed64 {
  return result.defaultSfixed64;
}
- (TestAllTypesLite_Builder*) setDefaultSfixed64:(int64_t) value {
  result.hasDefaultSfixed64 = YES;
  result.defaultSfixed64 = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultSfixed64 {
  result.hasDefaultSfixed64 = NO;
  result.defaultSfixed64 = -50L;
  return self;
}
- (BOOL) hasDefaultFloat {
  return result.hasDefaultFloat;
}
- (Float32) defaultFloat {
  return result.defaultFloat;
}
- (TestAllTypesLite_Builder*) setDefaultFloat:(Float32) value {
  result.hasDefaultFloat = YES;
  result.defaultFloat = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultFloat {
  result.hasDefaultFloat = NO;
  result.defaultFloat = 51.5;
  return self;
}
- (BOOL) hasDefaultDouble {
  return result.hasDefaultDouble;
}
- (Float64) defaultDouble {
  return result.defaultDouble;
}
- (TestAllTypesLite_Builder*) setDefaultDouble:(Float64) value {
  result.hasDefaultDouble = YES;
  result.defaultDouble = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultDouble {
  result.hasDefaultDouble = NO;
  result.defaultDouble = 52000;
  return self;
}
- (BOOL) hasDefaultBool {
  return result.hasDefaultBool;
}
- (BOOL) defaultBool {
  return result.defaultBool;
}
- (TestAllTypesLite_Builder*) setDefaultBool:(BOOL) value {
  result.hasDefaultBool = YES;
  result.defaultBool = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultBool {
  result.hasDefaultBool = NO;
  result.defaultBool = YES;
  return self;
}
- (BOOL) hasDefaultString {
  return result.hasDefaultString;
}
- (NSString*) defaultString {
  return result.defaultString;
}
- (TestAllTypesLite_Builder*) setDefaultString:(NSString*) value {
  result.hasDefaultString = YES;
  result.defaultString = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultString {
  result.hasDefaultString = NO;
  result.defaultString = @"hello";
  return self;
}
- (BOOL) hasDefaultBytes {
  return result.hasDefaultBytes;
}
- (NSData*) defaultBytes {
  return result.defaultBytes;
}
- (TestAllTypesLite_Builder*) setDefaultBytes:(NSData*) value {
  result.hasDefaultBytes = YES;
  result.defaultBytes = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultBytes {
  result.hasDefaultBytes = NO;
  result.defaultBytes = [NSData dataWithBytes:"world" length:5];
  return self;
}
- (BOOL) hasDefaultNestedEnum {
  return result.hasDefaultNestedEnum;
}
- (TestAllTypesLite_NestedEnum) defaultNestedEnum {
  return result.defaultNestedEnum;
}
- (TestAllTypesLite_Builder*) setDefaultNestedEnum:(TestAllTypesLite_NestedEnum) value {
  result.hasDefaultNestedEnum = YES;
  result.defaultNestedEnum = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultNestedEnum {
  result.hasDefaultNestedEnum = NO;
  result.defaultNestedEnum = TestAllTypesLite_NestedEnumBar;
  return self;
}
- (BOOL) hasDefaultForeignEnum {
  return result.hasDefaultForeignEnum;
}
- (ForeignEnumLite) defaultForeignEnum {
  return result.defaultForeignEnum;
}
- (TestAllTypesLite_Builder*) setDefaultForeignEnum:(ForeignEnumLite) value {
  result.hasDefaultForeignEnum = YES;
  result.defaultForeignEnum = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultForeignEnum {
  result.hasDefaultForeignEnum = NO;
  result.defaultForeignEnum = ForeignEnumLiteForeignLiteBar;
  return self;
}
- (BOOL) hasDefaultImportEnum {
  return result.hasDefaultImportEnum;
}
- (ImportEnumLite) defaultImportEnum {
  return result.defaultImportEnum;
}
- (TestAllTypesLite_Builder*) setDefaultImportEnum:(ImportEnumLite) value {
  result.hasDefaultImportEnum = YES;
  result.defaultImportEnum = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultImportEnum {
  result.hasDefaultImportEnum = NO;
  result.defaultImportEnum = ImportEnumLiteImportLiteBar;
  return self;
}
- (BOOL) hasDefaultStringPiece {
  return result.hasDefaultStringPiece;
}
- (NSString*) defaultStringPiece {
  return result.defaultStringPiece;
}
- (TestAllTypesLite_Builder*) setDefaultStringPiece:(NSString*) value {
  result.hasDefaultStringPiece = YES;
  result.defaultStringPiece = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultStringPiece {
  result.hasDefaultStringPiece = NO;
  result.defaultStringPiece = @"abc";
  return self;
}
- (BOOL) hasDefaultCord {
  return result.hasDefaultCord;
}
- (NSString*) defaultCord {
  return result.defaultCord;
}
- (TestAllTypesLite_Builder*) setDefaultCord:(NSString*) value {
  result.hasDefaultCord = YES;
  result.defaultCord = value;
  return self;
}
- (TestAllTypesLite_Builder*) clearDefaultCord {
  result.hasDefaultCord = NO;
  result.defaultCord = @"123";
  return self;
}
@end

@interface ForeignMessageLite ()
@property int32_t c;
@end

@implementation ForeignMessageLite

- (BOOL) hasC {
  return !!hasC_;
}
- (void) setHasC:(BOOL) value {
  hasC_ = !!value;
}
@synthesize c;
- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.c = 0;
  }
  return self;
}
static ForeignMessageLite* defaultForeignMessageLiteInstance = nil;
+ (void) initialize {
  if (self == [ForeignMessageLite class]) {
    defaultForeignMessageLiteInstance = [[ForeignMessageLite alloc] init];
  }
}
+ (ForeignMessageLite*) defaultInstance {
  return defaultForeignMessageLiteInstance;
}
- (ForeignMessageLite*) defaultInstance {
  return defaultForeignMessageLiteInstance;
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  if (self.hasC) {
    [output writeInt32:1 value:self.c];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  if (self.hasC) {
    size += computeInt32Size(1, self.c);
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (ForeignMessageLite*) parseFromData:(NSData*) data {
  return (ForeignMessageLite*)[[[ForeignMessageLite builder] mergeFromData:data] build];
}
+ (ForeignMessageLite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (ForeignMessageLite*)[[[ForeignMessageLite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (ForeignMessageLite*) parseFromInputStream:(NSInputStream*) input {
  return (ForeignMessageLite*)[[[ForeignMessageLite builder] mergeFromInputStream:input] build];
}
+ (ForeignMessageLite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (ForeignMessageLite*)[[[ForeignMessageLite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (ForeignMessageLite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (ForeignMessageLite*)[[[ForeignMessageLite builder] mergeFromCodedInputStream:input] build];
}
+ (ForeignMessageLite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (ForeignMessageLite*)[[[ForeignMessageLite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (ForeignMessageLite_Builder*) builder {
  return [[[ForeignMessageLite_Builder alloc] init] autorelease];
}
+ (ForeignMessageLite_Builder*) builderWithPrototype:(ForeignMessageLite*) prototype {
  return [[ForeignMessageLite builder] mergeFrom:prototype];
}
- (ForeignMessageLite_Builder*) builder {
  return [ForeignMessageLite builder];
}
- (ForeignMessageLite_Builder*) toBuilder {
  return [ForeignMessageLite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  if (self.hasC) {
    [output appendFormat:@"%@%@: %@\n", indent, @"c", [NSNumber numberWithInt:self.c]];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[ForeignMessageLite class]]) {
    return NO;
  }
  ForeignMessageLite *otherMessage = other;
  return
      self.hasC == otherMessage.hasC &&
      (!self.hasC || self.c == otherMessage.c) &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  if (self.hasC) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.c] hash];
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface ForeignMessageLite_Builder()
@property (retain) ForeignMessageLite* result;
@end

@implementation ForeignMessageLite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[ForeignMessageLite alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (ForeignMessageLite_Builder*) clear {
  self.result = [[[ForeignMessageLite alloc] init] autorelease];
  return self;
}
- (ForeignMessageLite_Builder*) clone {
  return [ForeignMessageLite builderWithPrototype:result];
}
- (ForeignMessageLite*) defaultInstance {
  return [ForeignMessageLite defaultInstance];
}
- (ForeignMessageLite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (ForeignMessageLite*) buildPartial {
  ForeignMessageLite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (ForeignMessageLite_Builder*) mergeFrom:(ForeignMessageLite*) other {
  if (other == [ForeignMessageLite defaultInstance]) {
    return self;
  }
  if (other.hasC) {
    [self setC:other.c];
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (ForeignMessageLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (ForeignMessageLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 8: {
        [self setC:[input readInt32]];
        break;
      }
    }
  }
}
- (BOOL) hasC {
  return result.hasC;
}
- (int32_t) c {
  return result.c;
}
- (ForeignMessageLite_Builder*) setC:(int32_t) value {
  result.hasC = YES;
  result.c = value;
  return self;
}
- (ForeignMessageLite_Builder*) clearC {
  result.hasC = NO;
  result.c = 0;
  return self;
}
@end

@interface TestPackedTypesLite ()
@property (retain) PBAppendableArray * packedInt32Array;
@property (retain) PBAppendableArray * packedInt64Array;
@property (retain) PBAppendableArray * packedUint32Array;
@property (retain) PBAppendableArray * packedUint64Array;
@property (retain) PBAppendableArray * packedSint32Array;
@property (retain) PBAppendableArray * packedSint64Array;
@property (retain) PBAppendableArray * packedFixed32Array;
@property (retain) PBAppendableArray * packedFixed64Array;
@property (retain) PBAppendableArray * packedSfixed32Array;
@property (retain) PBAppendableArray * packedSfixed64Array;
@property (retain) PBAppendableArray * packedFloatArray;
@property (retain) PBAppendableArray * packedDoubleArray;
@property (retain) PBAppendableArray * packedBoolArray;
@property (retain) PBAppendableArray * packedEnumArray;
@end

@implementation TestPackedTypesLite

@synthesize packedInt32Array;
@dynamic packedInt32;
@synthesize packedInt64Array;
@dynamic packedInt64;
@synthesize packedUint32Array;
@dynamic packedUint32;
@synthesize packedUint64Array;
@dynamic packedUint64;
@synthesize packedSint32Array;
@dynamic packedSint32;
@synthesize packedSint64Array;
@dynamic packedSint64;
@synthesize packedFixed32Array;
@dynamic packedFixed32;
@synthesize packedFixed64Array;
@dynamic packedFixed64;
@synthesize packedSfixed32Array;
@dynamic packedSfixed32;
@synthesize packedSfixed64Array;
@dynamic packedSfixed64;
@synthesize packedFloatArray;
@dynamic packedFloat;
@synthesize packedDoubleArray;
@dynamic packedDouble;
@synthesize packedBoolArray;
@dynamic packedBool;
@synthesize packedEnumArray;
@dynamic packedEnum;
- (void) dealloc {
  self.packedInt32Array = nil;
  self.packedInt64Array = nil;
  self.packedUint32Array = nil;
  self.packedUint64Array = nil;
  self.packedSint32Array = nil;
  self.packedSint64Array = nil;
  self.packedFixed32Array = nil;
  self.packedFixed64Array = nil;
  self.packedSfixed32Array = nil;
  self.packedSfixed64Array = nil;
  self.packedFloatArray = nil;
  self.packedDoubleArray = nil;
  self.packedBoolArray = nil;
  self.packedEnumArray = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
  }
  return self;
}
static TestPackedTypesLite* defaultTestPackedTypesLiteInstance = nil;
+ (void) initialize {
  if (self == [TestPackedTypesLite class]) {
    defaultTestPackedTypesLiteInstance = [[TestPackedTypesLite alloc] init];
  }
}
+ (TestPackedTypesLite*) defaultInstance {
  return defaultTestPackedTypesLiteInstance;
}
- (TestPackedTypesLite*) defaultInstance {
  return defaultTestPackedTypesLiteInstance;
}
- (PBArray *)packedInt32 {
  return packedInt32Array;
}
- (int32_t)packedInt32AtIndex:(NSUInteger)index {
  return [packedInt32Array int32AtIndex:index];
}
- (PBArray *)packedInt64 {
  return packedInt64Array;
}
- (int64_t)packedInt64AtIndex:(NSUInteger)index {
  return [packedInt64Array int64AtIndex:index];
}
- (PBArray *)packedUint32 {
  return packedUint32Array;
}
- (uint32_t)packedUint32AtIndex:(NSUInteger)index {
  return [packedUint32Array uint32AtIndex:index];
}
- (PBArray *)packedUint64 {
  return packedUint64Array;
}
- (uint64_t)packedUint64AtIndex:(NSUInteger)index {
  return [packedUint64Array uint64AtIndex:index];
}
- (PBArray *)packedSint32 {
  return packedSint32Array;
}
- (int32_t)packedSint32AtIndex:(NSUInteger)index {
  return [packedSint32Array int32AtIndex:index];
}
- (PBArray *)packedSint64 {
  return packedSint64Array;
}
- (int64_t)packedSint64AtIndex:(NSUInteger)index {
  return [packedSint64Array int64AtIndex:index];
}
- (PBArray *)packedFixed32 {
  return packedFixed32Array;
}
- (uint32_t)packedFixed32AtIndex:(NSUInteger)index {
  return [packedFixed32Array uint32AtIndex:index];
}
- (PBArray *)packedFixed64 {
  return packedFixed64Array;
}
- (uint64_t)packedFixed64AtIndex:(NSUInteger)index {
  return [packedFixed64Array uint64AtIndex:index];
}
- (PBArray *)packedSfixed32 {
  return packedSfixed32Array;
}
- (int32_t)packedSfixed32AtIndex:(NSUInteger)index {
  return [packedSfixed32Array int32AtIndex:index];
}
- (PBArray *)packedSfixed64 {
  return packedSfixed64Array;
}
- (int64_t)packedSfixed64AtIndex:(NSUInteger)index {
  return [packedSfixed64Array int64AtIndex:index];
}
- (PBArray *)packedFloat {
  return packedFloatArray;
}
- (Float32)packedFloatAtIndex:(NSUInteger)index {
  return [packedFloatArray floatAtIndex:index];
}
- (PBArray *)packedDouble {
  return packedDoubleArray;
}
- (Float64)packedDoubleAtIndex:(NSUInteger)index {
  return [packedDoubleArray doubleAtIndex:index];
}
- (PBArray *)packedBool {
  return packedBoolArray;
}
- (BOOL)packedBoolAtIndex:(NSUInteger)index {
  return [packedBoolArray boolAtIndex:index];
}
- (PBArray *)packedEnum {
  return packedEnumArray;
}
- (ForeignEnumLite)packedEnumAtIndex:(NSUInteger)index {
  return [packedEnumArray int32AtIndex:index];
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  const NSUInteger packedInt32ArrayCount = self.packedInt32Array.count;
  if (packedInt32ArrayCount > 0) {
    const int32_t *values = (const int32_t *)self.packedInt32Array.data;
    [output writeRawVarint32:722];
    [output writeRawVarint32:packedInt32MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedInt32ArrayCount; ++i) {
      [output writeInt32NoTag:values[i]];
    }
  }
  const NSUInteger packedInt64ArrayCount = self.packedInt64Array.count;
  if (packedInt64ArrayCount > 0) {
    const int64_t *values = (const int64_t *)self.packedInt64Array.data;
    [output writeRawVarint32:730];
    [output writeRawVarint32:packedInt64MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedInt64ArrayCount; ++i) {
      [output writeInt64NoTag:values[i]];
    }
  }
  const NSUInteger packedUint32ArrayCount = self.packedUint32Array.count;
  if (packedUint32ArrayCount > 0) {
    const uint32_t *values = (const uint32_t *)self.packedUint32Array.data;
    [output writeRawVarint32:738];
    [output writeRawVarint32:packedUint32MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedUint32ArrayCount; ++i) {
      [output writeUInt32NoTag:values[i]];
    }
  }
  const NSUInteger packedUint64ArrayCount = self.packedUint64Array.count;
  if (packedUint64ArrayCount > 0) {
    const uint64_t *values = (const uint64_t *)self.packedUint64Array.data;
    [output writeRawVarint32:746];
    [output writeRawVarint32:packedUint64MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedUint64ArrayCount; ++i) {
      [output writeUInt64NoTag:values[i]];
    }
  }
  const NSUInteger packedSint32ArrayCount = self.packedSint32Array.count;
  if (packedSint32ArrayCount > 0) {
    const int32_t *values = (const int32_t *)self.packedSint32Array.data;
    [output writeRawVarint32:754];
    [output writeRawVarint32:packedSint32MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedSint32ArrayCount; ++i) {
      [output writeSInt32NoTag:values[i]];
    }
  }
  const NSUInteger packedSint64ArrayCount = self.packedSint64Array.count;
  if (packedSint64ArrayCount > 0) {
    const int64_t *values = (const int64_t *)self.packedSint64Array.data;
    [output writeRawVarint32:762];
    [output writeRawVarint32:packedSint64MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedSint64ArrayCount; ++i) {
      [output writeSInt64NoTag:values[i]];
    }
  }
  const NSUInteger packedFixed32ArrayCount = self.packedFixed32Array.count;
  if (packedFixed32ArrayCount > 0) {
    const uint32_t *values = (const uint32_t *)self.packedFixed32Array.data;
    [output writeRawVarint32:770];
    [output writeRawVarint32:packedFixed32MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedFixed32ArrayCount; ++i) {
      [output writeFixed32NoTag:values[i]];
    }
  }
  const NSUInteger packedFixed64ArrayCount = self.packedFixed64Array.count;
  if (packedFixed64ArrayCount > 0) {
    const uint64_t *values = (const uint64_t *)self.packedFixed64Array.data;
    [output writeRawVarint32:778];
    [output writeRawVarint32:packedFixed64MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedFixed64ArrayCount; ++i) {
      [output writeFixed64NoTag:values[i]];
    }
  }
  const NSUInteger packedSfixed32ArrayCount = self.packedSfixed32Array.count;
  if (packedSfixed32ArrayCount > 0) {
    const int32_t *values = (const int32_t *)self.packedSfixed32Array.data;
    [output writeRawVarint32:786];
    [output writeRawVarint32:packedSfixed32MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedSfixed32ArrayCount; ++i) {
      [output writeSFixed32NoTag:values[i]];
    }
  }
  const NSUInteger packedSfixed64ArrayCount = self.packedSfixed64Array.count;
  if (packedSfixed64ArrayCount > 0) {
    const int64_t *values = (const int64_t *)self.packedSfixed64Array.data;
    [output writeRawVarint32:794];
    [output writeRawVarint32:packedSfixed64MemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedSfixed64ArrayCount; ++i) {
      [output writeSFixed64NoTag:values[i]];
    }
  }
  const NSUInteger packedFloatArrayCount = self.packedFloatArray.count;
  if (packedFloatArrayCount > 0) {
    const Float32 *values = (const Float32 *)self.packedFloatArray.data;
    [output writeRawVarint32:802];
    [output writeRawVarint32:packedFloatMemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedFloatArrayCount; ++i) {
      [output writeFloatNoTag:values[i]];
    }
  }
  const NSUInteger packedDoubleArrayCount = self.packedDoubleArray.count;
  if (packedDoubleArrayCount > 0) {
    const Float64 *values = (const Float64 *)self.packedDoubleArray.data;
    [output writeRawVarint32:810];
    [output writeRawVarint32:packedDoubleMemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedDoubleArrayCount; ++i) {
      [output writeDoubleNoTag:values[i]];
    }
  }
  const NSUInteger packedBoolArrayCount = self.packedBoolArray.count;
  if (packedBoolArrayCount > 0) {
    const BOOL *values = (const BOOL *)self.packedBoolArray.data;
    [output writeRawVarint32:818];
    [output writeRawVarint32:packedBoolMemoizedSerializedSize];
    for (NSUInteger i = 0; i < packedBoolArrayCount; ++i) {
      [output writeBoolNoTag:values[i]];
    }
  }
  const NSUInteger packedEnumArrayCount = self.packedEnumArray.count;
  const ForeignEnumLite *packedEnumArrayValues = (const ForeignEnumLite *)self.packedEnumArray.data;
  if (self.packedEnumArray.count > 0) {
    [output writeRawVarint32:826];
    [output writeRawVarint32:packedEnumMemoizedSerializedSize];
  }
  for (NSUInteger i = 0; i < packedEnumArrayCount; ++i) {
    [output writeEnumNoTag:packedEnumArrayValues[i]];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedInt32Array.count;
    const int32_t *values = (const int32_t *)self.packedInt32Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeInt32SizeNoTag(values[i]);
    }
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedInt32MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedInt64Array.count;
    const int64_t *values = (const int64_t *)self.packedInt64Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeInt64SizeNoTag(values[i]);
    }
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedInt64MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedUint32Array.count;
    const uint32_t *values = (const uint32_t *)self.packedUint32Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeUInt32SizeNoTag(values[i]);
    }
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedUint32MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedUint64Array.count;
    const uint64_t *values = (const uint64_t *)self.packedUint64Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeUInt64SizeNoTag(values[i]);
    }
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedUint64MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedSint32Array.count;
    const int32_t *values = (const int32_t *)self.packedSint32Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeSInt32SizeNoTag(values[i]);
    }
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedSint32MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedSint64Array.count;
    const int64_t *values = (const int64_t *)self.packedSint64Array.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeSInt64SizeNoTag(values[i]);
    }
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedSint64MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedFixed32Array.count;
    dataSize = 4 * count;
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedFixed32MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedFixed64Array.count;
    dataSize = 8 * count;
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedFixed64MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedSfixed32Array.count;
    dataSize = 4 * count;
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedSfixed32MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedSfixed64Array.count;
    dataSize = 8 * count;
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedSfixed64MemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedFloatArray.count;
    dataSize = 4 * count;
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedFloatMemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedDoubleArray.count;
    dataSize = 8 * count;
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedDoubleMemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedBoolArray.count;
    dataSize = 1 * count;
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeInt32SizeNoTag(dataSize);
    }
    packedBoolMemoizedSerializedSize = dataSize;
  }
  {
    int32_t dataSize = 0;
    const NSUInteger count = self.packedEnumArray.count;
    const ForeignEnumLite *values = (const ForeignEnumLite *)self.packedEnumArray.data;
    for (NSUInteger i = 0; i < count; ++i) {
      dataSize += computeEnumSizeNoTag(values[i]);
    }
    size += dataSize;
    if (count > 0) {
      size += 2;
      size += computeRawVarint32Size(dataSize);
    }
    packedEnumMemoizedSerializedSize = dataSize;
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestPackedTypesLite*) parseFromData:(NSData*) data {
  return (TestPackedTypesLite*)[[[TestPackedTypesLite builder] mergeFromData:data] build];
}
+ (TestPackedTypesLite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestPackedTypesLite*)[[[TestPackedTypesLite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestPackedTypesLite*) parseFromInputStream:(NSInputStream*) input {
  return (TestPackedTypesLite*)[[[TestPackedTypesLite builder] mergeFromInputStream:input] build];
}
+ (TestPackedTypesLite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestPackedTypesLite*)[[[TestPackedTypesLite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestPackedTypesLite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestPackedTypesLite*)[[[TestPackedTypesLite builder] mergeFromCodedInputStream:input] build];
}
+ (TestPackedTypesLite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestPackedTypesLite*)[[[TestPackedTypesLite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestPackedTypesLite_Builder*) builder {
  return [[[TestPackedTypesLite_Builder alloc] init] autorelease];
}
+ (TestPackedTypesLite_Builder*) builderWithPrototype:(TestPackedTypesLite*) prototype {
  return [[TestPackedTypesLite builder] mergeFrom:prototype];
}
- (TestPackedTypesLite_Builder*) builder {
  return [TestPackedTypesLite builder];
}
- (TestPackedTypesLite_Builder*) toBuilder {
  return [TestPackedTypesLite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  for (NSNumber* value in self.packedInt32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedInt32", value];
  }
  for (NSNumber* value in self.packedInt64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedInt64", value];
  }
  for (NSNumber* value in self.packedUint32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedUint32", value];
  }
  for (NSNumber* value in self.packedUint64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedUint64", value];
  }
  for (NSNumber* value in self.packedSint32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedSint32", value];
  }
  for (NSNumber* value in self.packedSint64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedSint64", value];
  }
  for (NSNumber* value in self.packedFixed32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedFixed32", value];
  }
  for (NSNumber* value in self.packedFixed64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedFixed64", value];
  }
  for (NSNumber* value in self.packedSfixed32Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedSfixed32", value];
  }
  for (NSNumber* value in self.packedSfixed64Array) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedSfixed64", value];
  }
  for (NSNumber* value in self.packedFloatArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedFloat", value];
  }
  for (NSNumber* value in self.packedDoubleArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedDouble", value];
  }
  for (NSNumber* value in self.packedBoolArray) {
    [output appendFormat:@"%@%@: %@\n", indent, @"packedBool", value];
  }
  for (NSNumber* element in self.packedEnumArray) {
    [output appendFormat:@"%@%@: %d\n", indent, @"packedEnum", element.intValue];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestPackedTypesLite class]]) {
    return NO;
  }
  TestPackedTypesLite *otherMessage = other;
  return
      [self.packedInt32Array isEqualToArray:otherMessage.packedInt32Array] &&
      
      [self.packedInt64Array isEqualToArray:otherMessage.packedInt64Array] &&
      
      [self.packedUint32Array isEqualToArray:otherMessage.packedUint32Array] &&
      
      [self.packedUint64Array isEqualToArray:otherMessage.packedUint64Array] &&
      
      [self.packedSint32Array isEqualToArray:otherMessage.packedSint32Array] &&
      
      [self.packedSint64Array isEqualToArray:otherMessage.packedSint64Array] &&
      
      [self.packedFixed32Array isEqualToArray:otherMessage.packedFixed32Array] &&
      
      [self.packedFixed64Array isEqualToArray:otherMessage.packedFixed64Array] &&
      
      [self.packedSfixed32Array isEqualToArray:otherMessage.packedSfixed32Array] &&
      
      [self.packedSfixed64Array isEqualToArray:otherMessage.packedSfixed64Array] &&
      
      [self.packedFloatArray isEqualToArray:otherMessage.packedFloatArray] &&
      
      [self.packedDoubleArray isEqualToArray:otherMessage.packedDoubleArray] &&
      
      [self.packedBoolArray isEqualToArray:otherMessage.packedBoolArray] &&
      
      [self.packedEnumArray isEqualToArray:otherMessage.packedEnumArray] &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  for (NSNumber* value in self.packedInt32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedInt64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedUint32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedUint64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedSint32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedSint64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedFixed32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedFixed64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedSfixed32Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedSfixed64Array) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedFloatArray) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedDoubleArray) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* value in self.packedBoolArray) {
    hashCode = hashCode * 31 + [value intValue];
  }
  for (NSNumber* element in self.packedEnumArray) {
    hashCode = hashCode * 31 + element.intValue;
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface TestPackedTypesLite_Builder()
@property (retain) TestPackedTypesLite* result;
@end

@implementation TestPackedTypesLite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestPackedTypesLite alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (TestPackedTypesLite_Builder*) clear {
  self.result = [[[TestPackedTypesLite alloc] init] autorelease];
  return self;
}
- (TestPackedTypesLite_Builder*) clone {
  return [TestPackedTypesLite builderWithPrototype:result];
}
- (TestPackedTypesLite*) defaultInstance {
  return [TestPackedTypesLite defaultInstance];
}
- (TestPackedTypesLite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestPackedTypesLite*) buildPartial {
  TestPackedTypesLite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestPackedTypesLite_Builder*) mergeFrom:(TestPackedTypesLite*) other {
  if (other == [TestPackedTypesLite defaultInstance]) {
    return self;
  }
  if (other.packedInt32Array.count > 0) {
    if (result.packedInt32Array == nil) {
      result.packedInt32Array = [[other.packedInt32Array copyWithZone:[other.packedInt32Array zone]] autorelease];
    } else {
      [result.packedInt32Array appendArray:other.packedInt32Array];
    }
  }
  if (other.packedInt64Array.count > 0) {
    if (result.packedInt64Array == nil) {
      result.packedInt64Array = [[other.packedInt64Array copyWithZone:[other.packedInt64Array zone]] autorelease];
    } else {
      [result.packedInt64Array appendArray:other.packedInt64Array];
    }
  }
  if (other.packedUint32Array.count > 0) {
    if (result.packedUint32Array == nil) {
      result.packedUint32Array = [[other.packedUint32Array copyWithZone:[other.packedUint32Array zone]] autorelease];
    } else {
      [result.packedUint32Array appendArray:other.packedUint32Array];
    }
  }
  if (other.packedUint64Array.count > 0) {
    if (result.packedUint64Array == nil) {
      result.packedUint64Array = [[other.packedUint64Array copyWithZone:[other.packedUint64Array zone]] autorelease];
    } else {
      [result.packedUint64Array appendArray:other.packedUint64Array];
    }
  }
  if (other.packedSint32Array.count > 0) {
    if (result.packedSint32Array == nil) {
      result.packedSint32Array = [[other.packedSint32Array copyWithZone:[other.packedSint32Array zone]] autorelease];
    } else {
      [result.packedSint32Array appendArray:other.packedSint32Array];
    }
  }
  if (other.packedSint64Array.count > 0) {
    if (result.packedSint64Array == nil) {
      result.packedSint64Array = [[other.packedSint64Array copyWithZone:[other.packedSint64Array zone]] autorelease];
    } else {
      [result.packedSint64Array appendArray:other.packedSint64Array];
    }
  }
  if (other.packedFixed32Array.count > 0) {
    if (result.packedFixed32Array == nil) {
      result.packedFixed32Array = [[other.packedFixed32Array copyWithZone:[other.packedFixed32Array zone]] autorelease];
    } else {
      [result.packedFixed32Array appendArray:other.packedFixed32Array];
    }
  }
  if (other.packedFixed64Array.count > 0) {
    if (result.packedFixed64Array == nil) {
      result.packedFixed64Array = [[other.packedFixed64Array copyWithZone:[other.packedFixed64Array zone]] autorelease];
    } else {
      [result.packedFixed64Array appendArray:other.packedFixed64Array];
    }
  }
  if (other.packedSfixed32Array.count > 0) {
    if (result.packedSfixed32Array == nil) {
      result.packedSfixed32Array = [[other.packedSfixed32Array copyWithZone:[other.packedSfixed32Array zone]] autorelease];
    } else {
      [result.packedSfixed32Array appendArray:other.packedSfixed32Array];
    }
  }
  if (other.packedSfixed64Array.count > 0) {
    if (result.packedSfixed64Array == nil) {
      result.packedSfixed64Array = [[other.packedSfixed64Array copyWithZone:[other.packedSfixed64Array zone]] autorelease];
    } else {
      [result.packedSfixed64Array appendArray:other.packedSfixed64Array];
    }
  }
  if (other.packedFloatArray.count > 0) {
    if (result.packedFloatArray == nil) {
      result.packedFloatArray = [[other.packedFloatArray copyWithZone:[other.packedFloatArray zone]] autorelease];
    } else {
      [result.packedFloatArray appendArray:other.packedFloatArray];
    }
  }
  if (other.packedDoubleArray.count > 0) {
    if (result.packedDoubleArray == nil) {
      result.packedDoubleArray = [[other.packedDoubleArray copyWithZone:[other.packedDoubleArray zone]] autorelease];
    } else {
      [result.packedDoubleArray appendArray:other.packedDoubleArray];
    }
  }
  if (other.packedBoolArray.count > 0) {
    if (result.packedBoolArray == nil) {
      result.packedBoolArray = [[other.packedBoolArray copyWithZone:[other.packedBoolArray zone]] autorelease];
    } else {
      [result.packedBoolArray appendArray:other.packedBoolArray];
    }
  }
  if (other.packedEnumArray.count > 0) {
    if (result.packedEnumArray == nil) {
      result.packedEnumArray = [[other.packedEnumArray copyWithZone:[other.packedEnumArray zone]] autorelease];
    } else {
      [result.packedEnumArray appendArray:other.packedEnumArray];
    }
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestPackedTypesLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestPackedTypesLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 722: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedInt32Array == nil) {
          result.packedInt32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedInt32Array addInt32:[input readInt32]];
        }
        [input popLimit:limit];
        break;
      }
      case 730: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedInt64Array == nil) {
          result.packedInt64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedInt64Array addInt64:[input readInt64]];
        }
        [input popLimit:limit];
        break;
      }
      case 738: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedUint32Array == nil) {
          result.packedUint32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt32];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedUint32Array addUint32:[input readUInt32]];
        }
        [input popLimit:limit];
        break;
      }
      case 746: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedUint64Array == nil) {
          result.packedUint64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt64];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedUint64Array addUint64:[input readUInt64]];
        }
        [input popLimit:limit];
        break;
      }
      case 754: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedSint32Array == nil) {
          result.packedSint32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedSint32Array addInt32:[input readSInt32]];
        }
        [input popLimit:limit];
        break;
      }
      case 762: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedSint64Array == nil) {
          result.packedSint64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedSint64Array addInt64:[input readSInt64]];
        }
        [input popLimit:limit];
        break;
      }
      case 770: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedFixed32Array == nil) {
          result.packedFixed32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt32];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedFixed32Array addUint32:[input readFixed32]];
        }
        [input popLimit:limit];
        break;
      }
      case 778: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedFixed64Array == nil) {
          result.packedFixed64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt64];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedFixed64Array addUint64:[input readFixed64]];
        }
        [input popLimit:limit];
        break;
      }
      case 786: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedSfixed32Array == nil) {
          result.packedSfixed32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedSfixed32Array addInt32:[input readSFixed32]];
        }
        [input popLimit:limit];
        break;
      }
      case 794: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedSfixed64Array == nil) {
          result.packedSfixed64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedSfixed64Array addInt64:[input readSFixed64]];
        }
        [input popLimit:limit];
        break;
      }
      case 802: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedFloatArray == nil) {
          result.packedFloatArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeFloat];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedFloatArray addFloat:[input readFloat]];
        }
        [input popLimit:limit];
        break;
      }
      case 810: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedDoubleArray == nil) {
          result.packedDoubleArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeDouble];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedDoubleArray addDouble:[input readDouble]];
        }
        [input popLimit:limit];
        break;
      }
      case 818: {
        int32_t length = [input readRawVarint32];
        int32_t limit = [input pushLimit:length];
        if (result.packedBoolArray == nil) {
          result.packedBoolArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeBool];
        }
        while (input.bytesUntilLimit > 0) {
          [result.packedBoolArray addBool:[input readBool]];
        }
        [input popLimit:limit];
        break;
      }
      case 826: {
        int32_t length = [input readRawVarint32];
        int32_t oldLimit = [input pushLimit:length];
        while (input.bytesUntilLimit > 0) {
          int32_t value = [input readEnum];
          if (ForeignEnumLiteIsValidValue(value)) {
            [self addPackedEnum:value];
          } else {
            [unknownFields mergeVarintField:103 value:value];
          }
        }
        [input popLimit:oldLimit];
        break;
      }
    }
  }
}
- (PBAppendableArray *)packedInt32 {
  return result.packedInt32Array;
}
- (int32_t)packedInt32AtIndex:(NSUInteger)index {
  return [result packedInt32AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedInt32:(int32_t)value {
  if (result.packedInt32Array == nil) {
    result.packedInt32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.packedInt32Array addInt32:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedInt32Array:(NSArray *)array {
  result.packedInt32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedInt32Values:(const int32_t *)values count:(NSUInteger)count {
  result.packedInt32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedInt32 {
  result.packedInt32Array = nil;
  return self;
}
- (PBAppendableArray *)packedInt64 {
  return result.packedInt64Array;
}
- (int64_t)packedInt64AtIndex:(NSUInteger)index {
  return [result packedInt64AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedInt64:(int64_t)value {
  if (result.packedInt64Array == nil) {
    result.packedInt64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
  }
  [result.packedInt64Array addInt64:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedInt64Array:(NSArray *)array {
  result.packedInt64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedInt64Values:(const int64_t *)values count:(NSUInteger)count {
  result.packedInt64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedInt64 {
  result.packedInt64Array = nil;
  return self;
}
- (PBAppendableArray *)packedUint32 {
  return result.packedUint32Array;
}
- (uint32_t)packedUint32AtIndex:(NSUInteger)index {
  return [result packedUint32AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedUint32:(uint32_t)value {
  if (result.packedUint32Array == nil) {
    result.packedUint32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt32];
  }
  [result.packedUint32Array addUint32:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedUint32Array:(NSArray *)array {
  result.packedUint32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedUint32Values:(const uint32_t *)values count:(NSUInteger)count {
  result.packedUint32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedUint32 {
  result.packedUint32Array = nil;
  return self;
}
- (PBAppendableArray *)packedUint64 {
  return result.packedUint64Array;
}
- (uint64_t)packedUint64AtIndex:(NSUInteger)index {
  return [result packedUint64AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedUint64:(uint64_t)value {
  if (result.packedUint64Array == nil) {
    result.packedUint64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt64];
  }
  [result.packedUint64Array addUint64:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedUint64Array:(NSArray *)array {
  result.packedUint64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedUint64Values:(const uint64_t *)values count:(NSUInteger)count {
  result.packedUint64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedUint64 {
  result.packedUint64Array = nil;
  return self;
}
- (PBAppendableArray *)packedSint32 {
  return result.packedSint32Array;
}
- (int32_t)packedSint32AtIndex:(NSUInteger)index {
  return [result packedSint32AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedSint32:(int32_t)value {
  if (result.packedSint32Array == nil) {
    result.packedSint32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.packedSint32Array addInt32:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedSint32Array:(NSArray *)array {
  result.packedSint32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedSint32Values:(const int32_t *)values count:(NSUInteger)count {
  result.packedSint32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedSint32 {
  result.packedSint32Array = nil;
  return self;
}
- (PBAppendableArray *)packedSint64 {
  return result.packedSint64Array;
}
- (int64_t)packedSint64AtIndex:(NSUInteger)index {
  return [result packedSint64AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedSint64:(int64_t)value {
  if (result.packedSint64Array == nil) {
    result.packedSint64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
  }
  [result.packedSint64Array addInt64:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedSint64Array:(NSArray *)array {
  result.packedSint64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedSint64Values:(const int64_t *)values count:(NSUInteger)count {
  result.packedSint64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedSint64 {
  result.packedSint64Array = nil;
  return self;
}
- (PBAppendableArray *)packedFixed32 {
  return result.packedFixed32Array;
}
- (uint32_t)packedFixed32AtIndex:(NSUInteger)index {
  return [result packedFixed32AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedFixed32:(uint32_t)value {
  if (result.packedFixed32Array == nil) {
    result.packedFixed32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt32];
  }
  [result.packedFixed32Array addUint32:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedFixed32Array:(NSArray *)array {
  result.packedFixed32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedFixed32Values:(const uint32_t *)values count:(NSUInteger)count {
  result.packedFixed32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedFixed32 {
  result.packedFixed32Array = nil;
  return self;
}
- (PBAppendableArray *)packedFixed64 {
  return result.packedFixed64Array;
}
- (uint64_t)packedFixed64AtIndex:(NSUInteger)index {
  return [result packedFixed64AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedFixed64:(uint64_t)value {
  if (result.packedFixed64Array == nil) {
    result.packedFixed64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeUInt64];
  }
  [result.packedFixed64Array addUint64:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedFixed64Array:(NSArray *)array {
  result.packedFixed64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeUInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedFixed64Values:(const uint64_t *)values count:(NSUInteger)count {
  result.packedFixed64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeUInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedFixed64 {
  result.packedFixed64Array = nil;
  return self;
}
- (PBAppendableArray *)packedSfixed32 {
  return result.packedSfixed32Array;
}
- (int32_t)packedSfixed32AtIndex:(NSUInteger)index {
  return [result packedSfixed32AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedSfixed32:(int32_t)value {
  if (result.packedSfixed32Array == nil) {
    result.packedSfixed32Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.packedSfixed32Array addInt32:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedSfixed32Array:(NSArray *)array {
  result.packedSfixed32Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedSfixed32Values:(const int32_t *)values count:(NSUInteger)count {
  result.packedSfixed32Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedSfixed32 {
  result.packedSfixed32Array = nil;
  return self;
}
- (PBAppendableArray *)packedSfixed64 {
  return result.packedSfixed64Array;
}
- (int64_t)packedSfixed64AtIndex:(NSUInteger)index {
  return [result packedSfixed64AtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedSfixed64:(int64_t)value {
  if (result.packedSfixed64Array == nil) {
    result.packedSfixed64Array = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt64];
  }
  [result.packedSfixed64Array addInt64:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedSfixed64Array:(NSArray *)array {
  result.packedSfixed64Array = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedSfixed64Values:(const int64_t *)values count:(NSUInteger)count {
  result.packedSfixed64Array = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt64];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedSfixed64 {
  result.packedSfixed64Array = nil;
  return self;
}
- (PBAppendableArray *)packedFloat {
  return result.packedFloatArray;
}
- (Float32)packedFloatAtIndex:(NSUInteger)index {
  return [result packedFloatAtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedFloat:(Float32)value {
  if (result.packedFloatArray == nil) {
    result.packedFloatArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeFloat];
  }
  [result.packedFloatArray addFloat:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedFloatArray:(NSArray *)array {
  result.packedFloatArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeFloat];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedFloatValues:(const Float32 *)values count:(NSUInteger)count {
  result.packedFloatArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeFloat];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedFloat {
  result.packedFloatArray = nil;
  return self;
}
- (PBAppendableArray *)packedDouble {
  return result.packedDoubleArray;
}
- (Float64)packedDoubleAtIndex:(NSUInteger)index {
  return [result packedDoubleAtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedDouble:(Float64)value {
  if (result.packedDoubleArray == nil) {
    result.packedDoubleArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeDouble];
  }
  [result.packedDoubleArray addDouble:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedDoubleArray:(NSArray *)array {
  result.packedDoubleArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeDouble];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedDoubleValues:(const Float64 *)values count:(NSUInteger)count {
  result.packedDoubleArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeDouble];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedDouble {
  result.packedDoubleArray = nil;
  return self;
}
- (PBAppendableArray *)packedBool {
  return result.packedBoolArray;
}
- (BOOL)packedBoolAtIndex:(NSUInteger)index {
  return [result packedBoolAtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedBool:(BOOL)value {
  if (result.packedBoolArray == nil) {
    result.packedBoolArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeBool];
  }
  [result.packedBoolArray addBool:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedBoolArray:(NSArray *)array {
  result.packedBoolArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeBool];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedBoolValues:(const BOOL *)values count:(NSUInteger)count {
  result.packedBoolArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeBool];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedBool {
  result.packedBoolArray = nil;
  return self;
}
- (PBAppendableArray *)packedEnum {
  return result.packedEnumArray;
}
- (ForeignEnumLite)packedEnumAtIndex:(NSUInteger)index {
  return [result packedEnumAtIndex:index];
}
- (TestPackedTypesLite_Builder *)addPackedEnum:(ForeignEnumLite)value {
  if (result.packedEnumArray == nil) {
    result.packedEnumArray = [PBAppendableArray arrayWithValueType:PBArrayValueTypeInt32];
  }
  [result.packedEnumArray addInt32:value];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedEnumArray:(NSArray *)array {
  result.packedEnumArray = [PBAppendableArray arrayWithArray:array valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)setPackedEnumValues:(const ForeignEnumLite *)values count:(NSUInteger)count {
  result.packedEnumArray = [PBAppendableArray arrayWithValues:values count:count valueType:PBArrayValueTypeInt32];
  return self;
}
- (TestPackedTypesLite_Builder *)clearPackedEnum {
  result.packedEnumArray = nil;
  return self;
}
@end

@interface TestAllExtensionsLite ()
@end

@implementation TestAllExtensionsLite

- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
  }
  return self;
}
static TestAllExtensionsLite* defaultTestAllExtensionsLiteInstance = nil;
+ (void) initialize {
  if (self == [TestAllExtensionsLite class]) {
    defaultTestAllExtensionsLiteInstance = [[TestAllExtensionsLite alloc] init];
  }
}
+ (TestAllExtensionsLite*) defaultInstance {
  return defaultTestAllExtensionsLiteInstance;
}
- (TestAllExtensionsLite*) defaultInstance {
  return defaultTestAllExtensionsLiteInstance;
}
- (BOOL) isInitialized {
  if (!self.extensionsAreInitialized) {
    return NO;
  }
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  [self writeExtensionsToCodedOutputStream:output
                                      from:1
                                        to:536870912];
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  size += [self extensionsSerializedSize];
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestAllExtensionsLite*) parseFromData:(NSData*) data {
  return (TestAllExtensionsLite*)[[[TestAllExtensionsLite builder] mergeFromData:data] build];
}
+ (TestAllExtensionsLite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllExtensionsLite*)[[[TestAllExtensionsLite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestAllExtensionsLite*) parseFromInputStream:(NSInputStream*) input {
  return (TestAllExtensionsLite*)[[[TestAllExtensionsLite builder] mergeFromInputStream:input] build];
}
+ (TestAllExtensionsLite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllExtensionsLite*)[[[TestAllExtensionsLite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllExtensionsLite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestAllExtensionsLite*)[[[TestAllExtensionsLite builder] mergeFromCodedInputStream:input] build];
}
+ (TestAllExtensionsLite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestAllExtensionsLite*)[[[TestAllExtensionsLite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestAllExtensionsLite_Builder*) builder {
  return [[[TestAllExtensionsLite_Builder alloc] init] autorelease];
}
+ (TestAllExtensionsLite_Builder*) builderWithPrototype:(TestAllExtensionsLite*) prototype {
  return [[TestAllExtensionsLite builder] mergeFrom:prototype];
}
- (TestAllExtensionsLite_Builder*) builder {
  return [TestAllExtensionsLite builder];
}
- (TestAllExtensionsLite_Builder*) toBuilder {
  return [TestAllExtensionsLite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  [self writeExtensionDescriptionToMutableString:(NSMutableString*)output
                                            from:1
                                              to:536870912
                                      withIndent:indent];
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestAllExtensionsLite class]]) {
    return NO;
  }
  TestAllExtensionsLite *otherMessage = other;
  return
      [self isEqualExtensionsInOther:otherMessage from:1 to:536870912] &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  hashCode = hashCode * 31 + [self hashExtensionsFrom:1 to:536870912];
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface TestAllExtensionsLite_Builder()
@property (retain) TestAllExtensionsLite* result;
@end

@implementation TestAllExtensionsLite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestAllExtensionsLite alloc] init] autorelease];
  }
  return self;
}
- (PBExtendableMessage*) internalGetResult {
  return result;
}
- (TestAllExtensionsLite_Builder*) clear {
  self.result = [[[TestAllExtensionsLite alloc] init] autorelease];
  return self;
}
- (TestAllExtensionsLite_Builder*) clone {
  return [TestAllExtensionsLite builderWithPrototype:result];
}
- (TestAllExtensionsLite*) defaultInstance {
  return [TestAllExtensionsLite defaultInstance];
}
- (TestAllExtensionsLite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestAllExtensionsLite*) buildPartial {
  TestAllExtensionsLite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestAllExtensionsLite_Builder*) mergeFrom:(TestAllExtensionsLite*) other {
  if (other == [TestAllExtensionsLite defaultInstance]) {
    return self;
  }
  [self mergeExtensionFields:other];
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestAllExtensionsLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestAllExtensionsLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
    }
  }
}
@end

@interface OptionalGroup_extension_lite ()
@property int32_t a;
@end

@implementation OptionalGroup_extension_lite

- (BOOL) hasA {
  return !!hasA_;
}
- (void) setHasA:(BOOL) value {
  hasA_ = !!value;
}
@synthesize a;
- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.a = 0;
  }
  return self;
}
static OptionalGroup_extension_lite* defaultOptionalGroup_extension_liteInstance = nil;
+ (void) initialize {
  if (self == [OptionalGroup_extension_lite class]) {
    defaultOptionalGroup_extension_liteInstance = [[OptionalGroup_extension_lite alloc] init];
  }
}
+ (OptionalGroup_extension_lite*) defaultInstance {
  return defaultOptionalGroup_extension_liteInstance;
}
- (OptionalGroup_extension_lite*) defaultInstance {
  return defaultOptionalGroup_extension_liteInstance;
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  if (self.hasA) {
    [output writeInt32:17 value:self.a];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  if (self.hasA) {
    size += computeInt32Size(17, self.a);
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (OptionalGroup_extension_lite*) parseFromData:(NSData*) data {
  return (OptionalGroup_extension_lite*)[[[OptionalGroup_extension_lite builder] mergeFromData:data] build];
}
+ (OptionalGroup_extension_lite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (OptionalGroup_extension_lite*)[[[OptionalGroup_extension_lite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (OptionalGroup_extension_lite*) parseFromInputStream:(NSInputStream*) input {
  return (OptionalGroup_extension_lite*)[[[OptionalGroup_extension_lite builder] mergeFromInputStream:input] build];
}
+ (OptionalGroup_extension_lite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (OptionalGroup_extension_lite*)[[[OptionalGroup_extension_lite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (OptionalGroup_extension_lite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (OptionalGroup_extension_lite*)[[[OptionalGroup_extension_lite builder] mergeFromCodedInputStream:input] build];
}
+ (OptionalGroup_extension_lite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (OptionalGroup_extension_lite*)[[[OptionalGroup_extension_lite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (OptionalGroup_extension_lite_Builder*) builder {
  return [[[OptionalGroup_extension_lite_Builder alloc] init] autorelease];
}
+ (OptionalGroup_extension_lite_Builder*) builderWithPrototype:(OptionalGroup_extension_lite*) prototype {
  return [[OptionalGroup_extension_lite builder] mergeFrom:prototype];
}
- (OptionalGroup_extension_lite_Builder*) builder {
  return [OptionalGroup_extension_lite builder];
}
- (OptionalGroup_extension_lite_Builder*) toBuilder {
  return [OptionalGroup_extension_lite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  if (self.hasA) {
    [output appendFormat:@"%@%@: %@\n", indent, @"a", [NSNumber numberWithInt:self.a]];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[OptionalGroup_extension_lite class]]) {
    return NO;
  }
  OptionalGroup_extension_lite *otherMessage = other;
  return
      self.hasA == otherMessage.hasA &&
      (!self.hasA || self.a == otherMessage.a) &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  if (self.hasA) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.a] hash];
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface OptionalGroup_extension_lite_Builder()
@property (retain) OptionalGroup_extension_lite* result;
@end

@implementation OptionalGroup_extension_lite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[OptionalGroup_extension_lite alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (OptionalGroup_extension_lite_Builder*) clear {
  self.result = [[[OptionalGroup_extension_lite alloc] init] autorelease];
  return self;
}
- (OptionalGroup_extension_lite_Builder*) clone {
  return [OptionalGroup_extension_lite builderWithPrototype:result];
}
- (OptionalGroup_extension_lite*) defaultInstance {
  return [OptionalGroup_extension_lite defaultInstance];
}
- (OptionalGroup_extension_lite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (OptionalGroup_extension_lite*) buildPartial {
  OptionalGroup_extension_lite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (OptionalGroup_extension_lite_Builder*) mergeFrom:(OptionalGroup_extension_lite*) other {
  if (other == [OptionalGroup_extension_lite defaultInstance]) {
    return self;
  }
  if (other.hasA) {
    [self setA:other.a];
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (OptionalGroup_extension_lite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (OptionalGroup_extension_lite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 136: {
        [self setA:[input readInt32]];
        break;
      }
    }
  }
}
- (BOOL) hasA {
  return result.hasA;
}
- (int32_t) a {
  return result.a;
}
- (OptionalGroup_extension_lite_Builder*) setA:(int32_t) value {
  result.hasA = YES;
  result.a = value;
  return self;
}
- (OptionalGroup_extension_lite_Builder*) clearA {
  result.hasA = NO;
  result.a = 0;
  return self;
}
@end

@interface RepeatedGroup_extension_lite ()
@property int32_t a;
@end

@implementation RepeatedGroup_extension_lite

- (BOOL) hasA {
  return !!hasA_;
}
- (void) setHasA:(BOOL) value {
  hasA_ = !!value;
}
@synthesize a;
- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.a = 0;
  }
  return self;
}
static RepeatedGroup_extension_lite* defaultRepeatedGroup_extension_liteInstance = nil;
+ (void) initialize {
  if (self == [RepeatedGroup_extension_lite class]) {
    defaultRepeatedGroup_extension_liteInstance = [[RepeatedGroup_extension_lite alloc] init];
  }
}
+ (RepeatedGroup_extension_lite*) defaultInstance {
  return defaultRepeatedGroup_extension_liteInstance;
}
- (RepeatedGroup_extension_lite*) defaultInstance {
  return defaultRepeatedGroup_extension_liteInstance;
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  if (self.hasA) {
    [output writeInt32:47 value:self.a];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  if (self.hasA) {
    size += computeInt32Size(47, self.a);
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (RepeatedGroup_extension_lite*) parseFromData:(NSData*) data {
  return (RepeatedGroup_extension_lite*)[[[RepeatedGroup_extension_lite builder] mergeFromData:data] build];
}
+ (RepeatedGroup_extension_lite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (RepeatedGroup_extension_lite*)[[[RepeatedGroup_extension_lite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (RepeatedGroup_extension_lite*) parseFromInputStream:(NSInputStream*) input {
  return (RepeatedGroup_extension_lite*)[[[RepeatedGroup_extension_lite builder] mergeFromInputStream:input] build];
}
+ (RepeatedGroup_extension_lite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (RepeatedGroup_extension_lite*)[[[RepeatedGroup_extension_lite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (RepeatedGroup_extension_lite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (RepeatedGroup_extension_lite*)[[[RepeatedGroup_extension_lite builder] mergeFromCodedInputStream:input] build];
}
+ (RepeatedGroup_extension_lite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (RepeatedGroup_extension_lite*)[[[RepeatedGroup_extension_lite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (RepeatedGroup_extension_lite_Builder*) builder {
  return [[[RepeatedGroup_extension_lite_Builder alloc] init] autorelease];
}
+ (RepeatedGroup_extension_lite_Builder*) builderWithPrototype:(RepeatedGroup_extension_lite*) prototype {
  return [[RepeatedGroup_extension_lite builder] mergeFrom:prototype];
}
- (RepeatedGroup_extension_lite_Builder*) builder {
  return [RepeatedGroup_extension_lite builder];
}
- (RepeatedGroup_extension_lite_Builder*) toBuilder {
  return [RepeatedGroup_extension_lite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  if (self.hasA) {
    [output appendFormat:@"%@%@: %@\n", indent, @"a", [NSNumber numberWithInt:self.a]];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[RepeatedGroup_extension_lite class]]) {
    return NO;
  }
  RepeatedGroup_extension_lite *otherMessage = other;
  return
      self.hasA == otherMessage.hasA &&
      (!self.hasA || self.a == otherMessage.a) &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  if (self.hasA) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.a] hash];
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface RepeatedGroup_extension_lite_Builder()
@property (retain) RepeatedGroup_extension_lite* result;
@end

@implementation RepeatedGroup_extension_lite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[RepeatedGroup_extension_lite alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (RepeatedGroup_extension_lite_Builder*) clear {
  self.result = [[[RepeatedGroup_extension_lite alloc] init] autorelease];
  return self;
}
- (RepeatedGroup_extension_lite_Builder*) clone {
  return [RepeatedGroup_extension_lite builderWithPrototype:result];
}
- (RepeatedGroup_extension_lite*) defaultInstance {
  return [RepeatedGroup_extension_lite defaultInstance];
}
- (RepeatedGroup_extension_lite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (RepeatedGroup_extension_lite*) buildPartial {
  RepeatedGroup_extension_lite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (RepeatedGroup_extension_lite_Builder*) mergeFrom:(RepeatedGroup_extension_lite*) other {
  if (other == [RepeatedGroup_extension_lite defaultInstance]) {
    return self;
  }
  if (other.hasA) {
    [self setA:other.a];
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (RepeatedGroup_extension_lite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (RepeatedGroup_extension_lite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 376: {
        [self setA:[input readInt32]];
        break;
      }
    }
  }
}
- (BOOL) hasA {
  return result.hasA;
}
- (int32_t) a {
  return result.a;
}
- (RepeatedGroup_extension_lite_Builder*) setA:(int32_t) value {
  result.hasA = YES;
  result.a = value;
  return self;
}
- (RepeatedGroup_extension_lite_Builder*) clearA {
  result.hasA = NO;
  result.a = 0;
  return self;
}
@end

@interface TestPackedExtensionsLite ()
@end

@implementation TestPackedExtensionsLite

- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
  }
  return self;
}
static TestPackedExtensionsLite* defaultTestPackedExtensionsLiteInstance = nil;
+ (void) initialize {
  if (self == [TestPackedExtensionsLite class]) {
    defaultTestPackedExtensionsLiteInstance = [[TestPackedExtensionsLite alloc] init];
  }
}
+ (TestPackedExtensionsLite*) defaultInstance {
  return defaultTestPackedExtensionsLiteInstance;
}
- (TestPackedExtensionsLite*) defaultInstance {
  return defaultTestPackedExtensionsLiteInstance;
}
- (BOOL) isInitialized {
  if (!self.extensionsAreInitialized) {
    return NO;
  }
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  [self writeExtensionsToCodedOutputStream:output
                                      from:1
                                        to:536870912];
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  size += [self extensionsSerializedSize];
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestPackedExtensionsLite*) parseFromData:(NSData*) data {
  return (TestPackedExtensionsLite*)[[[TestPackedExtensionsLite builder] mergeFromData:data] build];
}
+ (TestPackedExtensionsLite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestPackedExtensionsLite*)[[[TestPackedExtensionsLite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestPackedExtensionsLite*) parseFromInputStream:(NSInputStream*) input {
  return (TestPackedExtensionsLite*)[[[TestPackedExtensionsLite builder] mergeFromInputStream:input] build];
}
+ (TestPackedExtensionsLite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestPackedExtensionsLite*)[[[TestPackedExtensionsLite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestPackedExtensionsLite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestPackedExtensionsLite*)[[[TestPackedExtensionsLite builder] mergeFromCodedInputStream:input] build];
}
+ (TestPackedExtensionsLite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestPackedExtensionsLite*)[[[TestPackedExtensionsLite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestPackedExtensionsLite_Builder*) builder {
  return [[[TestPackedExtensionsLite_Builder alloc] init] autorelease];
}
+ (TestPackedExtensionsLite_Builder*) builderWithPrototype:(TestPackedExtensionsLite*) prototype {
  return [[TestPackedExtensionsLite builder] mergeFrom:prototype];
}
- (TestPackedExtensionsLite_Builder*) builder {
  return [TestPackedExtensionsLite builder];
}
- (TestPackedExtensionsLite_Builder*) toBuilder {
  return [TestPackedExtensionsLite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  [self writeExtensionDescriptionToMutableString:(NSMutableString*)output
                                            from:1
                                              to:536870912
                                      withIndent:indent];
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestPackedExtensionsLite class]]) {
    return NO;
  }
  TestPackedExtensionsLite *otherMessage = other;
  return
      [self isEqualExtensionsInOther:otherMessage from:1 to:536870912] &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  hashCode = hashCode * 31 + [self hashExtensionsFrom:1 to:536870912];
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface TestPackedExtensionsLite_Builder()
@property (retain) TestPackedExtensionsLite* result;
@end

@implementation TestPackedExtensionsLite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestPackedExtensionsLite alloc] init] autorelease];
  }
  return self;
}
- (PBExtendableMessage*) internalGetResult {
  return result;
}
- (TestPackedExtensionsLite_Builder*) clear {
  self.result = [[[TestPackedExtensionsLite alloc] init] autorelease];
  return self;
}
- (TestPackedExtensionsLite_Builder*) clone {
  return [TestPackedExtensionsLite builderWithPrototype:result];
}
- (TestPackedExtensionsLite*) defaultInstance {
  return [TestPackedExtensionsLite defaultInstance];
}
- (TestPackedExtensionsLite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestPackedExtensionsLite*) buildPartial {
  TestPackedExtensionsLite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestPackedExtensionsLite_Builder*) mergeFrom:(TestPackedExtensionsLite*) other {
  if (other == [TestPackedExtensionsLite defaultInstance]) {
    return self;
  }
  [self mergeExtensionFields:other];
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestPackedExtensionsLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestPackedExtensionsLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
    }
  }
}
@end

@interface TestNestedExtensionLite ()
@end

@implementation TestNestedExtensionLite

- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
  }
  return self;
}
+ (id<PBExtensionField>) nestedExtension {
  return TestNestedExtensionLite_nestedExtension;
}
static TestNestedExtensionLite* defaultTestNestedExtensionLiteInstance = nil;
+ (void) initialize {
  if (self == [TestNestedExtensionLite class]) {
    defaultTestNestedExtensionLiteInstance = [[TestNestedExtensionLite alloc] init];
  }
}
+ (TestNestedExtensionLite*) defaultInstance {
  return defaultTestNestedExtensionLiteInstance;
}
- (TestNestedExtensionLite*) defaultInstance {
  return defaultTestNestedExtensionLiteInstance;
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestNestedExtensionLite*) parseFromData:(NSData*) data {
  return (TestNestedExtensionLite*)[[[TestNestedExtensionLite builder] mergeFromData:data] build];
}
+ (TestNestedExtensionLite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestNestedExtensionLite*)[[[TestNestedExtensionLite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestNestedExtensionLite*) parseFromInputStream:(NSInputStream*) input {
  return (TestNestedExtensionLite*)[[[TestNestedExtensionLite builder] mergeFromInputStream:input] build];
}
+ (TestNestedExtensionLite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestNestedExtensionLite*)[[[TestNestedExtensionLite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestNestedExtensionLite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestNestedExtensionLite*)[[[TestNestedExtensionLite builder] mergeFromCodedInputStream:input] build];
}
+ (TestNestedExtensionLite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestNestedExtensionLite*)[[[TestNestedExtensionLite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestNestedExtensionLite_Builder*) builder {
  return [[[TestNestedExtensionLite_Builder alloc] init] autorelease];
}
+ (TestNestedExtensionLite_Builder*) builderWithPrototype:(TestNestedExtensionLite*) prototype {
  return [[TestNestedExtensionLite builder] mergeFrom:prototype];
}
- (TestNestedExtensionLite_Builder*) builder {
  return [TestNestedExtensionLite builder];
}
- (TestNestedExtensionLite_Builder*) toBuilder {
  return [TestNestedExtensionLite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestNestedExtensionLite class]]) {
    return NO;
  }
  TestNestedExtensionLite *otherMessage = other;
  return
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface TestNestedExtensionLite_Builder()
@property (retain) TestNestedExtensionLite* result;
@end

@implementation TestNestedExtensionLite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestNestedExtensionLite alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (TestNestedExtensionLite_Builder*) clear {
  self.result = [[[TestNestedExtensionLite alloc] init] autorelease];
  return self;
}
- (TestNestedExtensionLite_Builder*) clone {
  return [TestNestedExtensionLite builderWithPrototype:result];
}
- (TestNestedExtensionLite*) defaultInstance {
  return [TestNestedExtensionLite defaultInstance];
}
- (TestNestedExtensionLite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestNestedExtensionLite*) buildPartial {
  TestNestedExtensionLite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestNestedExtensionLite_Builder*) mergeFrom:(TestNestedExtensionLite*) other {
  if (other == [TestNestedExtensionLite defaultInstance]) {
    return self;
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestNestedExtensionLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestNestedExtensionLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
    }
  }
}
@end

@interface TestDeprecatedLite ()
@property int32_t deprecatedField;
@end

@implementation TestDeprecatedLite

- (BOOL) hasDeprecatedField {
  return !!hasDeprecatedField_;
}
- (void) setHasDeprecatedField:(BOOL) value {
  hasDeprecatedField_ = !!value;
}
@synthesize deprecatedField;
- (void) dealloc {
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.deprecatedField = 0;
  }
  return self;
}
static TestDeprecatedLite* defaultTestDeprecatedLiteInstance = nil;
+ (void) initialize {
  if (self == [TestDeprecatedLite class]) {
    defaultTestDeprecatedLiteInstance = [[TestDeprecatedLite alloc] init];
  }
}
+ (TestDeprecatedLite*) defaultInstance {
  return defaultTestDeprecatedLiteInstance;
}
- (TestDeprecatedLite*) defaultInstance {
  return defaultTestDeprecatedLiteInstance;
}
- (BOOL) isInitialized {
  return YES;
}
- (void) writeToCodedOutputStream:(PBCodedOutputStream*) output {
  if (self.hasDeprecatedField) {
    [output writeInt32:1 value:self.deprecatedField];
  }
  [self.unknownFields writeToCodedOutputStream:output];
}
- (int32_t) serializedSize {
  int32_t size = memoizedSerializedSize;
  if (size != -1) {
    return size;
  }

  size = 0;
  if (self.hasDeprecatedField) {
    size += computeInt32Size(1, self.deprecatedField);
  }
  size += self.unknownFields.serializedSize;
  memoizedSerializedSize = size;
  return size;
}
+ (TestDeprecatedLite*) parseFromData:(NSData*) data {
  return (TestDeprecatedLite*)[[[TestDeprecatedLite builder] mergeFromData:data] build];
}
+ (TestDeprecatedLite*) parseFromData:(NSData*) data extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestDeprecatedLite*)[[[TestDeprecatedLite builder] mergeFromData:data extensionRegistry:extensionRegistry] build];
}
+ (TestDeprecatedLite*) parseFromInputStream:(NSInputStream*) input {
  return (TestDeprecatedLite*)[[[TestDeprecatedLite builder] mergeFromInputStream:input] build];
}
+ (TestDeprecatedLite*) parseFromInputStream:(NSInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestDeprecatedLite*)[[[TestDeprecatedLite builder] mergeFromInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestDeprecatedLite*) parseFromCodedInputStream:(PBCodedInputStream*) input {
  return (TestDeprecatedLite*)[[[TestDeprecatedLite builder] mergeFromCodedInputStream:input] build];
}
+ (TestDeprecatedLite*) parseFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  return (TestDeprecatedLite*)[[[TestDeprecatedLite builder] mergeFromCodedInputStream:input extensionRegistry:extensionRegistry] build];
}
+ (TestDeprecatedLite_Builder*) builder {
  return [[[TestDeprecatedLite_Builder alloc] init] autorelease];
}
+ (TestDeprecatedLite_Builder*) builderWithPrototype:(TestDeprecatedLite*) prototype {
  return [[TestDeprecatedLite builder] mergeFrom:prototype];
}
- (TestDeprecatedLite_Builder*) builder {
  return [TestDeprecatedLite builder];
}
- (TestDeprecatedLite_Builder*) toBuilder {
  return [TestDeprecatedLite builderWithPrototype:self];
}
- (void) writeDescriptionTo:(NSMutableString*) output withIndent:(NSString*) indent {
  if (self.hasDeprecatedField) {
    [output appendFormat:@"%@%@: %@\n", indent, @"deprecatedField", [NSNumber numberWithInt:self.deprecatedField]];
  }
  [self.unknownFields writeDescriptionTo:output withIndent:indent];
}
- (BOOL) isEqual:(id)other {
  if (other == self) {
    return YES;
  }
  if (![other isKindOfClass:[TestDeprecatedLite class]]) {
    return NO;
  }
  TestDeprecatedLite *otherMessage = other;
  return
      self.hasDeprecatedField == otherMessage.hasDeprecatedField &&
      (!self.hasDeprecatedField || self.deprecatedField == otherMessage.deprecatedField) &&
      
      (self.unknownFields == otherMessage.unknownFields || (self.unknownFields != nil && [self.unknownFields isEqual:otherMessage.unknownFields]));
}
- (NSUInteger) hash {
  NSUInteger hashCode = 7;
  if (self.hasDeprecatedField) {
    hashCode = hashCode * 31 + [[NSNumber numberWithInt:self.deprecatedField] hash];
  }
  hashCode = hashCode * 31 + [self.unknownFields hash];
  return hashCode;
}
@end

@interface TestDeprecatedLite_Builder()
@property (retain) TestDeprecatedLite* result;
@end

@implementation TestDeprecatedLite_Builder
@synthesize result;
- (void) dealloc {
  self.result = nil;
  [super dealloc];
}
- (id) init {
  if ((self = [super init])) {
    self.result = [[[TestDeprecatedLite alloc] init] autorelease];
  }
  return self;
}
- (PBGeneratedMessage*) internalGetResult {
  return result;
}
- (TestDeprecatedLite_Builder*) clear {
  self.result = [[[TestDeprecatedLite alloc] init] autorelease];
  return self;
}
- (TestDeprecatedLite_Builder*) clone {
  return [TestDeprecatedLite builderWithPrototype:result];
}
- (TestDeprecatedLite*) defaultInstance {
  return [TestDeprecatedLite defaultInstance];
}
- (TestDeprecatedLite*) build {
  [self checkInitialized];
  return [self buildPartial];
}
- (TestDeprecatedLite*) buildPartial {
  TestDeprecatedLite* returnMe = [[result retain] autorelease];
  self.result = nil;
  return returnMe;
}
- (TestDeprecatedLite_Builder*) mergeFrom:(TestDeprecatedLite*) other {
  if (other == [TestDeprecatedLite defaultInstance]) {
    return self;
  }
  if (other.hasDeprecatedField) {
    [self setDeprecatedField:other.deprecatedField];
  }
  [self mergeUnknownFields:other.unknownFields];
  return self;
}
- (TestDeprecatedLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input {
  return [self mergeFromCodedInputStream:input extensionRegistry:[PBExtensionRegistry emptyRegistry]];
}
- (TestDeprecatedLite_Builder*) mergeFromCodedInputStream:(PBCodedInputStream*) input extensionRegistry:(PBExtensionRegistry*) extensionRegistry {
  PBUnknownFieldSet_Builder* unknownFields = [PBUnknownFieldSet builderWithUnknownFields:self.unknownFields];
  while (YES) {
    int32_t tag = [input readTag];
    switch (tag) {
      case 0:
        [self setUnknownFields:[unknownFields build]];
        return self;
      default: {
        if (![self parseUnknownField:input unknownFields:unknownFields extensionRegistry:extensionRegistry tag:tag]) {
          [self setUnknownFields:[unknownFields build]];
          return self;
        }
        break;
      }
      case 8: {
        [self setDeprecatedField:[input readInt32]];
        break;
      }
    }
  }
}
- (BOOL) hasDeprecatedField {
  return result.hasDeprecatedField;
}
- (int32_t) deprecatedField {
  return result.deprecatedField;
}
- (TestDeprecatedLite_Builder*) setDeprecatedField:(int32_t) value {
  result.hasDeprecatedField = YES;
  result.deprecatedField = value;
  return self;
}
- (TestDeprecatedLite_Builder*) clearDeprecatedField {
  result.hasDeprecatedField = NO;
  result.deprecatedField = 0;
  return self;
}
@end

