github.com/gogo/protobuf@v1.3.2/test/casttype/combos/both/casttype.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: combos/both/casttype.proto
     3  
     4  package casttype
     5  
     6  import (
     7  	bytes "bytes"
     8  	compress_gzip "compress/gzip"
     9  	encoding_binary "encoding/binary"
    10  	fmt "fmt"
    11  	_ "github.com/gogo/protobuf/gogoproto"
    12  	github_com_gogo_protobuf_proto "github.com/gogo/protobuf/proto"
    13  	proto "github.com/gogo/protobuf/proto"
    14  	github_com_gogo_protobuf_protoc_gen_gogo_descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
    15  	github_com_gogo_protobuf_sortkeys "github.com/gogo/protobuf/sortkeys"
    16  	github_com_gogo_protobuf_test_casttype "github.com/gogo/protobuf/test/casttype"
    17  	io "io"
    18  	io_ioutil "io/ioutil"
    19  	math "math"
    20  	math_bits "math/bits"
    21  	reflect "reflect"
    22  	strings "strings"
    23  )
    24  
    25  // Reference imports to suppress errors if they are not otherwise used.
    26  var _ = proto.Marshal
    27  var _ = fmt.Errorf
    28  var _ = math.Inf
    29  
    30  // This is a compile-time assertion to ensure that this generated file
    31  // is compatible with the proto package it is being compiled against.
    32  // A compilation error at this line likely means your copy of the
    33  // proto package needs to be updated.
    34  const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
    35  
    36  type Castaway struct {
    37  	Int32Ptr             *int32                                                                                                      `protobuf:"varint,1,opt,name=Int32Ptr,casttype=int32" json:"Int32Ptr,omitempty"`
    38  	Int32                int32                                                                                                       `protobuf:"varint,2,opt,name=Int32,casttype=int32" json:"Int32"`
    39  	MyUint64Ptr          *github_com_gogo_protobuf_test_casttype.MyUint64Type                                                        `protobuf:"varint,3,opt,name=MyUint64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64Ptr,omitempty"`
    40  	MyUint64             github_com_gogo_protobuf_test_casttype.MyUint64Type                                                         `protobuf:"varint,4,opt,name=MyUint64,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64"`
    41  	MyFloat32Ptr         *github_com_gogo_protobuf_test_casttype.MyFloat32Type                                                       `protobuf:"fixed32,5,opt,name=MyFloat32Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32Ptr,omitempty"`
    42  	MyFloat32            github_com_gogo_protobuf_test_casttype.MyFloat32Type                                                        `protobuf:"fixed32,6,opt,name=MyFloat32,casttype=github.com/gogo/protobuf/test/casttype.MyFloat32Type" json:"MyFloat32"`
    43  	MyFloat64Ptr         *github_com_gogo_protobuf_test_casttype.MyFloat64Type                                                       `protobuf:"fixed64,7,opt,name=MyFloat64Ptr,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64Ptr,omitempty"`
    44  	MyFloat64            github_com_gogo_protobuf_test_casttype.MyFloat64Type                                                        `protobuf:"fixed64,8,opt,name=MyFloat64,casttype=github.com/gogo/protobuf/test/casttype.MyFloat64Type" json:"MyFloat64"`
    45  	MyBytes              github_com_gogo_protobuf_test_casttype.Bytes                                                                `protobuf:"bytes,9,opt,name=MyBytes,casttype=github.com/gogo/protobuf/test/casttype.Bytes" json:"MyBytes,omitempty"`
    46  	NormalBytes          []byte                                                                                                      `protobuf:"bytes,10,opt,name=NormalBytes" json:"NormalBytes,omitempty"`
    47  	MyUint64S            []github_com_gogo_protobuf_test_casttype.MyUint64Type                                                       `protobuf:"varint,11,rep,name=MyUint64s,casttype=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyUint64s,omitempty"`
    48  	MyMap                github_com_gogo_protobuf_test_casttype.MyMapType                                                            `protobuf:"bytes,12,rep,name=MyMap,casttype=github.com/gogo/protobuf/test/casttype.MyMapType" json:"MyMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
    49  	MyCustomMap          map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type `protobuf:"bytes,13,rep,name=MyCustomMap,castkey=github.com/gogo/protobuf/test/casttype.MyStringType,castvalue=github.com/gogo/protobuf/test/casttype.MyUint64Type" json:"MyCustomMap,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"`
    50  	MyNullableMap        map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson                                              `protobuf:"bytes,14,rep,name=MyNullableMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyNullableMap,omitempty" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
    51  	MyEmbeddedMap        map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson                                               `protobuf:"bytes,15,rep,name=MyEmbeddedMap,castkey=github.com/gogo/protobuf/test/casttype.MyInt32Type" json:"MyEmbeddedMap" protobuf_key:"varint,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
    52  	String_              *github_com_gogo_protobuf_test_casttype.MyStringType                                                        `protobuf:"bytes,16,opt,name=String,casttype=github.com/gogo/protobuf/test/casttype.MyStringType" json:"String,omitempty"`
    53  	XXX_NoUnkeyedLiteral struct{}                                                                                                    `json:"-"`
    54  	XXX_unrecognized     []byte                                                                                                      `json:"-"`
    55  	XXX_sizecache        int32                                                                                                       `json:"-"`
    56  }
    57  
    58  func (m *Castaway) Reset()      { *m = Castaway{} }
    59  func (*Castaway) ProtoMessage() {}
    60  func (*Castaway) Descriptor() ([]byte, []int) {
    61  	return fileDescriptor_e62bd869da1a4b71, []int{0}
    62  }
    63  func (m *Castaway) XXX_Unmarshal(b []byte) error {
    64  	return m.Unmarshal(b)
    65  }
    66  func (m *Castaway) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    67  	if deterministic {
    68  		return xxx_messageInfo_Castaway.Marshal(b, m, deterministic)
    69  	} else {
    70  		b = b[:cap(b)]
    71  		n, err := m.MarshalToSizedBuffer(b)
    72  		if err != nil {
    73  			return nil, err
    74  		}
    75  		return b[:n], nil
    76  	}
    77  }
    78  func (m *Castaway) XXX_Merge(src proto.Message) {
    79  	xxx_messageInfo_Castaway.Merge(m, src)
    80  }
    81  func (m *Castaway) XXX_Size() int {
    82  	return m.Size()
    83  }
    84  func (m *Castaway) XXX_DiscardUnknown() {
    85  	xxx_messageInfo_Castaway.DiscardUnknown(m)
    86  }
    87  
    88  var xxx_messageInfo_Castaway proto.InternalMessageInfo
    89  
    90  type Wilson struct {
    91  	Int64                *int64   `protobuf:"varint,1,opt,name=Int64" json:"Int64,omitempty"`
    92  	XXX_NoUnkeyedLiteral struct{} `json:"-"`
    93  	XXX_unrecognized     []byte   `json:"-"`
    94  	XXX_sizecache        int32    `json:"-"`
    95  }
    96  
    97  func (m *Wilson) Reset()      { *m = Wilson{} }
    98  func (*Wilson) ProtoMessage() {}
    99  func (*Wilson) Descriptor() ([]byte, []int) {
   100  	return fileDescriptor_e62bd869da1a4b71, []int{1}
   101  }
   102  func (m *Wilson) XXX_Unmarshal(b []byte) error {
   103  	return m.Unmarshal(b)
   104  }
   105  func (m *Wilson) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   106  	if deterministic {
   107  		return xxx_messageInfo_Wilson.Marshal(b, m, deterministic)
   108  	} else {
   109  		b = b[:cap(b)]
   110  		n, err := m.MarshalToSizedBuffer(b)
   111  		if err != nil {
   112  			return nil, err
   113  		}
   114  		return b[:n], nil
   115  	}
   116  }
   117  func (m *Wilson) XXX_Merge(src proto.Message) {
   118  	xxx_messageInfo_Wilson.Merge(m, src)
   119  }
   120  func (m *Wilson) XXX_Size() int {
   121  	return m.Size()
   122  }
   123  func (m *Wilson) XXX_DiscardUnknown() {
   124  	xxx_messageInfo_Wilson.DiscardUnknown(m)
   125  }
   126  
   127  var xxx_messageInfo_Wilson proto.InternalMessageInfo
   128  
   129  func init() {
   130  	proto.RegisterType((*Castaway)(nil), "casttype.Castaway")
   131  	proto.RegisterMapType((map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type)(nil), "casttype.Castaway.MyCustomMapEntry")
   132  	proto.RegisterMapType((map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson)(nil), "casttype.Castaway.MyEmbeddedMapEntry")
   133  	proto.RegisterMapType((github_com_gogo_protobuf_test_casttype.MyMapType)(nil), "casttype.Castaway.MyMapEntry")
   134  	proto.RegisterMapType((map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson)(nil), "casttype.Castaway.MyNullableMapEntry")
   135  	proto.RegisterType((*Wilson)(nil), "casttype.Wilson")
   136  }
   137  
   138  func init() { proto.RegisterFile("combos/both/casttype.proto", fileDescriptor_e62bd869da1a4b71) }
   139  
   140  var fileDescriptor_e62bd869da1a4b71 = []byte{
   141  	// 694 bytes of a gzipped FileDescriptorProto
   142  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x95, 0xbf, 0x6f, 0xd3, 0x4c,
   143  	0x18, 0xc7, 0xfd, 0x34, 0x4d, 0x9b, 0x5c, 0x9a, 0xf7, 0x8d, 0x4e, 0x0c, 0x56, 0x24, 0xce, 0x56,
   144  	0xab, 0x22, 0x0f, 0x90, 0x54, 0x69, 0x54, 0xaa, 0x82, 0x18, 0x5c, 0x15, 0xa9, 0x08, 0x17, 0x64,
   145  	0xa8, 0x2a, 0x10, 0x8b, 0xd3, 0x9a, 0x34, 0xc2, 0x89, 0xa3, 0xf8, 0x02, 0xf2, 0x56, 0x95, 0x01,
   146  	0x89, 0xbf, 0x84, 0x91, 0x05, 0x89, 0x91, 0xb1, 0x63, 0x47, 0xa6, 0xb4, 0x36, 0x4b, 0xd9, 0x3a,
   147  	0x56, 0x99, 0xd0, 0xdd, 0x39, 0xb1, 0xfb, 0x03, 0x94, 0xa6, 0xdb, 0x3d, 0x77, 0xcf, 0xf3, 0x79,
   148  	0xbe, 0xf7, 0xdc, 0x73, 0x77, 0xa8, 0xb8, 0xed, 0x36, 0x6b, 0xae, 0x57, 0xae, 0xb9, 0x74, 0xb7,
   149  	0xbc, 0x6d, 0x79, 0x94, 0xfa, 0x6d, 0xbb, 0xd4, 0xee, 0xb8, 0xd4, 0xc5, 0x99, 0x81, 0x5d, 0xbc,
   150  	0x57, 0x6f, 0xd0, 0xdd, 0x6e, 0xad, 0xb4, 0xed, 0x36, 0xcb, 0x75, 0xb7, 0xee, 0x96, 0xb9, 0x43,
   151  	0xad, 0xfb, 0x96, 0x5b, 0xdc, 0xe0, 0x23, 0x11, 0x38, 0xfb, 0x3b, 0x8f, 0x32, 0xab, 0x96, 0x47,
   152  	0xad, 0x0f, 0x96, 0x8f, 0xe7, 0x51, 0x66, 0xbd, 0x45, 0x17, 0x2b, 0xcf, 0x69, 0x47, 0x06, 0x15,
   153  	0xb4, 0x94, 0x9e, 0xed, 0xf7, 0x94, 0x74, 0x83, 0xcd, 0x99, 0xc3, 0x25, 0x3c, 0x87, 0xd2, 0x7c,
   154  	0x2c, 0x4f, 0x70, 0x9f, 0xfc, 0x41, 0x4f, 0x91, 0x62, 0x3f, 0xb1, 0x86, 0x5f, 0xa1, 0x9c, 0xe1,
   155  	0x6f, 0x36, 0x5a, 0x74, 0xa9, 0xca, 0x70, 0x29, 0x15, 0xb4, 0x49, 0xfd, 0x7e, 0xbf, 0xa7, 0x2c,
   156  	0xfe, 0x55, 0x20, 0xb5, 0x3d, 0x1a, 0x6f, 0x6c, 0x10, 0xfd, 0xd2, 0x6f, 0xdb, 0x66, 0x92, 0x85,
   157  	0xb7, 0x50, 0x66, 0x60, 0xca, 0x93, 0x9c, 0xfb, 0x20, 0x92, 0x30, 0x16, 0x7b, 0x08, 0xc3, 0x6f,
   158  	0xd0, 0x8c, 0xe1, 0x3f, 0x76, 0x5c, 0x2b, 0xaa, 0x41, 0x5a, 0x05, 0x6d, 0x42, 0x5f, 0xee, 0xf7,
   159  	0x94, 0xea, 0xc8, 0xe0, 0x28, 0x9c, 0x93, 0xcf, 0xd1, 0xf0, 0x6b, 0x94, 0x1d, 0xda, 0xf2, 0x14,
   160  	0x47, 0x3f, 0x8c, 0x74, 0x8f, 0x87, 0x8f, 0x71, 0x09, 0xe5, 0xa2, 0xdc, 0xd3, 0x2a, 0x68, 0x30,
   161  	0x8e, 0xf2, 0xa8, 0x26, 0xe7, 0x68, 0x09, 0xe5, 0x4b, 0x55, 0x39, 0xc3, 0xd1, 0x63, 0x2a, 0x8f,
   162  	0xf0, 0x31, 0x0e, 0x3f, 0x41, 0xd3, 0x86, 0xaf, 0xfb, 0xd4, 0xf6, 0xe4, 0xac, 0x0a, 0xda, 0x8c,
   163  	0xbe, 0xd0, 0xef, 0x29, 0x77, 0x47, 0xa4, 0xf2, 0x38, 0x73, 0x00, 0xc0, 0x2a, 0xca, 0x6d, 0xb8,
   164  	0x9d, 0xa6, 0xe5, 0x08, 0x1e, 0x62, 0x3c, 0x33, 0x39, 0x85, 0x37, 0xd9, 0x4e, 0xc4, 0x69, 0x7b,
   165  	0x72, 0x4e, 0x4d, 0xdd, 0xa4, 0x27, 0x63, 0x12, 0x6e, 0xa0, 0xb4, 0xe1, 0x1b, 0x56, 0x5b, 0x9e,
   166  	0x51, 0x53, 0x5a, 0xae, 0x72, 0xbb, 0x34, 0x8c, 0x18, 0xdc, 0xad, 0x12, 0x5f, 0x5f, 0x6b, 0xd1,
   167  	0x8e, 0xaf, 0x57, 0xfb, 0x3d, 0x65, 0x61, 0xe4, 0x8c, 0x86, 0xd5, 0xe6, 0xe9, 0x44, 0x06, 0xfc,
   168  	0x0d, 0xd8, 0xc5, 0x5a, 0xed, 0x7a, 0xd4, 0x6d, 0xb2, 0x8c, 0x79, 0x9e, 0x71, 0xee, 0xca, 0x8c,
   169  	0x43, 0x2f, 0x91, 0xb7, 0xb5, 0x7f, 0x74, 0x8d, 0x9d, 0xbe, 0xa0, 0x9d, 0x46, 0xab, 0xce, 0x52,
   170  	0x7f, 0x3e, 0x1a, 0xfb, 0xd2, 0x0e, 0x15, 0xe0, 0x8f, 0x80, 0xf2, 0x86, 0xbf, 0xd1, 0x75, 0x1c,
   171  	0xab, 0xe6, 0xd8, 0x4c, 0xf9, 0x7f, 0x5c, 0xf9, 0xfc, 0x95, 0xca, 0x13, 0x7e, 0x42, 0xfb, 0xd2,
   172  	0xfe, 0x91, 0x52, 0x19, 0x59, 0x04, 0x7f, 0x82, 0xb8, 0x86, 0xf3, 0x39, 0xf1, 0x27, 0xae, 0x62,
   173  	0xad, 0x59, 0xb3, 0x77, 0x76, 0xec, 0x1d, 0xa6, 0xe2, 0xff, 0x7f, 0xa8, 0x48, 0xf8, 0x09, 0x15,
   174  	0x2b, 0xac, 0xeb, 0xc7, 0x57, 0x92, 0xe0, 0xe1, 0x67, 0x68, 0x4a, 0x54, 0x58, 0x2e, 0xa8, 0xa0,
   175  	0x65, 0xaf, 0xd9, 0x86, 0xf1, 0xe1, 0x98, 0x11, 0xa6, 0xb8, 0x8c, 0x50, 0xdc, 0x63, 0xb8, 0x80,
   176  	0x52, 0xef, 0x6c, 0x9f, 0xbf, 0xe2, 0x59, 0x93, 0x0d, 0xf1, 0x2d, 0x94, 0x7e, 0x6f, 0x39, 0x5d,
   177  	0x9b, 0xbf, 0xda, 0x93, 0xa6, 0x30, 0x56, 0x26, 0x96, 0xa1, 0xf8, 0x08, 0x15, 0x2e, 0xf6, 0xca,
   178  	0xb5, 0xe2, 0x4d, 0x84, 0x2f, 0x9f, 0x58, 0x92, 0x90, 0x16, 0x84, 0x3b, 0x49, 0x42, 0xae, 0x52,
   179  	0x88, 0x6b, 0xbe, 0xd5, 0x70, 0x3c, 0xb7, 0x75, 0x89, 0x79, 0xb1, 0xfe, 0x37, 0x63, 0xce, 0x12,
   180  	0x34, 0x25, 0x26, 0xd9, 0x5e, 0xd6, 0xf9, 0xf7, 0xc1, 0x7f, 0x39, 0x53, 0x18, 0xfa, 0xd3, 0x83,
   181  	0x80, 0x48, 0x87, 0x01, 0x91, 0x7e, 0x06, 0x44, 0x3a, 0x0e, 0x08, 0x9c, 0x04, 0x04, 0x4e, 0x03,
   182  	0x02, 0x67, 0x01, 0x81, 0xbd, 0x90, 0xc0, 0x97, 0x90, 0xc0, 0xd7, 0x90, 0xc0, 0xf7, 0x90, 0xc0,
   183  	0x8f, 0x90, 0xc0, 0x41, 0x48, 0xe0, 0x30, 0x24, 0x70, 0x1c, 0x12, 0x38, 0x09, 0x89, 0x74, 0x1a,
   184  	0x12, 0x38, 0x0b, 0x89, 0xb4, 0xf7, 0x8b, 0x48, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x0b, 0x0c,
   185  	0x8a, 0xc1, 0xaf, 0x07, 0x00, 0x00,
   186  }
   187  
   188  func (this *Castaway) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
   189  	return CasttypeDescription()
   190  }
   191  func (this *Wilson) Description() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
   192  	return CasttypeDescription()
   193  }
   194  func CasttypeDescription() (desc *github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet) {
   195  	d := &github_com_gogo_protobuf_protoc_gen_gogo_descriptor.FileDescriptorSet{}
   196  	var gzipped = []byte{
   197  		// 4379 bytes of a gzipped FileDescriptorSet
   198  		0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x7b, 0x5b, 0x70, 0x1c, 0xc7,
   199  		0x75, 0x36, 0x66, 0x2f, 0xc0, 0xee, 0xd9, 0xc5, 0x62, 0xd0, 0x80, 0xa8, 0x15, 0x64, 0x2d, 0x40,
   200  		0x50, 0x17, 0xe8, 0x06, 0xaa, 0x78, 0xd7, 0xd2, 0x96, 0x7e, 0x2c, 0xb0, 0x84, 0x97, 0x3f, 0x16,
   201  		0x80, 0x07, 0x80, 0x29, 0xca, 0x49, 0x4d, 0x0d, 0x66, 0x1b, 0x8b, 0x21, 0x67, 0x67, 0xc6, 0x33,
   202  		0xb3, 0xa4, 0x96, 0x95, 0x07, 0xc6, 0x4a, 0xe2, 0x72, 0xee, 0xb7, 0xaa, 0xd8, 0x8a, 0xac, 0xc4,
   203  		0x4e, 0xc5, 0x72, 0x9c, 0x8b, 0xed, 0x24, 0x76, 0x6c, 0xe7, 0xc5, 0x2f, 0x4e, 0xf8, 0x94, 0xb2,
   204  		0xdf, 0xf2, 0x90, 0xa2, 0x44, 0x58, 0x55, 0x91, 0x13, 0x25, 0x51, 0x12, 0x3e, 0xa8, 0xa8, 0x97,
   205  		0x54, 0xdf, 0x66, 0x67, 0x2f, 0xe0, 0x2c, 0xe8, 0x92, 0xfc, 0x84, 0x9d, 0xd3, 0xe7, 0xfb, 0xfa,
   206  		0xf4, 0xe9, 0xd3, 0x7d, 0x4e, 0xf7, 0x0c, 0xe0, 0x46, 0x11, 0x66, 0xea, 0xb6, 0x5d, 0x37, 0xf1,
   207  		0x51, 0xc7, 0xb5, 0x7d, 0x7b, 0xbb, 0xb9, 0x73, 0xb4, 0x86, 0x3d, 0xdd, 0x35, 0x1c, 0xdf, 0x76,
   208  		0xe7, 0xa9, 0x0c, 0x8d, 0x31, 0x8d, 0x79, 0xa1, 0x31, 0x5b, 0x85, 0xf1, 0x73, 0x86, 0x89, 0x97,
   209  		0x02, 0xc5, 0x0d, 0xec, 0xa3, 0x33, 0x90, 0xd8, 0x31, 0x4c, 0x9c, 0x97, 0x66, 0xe2, 0x73, 0x99,
   210  		0x63, 0x0f, 0xcf, 0x77, 0x81, 0xe6, 0x3b, 0x11, 0xeb, 0x44, 0xac, 0x50, 0xc4, 0xec, 0x5b, 0x09,
   211  		0x98, 0xe8, 0xd3, 0x8a, 0x10, 0x24, 0x2c, 0xad, 0x41, 0x18, 0xa5, 0xb9, 0xb4, 0x42, 0x7f, 0xa3,
   212  		0x3c, 0x8c, 0x38, 0x9a, 0x7e, 0x59, 0xab, 0xe3, 0x7c, 0x8c, 0x8a, 0xc5, 0x23, 0x2a, 0x00, 0xd4,
   213  		0xb0, 0x83, 0xad, 0x1a, 0xb6, 0xf4, 0x56, 0x3e, 0x3e, 0x13, 0x9f, 0x4b, 0x2b, 0x21, 0x09, 0x7a,
   214  		0x12, 0xc6, 0x9d, 0xe6, 0xb6, 0x69, 0xe8, 0x6a, 0x48, 0x0d, 0x66, 0xe2, 0x73, 0x49, 0x45, 0x66,
   215  		0x0d, 0x4b, 0x6d, 0xe5, 0xc7, 0x60, 0xec, 0x2a, 0xd6, 0x2e, 0x87, 0x55, 0x33, 0x54, 0x35, 0x47,
   216  		0xc4, 0x21, 0xc5, 0x45, 0xc8, 0x36, 0xb0, 0xe7, 0x69, 0x75, 0xac, 0xfa, 0x2d, 0x07, 0xe7, 0x13,
   217  		0x74, 0xf4, 0x33, 0x3d, 0xa3, 0xef, 0x1e, 0x79, 0x86, 0xa3, 0x36, 0x5b, 0x0e, 0x46, 0x0b, 0x90,
   218  		0xc6, 0x56, 0xb3, 0xc1, 0x18, 0x92, 0xfb, 0xf8, 0xaf, 0x6c, 0x35, 0x1b, 0xdd, 0x2c, 0x29, 0x02,
   219  		0xe3, 0x14, 0x23, 0x1e, 0x76, 0xaf, 0x18, 0x3a, 0xce, 0x0f, 0x53, 0x82, 0xc7, 0x7a, 0x08, 0x36,
   220  		0x58, 0x7b, 0x37, 0x87, 0xc0, 0xa1, 0x45, 0x48, 0xe3, 0x97, 0x7c, 0x6c, 0x79, 0x86, 0x6d, 0xe5,
   221  		0x47, 0x28, 0xc9, 0x23, 0x7d, 0x66, 0x11, 0x9b, 0xb5, 0x6e, 0x8a, 0x36, 0x0e, 0x9d, 0x82, 0x11,
   222  		0xdb, 0xf1, 0x0d, 0xdb, 0xf2, 0xf2, 0xa9, 0x19, 0x69, 0x2e, 0x73, 0xec, 0x23, 0x7d, 0x03, 0x61,
   223  		0x8d, 0xe9, 0x28, 0x42, 0x19, 0x55, 0x40, 0xf6, 0xec, 0xa6, 0xab, 0x63, 0x55, 0xb7, 0x6b, 0x58,
   224  		0x35, 0xac, 0x1d, 0x3b, 0x9f, 0xa6, 0x04, 0xd3, 0xbd, 0x03, 0xa1, 0x8a, 0x8b, 0x76, 0x0d, 0x57,
   225  		0xac, 0x1d, 0x5b, 0xc9, 0x79, 0x1d, 0xcf, 0xe8, 0x10, 0x0c, 0x7b, 0x2d, 0xcb, 0xd7, 0x5e, 0xca,
   226  		0x67, 0x69, 0x84, 0xf0, 0xa7, 0xd9, 0xef, 0x0e, 0xc3, 0xd8, 0x20, 0x21, 0x76, 0x16, 0x92, 0x3b,
   227  		0x64, 0x94, 0xf9, 0xd8, 0x41, 0x7c, 0xc0, 0x30, 0x9d, 0x4e, 0x1c, 0xbe, 0x47, 0x27, 0x2e, 0x40,
   228  		0xc6, 0xc2, 0x9e, 0x8f, 0x6b, 0x2c, 0x22, 0xe2, 0x03, 0xc6, 0x14, 0x30, 0x50, 0x6f, 0x48, 0x25,
   229  		0xee, 0x29, 0xa4, 0x5e, 0x80, 0xb1, 0xc0, 0x24, 0xd5, 0xd5, 0xac, 0xba, 0x88, 0xcd, 0xa3, 0x51,
   230  		0x96, 0xcc, 0x97, 0x05, 0x4e, 0x21, 0x30, 0x25, 0x87, 0x3b, 0x9e, 0xd1, 0x12, 0x80, 0x6d, 0x61,
   231  		0x7b, 0x47, 0xad, 0x61, 0xdd, 0xcc, 0xa7, 0xf6, 0xf1, 0xd2, 0x1a, 0x51, 0xe9, 0xf1, 0x92, 0xcd,
   232  		0xa4, 0xba, 0x89, 0x9e, 0x6d, 0x87, 0xda, 0xc8, 0x3e, 0x91, 0x52, 0x65, 0x8b, 0xac, 0x27, 0xda,
   233  		0xb6, 0x20, 0xe7, 0x62, 0x12, 0xf7, 0xb8, 0xc6, 0x47, 0x96, 0xa6, 0x46, 0xcc, 0x47, 0x8e, 0x4c,
   234  		0xe1, 0x30, 0x36, 0xb0, 0x51, 0x37, 0xfc, 0x88, 0x8e, 0x40, 0x20, 0x50, 0x69, 0x58, 0x01, 0xdd,
   235  		0x85, 0xb2, 0x42, 0xb8, 0xaa, 0x35, 0xf0, 0xd4, 0x35, 0xc8, 0x75, 0xba, 0x07, 0x4d, 0x42, 0xd2,
   236  		0xf3, 0x35, 0xd7, 0xa7, 0x51, 0x98, 0x54, 0xd8, 0x03, 0x92, 0x21, 0x8e, 0xad, 0x1a, 0xdd, 0xe5,
   237  		0x92, 0x0a, 0xf9, 0x89, 0xfe, 0x5f, 0x7b, 0xc0, 0x71, 0x3a, 0xe0, 0x47, 0x7b, 0x67, 0xb4, 0x83,
   238  		0xb9, 0x7b, 0xdc, 0x53, 0xa7, 0x61, 0xb4, 0x63, 0x00, 0x83, 0x76, 0x3d, 0xfb, 0x0b, 0x70, 0x5f,
   239  		0x5f, 0x6a, 0xf4, 0x02, 0x4c, 0x36, 0x2d, 0xc3, 0xf2, 0xb1, 0xeb, 0xb8, 0x98, 0x44, 0x2c, 0xeb,
   240  		0x2a, 0xff, 0xaf, 0x23, 0xfb, 0xc4, 0xdc, 0x56, 0x58, 0x9b, 0xb1, 0x28, 0x13, 0xcd, 0x5e, 0xe1,
   241  		0x13, 0xe9, 0xd4, 0xdb, 0x23, 0xf2, 0xf5, 0xeb, 0xd7, 0xaf, 0xc7, 0x66, 0x3f, 0x3f, 0x0c, 0x93,
   242  		0xfd, 0xd6, 0x4c, 0xdf, 0xe5, 0x7b, 0x08, 0x86, 0xad, 0x66, 0x63, 0x1b, 0xbb, 0xd4, 0x49, 0x49,
   243  		0x85, 0x3f, 0xa1, 0x05, 0x48, 0x9a, 0xda, 0x36, 0x36, 0xf3, 0x89, 0x19, 0x69, 0x2e, 0x77, 0xec,
   244  		0xc9, 0x81, 0x56, 0xe5, 0xfc, 0x0a, 0x81, 0x28, 0x0c, 0x89, 0x9e, 0x83, 0x04, 0xdf, 0xa2, 0x09,
   245  		0xc3, 0x13, 0x83, 0x31, 0x90, 0xb5, 0xa4, 0x50, 0x1c, 0x7a, 0x10, 0xd2, 0xe4, 0x2f, 0x8b, 0x8d,
   246  		0x61, 0x6a, 0x73, 0x8a, 0x08, 0x48, 0x5c, 0xa0, 0x29, 0x48, 0xd1, 0x65, 0x52, 0xc3, 0x22, 0xb5,
   247  		0x05, 0xcf, 0x24, 0xb0, 0x6a, 0x78, 0x47, 0x6b, 0x9a, 0xbe, 0x7a, 0x45, 0x33, 0x9b, 0x98, 0x06,
   248  		0x7c, 0x5a, 0xc9, 0x72, 0xe1, 0x27, 0x89, 0x0c, 0x4d, 0x43, 0x86, 0xad, 0x2a, 0xc3, 0xaa, 0xe1,
   249  		0x97, 0xe8, 0xee, 0x99, 0x54, 0xd8, 0x42, 0xab, 0x10, 0x09, 0xe9, 0xfe, 0x92, 0x67, 0x5b, 0x22,
   250  		0x34, 0x69, 0x17, 0x44, 0x40, 0xbb, 0x3f, 0xdd, 0xbd, 0x71, 0x3f, 0xd4, 0x7f, 0x78, 0xdd, 0x31,
   251  		0x35, 0xfb, 0xed, 0x18, 0x24, 0xe8, 0x7e, 0x31, 0x06, 0x99, 0xcd, 0x8b, 0xeb, 0x65, 0x75, 0x69,
   252  		0x6d, 0xab, 0xb4, 0x52, 0x96, 0x25, 0x94, 0x03, 0xa0, 0x82, 0x73, 0x2b, 0x6b, 0x0b, 0x9b, 0x72,
   253  		0x2c, 0x78, 0xae, 0xac, 0x6e, 0x9e, 0x3a, 0x21, 0xc7, 0x03, 0xc0, 0x16, 0x13, 0x24, 0xc2, 0x0a,
   254  		0xc7, 0x8f, 0xc9, 0x49, 0x24, 0x43, 0x96, 0x11, 0x54, 0x5e, 0x28, 0x2f, 0x9d, 0x3a, 0x21, 0x0f,
   255  		0x77, 0x4a, 0x8e, 0x1f, 0x93, 0x47, 0xd0, 0x28, 0xa4, 0xa9, 0xa4, 0xb4, 0xb6, 0xb6, 0x22, 0xa7,
   256  		0x02, 0xce, 0x8d, 0x4d, 0xa5, 0xb2, 0xba, 0x2c, 0xa7, 0x03, 0xce, 0x65, 0x65, 0x6d, 0x6b, 0x5d,
   257  		0x86, 0x80, 0xa1, 0x5a, 0xde, 0xd8, 0x58, 0x58, 0x2e, 0xcb, 0x99, 0x40, 0xa3, 0x74, 0x71, 0xb3,
   258  		0xbc, 0x21, 0x67, 0x3b, 0xcc, 0x3a, 0x7e, 0x4c, 0x1e, 0x0d, 0xba, 0x28, 0xaf, 0x6e, 0x55, 0xe5,
   259  		0x1c, 0x1a, 0x87, 0x51, 0xd6, 0x85, 0x30, 0x62, 0xac, 0x4b, 0x74, 0xea, 0x84, 0x2c, 0xb7, 0x0d,
   260  		0x61, 0x2c, 0xe3, 0x1d, 0x82, 0x53, 0x27, 0x64, 0x34, 0xbb, 0x08, 0x49, 0x1a, 0x5d, 0x08, 0x41,
   261  		0x6e, 0x65, 0xa1, 0x54, 0x5e, 0x51, 0xd7, 0xd6, 0x37, 0x2b, 0x6b, 0xab, 0x0b, 0x2b, 0xb2, 0xd4,
   262  		0x96, 0x29, 0xe5, 0x4f, 0x6c, 0x55, 0x94, 0xf2, 0x92, 0x1c, 0x0b, 0xcb, 0xd6, 0xcb, 0x0b, 0x9b,
   263  		0xe5, 0x25, 0x39, 0x3e, 0xab, 0xc3, 0x64, 0xbf, 0x7d, 0xb2, 0xef, 0xca, 0x08, 0x4d, 0x71, 0x6c,
   264  		0x9f, 0x29, 0xa6, 0x5c, 0x3d, 0x53, 0xfc, 0xe3, 0x18, 0x4c, 0xf4, 0xc9, 0x15, 0x7d, 0x3b, 0x79,
   265  		0x1e, 0x92, 0x2c, 0x44, 0x59, 0xf6, 0x7c, 0xbc, 0x6f, 0xd2, 0xa1, 0x01, 0xdb, 0x93, 0x41, 0x29,
   266  		0x2e, 0x5c, 0x41, 0xc4, 0xf7, 0xa9, 0x20, 0x08, 0x45, 0xcf, 0x9e, 0xfe, 0xf3, 0x3d, 0x7b, 0x3a,
   267  		0x4b, 0x7b, 0xa7, 0x06, 0x49, 0x7b, 0x54, 0x76, 0xb0, 0xbd, 0x3d, 0xd9, 0x67, 0x6f, 0x3f, 0x0b,
   268  		0xe3, 0x3d, 0x44, 0x03, 0xef, 0xb1, 0x2f, 0x4b, 0x90, 0xdf, 0xcf, 0x39, 0x11, 0x3b, 0x5d, 0xac,
   269  		0x63, 0xa7, 0x3b, 0xdb, 0xed, 0xc1, 0xc3, 0xfb, 0x4f, 0x42, 0xcf, 0x5c, 0xbf, 0x2e, 0xc1, 0xa1,
   270  		0xfe, 0x95, 0x62, 0x5f, 0x1b, 0x9e, 0x83, 0xe1, 0x06, 0xf6, 0x77, 0x6d, 0x51, 0x2d, 0x3d, 0xda,
   271  		0x27, 0x07, 0x93, 0xe6, 0xee, 0xc9, 0xe6, 0xa8, 0x70, 0x12, 0x8f, 0xef, 0x57, 0xee, 0x31, 0x6b,
   272  		0x7a, 0x2c, 0xfd, 0x5c, 0x0c, 0xee, 0xeb, 0x4b, 0xde, 0xd7, 0xd0, 0x87, 0x00, 0x0c, 0xcb, 0x69,
   273  		0xfa, 0xac, 0x22, 0x62, 0x1b, 0x6c, 0x9a, 0x4a, 0xe8, 0xe6, 0x45, 0x36, 0xcf, 0xa6, 0x1f, 0xb4,
   274  		0xc7, 0x69, 0x3b, 0x30, 0x11, 0x55, 0x38, 0xd3, 0x36, 0x34, 0x41, 0x0d, 0x2d, 0xec, 0x33, 0xd2,
   275  		0x9e, 0xc0, 0x7c, 0x06, 0x64, 0xdd, 0x34, 0xb0, 0xe5, 0xab, 0x9e, 0xef, 0x62, 0xad, 0x61, 0x58,
   276  		0x75, 0x9a, 0x41, 0x52, 0xc5, 0xe4, 0x8e, 0x66, 0x7a, 0x58, 0x19, 0x63, 0xcd, 0x1b, 0xa2, 0x95,
   277  		0x20, 0x68, 0x00, 0xb9, 0x21, 0xc4, 0x70, 0x07, 0x82, 0x35, 0x07, 0x88, 0xd9, 0x5f, 0x4f, 0x43,
   278  		0x26, 0x54, 0x57, 0xa3, 0xc3, 0x90, 0xbd, 0xa4, 0x5d, 0xd1, 0x54, 0x71, 0x56, 0x62, 0x9e, 0xc8,
   279  		0x10, 0xd9, 0x3a, 0x3f, 0x2f, 0x3d, 0x03, 0x93, 0x54, 0xc5, 0x6e, 0xfa, 0xd8, 0x55, 0x75, 0x53,
   280  		0xf3, 0x3c, 0xea, 0xb4, 0x14, 0x55, 0x45, 0xa4, 0x6d, 0x8d, 0x34, 0x2d, 0x8a, 0x16, 0x74, 0x12,
   281  		0x26, 0x28, 0xa2, 0xd1, 0x34, 0x7d, 0xc3, 0x31, 0xb1, 0x4a, 0x4e, 0x6f, 0x1e, 0xcd, 0x24, 0x81,
   282  		0x65, 0xe3, 0x44, 0xa3, 0xca, 0x15, 0x88, 0x45, 0x1e, 0x5a, 0x82, 0x87, 0x28, 0xac, 0x8e, 0x2d,
   283  		0xec, 0x6a, 0x3e, 0x56, 0xf1, 0xa7, 0x9b, 0x9a, 0xe9, 0xa9, 0x9a, 0x55, 0x53, 0x77, 0x35, 0x6f,
   284  		0x37, 0x3f, 0x49, 0x08, 0x4a, 0xb1, 0xbc, 0xa4, 0x3c, 0x40, 0x14, 0x97, 0xb9, 0x5e, 0x99, 0xaa,
   285  		0x2d, 0x58, 0xb5, 0x8f, 0x6b, 0xde, 0x2e, 0x2a, 0xc2, 0x21, 0xca, 0xe2, 0xf9, 0xae, 0x61, 0xd5,
   286  		0x55, 0x7d, 0x17, 0xeb, 0x97, 0xd5, 0xa6, 0xbf, 0x73, 0x26, 0xff, 0x60, 0xb8, 0x7f, 0x6a, 0xe1,
   287  		0x06, 0xd5, 0x59, 0x24, 0x2a, 0x5b, 0xfe, 0xce, 0x19, 0xb4, 0x01, 0x59, 0x32, 0x19, 0x0d, 0xe3,
   288  		0x1a, 0x56, 0x77, 0x6c, 0x97, 0xa6, 0xc6, 0x5c, 0x9f, 0xad, 0x29, 0xe4, 0xc1, 0xf9, 0x35, 0x0e,
   289  		0xa8, 0xda, 0x35, 0x5c, 0x4c, 0x6e, 0xac, 0x97, 0xcb, 0x4b, 0x4a, 0x46, 0xb0, 0x9c, 0xb3, 0x5d,
   290  		0x12, 0x50, 0x75, 0x3b, 0x70, 0x70, 0x86, 0x05, 0x54, 0xdd, 0x16, 0xee, 0x3d, 0x09, 0x13, 0xba,
   291  		0xce, 0xc6, 0x6c, 0xe8, 0x2a, 0x3f, 0x63, 0x79, 0x79, 0xb9, 0xc3, 0x59, 0xba, 0xbe, 0xcc, 0x14,
   292  		0x78, 0x8c, 0x7b, 0xe8, 0x59, 0xb8, 0xaf, 0xed, 0xac, 0x30, 0x70, 0xbc, 0x67, 0x94, 0xdd, 0xd0,
   293  		0x93, 0x30, 0xe1, 0xb4, 0x7a, 0x81, 0xa8, 0xa3, 0x47, 0xa7, 0xd5, 0x0d, 0x3b, 0x0d, 0x93, 0xce,
   294  		0xae, 0xd3, 0x8b, 0x7b, 0x22, 0x8c, 0x43, 0xce, 0xae, 0xd3, 0x0d, 0x7c, 0x84, 0x1e, 0xb8, 0x5d,
   295  		0xac, 0x6b, 0x3e, 0xae, 0xe5, 0xef, 0x0f, 0xab, 0x87, 0x1a, 0xd0, 0x51, 0x90, 0x75, 0x5d, 0xc5,
   296  		0x96, 0xb6, 0x6d, 0x62, 0x55, 0x73, 0xb1, 0xa5, 0x79, 0xf9, 0xe9, 0xb0, 0x72, 0x4e, 0xd7, 0xcb,
   297  		0xb4, 0x75, 0x81, 0x36, 0xa2, 0x27, 0x60, 0xdc, 0xde, 0xbe, 0xa4, 0xb3, 0x90, 0x54, 0x1d, 0x17,
   298  		0xef, 0x18, 0x2f, 0xe5, 0x1f, 0xa6, 0xfe, 0x1d, 0x23, 0x0d, 0x34, 0x20, 0xd7, 0xa9, 0x18, 0x3d,
   299  		0x0e, 0xb2, 0xee, 0xed, 0x6a, 0xae, 0x43, 0xf7, 0x64, 0xcf, 0xd1, 0x74, 0x9c, 0x7f, 0x84, 0xa9,
   300  		0x32, 0xf9, 0xaa, 0x10, 0x93, 0x25, 0xe1, 0x5d, 0x35, 0x76, 0x7c, 0xc1, 0xf8, 0x18, 0x5b, 0x12,
   301  		0x54, 0xc6, 0xd9, 0xe6, 0x40, 0x26, 0xae, 0xe8, 0xe8, 0x78, 0x8e, 0xaa, 0xe5, 0x9c, 0x5d, 0x27,
   302  		0xdc, 0xef, 0x11, 0x18, 0x25, 0x9a, 0xed, 0x4e, 0x1f, 0x67, 0x05, 0x99, 0xb3, 0x1b, 0xea, 0xf1,
   303  		0x04, 0x1c, 0x22, 0x4a, 0x0d, 0xec, 0x6b, 0x35, 0xcd, 0xd7, 0x42, 0xda, 0x4f, 0x51, 0x6d, 0xe2,
   304  		0xf7, 0x2a, 0x6f, 0xec, 0xb0, 0xd3, 0x6d, 0x6e, 0xb7, 0x82, 0xc8, 0x7a, 0x9a, 0xd9, 0x49, 0x64,
   305  		0x22, 0xb6, 0x3e, 0xb0, 0xa2, 0x7b, 0xb6, 0x08, 0xd9, 0x70, 0xe0, 0xa3, 0x34, 0xb0, 0xd0, 0x97,
   306  		0x25, 0x52, 0x05, 0x2d, 0xae, 0x2d, 0x91, 0xfa, 0xe5, 0xc5, 0xb2, 0x1c, 0x23, 0x75, 0xd4, 0x4a,
   307  		0x65, 0xb3, 0xac, 0x2a, 0x5b, 0xab, 0x9b, 0x95, 0x6a, 0x59, 0x8e, 0x87, 0x0b, 0xf6, 0x1f, 0xc4,
   308  		0x20, 0xd7, 0x79, 0xf6, 0x42, 0x1f, 0x85, 0xfb, 0xc5, 0x45, 0x89, 0x87, 0x7d, 0xf5, 0xaa, 0xe1,
   309  		0xd2, 0xb5, 0xd8, 0xd0, 0x58, 0x5e, 0x0c, 0xa2, 0x61, 0x92, 0x6b, 0x6d, 0x60, 0xff, 0x82, 0xe1,
   310  		0x92, 0x95, 0xd6, 0xd0, 0x7c, 0xb4, 0x02, 0xd3, 0x96, 0xad, 0x7a, 0xbe, 0x66, 0xd5, 0x34, 0xb7,
   311  		0xa6, 0xb6, 0xaf, 0xa8, 0x54, 0x4d, 0xd7, 0xb1, 0xe7, 0xd9, 0x2c, 0x07, 0x06, 0x2c, 0x1f, 0xb1,
   312  		0xec, 0x0d, 0xae, 0xdc, 0x4e, 0x0e, 0x0b, 0x5c, 0xb5, 0x2b, 0x72, 0xe3, 0xfb, 0x45, 0xee, 0x83,
   313  		0x90, 0x6e, 0x68, 0x8e, 0x8a, 0x2d, 0xdf, 0x6d, 0xd1, 0x8a, 0x3b, 0xa5, 0xa4, 0x1a, 0x9a, 0x53,
   314  		0x26, 0xcf, 0x1f, 0xce, 0xc1, 0xe7, 0x5f, 0xe2, 0x90, 0x0d, 0x57, 0xdd, 0xe4, 0x10, 0xa3, 0xd3,
   315  		0x04, 0x25, 0xd1, 0x2d, 0xec, 0xc8, 0x5d, 0x6b, 0xf4, 0xf9, 0x45, 0x92, 0xb9, 0x8a, 0xc3, 0xac,
   316  		0x16, 0x56, 0x18, 0x92, 0x54, 0x0d, 0x24, 0xb4, 0x30, 0xab, 0x3d, 0x52, 0x0a, 0x7f, 0x42, 0xcb,
   317  		0x30, 0x7c, 0xc9, 0xa3, 0xdc, 0xc3, 0x94, 0xfb, 0xe1, 0xbb, 0x73, 0x9f, 0xdf, 0xa0, 0xe4, 0xe9,
   318  		0xf3, 0x1b, 0xea, 0xea, 0x9a, 0x52, 0x5d, 0x58, 0x51, 0x38, 0x1c, 0x3d, 0x00, 0x09, 0x53, 0xbb,
   319  		0xd6, 0xea, 0xcc, 0x71, 0x54, 0x34, 0xa8, 0xe3, 0x1f, 0x80, 0xc4, 0x55, 0xac, 0x5d, 0xee, 0xcc,
   320  		0x2c, 0x54, 0xf4, 0x01, 0x86, 0xfe, 0x51, 0x48, 0x52, 0x7f, 0x21, 0x00, 0xee, 0x31, 0x79, 0x08,
   321  		0xa5, 0x20, 0xb1, 0xb8, 0xa6, 0x90, 0xf0, 0x97, 0x21, 0xcb, 0xa4, 0xea, 0x7a, 0xa5, 0xbc, 0x58,
   322  		0x96, 0x63, 0xb3, 0x27, 0x61, 0x98, 0x39, 0x81, 0x2c, 0x8d, 0xc0, 0x0d, 0xf2, 0x10, 0x7f, 0xe4,
   323  		0x1c, 0x92, 0x68, 0xdd, 0xaa, 0x96, 0xca, 0x8a, 0x1c, 0x0b, 0x4f, 0xaf, 0x07, 0xd9, 0x70, 0xc1,
   324  		0xfd, 0xe1, 0xc4, 0xd4, 0xf7, 0x24, 0xc8, 0x84, 0x0a, 0x68, 0x52, 0xf9, 0x68, 0xa6, 0x69, 0x5f,
   325  		0x55, 0x35, 0xd3, 0xd0, 0x3c, 0x1e, 0x14, 0x40, 0x45, 0x0b, 0x44, 0x32, 0xe8, 0xa4, 0x7d, 0x28,
   326  		0xc6, 0xbf, 0x26, 0x81, 0xdc, 0x5d, 0xbb, 0x76, 0x19, 0x28, 0xfd, 0x4c, 0x0d, 0x7c, 0x55, 0x82,
   327  		0x5c, 0x67, 0xc1, 0xda, 0x65, 0xde, 0xe1, 0x9f, 0xa9, 0x79, 0x6f, 0xc6, 0x60, 0xb4, 0xa3, 0x4c,
   328  		0x1d, 0xd4, 0xba, 0x4f, 0xc3, 0xb8, 0x51, 0xc3, 0x0d, 0xc7, 0xf6, 0xb1, 0xa5, 0xb7, 0x54, 0x13,
   329  		0x5f, 0xc1, 0x66, 0x7e, 0x96, 0x6e, 0x14, 0x47, 0xef, 0x5e, 0x08, 0xcf, 0x57, 0xda, 0xb8, 0x15,
   330  		0x02, 0x2b, 0x4e, 0x54, 0x96, 0xca, 0xd5, 0xf5, 0xb5, 0xcd, 0xf2, 0xea, 0xe2, 0x45, 0x75, 0x6b,
   331  		0xf5, 0xff, 0xaf, 0xae, 0x5d, 0x58, 0x55, 0x64, 0xa3, 0x4b, 0xed, 0x03, 0x5c, 0xea, 0xeb, 0x20,
   332  		0x77, 0x1b, 0x85, 0xee, 0x87, 0x7e, 0x66, 0xc9, 0x43, 0x68, 0x02, 0xc6, 0x56, 0xd7, 0xd4, 0x8d,
   333  		0xca, 0x52, 0x59, 0x2d, 0x9f, 0x3b, 0x57, 0x5e, 0xdc, 0xdc, 0x60, 0x57, 0x1b, 0x81, 0xf6, 0x66,
   334  		0xe7, 0xa2, 0x7e, 0x25, 0x0e, 0x13, 0x7d, 0x2c, 0x41, 0x0b, 0xfc, 0x50, 0xc2, 0xce, 0x49, 0x4f,
   335  		0x0f, 0x62, 0xfd, 0x3c, 0xa9, 0x0a, 0xd6, 0x35, 0xd7, 0xe7, 0x67, 0x98, 0xc7, 0x81, 0x78, 0xc9,
   336  		0xf2, 0x8d, 0x1d, 0x03, 0xbb, 0xfc, 0x26, 0x88, 0x9d, 0x54, 0xc6, 0xda, 0x72, 0x76, 0x19, 0xf4,
   337  		0x14, 0x20, 0xc7, 0xf6, 0x0c, 0xdf, 0xb8, 0x82, 0x55, 0xc3, 0x12, 0xd7, 0x46, 0xe4, 0xe4, 0x92,
   338  		0x50, 0x64, 0xd1, 0x52, 0xb1, 0xfc, 0x40, 0xdb, 0xc2, 0x75, 0xad, 0x4b, 0x9b, 0x6c, 0xe0, 0x71,
   339  		0x45, 0x16, 0x2d, 0x81, 0xf6, 0x61, 0xc8, 0xd6, 0xec, 0x26, 0x29, 0xe7, 0x98, 0x1e, 0xc9, 0x17,
   340  		0x92, 0x92, 0x61, 0xb2, 0x40, 0x85, 0x17, 0xea, 0xed, 0xfb, 0xaa, 0xac, 0x92, 0x61, 0x32, 0xa6,
   341  		0xf2, 0x18, 0x8c, 0x69, 0xf5, 0xba, 0x4b, 0xc8, 0x05, 0x11, 0x3b, 0x7a, 0xe4, 0x02, 0x31, 0x55,
   342  		0x9c, 0x3a, 0x0f, 0x29, 0xe1, 0x07, 0x92, 0x92, 0x89, 0x27, 0x54, 0x87, 0x9d, 0xa7, 0x63, 0x73,
   343  		0x69, 0x25, 0x65, 0x89, 0xc6, 0xc3, 0x90, 0x35, 0x3c, 0xb5, 0x7d, 0xfd, 0x1e, 0x9b, 0x89, 0xcd,
   344  		0xa5, 0x94, 0x8c, 0xe1, 0x05, 0x57, 0x97, 0xb3, 0xaf, 0xc7, 0x20, 0xd7, 0xf9, 0xfa, 0x00, 0x2d,
   345  		0x41, 0xca, 0xb4, 0x75, 0x8d, 0x86, 0x16, 0x7b, 0x77, 0x35, 0x17, 0xf1, 0xc6, 0x61, 0x7e, 0x85,
   346  		0xeb, 0x2b, 0x01, 0x72, 0xea, 0x9f, 0x24, 0x48, 0x09, 0x31, 0x3a, 0x04, 0x09, 0x47, 0xf3, 0x77,
   347  		0x29, 0x5d, 0xb2, 0x14, 0x93, 0x25, 0x85, 0x3e, 0x13, 0xb9, 0xe7, 0x68, 0x16, 0x0d, 0x01, 0x2e,
   348  		0x27, 0xcf, 0x64, 0x5e, 0x4d, 0xac, 0xd5, 0xe8, 0xb9, 0xc6, 0x6e, 0x34, 0xb0, 0xe5, 0x7b, 0x62,
   349  		0x5e, 0xb9, 0x7c, 0x91, 0x8b, 0xd1, 0x93, 0x30, 0xee, 0xbb, 0x9a, 0x61, 0x76, 0xe8, 0x26, 0xa8,
   350  		0xae, 0x2c, 0x1a, 0x02, 0xe5, 0x22, 0x3c, 0x20, 0x78, 0x6b, 0xd8, 0xd7, 0xf4, 0x5d, 0x5c, 0x6b,
   351  		0x83, 0x86, 0xe9, 0xfd, 0xc5, 0xfd, 0x5c, 0x61, 0x89, 0xb7, 0x0b, 0xec, 0xec, 0x8f, 0x24, 0x18,
   352  		0x17, 0x27, 0xb1, 0x5a, 0xe0, 0xac, 0x2a, 0x80, 0x66, 0x59, 0xb6, 0x1f, 0x76, 0x57, 0x6f, 0x28,
   353  		0xf7, 0xe0, 0xe6, 0x17, 0x02, 0x90, 0x12, 0x22, 0x98, 0x6a, 0x00, 0xb4, 0x5b, 0xf6, 0x75, 0xdb,
   354  		0x34, 0x64, 0xf8, 0xbb, 0x21, 0xfa, 0x82, 0x91, 0x9d, 0xdd, 0x81, 0x89, 0xc8, 0x91, 0x0d, 0x4d,
   355  		0x42, 0x72, 0x1b, 0xd7, 0x0d, 0x8b, 0xdf, 0xf8, 0xb2, 0x07, 0x71, 0xc3, 0x92, 0x08, 0x6e, 0x58,
   356  		0x4a, 0x9f, 0x82, 0x09, 0xdd, 0x6e, 0x74, 0x9b, 0x5b, 0x92, 0xbb, 0xee, 0x0f, 0xbc, 0x8f, 0x4b,
   357  		0x2f, 0x42, 0xbb, 0xc4, 0x7c, 0x4f, 0x92, 0xbe, 0x1c, 0x8b, 0x2f, 0xaf, 0x97, 0xbe, 0x16, 0x9b,
   358  		0x5a, 0x66, 0xd0, 0x75, 0x31, 0x52, 0x05, 0xef, 0x98, 0x58, 0x27, 0xd6, 0xc3, 0x57, 0x9e, 0x84,
   359  		0xa7, 0xeb, 0x86, 0xbf, 0xdb, 0xdc, 0x9e, 0xd7, 0xed, 0xc6, 0xd1, 0xba, 0x5d, 0xb7, 0xdb, 0xef,
   360  		0x54, 0xc9, 0x13, 0x7d, 0xa0, 0xbf, 0xf8, 0x7b, 0xd5, 0x74, 0x20, 0x9d, 0x8a, 0x7c, 0x09, 0x5b,
   361  		0x5c, 0x85, 0x09, 0xae, 0xac, 0xd2, 0x17, 0x3b, 0xec, 0x78, 0x82, 0xee, 0x7a, 0x39, 0x96, 0xff,
   362  		0xe6, 0x5b, 0x34, 0x5d, 0x2b, 0xe3, 0x1c, 0x4a, 0xda, 0xd8, 0x09, 0xa6, 0xa8, 0xc0, 0x7d, 0x1d,
   363  		0x7c, 0x6c, 0x69, 0x62, 0x37, 0x82, 0xf1, 0x07, 0x9c, 0x71, 0x22, 0xc4, 0xb8, 0xc1, 0xa1, 0xc5,
   364  		0x45, 0x18, 0x3d, 0x08, 0xd7, 0x3f, 0x70, 0xae, 0x2c, 0x0e, 0x93, 0x2c, 0xc3, 0x18, 0x25, 0xd1,
   365  		0x9b, 0x9e, 0x6f, 0x37, 0xe8, 0xbe, 0x77, 0x77, 0x9a, 0x7f, 0x7c, 0x8b, 0xad, 0x95, 0x1c, 0x81,
   366  		0x2d, 0x06, 0xa8, 0x62, 0x11, 0xe8, 0xbb, 0xac, 0x1a, 0xd6, 0xcd, 0x08, 0x86, 0x1b, 0xdc, 0x90,
   367  		0x40, 0xbf, 0xf8, 0x49, 0x98, 0x24, 0xbf, 0xe9, 0xb6, 0x14, 0xb6, 0x24, 0xfa, 0x26, 0x2d, 0xff,
   368  		0xa3, 0x97, 0xd9, 0x72, 0x9c, 0x08, 0x08, 0x42, 0x36, 0x85, 0x66, 0xb1, 0x8e, 0x7d, 0x1f, 0xbb,
   369  		0x9e, 0xaa, 0x99, 0xfd, 0xcc, 0x0b, 0x5d, 0x45, 0xe4, 0xbf, 0xf0, 0x4e, 0xe7, 0x2c, 0x2e, 0x33,
   370  		0xe4, 0x82, 0x69, 0x16, 0xb7, 0xe0, 0xfe, 0x3e, 0x51, 0x31, 0x00, 0xe7, 0x2b, 0x9c, 0x73, 0xb2,
   371  		0x27, 0x32, 0x08, 0xed, 0x3a, 0x08, 0x79, 0x30, 0x97, 0x03, 0x70, 0xfe, 0x21, 0xe7, 0x44, 0x1c,
   372  		0x2b, 0xa6, 0x94, 0x30, 0x9e, 0x87, 0xf1, 0x2b, 0xd8, 0xdd, 0xb6, 0x3d, 0x7e, 0xfd, 0x33, 0x00,
   373  		0xdd, 0xab, 0x9c, 0x6e, 0x8c, 0x03, 0xe9, 0x7d, 0x10, 0xe1, 0x7a, 0x16, 0x52, 0x3b, 0x9a, 0x8e,
   374  		0x07, 0xa0, 0xf8, 0x22, 0xa7, 0x18, 0x21, 0xfa, 0x04, 0xba, 0x00, 0xd9, 0xba, 0xcd, 0x33, 0x53,
   375  		0x34, 0xfc, 0x35, 0x0e, 0xcf, 0x08, 0x0c, 0xa7, 0x70, 0x6c, 0xa7, 0x69, 0x92, 0xb4, 0x15, 0x4d,
   376  		0xf1, 0x47, 0x82, 0x42, 0x60, 0x38, 0xc5, 0x01, 0xdc, 0xfa, 0xc7, 0x82, 0xc2, 0x0b, 0xf9, 0xf3,
   377  		0x79, 0xc8, 0xd8, 0x96, 0xd9, 0xb2, 0xad, 0x41, 0x8c, 0xf8, 0x12, 0x67, 0x00, 0x0e, 0x21, 0x04,
   378  		0x67, 0x21, 0x3d, 0xe8, 0x44, 0xfc, 0xe9, 0x3b, 0x62, 0x79, 0x88, 0x19, 0x58, 0x86, 0x31, 0xb1,
   379  		0x41, 0x19, 0xb6, 0x35, 0x00, 0xc5, 0x57, 0x38, 0x45, 0x2e, 0x04, 0xe3, 0xc3, 0xf0, 0xb1, 0xe7,
   380  		0xd7, 0xf1, 0x20, 0x24, 0xaf, 0x8b, 0x61, 0x70, 0x08, 0x77, 0xe5, 0x36, 0xb6, 0xf4, 0xdd, 0xc1,
   381  		0x18, 0xbe, 0x2a, 0x5c, 0x29, 0x30, 0x84, 0x62, 0x11, 0x46, 0x1b, 0x9a, 0xeb, 0xed, 0x6a, 0xe6,
   382  		0x40, 0xd3, 0xf1, 0x67, 0x9c, 0x23, 0x1b, 0x80, 0xb8, 0x47, 0x9a, 0xd6, 0x41, 0x68, 0xbe, 0x26,
   383  		0x3c, 0x12, 0x82, 0xf1, 0xa5, 0xe7, 0xf9, 0xf4, 0xae, 0xec, 0x20, 0x6c, 0x7f, 0x2e, 0x96, 0x1e,
   384  		0xc3, 0x56, 0xc3, 0x8c, 0x67, 0x21, 0xed, 0x19, 0xd7, 0x06, 0xa2, 0xf9, 0x0b, 0x31, 0xd3, 0x14,
   385  		0x40, 0xc0, 0x17, 0xe1, 0x81, 0xbe, 0x69, 0x62, 0x00, 0xb2, 0xbf, 0xe4, 0x64, 0x87, 0xfa, 0xa4,
   386  		0x0a, 0xbe, 0x25, 0x1c, 0x94, 0xf2, 0xaf, 0xc4, 0x96, 0x80, 0xbb, 0xb8, 0xd6, 0xc9, 0x59, 0xc1,
   387  		0xd3, 0x76, 0x0e, 0xe6, 0xb5, 0xaf, 0x0b, 0xaf, 0x31, 0x6c, 0x87, 0xd7, 0x36, 0xe1, 0x10, 0x67,
   388  		0x3c, 0xd8, 0xbc, 0x7e, 0x43, 0x6c, 0xac, 0x0c, 0xbd, 0xd5, 0x39, 0xbb, 0x9f, 0x82, 0xa9, 0xc0,
   389  		0x9d, 0xa2, 0x28, 0xf5, 0xd4, 0x86, 0xe6, 0x0c, 0xc0, 0xfc, 0x4d, 0xce, 0x2c, 0x76, 0xfc, 0xa0,
   390  		0xaa, 0xf5, 0xaa, 0x9a, 0x43, 0xc8, 0x5f, 0x80, 0xbc, 0x20, 0x6f, 0x5a, 0x2e, 0xd6, 0xed, 0xba,
   391  		0x65, 0x5c, 0xc3, 0xb5, 0x01, 0xa8, 0xff, 0xba, 0x6b, 0xaa, 0xb6, 0x42, 0x70, 0xc2, 0x5c, 0x01,
   392  		0x39, 0xa8, 0x55, 0x54, 0xa3, 0xe1, 0xd8, 0xae, 0x1f, 0xc1, 0xf8, 0x37, 0x62, 0xa6, 0x02, 0x5c,
   393  		0x85, 0xc2, 0x8a, 0x65, 0xc8, 0xd1, 0xc7, 0x41, 0x43, 0xf2, 0x6f, 0x39, 0xd1, 0x68, 0x1b, 0xc5,
   394  		0x37, 0x0e, 0xdd, 0x6e, 0x38, 0x9a, 0x3b, 0xc8, 0xfe, 0xf7, 0x2d, 0xb1, 0x71, 0x70, 0x08, 0xdf,
   395  		0x38, 0xfc, 0x96, 0x83, 0x49, 0xb6, 0x1f, 0x80, 0xe1, 0xdb, 0x62, 0xe3, 0x10, 0x18, 0x4e, 0x21,
   396  		0x0a, 0x86, 0x01, 0x28, 0xfe, 0x4e, 0x50, 0x08, 0x0c, 0xa1, 0xf8, 0x44, 0x3b, 0xd1, 0xba, 0xb8,
   397  		0x6e, 0x78, 0xbe, 0xcb, 0x4a, 0xe1, 0xbb, 0x53, 0x7d, 0xe7, 0x9d, 0xce, 0x22, 0x4c, 0x09, 0x41,
   398  		0xc9, 0x4e, 0xc4, 0xaf, 0x50, 0xe9, 0x49, 0x29, 0xda, 0xb0, 0xef, 0x8a, 0x9d, 0x28, 0x04, 0x23,
   399  		0xb6, 0x85, 0x2a, 0x44, 0xe2, 0x76, 0x9d, 0x9c, 0x0f, 0x06, 0xa0, 0xfb, 0x5e, 0x97, 0x71, 0x1b,
   400  		0x02, 0x4b, 0x38, 0x43, 0xf5, 0x4f, 0xd3, 0xba, 0x8c, 0x5b, 0x03, 0x45, 0xe7, 0xdf, 0x77, 0xd5,
   401  		0x3f, 0x5b, 0x0c, 0xc9, 0xf6, 0x90, 0xb1, 0xae, 0x7a, 0x0a, 0x45, 0x7d, 0x05, 0x94, 0xff, 0xc5,
   402  		0xdb, 0x7c, 0xbc, 0x9d, 0xe5, 0x54, 0x71, 0x85, 0x04, 0x79, 0x67, 0xd1, 0x13, 0x4d, 0xf6, 0xf2,
   403  		0xed, 0x20, 0xce, 0x3b, 0x6a, 0x9e, 0xe2, 0x39, 0x18, 0xed, 0x28, 0x78, 0xa2, 0xa9, 0x7e, 0x89,
   404  		0x53, 0x65, 0xc3, 0xf5, 0x4e, 0xf1, 0x24, 0x24, 0x48, 0xf1, 0x12, 0x0d, 0xff, 0x65, 0x0e, 0xa7,
   405  		0xea, 0xc5, 0x8f, 0x41, 0x4a, 0x14, 0x2d, 0xd1, 0xd0, 0x5f, 0xe1, 0xd0, 0x00, 0x42, 0xe0, 0xa2,
   406  		0x60, 0x89, 0x86, 0x7f, 0x56, 0xc0, 0x05, 0x84, 0xc0, 0x07, 0x77, 0xe1, 0xf7, 0x7f, 0x2d, 0xc1,
   407  		0x93, 0x8e, 0xf0, 0xdd, 0x59, 0x18, 0xe1, 0x95, 0x4a, 0x34, 0xfa, 0x73, 0xbc, 0x73, 0x81, 0x28,
   408  		0x9e, 0x86, 0xe4, 0x80, 0x0e, 0xff, 0x0d, 0x0e, 0x65, 0xfa, 0xc5, 0x45, 0xc8, 0x84, 0xaa, 0x93,
   409  		0x68, 0xf8, 0x6f, 0x72, 0x78, 0x18, 0x45, 0x4c, 0xe7, 0xd5, 0x49, 0x34, 0xc1, 0x6f, 0x09, 0xd3,
   410  		0x39, 0x82, 0xb8, 0x4d, 0x14, 0x26, 0xd1, 0xe8, 0xdf, 0x16, 0x5e, 0x17, 0x90, 0xe2, 0xf3, 0x90,
   411  		0x0e, 0x92, 0x4d, 0x34, 0xfe, 0x77, 0x38, 0xbe, 0x8d, 0x21, 0x1e, 0x08, 0x25, 0xbb, 0x68, 0x8a,
   412  		0xdf, 0x15, 0x1e, 0x08, 0xa1, 0xc8, 0x32, 0xea, 0x2e, 0x60, 0xa2, 0x99, 0x7e, 0x4f, 0x2c, 0xa3,
   413  		0xae, 0xfa, 0x85, 0xcc, 0x26, 0xdd, 0xf3, 0xa3, 0x29, 0x7e, 0x5f, 0xcc, 0x26, 0xd5, 0x27, 0x66,
   414  		0x74, 0x57, 0x04, 0xd1, 0x1c, 0x7f, 0x20, 0xcc, 0xe8, 0x2a, 0x08, 0x8a, 0xeb, 0x80, 0x7a, 0xab,
   415  		0x81, 0x68, 0xbe, 0xcf, 0x73, 0xbe, 0xf1, 0x9e, 0x62, 0xa0, 0x78, 0x01, 0x0e, 0xf5, 0xaf, 0x04,
   416  		0xa2, 0x59, 0xbf, 0x70, 0xbb, 0xeb, 0xec, 0x16, 0x2e, 0x04, 0x8a, 0x9b, 0xed, 0x94, 0x12, 0xae,
   417  		0x02, 0xa2, 0x69, 0x5f, 0xb9, 0xdd, 0xb9, 0x71, 0x87, 0x8b, 0x80, 0xe2, 0x02, 0x40, 0x3b, 0x01,
   418  		0x47, 0x73, 0xbd, 0xca, 0xb9, 0x42, 0x20, 0xb2, 0x34, 0x78, 0xfe, 0x8d, 0xc6, 0x7f, 0x51, 0x2c,
   419  		0x0d, 0x8e, 0x20, 0x4b, 0x43, 0xa4, 0xde, 0x68, 0xf4, 0x6b, 0x62, 0x69, 0x08, 0x08, 0x89, 0xec,
   420  		0x50, 0x76, 0x8b, 0x66, 0xf8, 0x92, 0x88, 0xec, 0x10, 0xaa, 0xb8, 0x0a, 0xe3, 0x3d, 0x09, 0x31,
   421  		0x9a, 0xea, 0xcb, 0x9c, 0x4a, 0xee, 0xce, 0x87, 0xe1, 0xe4, 0xc5, 0x93, 0x61, 0x34, 0xdb, 0x9f,
   422  		0x74, 0x25, 0x2f, 0x9e, 0x0b, 0x8b, 0x67, 0x21, 0x65, 0x35, 0x4d, 0x93, 0x2c, 0x1e, 0x74, 0xf7,
   423  		0x2f, 0xf7, 0xf2, 0x3f, 0x79, 0x9f, 0x7b, 0x47, 0x00, 0x8a, 0x27, 0x21, 0x89, 0x1b, 0xdb, 0xb8,
   424  		0x16, 0x85, 0xfc, 0xb7, 0xf7, 0xc5, 0x86, 0x49, 0xb4, 0x8b, 0xcf, 0x03, 0xb0, 0xab, 0x11, 0xfa,
   425  		0xda, 0x2f, 0x02, 0xfb, 0xef, 0xef, 0xf3, 0x6f, 0x6a, 0xda, 0x90, 0x36, 0x01, 0xfb, 0x42, 0xe7,
   426  		0xee, 0x04, 0xef, 0x74, 0x12, 0xd0, 0x19, 0x79, 0x16, 0x46, 0x2e, 0x79, 0xb6, 0xe5, 0x6b, 0xf5,
   427  		0x28, 0xf4, 0x7f, 0x70, 0xb4, 0xd0, 0x27, 0x0e, 0x6b, 0xd8, 0x2e, 0xf6, 0xb5, 0xba, 0x17, 0x85,
   428  		0xfd, 0x4f, 0x8e, 0x0d, 0x00, 0x04, 0xac, 0x6b, 0x9e, 0x3f, 0xc8, 0xb8, 0xff, 0x4b, 0x80, 0x05,
   429  		0x80, 0x18, 0x4d, 0x7e, 0x5f, 0xc6, 0xad, 0x28, 0xec, 0xbb, 0xc2, 0x68, 0xae, 0x5f, 0xfc, 0x18,
   430  		0xa4, 0xc9, 0x4f, 0xf6, 0xa1, 0x5c, 0x04, 0xf8, 0xbf, 0x39, 0xb8, 0x8d, 0x20, 0x3d, 0x7b, 0x7e,
   431  		0xcd, 0x37, 0xa2, 0x9d, 0xfd, 0x3f, 0x7c, 0xa6, 0x85, 0x7e, 0x71, 0x01, 0x32, 0x9e, 0x5f, 0xab,
   432  		0x35, 0x79, 0x7d, 0x1a, 0x01, 0xff, 0xdf, 0xf7, 0x83, 0x2b, 0x8b, 0x00, 0x43, 0x66, 0xfb, 0xea,
   433  		0x65, 0xdf, 0xb1, 0xe9, 0x6b, 0x8e, 0x28, 0x86, 0xdb, 0x9c, 0x21, 0x04, 0x29, 0x95, 0xfb, 0x5f,
   434  		0xdf, 0xc2, 0xb2, 0xbd, 0x6c, 0xb3, 0x8b, 0xdb, 0x17, 0x67, 0xa3, 0x6f, 0x60, 0xe1, 0xeb, 0x63,
   435  		0x30, 0xa5, 0xdb, 0x8d, 0x6d, 0xdb, 0x3b, 0xba, 0x6d, 0xfb, 0xbb, 0x47, 0xc5, 0xc4, 0xf0, 0x5b,
   436  		0xd9, 0x60, 0xa2, 0xa6, 0x0e, 0x76, 0x9d, 0x3b, 0xfb, 0x93, 0x51, 0x48, 0x2d, 0x6a, 0x9e, 0xaf,
   437  		0x5d, 0xd5, 0x5a, 0xe8, 0x11, 0x48, 0x55, 0x2c, 0xff, 0xf8, 0xb1, 0x75, 0xdf, 0xa5, 0x6f, 0x24,
   438  		0xe3, 0xa5, 0xf4, 0x9d, 0x9b, 0xd3, 0x49, 0x83, 0xc8, 0x94, 0xa0, 0x09, 0x1d, 0x81, 0x24, 0xfd,
   439  		0x4d, 0x2f, 0xb5, 0xe3, 0xa5, 0xd1, 0x1b, 0x37, 0xa7, 0x87, 0xda, 0x7a, 0xac, 0x0d, 0x5d, 0x84,
   440  		0x4c, 0xb5, 0xb5, 0x65, 0x58, 0xfe, 0xa9, 0x13, 0x84, 0x8e, 0x38, 0x26, 0x51, 0x3a, 0x7d, 0xe7,
   441  		0xe6, 0xf4, 0xf1, 0x7d, 0x0d, 0x24, 0x15, 0x45, 0x7b, 0x60, 0x02, 0x4d, 0x3f, 0x45, 0x0e, 0x73,
   442  		0xa1, 0x0b, 0x90, 0x12, 0x8f, 0xec, 0xe5, 0x50, 0xe9, 0x2c, 0x37, 0xe1, 0x9e, 0xb8, 0x03, 0x32,
   443  		0xf4, 0x73, 0x90, 0xad, 0xb6, 0xce, 0x99, 0xb6, 0xc6, 0x7d, 0x90, 0x9c, 0x91, 0xe6, 0x62, 0xa5,
   444  		0x33, 0x77, 0x6e, 0x4e, 0x9f, 0x18, 0x98, 0x98, 0xc3, 0x29, 0x73, 0x07, 0x1b, 0x7a, 0x11, 0xd2,
   445  		0xc1, 0x33, 0x7d, 0xfd, 0x14, 0x2b, 0x7d, 0x94, 0xdb, 0x7d, 0x6f, 0xf4, 0x6d, 0xba, 0x90, 0xe5,
   446  		0xcc, 0xdd, 0x23, 0x33, 0xd2, 0x9c, 0x74, 0x2f, 0x96, 0x73, 0x9f, 0x74, 0xb0, 0x85, 0x2c, 0x3f,
   447  		0x75, 0x82, 0xbe, 0xef, 0x92, 0xee, 0xd5, 0x72, 0x4e, 0xdf, 0xa6, 0x43, 0xe7, 0x61, 0xa4, 0xda,
   448  		0x2a, 0xb5, 0x7c, 0xec, 0xd1, 0x2f, 0xdc, 0xb2, 0xa5, 0x67, 0xee, 0xdc, 0x9c, 0x7e, 0x6a, 0x40,
   449  		0x56, 0x8a, 0x53, 0x04, 0x01, 0x9a, 0x81, 0xcc, 0xaa, 0xed, 0x36, 0x34, 0x93, 0xf1, 0x01, 0x7b,
   450  		0x7f, 0x17, 0x12, 0xa1, 0x2d, 0x32, 0x12, 0x36, 0xdb, 0x1e, 0xfd, 0xe7, 0xa8, 0x9f, 0x22, 0x26,
   451  		0xdb, 0x4c, 0xc8, 0x80, 0x64, 0xb5, 0x55, 0xd5, 0x9c, 0x7c, 0x96, 0xbe, 0x5c, 0x7a, 0x68, 0x3e,
   452  		0x40, 0x88, 0xb5, 0x35, 0x4f, 0xdb, 0xe9, 0x57, 0x38, 0xa5, 0x13, 0x77, 0x6e, 0x4e, 0x3f, 0x33,
   453  		0x70, 0x8f, 0x55, 0xcd, 0xa1, 0xdd, 0xb1, 0x1e, 0xd0, 0xb7, 0x24, 0xb2, 0xb0, 0xd8, 0xed, 0x3c,
   454  		0xe9, 0x71, 0x94, 0xf6, 0x78, 0xa4, 0x6f, 0x8f, 0x81, 0x16, 0xeb, 0xd7, 0xfa, 0xcc, 0x1b, 0x07,
   455  		0x18, 0x29, 0x3b, 0x14, 0x92, 0xae, 0x7f, 0xf5, 0x8d, 0x7b, 0x5e, 0xb4, 0x81, 0x05, 0xe8, 0x65,
   456  		0x09, 0x46, 0xab, 0xad, 0x55, 0x9e, 0xbd, 0x89, 0xe5, 0x39, 0xfe, 0x2f, 0x34, 0xfd, 0x2c, 0x0f,
   457  		0xe9, 0x31, 0xdb, 0x4f, 0x7d, 0xe6, 0x8d, 0xe9, 0x63, 0x03, 0x1b, 0x41, 0xb7, 0x20, 0x6a, 0x43,
   458  		0x67, 0x9f, 0xe8, 0xb3, 0xd4, 0x8a, 0x32, 0xa9, 0x04, 0x6a, 0xb8, 0x46, 0xac, 0x18, 0xbb, 0x8b,
   459  		0x15, 0x21, 0x3d, 0x66, 0x45, 0x91, 0x44, 0xfd, 0xbd, 0x5b, 0x12, 0xe2, 0x43, 0x6b, 0x30, 0xcc,
   460  		0x3c, 0x4c, 0xbf, 0xae, 0x4c, 0x1f, 0x30, 0x0c, 0xdb, 0x93, 0xa3, 0x70, 0x9a, 0xa9, 0x33, 0x00,
   461  		0xed, 0x18, 0x43, 0x32, 0xc4, 0x2f, 0xe3, 0x16, 0xff, 0x84, 0x96, 0xfc, 0x44, 0x93, 0xed, 0x6f,
   462  		0xdc, 0xa5, 0xb9, 0x04, 0xff, 0x70, 0xbd, 0x18, 0x3b, 0x23, 0x4d, 0x3d, 0x07, 0x72, 0x77, 0xac,
   463  		0x1c, 0x08, 0xaf, 0x00, 0xea, 0x9d, 0xb1, 0x30, 0x43, 0x92, 0x31, 0x3c, 0x1a, 0x66, 0xc8, 0x1c,
   464  		0x93, 0xdb, 0x3e, 0xbf, 0x60, 0x98, 0x9e, 0x6d, 0xf5, 0x70, 0x76, 0xfb, 0xff, 0xa7, 0xe3, 0x9c,
   465  		0x2d, 0xc0, 0x30, 0x13, 0x92, 0xb1, 0x54, 0x68, 0xfa, 0xa0, 0x59, 0x4e, 0x61, 0x0f, 0xa5, 0x95,
   466  		0x1b, 0xb7, 0x0a, 0x43, 0x3f, 0xbc, 0x55, 0x18, 0xfa, 0xe7, 0x5b, 0x85, 0xa1, 0x37, 0x6f, 0x15,
   467  		0xa4, 0xb7, 0x6f, 0x15, 0xa4, 0x77, 0x6f, 0x15, 0xa4, 0xf7, 0x6e, 0x15, 0xa4, 0xeb, 0x7b, 0x05,
   468  		0xe9, 0xab, 0x7b, 0x05, 0xe9, 0x1b, 0x7b, 0x05, 0xe9, 0x3b, 0x7b, 0x05, 0xe9, 0xfb, 0x7b, 0x05,
   469  		0xe9, 0xc6, 0x5e, 0x41, 0xfa, 0xe1, 0x5e, 0x41, 0x7a, 0x73, 0xaf, 0x20, 0xbd, 0xbd, 0x57, 0x18,
   470  		0x7a, 0x77, 0xaf, 0x20, 0xbd, 0xb7, 0x57, 0x18, 0xba, 0xfe, 0xe3, 0xc2, 0xd0, 0xff, 0x05, 0x00,
   471  		0x00, 0xff, 0xff, 0x0e, 0x10, 0x9c, 0x56, 0xa6, 0x3a, 0x00, 0x00,
   472  	}
   473  	r := bytes.NewReader(gzipped)
   474  	gzipr, err := compress_gzip.NewReader(r)
   475  	if err != nil {
   476  		panic(err)
   477  	}
   478  	ungzipped, err := io_ioutil.ReadAll(gzipr)
   479  	if err != nil {
   480  		panic(err)
   481  	}
   482  	if err := github_com_gogo_protobuf_proto.Unmarshal(ungzipped, d); err != nil {
   483  		panic(err)
   484  	}
   485  	return d
   486  }
   487  func (this *Castaway) VerboseEqual(that interface{}) error {
   488  	if that == nil {
   489  		if this == nil {
   490  			return nil
   491  		}
   492  		return fmt.Errorf("that == nil && this != nil")
   493  	}
   494  
   495  	that1, ok := that.(*Castaway)
   496  	if !ok {
   497  		that2, ok := that.(Castaway)
   498  		if ok {
   499  			that1 = &that2
   500  		} else {
   501  			return fmt.Errorf("that is not of type *Castaway")
   502  		}
   503  	}
   504  	if that1 == nil {
   505  		if this == nil {
   506  			return nil
   507  		}
   508  		return fmt.Errorf("that is type *Castaway but is nil && this != nil")
   509  	} else if this == nil {
   510  		return fmt.Errorf("that is type *Castaway but is not nil && this == nil")
   511  	}
   512  	if this.Int32Ptr != nil && that1.Int32Ptr != nil {
   513  		if *this.Int32Ptr != *that1.Int32Ptr {
   514  			return fmt.Errorf("Int32Ptr this(%v) Not Equal that(%v)", *this.Int32Ptr, *that1.Int32Ptr)
   515  		}
   516  	} else if this.Int32Ptr != nil {
   517  		return fmt.Errorf("this.Int32Ptr == nil && that.Int32Ptr != nil")
   518  	} else if that1.Int32Ptr != nil {
   519  		return fmt.Errorf("Int32Ptr this(%v) Not Equal that(%v)", this.Int32Ptr, that1.Int32Ptr)
   520  	}
   521  	if this.Int32 != that1.Int32 {
   522  		return fmt.Errorf("Int32 this(%v) Not Equal that(%v)", this.Int32, that1.Int32)
   523  	}
   524  	if this.MyUint64Ptr != nil && that1.MyUint64Ptr != nil {
   525  		if *this.MyUint64Ptr != *that1.MyUint64Ptr {
   526  			return fmt.Errorf("MyUint64Ptr this(%v) Not Equal that(%v)", *this.MyUint64Ptr, *that1.MyUint64Ptr)
   527  		}
   528  	} else if this.MyUint64Ptr != nil {
   529  		return fmt.Errorf("this.MyUint64Ptr == nil && that.MyUint64Ptr != nil")
   530  	} else if that1.MyUint64Ptr != nil {
   531  		return fmt.Errorf("MyUint64Ptr this(%v) Not Equal that(%v)", this.MyUint64Ptr, that1.MyUint64Ptr)
   532  	}
   533  	if this.MyUint64 != that1.MyUint64 {
   534  		return fmt.Errorf("MyUint64 this(%v) Not Equal that(%v)", this.MyUint64, that1.MyUint64)
   535  	}
   536  	if this.MyFloat32Ptr != nil && that1.MyFloat32Ptr != nil {
   537  		if *this.MyFloat32Ptr != *that1.MyFloat32Ptr {
   538  			return fmt.Errorf("MyFloat32Ptr this(%v) Not Equal that(%v)", *this.MyFloat32Ptr, *that1.MyFloat32Ptr)
   539  		}
   540  	} else if this.MyFloat32Ptr != nil {
   541  		return fmt.Errorf("this.MyFloat32Ptr == nil && that.MyFloat32Ptr != nil")
   542  	} else if that1.MyFloat32Ptr != nil {
   543  		return fmt.Errorf("MyFloat32Ptr this(%v) Not Equal that(%v)", this.MyFloat32Ptr, that1.MyFloat32Ptr)
   544  	}
   545  	if this.MyFloat32 != that1.MyFloat32 {
   546  		return fmt.Errorf("MyFloat32 this(%v) Not Equal that(%v)", this.MyFloat32, that1.MyFloat32)
   547  	}
   548  	if this.MyFloat64Ptr != nil && that1.MyFloat64Ptr != nil {
   549  		if *this.MyFloat64Ptr != *that1.MyFloat64Ptr {
   550  			return fmt.Errorf("MyFloat64Ptr this(%v) Not Equal that(%v)", *this.MyFloat64Ptr, *that1.MyFloat64Ptr)
   551  		}
   552  	} else if this.MyFloat64Ptr != nil {
   553  		return fmt.Errorf("this.MyFloat64Ptr == nil && that.MyFloat64Ptr != nil")
   554  	} else if that1.MyFloat64Ptr != nil {
   555  		return fmt.Errorf("MyFloat64Ptr this(%v) Not Equal that(%v)", this.MyFloat64Ptr, that1.MyFloat64Ptr)
   556  	}
   557  	if this.MyFloat64 != that1.MyFloat64 {
   558  		return fmt.Errorf("MyFloat64 this(%v) Not Equal that(%v)", this.MyFloat64, that1.MyFloat64)
   559  	}
   560  	if !bytes.Equal(this.MyBytes, that1.MyBytes) {
   561  		return fmt.Errorf("MyBytes this(%v) Not Equal that(%v)", this.MyBytes, that1.MyBytes)
   562  	}
   563  	if !bytes.Equal(this.NormalBytes, that1.NormalBytes) {
   564  		return fmt.Errorf("NormalBytes this(%v) Not Equal that(%v)", this.NormalBytes, that1.NormalBytes)
   565  	}
   566  	if len(this.MyUint64S) != len(that1.MyUint64S) {
   567  		return fmt.Errorf("MyUint64S this(%v) Not Equal that(%v)", len(this.MyUint64S), len(that1.MyUint64S))
   568  	}
   569  	for i := range this.MyUint64S {
   570  		if this.MyUint64S[i] != that1.MyUint64S[i] {
   571  			return fmt.Errorf("MyUint64S this[%v](%v) Not Equal that[%v](%v)", i, this.MyUint64S[i], i, that1.MyUint64S[i])
   572  		}
   573  	}
   574  	if len(this.MyMap) != len(that1.MyMap) {
   575  		return fmt.Errorf("MyMap this(%v) Not Equal that(%v)", len(this.MyMap), len(that1.MyMap))
   576  	}
   577  	for i := range this.MyMap {
   578  		if this.MyMap[i] != that1.MyMap[i] {
   579  			return fmt.Errorf("MyMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyMap[i], i, that1.MyMap[i])
   580  		}
   581  	}
   582  	if len(this.MyCustomMap) != len(that1.MyCustomMap) {
   583  		return fmt.Errorf("MyCustomMap this(%v) Not Equal that(%v)", len(this.MyCustomMap), len(that1.MyCustomMap))
   584  	}
   585  	for i := range this.MyCustomMap {
   586  		if this.MyCustomMap[i] != that1.MyCustomMap[i] {
   587  			return fmt.Errorf("MyCustomMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyCustomMap[i], i, that1.MyCustomMap[i])
   588  		}
   589  	}
   590  	if len(this.MyNullableMap) != len(that1.MyNullableMap) {
   591  		return fmt.Errorf("MyNullableMap this(%v) Not Equal that(%v)", len(this.MyNullableMap), len(that1.MyNullableMap))
   592  	}
   593  	for i := range this.MyNullableMap {
   594  		if !this.MyNullableMap[i].Equal(that1.MyNullableMap[i]) {
   595  			return fmt.Errorf("MyNullableMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyNullableMap[i], i, that1.MyNullableMap[i])
   596  		}
   597  	}
   598  	if len(this.MyEmbeddedMap) != len(that1.MyEmbeddedMap) {
   599  		return fmt.Errorf("MyEmbeddedMap this(%v) Not Equal that(%v)", len(this.MyEmbeddedMap), len(that1.MyEmbeddedMap))
   600  	}
   601  	for i := range this.MyEmbeddedMap {
   602  		a := this.MyEmbeddedMap[i]
   603  		b := that1.MyEmbeddedMap[i]
   604  		if !(&a).Equal(&b) {
   605  			return fmt.Errorf("MyEmbeddedMap this[%v](%v) Not Equal that[%v](%v)", i, this.MyEmbeddedMap[i], i, that1.MyEmbeddedMap[i])
   606  		}
   607  	}
   608  	if this.String_ != nil && that1.String_ != nil {
   609  		if *this.String_ != *that1.String_ {
   610  			return fmt.Errorf("String_ this(%v) Not Equal that(%v)", *this.String_, *that1.String_)
   611  		}
   612  	} else if this.String_ != nil {
   613  		return fmt.Errorf("this.String_ == nil && that.String_ != nil")
   614  	} else if that1.String_ != nil {
   615  		return fmt.Errorf("String_ this(%v) Not Equal that(%v)", this.String_, that1.String_)
   616  	}
   617  	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
   618  		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
   619  	}
   620  	return nil
   621  }
   622  func (this *Castaway) Equal(that interface{}) bool {
   623  	if that == nil {
   624  		return this == nil
   625  	}
   626  
   627  	that1, ok := that.(*Castaway)
   628  	if !ok {
   629  		that2, ok := that.(Castaway)
   630  		if ok {
   631  			that1 = &that2
   632  		} else {
   633  			return false
   634  		}
   635  	}
   636  	if that1 == nil {
   637  		return this == nil
   638  	} else if this == nil {
   639  		return false
   640  	}
   641  	if this.Int32Ptr != nil && that1.Int32Ptr != nil {
   642  		if *this.Int32Ptr != *that1.Int32Ptr {
   643  			return false
   644  		}
   645  	} else if this.Int32Ptr != nil {
   646  		return false
   647  	} else if that1.Int32Ptr != nil {
   648  		return false
   649  	}
   650  	if this.Int32 != that1.Int32 {
   651  		return false
   652  	}
   653  	if this.MyUint64Ptr != nil && that1.MyUint64Ptr != nil {
   654  		if *this.MyUint64Ptr != *that1.MyUint64Ptr {
   655  			return false
   656  		}
   657  	} else if this.MyUint64Ptr != nil {
   658  		return false
   659  	} else if that1.MyUint64Ptr != nil {
   660  		return false
   661  	}
   662  	if this.MyUint64 != that1.MyUint64 {
   663  		return false
   664  	}
   665  	if this.MyFloat32Ptr != nil && that1.MyFloat32Ptr != nil {
   666  		if *this.MyFloat32Ptr != *that1.MyFloat32Ptr {
   667  			return false
   668  		}
   669  	} else if this.MyFloat32Ptr != nil {
   670  		return false
   671  	} else if that1.MyFloat32Ptr != nil {
   672  		return false
   673  	}
   674  	if this.MyFloat32 != that1.MyFloat32 {
   675  		return false
   676  	}
   677  	if this.MyFloat64Ptr != nil && that1.MyFloat64Ptr != nil {
   678  		if *this.MyFloat64Ptr != *that1.MyFloat64Ptr {
   679  			return false
   680  		}
   681  	} else if this.MyFloat64Ptr != nil {
   682  		return false
   683  	} else if that1.MyFloat64Ptr != nil {
   684  		return false
   685  	}
   686  	if this.MyFloat64 != that1.MyFloat64 {
   687  		return false
   688  	}
   689  	if !bytes.Equal(this.MyBytes, that1.MyBytes) {
   690  		return false
   691  	}
   692  	if !bytes.Equal(this.NormalBytes, that1.NormalBytes) {
   693  		return false
   694  	}
   695  	if len(this.MyUint64S) != len(that1.MyUint64S) {
   696  		return false
   697  	}
   698  	for i := range this.MyUint64S {
   699  		if this.MyUint64S[i] != that1.MyUint64S[i] {
   700  			return false
   701  		}
   702  	}
   703  	if len(this.MyMap) != len(that1.MyMap) {
   704  		return false
   705  	}
   706  	for i := range this.MyMap {
   707  		if this.MyMap[i] != that1.MyMap[i] {
   708  			return false
   709  		}
   710  	}
   711  	if len(this.MyCustomMap) != len(that1.MyCustomMap) {
   712  		return false
   713  	}
   714  	for i := range this.MyCustomMap {
   715  		if this.MyCustomMap[i] != that1.MyCustomMap[i] {
   716  			return false
   717  		}
   718  	}
   719  	if len(this.MyNullableMap) != len(that1.MyNullableMap) {
   720  		return false
   721  	}
   722  	for i := range this.MyNullableMap {
   723  		if !this.MyNullableMap[i].Equal(that1.MyNullableMap[i]) {
   724  			return false
   725  		}
   726  	}
   727  	if len(this.MyEmbeddedMap) != len(that1.MyEmbeddedMap) {
   728  		return false
   729  	}
   730  	for i := range this.MyEmbeddedMap {
   731  		a := this.MyEmbeddedMap[i]
   732  		b := that1.MyEmbeddedMap[i]
   733  		if !(&a).Equal(&b) {
   734  			return false
   735  		}
   736  	}
   737  	if this.String_ != nil && that1.String_ != nil {
   738  		if *this.String_ != *that1.String_ {
   739  			return false
   740  		}
   741  	} else if this.String_ != nil {
   742  		return false
   743  	} else if that1.String_ != nil {
   744  		return false
   745  	}
   746  	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
   747  		return false
   748  	}
   749  	return true
   750  }
   751  func (this *Wilson) VerboseEqual(that interface{}) error {
   752  	if that == nil {
   753  		if this == nil {
   754  			return nil
   755  		}
   756  		return fmt.Errorf("that == nil && this != nil")
   757  	}
   758  
   759  	that1, ok := that.(*Wilson)
   760  	if !ok {
   761  		that2, ok := that.(Wilson)
   762  		if ok {
   763  			that1 = &that2
   764  		} else {
   765  			return fmt.Errorf("that is not of type *Wilson")
   766  		}
   767  	}
   768  	if that1 == nil {
   769  		if this == nil {
   770  			return nil
   771  		}
   772  		return fmt.Errorf("that is type *Wilson but is nil && this != nil")
   773  	} else if this == nil {
   774  		return fmt.Errorf("that is type *Wilson but is not nil && this == nil")
   775  	}
   776  	if this.Int64 != nil && that1.Int64 != nil {
   777  		if *this.Int64 != *that1.Int64 {
   778  			return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", *this.Int64, *that1.Int64)
   779  		}
   780  	} else if this.Int64 != nil {
   781  		return fmt.Errorf("this.Int64 == nil && that.Int64 != nil")
   782  	} else if that1.Int64 != nil {
   783  		return fmt.Errorf("Int64 this(%v) Not Equal that(%v)", this.Int64, that1.Int64)
   784  	}
   785  	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
   786  		return fmt.Errorf("XXX_unrecognized this(%v) Not Equal that(%v)", this.XXX_unrecognized, that1.XXX_unrecognized)
   787  	}
   788  	return nil
   789  }
   790  func (this *Wilson) Equal(that interface{}) bool {
   791  	if that == nil {
   792  		return this == nil
   793  	}
   794  
   795  	that1, ok := that.(*Wilson)
   796  	if !ok {
   797  		that2, ok := that.(Wilson)
   798  		if ok {
   799  			that1 = &that2
   800  		} else {
   801  			return false
   802  		}
   803  	}
   804  	if that1 == nil {
   805  		return this == nil
   806  	} else if this == nil {
   807  		return false
   808  	}
   809  	if this.Int64 != nil && that1.Int64 != nil {
   810  		if *this.Int64 != *that1.Int64 {
   811  			return false
   812  		}
   813  	} else if this.Int64 != nil {
   814  		return false
   815  	} else if that1.Int64 != nil {
   816  		return false
   817  	}
   818  	if !bytes.Equal(this.XXX_unrecognized, that1.XXX_unrecognized) {
   819  		return false
   820  	}
   821  	return true
   822  }
   823  
   824  type CastawayFace interface {
   825  	Proto() github_com_gogo_protobuf_proto.Message
   826  	GetInt32Ptr() *int32
   827  	GetInt32() int32
   828  	GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type
   829  	GetMyUint64() github_com_gogo_protobuf_test_casttype.MyUint64Type
   830  	GetMyFloat32Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat32Type
   831  	GetMyFloat32() github_com_gogo_protobuf_test_casttype.MyFloat32Type
   832  	GetMyFloat64Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat64Type
   833  	GetMyFloat64() github_com_gogo_protobuf_test_casttype.MyFloat64Type
   834  	GetMyBytes() github_com_gogo_protobuf_test_casttype.Bytes
   835  	GetNormalBytes() []byte
   836  	GetMyUint64S() []github_com_gogo_protobuf_test_casttype.MyUint64Type
   837  	GetMyMap() github_com_gogo_protobuf_test_casttype.MyMapType
   838  	GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type
   839  	GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson
   840  	GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson
   841  	GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType
   842  }
   843  
   844  func (this *Castaway) Proto() github_com_gogo_protobuf_proto.Message {
   845  	return this
   846  }
   847  
   848  func (this *Castaway) TestProto() github_com_gogo_protobuf_proto.Message {
   849  	return NewCastawayFromFace(this)
   850  }
   851  
   852  func (this *Castaway) GetInt32Ptr() *int32 {
   853  	return this.Int32Ptr
   854  }
   855  
   856  func (this *Castaway) GetInt32() int32 {
   857  	return this.Int32
   858  }
   859  
   860  func (this *Castaway) GetMyUint64Ptr() *github_com_gogo_protobuf_test_casttype.MyUint64Type {
   861  	return this.MyUint64Ptr
   862  }
   863  
   864  func (this *Castaway) GetMyUint64() github_com_gogo_protobuf_test_casttype.MyUint64Type {
   865  	return this.MyUint64
   866  }
   867  
   868  func (this *Castaway) GetMyFloat32Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat32Type {
   869  	return this.MyFloat32Ptr
   870  }
   871  
   872  func (this *Castaway) GetMyFloat32() github_com_gogo_protobuf_test_casttype.MyFloat32Type {
   873  	return this.MyFloat32
   874  }
   875  
   876  func (this *Castaway) GetMyFloat64Ptr() *github_com_gogo_protobuf_test_casttype.MyFloat64Type {
   877  	return this.MyFloat64Ptr
   878  }
   879  
   880  func (this *Castaway) GetMyFloat64() github_com_gogo_protobuf_test_casttype.MyFloat64Type {
   881  	return this.MyFloat64
   882  }
   883  
   884  func (this *Castaway) GetMyBytes() github_com_gogo_protobuf_test_casttype.Bytes {
   885  	return this.MyBytes
   886  }
   887  
   888  func (this *Castaway) GetNormalBytes() []byte {
   889  	return this.NormalBytes
   890  }
   891  
   892  func (this *Castaway) GetMyUint64S() []github_com_gogo_protobuf_test_casttype.MyUint64Type {
   893  	return this.MyUint64S
   894  }
   895  
   896  func (this *Castaway) GetMyMap() github_com_gogo_protobuf_test_casttype.MyMapType {
   897  	return this.MyMap
   898  }
   899  
   900  func (this *Castaway) GetMyCustomMap() map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type {
   901  	return this.MyCustomMap
   902  }
   903  
   904  func (this *Castaway) GetMyNullableMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson {
   905  	return this.MyNullableMap
   906  }
   907  
   908  func (this *Castaway) GetMyEmbeddedMap() map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson {
   909  	return this.MyEmbeddedMap
   910  }
   911  
   912  func (this *Castaway) GetString_() *github_com_gogo_protobuf_test_casttype.MyStringType {
   913  	return this.String_
   914  }
   915  
   916  func NewCastawayFromFace(that CastawayFace) *Castaway {
   917  	this := &Castaway{}
   918  	this.Int32Ptr = that.GetInt32Ptr()
   919  	this.Int32 = that.GetInt32()
   920  	this.MyUint64Ptr = that.GetMyUint64Ptr()
   921  	this.MyUint64 = that.GetMyUint64()
   922  	this.MyFloat32Ptr = that.GetMyFloat32Ptr()
   923  	this.MyFloat32 = that.GetMyFloat32()
   924  	this.MyFloat64Ptr = that.GetMyFloat64Ptr()
   925  	this.MyFloat64 = that.GetMyFloat64()
   926  	this.MyBytes = that.GetMyBytes()
   927  	this.NormalBytes = that.GetNormalBytes()
   928  	this.MyUint64S = that.GetMyUint64S()
   929  	this.MyMap = that.GetMyMap()
   930  	this.MyCustomMap = that.GetMyCustomMap()
   931  	this.MyNullableMap = that.GetMyNullableMap()
   932  	this.MyEmbeddedMap = that.GetMyEmbeddedMap()
   933  	this.String_ = that.GetString_()
   934  	return this
   935  }
   936  
   937  type WilsonFace interface {
   938  	Proto() github_com_gogo_protobuf_proto.Message
   939  	GetInt64() *int64
   940  }
   941  
   942  func (this *Wilson) Proto() github_com_gogo_protobuf_proto.Message {
   943  	return this
   944  }
   945  
   946  func (this *Wilson) TestProto() github_com_gogo_protobuf_proto.Message {
   947  	return NewWilsonFromFace(this)
   948  }
   949  
   950  func (this *Wilson) GetInt64() *int64 {
   951  	return this.Int64
   952  }
   953  
   954  func NewWilsonFromFace(that WilsonFace) *Wilson {
   955  	this := &Wilson{}
   956  	this.Int64 = that.GetInt64()
   957  	return this
   958  }
   959  
   960  func (this *Castaway) GoString() string {
   961  	if this == nil {
   962  		return "nil"
   963  	}
   964  	s := make([]string, 0, 20)
   965  	s = append(s, "&casttype.Castaway{")
   966  	if this.Int32Ptr != nil {
   967  		s = append(s, "Int32Ptr: "+valueToGoStringCasttype(this.Int32Ptr, "int32")+",\n")
   968  	}
   969  	s = append(s, "Int32: "+fmt.Sprintf("%#v", this.Int32)+",\n")
   970  	if this.MyUint64Ptr != nil {
   971  		s = append(s, "MyUint64Ptr: "+valueToGoStringCasttype(this.MyUint64Ptr, "github_com_gogo_protobuf_test_casttype.MyUint64Type")+",\n")
   972  	}
   973  	s = append(s, "MyUint64: "+fmt.Sprintf("%#v", this.MyUint64)+",\n")
   974  	if this.MyFloat32Ptr != nil {
   975  		s = append(s, "MyFloat32Ptr: "+valueToGoStringCasttype(this.MyFloat32Ptr, "github_com_gogo_protobuf_test_casttype.MyFloat32Type")+",\n")
   976  	}
   977  	s = append(s, "MyFloat32: "+fmt.Sprintf("%#v", this.MyFloat32)+",\n")
   978  	if this.MyFloat64Ptr != nil {
   979  		s = append(s, "MyFloat64Ptr: "+valueToGoStringCasttype(this.MyFloat64Ptr, "github_com_gogo_protobuf_test_casttype.MyFloat64Type")+",\n")
   980  	}
   981  	s = append(s, "MyFloat64: "+fmt.Sprintf("%#v", this.MyFloat64)+",\n")
   982  	if this.MyBytes != nil {
   983  		s = append(s, "MyBytes: "+valueToGoStringCasttype(this.MyBytes, "github_com_gogo_protobuf_test_casttype.Bytes")+",\n")
   984  	}
   985  	if this.NormalBytes != nil {
   986  		s = append(s, "NormalBytes: "+valueToGoStringCasttype(this.NormalBytes, "byte")+",\n")
   987  	}
   988  	if this.MyUint64S != nil {
   989  		s = append(s, "MyUint64S: "+fmt.Sprintf("%#v", this.MyUint64S)+",\n")
   990  	}
   991  	keysForMyMap := make([]string, 0, len(this.MyMap))
   992  	for k := range this.MyMap {
   993  		keysForMyMap = append(keysForMyMap, k)
   994  	}
   995  	github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap)
   996  	mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{"
   997  	for _, k := range keysForMyMap {
   998  		mapStringForMyMap += fmt.Sprintf("%#v: %#v,", k, this.MyMap[k])
   999  	}
  1000  	mapStringForMyMap += "}"
  1001  	if this.MyMap != nil {
  1002  		s = append(s, "MyMap: "+mapStringForMyMap+",\n")
  1003  	}
  1004  	keysForMyCustomMap := make([]string, 0, len(this.MyCustomMap))
  1005  	for k := range this.MyCustomMap {
  1006  		keysForMyCustomMap = append(keysForMyCustomMap, string(k))
  1007  	}
  1008  	github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap)
  1009  	mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{"
  1010  	for _, k := range keysForMyCustomMap {
  1011  		mapStringForMyCustomMap += fmt.Sprintf("%#v: %#v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)])
  1012  	}
  1013  	mapStringForMyCustomMap += "}"
  1014  	if this.MyCustomMap != nil {
  1015  		s = append(s, "MyCustomMap: "+mapStringForMyCustomMap+",\n")
  1016  	}
  1017  	keysForMyNullableMap := make([]int32, 0, len(this.MyNullableMap))
  1018  	for k := range this.MyNullableMap {
  1019  		keysForMyNullableMap = append(keysForMyNullableMap, int32(k))
  1020  	}
  1021  	github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap)
  1022  	mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{"
  1023  	for _, k := range keysForMyNullableMap {
  1024  		mapStringForMyNullableMap += fmt.Sprintf("%#v: %#v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)])
  1025  	}
  1026  	mapStringForMyNullableMap += "}"
  1027  	if this.MyNullableMap != nil {
  1028  		s = append(s, "MyNullableMap: "+mapStringForMyNullableMap+",\n")
  1029  	}
  1030  	keysForMyEmbeddedMap := make([]int32, 0, len(this.MyEmbeddedMap))
  1031  	for k := range this.MyEmbeddedMap {
  1032  		keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k))
  1033  	}
  1034  	github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap)
  1035  	mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{"
  1036  	for _, k := range keysForMyEmbeddedMap {
  1037  		mapStringForMyEmbeddedMap += fmt.Sprintf("%#v: %#v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)])
  1038  	}
  1039  	mapStringForMyEmbeddedMap += "}"
  1040  	if this.MyEmbeddedMap != nil {
  1041  		s = append(s, "MyEmbeddedMap: "+mapStringForMyEmbeddedMap+",\n")
  1042  	}
  1043  	if this.String_ != nil {
  1044  		s = append(s, "String_: "+valueToGoStringCasttype(this.String_, "github_com_gogo_protobuf_test_casttype.MyStringType")+",\n")
  1045  	}
  1046  	if this.XXX_unrecognized != nil {
  1047  		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
  1048  	}
  1049  	s = append(s, "}")
  1050  	return strings.Join(s, "")
  1051  }
  1052  func (this *Wilson) GoString() string {
  1053  	if this == nil {
  1054  		return "nil"
  1055  	}
  1056  	s := make([]string, 0, 5)
  1057  	s = append(s, "&casttype.Wilson{")
  1058  	if this.Int64 != nil {
  1059  		s = append(s, "Int64: "+valueToGoStringCasttype(this.Int64, "int64")+",\n")
  1060  	}
  1061  	if this.XXX_unrecognized != nil {
  1062  		s = append(s, "XXX_unrecognized:"+fmt.Sprintf("%#v", this.XXX_unrecognized)+",\n")
  1063  	}
  1064  	s = append(s, "}")
  1065  	return strings.Join(s, "")
  1066  }
  1067  func valueToGoStringCasttype(v interface{}, typ string) string {
  1068  	rv := reflect.ValueOf(v)
  1069  	if rv.IsNil() {
  1070  		return "nil"
  1071  	}
  1072  	pv := reflect.Indirect(rv).Interface()
  1073  	return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)
  1074  }
  1075  func (m *Castaway) Marshal() (dAtA []byte, err error) {
  1076  	size := m.Size()
  1077  	dAtA = make([]byte, size)
  1078  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1079  	if err != nil {
  1080  		return nil, err
  1081  	}
  1082  	return dAtA[:n], nil
  1083  }
  1084  
  1085  func (m *Castaway) MarshalTo(dAtA []byte) (int, error) {
  1086  	size := m.Size()
  1087  	return m.MarshalToSizedBuffer(dAtA[:size])
  1088  }
  1089  
  1090  func (m *Castaway) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1091  	i := len(dAtA)
  1092  	_ = i
  1093  	var l int
  1094  	_ = l
  1095  	if m.XXX_unrecognized != nil {
  1096  		i -= len(m.XXX_unrecognized)
  1097  		copy(dAtA[i:], m.XXX_unrecognized)
  1098  	}
  1099  	if m.String_ != nil {
  1100  		i -= len(*m.String_)
  1101  		copy(dAtA[i:], *m.String_)
  1102  		i = encodeVarintCasttype(dAtA, i, uint64(len(*m.String_)))
  1103  		i--
  1104  		dAtA[i] = 0x1
  1105  		i--
  1106  		dAtA[i] = 0x82
  1107  	}
  1108  	if len(m.MyEmbeddedMap) > 0 {
  1109  		for k := range m.MyEmbeddedMap {
  1110  			v := m.MyEmbeddedMap[k]
  1111  			baseI := i
  1112  			{
  1113  				size, err := (&v).MarshalToSizedBuffer(dAtA[:i])
  1114  				if err != nil {
  1115  					return 0, err
  1116  				}
  1117  				i -= size
  1118  				i = encodeVarintCasttype(dAtA, i, uint64(size))
  1119  			}
  1120  			i--
  1121  			dAtA[i] = 0x12
  1122  			i = encodeVarintCasttype(dAtA, i, uint64(k))
  1123  			i--
  1124  			dAtA[i] = 0x8
  1125  			i = encodeVarintCasttype(dAtA, i, uint64(baseI-i))
  1126  			i--
  1127  			dAtA[i] = 0x7a
  1128  		}
  1129  	}
  1130  	if len(m.MyNullableMap) > 0 {
  1131  		for k := range m.MyNullableMap {
  1132  			v := m.MyNullableMap[k]
  1133  			baseI := i
  1134  			if v != nil {
  1135  				{
  1136  					size, err := v.MarshalToSizedBuffer(dAtA[:i])
  1137  					if err != nil {
  1138  						return 0, err
  1139  					}
  1140  					i -= size
  1141  					i = encodeVarintCasttype(dAtA, i, uint64(size))
  1142  				}
  1143  				i--
  1144  				dAtA[i] = 0x12
  1145  			}
  1146  			i = encodeVarintCasttype(dAtA, i, uint64(k))
  1147  			i--
  1148  			dAtA[i] = 0x8
  1149  			i = encodeVarintCasttype(dAtA, i, uint64(baseI-i))
  1150  			i--
  1151  			dAtA[i] = 0x72
  1152  		}
  1153  	}
  1154  	if len(m.MyCustomMap) > 0 {
  1155  		for k := range m.MyCustomMap {
  1156  			v := m.MyCustomMap[k]
  1157  			baseI := i
  1158  			i = encodeVarintCasttype(dAtA, i, uint64(v))
  1159  			i--
  1160  			dAtA[i] = 0x10
  1161  			i -= len(k)
  1162  			copy(dAtA[i:], k)
  1163  			i = encodeVarintCasttype(dAtA, i, uint64(len(k)))
  1164  			i--
  1165  			dAtA[i] = 0xa
  1166  			i = encodeVarintCasttype(dAtA, i, uint64(baseI-i))
  1167  			i--
  1168  			dAtA[i] = 0x6a
  1169  		}
  1170  	}
  1171  	if len(m.MyMap) > 0 {
  1172  		for k := range m.MyMap {
  1173  			v := m.MyMap[k]
  1174  			baseI := i
  1175  			i = encodeVarintCasttype(dAtA, i, uint64(v))
  1176  			i--
  1177  			dAtA[i] = 0x10
  1178  			i -= len(k)
  1179  			copy(dAtA[i:], k)
  1180  			i = encodeVarintCasttype(dAtA, i, uint64(len(k)))
  1181  			i--
  1182  			dAtA[i] = 0xa
  1183  			i = encodeVarintCasttype(dAtA, i, uint64(baseI-i))
  1184  			i--
  1185  			dAtA[i] = 0x62
  1186  		}
  1187  	}
  1188  	if len(m.MyUint64S) > 0 {
  1189  		for iNdEx := len(m.MyUint64S) - 1; iNdEx >= 0; iNdEx-- {
  1190  			i = encodeVarintCasttype(dAtA, i, uint64(m.MyUint64S[iNdEx]))
  1191  			i--
  1192  			dAtA[i] = 0x58
  1193  		}
  1194  	}
  1195  	if m.NormalBytes != nil {
  1196  		i -= len(m.NormalBytes)
  1197  		copy(dAtA[i:], m.NormalBytes)
  1198  		i = encodeVarintCasttype(dAtA, i, uint64(len(m.NormalBytes)))
  1199  		i--
  1200  		dAtA[i] = 0x52
  1201  	}
  1202  	if m.MyBytes != nil {
  1203  		i -= len(m.MyBytes)
  1204  		copy(dAtA[i:], m.MyBytes)
  1205  		i = encodeVarintCasttype(dAtA, i, uint64(len(m.MyBytes)))
  1206  		i--
  1207  		dAtA[i] = 0x4a
  1208  	}
  1209  	i -= 8
  1210  	encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(m.MyFloat64))))
  1211  	i--
  1212  	dAtA[i] = 0x41
  1213  	if m.MyFloat64Ptr != nil {
  1214  		i -= 8
  1215  		encoding_binary.LittleEndian.PutUint64(dAtA[i:], uint64(math.Float64bits(float64(*m.MyFloat64Ptr))))
  1216  		i--
  1217  		dAtA[i] = 0x39
  1218  	}
  1219  	i -= 4
  1220  	encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(m.MyFloat32))))
  1221  	i--
  1222  	dAtA[i] = 0x35
  1223  	if m.MyFloat32Ptr != nil {
  1224  		i -= 4
  1225  		encoding_binary.LittleEndian.PutUint32(dAtA[i:], uint32(math.Float32bits(float32(*m.MyFloat32Ptr))))
  1226  		i--
  1227  		dAtA[i] = 0x2d
  1228  	}
  1229  	i = encodeVarintCasttype(dAtA, i, uint64(m.MyUint64))
  1230  	i--
  1231  	dAtA[i] = 0x20
  1232  	if m.MyUint64Ptr != nil {
  1233  		i = encodeVarintCasttype(dAtA, i, uint64(*m.MyUint64Ptr))
  1234  		i--
  1235  		dAtA[i] = 0x18
  1236  	}
  1237  	i = encodeVarintCasttype(dAtA, i, uint64(m.Int32))
  1238  	i--
  1239  	dAtA[i] = 0x10
  1240  	if m.Int32Ptr != nil {
  1241  		i = encodeVarintCasttype(dAtA, i, uint64(*m.Int32Ptr))
  1242  		i--
  1243  		dAtA[i] = 0x8
  1244  	}
  1245  	return len(dAtA) - i, nil
  1246  }
  1247  
  1248  func (m *Wilson) Marshal() (dAtA []byte, err error) {
  1249  	size := m.Size()
  1250  	dAtA = make([]byte, size)
  1251  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1252  	if err != nil {
  1253  		return nil, err
  1254  	}
  1255  	return dAtA[:n], nil
  1256  }
  1257  
  1258  func (m *Wilson) MarshalTo(dAtA []byte) (int, error) {
  1259  	size := m.Size()
  1260  	return m.MarshalToSizedBuffer(dAtA[:size])
  1261  }
  1262  
  1263  func (m *Wilson) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1264  	i := len(dAtA)
  1265  	_ = i
  1266  	var l int
  1267  	_ = l
  1268  	if m.XXX_unrecognized != nil {
  1269  		i -= len(m.XXX_unrecognized)
  1270  		copy(dAtA[i:], m.XXX_unrecognized)
  1271  	}
  1272  	if m.Int64 != nil {
  1273  		i = encodeVarintCasttype(dAtA, i, uint64(*m.Int64))
  1274  		i--
  1275  		dAtA[i] = 0x8
  1276  	}
  1277  	return len(dAtA) - i, nil
  1278  }
  1279  
  1280  func encodeVarintCasttype(dAtA []byte, offset int, v uint64) int {
  1281  	offset -= sovCasttype(v)
  1282  	base := offset
  1283  	for v >= 1<<7 {
  1284  		dAtA[offset] = uint8(v&0x7f | 0x80)
  1285  		v >>= 7
  1286  		offset++
  1287  	}
  1288  	dAtA[offset] = uint8(v)
  1289  	return base
  1290  }
  1291  func NewPopulatedCastaway(r randyCasttype, easy bool) *Castaway {
  1292  	this := &Castaway{}
  1293  	if r.Intn(5) != 0 {
  1294  		v1 := int32(r.Int63())
  1295  		if r.Intn(2) == 0 {
  1296  			v1 *= -1
  1297  		}
  1298  		this.Int32Ptr = &v1
  1299  	}
  1300  	this.Int32 = int32(r.Int63())
  1301  	if r.Intn(2) == 0 {
  1302  		this.Int32 *= -1
  1303  	}
  1304  	if r.Intn(5) != 0 {
  1305  		v2 := github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32()))
  1306  		this.MyUint64Ptr = &v2
  1307  	}
  1308  	this.MyUint64 = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32()))
  1309  	if r.Intn(5) != 0 {
  1310  		v3 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(r.Float32())
  1311  		if r.Intn(2) == 0 {
  1312  			v3 *= -1
  1313  		}
  1314  		this.MyFloat32Ptr = &v3
  1315  	}
  1316  	this.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(r.Float32())
  1317  	if r.Intn(2) == 0 {
  1318  		this.MyFloat32 *= -1
  1319  	}
  1320  	if r.Intn(5) != 0 {
  1321  		v4 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(r.Float64())
  1322  		if r.Intn(2) == 0 {
  1323  			v4 *= -1
  1324  		}
  1325  		this.MyFloat64Ptr = &v4
  1326  	}
  1327  	this.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(r.Float64())
  1328  	if r.Intn(2) == 0 {
  1329  		this.MyFloat64 *= -1
  1330  	}
  1331  	if r.Intn(5) != 0 {
  1332  		v5 := r.Intn(100)
  1333  		this.MyBytes = make(github_com_gogo_protobuf_test_casttype.Bytes, v5)
  1334  		for i := 0; i < v5; i++ {
  1335  			this.MyBytes[i] = byte(r.Intn(256))
  1336  		}
  1337  	}
  1338  	if r.Intn(5) != 0 {
  1339  		v6 := r.Intn(100)
  1340  		this.NormalBytes = make([]byte, v6)
  1341  		for i := 0; i < v6; i++ {
  1342  			this.NormalBytes[i] = byte(r.Intn(256))
  1343  		}
  1344  	}
  1345  	if r.Intn(5) != 0 {
  1346  		v7 := r.Intn(10)
  1347  		this.MyUint64S = make([]github_com_gogo_protobuf_test_casttype.MyUint64Type, v7)
  1348  		for i := 0; i < v7; i++ {
  1349  			this.MyUint64S[i] = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32()))
  1350  		}
  1351  	}
  1352  	if r.Intn(5) != 0 {
  1353  		v8 := r.Intn(10)
  1354  		this.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType)
  1355  		for i := 0; i < v8; i++ {
  1356  			v9 := randStringCasttype(r)
  1357  			this.MyMap[v9] = uint64(uint64(r.Uint32()))
  1358  		}
  1359  	}
  1360  	if r.Intn(5) != 0 {
  1361  		v10 := r.Intn(10)
  1362  		this.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type)
  1363  		for i := 0; i < v10; i++ {
  1364  			v11 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r))
  1365  			this.MyCustomMap[v11] = github_com_gogo_protobuf_test_casttype.MyUint64Type(uint64(r.Uint32()))
  1366  		}
  1367  	}
  1368  	if r.Intn(5) != 0 {
  1369  		v12 := r.Intn(10)
  1370  		this.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson)
  1371  		for i := 0; i < v12; i++ {
  1372  			this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = NewPopulatedWilson(r, easy)
  1373  		}
  1374  	}
  1375  	if r.Intn(5) != 0 {
  1376  		v13 := r.Intn(10)
  1377  		this.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson)
  1378  		for i := 0; i < v13; i++ {
  1379  			this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(int32(r.Int31()))] = *NewPopulatedWilson(r, easy)
  1380  		}
  1381  	}
  1382  	if r.Intn(5) != 0 {
  1383  		v14 := github_com_gogo_protobuf_test_casttype.MyStringType(randStringCasttype(r))
  1384  		this.String_ = &v14
  1385  	}
  1386  	if !easy && r.Intn(10) != 0 {
  1387  		this.XXX_unrecognized = randUnrecognizedCasttype(r, 17)
  1388  	}
  1389  	return this
  1390  }
  1391  
  1392  func NewPopulatedWilson(r randyCasttype, easy bool) *Wilson {
  1393  	this := &Wilson{}
  1394  	if r.Intn(5) != 0 {
  1395  		v15 := int64(r.Int63())
  1396  		if r.Intn(2) == 0 {
  1397  			v15 *= -1
  1398  		}
  1399  		this.Int64 = &v15
  1400  	}
  1401  	if !easy && r.Intn(10) != 0 {
  1402  		this.XXX_unrecognized = randUnrecognizedCasttype(r, 2)
  1403  	}
  1404  	return this
  1405  }
  1406  
  1407  type randyCasttype interface {
  1408  	Float32() float32
  1409  	Float64() float64
  1410  	Int63() int64
  1411  	Int31() int32
  1412  	Uint32() uint32
  1413  	Intn(n int) int
  1414  }
  1415  
  1416  func randUTF8RuneCasttype(r randyCasttype) rune {
  1417  	ru := r.Intn(62)
  1418  	if ru < 10 {
  1419  		return rune(ru + 48)
  1420  	} else if ru < 36 {
  1421  		return rune(ru + 55)
  1422  	}
  1423  	return rune(ru + 61)
  1424  }
  1425  func randStringCasttype(r randyCasttype) string {
  1426  	v16 := r.Intn(100)
  1427  	tmps := make([]rune, v16)
  1428  	for i := 0; i < v16; i++ {
  1429  		tmps[i] = randUTF8RuneCasttype(r)
  1430  	}
  1431  	return string(tmps)
  1432  }
  1433  func randUnrecognizedCasttype(r randyCasttype, maxFieldNumber int) (dAtA []byte) {
  1434  	l := r.Intn(5)
  1435  	for i := 0; i < l; i++ {
  1436  		wire := r.Intn(4)
  1437  		if wire == 3 {
  1438  			wire = 5
  1439  		}
  1440  		fieldNumber := maxFieldNumber + r.Intn(100)
  1441  		dAtA = randFieldCasttype(dAtA, r, fieldNumber, wire)
  1442  	}
  1443  	return dAtA
  1444  }
  1445  func randFieldCasttype(dAtA []byte, r randyCasttype, fieldNumber int, wire int) []byte {
  1446  	key := uint32(fieldNumber)<<3 | uint32(wire)
  1447  	switch wire {
  1448  	case 0:
  1449  		dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key))
  1450  		v17 := r.Int63()
  1451  		if r.Intn(2) == 0 {
  1452  			v17 *= -1
  1453  		}
  1454  		dAtA = encodeVarintPopulateCasttype(dAtA, uint64(v17))
  1455  	case 1:
  1456  		dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key))
  1457  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  1458  	case 2:
  1459  		dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key))
  1460  		ll := r.Intn(100)
  1461  		dAtA = encodeVarintPopulateCasttype(dAtA, uint64(ll))
  1462  		for j := 0; j < ll; j++ {
  1463  			dAtA = append(dAtA, byte(r.Intn(256)))
  1464  		}
  1465  	default:
  1466  		dAtA = encodeVarintPopulateCasttype(dAtA, uint64(key))
  1467  		dAtA = append(dAtA, byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)), byte(r.Intn(256)))
  1468  	}
  1469  	return dAtA
  1470  }
  1471  func encodeVarintPopulateCasttype(dAtA []byte, v uint64) []byte {
  1472  	for v >= 1<<7 {
  1473  		dAtA = append(dAtA, uint8(uint64(v)&0x7f|0x80))
  1474  		v >>= 7
  1475  	}
  1476  	dAtA = append(dAtA, uint8(v))
  1477  	return dAtA
  1478  }
  1479  func (m *Castaway) Size() (n int) {
  1480  	if m == nil {
  1481  		return 0
  1482  	}
  1483  	var l int
  1484  	_ = l
  1485  	if m.Int32Ptr != nil {
  1486  		n += 1 + sovCasttype(uint64(*m.Int32Ptr))
  1487  	}
  1488  	n += 1 + sovCasttype(uint64(m.Int32))
  1489  	if m.MyUint64Ptr != nil {
  1490  		n += 1 + sovCasttype(uint64(*m.MyUint64Ptr))
  1491  	}
  1492  	n += 1 + sovCasttype(uint64(m.MyUint64))
  1493  	if m.MyFloat32Ptr != nil {
  1494  		n += 5
  1495  	}
  1496  	n += 5
  1497  	if m.MyFloat64Ptr != nil {
  1498  		n += 9
  1499  	}
  1500  	n += 9
  1501  	if m.MyBytes != nil {
  1502  		l = len(m.MyBytes)
  1503  		n += 1 + l + sovCasttype(uint64(l))
  1504  	}
  1505  	if m.NormalBytes != nil {
  1506  		l = len(m.NormalBytes)
  1507  		n += 1 + l + sovCasttype(uint64(l))
  1508  	}
  1509  	if len(m.MyUint64S) > 0 {
  1510  		for _, e := range m.MyUint64S {
  1511  			n += 1 + sovCasttype(uint64(e))
  1512  		}
  1513  	}
  1514  	if len(m.MyMap) > 0 {
  1515  		for k, v := range m.MyMap {
  1516  			_ = k
  1517  			_ = v
  1518  			mapEntrySize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v))
  1519  			n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize))
  1520  		}
  1521  	}
  1522  	if len(m.MyCustomMap) > 0 {
  1523  		for k, v := range m.MyCustomMap {
  1524  			_ = k
  1525  			_ = v
  1526  			mapEntrySize := 1 + len(k) + sovCasttype(uint64(len(k))) + 1 + sovCasttype(uint64(v))
  1527  			n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize))
  1528  		}
  1529  	}
  1530  	if len(m.MyNullableMap) > 0 {
  1531  		for k, v := range m.MyNullableMap {
  1532  			_ = k
  1533  			_ = v
  1534  			l = 0
  1535  			if v != nil {
  1536  				l = v.Size()
  1537  				l += 1 + sovCasttype(uint64(l))
  1538  			}
  1539  			mapEntrySize := 1 + sovCasttype(uint64(k)) + l
  1540  			n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize))
  1541  		}
  1542  	}
  1543  	if len(m.MyEmbeddedMap) > 0 {
  1544  		for k, v := range m.MyEmbeddedMap {
  1545  			_ = k
  1546  			_ = v
  1547  			l = v.Size()
  1548  			mapEntrySize := 1 + sovCasttype(uint64(k)) + 1 + l + sovCasttype(uint64(l))
  1549  			n += mapEntrySize + 1 + sovCasttype(uint64(mapEntrySize))
  1550  		}
  1551  	}
  1552  	if m.String_ != nil {
  1553  		l = len(*m.String_)
  1554  		n += 2 + l + sovCasttype(uint64(l))
  1555  	}
  1556  	if m.XXX_unrecognized != nil {
  1557  		n += len(m.XXX_unrecognized)
  1558  	}
  1559  	return n
  1560  }
  1561  
  1562  func (m *Wilson) Size() (n int) {
  1563  	if m == nil {
  1564  		return 0
  1565  	}
  1566  	var l int
  1567  	_ = l
  1568  	if m.Int64 != nil {
  1569  		n += 1 + sovCasttype(uint64(*m.Int64))
  1570  	}
  1571  	if m.XXX_unrecognized != nil {
  1572  		n += len(m.XXX_unrecognized)
  1573  	}
  1574  	return n
  1575  }
  1576  
  1577  func sovCasttype(x uint64) (n int) {
  1578  	return (math_bits.Len64(x|1) + 6) / 7
  1579  }
  1580  func sozCasttype(x uint64) (n int) {
  1581  	return sovCasttype(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  1582  }
  1583  func (this *Castaway) String() string {
  1584  	if this == nil {
  1585  		return "nil"
  1586  	}
  1587  	keysForMyMap := make([]string, 0, len(this.MyMap))
  1588  	for k := range this.MyMap {
  1589  		keysForMyMap = append(keysForMyMap, k)
  1590  	}
  1591  	github_com_gogo_protobuf_sortkeys.Strings(keysForMyMap)
  1592  	mapStringForMyMap := "github_com_gogo_protobuf_test_casttype.MyMapType{"
  1593  	for _, k := range keysForMyMap {
  1594  		mapStringForMyMap += fmt.Sprintf("%v: %v,", k, this.MyMap[k])
  1595  	}
  1596  	mapStringForMyMap += "}"
  1597  	keysForMyCustomMap := make([]string, 0, len(this.MyCustomMap))
  1598  	for k := range this.MyCustomMap {
  1599  		keysForMyCustomMap = append(keysForMyCustomMap, string(k))
  1600  	}
  1601  	github_com_gogo_protobuf_sortkeys.Strings(keysForMyCustomMap)
  1602  	mapStringForMyCustomMap := "map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type{"
  1603  	for _, k := range keysForMyCustomMap {
  1604  		mapStringForMyCustomMap += fmt.Sprintf("%v: %v,", k, this.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(k)])
  1605  	}
  1606  	mapStringForMyCustomMap += "}"
  1607  	keysForMyNullableMap := make([]int32, 0, len(this.MyNullableMap))
  1608  	for k := range this.MyNullableMap {
  1609  		keysForMyNullableMap = append(keysForMyNullableMap, int32(k))
  1610  	}
  1611  	github_com_gogo_protobuf_sortkeys.Int32s(keysForMyNullableMap)
  1612  	mapStringForMyNullableMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson{"
  1613  	for _, k := range keysForMyNullableMap {
  1614  		mapStringForMyNullableMap += fmt.Sprintf("%v: %v,", k, this.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)])
  1615  	}
  1616  	mapStringForMyNullableMap += "}"
  1617  	keysForMyEmbeddedMap := make([]int32, 0, len(this.MyEmbeddedMap))
  1618  	for k := range this.MyEmbeddedMap {
  1619  		keysForMyEmbeddedMap = append(keysForMyEmbeddedMap, int32(k))
  1620  	}
  1621  	github_com_gogo_protobuf_sortkeys.Int32s(keysForMyEmbeddedMap)
  1622  	mapStringForMyEmbeddedMap := "map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson{"
  1623  	for _, k := range keysForMyEmbeddedMap {
  1624  		mapStringForMyEmbeddedMap += fmt.Sprintf("%v: %v,", k, this.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(k)])
  1625  	}
  1626  	mapStringForMyEmbeddedMap += "}"
  1627  	s := strings.Join([]string{`&Castaway{`,
  1628  		`Int32Ptr:` + valueToStringCasttype(this.Int32Ptr) + `,`,
  1629  		`Int32:` + fmt.Sprintf("%v", this.Int32) + `,`,
  1630  		`MyUint64Ptr:` + valueToStringCasttype(this.MyUint64Ptr) + `,`,
  1631  		`MyUint64:` + fmt.Sprintf("%v", this.MyUint64) + `,`,
  1632  		`MyFloat32Ptr:` + valueToStringCasttype(this.MyFloat32Ptr) + `,`,
  1633  		`MyFloat32:` + fmt.Sprintf("%v", this.MyFloat32) + `,`,
  1634  		`MyFloat64Ptr:` + valueToStringCasttype(this.MyFloat64Ptr) + `,`,
  1635  		`MyFloat64:` + fmt.Sprintf("%v", this.MyFloat64) + `,`,
  1636  		`MyBytes:` + valueToStringCasttype(this.MyBytes) + `,`,
  1637  		`NormalBytes:` + valueToStringCasttype(this.NormalBytes) + `,`,
  1638  		`MyUint64S:` + fmt.Sprintf("%v", this.MyUint64S) + `,`,
  1639  		`MyMap:` + mapStringForMyMap + `,`,
  1640  		`MyCustomMap:` + mapStringForMyCustomMap + `,`,
  1641  		`MyNullableMap:` + mapStringForMyNullableMap + `,`,
  1642  		`MyEmbeddedMap:` + mapStringForMyEmbeddedMap + `,`,
  1643  		`String_:` + valueToStringCasttype(this.String_) + `,`,
  1644  		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
  1645  		`}`,
  1646  	}, "")
  1647  	return s
  1648  }
  1649  func (this *Wilson) String() string {
  1650  	if this == nil {
  1651  		return "nil"
  1652  	}
  1653  	s := strings.Join([]string{`&Wilson{`,
  1654  		`Int64:` + valueToStringCasttype(this.Int64) + `,`,
  1655  		`XXX_unrecognized:` + fmt.Sprintf("%v", this.XXX_unrecognized) + `,`,
  1656  		`}`,
  1657  	}, "")
  1658  	return s
  1659  }
  1660  func valueToStringCasttype(v interface{}) string {
  1661  	rv := reflect.ValueOf(v)
  1662  	if rv.IsNil() {
  1663  		return "nil"
  1664  	}
  1665  	pv := reflect.Indirect(rv).Interface()
  1666  	return fmt.Sprintf("*%v", pv)
  1667  }
  1668  func (m *Castaway) Unmarshal(dAtA []byte) error {
  1669  	l := len(dAtA)
  1670  	iNdEx := 0
  1671  	for iNdEx < l {
  1672  		preIndex := iNdEx
  1673  		var wire uint64
  1674  		for shift := uint(0); ; shift += 7 {
  1675  			if shift >= 64 {
  1676  				return ErrIntOverflowCasttype
  1677  			}
  1678  			if iNdEx >= l {
  1679  				return io.ErrUnexpectedEOF
  1680  			}
  1681  			b := dAtA[iNdEx]
  1682  			iNdEx++
  1683  			wire |= uint64(b&0x7F) << shift
  1684  			if b < 0x80 {
  1685  				break
  1686  			}
  1687  		}
  1688  		fieldNum := int32(wire >> 3)
  1689  		wireType := int(wire & 0x7)
  1690  		if wireType == 4 {
  1691  			return fmt.Errorf("proto: Castaway: wiretype end group for non-group")
  1692  		}
  1693  		if fieldNum <= 0 {
  1694  			return fmt.Errorf("proto: Castaway: illegal tag %d (wire type %d)", fieldNum, wire)
  1695  		}
  1696  		switch fieldNum {
  1697  		case 1:
  1698  			if wireType != 0 {
  1699  				return fmt.Errorf("proto: wrong wireType = %d for field Int32Ptr", wireType)
  1700  			}
  1701  			var v int32
  1702  			for shift := uint(0); ; shift += 7 {
  1703  				if shift >= 64 {
  1704  					return ErrIntOverflowCasttype
  1705  				}
  1706  				if iNdEx >= l {
  1707  					return io.ErrUnexpectedEOF
  1708  				}
  1709  				b := dAtA[iNdEx]
  1710  				iNdEx++
  1711  				v |= int32(b&0x7F) << shift
  1712  				if b < 0x80 {
  1713  					break
  1714  				}
  1715  			}
  1716  			m.Int32Ptr = &v
  1717  		case 2:
  1718  			if wireType != 0 {
  1719  				return fmt.Errorf("proto: wrong wireType = %d for field Int32", wireType)
  1720  			}
  1721  			m.Int32 = 0
  1722  			for shift := uint(0); ; shift += 7 {
  1723  				if shift >= 64 {
  1724  					return ErrIntOverflowCasttype
  1725  				}
  1726  				if iNdEx >= l {
  1727  					return io.ErrUnexpectedEOF
  1728  				}
  1729  				b := dAtA[iNdEx]
  1730  				iNdEx++
  1731  				m.Int32 |= int32(b&0x7F) << shift
  1732  				if b < 0x80 {
  1733  					break
  1734  				}
  1735  			}
  1736  		case 3:
  1737  			if wireType != 0 {
  1738  				return fmt.Errorf("proto: wrong wireType = %d for field MyUint64Ptr", wireType)
  1739  			}
  1740  			var v github_com_gogo_protobuf_test_casttype.MyUint64Type
  1741  			for shift := uint(0); ; shift += 7 {
  1742  				if shift >= 64 {
  1743  					return ErrIntOverflowCasttype
  1744  				}
  1745  				if iNdEx >= l {
  1746  					return io.ErrUnexpectedEOF
  1747  				}
  1748  				b := dAtA[iNdEx]
  1749  				iNdEx++
  1750  				v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
  1751  				if b < 0x80 {
  1752  					break
  1753  				}
  1754  			}
  1755  			m.MyUint64Ptr = &v
  1756  		case 4:
  1757  			if wireType != 0 {
  1758  				return fmt.Errorf("proto: wrong wireType = %d for field MyUint64", wireType)
  1759  			}
  1760  			m.MyUint64 = 0
  1761  			for shift := uint(0); ; shift += 7 {
  1762  				if shift >= 64 {
  1763  					return ErrIntOverflowCasttype
  1764  				}
  1765  				if iNdEx >= l {
  1766  					return io.ErrUnexpectedEOF
  1767  				}
  1768  				b := dAtA[iNdEx]
  1769  				iNdEx++
  1770  				m.MyUint64 |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
  1771  				if b < 0x80 {
  1772  					break
  1773  				}
  1774  			}
  1775  		case 5:
  1776  			if wireType != 5 {
  1777  				return fmt.Errorf("proto: wrong wireType = %d for field MyFloat32Ptr", wireType)
  1778  			}
  1779  			var v uint32
  1780  			if (iNdEx + 4) > l {
  1781  				return io.ErrUnexpectedEOF
  1782  			}
  1783  			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
  1784  			iNdEx += 4
  1785  			v2 := github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v))
  1786  			m.MyFloat32Ptr = &v2
  1787  		case 6:
  1788  			if wireType != 5 {
  1789  				return fmt.Errorf("proto: wrong wireType = %d for field MyFloat32", wireType)
  1790  			}
  1791  			var v uint32
  1792  			if (iNdEx + 4) > l {
  1793  				return io.ErrUnexpectedEOF
  1794  			}
  1795  			v = uint32(encoding_binary.LittleEndian.Uint32(dAtA[iNdEx:]))
  1796  			iNdEx += 4
  1797  			m.MyFloat32 = github_com_gogo_protobuf_test_casttype.MyFloat32Type(math.Float32frombits(v))
  1798  		case 7:
  1799  			if wireType != 1 {
  1800  				return fmt.Errorf("proto: wrong wireType = %d for field MyFloat64Ptr", wireType)
  1801  			}
  1802  			var v uint64
  1803  			if (iNdEx + 8) > l {
  1804  				return io.ErrUnexpectedEOF
  1805  			}
  1806  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1807  			iNdEx += 8
  1808  			v2 := github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v))
  1809  			m.MyFloat64Ptr = &v2
  1810  		case 8:
  1811  			if wireType != 1 {
  1812  				return fmt.Errorf("proto: wrong wireType = %d for field MyFloat64", wireType)
  1813  			}
  1814  			var v uint64
  1815  			if (iNdEx + 8) > l {
  1816  				return io.ErrUnexpectedEOF
  1817  			}
  1818  			v = uint64(encoding_binary.LittleEndian.Uint64(dAtA[iNdEx:]))
  1819  			iNdEx += 8
  1820  			m.MyFloat64 = github_com_gogo_protobuf_test_casttype.MyFloat64Type(math.Float64frombits(v))
  1821  		case 9:
  1822  			if wireType != 2 {
  1823  				return fmt.Errorf("proto: wrong wireType = %d for field MyBytes", wireType)
  1824  			}
  1825  			var byteLen int
  1826  			for shift := uint(0); ; shift += 7 {
  1827  				if shift >= 64 {
  1828  					return ErrIntOverflowCasttype
  1829  				}
  1830  				if iNdEx >= l {
  1831  					return io.ErrUnexpectedEOF
  1832  				}
  1833  				b := dAtA[iNdEx]
  1834  				iNdEx++
  1835  				byteLen |= int(b&0x7F) << shift
  1836  				if b < 0x80 {
  1837  					break
  1838  				}
  1839  			}
  1840  			if byteLen < 0 {
  1841  				return ErrInvalidLengthCasttype
  1842  			}
  1843  			postIndex := iNdEx + byteLen
  1844  			if postIndex < 0 {
  1845  				return ErrInvalidLengthCasttype
  1846  			}
  1847  			if postIndex > l {
  1848  				return io.ErrUnexpectedEOF
  1849  			}
  1850  			m.MyBytes = append(m.MyBytes[:0], dAtA[iNdEx:postIndex]...)
  1851  			if m.MyBytes == nil {
  1852  				m.MyBytes = []byte{}
  1853  			}
  1854  			iNdEx = postIndex
  1855  		case 10:
  1856  			if wireType != 2 {
  1857  				return fmt.Errorf("proto: wrong wireType = %d for field NormalBytes", wireType)
  1858  			}
  1859  			var byteLen int
  1860  			for shift := uint(0); ; shift += 7 {
  1861  				if shift >= 64 {
  1862  					return ErrIntOverflowCasttype
  1863  				}
  1864  				if iNdEx >= l {
  1865  					return io.ErrUnexpectedEOF
  1866  				}
  1867  				b := dAtA[iNdEx]
  1868  				iNdEx++
  1869  				byteLen |= int(b&0x7F) << shift
  1870  				if b < 0x80 {
  1871  					break
  1872  				}
  1873  			}
  1874  			if byteLen < 0 {
  1875  				return ErrInvalidLengthCasttype
  1876  			}
  1877  			postIndex := iNdEx + byteLen
  1878  			if postIndex < 0 {
  1879  				return ErrInvalidLengthCasttype
  1880  			}
  1881  			if postIndex > l {
  1882  				return io.ErrUnexpectedEOF
  1883  			}
  1884  			m.NormalBytes = append(m.NormalBytes[:0], dAtA[iNdEx:postIndex]...)
  1885  			if m.NormalBytes == nil {
  1886  				m.NormalBytes = []byte{}
  1887  			}
  1888  			iNdEx = postIndex
  1889  		case 11:
  1890  			if wireType == 0 {
  1891  				var v github_com_gogo_protobuf_test_casttype.MyUint64Type
  1892  				for shift := uint(0); ; shift += 7 {
  1893  					if shift >= 64 {
  1894  						return ErrIntOverflowCasttype
  1895  					}
  1896  					if iNdEx >= l {
  1897  						return io.ErrUnexpectedEOF
  1898  					}
  1899  					b := dAtA[iNdEx]
  1900  					iNdEx++
  1901  					v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
  1902  					if b < 0x80 {
  1903  						break
  1904  					}
  1905  				}
  1906  				m.MyUint64S = append(m.MyUint64S, v)
  1907  			} else if wireType == 2 {
  1908  				var packedLen int
  1909  				for shift := uint(0); ; shift += 7 {
  1910  					if shift >= 64 {
  1911  						return ErrIntOverflowCasttype
  1912  					}
  1913  					if iNdEx >= l {
  1914  						return io.ErrUnexpectedEOF
  1915  					}
  1916  					b := dAtA[iNdEx]
  1917  					iNdEx++
  1918  					packedLen |= int(b&0x7F) << shift
  1919  					if b < 0x80 {
  1920  						break
  1921  					}
  1922  				}
  1923  				if packedLen < 0 {
  1924  					return ErrInvalidLengthCasttype
  1925  				}
  1926  				postIndex := iNdEx + packedLen
  1927  				if postIndex < 0 {
  1928  					return ErrInvalidLengthCasttype
  1929  				}
  1930  				if postIndex > l {
  1931  					return io.ErrUnexpectedEOF
  1932  				}
  1933  				var elementCount int
  1934  				var count int
  1935  				for _, integer := range dAtA[iNdEx:postIndex] {
  1936  					if integer < 128 {
  1937  						count++
  1938  					}
  1939  				}
  1940  				elementCount = count
  1941  				if elementCount != 0 && len(m.MyUint64S) == 0 {
  1942  					m.MyUint64S = make([]github_com_gogo_protobuf_test_casttype.MyUint64Type, 0, elementCount)
  1943  				}
  1944  				for iNdEx < postIndex {
  1945  					var v github_com_gogo_protobuf_test_casttype.MyUint64Type
  1946  					for shift := uint(0); ; shift += 7 {
  1947  						if shift >= 64 {
  1948  							return ErrIntOverflowCasttype
  1949  						}
  1950  						if iNdEx >= l {
  1951  							return io.ErrUnexpectedEOF
  1952  						}
  1953  						b := dAtA[iNdEx]
  1954  						iNdEx++
  1955  						v |= github_com_gogo_protobuf_test_casttype.MyUint64Type(b&0x7F) << shift
  1956  						if b < 0x80 {
  1957  							break
  1958  						}
  1959  					}
  1960  					m.MyUint64S = append(m.MyUint64S, v)
  1961  				}
  1962  			} else {
  1963  				return fmt.Errorf("proto: wrong wireType = %d for field MyUint64S", wireType)
  1964  			}
  1965  		case 12:
  1966  			if wireType != 2 {
  1967  				return fmt.Errorf("proto: wrong wireType = %d for field MyMap", wireType)
  1968  			}
  1969  			var msglen int
  1970  			for shift := uint(0); ; shift += 7 {
  1971  				if shift >= 64 {
  1972  					return ErrIntOverflowCasttype
  1973  				}
  1974  				if iNdEx >= l {
  1975  					return io.ErrUnexpectedEOF
  1976  				}
  1977  				b := dAtA[iNdEx]
  1978  				iNdEx++
  1979  				msglen |= int(b&0x7F) << shift
  1980  				if b < 0x80 {
  1981  					break
  1982  				}
  1983  			}
  1984  			if msglen < 0 {
  1985  				return ErrInvalidLengthCasttype
  1986  			}
  1987  			postIndex := iNdEx + msglen
  1988  			if postIndex < 0 {
  1989  				return ErrInvalidLengthCasttype
  1990  			}
  1991  			if postIndex > l {
  1992  				return io.ErrUnexpectedEOF
  1993  			}
  1994  			if m.MyMap == nil {
  1995  				m.MyMap = make(github_com_gogo_protobuf_test_casttype.MyMapType)
  1996  			}
  1997  			var mapkey string
  1998  			var mapvalue uint64
  1999  			for iNdEx < postIndex {
  2000  				entryPreIndex := iNdEx
  2001  				var wire uint64
  2002  				for shift := uint(0); ; shift += 7 {
  2003  					if shift >= 64 {
  2004  						return ErrIntOverflowCasttype
  2005  					}
  2006  					if iNdEx >= l {
  2007  						return io.ErrUnexpectedEOF
  2008  					}
  2009  					b := dAtA[iNdEx]
  2010  					iNdEx++
  2011  					wire |= uint64(b&0x7F) << shift
  2012  					if b < 0x80 {
  2013  						break
  2014  					}
  2015  				}
  2016  				fieldNum := int32(wire >> 3)
  2017  				if fieldNum == 1 {
  2018  					var stringLenmapkey uint64
  2019  					for shift := uint(0); ; shift += 7 {
  2020  						if shift >= 64 {
  2021  							return ErrIntOverflowCasttype
  2022  						}
  2023  						if iNdEx >= l {
  2024  							return io.ErrUnexpectedEOF
  2025  						}
  2026  						b := dAtA[iNdEx]
  2027  						iNdEx++
  2028  						stringLenmapkey |= uint64(b&0x7F) << shift
  2029  						if b < 0x80 {
  2030  							break
  2031  						}
  2032  					}
  2033  					intStringLenmapkey := int(stringLenmapkey)
  2034  					if intStringLenmapkey < 0 {
  2035  						return ErrInvalidLengthCasttype
  2036  					}
  2037  					postStringIndexmapkey := iNdEx + intStringLenmapkey
  2038  					if postStringIndexmapkey < 0 {
  2039  						return ErrInvalidLengthCasttype
  2040  					}
  2041  					if postStringIndexmapkey > l {
  2042  						return io.ErrUnexpectedEOF
  2043  					}
  2044  					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
  2045  					iNdEx = postStringIndexmapkey
  2046  				} else if fieldNum == 2 {
  2047  					for shift := uint(0); ; shift += 7 {
  2048  						if shift >= 64 {
  2049  							return ErrIntOverflowCasttype
  2050  						}
  2051  						if iNdEx >= l {
  2052  							return io.ErrUnexpectedEOF
  2053  						}
  2054  						b := dAtA[iNdEx]
  2055  						iNdEx++
  2056  						mapvalue |= uint64(b&0x7F) << shift
  2057  						if b < 0x80 {
  2058  							break
  2059  						}
  2060  					}
  2061  				} else {
  2062  					iNdEx = entryPreIndex
  2063  					skippy, err := skipCasttype(dAtA[iNdEx:])
  2064  					if err != nil {
  2065  						return err
  2066  					}
  2067  					if (skippy < 0) || (iNdEx+skippy) < 0 {
  2068  						return ErrInvalidLengthCasttype
  2069  					}
  2070  					if (iNdEx + skippy) > postIndex {
  2071  						return io.ErrUnexpectedEOF
  2072  					}
  2073  					iNdEx += skippy
  2074  				}
  2075  			}
  2076  			m.MyMap[mapkey] = mapvalue
  2077  			iNdEx = postIndex
  2078  		case 13:
  2079  			if wireType != 2 {
  2080  				return fmt.Errorf("proto: wrong wireType = %d for field MyCustomMap", wireType)
  2081  			}
  2082  			var msglen int
  2083  			for shift := uint(0); ; shift += 7 {
  2084  				if shift >= 64 {
  2085  					return ErrIntOverflowCasttype
  2086  				}
  2087  				if iNdEx >= l {
  2088  					return io.ErrUnexpectedEOF
  2089  				}
  2090  				b := dAtA[iNdEx]
  2091  				iNdEx++
  2092  				msglen |= int(b&0x7F) << shift
  2093  				if b < 0x80 {
  2094  					break
  2095  				}
  2096  			}
  2097  			if msglen < 0 {
  2098  				return ErrInvalidLengthCasttype
  2099  			}
  2100  			postIndex := iNdEx + msglen
  2101  			if postIndex < 0 {
  2102  				return ErrInvalidLengthCasttype
  2103  			}
  2104  			if postIndex > l {
  2105  				return io.ErrUnexpectedEOF
  2106  			}
  2107  			if m.MyCustomMap == nil {
  2108  				m.MyCustomMap = make(map[github_com_gogo_protobuf_test_casttype.MyStringType]github_com_gogo_protobuf_test_casttype.MyUint64Type)
  2109  			}
  2110  			var mapkey github_com_gogo_protobuf_test_casttype.MyStringType
  2111  			var mapvalue uint64
  2112  			for iNdEx < postIndex {
  2113  				entryPreIndex := iNdEx
  2114  				var wire uint64
  2115  				for shift := uint(0); ; shift += 7 {
  2116  					if shift >= 64 {
  2117  						return ErrIntOverflowCasttype
  2118  					}
  2119  					if iNdEx >= l {
  2120  						return io.ErrUnexpectedEOF
  2121  					}
  2122  					b := dAtA[iNdEx]
  2123  					iNdEx++
  2124  					wire |= uint64(b&0x7F) << shift
  2125  					if b < 0x80 {
  2126  						break
  2127  					}
  2128  				}
  2129  				fieldNum := int32(wire >> 3)
  2130  				if fieldNum == 1 {
  2131  					var stringLenmapkey uint64
  2132  					for shift := uint(0); ; shift += 7 {
  2133  						if shift >= 64 {
  2134  							return ErrIntOverflowCasttype
  2135  						}
  2136  						if iNdEx >= l {
  2137  							return io.ErrUnexpectedEOF
  2138  						}
  2139  						b := dAtA[iNdEx]
  2140  						iNdEx++
  2141  						stringLenmapkey |= uint64(b&0x7F) << shift
  2142  						if b < 0x80 {
  2143  							break
  2144  						}
  2145  					}
  2146  					intStringLenmapkey := int(stringLenmapkey)
  2147  					if intStringLenmapkey < 0 {
  2148  						return ErrInvalidLengthCasttype
  2149  					}
  2150  					postStringIndexmapkey := iNdEx + intStringLenmapkey
  2151  					if postStringIndexmapkey < 0 {
  2152  						return ErrInvalidLengthCasttype
  2153  					}
  2154  					if postStringIndexmapkey > l {
  2155  						return io.ErrUnexpectedEOF
  2156  					}
  2157  					mapkey = github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postStringIndexmapkey])
  2158  					iNdEx = postStringIndexmapkey
  2159  				} else if fieldNum == 2 {
  2160  					for shift := uint(0); ; shift += 7 {
  2161  						if shift >= 64 {
  2162  							return ErrIntOverflowCasttype
  2163  						}
  2164  						if iNdEx >= l {
  2165  							return io.ErrUnexpectedEOF
  2166  						}
  2167  						b := dAtA[iNdEx]
  2168  						iNdEx++
  2169  						mapvalue |= uint64(b&0x7F) << shift
  2170  						if b < 0x80 {
  2171  							break
  2172  						}
  2173  					}
  2174  				} else {
  2175  					iNdEx = entryPreIndex
  2176  					skippy, err := skipCasttype(dAtA[iNdEx:])
  2177  					if err != nil {
  2178  						return err
  2179  					}
  2180  					if (skippy < 0) || (iNdEx+skippy) < 0 {
  2181  						return ErrInvalidLengthCasttype
  2182  					}
  2183  					if (iNdEx + skippy) > postIndex {
  2184  						return io.ErrUnexpectedEOF
  2185  					}
  2186  					iNdEx += skippy
  2187  				}
  2188  			}
  2189  			m.MyCustomMap[github_com_gogo_protobuf_test_casttype.MyStringType(mapkey)] = ((github_com_gogo_protobuf_test_casttype.MyUint64Type)(mapvalue))
  2190  			iNdEx = postIndex
  2191  		case 14:
  2192  			if wireType != 2 {
  2193  				return fmt.Errorf("proto: wrong wireType = %d for field MyNullableMap", wireType)
  2194  			}
  2195  			var msglen int
  2196  			for shift := uint(0); ; shift += 7 {
  2197  				if shift >= 64 {
  2198  					return ErrIntOverflowCasttype
  2199  				}
  2200  				if iNdEx >= l {
  2201  					return io.ErrUnexpectedEOF
  2202  				}
  2203  				b := dAtA[iNdEx]
  2204  				iNdEx++
  2205  				msglen |= int(b&0x7F) << shift
  2206  				if b < 0x80 {
  2207  					break
  2208  				}
  2209  			}
  2210  			if msglen < 0 {
  2211  				return ErrInvalidLengthCasttype
  2212  			}
  2213  			postIndex := iNdEx + msglen
  2214  			if postIndex < 0 {
  2215  				return ErrInvalidLengthCasttype
  2216  			}
  2217  			if postIndex > l {
  2218  				return io.ErrUnexpectedEOF
  2219  			}
  2220  			if m.MyNullableMap == nil {
  2221  				m.MyNullableMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]*Wilson)
  2222  			}
  2223  			var mapkey int32
  2224  			var mapvalue *Wilson
  2225  			for iNdEx < postIndex {
  2226  				entryPreIndex := iNdEx
  2227  				var wire uint64
  2228  				for shift := uint(0); ; shift += 7 {
  2229  					if shift >= 64 {
  2230  						return ErrIntOverflowCasttype
  2231  					}
  2232  					if iNdEx >= l {
  2233  						return io.ErrUnexpectedEOF
  2234  					}
  2235  					b := dAtA[iNdEx]
  2236  					iNdEx++
  2237  					wire |= uint64(b&0x7F) << shift
  2238  					if b < 0x80 {
  2239  						break
  2240  					}
  2241  				}
  2242  				fieldNum := int32(wire >> 3)
  2243  				if fieldNum == 1 {
  2244  					for shift := uint(0); ; shift += 7 {
  2245  						if shift >= 64 {
  2246  							return ErrIntOverflowCasttype
  2247  						}
  2248  						if iNdEx >= l {
  2249  							return io.ErrUnexpectedEOF
  2250  						}
  2251  						b := dAtA[iNdEx]
  2252  						iNdEx++
  2253  						mapkey |= int32(b&0x7F) << shift
  2254  						if b < 0x80 {
  2255  							break
  2256  						}
  2257  					}
  2258  				} else if fieldNum == 2 {
  2259  					var mapmsglen int
  2260  					for shift := uint(0); ; shift += 7 {
  2261  						if shift >= 64 {
  2262  							return ErrIntOverflowCasttype
  2263  						}
  2264  						if iNdEx >= l {
  2265  							return io.ErrUnexpectedEOF
  2266  						}
  2267  						b := dAtA[iNdEx]
  2268  						iNdEx++
  2269  						mapmsglen |= int(b&0x7F) << shift
  2270  						if b < 0x80 {
  2271  							break
  2272  						}
  2273  					}
  2274  					if mapmsglen < 0 {
  2275  						return ErrInvalidLengthCasttype
  2276  					}
  2277  					postmsgIndex := iNdEx + mapmsglen
  2278  					if postmsgIndex < 0 {
  2279  						return ErrInvalidLengthCasttype
  2280  					}
  2281  					if postmsgIndex > l {
  2282  						return io.ErrUnexpectedEOF
  2283  					}
  2284  					mapvalue = &Wilson{}
  2285  					if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {
  2286  						return err
  2287  					}
  2288  					iNdEx = postmsgIndex
  2289  				} else {
  2290  					iNdEx = entryPreIndex
  2291  					skippy, err := skipCasttype(dAtA[iNdEx:])
  2292  					if err != nil {
  2293  						return err
  2294  					}
  2295  					if (skippy < 0) || (iNdEx+skippy) < 0 {
  2296  						return ErrInvalidLengthCasttype
  2297  					}
  2298  					if (iNdEx + skippy) > postIndex {
  2299  						return io.ErrUnexpectedEOF
  2300  					}
  2301  					iNdEx += skippy
  2302  				}
  2303  			}
  2304  			m.MyNullableMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = mapvalue
  2305  			iNdEx = postIndex
  2306  		case 15:
  2307  			if wireType != 2 {
  2308  				return fmt.Errorf("proto: wrong wireType = %d for field MyEmbeddedMap", wireType)
  2309  			}
  2310  			var msglen int
  2311  			for shift := uint(0); ; shift += 7 {
  2312  				if shift >= 64 {
  2313  					return ErrIntOverflowCasttype
  2314  				}
  2315  				if iNdEx >= l {
  2316  					return io.ErrUnexpectedEOF
  2317  				}
  2318  				b := dAtA[iNdEx]
  2319  				iNdEx++
  2320  				msglen |= int(b&0x7F) << shift
  2321  				if b < 0x80 {
  2322  					break
  2323  				}
  2324  			}
  2325  			if msglen < 0 {
  2326  				return ErrInvalidLengthCasttype
  2327  			}
  2328  			postIndex := iNdEx + msglen
  2329  			if postIndex < 0 {
  2330  				return ErrInvalidLengthCasttype
  2331  			}
  2332  			if postIndex > l {
  2333  				return io.ErrUnexpectedEOF
  2334  			}
  2335  			if m.MyEmbeddedMap == nil {
  2336  				m.MyEmbeddedMap = make(map[github_com_gogo_protobuf_test_casttype.MyInt32Type]Wilson)
  2337  			}
  2338  			var mapkey int32
  2339  			mapvalue := &Wilson{}
  2340  			for iNdEx < postIndex {
  2341  				entryPreIndex := iNdEx
  2342  				var wire uint64
  2343  				for shift := uint(0); ; shift += 7 {
  2344  					if shift >= 64 {
  2345  						return ErrIntOverflowCasttype
  2346  					}
  2347  					if iNdEx >= l {
  2348  						return io.ErrUnexpectedEOF
  2349  					}
  2350  					b := dAtA[iNdEx]
  2351  					iNdEx++
  2352  					wire |= uint64(b&0x7F) << shift
  2353  					if b < 0x80 {
  2354  						break
  2355  					}
  2356  				}
  2357  				fieldNum := int32(wire >> 3)
  2358  				if fieldNum == 1 {
  2359  					for shift := uint(0); ; shift += 7 {
  2360  						if shift >= 64 {
  2361  							return ErrIntOverflowCasttype
  2362  						}
  2363  						if iNdEx >= l {
  2364  							return io.ErrUnexpectedEOF
  2365  						}
  2366  						b := dAtA[iNdEx]
  2367  						iNdEx++
  2368  						mapkey |= int32(b&0x7F) << shift
  2369  						if b < 0x80 {
  2370  							break
  2371  						}
  2372  					}
  2373  				} else if fieldNum == 2 {
  2374  					var mapmsglen int
  2375  					for shift := uint(0); ; shift += 7 {
  2376  						if shift >= 64 {
  2377  							return ErrIntOverflowCasttype
  2378  						}
  2379  						if iNdEx >= l {
  2380  							return io.ErrUnexpectedEOF
  2381  						}
  2382  						b := dAtA[iNdEx]
  2383  						iNdEx++
  2384  						mapmsglen |= int(b&0x7F) << shift
  2385  						if b < 0x80 {
  2386  							break
  2387  						}
  2388  					}
  2389  					if mapmsglen < 0 {
  2390  						return ErrInvalidLengthCasttype
  2391  					}
  2392  					postmsgIndex := iNdEx + mapmsglen
  2393  					if postmsgIndex < 0 {
  2394  						return ErrInvalidLengthCasttype
  2395  					}
  2396  					if postmsgIndex > l {
  2397  						return io.ErrUnexpectedEOF
  2398  					}
  2399  					mapvalue = &Wilson{}
  2400  					if err := mapvalue.Unmarshal(dAtA[iNdEx:postmsgIndex]); err != nil {
  2401  						return err
  2402  					}
  2403  					iNdEx = postmsgIndex
  2404  				} else {
  2405  					iNdEx = entryPreIndex
  2406  					skippy, err := skipCasttype(dAtA[iNdEx:])
  2407  					if err != nil {
  2408  						return err
  2409  					}
  2410  					if (skippy < 0) || (iNdEx+skippy) < 0 {
  2411  						return ErrInvalidLengthCasttype
  2412  					}
  2413  					if (iNdEx + skippy) > postIndex {
  2414  						return io.ErrUnexpectedEOF
  2415  					}
  2416  					iNdEx += skippy
  2417  				}
  2418  			}
  2419  			m.MyEmbeddedMap[github_com_gogo_protobuf_test_casttype.MyInt32Type(mapkey)] = *mapvalue
  2420  			iNdEx = postIndex
  2421  		case 16:
  2422  			if wireType != 2 {
  2423  				return fmt.Errorf("proto: wrong wireType = %d for field String_", wireType)
  2424  			}
  2425  			var stringLen uint64
  2426  			for shift := uint(0); ; shift += 7 {
  2427  				if shift >= 64 {
  2428  					return ErrIntOverflowCasttype
  2429  				}
  2430  				if iNdEx >= l {
  2431  					return io.ErrUnexpectedEOF
  2432  				}
  2433  				b := dAtA[iNdEx]
  2434  				iNdEx++
  2435  				stringLen |= uint64(b&0x7F) << shift
  2436  				if b < 0x80 {
  2437  					break
  2438  				}
  2439  			}
  2440  			intStringLen := int(stringLen)
  2441  			if intStringLen < 0 {
  2442  				return ErrInvalidLengthCasttype
  2443  			}
  2444  			postIndex := iNdEx + intStringLen
  2445  			if postIndex < 0 {
  2446  				return ErrInvalidLengthCasttype
  2447  			}
  2448  			if postIndex > l {
  2449  				return io.ErrUnexpectedEOF
  2450  			}
  2451  			s := github_com_gogo_protobuf_test_casttype.MyStringType(dAtA[iNdEx:postIndex])
  2452  			m.String_ = &s
  2453  			iNdEx = postIndex
  2454  		default:
  2455  			iNdEx = preIndex
  2456  			skippy, err := skipCasttype(dAtA[iNdEx:])
  2457  			if err != nil {
  2458  				return err
  2459  			}
  2460  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  2461  				return ErrInvalidLengthCasttype
  2462  			}
  2463  			if (iNdEx + skippy) > l {
  2464  				return io.ErrUnexpectedEOF
  2465  			}
  2466  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  2467  			iNdEx += skippy
  2468  		}
  2469  	}
  2470  
  2471  	if iNdEx > l {
  2472  		return io.ErrUnexpectedEOF
  2473  	}
  2474  	return nil
  2475  }
  2476  func (m *Wilson) Unmarshal(dAtA []byte) error {
  2477  	l := len(dAtA)
  2478  	iNdEx := 0
  2479  	for iNdEx < l {
  2480  		preIndex := iNdEx
  2481  		var wire uint64
  2482  		for shift := uint(0); ; shift += 7 {
  2483  			if shift >= 64 {
  2484  				return ErrIntOverflowCasttype
  2485  			}
  2486  			if iNdEx >= l {
  2487  				return io.ErrUnexpectedEOF
  2488  			}
  2489  			b := dAtA[iNdEx]
  2490  			iNdEx++
  2491  			wire |= uint64(b&0x7F) << shift
  2492  			if b < 0x80 {
  2493  				break
  2494  			}
  2495  		}
  2496  		fieldNum := int32(wire >> 3)
  2497  		wireType := int(wire & 0x7)
  2498  		if wireType == 4 {
  2499  			return fmt.Errorf("proto: Wilson: wiretype end group for non-group")
  2500  		}
  2501  		if fieldNum <= 0 {
  2502  			return fmt.Errorf("proto: Wilson: illegal tag %d (wire type %d)", fieldNum, wire)
  2503  		}
  2504  		switch fieldNum {
  2505  		case 1:
  2506  			if wireType != 0 {
  2507  				return fmt.Errorf("proto: wrong wireType = %d for field Int64", wireType)
  2508  			}
  2509  			var v int64
  2510  			for shift := uint(0); ; shift += 7 {
  2511  				if shift >= 64 {
  2512  					return ErrIntOverflowCasttype
  2513  				}
  2514  				if iNdEx >= l {
  2515  					return io.ErrUnexpectedEOF
  2516  				}
  2517  				b := dAtA[iNdEx]
  2518  				iNdEx++
  2519  				v |= int64(b&0x7F) << shift
  2520  				if b < 0x80 {
  2521  					break
  2522  				}
  2523  			}
  2524  			m.Int64 = &v
  2525  		default:
  2526  			iNdEx = preIndex
  2527  			skippy, err := skipCasttype(dAtA[iNdEx:])
  2528  			if err != nil {
  2529  				return err
  2530  			}
  2531  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  2532  				return ErrInvalidLengthCasttype
  2533  			}
  2534  			if (iNdEx + skippy) > l {
  2535  				return io.ErrUnexpectedEOF
  2536  			}
  2537  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  2538  			iNdEx += skippy
  2539  		}
  2540  	}
  2541  
  2542  	if iNdEx > l {
  2543  		return io.ErrUnexpectedEOF
  2544  	}
  2545  	return nil
  2546  }
  2547  func skipCasttype(dAtA []byte) (n int, err error) {
  2548  	l := len(dAtA)
  2549  	iNdEx := 0
  2550  	depth := 0
  2551  	for iNdEx < l {
  2552  		var wire uint64
  2553  		for shift := uint(0); ; shift += 7 {
  2554  			if shift >= 64 {
  2555  				return 0, ErrIntOverflowCasttype
  2556  			}
  2557  			if iNdEx >= l {
  2558  				return 0, io.ErrUnexpectedEOF
  2559  			}
  2560  			b := dAtA[iNdEx]
  2561  			iNdEx++
  2562  			wire |= (uint64(b) & 0x7F) << shift
  2563  			if b < 0x80 {
  2564  				break
  2565  			}
  2566  		}
  2567  		wireType := int(wire & 0x7)
  2568  		switch wireType {
  2569  		case 0:
  2570  			for shift := uint(0); ; shift += 7 {
  2571  				if shift >= 64 {
  2572  					return 0, ErrIntOverflowCasttype
  2573  				}
  2574  				if iNdEx >= l {
  2575  					return 0, io.ErrUnexpectedEOF
  2576  				}
  2577  				iNdEx++
  2578  				if dAtA[iNdEx-1] < 0x80 {
  2579  					break
  2580  				}
  2581  			}
  2582  		case 1:
  2583  			iNdEx += 8
  2584  		case 2:
  2585  			var length int
  2586  			for shift := uint(0); ; shift += 7 {
  2587  				if shift >= 64 {
  2588  					return 0, ErrIntOverflowCasttype
  2589  				}
  2590  				if iNdEx >= l {
  2591  					return 0, io.ErrUnexpectedEOF
  2592  				}
  2593  				b := dAtA[iNdEx]
  2594  				iNdEx++
  2595  				length |= (int(b) & 0x7F) << shift
  2596  				if b < 0x80 {
  2597  					break
  2598  				}
  2599  			}
  2600  			if length < 0 {
  2601  				return 0, ErrInvalidLengthCasttype
  2602  			}
  2603  			iNdEx += length
  2604  		case 3:
  2605  			depth++
  2606  		case 4:
  2607  			if depth == 0 {
  2608  				return 0, ErrUnexpectedEndOfGroupCasttype
  2609  			}
  2610  			depth--
  2611  		case 5:
  2612  			iNdEx += 4
  2613  		default:
  2614  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  2615  		}
  2616  		if iNdEx < 0 {
  2617  			return 0, ErrInvalidLengthCasttype
  2618  		}
  2619  		if depth == 0 {
  2620  			return iNdEx, nil
  2621  		}
  2622  	}
  2623  	return 0, io.ErrUnexpectedEOF
  2624  }
  2625  
  2626  var (
  2627  	ErrInvalidLengthCasttype        = fmt.Errorf("proto: negative length found during unmarshaling")
  2628  	ErrIntOverflowCasttype          = fmt.Errorf("proto: integer overflow")
  2629  	ErrUnexpectedEndOfGroupCasttype = fmt.Errorf("proto: unexpected end of group")
  2630  )