github.com/ugorji/go/codec@v1.2.13-0.20240307214044-07c54c229a5a/values_codecgen_generated_test.go (about)

     1  //go:build go1.6 && (codecgen || generated)
     2  // +build go1.6
     3  // +build codecgen generated
     4  
     5  // Code generated by codecgen - DO NOT EDIT.
     6  
     7  package codec
     8  
     9  import (
    10  	"errors"
    11  	"runtime"
    12  	"sort"
    13  	"strconv"
    14  	"time"
    15  )
    16  
    17  const (
    18  	// ----- content types ----
    19  	codecSelferCcUTF819780 = 1
    20  	codecSelferCcRAW19780  = 255
    21  	// ----- value types used ----
    22  	codecSelferValueTypeArray19780     = 10
    23  	codecSelferValueTypeMap19780       = 9
    24  	codecSelferValueTypeString19780    = 6
    25  	codecSelferValueTypeInt19780       = 2
    26  	codecSelferValueTypeUint19780      = 3
    27  	codecSelferValueTypeFloat19780     = 4
    28  	codecSelferValueTypeNil19780       = 1
    29  	codecSelferBitsize19780            = uint8(32 << (^uint(0) >> 63))
    30  	codecSelferDecContainerLenNil19780 = -2147483648
    31  )
    32  
    33  var (
    34  	errCodecSelferOnlyMapOrArrayEncodeToStruct19780                = errors.New(`only encoded map or array can be decoded into a struct`)
    35  	_                                               sort.Interface = nil
    36  )
    37  
    38  type codecSelfer19780 struct{}
    39  
    40  func codecSelfer19780False() bool { return false }
    41  func codecSelfer19780True() bool  { return true }
    42  
    43  type codecSelfer19780stringSlice []string
    44  
    45  func (p codecSelfer19780stringSlice) Len() int           { return len(p) }
    46  func (p codecSelfer19780stringSlice) Swap(i, j int)      { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }
    47  func (p codecSelfer19780stringSlice) Less(i, j int) bool { return p[uint(i)] < p[uint(j)] }
    48  
    49  type codecSelfer19780uint64Slice []uint64
    50  
    51  func (p codecSelfer19780uint64Slice) Len() int           { return len(p) }
    52  func (p codecSelfer19780uint64Slice) Swap(i, j int)      { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }
    53  func (p codecSelfer19780uint64Slice) Less(i, j int) bool { return p[uint(i)] < p[uint(j)] }
    54  
    55  type codecSelfer19780int64Slice []int64
    56  
    57  func (p codecSelfer19780int64Slice) Len() int           { return len(p) }
    58  func (p codecSelfer19780int64Slice) Swap(i, j int)      { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }
    59  func (p codecSelfer19780int64Slice) Less(i, j int) bool { return p[uint(i)] < p[uint(j)] }
    60  
    61  type codecSelfer19780float64Slice []float64
    62  
    63  func (p codecSelfer19780float64Slice) Len() int           { return len(p) }
    64  func (p codecSelfer19780float64Slice) Swap(i, j int)      { p[uint(i)], p[uint(j)] = p[uint(j)], p[uint(i)] }
    65  func (p codecSelfer19780float64Slice) Less(i, j int) bool { return p[uint(i)] < p[uint(j)] }
    66  
    67  func init() {
    68  	if GenVersion != 28 {
    69  		_, file, _, _ := runtime.Caller(0)
    70  		ver := strconv.FormatInt(int64(GenVersion), 10)
    71  		panic(errors.New("codecgen version mismatch: current: 28, need " + ver + ". Re-generate file: " + file))
    72  	}
    73  	if false { // reference the types, but skip this branch at build/run time
    74  		var _ time.Time
    75  	}
    76  }
    77  
    78  func (wrapSliceUint64) codecSelferViaCodecgen() {}
    79  func (x wrapSliceUint64) CodecEncodeSelf(e *Encoder) {
    80  	var h codecSelfer19780
    81  	z, r := GenHelper().Encoder(e)
    82  	_, _, _ = h, z, r
    83  	if x == nil {
    84  		r.EncodeNil()
    85  	} else {
    86  		z.F.EncSliceUint64V(([]uint64)(x), e)
    87  	} // end block: if x slice == nil
    88  }
    89  
    90  func (x *wrapSliceUint64) CodecDecodeSelf(d *Decoder) {
    91  	var h codecSelfer19780
    92  	z, r := GenHelper().Decoder(d)
    93  	_, _, _ = h, z, r
    94  	z.F.DecSliceUint64X((*[]uint64)(x), d)
    95  }
    96  
    97  func (wrapSliceString) codecSelferViaCodecgen() {}
    98  func (x wrapSliceString) CodecEncodeSelf(e *Encoder) {
    99  	var h codecSelfer19780
   100  	z, r := GenHelper().Encoder(e)
   101  	_, _, _ = h, z, r
   102  	if x == nil {
   103  		r.EncodeNil()
   104  	} else {
   105  		z.F.EncSliceStringV(([]string)(x), e)
   106  	} // end block: if x slice == nil
   107  }
   108  
   109  func (x *wrapSliceString) CodecDecodeSelf(d *Decoder) {
   110  	var h codecSelfer19780
   111  	z, r := GenHelper().Decoder(d)
   112  	_, _, _ = h, z, r
   113  	z.F.DecSliceStringX((*[]string)(x), d)
   114  }
   115  
   116  func (wrapUint64) codecSelferViaCodecgen() {}
   117  func (x wrapUint64) CodecEncodeSelf(e *Encoder) {
   118  	var h codecSelfer19780
   119  	z, r := GenHelper().Encoder(e)
   120  	_, _, _ = h, z, r
   121  	r.EncodeUint(uint64(x))
   122  }
   123  
   124  func (x *wrapUint64) CodecDecodeSelf(d *Decoder) {
   125  	var h codecSelfer19780
   126  	z, r := GenHelper().Decoder(d)
   127  	_, _, _ = h, z, r
   128  	*x = (wrapUint64)(r.DecodeUint64())
   129  }
   130  
   131  func (wrapString) codecSelferViaCodecgen() {}
   132  func (x wrapString) CodecEncodeSelf(e *Encoder) {
   133  	var h codecSelfer19780
   134  	z, r := GenHelper().Encoder(e)
   135  	_, _, _ = h, z, r
   136  	r.EncodeString(string(x))
   137  }
   138  
   139  func (x *wrapString) CodecDecodeSelf(d *Decoder) {
   140  	var h codecSelfer19780
   141  	z, r := GenHelper().Decoder(d)
   142  	_, _, _ = h, z, r
   143  	*x = (wrapString)(z.DecStringZC(r.DecodeStringAsBytes()))
   144  }
   145  
   146  func (wrapUint64Slice) codecSelferViaCodecgen() {}
   147  func (x wrapUint64Slice) CodecEncodeSelf(e *Encoder) {
   148  	var h codecSelfer19780
   149  	z, r := GenHelper().Encoder(e)
   150  	_, _, _ = h, z, r
   151  	if x == nil {
   152  		r.EncodeNil()
   153  	} else {
   154  		h.encwrapUint64Slice((wrapUint64Slice)(x), e)
   155  	} // end block: if x slice == nil
   156  }
   157  
   158  func (x *wrapUint64Slice) CodecDecodeSelf(d *Decoder) {
   159  	var h codecSelfer19780
   160  	z, r := GenHelper().Decoder(d)
   161  	_, _, _ = h, z, r
   162  	h.decwrapUint64Slice((*wrapUint64Slice)(x), d)
   163  }
   164  
   165  func (wrapStringSlice) codecSelferViaCodecgen() {}
   166  func (x wrapStringSlice) CodecEncodeSelf(e *Encoder) {
   167  	var h codecSelfer19780
   168  	z, r := GenHelper().Encoder(e)
   169  	_, _, _ = h, z, r
   170  	if x == nil {
   171  		r.EncodeNil()
   172  	} else {
   173  		h.encwrapStringSlice((wrapStringSlice)(x), e)
   174  	} // end block: if x slice == nil
   175  }
   176  
   177  func (x *wrapStringSlice) CodecDecodeSelf(d *Decoder) {
   178  	var h codecSelfer19780
   179  	z, r := GenHelper().Decoder(d)
   180  	_, _, _ = h, z, r
   181  	h.decwrapStringSlice((*wrapStringSlice)(x), d)
   182  }
   183  
   184  func (stringUint64T) codecSelferViaCodecgen() {}
   185  func (x *stringUint64T) CodecEncodeSelf(e *Encoder) {
   186  	var h codecSelfer19780
   187  	z, r := GenHelper().Encoder(e)
   188  	_, _, _ = h, z, r
   189  	if z.EncBasicHandle().CheckCircularRef {
   190  		z.EncEncode(x)
   191  		return
   192  	}
   193  	if x == nil {
   194  		r.EncodeNil()
   195  	} else {
   196  		yy2arr2 := z.EncBasicHandle().StructToArray
   197  		_ = yy2arr2
   198  		const yyr2 bool = false // struct tag has 'toArray'
   199  		if yyr2 || yy2arr2 {
   200  			z.EncWriteArrayStart(2)
   201  			z.EncWriteArrayElem()
   202  			r.EncodeString(string(x.S))
   203  			z.EncWriteArrayElem()
   204  			r.EncodeUint(uint64(x.U))
   205  			z.EncWriteArrayEnd()
   206  		} else {
   207  			z.EncWriteMapStart(2)
   208  			if z.EncBasicHandle().Canonical {
   209  				z.EncWriteMapElemKey()
   210  				if z.IsJSONHandle() {
   211  					z.EncWr().WriteStr("\"S\"")
   212  				} else {
   213  					r.EncodeString(`S`)
   214  				}
   215  				z.EncWriteMapElemValue()
   216  				r.EncodeString(string(x.S))
   217  				z.EncWriteMapElemKey()
   218  				if z.IsJSONHandle() {
   219  					z.EncWr().WriteStr("\"U\"")
   220  				} else {
   221  					r.EncodeString(`U`)
   222  				}
   223  				z.EncWriteMapElemValue()
   224  				r.EncodeUint(uint64(x.U))
   225  			} else {
   226  				z.EncWriteMapElemKey()
   227  				if z.IsJSONHandle() {
   228  					z.EncWr().WriteStr("\"S\"")
   229  				} else {
   230  					r.EncodeString(`S`)
   231  				}
   232  				z.EncWriteMapElemValue()
   233  				r.EncodeString(string(x.S))
   234  				z.EncWriteMapElemKey()
   235  				if z.IsJSONHandle() {
   236  					z.EncWr().WriteStr("\"U\"")
   237  				} else {
   238  					r.EncodeString(`U`)
   239  				}
   240  				z.EncWriteMapElemValue()
   241  				r.EncodeUint(uint64(x.U))
   242  			}
   243  			z.EncWriteMapEnd()
   244  		}
   245  	}
   246  }
   247  
   248  func (x *stringUint64T) CodecDecodeSelf(d *Decoder) {
   249  	var h codecSelfer19780
   250  	z, r := GenHelper().Decoder(d)
   251  	_, _, _ = h, z, r
   252  	yyct2 := r.ContainerType()
   253  	if yyct2 == codecSelferValueTypeNil19780 {
   254  		*(x) = stringUint64T{}
   255  	} else if yyct2 == codecSelferValueTypeMap19780 {
   256  		yyl2 := z.DecReadMapStart()
   257  		if yyl2 == 0 {
   258  		} else {
   259  			x.codecDecodeSelfFromMap(yyl2, d)
   260  		}
   261  		z.DecReadMapEnd()
   262  	} else if yyct2 == codecSelferValueTypeArray19780 {
   263  		yyl2 := z.DecReadArrayStart()
   264  		if yyl2 != 0 {
   265  			x.codecDecodeSelfFromArray(yyl2, d)
   266  		}
   267  		z.DecReadArrayEnd()
   268  	} else {
   269  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
   270  	}
   271  }
   272  
   273  func (x *stringUint64T) codecDecodeSelfFromMap(l int, d *Decoder) {
   274  	var h codecSelfer19780
   275  	z, r := GenHelper().Decoder(d)
   276  	_, _, _ = h, z, r
   277  	var yyhl3 bool = l >= 0
   278  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
   279  		z.DecReadMapElemKey()
   280  		yys3 := r.DecodeStringAsBytes()
   281  		z.DecReadMapElemValue()
   282  		switch string(yys3) {
   283  		case "S":
   284  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   285  		case "U":
   286  			x.U = (uint64)(r.DecodeUint64())
   287  		default:
   288  			z.DecStructFieldNotFound(-1, string(yys3))
   289  		} // end switch yys3
   290  	} // end for yyj3
   291  }
   292  
   293  func (x *stringUint64T) codecDecodeSelfFromArray(l int, d *Decoder) {
   294  	var h codecSelfer19780
   295  	z, r := GenHelper().Decoder(d)
   296  	_, _, _ = h, z, r
   297  	var yyj6 int
   298  	var yyb6 bool
   299  	var yyhl6 bool = l >= 0
   300  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
   301  	if yyb6 {
   302  		z.DecReadArrayEnd()
   303  		return
   304  	}
   305  	z.DecReadArrayElem()
   306  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   307  	yyj6++
   308  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
   309  	if yyb6 {
   310  		z.DecReadArrayEnd()
   311  		return
   312  	}
   313  	z.DecReadArrayElem()
   314  	x.U = (uint64)(r.DecodeUint64())
   315  	yyj6++
   316  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
   317  		z.DecReadArrayElem()
   318  		z.DecStructFieldNotFound(yyj6-1, "")
   319  	}
   320  }
   321  
   322  func (x *stringUint64T) IsCodecEmpty() bool {
   323  	return !(x.S != "" || x.U != 0 || false)
   324  }
   325  
   326  func (AnonInTestStrucSlim) codecSelferViaCodecgen() {}
   327  func (x *AnonInTestStrucSlim) CodecEncodeSelf(e *Encoder) {
   328  	var h codecSelfer19780
   329  	z, r := GenHelper().Encoder(e)
   330  	_, _, _ = h, z, r
   331  	if z.EncBasicHandle().CheckCircularRef {
   332  		z.EncEncode(x)
   333  		return
   334  	}
   335  	if x == nil {
   336  		r.EncodeNil()
   337  	} else {
   338  		yy2arr2 := z.EncBasicHandle().StructToArray
   339  		_ = yy2arr2
   340  		const yyr2 bool = false // struct tag has 'toArray'
   341  		var yyn4 bool = x.P == nil
   342  		if yyr2 || yy2arr2 {
   343  			z.EncWriteArrayStart(2)
   344  			z.EncWriteArrayElem()
   345  			r.EncodeString(string(x.S))
   346  			if yyn4 {
   347  				z.EncWriteArrayElem()
   348  				r.EncodeNil()
   349  			} else {
   350  				z.EncWriteArrayElem()
   351  				yy6 := *x.P
   352  				r.EncodeString(string(yy6))
   353  			}
   354  			z.EncWriteArrayEnd()
   355  		} else {
   356  			z.EncWriteMapStart(2)
   357  			if z.EncBasicHandle().Canonical {
   358  				z.EncWriteMapElemKey()
   359  				if z.IsJSONHandle() {
   360  					z.EncWr().WriteStr("\"P\"")
   361  				} else {
   362  					r.EncodeString(`P`)
   363  				}
   364  				z.EncWriteMapElemValue()
   365  				if yyn4 {
   366  					r.EncodeNil()
   367  				} else {
   368  					yy8 := *x.P
   369  					r.EncodeString(string(yy8))
   370  				}
   371  				z.EncWriteMapElemKey()
   372  				if z.IsJSONHandle() {
   373  					z.EncWr().WriteStr("\"S\"")
   374  				} else {
   375  					r.EncodeString(`S`)
   376  				}
   377  				z.EncWriteMapElemValue()
   378  				r.EncodeString(string(x.S))
   379  			} else {
   380  				z.EncWriteMapElemKey()
   381  				if z.IsJSONHandle() {
   382  					z.EncWr().WriteStr("\"S\"")
   383  				} else {
   384  					r.EncodeString(`S`)
   385  				}
   386  				z.EncWriteMapElemValue()
   387  				r.EncodeString(string(x.S))
   388  				z.EncWriteMapElemKey()
   389  				if z.IsJSONHandle() {
   390  					z.EncWr().WriteStr("\"P\"")
   391  				} else {
   392  					r.EncodeString(`P`)
   393  				}
   394  				z.EncWriteMapElemValue()
   395  				if yyn4 {
   396  					r.EncodeNil()
   397  				} else {
   398  					yy12 := *x.P
   399  					r.EncodeString(string(yy12))
   400  				}
   401  			}
   402  			z.EncWriteMapEnd()
   403  		}
   404  	}
   405  }
   406  
   407  func (x *AnonInTestStrucSlim) CodecDecodeSelf(d *Decoder) {
   408  	var h codecSelfer19780
   409  	z, r := GenHelper().Decoder(d)
   410  	_, _, _ = h, z, r
   411  	yyct2 := r.ContainerType()
   412  	if yyct2 == codecSelferValueTypeNil19780 {
   413  		*(x) = AnonInTestStrucSlim{}
   414  	} else if yyct2 == codecSelferValueTypeMap19780 {
   415  		yyl2 := z.DecReadMapStart()
   416  		if yyl2 == 0 {
   417  		} else {
   418  			x.codecDecodeSelfFromMap(yyl2, d)
   419  		}
   420  		z.DecReadMapEnd()
   421  	} else if yyct2 == codecSelferValueTypeArray19780 {
   422  		yyl2 := z.DecReadArrayStart()
   423  		if yyl2 != 0 {
   424  			x.codecDecodeSelfFromArray(yyl2, d)
   425  		}
   426  		z.DecReadArrayEnd()
   427  	} else {
   428  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
   429  	}
   430  }
   431  
   432  func (x *AnonInTestStrucSlim) codecDecodeSelfFromMap(l int, d *Decoder) {
   433  	var h codecSelfer19780
   434  	z, r := GenHelper().Decoder(d)
   435  	_, _, _ = h, z, r
   436  	var yyhl3 bool = l >= 0
   437  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
   438  		z.DecReadMapElemKey()
   439  		yys3 := r.DecodeStringAsBytes()
   440  		z.DecReadMapElemValue()
   441  		switch string(yys3) {
   442  		case "S":
   443  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   444  		case "P":
   445  			if r.TryNil() {
   446  				if x.P != nil { // remove the if-true
   447  					x.P = nil
   448  				}
   449  			} else {
   450  				if x.P == nil {
   451  					x.P = new(string)
   452  				}
   453  				*x.P = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   454  			}
   455  		default:
   456  			z.DecStructFieldNotFound(-1, string(yys3))
   457  		} // end switch yys3
   458  	} // end for yyj3
   459  }
   460  
   461  func (x *AnonInTestStrucSlim) codecDecodeSelfFromArray(l int, d *Decoder) {
   462  	var h codecSelfer19780
   463  	z, r := GenHelper().Decoder(d)
   464  	_, _, _ = h, z, r
   465  	var yyj7 int
   466  	var yyb7 bool
   467  	var yyhl7 bool = l >= 0
   468  	yyb7 = !z.DecContainerNext(yyj7, l, yyhl7)
   469  	if yyb7 {
   470  		z.DecReadArrayEnd()
   471  		return
   472  	}
   473  	z.DecReadArrayElem()
   474  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   475  	yyj7++
   476  	yyb7 = !z.DecContainerNext(yyj7, l, yyhl7)
   477  	if yyb7 {
   478  		z.DecReadArrayEnd()
   479  		return
   480  	}
   481  	z.DecReadArrayElem()
   482  	if r.TryNil() {
   483  		if x.P != nil { // remove the if-true
   484  			x.P = nil
   485  		}
   486  	} else {
   487  		if x.P == nil {
   488  			x.P = new(string)
   489  		}
   490  		*x.P = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
   491  	}
   492  	yyj7++
   493  	for ; z.DecContainerNext(yyj7, l, yyhl7); yyj7++ {
   494  		z.DecReadArrayElem()
   495  		z.DecStructFieldNotFound(yyj7-1, "")
   496  	}
   497  }
   498  
   499  func (x *AnonInTestStrucSlim) IsCodecEmpty() bool {
   500  	return !(x.S != "" || false)
   501  }
   502  
   503  func (AnonInTestStruc) codecSelferViaCodecgen() {}
   504  func (x *AnonInTestStruc) CodecEncodeSelf(e *Encoder) {
   505  	var h codecSelfer19780
   506  	z, r := GenHelper().Encoder(e)
   507  	_, _, _ = h, z, r
   508  	if z.EncBasicHandle().CheckCircularRef {
   509  		z.EncEncode(x)
   510  		return
   511  	}
   512  	if x == nil {
   513  		r.EncodeNil()
   514  	} else {
   515  		yy2arr2 := z.EncBasicHandle().StructToArray
   516  		_ = yy2arr2
   517  		const yyr2 bool = false // struct tag has 'toArray'
   518  		if yyr2 || yy2arr2 {
   519  			z.EncWriteArrayStart(17)
   520  			z.EncWriteArrayElem()
   521  			r.EncodeString(string(x.AS))
   522  			z.EncWriteArrayElem()
   523  			r.EncodeInt(int64(x.AI64))
   524  			z.EncWriteArrayElem()
   525  			r.EncodeInt(int64(x.AI16))
   526  			z.EncWriteArrayElem()
   527  			r.EncodeUint(uint64(x.AUi64))
   528  			z.EncWriteArrayElem()
   529  			if x.ASslice == nil {
   530  				r.EncodeNil()
   531  			} else {
   532  				z.F.EncSliceStringV(x.ASslice, e)
   533  			} // end block: if x.ASslice slice == nil
   534  			z.EncWriteArrayElem()
   535  			if x.AI64slice == nil {
   536  				r.EncodeNil()
   537  			} else {
   538  				z.F.EncSliceInt64V(x.AI64slice, e)
   539  			} // end block: if x.AI64slice slice == nil
   540  			z.EncWriteArrayElem()
   541  			if x.AUi64slice == nil {
   542  				r.EncodeNil()
   543  			} else {
   544  				z.F.EncSliceUint64V(x.AUi64slice, e)
   545  			} // end block: if x.AUi64slice slice == nil
   546  			z.EncWriteArrayElem()
   547  			if x.AF64slice == nil {
   548  				r.EncodeNil()
   549  			} else {
   550  				z.F.EncSliceFloat64V(x.AF64slice, e)
   551  			} // end block: if x.AF64slice slice == nil
   552  			z.EncWriteArrayElem()
   553  			if x.AF32slice == nil {
   554  				r.EncodeNil()
   555  			} else {
   556  				z.F.EncSliceFloat32V(x.AF32slice, e)
   557  			} // end block: if x.AF32slice slice == nil
   558  			z.EncWriteArrayElem()
   559  			if x.AMSS == nil {
   560  				r.EncodeNil()
   561  			} else {
   562  				z.F.EncMapStringStringV(x.AMSS, e)
   563  			} // end block: if x.AMSS map == nil
   564  			z.EncWriteArrayElem()
   565  			if x.AMSU64 == nil {
   566  				r.EncodeNil()
   567  			} else {
   568  				z.F.EncMapStringUint64V(x.AMSU64, e)
   569  			} // end block: if x.AMSU64 map == nil
   570  			z.EncWriteArrayElem()
   571  			yy31 := &x.AI64arr8
   572  			h.encArray8int64((*[8]int64)(yy31), e)
   573  			z.EncWriteArrayElem()
   574  			yy33 := &x.AI64arr0
   575  			h.encArray0int64((*[0]int64)(yy33), e)
   576  			z.EncWriteArrayElem()
   577  			if x.AI64slice0 == nil {
   578  				r.EncodeNil()
   579  			} else {
   580  				z.F.EncSliceInt64V(x.AI64slice0, e)
   581  			} // end block: if x.AI64slice0 slice == nil
   582  			z.EncWriteArrayElem()
   583  			if x.AUi64sliceN == nil {
   584  				r.EncodeNil()
   585  			} else {
   586  				z.F.EncSliceUint64V(x.AUi64sliceN, e)
   587  			} // end block: if x.AUi64sliceN slice == nil
   588  			z.EncWriteArrayElem()
   589  			if x.AMSU64N == nil {
   590  				r.EncodeNil()
   591  			} else {
   592  				z.F.EncMapStringUint64V(x.AMSU64N, e)
   593  			} // end block: if x.AMSU64N map == nil
   594  			z.EncWriteArrayElem()
   595  			if x.AMSU64E == nil {
   596  				r.EncodeNil()
   597  			} else {
   598  				z.F.EncMapStringUint64V(x.AMSU64E, e)
   599  			} // end block: if x.AMSU64E map == nil
   600  			z.EncWriteArrayEnd()
   601  		} else {
   602  			z.EncWriteMapStart(17)
   603  			if z.EncBasicHandle().Canonical {
   604  				z.EncWriteMapElemKey()
   605  				if z.IsJSONHandle() {
   606  					z.EncWr().WriteStr("\"AF32slice\"")
   607  				} else {
   608  					r.EncodeString(`AF32slice`)
   609  				}
   610  				z.EncWriteMapElemValue()
   611  				if x.AF32slice == nil {
   612  					r.EncodeNil()
   613  				} else {
   614  					z.F.EncSliceFloat32V(x.AF32slice, e)
   615  				} // end block: if x.AF32slice slice == nil
   616  				z.EncWriteMapElemKey()
   617  				if z.IsJSONHandle() {
   618  					z.EncWr().WriteStr("\"AF64slice\"")
   619  				} else {
   620  					r.EncodeString(`AF64slice`)
   621  				}
   622  				z.EncWriteMapElemValue()
   623  				if x.AF64slice == nil {
   624  					r.EncodeNil()
   625  				} else {
   626  					z.F.EncSliceFloat64V(x.AF64slice, e)
   627  				} // end block: if x.AF64slice slice == nil
   628  				z.EncWriteMapElemKey()
   629  				if z.IsJSONHandle() {
   630  					z.EncWr().WriteStr("\"AI16\"")
   631  				} else {
   632  					r.EncodeString(`AI16`)
   633  				}
   634  				z.EncWriteMapElemValue()
   635  				r.EncodeInt(int64(x.AI16))
   636  				z.EncWriteMapElemKey()
   637  				if z.IsJSONHandle() {
   638  					z.EncWr().WriteStr("\"AI64\"")
   639  				} else {
   640  					r.EncodeString(`AI64`)
   641  				}
   642  				z.EncWriteMapElemValue()
   643  				r.EncodeInt(int64(x.AI64))
   644  				z.EncWriteMapElemKey()
   645  				if z.IsJSONHandle() {
   646  					z.EncWr().WriteStr("\"AI64arr0\"")
   647  				} else {
   648  					r.EncodeString(`AI64arr0`)
   649  				}
   650  				z.EncWriteMapElemValue()
   651  				yy43 := &x.AI64arr0
   652  				h.encArray0int64((*[0]int64)(yy43), e)
   653  				z.EncWriteMapElemKey()
   654  				if z.IsJSONHandle() {
   655  					z.EncWr().WriteStr("\"AI64arr8\"")
   656  				} else {
   657  					r.EncodeString(`AI64arr8`)
   658  				}
   659  				z.EncWriteMapElemValue()
   660  				yy45 := &x.AI64arr8
   661  				h.encArray8int64((*[8]int64)(yy45), e)
   662  				z.EncWriteMapElemKey()
   663  				if z.IsJSONHandle() {
   664  					z.EncWr().WriteStr("\"AI64slice\"")
   665  				} else {
   666  					r.EncodeString(`AI64slice`)
   667  				}
   668  				z.EncWriteMapElemValue()
   669  				if x.AI64slice == nil {
   670  					r.EncodeNil()
   671  				} else {
   672  					z.F.EncSliceInt64V(x.AI64slice, e)
   673  				} // end block: if x.AI64slice slice == nil
   674  				z.EncWriteMapElemKey()
   675  				if z.IsJSONHandle() {
   676  					z.EncWr().WriteStr("\"AI64slice0\"")
   677  				} else {
   678  					r.EncodeString(`AI64slice0`)
   679  				}
   680  				z.EncWriteMapElemValue()
   681  				if x.AI64slice0 == nil {
   682  					r.EncodeNil()
   683  				} else {
   684  					z.F.EncSliceInt64V(x.AI64slice0, e)
   685  				} // end block: if x.AI64slice0 slice == nil
   686  				z.EncWriteMapElemKey()
   687  				if z.IsJSONHandle() {
   688  					z.EncWr().WriteStr("\"AMSS\"")
   689  				} else {
   690  					r.EncodeString(`AMSS`)
   691  				}
   692  				z.EncWriteMapElemValue()
   693  				if x.AMSS == nil {
   694  					r.EncodeNil()
   695  				} else {
   696  					z.F.EncMapStringStringV(x.AMSS, e)
   697  				} // end block: if x.AMSS map == nil
   698  				z.EncWriteMapElemKey()
   699  				if z.IsJSONHandle() {
   700  					z.EncWr().WriteStr("\"AMSU64\"")
   701  				} else {
   702  					r.EncodeString(`AMSU64`)
   703  				}
   704  				z.EncWriteMapElemValue()
   705  				if x.AMSU64 == nil {
   706  					r.EncodeNil()
   707  				} else {
   708  					z.F.EncMapStringUint64V(x.AMSU64, e)
   709  				} // end block: if x.AMSU64 map == nil
   710  				z.EncWriteMapElemKey()
   711  				if z.IsJSONHandle() {
   712  					z.EncWr().WriteStr("\"AMSU64E\"")
   713  				} else {
   714  					r.EncodeString(`AMSU64E`)
   715  				}
   716  				z.EncWriteMapElemValue()
   717  				if x.AMSU64E == nil {
   718  					r.EncodeNil()
   719  				} else {
   720  					z.F.EncMapStringUint64V(x.AMSU64E, e)
   721  				} // end block: if x.AMSU64E map == nil
   722  				z.EncWriteMapElemKey()
   723  				if z.IsJSONHandle() {
   724  					z.EncWr().WriteStr("\"AMSU64N\"")
   725  				} else {
   726  					r.EncodeString(`AMSU64N`)
   727  				}
   728  				z.EncWriteMapElemValue()
   729  				if x.AMSU64N == nil {
   730  					r.EncodeNil()
   731  				} else {
   732  					z.F.EncMapStringUint64V(x.AMSU64N, e)
   733  				} // end block: if x.AMSU64N map == nil
   734  				z.EncWriteMapElemKey()
   735  				if z.IsJSONHandle() {
   736  					z.EncWr().WriteStr("\"AS\"")
   737  				} else {
   738  					r.EncodeString(`AS`)
   739  				}
   740  				z.EncWriteMapElemValue()
   741  				r.EncodeString(string(x.AS))
   742  				z.EncWriteMapElemKey()
   743  				if z.IsJSONHandle() {
   744  					z.EncWr().WriteStr("\"ASslice\"")
   745  				} else {
   746  					r.EncodeString(`ASslice`)
   747  				}
   748  				z.EncWriteMapElemValue()
   749  				if x.ASslice == nil {
   750  					r.EncodeNil()
   751  				} else {
   752  					z.F.EncSliceStringV(x.ASslice, e)
   753  				} // end block: if x.ASslice slice == nil
   754  				z.EncWriteMapElemKey()
   755  				if z.IsJSONHandle() {
   756  					z.EncWr().WriteStr("\"AUi64\"")
   757  				} else {
   758  					r.EncodeString(`AUi64`)
   759  				}
   760  				z.EncWriteMapElemValue()
   761  				r.EncodeUint(uint64(x.AUi64))
   762  				z.EncWriteMapElemKey()
   763  				if z.IsJSONHandle() {
   764  					z.EncWr().WriteStr("\"AUi64slice\"")
   765  				} else {
   766  					r.EncodeString(`AUi64slice`)
   767  				}
   768  				z.EncWriteMapElemValue()
   769  				if x.AUi64slice == nil {
   770  					r.EncodeNil()
   771  				} else {
   772  					z.F.EncSliceUint64V(x.AUi64slice, e)
   773  				} // end block: if x.AUi64slice slice == nil
   774  				z.EncWriteMapElemKey()
   775  				if z.IsJSONHandle() {
   776  					z.EncWr().WriteStr("\"AUi64sliceN\"")
   777  				} else {
   778  					r.EncodeString(`AUi64sliceN`)
   779  				}
   780  				z.EncWriteMapElemValue()
   781  				if x.AUi64sliceN == nil {
   782  					r.EncodeNil()
   783  				} else {
   784  					z.F.EncSliceUint64V(x.AUi64sliceN, e)
   785  				} // end block: if x.AUi64sliceN slice == nil
   786  			} else {
   787  				z.EncWriteMapElemKey()
   788  				if z.IsJSONHandle() {
   789  					z.EncWr().WriteStr("\"AS\"")
   790  				} else {
   791  					r.EncodeString(`AS`)
   792  				}
   793  				z.EncWriteMapElemValue()
   794  				r.EncodeString(string(x.AS))
   795  				z.EncWriteMapElemKey()
   796  				if z.IsJSONHandle() {
   797  					z.EncWr().WriteStr("\"AI64\"")
   798  				} else {
   799  					r.EncodeString(`AI64`)
   800  				}
   801  				z.EncWriteMapElemValue()
   802  				r.EncodeInt(int64(x.AI64))
   803  				z.EncWriteMapElemKey()
   804  				if z.IsJSONHandle() {
   805  					z.EncWr().WriteStr("\"AI16\"")
   806  				} else {
   807  					r.EncodeString(`AI16`)
   808  				}
   809  				z.EncWriteMapElemValue()
   810  				r.EncodeInt(int64(x.AI16))
   811  				z.EncWriteMapElemKey()
   812  				if z.IsJSONHandle() {
   813  					z.EncWr().WriteStr("\"AUi64\"")
   814  				} else {
   815  					r.EncodeString(`AUi64`)
   816  				}
   817  				z.EncWriteMapElemValue()
   818  				r.EncodeUint(uint64(x.AUi64))
   819  				z.EncWriteMapElemKey()
   820  				if z.IsJSONHandle() {
   821  					z.EncWr().WriteStr("\"ASslice\"")
   822  				} else {
   823  					r.EncodeString(`ASslice`)
   824  				}
   825  				z.EncWriteMapElemValue()
   826  				if x.ASslice == nil {
   827  					r.EncodeNil()
   828  				} else {
   829  					z.F.EncSliceStringV(x.ASslice, e)
   830  				} // end block: if x.ASslice slice == nil
   831  				z.EncWriteMapElemKey()
   832  				if z.IsJSONHandle() {
   833  					z.EncWr().WriteStr("\"AI64slice\"")
   834  				} else {
   835  					r.EncodeString(`AI64slice`)
   836  				}
   837  				z.EncWriteMapElemValue()
   838  				if x.AI64slice == nil {
   839  					r.EncodeNil()
   840  				} else {
   841  					z.F.EncSliceInt64V(x.AI64slice, e)
   842  				} // end block: if x.AI64slice slice == nil
   843  				z.EncWriteMapElemKey()
   844  				if z.IsJSONHandle() {
   845  					z.EncWr().WriteStr("\"AUi64slice\"")
   846  				} else {
   847  					r.EncodeString(`AUi64slice`)
   848  				}
   849  				z.EncWriteMapElemValue()
   850  				if x.AUi64slice == nil {
   851  					r.EncodeNil()
   852  				} else {
   853  					z.F.EncSliceUint64V(x.AUi64slice, e)
   854  				} // end block: if x.AUi64slice slice == nil
   855  				z.EncWriteMapElemKey()
   856  				if z.IsJSONHandle() {
   857  					z.EncWr().WriteStr("\"AF64slice\"")
   858  				} else {
   859  					r.EncodeString(`AF64slice`)
   860  				}
   861  				z.EncWriteMapElemValue()
   862  				if x.AF64slice == nil {
   863  					r.EncodeNil()
   864  				} else {
   865  					z.F.EncSliceFloat64V(x.AF64slice, e)
   866  				} // end block: if x.AF64slice slice == nil
   867  				z.EncWriteMapElemKey()
   868  				if z.IsJSONHandle() {
   869  					z.EncWr().WriteStr("\"AF32slice\"")
   870  				} else {
   871  					r.EncodeString(`AF32slice`)
   872  				}
   873  				z.EncWriteMapElemValue()
   874  				if x.AF32slice == nil {
   875  					r.EncodeNil()
   876  				} else {
   877  					z.F.EncSliceFloat32V(x.AF32slice, e)
   878  				} // end block: if x.AF32slice slice == nil
   879  				z.EncWriteMapElemKey()
   880  				if z.IsJSONHandle() {
   881  					z.EncWr().WriteStr("\"AMSS\"")
   882  				} else {
   883  					r.EncodeString(`AMSS`)
   884  				}
   885  				z.EncWriteMapElemValue()
   886  				if x.AMSS == nil {
   887  					r.EncodeNil()
   888  				} else {
   889  					z.F.EncMapStringStringV(x.AMSS, e)
   890  				} // end block: if x.AMSS map == nil
   891  				z.EncWriteMapElemKey()
   892  				if z.IsJSONHandle() {
   893  					z.EncWr().WriteStr("\"AMSU64\"")
   894  				} else {
   895  					r.EncodeString(`AMSU64`)
   896  				}
   897  				z.EncWriteMapElemValue()
   898  				if x.AMSU64 == nil {
   899  					r.EncodeNil()
   900  				} else {
   901  					z.F.EncMapStringUint64V(x.AMSU64, e)
   902  				} // end block: if x.AMSU64 map == nil
   903  				z.EncWriteMapElemKey()
   904  				if z.IsJSONHandle() {
   905  					z.EncWr().WriteStr("\"AI64arr8\"")
   906  				} else {
   907  					r.EncodeString(`AI64arr8`)
   908  				}
   909  				z.EncWriteMapElemValue()
   910  				yy69 := &x.AI64arr8
   911  				h.encArray8int64((*[8]int64)(yy69), e)
   912  				z.EncWriteMapElemKey()
   913  				if z.IsJSONHandle() {
   914  					z.EncWr().WriteStr("\"AI64arr0\"")
   915  				} else {
   916  					r.EncodeString(`AI64arr0`)
   917  				}
   918  				z.EncWriteMapElemValue()
   919  				yy71 := &x.AI64arr0
   920  				h.encArray0int64((*[0]int64)(yy71), e)
   921  				z.EncWriteMapElemKey()
   922  				if z.IsJSONHandle() {
   923  					z.EncWr().WriteStr("\"AI64slice0\"")
   924  				} else {
   925  					r.EncodeString(`AI64slice0`)
   926  				}
   927  				z.EncWriteMapElemValue()
   928  				if x.AI64slice0 == nil {
   929  					r.EncodeNil()
   930  				} else {
   931  					z.F.EncSliceInt64V(x.AI64slice0, e)
   932  				} // end block: if x.AI64slice0 slice == nil
   933  				z.EncWriteMapElemKey()
   934  				if z.IsJSONHandle() {
   935  					z.EncWr().WriteStr("\"AUi64sliceN\"")
   936  				} else {
   937  					r.EncodeString(`AUi64sliceN`)
   938  				}
   939  				z.EncWriteMapElemValue()
   940  				if x.AUi64sliceN == nil {
   941  					r.EncodeNil()
   942  				} else {
   943  					z.F.EncSliceUint64V(x.AUi64sliceN, e)
   944  				} // end block: if x.AUi64sliceN slice == nil
   945  				z.EncWriteMapElemKey()
   946  				if z.IsJSONHandle() {
   947  					z.EncWr().WriteStr("\"AMSU64N\"")
   948  				} else {
   949  					r.EncodeString(`AMSU64N`)
   950  				}
   951  				z.EncWriteMapElemValue()
   952  				if x.AMSU64N == nil {
   953  					r.EncodeNil()
   954  				} else {
   955  					z.F.EncMapStringUint64V(x.AMSU64N, e)
   956  				} // end block: if x.AMSU64N map == nil
   957  				z.EncWriteMapElemKey()
   958  				if z.IsJSONHandle() {
   959  					z.EncWr().WriteStr("\"AMSU64E\"")
   960  				} else {
   961  					r.EncodeString(`AMSU64E`)
   962  				}
   963  				z.EncWriteMapElemValue()
   964  				if x.AMSU64E == nil {
   965  					r.EncodeNil()
   966  				} else {
   967  					z.F.EncMapStringUint64V(x.AMSU64E, e)
   968  				} // end block: if x.AMSU64E map == nil
   969  			}
   970  			z.EncWriteMapEnd()
   971  		}
   972  	}
   973  }
   974  
   975  func (x *AnonInTestStruc) CodecDecodeSelf(d *Decoder) {
   976  	var h codecSelfer19780
   977  	z, r := GenHelper().Decoder(d)
   978  	_, _, _ = h, z, r
   979  	yyct2 := r.ContainerType()
   980  	if yyct2 == codecSelferValueTypeNil19780 {
   981  		*(x) = AnonInTestStruc{}
   982  	} else if yyct2 == codecSelferValueTypeMap19780 {
   983  		yyl2 := z.DecReadMapStart()
   984  		if yyl2 == 0 {
   985  		} else {
   986  			x.codecDecodeSelfFromMap(yyl2, d)
   987  		}
   988  		z.DecReadMapEnd()
   989  	} else if yyct2 == codecSelferValueTypeArray19780 {
   990  		yyl2 := z.DecReadArrayStart()
   991  		if yyl2 != 0 {
   992  			x.codecDecodeSelfFromArray(yyl2, d)
   993  		}
   994  		z.DecReadArrayEnd()
   995  	} else {
   996  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
   997  	}
   998  }
   999  
  1000  func (x *AnonInTestStruc) codecDecodeSelfFromMap(l int, d *Decoder) {
  1001  	var h codecSelfer19780
  1002  	z, r := GenHelper().Decoder(d)
  1003  	_, _, _ = h, z, r
  1004  	var yyhl3 bool = l >= 0
  1005  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  1006  		z.DecReadMapElemKey()
  1007  		yys3 := r.DecodeStringAsBytes()
  1008  		z.DecReadMapElemValue()
  1009  		switch string(yys3) {
  1010  		case "AS":
  1011  			x.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  1012  		case "AI64":
  1013  			x.AI64 = (int64)(r.DecodeInt64())
  1014  		case "AI16":
  1015  			x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  1016  		case "AUi64":
  1017  			x.AUi64 = (uint64)(r.DecodeUint64())
  1018  		case "ASslice":
  1019  			z.F.DecSliceStringX(&x.ASslice, d)
  1020  		case "AI64slice":
  1021  			z.F.DecSliceInt64X(&x.AI64slice, d)
  1022  		case "AUi64slice":
  1023  			z.F.DecSliceUint64X(&x.AUi64slice, d)
  1024  		case "AF64slice":
  1025  			z.F.DecSliceFloat64X(&x.AF64slice, d)
  1026  		case "AF32slice":
  1027  			z.F.DecSliceFloat32X(&x.AF32slice, d)
  1028  		case "AMSS":
  1029  			z.F.DecMapStringStringX(&x.AMSS, d)
  1030  		case "AMSU64":
  1031  			z.F.DecMapStringUint64X(&x.AMSU64, d)
  1032  		case "AI64arr8":
  1033  			h.decArray8int64((*[8]int64)(&x.AI64arr8), d)
  1034  		case "AI64arr0":
  1035  			h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
  1036  		case "AI64slice0":
  1037  			z.F.DecSliceInt64X(&x.AI64slice0, d)
  1038  		case "AUi64sliceN":
  1039  			z.F.DecSliceUint64X(&x.AUi64sliceN, d)
  1040  		case "AMSU64N":
  1041  			z.F.DecMapStringUint64X(&x.AMSU64N, d)
  1042  		case "AMSU64E":
  1043  			z.F.DecMapStringUint64X(&x.AMSU64E, d)
  1044  		default:
  1045  			z.DecStructFieldNotFound(-1, string(yys3))
  1046  		} // end switch yys3
  1047  	} // end for yyj3
  1048  }
  1049  
  1050  func (x *AnonInTestStruc) codecDecodeSelfFromArray(l int, d *Decoder) {
  1051  	var h codecSelfer19780
  1052  	z, r := GenHelper().Decoder(d)
  1053  	_, _, _ = h, z, r
  1054  	var yyj34 int
  1055  	var yyb34 bool
  1056  	var yyhl34 bool = l >= 0
  1057  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1058  	if yyb34 {
  1059  		z.DecReadArrayEnd()
  1060  		return
  1061  	}
  1062  	z.DecReadArrayElem()
  1063  	x.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  1064  	yyj34++
  1065  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1066  	if yyb34 {
  1067  		z.DecReadArrayEnd()
  1068  		return
  1069  	}
  1070  	z.DecReadArrayElem()
  1071  	x.AI64 = (int64)(r.DecodeInt64())
  1072  	yyj34++
  1073  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1074  	if yyb34 {
  1075  		z.DecReadArrayEnd()
  1076  		return
  1077  	}
  1078  	z.DecReadArrayElem()
  1079  	x.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  1080  	yyj34++
  1081  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1082  	if yyb34 {
  1083  		z.DecReadArrayEnd()
  1084  		return
  1085  	}
  1086  	z.DecReadArrayElem()
  1087  	x.AUi64 = (uint64)(r.DecodeUint64())
  1088  	yyj34++
  1089  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1090  	if yyb34 {
  1091  		z.DecReadArrayEnd()
  1092  		return
  1093  	}
  1094  	z.DecReadArrayElem()
  1095  	z.F.DecSliceStringX(&x.ASslice, d)
  1096  	yyj34++
  1097  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1098  	if yyb34 {
  1099  		z.DecReadArrayEnd()
  1100  		return
  1101  	}
  1102  	z.DecReadArrayElem()
  1103  	z.F.DecSliceInt64X(&x.AI64slice, d)
  1104  	yyj34++
  1105  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1106  	if yyb34 {
  1107  		z.DecReadArrayEnd()
  1108  		return
  1109  	}
  1110  	z.DecReadArrayElem()
  1111  	z.F.DecSliceUint64X(&x.AUi64slice, d)
  1112  	yyj34++
  1113  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1114  	if yyb34 {
  1115  		z.DecReadArrayEnd()
  1116  		return
  1117  	}
  1118  	z.DecReadArrayElem()
  1119  	z.F.DecSliceFloat64X(&x.AF64slice, d)
  1120  	yyj34++
  1121  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1122  	if yyb34 {
  1123  		z.DecReadArrayEnd()
  1124  		return
  1125  	}
  1126  	z.DecReadArrayElem()
  1127  	z.F.DecSliceFloat32X(&x.AF32slice, d)
  1128  	yyj34++
  1129  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1130  	if yyb34 {
  1131  		z.DecReadArrayEnd()
  1132  		return
  1133  	}
  1134  	z.DecReadArrayElem()
  1135  	z.F.DecMapStringStringX(&x.AMSS, d)
  1136  	yyj34++
  1137  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1138  	if yyb34 {
  1139  		z.DecReadArrayEnd()
  1140  		return
  1141  	}
  1142  	z.DecReadArrayElem()
  1143  	z.F.DecMapStringUint64X(&x.AMSU64, d)
  1144  	yyj34++
  1145  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1146  	if yyb34 {
  1147  		z.DecReadArrayEnd()
  1148  		return
  1149  	}
  1150  	z.DecReadArrayElem()
  1151  	h.decArray8int64((*[8]int64)(&x.AI64arr8), d)
  1152  	yyj34++
  1153  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1154  	if yyb34 {
  1155  		z.DecReadArrayEnd()
  1156  		return
  1157  	}
  1158  	z.DecReadArrayElem()
  1159  	h.decArray0int64((*[0]int64)(&x.AI64arr0), d)
  1160  	yyj34++
  1161  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1162  	if yyb34 {
  1163  		z.DecReadArrayEnd()
  1164  		return
  1165  	}
  1166  	z.DecReadArrayElem()
  1167  	z.F.DecSliceInt64X(&x.AI64slice0, d)
  1168  	yyj34++
  1169  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1170  	if yyb34 {
  1171  		z.DecReadArrayEnd()
  1172  		return
  1173  	}
  1174  	z.DecReadArrayElem()
  1175  	z.F.DecSliceUint64X(&x.AUi64sliceN, d)
  1176  	yyj34++
  1177  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1178  	if yyb34 {
  1179  		z.DecReadArrayEnd()
  1180  		return
  1181  	}
  1182  	z.DecReadArrayElem()
  1183  	z.F.DecMapStringUint64X(&x.AMSU64N, d)
  1184  	yyj34++
  1185  	yyb34 = !z.DecContainerNext(yyj34, l, yyhl34)
  1186  	if yyb34 {
  1187  		z.DecReadArrayEnd()
  1188  		return
  1189  	}
  1190  	z.DecReadArrayElem()
  1191  	z.F.DecMapStringUint64X(&x.AMSU64E, d)
  1192  	yyj34++
  1193  	for ; z.DecContainerNext(yyj34, l, yyhl34); yyj34++ {
  1194  		z.DecReadArrayElem()
  1195  		z.DecStructFieldNotFound(yyj34-1, "")
  1196  	}
  1197  }
  1198  
  1199  func (x *AnonInTestStruc) IsCodecEmpty() bool {
  1200  	return !(x.AS != "" || x.AI64 != 0 || x.AI16 != 0 || x.AUi64 != 0 || len(x.ASslice) != 0 || len(x.AI64slice) != 0 || len(x.AUi64slice) != 0 || len(x.AF64slice) != 0 || len(x.AF32slice) != 0 || len(x.AMSS) != 0 || len(x.AMSU64) != 0 || x.AI64arr8 != [8]int64{} || false || len(x.AI64slice0) != 0 || len(x.AUi64sliceN) != 0 || len(x.AMSU64N) != 0 || len(x.AMSU64E) != 0 || false)
  1201  }
  1202  
  1203  func (testSimpleFields) codecSelferViaCodecgen() {}
  1204  func (x *testSimpleFields) CodecEncodeSelf(e *Encoder) {
  1205  	var h codecSelfer19780
  1206  	z, r := GenHelper().Encoder(e)
  1207  	_, _, _ = h, z, r
  1208  	if z.EncBasicHandle().CheckCircularRef {
  1209  		z.EncEncode(x)
  1210  		return
  1211  	}
  1212  	if x == nil {
  1213  		r.EncodeNil()
  1214  	} else {
  1215  		yy2arr2 := z.EncBasicHandle().StructToArray
  1216  		_ = yy2arr2
  1217  		const yyr2 bool = false // struct tag has 'toArray'
  1218  		if yyr2 || yy2arr2 {
  1219  			z.EncWriteArrayStart(17)
  1220  			z.EncWriteArrayElem()
  1221  			r.EncodeString(string(x.S))
  1222  			z.EncWriteArrayElem()
  1223  			r.EncodeInt(int64(x.I64))
  1224  			z.EncWriteArrayElem()
  1225  			r.EncodeInt(int64(x.I8))
  1226  			z.EncWriteArrayElem()
  1227  			r.EncodeUint(uint64(x.Ui64))
  1228  			z.EncWriteArrayElem()
  1229  			r.EncodeUint(uint64(x.Ui8))
  1230  			z.EncWriteArrayElem()
  1231  			r.EncodeFloat64(float64(x.F64))
  1232  			z.EncWriteArrayElem()
  1233  			r.EncodeFloat32(float32(x.F32))
  1234  			z.EncWriteArrayElem()
  1235  			r.EncodeBool(bool(x.B))
  1236  			z.EncWriteArrayElem()
  1237  			if x.Sslice == nil {
  1238  				r.EncodeNil()
  1239  			} else {
  1240  				z.F.EncSliceStringV(x.Sslice, e)
  1241  			} // end block: if x.Sslice slice == nil
  1242  			z.EncWriteArrayElem()
  1243  			if x.I32slice == nil {
  1244  				r.EncodeNil()
  1245  			} else {
  1246  				z.F.EncSliceInt32V(x.I32slice, e)
  1247  			} // end block: if x.I32slice slice == nil
  1248  			z.EncWriteArrayElem()
  1249  			if x.Ui64slice == nil {
  1250  				r.EncodeNil()
  1251  			} else {
  1252  				z.F.EncSliceUint64V(x.Ui64slice, e)
  1253  			} // end block: if x.Ui64slice slice == nil
  1254  			z.EncWriteArrayElem()
  1255  			if x.Ui8slice == nil {
  1256  				r.EncodeNil()
  1257  			} else {
  1258  				r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  1259  			} // end block: if x.Ui8slice slice == nil
  1260  			z.EncWriteArrayElem()
  1261  			if x.Bslice == nil {
  1262  				r.EncodeNil()
  1263  			} else {
  1264  				z.F.EncSliceBoolV(x.Bslice, e)
  1265  			} // end block: if x.Bslice slice == nil
  1266  			z.EncWriteArrayElem()
  1267  			if x.Iptrslice == nil {
  1268  				r.EncodeNil()
  1269  			} else {
  1270  				h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  1271  			} // end block: if x.Iptrslice slice == nil
  1272  			z.EncWriteArrayElem()
  1273  			if yyxt34 := z.Extension(x.WrapSliceInt64); yyxt34 != nil {
  1274  				z.EncExtension(x.WrapSliceInt64, yyxt34)
  1275  			} else {
  1276  				x.WrapSliceInt64.CodecEncodeSelf(e)
  1277  			}
  1278  			z.EncWriteArrayElem()
  1279  			if yyxt35 := z.Extension(x.WrapSliceString); yyxt35 != nil {
  1280  				z.EncExtension(x.WrapSliceString, yyxt35)
  1281  			} else {
  1282  				x.WrapSliceString.CodecEncodeSelf(e)
  1283  			}
  1284  			z.EncWriteArrayElem()
  1285  			if x.Msint == nil {
  1286  				r.EncodeNil()
  1287  			} else {
  1288  				z.F.EncMapStringIntV(x.Msint, e)
  1289  			} // end block: if x.Msint map == nil
  1290  			z.EncWriteArrayEnd()
  1291  		} else {
  1292  			z.EncWriteMapStart(17)
  1293  			if z.EncBasicHandle().Canonical {
  1294  				z.EncWriteMapElemKey()
  1295  				if z.IsJSONHandle() {
  1296  					z.EncWr().WriteStr("\"B\"")
  1297  				} else {
  1298  					r.EncodeString(`B`)
  1299  				}
  1300  				z.EncWriteMapElemValue()
  1301  				r.EncodeBool(bool(x.B))
  1302  				z.EncWriteMapElemKey()
  1303  				if z.IsJSONHandle() {
  1304  					z.EncWr().WriteStr("\"Bslice\"")
  1305  				} else {
  1306  					r.EncodeString(`Bslice`)
  1307  				}
  1308  				z.EncWriteMapElemValue()
  1309  				if x.Bslice == nil {
  1310  					r.EncodeNil()
  1311  				} else {
  1312  					z.F.EncSliceBoolV(x.Bslice, e)
  1313  				} // end block: if x.Bslice slice == nil
  1314  				z.EncWriteMapElemKey()
  1315  				if z.IsJSONHandle() {
  1316  					z.EncWr().WriteStr("\"F32\"")
  1317  				} else {
  1318  					r.EncodeString(`F32`)
  1319  				}
  1320  				z.EncWriteMapElemValue()
  1321  				r.EncodeFloat32(float32(x.F32))
  1322  				z.EncWriteMapElemKey()
  1323  				if z.IsJSONHandle() {
  1324  					z.EncWr().WriteStr("\"F64\"")
  1325  				} else {
  1326  					r.EncodeString(`F64`)
  1327  				}
  1328  				z.EncWriteMapElemValue()
  1329  				r.EncodeFloat64(float64(x.F64))
  1330  				z.EncWriteMapElemKey()
  1331  				if z.IsJSONHandle() {
  1332  					z.EncWr().WriteStr("\"I32slice\"")
  1333  				} else {
  1334  					r.EncodeString(`I32slice`)
  1335  				}
  1336  				z.EncWriteMapElemValue()
  1337  				if x.I32slice == nil {
  1338  					r.EncodeNil()
  1339  				} else {
  1340  					z.F.EncSliceInt32V(x.I32slice, e)
  1341  				} // end block: if x.I32slice slice == nil
  1342  				z.EncWriteMapElemKey()
  1343  				if z.IsJSONHandle() {
  1344  					z.EncWr().WriteStr("\"I64\"")
  1345  				} else {
  1346  					r.EncodeString(`I64`)
  1347  				}
  1348  				z.EncWriteMapElemValue()
  1349  				r.EncodeInt(int64(x.I64))
  1350  				z.EncWriteMapElemKey()
  1351  				if z.IsJSONHandle() {
  1352  					z.EncWr().WriteStr("\"I8\"")
  1353  				} else {
  1354  					r.EncodeString(`I8`)
  1355  				}
  1356  				z.EncWriteMapElemValue()
  1357  				r.EncodeInt(int64(x.I8))
  1358  				z.EncWriteMapElemKey()
  1359  				if z.IsJSONHandle() {
  1360  					z.EncWr().WriteStr("\"Iptrslice\"")
  1361  				} else {
  1362  					r.EncodeString(`Iptrslice`)
  1363  				}
  1364  				z.EncWriteMapElemValue()
  1365  				if x.Iptrslice == nil {
  1366  					r.EncodeNil()
  1367  				} else {
  1368  					h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  1369  				} // end block: if x.Iptrslice slice == nil
  1370  				z.EncWriteMapElemKey()
  1371  				if z.IsJSONHandle() {
  1372  					z.EncWr().WriteStr("\"Msint\"")
  1373  				} else {
  1374  					r.EncodeString(`Msint`)
  1375  				}
  1376  				z.EncWriteMapElemValue()
  1377  				if x.Msint == nil {
  1378  					r.EncodeNil()
  1379  				} else {
  1380  					z.F.EncMapStringIntV(x.Msint, e)
  1381  				} // end block: if x.Msint map == nil
  1382  				z.EncWriteMapElemKey()
  1383  				if z.IsJSONHandle() {
  1384  					z.EncWr().WriteStr("\"S\"")
  1385  				} else {
  1386  					r.EncodeString(`S`)
  1387  				}
  1388  				z.EncWriteMapElemValue()
  1389  				r.EncodeString(string(x.S))
  1390  				z.EncWriteMapElemKey()
  1391  				if z.IsJSONHandle() {
  1392  					z.EncWr().WriteStr("\"Sslice\"")
  1393  				} else {
  1394  					r.EncodeString(`Sslice`)
  1395  				}
  1396  				z.EncWriteMapElemValue()
  1397  				if x.Sslice == nil {
  1398  					r.EncodeNil()
  1399  				} else {
  1400  					z.F.EncSliceStringV(x.Sslice, e)
  1401  				} // end block: if x.Sslice slice == nil
  1402  				z.EncWriteMapElemKey()
  1403  				if z.IsJSONHandle() {
  1404  					z.EncWr().WriteStr("\"Ui64\"")
  1405  				} else {
  1406  					r.EncodeString(`Ui64`)
  1407  				}
  1408  				z.EncWriteMapElemValue()
  1409  				r.EncodeUint(uint64(x.Ui64))
  1410  				z.EncWriteMapElemKey()
  1411  				if z.IsJSONHandle() {
  1412  					z.EncWr().WriteStr("\"Ui64slice\"")
  1413  				} else {
  1414  					r.EncodeString(`Ui64slice`)
  1415  				}
  1416  				z.EncWriteMapElemValue()
  1417  				if x.Ui64slice == nil {
  1418  					r.EncodeNil()
  1419  				} else {
  1420  					z.F.EncSliceUint64V(x.Ui64slice, e)
  1421  				} // end block: if x.Ui64slice slice == nil
  1422  				z.EncWriteMapElemKey()
  1423  				if z.IsJSONHandle() {
  1424  					z.EncWr().WriteStr("\"Ui8\"")
  1425  				} else {
  1426  					r.EncodeString(`Ui8`)
  1427  				}
  1428  				z.EncWriteMapElemValue()
  1429  				r.EncodeUint(uint64(x.Ui8))
  1430  				z.EncWriteMapElemKey()
  1431  				if z.IsJSONHandle() {
  1432  					z.EncWr().WriteStr("\"Ui8slice\"")
  1433  				} else {
  1434  					r.EncodeString(`Ui8slice`)
  1435  				}
  1436  				z.EncWriteMapElemValue()
  1437  				if x.Ui8slice == nil {
  1438  					r.EncodeNil()
  1439  				} else {
  1440  					r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  1441  				} // end block: if x.Ui8slice slice == nil
  1442  				z.EncWriteMapElemKey()
  1443  				if z.IsJSONHandle() {
  1444  					z.EncWr().WriteStr("\"WrapSliceInt64\"")
  1445  				} else {
  1446  					r.EncodeString(`WrapSliceInt64`)
  1447  				}
  1448  				z.EncWriteMapElemValue()
  1449  				if yyxt52 := z.Extension(x.WrapSliceInt64); yyxt52 != nil {
  1450  					z.EncExtension(x.WrapSliceInt64, yyxt52)
  1451  				} else {
  1452  					x.WrapSliceInt64.CodecEncodeSelf(e)
  1453  				}
  1454  				z.EncWriteMapElemKey()
  1455  				if z.IsJSONHandle() {
  1456  					z.EncWr().WriteStr("\"WrapSliceString\"")
  1457  				} else {
  1458  					r.EncodeString(`WrapSliceString`)
  1459  				}
  1460  				z.EncWriteMapElemValue()
  1461  				if yyxt53 := z.Extension(x.WrapSliceString); yyxt53 != nil {
  1462  					z.EncExtension(x.WrapSliceString, yyxt53)
  1463  				} else {
  1464  					x.WrapSliceString.CodecEncodeSelf(e)
  1465  				}
  1466  			} else {
  1467  				z.EncWriteMapElemKey()
  1468  				if z.IsJSONHandle() {
  1469  					z.EncWr().WriteStr("\"S\"")
  1470  				} else {
  1471  					r.EncodeString(`S`)
  1472  				}
  1473  				z.EncWriteMapElemValue()
  1474  				r.EncodeString(string(x.S))
  1475  				z.EncWriteMapElemKey()
  1476  				if z.IsJSONHandle() {
  1477  					z.EncWr().WriteStr("\"I64\"")
  1478  				} else {
  1479  					r.EncodeString(`I64`)
  1480  				}
  1481  				z.EncWriteMapElemValue()
  1482  				r.EncodeInt(int64(x.I64))
  1483  				z.EncWriteMapElemKey()
  1484  				if z.IsJSONHandle() {
  1485  					z.EncWr().WriteStr("\"I8\"")
  1486  				} else {
  1487  					r.EncodeString(`I8`)
  1488  				}
  1489  				z.EncWriteMapElemValue()
  1490  				r.EncodeInt(int64(x.I8))
  1491  				z.EncWriteMapElemKey()
  1492  				if z.IsJSONHandle() {
  1493  					z.EncWr().WriteStr("\"Ui64\"")
  1494  				} else {
  1495  					r.EncodeString(`Ui64`)
  1496  				}
  1497  				z.EncWriteMapElemValue()
  1498  				r.EncodeUint(uint64(x.Ui64))
  1499  				z.EncWriteMapElemKey()
  1500  				if z.IsJSONHandle() {
  1501  					z.EncWr().WriteStr("\"Ui8\"")
  1502  				} else {
  1503  					r.EncodeString(`Ui8`)
  1504  				}
  1505  				z.EncWriteMapElemValue()
  1506  				r.EncodeUint(uint64(x.Ui8))
  1507  				z.EncWriteMapElemKey()
  1508  				if z.IsJSONHandle() {
  1509  					z.EncWr().WriteStr("\"F64\"")
  1510  				} else {
  1511  					r.EncodeString(`F64`)
  1512  				}
  1513  				z.EncWriteMapElemValue()
  1514  				r.EncodeFloat64(float64(x.F64))
  1515  				z.EncWriteMapElemKey()
  1516  				if z.IsJSONHandle() {
  1517  					z.EncWr().WriteStr("\"F32\"")
  1518  				} else {
  1519  					r.EncodeString(`F32`)
  1520  				}
  1521  				z.EncWriteMapElemValue()
  1522  				r.EncodeFloat32(float32(x.F32))
  1523  				z.EncWriteMapElemKey()
  1524  				if z.IsJSONHandle() {
  1525  					z.EncWr().WriteStr("\"B\"")
  1526  				} else {
  1527  					r.EncodeString(`B`)
  1528  				}
  1529  				z.EncWriteMapElemValue()
  1530  				r.EncodeBool(bool(x.B))
  1531  				z.EncWriteMapElemKey()
  1532  				if z.IsJSONHandle() {
  1533  					z.EncWr().WriteStr("\"Sslice\"")
  1534  				} else {
  1535  					r.EncodeString(`Sslice`)
  1536  				}
  1537  				z.EncWriteMapElemValue()
  1538  				if x.Sslice == nil {
  1539  					r.EncodeNil()
  1540  				} else {
  1541  					z.F.EncSliceStringV(x.Sslice, e)
  1542  				} // end block: if x.Sslice slice == nil
  1543  				z.EncWriteMapElemKey()
  1544  				if z.IsJSONHandle() {
  1545  					z.EncWr().WriteStr("\"I32slice\"")
  1546  				} else {
  1547  					r.EncodeString(`I32slice`)
  1548  				}
  1549  				z.EncWriteMapElemValue()
  1550  				if x.I32slice == nil {
  1551  					r.EncodeNil()
  1552  				} else {
  1553  					z.F.EncSliceInt32V(x.I32slice, e)
  1554  				} // end block: if x.I32slice slice == nil
  1555  				z.EncWriteMapElemKey()
  1556  				if z.IsJSONHandle() {
  1557  					z.EncWr().WriteStr("\"Ui64slice\"")
  1558  				} else {
  1559  					r.EncodeString(`Ui64slice`)
  1560  				}
  1561  				z.EncWriteMapElemValue()
  1562  				if x.Ui64slice == nil {
  1563  					r.EncodeNil()
  1564  				} else {
  1565  					z.F.EncSliceUint64V(x.Ui64slice, e)
  1566  				} // end block: if x.Ui64slice slice == nil
  1567  				z.EncWriteMapElemKey()
  1568  				if z.IsJSONHandle() {
  1569  					z.EncWr().WriteStr("\"Ui8slice\"")
  1570  				} else {
  1571  					r.EncodeString(`Ui8slice`)
  1572  				}
  1573  				z.EncWriteMapElemValue()
  1574  				if x.Ui8slice == nil {
  1575  					r.EncodeNil()
  1576  				} else {
  1577  					r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  1578  				} // end block: if x.Ui8slice slice == nil
  1579  				z.EncWriteMapElemKey()
  1580  				if z.IsJSONHandle() {
  1581  					z.EncWr().WriteStr("\"Bslice\"")
  1582  				} else {
  1583  					r.EncodeString(`Bslice`)
  1584  				}
  1585  				z.EncWriteMapElemValue()
  1586  				if x.Bslice == nil {
  1587  					r.EncodeNil()
  1588  				} else {
  1589  					z.F.EncSliceBoolV(x.Bslice, e)
  1590  				} // end block: if x.Bslice slice == nil
  1591  				z.EncWriteMapElemKey()
  1592  				if z.IsJSONHandle() {
  1593  					z.EncWr().WriteStr("\"Iptrslice\"")
  1594  				} else {
  1595  					r.EncodeString(`Iptrslice`)
  1596  				}
  1597  				z.EncWriteMapElemValue()
  1598  				if x.Iptrslice == nil {
  1599  					r.EncodeNil()
  1600  				} else {
  1601  					h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  1602  				} // end block: if x.Iptrslice slice == nil
  1603  				z.EncWriteMapElemKey()
  1604  				if z.IsJSONHandle() {
  1605  					z.EncWr().WriteStr("\"WrapSliceInt64\"")
  1606  				} else {
  1607  					r.EncodeString(`WrapSliceInt64`)
  1608  				}
  1609  				z.EncWriteMapElemValue()
  1610  				if yyxt68 := z.Extension(x.WrapSliceInt64); yyxt68 != nil {
  1611  					z.EncExtension(x.WrapSliceInt64, yyxt68)
  1612  				} else {
  1613  					x.WrapSliceInt64.CodecEncodeSelf(e)
  1614  				}
  1615  				z.EncWriteMapElemKey()
  1616  				if z.IsJSONHandle() {
  1617  					z.EncWr().WriteStr("\"WrapSliceString\"")
  1618  				} else {
  1619  					r.EncodeString(`WrapSliceString`)
  1620  				}
  1621  				z.EncWriteMapElemValue()
  1622  				if yyxt69 := z.Extension(x.WrapSliceString); yyxt69 != nil {
  1623  					z.EncExtension(x.WrapSliceString, yyxt69)
  1624  				} else {
  1625  					x.WrapSliceString.CodecEncodeSelf(e)
  1626  				}
  1627  				z.EncWriteMapElemKey()
  1628  				if z.IsJSONHandle() {
  1629  					z.EncWr().WriteStr("\"Msint\"")
  1630  				} else {
  1631  					r.EncodeString(`Msint`)
  1632  				}
  1633  				z.EncWriteMapElemValue()
  1634  				if x.Msint == nil {
  1635  					r.EncodeNil()
  1636  				} else {
  1637  					z.F.EncMapStringIntV(x.Msint, e)
  1638  				} // end block: if x.Msint map == nil
  1639  			}
  1640  			z.EncWriteMapEnd()
  1641  		}
  1642  	}
  1643  }
  1644  
  1645  func (x *testSimpleFields) CodecDecodeSelf(d *Decoder) {
  1646  	var h codecSelfer19780
  1647  	z, r := GenHelper().Decoder(d)
  1648  	_, _, _ = h, z, r
  1649  	yyct2 := r.ContainerType()
  1650  	if yyct2 == codecSelferValueTypeNil19780 {
  1651  		*(x) = testSimpleFields{}
  1652  	} else if yyct2 == codecSelferValueTypeMap19780 {
  1653  		yyl2 := z.DecReadMapStart()
  1654  		if yyl2 == 0 {
  1655  		} else {
  1656  			x.codecDecodeSelfFromMap(yyl2, d)
  1657  		}
  1658  		z.DecReadMapEnd()
  1659  	} else if yyct2 == codecSelferValueTypeArray19780 {
  1660  		yyl2 := z.DecReadArrayStart()
  1661  		if yyl2 != 0 {
  1662  			x.codecDecodeSelfFromArray(yyl2, d)
  1663  		}
  1664  		z.DecReadArrayEnd()
  1665  	} else {
  1666  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  1667  	}
  1668  }
  1669  
  1670  func (x *testSimpleFields) codecDecodeSelfFromMap(l int, d *Decoder) {
  1671  	var h codecSelfer19780
  1672  	z, r := GenHelper().Decoder(d)
  1673  	_, _, _ = h, z, r
  1674  	var yyhl3 bool = l >= 0
  1675  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  1676  		z.DecReadMapElemKey()
  1677  		yys3 := r.DecodeStringAsBytes()
  1678  		z.DecReadMapElemValue()
  1679  		switch string(yys3) {
  1680  		case "S":
  1681  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  1682  		case "I64":
  1683  			x.I64 = (int64)(r.DecodeInt64())
  1684  		case "I8":
  1685  			x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  1686  		case "Ui64":
  1687  			x.Ui64 = (uint64)(r.DecodeUint64())
  1688  		case "Ui8":
  1689  			x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  1690  		case "F64":
  1691  			x.F64 = (float64)(r.DecodeFloat64())
  1692  		case "F32":
  1693  			x.F32 = (float32)(z.DecDecodeFloat32())
  1694  		case "B":
  1695  			x.B = (bool)(r.DecodeBool())
  1696  		case "Sslice":
  1697  			z.F.DecSliceStringX(&x.Sslice, d)
  1698  		case "I32slice":
  1699  			z.F.DecSliceInt32X(&x.I32slice, d)
  1700  		case "Ui64slice":
  1701  			z.F.DecSliceUint64X(&x.Ui64slice, d)
  1702  		case "Ui8slice":
  1703  			x.Ui8slice = z.DecodeBytesInto(([]byte)(x.Ui8slice))
  1704  		case "Bslice":
  1705  			z.F.DecSliceBoolX(&x.Bslice, d)
  1706  		case "Iptrslice":
  1707  			h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
  1708  		case "WrapSliceInt64":
  1709  			if yyxt25 := z.Extension(x.WrapSliceInt64); yyxt25 != nil {
  1710  				z.DecExtension(&x.WrapSliceInt64, yyxt25)
  1711  			} else {
  1712  				x.WrapSliceInt64.CodecDecodeSelf(d)
  1713  			}
  1714  		case "WrapSliceString":
  1715  			if yyxt27 := z.Extension(x.WrapSliceString); yyxt27 != nil {
  1716  				z.DecExtension(&x.WrapSliceString, yyxt27)
  1717  			} else {
  1718  				x.WrapSliceString.CodecDecodeSelf(d)
  1719  			}
  1720  		case "Msint":
  1721  			z.F.DecMapStringIntX(&x.Msint, d)
  1722  		default:
  1723  			z.DecStructFieldNotFound(-1, string(yys3))
  1724  		} // end switch yys3
  1725  	} // end for yyj3
  1726  }
  1727  
  1728  func (x *testSimpleFields) codecDecodeSelfFromArray(l int, d *Decoder) {
  1729  	var h codecSelfer19780
  1730  	z, r := GenHelper().Decoder(d)
  1731  	_, _, _ = h, z, r
  1732  	var yyj30 int
  1733  	var yyb30 bool
  1734  	var yyhl30 bool = l >= 0
  1735  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1736  	if yyb30 {
  1737  		z.DecReadArrayEnd()
  1738  		return
  1739  	}
  1740  	z.DecReadArrayElem()
  1741  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  1742  	yyj30++
  1743  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1744  	if yyb30 {
  1745  		z.DecReadArrayEnd()
  1746  		return
  1747  	}
  1748  	z.DecReadArrayElem()
  1749  	x.I64 = (int64)(r.DecodeInt64())
  1750  	yyj30++
  1751  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1752  	if yyb30 {
  1753  		z.DecReadArrayEnd()
  1754  		return
  1755  	}
  1756  	z.DecReadArrayElem()
  1757  	x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  1758  	yyj30++
  1759  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1760  	if yyb30 {
  1761  		z.DecReadArrayEnd()
  1762  		return
  1763  	}
  1764  	z.DecReadArrayElem()
  1765  	x.Ui64 = (uint64)(r.DecodeUint64())
  1766  	yyj30++
  1767  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1768  	if yyb30 {
  1769  		z.DecReadArrayEnd()
  1770  		return
  1771  	}
  1772  	z.DecReadArrayElem()
  1773  	x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  1774  	yyj30++
  1775  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1776  	if yyb30 {
  1777  		z.DecReadArrayEnd()
  1778  		return
  1779  	}
  1780  	z.DecReadArrayElem()
  1781  	x.F64 = (float64)(r.DecodeFloat64())
  1782  	yyj30++
  1783  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1784  	if yyb30 {
  1785  		z.DecReadArrayEnd()
  1786  		return
  1787  	}
  1788  	z.DecReadArrayElem()
  1789  	x.F32 = (float32)(z.DecDecodeFloat32())
  1790  	yyj30++
  1791  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1792  	if yyb30 {
  1793  		z.DecReadArrayEnd()
  1794  		return
  1795  	}
  1796  	z.DecReadArrayElem()
  1797  	x.B = (bool)(r.DecodeBool())
  1798  	yyj30++
  1799  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1800  	if yyb30 {
  1801  		z.DecReadArrayEnd()
  1802  		return
  1803  	}
  1804  	z.DecReadArrayElem()
  1805  	z.F.DecSliceStringX(&x.Sslice, d)
  1806  	yyj30++
  1807  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1808  	if yyb30 {
  1809  		z.DecReadArrayEnd()
  1810  		return
  1811  	}
  1812  	z.DecReadArrayElem()
  1813  	z.F.DecSliceInt32X(&x.I32slice, d)
  1814  	yyj30++
  1815  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1816  	if yyb30 {
  1817  		z.DecReadArrayEnd()
  1818  		return
  1819  	}
  1820  	z.DecReadArrayElem()
  1821  	z.F.DecSliceUint64X(&x.Ui64slice, d)
  1822  	yyj30++
  1823  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1824  	if yyb30 {
  1825  		z.DecReadArrayEnd()
  1826  		return
  1827  	}
  1828  	z.DecReadArrayElem()
  1829  	x.Ui8slice = z.DecodeBytesInto(([]byte)(x.Ui8slice))
  1830  	yyj30++
  1831  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1832  	if yyb30 {
  1833  		z.DecReadArrayEnd()
  1834  		return
  1835  	}
  1836  	z.DecReadArrayElem()
  1837  	z.F.DecSliceBoolX(&x.Bslice, d)
  1838  	yyj30++
  1839  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1840  	if yyb30 {
  1841  		z.DecReadArrayEnd()
  1842  		return
  1843  	}
  1844  	z.DecReadArrayElem()
  1845  	h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
  1846  	yyj30++
  1847  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1848  	if yyb30 {
  1849  		z.DecReadArrayEnd()
  1850  		return
  1851  	}
  1852  	z.DecReadArrayElem()
  1853  	if yyxt52 := z.Extension(x.WrapSliceInt64); yyxt52 != nil {
  1854  		z.DecExtension(&x.WrapSliceInt64, yyxt52)
  1855  	} else {
  1856  		x.WrapSliceInt64.CodecDecodeSelf(d)
  1857  	}
  1858  	yyj30++
  1859  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1860  	if yyb30 {
  1861  		z.DecReadArrayEnd()
  1862  		return
  1863  	}
  1864  	z.DecReadArrayElem()
  1865  	if yyxt54 := z.Extension(x.WrapSliceString); yyxt54 != nil {
  1866  		z.DecExtension(&x.WrapSliceString, yyxt54)
  1867  	} else {
  1868  		x.WrapSliceString.CodecDecodeSelf(d)
  1869  	}
  1870  	yyj30++
  1871  	yyb30 = !z.DecContainerNext(yyj30, l, yyhl30)
  1872  	if yyb30 {
  1873  		z.DecReadArrayEnd()
  1874  		return
  1875  	}
  1876  	z.DecReadArrayElem()
  1877  	z.F.DecMapStringIntX(&x.Msint, d)
  1878  	yyj30++
  1879  	for ; z.DecContainerNext(yyj30, l, yyhl30); yyj30++ {
  1880  		z.DecReadArrayElem()
  1881  		z.DecStructFieldNotFound(yyj30-1, "")
  1882  	}
  1883  }
  1884  
  1885  func (x *testSimpleFields) IsCodecEmpty() bool {
  1886  	return !(x.S != "" || x.I64 != 0 || x.I8 != 0 || x.Ui64 != 0 || x.Ui8 != 0 || x.F64 != 0 || x.F32 != 0 || bool(x.B) || len(x.Sslice) != 0 || len(x.I32slice) != 0 || len(x.Ui64slice) != 0 || len(x.Ui8slice) != 0 || len(x.Bslice) != 0 || len(x.Iptrslice) != 0 || len(x.WrapSliceInt64) != 0 || len(x.WrapSliceString) != 0 || len(x.Msint) != 0 || false)
  1887  }
  1888  
  1889  func (TestStrucCommon) codecSelferViaCodecgen() {}
  1890  func (x *TestStrucCommon) CodecEncodeSelf(e *Encoder) {
  1891  	var h codecSelfer19780
  1892  	z, r := GenHelper().Encoder(e)
  1893  	_, _, _ = h, z, r
  1894  	if z.EncBasicHandle().CheckCircularRef {
  1895  		z.EncEncode(x)
  1896  		return
  1897  	}
  1898  	if x == nil {
  1899  		r.EncodeNil()
  1900  	} else {
  1901  		yy2arr2 := z.EncBasicHandle().StructToArray
  1902  		_ = yy2arr2
  1903  		const yyr2 bool = false // struct tag has 'toArray'
  1904  		var yyn54 bool = x.AnonInTestStrucSlim == nil || x.AnonInTestStrucSlim.P == nil
  1905  		var yyn55 bool = x.NotAnonSlim == nil
  1906  		var yyn58 bool = x.Nint64 == nil
  1907  		if yyr2 || yy2arr2 {
  1908  			z.EncWriteArrayStart(56)
  1909  			z.EncWriteArrayElem()
  1910  			r.EncodeString(string(x.S))
  1911  			z.EncWriteArrayElem()
  1912  			r.EncodeInt(int64(x.I64))
  1913  			z.EncWriteArrayElem()
  1914  			r.EncodeInt(int64(x.I32))
  1915  			z.EncWriteArrayElem()
  1916  			r.EncodeInt(int64(x.I16))
  1917  			z.EncWriteArrayElem()
  1918  			r.EncodeInt(int64(x.I8))
  1919  			z.EncWriteArrayElem()
  1920  			r.EncodeInt(int64(x.I64n))
  1921  			z.EncWriteArrayElem()
  1922  			r.EncodeInt(int64(x.I32n))
  1923  			z.EncWriteArrayElem()
  1924  			r.EncodeInt(int64(x.I16n))
  1925  			z.EncWriteArrayElem()
  1926  			r.EncodeInt(int64(x.I8n))
  1927  			z.EncWriteArrayElem()
  1928  			r.EncodeUint(uint64(x.Ui64))
  1929  			z.EncWriteArrayElem()
  1930  			r.EncodeUint(uint64(x.Ui32))
  1931  			z.EncWriteArrayElem()
  1932  			r.EncodeUint(uint64(x.Ui16))
  1933  			z.EncWriteArrayElem()
  1934  			r.EncodeUint(uint64(x.Ui8))
  1935  			z.EncWriteArrayElem()
  1936  			r.EncodeFloat64(float64(x.F64))
  1937  			z.EncWriteArrayElem()
  1938  			r.EncodeFloat32(float32(x.F32))
  1939  			z.EncWriteArrayElem()
  1940  			r.EncodeBool(bool(x.B))
  1941  			z.EncWriteArrayElem()
  1942  			r.EncodeUint(uint64(x.By))
  1943  			z.EncWriteArrayElem()
  1944  			if x.Sslice == nil {
  1945  				r.EncodeNil()
  1946  			} else {
  1947  				z.F.EncSliceStringV(x.Sslice, e)
  1948  			} // end block: if x.Sslice slice == nil
  1949  			z.EncWriteArrayElem()
  1950  			if x.I64slice == nil {
  1951  				r.EncodeNil()
  1952  			} else {
  1953  				z.F.EncSliceInt64V(x.I64slice, e)
  1954  			} // end block: if x.I64slice slice == nil
  1955  			z.EncWriteArrayElem()
  1956  			if x.I32slice == nil {
  1957  				r.EncodeNil()
  1958  			} else {
  1959  				z.F.EncSliceInt32V(x.I32slice, e)
  1960  			} // end block: if x.I32slice slice == nil
  1961  			z.EncWriteArrayElem()
  1962  			if x.Ui64slice == nil {
  1963  				r.EncodeNil()
  1964  			} else {
  1965  				z.F.EncSliceUint64V(x.Ui64slice, e)
  1966  			} // end block: if x.Ui64slice slice == nil
  1967  			z.EncWriteArrayElem()
  1968  			if x.Ui8slice == nil {
  1969  				r.EncodeNil()
  1970  			} else {
  1971  				r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  1972  			} // end block: if x.Ui8slice slice == nil
  1973  			z.EncWriteArrayElem()
  1974  			if x.Bslice == nil {
  1975  				r.EncodeNil()
  1976  			} else {
  1977  				z.F.EncSliceBoolV(x.Bslice, e)
  1978  			} // end block: if x.Bslice slice == nil
  1979  			z.EncWriteArrayElem()
  1980  			if x.Byslice == nil {
  1981  				r.EncodeNil()
  1982  			} else {
  1983  				r.EncodeStringBytesRaw([]byte(x.Byslice))
  1984  			} // end block: if x.Byslice slice == nil
  1985  			z.EncWriteArrayElem()
  1986  			if x.BytesSlice == nil {
  1987  				r.EncodeNil()
  1988  			} else {
  1989  				z.F.EncSliceBytesV(x.BytesSlice, e)
  1990  			} // end block: if x.BytesSlice slice == nil
  1991  			z.EncWriteArrayElem()
  1992  			if x.Iptrslice == nil {
  1993  				r.EncodeNil()
  1994  			} else {
  1995  				h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  1996  			} // end block: if x.Iptrslice slice == nil
  1997  			z.EncWriteArrayElem()
  1998  			if yyxt85 := z.Extension(x.WrapSliceInt64); yyxt85 != nil {
  1999  				z.EncExtension(x.WrapSliceInt64, yyxt85)
  2000  			} else {
  2001  				x.WrapSliceInt64.CodecEncodeSelf(e)
  2002  			}
  2003  			z.EncWriteArrayElem()
  2004  			if yyxt86 := z.Extension(x.WrapSliceString); yyxt86 != nil {
  2005  				z.EncExtension(x.WrapSliceString, yyxt86)
  2006  			} else {
  2007  				x.WrapSliceString.CodecEncodeSelf(e)
  2008  			}
  2009  			z.EncWriteArrayElem()
  2010  			if x.Msint == nil {
  2011  				r.EncodeNil()
  2012  			} else {
  2013  				z.F.EncMapStringIntV(x.Msint, e)
  2014  			} // end block: if x.Msint map == nil
  2015  			z.EncWriteArrayElem()
  2016  			if x.Msbytes == nil {
  2017  				r.EncodeNil()
  2018  			} else {
  2019  				z.F.EncMapStringBytesV(x.Msbytes, e)
  2020  			} // end block: if x.Msbytes map == nil
  2021  			z.EncWriteArrayElem()
  2022  			yy89 := &x.Simplef
  2023  			if yyxt90 := z.Extension(yy89); yyxt90 != nil {
  2024  				z.EncExtension(yy89, yyxt90)
  2025  			} else {
  2026  				yy89.CodecEncodeSelf(e)
  2027  			}
  2028  			z.EncWriteArrayElem()
  2029  			if x.SstrUi64T == nil {
  2030  				r.EncodeNil()
  2031  			} else {
  2032  				h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
  2033  			} // end block: if x.SstrUi64T slice == nil
  2034  			z.EncWriteArrayElem()
  2035  			if x.MstrUi64T == nil {
  2036  				r.EncodeNil()
  2037  			} else {
  2038  				h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.MstrUi64T), e)
  2039  			} // end block: if x.MstrUi64T map == nil
  2040  			z.EncWriteArrayElem()
  2041  			r.EncodeString(string(x.AnonInTestStruc.AS))
  2042  			z.EncWriteArrayElem()
  2043  			r.EncodeInt(int64(x.AnonInTestStruc.AI64))
  2044  			z.EncWriteArrayElem()
  2045  			r.EncodeInt(int64(x.AnonInTestStruc.AI16))
  2046  			z.EncWriteArrayElem()
  2047  			r.EncodeUint(uint64(x.AnonInTestStruc.AUi64))
  2048  			z.EncWriteArrayElem()
  2049  			if x.AnonInTestStruc.ASslice == nil {
  2050  				r.EncodeNil()
  2051  			} else {
  2052  				z.F.EncSliceStringV(x.AnonInTestStruc.ASslice, e)
  2053  			} // end block: if x.AnonInTestStruc.ASslice slice == nil
  2054  			z.EncWriteArrayElem()
  2055  			if x.AnonInTestStruc.AI64slice == nil {
  2056  				r.EncodeNil()
  2057  			} else {
  2058  				z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice, e)
  2059  			} // end block: if x.AnonInTestStruc.AI64slice slice == nil
  2060  			z.EncWriteArrayElem()
  2061  			if x.AnonInTestStruc.AUi64slice == nil {
  2062  				r.EncodeNil()
  2063  			} else {
  2064  				z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64slice, e)
  2065  			} // end block: if x.AnonInTestStruc.AUi64slice slice == nil
  2066  			z.EncWriteArrayElem()
  2067  			if x.AnonInTestStruc.AF64slice == nil {
  2068  				r.EncodeNil()
  2069  			} else {
  2070  				z.F.EncSliceFloat64V(x.AnonInTestStruc.AF64slice, e)
  2071  			} // end block: if x.AnonInTestStruc.AF64slice slice == nil
  2072  			z.EncWriteArrayElem()
  2073  			if x.AnonInTestStruc.AF32slice == nil {
  2074  				r.EncodeNil()
  2075  			} else {
  2076  				z.F.EncSliceFloat32V(x.AnonInTestStruc.AF32slice, e)
  2077  			} // end block: if x.AnonInTestStruc.AF32slice slice == nil
  2078  			z.EncWriteArrayElem()
  2079  			if x.AnonInTestStruc.AMSS == nil {
  2080  				r.EncodeNil()
  2081  			} else {
  2082  				z.F.EncMapStringStringV(x.AnonInTestStruc.AMSS, e)
  2083  			} // end block: if x.AnonInTestStruc.AMSS map == nil
  2084  			z.EncWriteArrayElem()
  2085  			if x.AnonInTestStruc.AMSU64 == nil {
  2086  				r.EncodeNil()
  2087  			} else {
  2088  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64, e)
  2089  			} // end block: if x.AnonInTestStruc.AMSU64 map == nil
  2090  			z.EncWriteArrayElem()
  2091  			yy104 := &x.AnonInTestStruc.AI64arr8
  2092  			h.encArray8int64((*[8]int64)(yy104), e)
  2093  			z.EncWriteArrayElem()
  2094  			yy106 := &x.AnonInTestStruc.AI64arr0
  2095  			h.encArray0int64((*[0]int64)(yy106), e)
  2096  			z.EncWriteArrayElem()
  2097  			if x.AnonInTestStruc.AI64slice0 == nil {
  2098  				r.EncodeNil()
  2099  			} else {
  2100  				z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice0, e)
  2101  			} // end block: if x.AnonInTestStruc.AI64slice0 slice == nil
  2102  			z.EncWriteArrayElem()
  2103  			if x.AnonInTestStruc.AUi64sliceN == nil {
  2104  				r.EncodeNil()
  2105  			} else {
  2106  				z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64sliceN, e)
  2107  			} // end block: if x.AnonInTestStruc.AUi64sliceN slice == nil
  2108  			z.EncWriteArrayElem()
  2109  			if x.AnonInTestStruc.AMSU64N == nil {
  2110  				r.EncodeNil()
  2111  			} else {
  2112  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64N, e)
  2113  			} // end block: if x.AnonInTestStruc.AMSU64N map == nil
  2114  			z.EncWriteArrayElem()
  2115  			if x.AnonInTestStruc.AMSU64E == nil {
  2116  				r.EncodeNil()
  2117  			} else {
  2118  				z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64E, e)
  2119  			} // end block: if x.AnonInTestStruc.AMSU64E map == nil
  2120  			z.EncWriteArrayElem()
  2121  			yy112 := &x.NotAnon
  2122  			if yyxt113 := z.Extension(yy112); yyxt113 != nil {
  2123  				z.EncExtension(yy112, yyxt113)
  2124  			} else {
  2125  				yy112.CodecEncodeSelf(e)
  2126  			}
  2127  			if yyn54 {
  2128  				z.EncWriteArrayElem()
  2129  				r.EncodeNil()
  2130  			} else {
  2131  				z.EncWriteArrayElem()
  2132  				yy114 := *x.AnonInTestStrucSlim.P
  2133  				r.EncodeString(string(yy114))
  2134  			}
  2135  			if yyn55 {
  2136  				z.EncWriteArrayElem()
  2137  				r.EncodeNil()
  2138  			} else {
  2139  				z.EncWriteArrayElem()
  2140  				if yyxt116 := z.Extension(x.NotAnonSlim); yyxt116 != nil {
  2141  					z.EncExtension(x.NotAnonSlim, yyxt116)
  2142  				} else {
  2143  					x.NotAnonSlim.CodecEncodeSelf(e)
  2144  				}
  2145  			}
  2146  			z.EncWriteArrayElem()
  2147  			if x.Nmap == nil {
  2148  				r.EncodeNil()
  2149  			} else {
  2150  				z.F.EncMapStringBoolV(x.Nmap, e)
  2151  			} // end block: if x.Nmap map == nil
  2152  			z.EncWriteArrayElem()
  2153  			if x.Nslice == nil {
  2154  				r.EncodeNil()
  2155  			} else {
  2156  				r.EncodeStringBytesRaw([]byte(x.Nslice))
  2157  			} // end block: if x.Nslice slice == nil
  2158  			if yyn58 {
  2159  				z.EncWriteArrayElem()
  2160  				r.EncodeNil()
  2161  			} else {
  2162  				z.EncWriteArrayElem()
  2163  				yy119 := *x.Nint64
  2164  				r.EncodeInt(int64(yy119))
  2165  			}
  2166  			z.EncWriteArrayEnd()
  2167  		} else {
  2168  			z.EncWriteMapStart(56)
  2169  			if z.EncBasicHandle().Canonical {
  2170  				z.EncWriteMapElemKey()
  2171  				if z.IsJSONHandle() {
  2172  					z.EncWr().WriteStr("\"AF32slice\"")
  2173  				} else {
  2174  					r.EncodeString(`AF32slice`)
  2175  				}
  2176  				z.EncWriteMapElemValue()
  2177  				if x.AnonInTestStruc.AF32slice == nil {
  2178  					r.EncodeNil()
  2179  				} else {
  2180  					z.F.EncSliceFloat32V(x.AnonInTestStruc.AF32slice, e)
  2181  				} // end block: if x.AnonInTestStruc.AF32slice slice == nil
  2182  				z.EncWriteMapElemKey()
  2183  				if z.IsJSONHandle() {
  2184  					z.EncWr().WriteStr("\"AF64slice\"")
  2185  				} else {
  2186  					r.EncodeString(`AF64slice`)
  2187  				}
  2188  				z.EncWriteMapElemValue()
  2189  				if x.AnonInTestStruc.AF64slice == nil {
  2190  					r.EncodeNil()
  2191  				} else {
  2192  					z.F.EncSliceFloat64V(x.AnonInTestStruc.AF64slice, e)
  2193  				} // end block: if x.AnonInTestStruc.AF64slice slice == nil
  2194  				z.EncWriteMapElemKey()
  2195  				if z.IsJSONHandle() {
  2196  					z.EncWr().WriteStr("\"AI16\"")
  2197  				} else {
  2198  					r.EncodeString(`AI16`)
  2199  				}
  2200  				z.EncWriteMapElemValue()
  2201  				r.EncodeInt(int64(x.AnonInTestStruc.AI16))
  2202  				z.EncWriteMapElemKey()
  2203  				if z.IsJSONHandle() {
  2204  					z.EncWr().WriteStr("\"AI64\"")
  2205  				} else {
  2206  					r.EncodeString(`AI64`)
  2207  				}
  2208  				z.EncWriteMapElemValue()
  2209  				r.EncodeInt(int64(x.AnonInTestStruc.AI64))
  2210  				z.EncWriteMapElemKey()
  2211  				if z.IsJSONHandle() {
  2212  					z.EncWr().WriteStr("\"AI64arr0\"")
  2213  				} else {
  2214  					r.EncodeString(`AI64arr0`)
  2215  				}
  2216  				z.EncWriteMapElemValue()
  2217  				yy125 := &x.AnonInTestStruc.AI64arr0
  2218  				h.encArray0int64((*[0]int64)(yy125), e)
  2219  				z.EncWriteMapElemKey()
  2220  				if z.IsJSONHandle() {
  2221  					z.EncWr().WriteStr("\"AI64arr8\"")
  2222  				} else {
  2223  					r.EncodeString(`AI64arr8`)
  2224  				}
  2225  				z.EncWriteMapElemValue()
  2226  				yy127 := &x.AnonInTestStruc.AI64arr8
  2227  				h.encArray8int64((*[8]int64)(yy127), e)
  2228  				z.EncWriteMapElemKey()
  2229  				if z.IsJSONHandle() {
  2230  					z.EncWr().WriteStr("\"AI64slice\"")
  2231  				} else {
  2232  					r.EncodeString(`AI64slice`)
  2233  				}
  2234  				z.EncWriteMapElemValue()
  2235  				if x.AnonInTestStruc.AI64slice == nil {
  2236  					r.EncodeNil()
  2237  				} else {
  2238  					z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice, e)
  2239  				} // end block: if x.AnonInTestStruc.AI64slice slice == nil
  2240  				z.EncWriteMapElemKey()
  2241  				if z.IsJSONHandle() {
  2242  					z.EncWr().WriteStr("\"AI64slice0\"")
  2243  				} else {
  2244  					r.EncodeString(`AI64slice0`)
  2245  				}
  2246  				z.EncWriteMapElemValue()
  2247  				if x.AnonInTestStruc.AI64slice0 == nil {
  2248  					r.EncodeNil()
  2249  				} else {
  2250  					z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice0, e)
  2251  				} // end block: if x.AnonInTestStruc.AI64slice0 slice == nil
  2252  				z.EncWriteMapElemKey()
  2253  				if z.IsJSONHandle() {
  2254  					z.EncWr().WriteStr("\"AMSS\"")
  2255  				} else {
  2256  					r.EncodeString(`AMSS`)
  2257  				}
  2258  				z.EncWriteMapElemValue()
  2259  				if x.AnonInTestStruc.AMSS == nil {
  2260  					r.EncodeNil()
  2261  				} else {
  2262  					z.F.EncMapStringStringV(x.AnonInTestStruc.AMSS, e)
  2263  				} // end block: if x.AnonInTestStruc.AMSS map == nil
  2264  				z.EncWriteMapElemKey()
  2265  				if z.IsJSONHandle() {
  2266  					z.EncWr().WriteStr("\"AMSU64\"")
  2267  				} else {
  2268  					r.EncodeString(`AMSU64`)
  2269  				}
  2270  				z.EncWriteMapElemValue()
  2271  				if x.AnonInTestStruc.AMSU64 == nil {
  2272  					r.EncodeNil()
  2273  				} else {
  2274  					z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64, e)
  2275  				} // end block: if x.AnonInTestStruc.AMSU64 map == nil
  2276  				z.EncWriteMapElemKey()
  2277  				if z.IsJSONHandle() {
  2278  					z.EncWr().WriteStr("\"AMSU64E\"")
  2279  				} else {
  2280  					r.EncodeString(`AMSU64E`)
  2281  				}
  2282  				z.EncWriteMapElemValue()
  2283  				if x.AnonInTestStruc.AMSU64E == nil {
  2284  					r.EncodeNil()
  2285  				} else {
  2286  					z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64E, e)
  2287  				} // end block: if x.AnonInTestStruc.AMSU64E map == nil
  2288  				z.EncWriteMapElemKey()
  2289  				if z.IsJSONHandle() {
  2290  					z.EncWr().WriteStr("\"AMSU64N\"")
  2291  				} else {
  2292  					r.EncodeString(`AMSU64N`)
  2293  				}
  2294  				z.EncWriteMapElemValue()
  2295  				if x.AnonInTestStruc.AMSU64N == nil {
  2296  					r.EncodeNil()
  2297  				} else {
  2298  					z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64N, e)
  2299  				} // end block: if x.AnonInTestStruc.AMSU64N map == nil
  2300  				z.EncWriteMapElemKey()
  2301  				if z.IsJSONHandle() {
  2302  					z.EncWr().WriteStr("\"AS\"")
  2303  				} else {
  2304  					r.EncodeString(`AS`)
  2305  				}
  2306  				z.EncWriteMapElemValue()
  2307  				r.EncodeString(string(x.AnonInTestStruc.AS))
  2308  				z.EncWriteMapElemKey()
  2309  				if z.IsJSONHandle() {
  2310  					z.EncWr().WriteStr("\"ASslice\"")
  2311  				} else {
  2312  					r.EncodeString(`ASslice`)
  2313  				}
  2314  				z.EncWriteMapElemValue()
  2315  				if x.AnonInTestStruc.ASslice == nil {
  2316  					r.EncodeNil()
  2317  				} else {
  2318  					z.F.EncSliceStringV(x.AnonInTestStruc.ASslice, e)
  2319  				} // end block: if x.AnonInTestStruc.ASslice slice == nil
  2320  				z.EncWriteMapElemKey()
  2321  				if z.IsJSONHandle() {
  2322  					z.EncWr().WriteStr("\"AUi64\"")
  2323  				} else {
  2324  					r.EncodeString(`AUi64`)
  2325  				}
  2326  				z.EncWriteMapElemValue()
  2327  				r.EncodeUint(uint64(x.AnonInTestStruc.AUi64))
  2328  				z.EncWriteMapElemKey()
  2329  				if z.IsJSONHandle() {
  2330  					z.EncWr().WriteStr("\"AUi64slice\"")
  2331  				} else {
  2332  					r.EncodeString(`AUi64slice`)
  2333  				}
  2334  				z.EncWriteMapElemValue()
  2335  				if x.AnonInTestStruc.AUi64slice == nil {
  2336  					r.EncodeNil()
  2337  				} else {
  2338  					z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64slice, e)
  2339  				} // end block: if x.AnonInTestStruc.AUi64slice slice == nil
  2340  				z.EncWriteMapElemKey()
  2341  				if z.IsJSONHandle() {
  2342  					z.EncWr().WriteStr("\"AUi64sliceN\"")
  2343  				} else {
  2344  					r.EncodeString(`AUi64sliceN`)
  2345  				}
  2346  				z.EncWriteMapElemValue()
  2347  				if x.AnonInTestStruc.AUi64sliceN == nil {
  2348  					r.EncodeNil()
  2349  				} else {
  2350  					z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64sliceN, e)
  2351  				} // end block: if x.AnonInTestStruc.AUi64sliceN slice == nil
  2352  				z.EncWriteMapElemKey()
  2353  				if z.IsJSONHandle() {
  2354  					z.EncWr().WriteStr("\"B\"")
  2355  				} else {
  2356  					r.EncodeString(`B`)
  2357  				}
  2358  				z.EncWriteMapElemValue()
  2359  				r.EncodeBool(bool(x.B))
  2360  				z.EncWriteMapElemKey()
  2361  				if z.IsJSONHandle() {
  2362  					z.EncWr().WriteStr("\"Bslice\"")
  2363  				} else {
  2364  					r.EncodeString(`Bslice`)
  2365  				}
  2366  				z.EncWriteMapElemValue()
  2367  				if x.Bslice == nil {
  2368  					r.EncodeNil()
  2369  				} else {
  2370  					z.F.EncSliceBoolV(x.Bslice, e)
  2371  				} // end block: if x.Bslice slice == nil
  2372  				z.EncWriteMapElemKey()
  2373  				if z.IsJSONHandle() {
  2374  					z.EncWr().WriteStr("\"By\"")
  2375  				} else {
  2376  					r.EncodeString(`By`)
  2377  				}
  2378  				z.EncWriteMapElemValue()
  2379  				r.EncodeUint(uint64(x.By))
  2380  				z.EncWriteMapElemKey()
  2381  				if z.IsJSONHandle() {
  2382  					z.EncWr().WriteStr("\"Byslice\"")
  2383  				} else {
  2384  					r.EncodeString(`Byslice`)
  2385  				}
  2386  				z.EncWriteMapElemValue()
  2387  				if x.Byslice == nil {
  2388  					r.EncodeNil()
  2389  				} else {
  2390  					r.EncodeStringBytesRaw([]byte(x.Byslice))
  2391  				} // end block: if x.Byslice slice == nil
  2392  				z.EncWriteMapElemKey()
  2393  				if z.IsJSONHandle() {
  2394  					z.EncWr().WriteStr("\"BytesSlice\"")
  2395  				} else {
  2396  					r.EncodeString(`BytesSlice`)
  2397  				}
  2398  				z.EncWriteMapElemValue()
  2399  				if x.BytesSlice == nil {
  2400  					r.EncodeNil()
  2401  				} else {
  2402  					z.F.EncSliceBytesV(x.BytesSlice, e)
  2403  				} // end block: if x.BytesSlice slice == nil
  2404  				z.EncWriteMapElemKey()
  2405  				if z.IsJSONHandle() {
  2406  					z.EncWr().WriteStr("\"F32\"")
  2407  				} else {
  2408  					r.EncodeString(`F32`)
  2409  				}
  2410  				z.EncWriteMapElemValue()
  2411  				r.EncodeFloat32(float32(x.F32))
  2412  				z.EncWriteMapElemKey()
  2413  				if z.IsJSONHandle() {
  2414  					z.EncWr().WriteStr("\"F64\"")
  2415  				} else {
  2416  					r.EncodeString(`F64`)
  2417  				}
  2418  				z.EncWriteMapElemValue()
  2419  				r.EncodeFloat64(float64(x.F64))
  2420  				z.EncWriteMapElemKey()
  2421  				if z.IsJSONHandle() {
  2422  					z.EncWr().WriteStr("\"I16\"")
  2423  				} else {
  2424  					r.EncodeString(`I16`)
  2425  				}
  2426  				z.EncWriteMapElemValue()
  2427  				r.EncodeInt(int64(x.I16))
  2428  				z.EncWriteMapElemKey()
  2429  				if z.IsJSONHandle() {
  2430  					z.EncWr().WriteStr("\"I16n\"")
  2431  				} else {
  2432  					r.EncodeString(`I16n`)
  2433  				}
  2434  				z.EncWriteMapElemValue()
  2435  				r.EncodeInt(int64(x.I16n))
  2436  				z.EncWriteMapElemKey()
  2437  				if z.IsJSONHandle() {
  2438  					z.EncWr().WriteStr("\"I32\"")
  2439  				} else {
  2440  					r.EncodeString(`I32`)
  2441  				}
  2442  				z.EncWriteMapElemValue()
  2443  				r.EncodeInt(int64(x.I32))
  2444  				z.EncWriteMapElemKey()
  2445  				if z.IsJSONHandle() {
  2446  					z.EncWr().WriteStr("\"I32n\"")
  2447  				} else {
  2448  					r.EncodeString(`I32n`)
  2449  				}
  2450  				z.EncWriteMapElemValue()
  2451  				r.EncodeInt(int64(x.I32n))
  2452  				z.EncWriteMapElemKey()
  2453  				if z.IsJSONHandle() {
  2454  					z.EncWr().WriteStr("\"I32slice\"")
  2455  				} else {
  2456  					r.EncodeString(`I32slice`)
  2457  				}
  2458  				z.EncWriteMapElemValue()
  2459  				if x.I32slice == nil {
  2460  					r.EncodeNil()
  2461  				} else {
  2462  					z.F.EncSliceInt32V(x.I32slice, e)
  2463  				} // end block: if x.I32slice slice == nil
  2464  				z.EncWriteMapElemKey()
  2465  				if z.IsJSONHandle() {
  2466  					z.EncWr().WriteStr("\"I64\"")
  2467  				} else {
  2468  					r.EncodeString(`I64`)
  2469  				}
  2470  				z.EncWriteMapElemValue()
  2471  				r.EncodeInt(int64(x.I64))
  2472  				z.EncWriteMapElemKey()
  2473  				if z.IsJSONHandle() {
  2474  					z.EncWr().WriteStr("\"I64n\"")
  2475  				} else {
  2476  					r.EncodeString(`I64n`)
  2477  				}
  2478  				z.EncWriteMapElemValue()
  2479  				r.EncodeInt(int64(x.I64n))
  2480  				z.EncWriteMapElemKey()
  2481  				if z.IsJSONHandle() {
  2482  					z.EncWr().WriteStr("\"I64slice\"")
  2483  				} else {
  2484  					r.EncodeString(`I64slice`)
  2485  				}
  2486  				z.EncWriteMapElemValue()
  2487  				if x.I64slice == nil {
  2488  					r.EncodeNil()
  2489  				} else {
  2490  					z.F.EncSliceInt64V(x.I64slice, e)
  2491  				} // end block: if x.I64slice slice == nil
  2492  				z.EncWriteMapElemKey()
  2493  				if z.IsJSONHandle() {
  2494  					z.EncWr().WriteStr("\"I8\"")
  2495  				} else {
  2496  					r.EncodeString(`I8`)
  2497  				}
  2498  				z.EncWriteMapElemValue()
  2499  				r.EncodeInt(int64(x.I8))
  2500  				z.EncWriteMapElemKey()
  2501  				if z.IsJSONHandle() {
  2502  					z.EncWr().WriteStr("\"I8n\"")
  2503  				} else {
  2504  					r.EncodeString(`I8n`)
  2505  				}
  2506  				z.EncWriteMapElemValue()
  2507  				r.EncodeInt(int64(x.I8n))
  2508  				z.EncWriteMapElemKey()
  2509  				if z.IsJSONHandle() {
  2510  					z.EncWr().WriteStr("\"Iptrslice\"")
  2511  				} else {
  2512  					r.EncodeString(`Iptrslice`)
  2513  				}
  2514  				z.EncWriteMapElemValue()
  2515  				if x.Iptrslice == nil {
  2516  					r.EncodeNil()
  2517  				} else {
  2518  					h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  2519  				} // end block: if x.Iptrslice slice == nil
  2520  				z.EncWriteMapElemKey()
  2521  				if z.IsJSONHandle() {
  2522  					z.EncWr().WriteStr("\"Msbytes\"")
  2523  				} else {
  2524  					r.EncodeString(`Msbytes`)
  2525  				}
  2526  				z.EncWriteMapElemValue()
  2527  				if x.Msbytes == nil {
  2528  					r.EncodeNil()
  2529  				} else {
  2530  					z.F.EncMapStringBytesV(x.Msbytes, e)
  2531  				} // end block: if x.Msbytes map == nil
  2532  				z.EncWriteMapElemKey()
  2533  				if z.IsJSONHandle() {
  2534  					z.EncWr().WriteStr("\"Msint\"")
  2535  				} else {
  2536  					r.EncodeString(`Msint`)
  2537  				}
  2538  				z.EncWriteMapElemValue()
  2539  				if x.Msint == nil {
  2540  					r.EncodeNil()
  2541  				} else {
  2542  					z.F.EncMapStringIntV(x.Msint, e)
  2543  				} // end block: if x.Msint map == nil
  2544  				z.EncWriteMapElemKey()
  2545  				if z.IsJSONHandle() {
  2546  					z.EncWr().WriteStr("\"MstrUi64T\"")
  2547  				} else {
  2548  					r.EncodeString(`MstrUi64T`)
  2549  				}
  2550  				z.EncWriteMapElemValue()
  2551  				if x.MstrUi64T == nil {
  2552  					r.EncodeNil()
  2553  				} else {
  2554  					h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.MstrUi64T), e)
  2555  				} // end block: if x.MstrUi64T map == nil
  2556  				z.EncWriteMapElemKey()
  2557  				if z.IsJSONHandle() {
  2558  					z.EncWr().WriteStr("\"Nint64\"")
  2559  				} else {
  2560  					r.EncodeString(`Nint64`)
  2561  				}
  2562  				z.EncWriteMapElemValue()
  2563  				if yyn58 {
  2564  					r.EncodeNil()
  2565  				} else {
  2566  					yy161 := *x.Nint64
  2567  					r.EncodeInt(int64(yy161))
  2568  				}
  2569  				z.EncWriteMapElemKey()
  2570  				if z.IsJSONHandle() {
  2571  					z.EncWr().WriteStr("\"Nmap\"")
  2572  				} else {
  2573  					r.EncodeString(`Nmap`)
  2574  				}
  2575  				z.EncWriteMapElemValue()
  2576  				if x.Nmap == nil {
  2577  					r.EncodeNil()
  2578  				} else {
  2579  					z.F.EncMapStringBoolV(x.Nmap, e)
  2580  				} // end block: if x.Nmap map == nil
  2581  				z.EncWriteMapElemKey()
  2582  				if z.IsJSONHandle() {
  2583  					z.EncWr().WriteStr("\"NotAnon\"")
  2584  				} else {
  2585  					r.EncodeString(`NotAnon`)
  2586  				}
  2587  				z.EncWriteMapElemValue()
  2588  				yy164 := &x.NotAnon
  2589  				if yyxt165 := z.Extension(yy164); yyxt165 != nil {
  2590  					z.EncExtension(yy164, yyxt165)
  2591  				} else {
  2592  					yy164.CodecEncodeSelf(e)
  2593  				}
  2594  				z.EncWriteMapElemKey()
  2595  				if z.IsJSONHandle() {
  2596  					z.EncWr().WriteStr("\"NotAnonSlim\"")
  2597  				} else {
  2598  					r.EncodeString(`NotAnonSlim`)
  2599  				}
  2600  				z.EncWriteMapElemValue()
  2601  				if yyn55 {
  2602  					r.EncodeNil()
  2603  				} else {
  2604  					if yyxt166 := z.Extension(x.NotAnonSlim); yyxt166 != nil {
  2605  						z.EncExtension(x.NotAnonSlim, yyxt166)
  2606  					} else {
  2607  						x.NotAnonSlim.CodecEncodeSelf(e)
  2608  					}
  2609  				}
  2610  				z.EncWriteMapElemKey()
  2611  				if z.IsJSONHandle() {
  2612  					z.EncWr().WriteStr("\"Nslice\"")
  2613  				} else {
  2614  					r.EncodeString(`Nslice`)
  2615  				}
  2616  				z.EncWriteMapElemValue()
  2617  				if x.Nslice == nil {
  2618  					r.EncodeNil()
  2619  				} else {
  2620  					r.EncodeStringBytesRaw([]byte(x.Nslice))
  2621  				} // end block: if x.Nslice slice == nil
  2622  				z.EncWriteMapElemKey()
  2623  				if z.IsJSONHandle() {
  2624  					z.EncWr().WriteStr("\"P\"")
  2625  				} else {
  2626  					r.EncodeString(`P`)
  2627  				}
  2628  				z.EncWriteMapElemValue()
  2629  				if yyn54 {
  2630  					r.EncodeNil()
  2631  				} else {
  2632  					yy168 := *x.AnonInTestStrucSlim.P
  2633  					r.EncodeString(string(yy168))
  2634  				}
  2635  				z.EncWriteMapElemKey()
  2636  				if z.IsJSONHandle() {
  2637  					z.EncWr().WriteStr("\"S\"")
  2638  				} else {
  2639  					r.EncodeString(`S`)
  2640  				}
  2641  				z.EncWriteMapElemValue()
  2642  				r.EncodeString(string(x.S))
  2643  				z.EncWriteMapElemKey()
  2644  				if z.IsJSONHandle() {
  2645  					z.EncWr().WriteStr("\"Simplef\"")
  2646  				} else {
  2647  					r.EncodeString(`Simplef`)
  2648  				}
  2649  				z.EncWriteMapElemValue()
  2650  				yy171 := &x.Simplef
  2651  				if yyxt172 := z.Extension(yy171); yyxt172 != nil {
  2652  					z.EncExtension(yy171, yyxt172)
  2653  				} else {
  2654  					yy171.CodecEncodeSelf(e)
  2655  				}
  2656  				z.EncWriteMapElemKey()
  2657  				if z.IsJSONHandle() {
  2658  					z.EncWr().WriteStr("\"Sslice\"")
  2659  				} else {
  2660  					r.EncodeString(`Sslice`)
  2661  				}
  2662  				z.EncWriteMapElemValue()
  2663  				if x.Sslice == nil {
  2664  					r.EncodeNil()
  2665  				} else {
  2666  					z.F.EncSliceStringV(x.Sslice, e)
  2667  				} // end block: if x.Sslice slice == nil
  2668  				z.EncWriteMapElemKey()
  2669  				if z.IsJSONHandle() {
  2670  					z.EncWr().WriteStr("\"SstrUi64T\"")
  2671  				} else {
  2672  					r.EncodeString(`SstrUi64T`)
  2673  				}
  2674  				z.EncWriteMapElemValue()
  2675  				if x.SstrUi64T == nil {
  2676  					r.EncodeNil()
  2677  				} else {
  2678  					h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
  2679  				} // end block: if x.SstrUi64T slice == nil
  2680  				z.EncWriteMapElemKey()
  2681  				if z.IsJSONHandle() {
  2682  					z.EncWr().WriteStr("\"Ui16\"")
  2683  				} else {
  2684  					r.EncodeString(`Ui16`)
  2685  				}
  2686  				z.EncWriteMapElemValue()
  2687  				r.EncodeUint(uint64(x.Ui16))
  2688  				z.EncWriteMapElemKey()
  2689  				if z.IsJSONHandle() {
  2690  					z.EncWr().WriteStr("\"Ui32\"")
  2691  				} else {
  2692  					r.EncodeString(`Ui32`)
  2693  				}
  2694  				z.EncWriteMapElemValue()
  2695  				r.EncodeUint(uint64(x.Ui32))
  2696  				z.EncWriteMapElemKey()
  2697  				if z.IsJSONHandle() {
  2698  					z.EncWr().WriteStr("\"Ui64\"")
  2699  				} else {
  2700  					r.EncodeString(`Ui64`)
  2701  				}
  2702  				z.EncWriteMapElemValue()
  2703  				r.EncodeUint(uint64(x.Ui64))
  2704  				z.EncWriteMapElemKey()
  2705  				if z.IsJSONHandle() {
  2706  					z.EncWr().WriteStr("\"Ui64slice\"")
  2707  				} else {
  2708  					r.EncodeString(`Ui64slice`)
  2709  				}
  2710  				z.EncWriteMapElemValue()
  2711  				if x.Ui64slice == nil {
  2712  					r.EncodeNil()
  2713  				} else {
  2714  					z.F.EncSliceUint64V(x.Ui64slice, e)
  2715  				} // end block: if x.Ui64slice slice == nil
  2716  				z.EncWriteMapElemKey()
  2717  				if z.IsJSONHandle() {
  2718  					z.EncWr().WriteStr("\"Ui8\"")
  2719  				} else {
  2720  					r.EncodeString(`Ui8`)
  2721  				}
  2722  				z.EncWriteMapElemValue()
  2723  				r.EncodeUint(uint64(x.Ui8))
  2724  				z.EncWriteMapElemKey()
  2725  				if z.IsJSONHandle() {
  2726  					z.EncWr().WriteStr("\"Ui8slice\"")
  2727  				} else {
  2728  					r.EncodeString(`Ui8slice`)
  2729  				}
  2730  				z.EncWriteMapElemValue()
  2731  				if x.Ui8slice == nil {
  2732  					r.EncodeNil()
  2733  				} else {
  2734  					r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  2735  				} // end block: if x.Ui8slice slice == nil
  2736  				z.EncWriteMapElemKey()
  2737  				if z.IsJSONHandle() {
  2738  					z.EncWr().WriteStr("\"WrapSliceInt64\"")
  2739  				} else {
  2740  					r.EncodeString(`WrapSliceInt64`)
  2741  				}
  2742  				z.EncWriteMapElemValue()
  2743  				if yyxt181 := z.Extension(x.WrapSliceInt64); yyxt181 != nil {
  2744  					z.EncExtension(x.WrapSliceInt64, yyxt181)
  2745  				} else {
  2746  					x.WrapSliceInt64.CodecEncodeSelf(e)
  2747  				}
  2748  				z.EncWriteMapElemKey()
  2749  				if z.IsJSONHandle() {
  2750  					z.EncWr().WriteStr("\"WrapSliceString\"")
  2751  				} else {
  2752  					r.EncodeString(`WrapSliceString`)
  2753  				}
  2754  				z.EncWriteMapElemValue()
  2755  				if yyxt182 := z.Extension(x.WrapSliceString); yyxt182 != nil {
  2756  					z.EncExtension(x.WrapSliceString, yyxt182)
  2757  				} else {
  2758  					x.WrapSliceString.CodecEncodeSelf(e)
  2759  				}
  2760  			} else {
  2761  				z.EncWriteMapElemKey()
  2762  				if z.IsJSONHandle() {
  2763  					z.EncWr().WriteStr("\"S\"")
  2764  				} else {
  2765  					r.EncodeString(`S`)
  2766  				}
  2767  				z.EncWriteMapElemValue()
  2768  				r.EncodeString(string(x.S))
  2769  				z.EncWriteMapElemKey()
  2770  				if z.IsJSONHandle() {
  2771  					z.EncWr().WriteStr("\"I64\"")
  2772  				} else {
  2773  					r.EncodeString(`I64`)
  2774  				}
  2775  				z.EncWriteMapElemValue()
  2776  				r.EncodeInt(int64(x.I64))
  2777  				z.EncWriteMapElemKey()
  2778  				if z.IsJSONHandle() {
  2779  					z.EncWr().WriteStr("\"I32\"")
  2780  				} else {
  2781  					r.EncodeString(`I32`)
  2782  				}
  2783  				z.EncWriteMapElemValue()
  2784  				r.EncodeInt(int64(x.I32))
  2785  				z.EncWriteMapElemKey()
  2786  				if z.IsJSONHandle() {
  2787  					z.EncWr().WriteStr("\"I16\"")
  2788  				} else {
  2789  					r.EncodeString(`I16`)
  2790  				}
  2791  				z.EncWriteMapElemValue()
  2792  				r.EncodeInt(int64(x.I16))
  2793  				z.EncWriteMapElemKey()
  2794  				if z.IsJSONHandle() {
  2795  					z.EncWr().WriteStr("\"I8\"")
  2796  				} else {
  2797  					r.EncodeString(`I8`)
  2798  				}
  2799  				z.EncWriteMapElemValue()
  2800  				r.EncodeInt(int64(x.I8))
  2801  				z.EncWriteMapElemKey()
  2802  				if z.IsJSONHandle() {
  2803  					z.EncWr().WriteStr("\"I64n\"")
  2804  				} else {
  2805  					r.EncodeString(`I64n`)
  2806  				}
  2807  				z.EncWriteMapElemValue()
  2808  				r.EncodeInt(int64(x.I64n))
  2809  				z.EncWriteMapElemKey()
  2810  				if z.IsJSONHandle() {
  2811  					z.EncWr().WriteStr("\"I32n\"")
  2812  				} else {
  2813  					r.EncodeString(`I32n`)
  2814  				}
  2815  				z.EncWriteMapElemValue()
  2816  				r.EncodeInt(int64(x.I32n))
  2817  				z.EncWriteMapElemKey()
  2818  				if z.IsJSONHandle() {
  2819  					z.EncWr().WriteStr("\"I16n\"")
  2820  				} else {
  2821  					r.EncodeString(`I16n`)
  2822  				}
  2823  				z.EncWriteMapElemValue()
  2824  				r.EncodeInt(int64(x.I16n))
  2825  				z.EncWriteMapElemKey()
  2826  				if z.IsJSONHandle() {
  2827  					z.EncWr().WriteStr("\"I8n\"")
  2828  				} else {
  2829  					r.EncodeString(`I8n`)
  2830  				}
  2831  				z.EncWriteMapElemValue()
  2832  				r.EncodeInt(int64(x.I8n))
  2833  				z.EncWriteMapElemKey()
  2834  				if z.IsJSONHandle() {
  2835  					z.EncWr().WriteStr("\"Ui64\"")
  2836  				} else {
  2837  					r.EncodeString(`Ui64`)
  2838  				}
  2839  				z.EncWriteMapElemValue()
  2840  				r.EncodeUint(uint64(x.Ui64))
  2841  				z.EncWriteMapElemKey()
  2842  				if z.IsJSONHandle() {
  2843  					z.EncWr().WriteStr("\"Ui32\"")
  2844  				} else {
  2845  					r.EncodeString(`Ui32`)
  2846  				}
  2847  				z.EncWriteMapElemValue()
  2848  				r.EncodeUint(uint64(x.Ui32))
  2849  				z.EncWriteMapElemKey()
  2850  				if z.IsJSONHandle() {
  2851  					z.EncWr().WriteStr("\"Ui16\"")
  2852  				} else {
  2853  					r.EncodeString(`Ui16`)
  2854  				}
  2855  				z.EncWriteMapElemValue()
  2856  				r.EncodeUint(uint64(x.Ui16))
  2857  				z.EncWriteMapElemKey()
  2858  				if z.IsJSONHandle() {
  2859  					z.EncWr().WriteStr("\"Ui8\"")
  2860  				} else {
  2861  					r.EncodeString(`Ui8`)
  2862  				}
  2863  				z.EncWriteMapElemValue()
  2864  				r.EncodeUint(uint64(x.Ui8))
  2865  				z.EncWriteMapElemKey()
  2866  				if z.IsJSONHandle() {
  2867  					z.EncWr().WriteStr("\"F64\"")
  2868  				} else {
  2869  					r.EncodeString(`F64`)
  2870  				}
  2871  				z.EncWriteMapElemValue()
  2872  				r.EncodeFloat64(float64(x.F64))
  2873  				z.EncWriteMapElemKey()
  2874  				if z.IsJSONHandle() {
  2875  					z.EncWr().WriteStr("\"F32\"")
  2876  				} else {
  2877  					r.EncodeString(`F32`)
  2878  				}
  2879  				z.EncWriteMapElemValue()
  2880  				r.EncodeFloat32(float32(x.F32))
  2881  				z.EncWriteMapElemKey()
  2882  				if z.IsJSONHandle() {
  2883  					z.EncWr().WriteStr("\"B\"")
  2884  				} else {
  2885  					r.EncodeString(`B`)
  2886  				}
  2887  				z.EncWriteMapElemValue()
  2888  				r.EncodeBool(bool(x.B))
  2889  				z.EncWriteMapElemKey()
  2890  				if z.IsJSONHandle() {
  2891  					z.EncWr().WriteStr("\"By\"")
  2892  				} else {
  2893  					r.EncodeString(`By`)
  2894  				}
  2895  				z.EncWriteMapElemValue()
  2896  				r.EncodeUint(uint64(x.By))
  2897  				z.EncWriteMapElemKey()
  2898  				if z.IsJSONHandle() {
  2899  					z.EncWr().WriteStr("\"Sslice\"")
  2900  				} else {
  2901  					r.EncodeString(`Sslice`)
  2902  				}
  2903  				z.EncWriteMapElemValue()
  2904  				if x.Sslice == nil {
  2905  					r.EncodeNil()
  2906  				} else {
  2907  					z.F.EncSliceStringV(x.Sslice, e)
  2908  				} // end block: if x.Sslice slice == nil
  2909  				z.EncWriteMapElemKey()
  2910  				if z.IsJSONHandle() {
  2911  					z.EncWr().WriteStr("\"I64slice\"")
  2912  				} else {
  2913  					r.EncodeString(`I64slice`)
  2914  				}
  2915  				z.EncWriteMapElemValue()
  2916  				if x.I64slice == nil {
  2917  					r.EncodeNil()
  2918  				} else {
  2919  					z.F.EncSliceInt64V(x.I64slice, e)
  2920  				} // end block: if x.I64slice slice == nil
  2921  				z.EncWriteMapElemKey()
  2922  				if z.IsJSONHandle() {
  2923  					z.EncWr().WriteStr("\"I32slice\"")
  2924  				} else {
  2925  					r.EncodeString(`I32slice`)
  2926  				}
  2927  				z.EncWriteMapElemValue()
  2928  				if x.I32slice == nil {
  2929  					r.EncodeNil()
  2930  				} else {
  2931  					z.F.EncSliceInt32V(x.I32slice, e)
  2932  				} // end block: if x.I32slice slice == nil
  2933  				z.EncWriteMapElemKey()
  2934  				if z.IsJSONHandle() {
  2935  					z.EncWr().WriteStr("\"Ui64slice\"")
  2936  				} else {
  2937  					r.EncodeString(`Ui64slice`)
  2938  				}
  2939  				z.EncWriteMapElemValue()
  2940  				if x.Ui64slice == nil {
  2941  					r.EncodeNil()
  2942  				} else {
  2943  					z.F.EncSliceUint64V(x.Ui64slice, e)
  2944  				} // end block: if x.Ui64slice slice == nil
  2945  				z.EncWriteMapElemKey()
  2946  				if z.IsJSONHandle() {
  2947  					z.EncWr().WriteStr("\"Ui8slice\"")
  2948  				} else {
  2949  					r.EncodeString(`Ui8slice`)
  2950  				}
  2951  				z.EncWriteMapElemValue()
  2952  				if x.Ui8slice == nil {
  2953  					r.EncodeNil()
  2954  				} else {
  2955  					r.EncodeStringBytesRaw([]byte(x.Ui8slice))
  2956  				} // end block: if x.Ui8slice slice == nil
  2957  				z.EncWriteMapElemKey()
  2958  				if z.IsJSONHandle() {
  2959  					z.EncWr().WriteStr("\"Bslice\"")
  2960  				} else {
  2961  					r.EncodeString(`Bslice`)
  2962  				}
  2963  				z.EncWriteMapElemValue()
  2964  				if x.Bslice == nil {
  2965  					r.EncodeNil()
  2966  				} else {
  2967  					z.F.EncSliceBoolV(x.Bslice, e)
  2968  				} // end block: if x.Bslice slice == nil
  2969  				z.EncWriteMapElemKey()
  2970  				if z.IsJSONHandle() {
  2971  					z.EncWr().WriteStr("\"Byslice\"")
  2972  				} else {
  2973  					r.EncodeString(`Byslice`)
  2974  				}
  2975  				z.EncWriteMapElemValue()
  2976  				if x.Byslice == nil {
  2977  					r.EncodeNil()
  2978  				} else {
  2979  					r.EncodeStringBytesRaw([]byte(x.Byslice))
  2980  				} // end block: if x.Byslice slice == nil
  2981  				z.EncWriteMapElemKey()
  2982  				if z.IsJSONHandle() {
  2983  					z.EncWr().WriteStr("\"BytesSlice\"")
  2984  				} else {
  2985  					r.EncodeString(`BytesSlice`)
  2986  				}
  2987  				z.EncWriteMapElemValue()
  2988  				if x.BytesSlice == nil {
  2989  					r.EncodeNil()
  2990  				} else {
  2991  					z.F.EncSliceBytesV(x.BytesSlice, e)
  2992  				} // end block: if x.BytesSlice slice == nil
  2993  				z.EncWriteMapElemKey()
  2994  				if z.IsJSONHandle() {
  2995  					z.EncWr().WriteStr("\"Iptrslice\"")
  2996  				} else {
  2997  					r.EncodeString(`Iptrslice`)
  2998  				}
  2999  				z.EncWriteMapElemValue()
  3000  				if x.Iptrslice == nil {
  3001  					r.EncodeNil()
  3002  				} else {
  3003  					h.encSlicePtrtoint64(([]*int64)(x.Iptrslice), e)
  3004  				} // end block: if x.Iptrslice slice == nil
  3005  				z.EncWriteMapElemKey()
  3006  				if z.IsJSONHandle() {
  3007  					z.EncWr().WriteStr("\"WrapSliceInt64\"")
  3008  				} else {
  3009  					r.EncodeString(`WrapSliceInt64`)
  3010  				}
  3011  				z.EncWriteMapElemValue()
  3012  				if yyxt209 := z.Extension(x.WrapSliceInt64); yyxt209 != nil {
  3013  					z.EncExtension(x.WrapSliceInt64, yyxt209)
  3014  				} else {
  3015  					x.WrapSliceInt64.CodecEncodeSelf(e)
  3016  				}
  3017  				z.EncWriteMapElemKey()
  3018  				if z.IsJSONHandle() {
  3019  					z.EncWr().WriteStr("\"WrapSliceString\"")
  3020  				} else {
  3021  					r.EncodeString(`WrapSliceString`)
  3022  				}
  3023  				z.EncWriteMapElemValue()
  3024  				if yyxt210 := z.Extension(x.WrapSliceString); yyxt210 != nil {
  3025  					z.EncExtension(x.WrapSliceString, yyxt210)
  3026  				} else {
  3027  					x.WrapSliceString.CodecEncodeSelf(e)
  3028  				}
  3029  				z.EncWriteMapElemKey()
  3030  				if z.IsJSONHandle() {
  3031  					z.EncWr().WriteStr("\"Msint\"")
  3032  				} else {
  3033  					r.EncodeString(`Msint`)
  3034  				}
  3035  				z.EncWriteMapElemValue()
  3036  				if x.Msint == nil {
  3037  					r.EncodeNil()
  3038  				} else {
  3039  					z.F.EncMapStringIntV(x.Msint, e)
  3040  				} // end block: if x.Msint map == nil
  3041  				z.EncWriteMapElemKey()
  3042  				if z.IsJSONHandle() {
  3043  					z.EncWr().WriteStr("\"Msbytes\"")
  3044  				} else {
  3045  					r.EncodeString(`Msbytes`)
  3046  				}
  3047  				z.EncWriteMapElemValue()
  3048  				if x.Msbytes == nil {
  3049  					r.EncodeNil()
  3050  				} else {
  3051  					z.F.EncMapStringBytesV(x.Msbytes, e)
  3052  				} // end block: if x.Msbytes map == nil
  3053  				z.EncWriteMapElemKey()
  3054  				if z.IsJSONHandle() {
  3055  					z.EncWr().WriteStr("\"Simplef\"")
  3056  				} else {
  3057  					r.EncodeString(`Simplef`)
  3058  				}
  3059  				z.EncWriteMapElemValue()
  3060  				yy213 := &x.Simplef
  3061  				if yyxt214 := z.Extension(yy213); yyxt214 != nil {
  3062  					z.EncExtension(yy213, yyxt214)
  3063  				} else {
  3064  					yy213.CodecEncodeSelf(e)
  3065  				}
  3066  				z.EncWriteMapElemKey()
  3067  				if z.IsJSONHandle() {
  3068  					z.EncWr().WriteStr("\"SstrUi64T\"")
  3069  				} else {
  3070  					r.EncodeString(`SstrUi64T`)
  3071  				}
  3072  				z.EncWriteMapElemValue()
  3073  				if x.SstrUi64T == nil {
  3074  					r.EncodeNil()
  3075  				} else {
  3076  					h.encSlicestringUint64T(([]stringUint64T)(x.SstrUi64T), e)
  3077  				} // end block: if x.SstrUi64T slice == nil
  3078  				z.EncWriteMapElemKey()
  3079  				if z.IsJSONHandle() {
  3080  					z.EncWr().WriteStr("\"MstrUi64T\"")
  3081  				} else {
  3082  					r.EncodeString(`MstrUi64T`)
  3083  				}
  3084  				z.EncWriteMapElemValue()
  3085  				if x.MstrUi64T == nil {
  3086  					r.EncodeNil()
  3087  				} else {
  3088  					h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.MstrUi64T), e)
  3089  				} // end block: if x.MstrUi64T map == nil
  3090  				z.EncWriteMapElemKey()
  3091  				if z.IsJSONHandle() {
  3092  					z.EncWr().WriteStr("\"AS\"")
  3093  				} else {
  3094  					r.EncodeString(`AS`)
  3095  				}
  3096  				z.EncWriteMapElemValue()
  3097  				r.EncodeString(string(x.AnonInTestStruc.AS))
  3098  				z.EncWriteMapElemKey()
  3099  				if z.IsJSONHandle() {
  3100  					z.EncWr().WriteStr("\"AI64\"")
  3101  				} else {
  3102  					r.EncodeString(`AI64`)
  3103  				}
  3104  				z.EncWriteMapElemValue()
  3105  				r.EncodeInt(int64(x.AnonInTestStruc.AI64))
  3106  				z.EncWriteMapElemKey()
  3107  				if z.IsJSONHandle() {
  3108  					z.EncWr().WriteStr("\"AI16\"")
  3109  				} else {
  3110  					r.EncodeString(`AI16`)
  3111  				}
  3112  				z.EncWriteMapElemValue()
  3113  				r.EncodeInt(int64(x.AnonInTestStruc.AI16))
  3114  				z.EncWriteMapElemKey()
  3115  				if z.IsJSONHandle() {
  3116  					z.EncWr().WriteStr("\"AUi64\"")
  3117  				} else {
  3118  					r.EncodeString(`AUi64`)
  3119  				}
  3120  				z.EncWriteMapElemValue()
  3121  				r.EncodeUint(uint64(x.AnonInTestStruc.AUi64))
  3122  				z.EncWriteMapElemKey()
  3123  				if z.IsJSONHandle() {
  3124  					z.EncWr().WriteStr("\"ASslice\"")
  3125  				} else {
  3126  					r.EncodeString(`ASslice`)
  3127  				}
  3128  				z.EncWriteMapElemValue()
  3129  				if x.AnonInTestStruc.ASslice == nil {
  3130  					r.EncodeNil()
  3131  				} else {
  3132  					z.F.EncSliceStringV(x.AnonInTestStruc.ASslice, e)
  3133  				} // end block: if x.AnonInTestStruc.ASslice slice == nil
  3134  				z.EncWriteMapElemKey()
  3135  				if z.IsJSONHandle() {
  3136  					z.EncWr().WriteStr("\"AI64slice\"")
  3137  				} else {
  3138  					r.EncodeString(`AI64slice`)
  3139  				}
  3140  				z.EncWriteMapElemValue()
  3141  				if x.AnonInTestStruc.AI64slice == nil {
  3142  					r.EncodeNil()
  3143  				} else {
  3144  					z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice, e)
  3145  				} // end block: if x.AnonInTestStruc.AI64slice slice == nil
  3146  				z.EncWriteMapElemKey()
  3147  				if z.IsJSONHandle() {
  3148  					z.EncWr().WriteStr("\"AUi64slice\"")
  3149  				} else {
  3150  					r.EncodeString(`AUi64slice`)
  3151  				}
  3152  				z.EncWriteMapElemValue()
  3153  				if x.AnonInTestStruc.AUi64slice == nil {
  3154  					r.EncodeNil()
  3155  				} else {
  3156  					z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64slice, e)
  3157  				} // end block: if x.AnonInTestStruc.AUi64slice slice == nil
  3158  				z.EncWriteMapElemKey()
  3159  				if z.IsJSONHandle() {
  3160  					z.EncWr().WriteStr("\"AF64slice\"")
  3161  				} else {
  3162  					r.EncodeString(`AF64slice`)
  3163  				}
  3164  				z.EncWriteMapElemValue()
  3165  				if x.AnonInTestStruc.AF64slice == nil {
  3166  					r.EncodeNil()
  3167  				} else {
  3168  					z.F.EncSliceFloat64V(x.AnonInTestStruc.AF64slice, e)
  3169  				} // end block: if x.AnonInTestStruc.AF64slice slice == nil
  3170  				z.EncWriteMapElemKey()
  3171  				if z.IsJSONHandle() {
  3172  					z.EncWr().WriteStr("\"AF32slice\"")
  3173  				} else {
  3174  					r.EncodeString(`AF32slice`)
  3175  				}
  3176  				z.EncWriteMapElemValue()
  3177  				if x.AnonInTestStruc.AF32slice == nil {
  3178  					r.EncodeNil()
  3179  				} else {
  3180  					z.F.EncSliceFloat32V(x.AnonInTestStruc.AF32slice, e)
  3181  				} // end block: if x.AnonInTestStruc.AF32slice slice == nil
  3182  				z.EncWriteMapElemKey()
  3183  				if z.IsJSONHandle() {
  3184  					z.EncWr().WriteStr("\"AMSS\"")
  3185  				} else {
  3186  					r.EncodeString(`AMSS`)
  3187  				}
  3188  				z.EncWriteMapElemValue()
  3189  				if x.AnonInTestStruc.AMSS == nil {
  3190  					r.EncodeNil()
  3191  				} else {
  3192  					z.F.EncMapStringStringV(x.AnonInTestStruc.AMSS, e)
  3193  				} // end block: if x.AnonInTestStruc.AMSS map == nil
  3194  				z.EncWriteMapElemKey()
  3195  				if z.IsJSONHandle() {
  3196  					z.EncWr().WriteStr("\"AMSU64\"")
  3197  				} else {
  3198  					r.EncodeString(`AMSU64`)
  3199  				}
  3200  				z.EncWriteMapElemValue()
  3201  				if x.AnonInTestStruc.AMSU64 == nil {
  3202  					r.EncodeNil()
  3203  				} else {
  3204  					z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64, e)
  3205  				} // end block: if x.AnonInTestStruc.AMSU64 map == nil
  3206  				z.EncWriteMapElemKey()
  3207  				if z.IsJSONHandle() {
  3208  					z.EncWr().WriteStr("\"AI64arr8\"")
  3209  				} else {
  3210  					r.EncodeString(`AI64arr8`)
  3211  				}
  3212  				z.EncWriteMapElemValue()
  3213  				yy228 := &x.AnonInTestStruc.AI64arr8
  3214  				h.encArray8int64((*[8]int64)(yy228), e)
  3215  				z.EncWriteMapElemKey()
  3216  				if z.IsJSONHandle() {
  3217  					z.EncWr().WriteStr("\"AI64arr0\"")
  3218  				} else {
  3219  					r.EncodeString(`AI64arr0`)
  3220  				}
  3221  				z.EncWriteMapElemValue()
  3222  				yy230 := &x.AnonInTestStruc.AI64arr0
  3223  				h.encArray0int64((*[0]int64)(yy230), e)
  3224  				z.EncWriteMapElemKey()
  3225  				if z.IsJSONHandle() {
  3226  					z.EncWr().WriteStr("\"AI64slice0\"")
  3227  				} else {
  3228  					r.EncodeString(`AI64slice0`)
  3229  				}
  3230  				z.EncWriteMapElemValue()
  3231  				if x.AnonInTestStruc.AI64slice0 == nil {
  3232  					r.EncodeNil()
  3233  				} else {
  3234  					z.F.EncSliceInt64V(x.AnonInTestStruc.AI64slice0, e)
  3235  				} // end block: if x.AnonInTestStruc.AI64slice0 slice == nil
  3236  				z.EncWriteMapElemKey()
  3237  				if z.IsJSONHandle() {
  3238  					z.EncWr().WriteStr("\"AUi64sliceN\"")
  3239  				} else {
  3240  					r.EncodeString(`AUi64sliceN`)
  3241  				}
  3242  				z.EncWriteMapElemValue()
  3243  				if x.AnonInTestStruc.AUi64sliceN == nil {
  3244  					r.EncodeNil()
  3245  				} else {
  3246  					z.F.EncSliceUint64V(x.AnonInTestStruc.AUi64sliceN, e)
  3247  				} // end block: if x.AnonInTestStruc.AUi64sliceN slice == nil
  3248  				z.EncWriteMapElemKey()
  3249  				if z.IsJSONHandle() {
  3250  					z.EncWr().WriteStr("\"AMSU64N\"")
  3251  				} else {
  3252  					r.EncodeString(`AMSU64N`)
  3253  				}
  3254  				z.EncWriteMapElemValue()
  3255  				if x.AnonInTestStruc.AMSU64N == nil {
  3256  					r.EncodeNil()
  3257  				} else {
  3258  					z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64N, e)
  3259  				} // end block: if x.AnonInTestStruc.AMSU64N map == nil
  3260  				z.EncWriteMapElemKey()
  3261  				if z.IsJSONHandle() {
  3262  					z.EncWr().WriteStr("\"AMSU64E\"")
  3263  				} else {
  3264  					r.EncodeString(`AMSU64E`)
  3265  				}
  3266  				z.EncWriteMapElemValue()
  3267  				if x.AnonInTestStruc.AMSU64E == nil {
  3268  					r.EncodeNil()
  3269  				} else {
  3270  					z.F.EncMapStringUint64V(x.AnonInTestStruc.AMSU64E, e)
  3271  				} // end block: if x.AnonInTestStruc.AMSU64E map == nil
  3272  				z.EncWriteMapElemKey()
  3273  				if z.IsJSONHandle() {
  3274  					z.EncWr().WriteStr("\"NotAnon\"")
  3275  				} else {
  3276  					r.EncodeString(`NotAnon`)
  3277  				}
  3278  				z.EncWriteMapElemValue()
  3279  				yy236 := &x.NotAnon
  3280  				if yyxt237 := z.Extension(yy236); yyxt237 != nil {
  3281  					z.EncExtension(yy236, yyxt237)
  3282  				} else {
  3283  					yy236.CodecEncodeSelf(e)
  3284  				}
  3285  				z.EncWriteMapElemKey()
  3286  				if z.IsJSONHandle() {
  3287  					z.EncWr().WriteStr("\"P\"")
  3288  				} else {
  3289  					r.EncodeString(`P`)
  3290  				}
  3291  				z.EncWriteMapElemValue()
  3292  				if yyn54 {
  3293  					r.EncodeNil()
  3294  				} else {
  3295  					yy238 := *x.AnonInTestStrucSlim.P
  3296  					r.EncodeString(string(yy238))
  3297  				}
  3298  				z.EncWriteMapElemKey()
  3299  				if z.IsJSONHandle() {
  3300  					z.EncWr().WriteStr("\"NotAnonSlim\"")
  3301  				} else {
  3302  					r.EncodeString(`NotAnonSlim`)
  3303  				}
  3304  				z.EncWriteMapElemValue()
  3305  				if yyn55 {
  3306  					r.EncodeNil()
  3307  				} else {
  3308  					if yyxt240 := z.Extension(x.NotAnonSlim); yyxt240 != nil {
  3309  						z.EncExtension(x.NotAnonSlim, yyxt240)
  3310  					} else {
  3311  						x.NotAnonSlim.CodecEncodeSelf(e)
  3312  					}
  3313  				}
  3314  				z.EncWriteMapElemKey()
  3315  				if z.IsJSONHandle() {
  3316  					z.EncWr().WriteStr("\"Nmap\"")
  3317  				} else {
  3318  					r.EncodeString(`Nmap`)
  3319  				}
  3320  				z.EncWriteMapElemValue()
  3321  				if x.Nmap == nil {
  3322  					r.EncodeNil()
  3323  				} else {
  3324  					z.F.EncMapStringBoolV(x.Nmap, e)
  3325  				} // end block: if x.Nmap map == nil
  3326  				z.EncWriteMapElemKey()
  3327  				if z.IsJSONHandle() {
  3328  					z.EncWr().WriteStr("\"Nslice\"")
  3329  				} else {
  3330  					r.EncodeString(`Nslice`)
  3331  				}
  3332  				z.EncWriteMapElemValue()
  3333  				if x.Nslice == nil {
  3334  					r.EncodeNil()
  3335  				} else {
  3336  					r.EncodeStringBytesRaw([]byte(x.Nslice))
  3337  				} // end block: if x.Nslice slice == nil
  3338  				z.EncWriteMapElemKey()
  3339  				if z.IsJSONHandle() {
  3340  					z.EncWr().WriteStr("\"Nint64\"")
  3341  				} else {
  3342  					r.EncodeString(`Nint64`)
  3343  				}
  3344  				z.EncWriteMapElemValue()
  3345  				if yyn58 {
  3346  					r.EncodeNil()
  3347  				} else {
  3348  					yy243 := *x.Nint64
  3349  					r.EncodeInt(int64(yy243))
  3350  				}
  3351  			}
  3352  			z.EncWriteMapEnd()
  3353  		}
  3354  	}
  3355  }
  3356  
  3357  func (x *TestStrucCommon) CodecDecodeSelf(d *Decoder) {
  3358  	var h codecSelfer19780
  3359  	z, r := GenHelper().Decoder(d)
  3360  	_, _, _ = h, z, r
  3361  	yyct2 := r.ContainerType()
  3362  	if yyct2 == codecSelferValueTypeNil19780 {
  3363  		*(x) = TestStrucCommon{}
  3364  	} else if yyct2 == codecSelferValueTypeMap19780 {
  3365  		yyl2 := z.DecReadMapStart()
  3366  		if yyl2 == 0 {
  3367  		} else {
  3368  			x.codecDecodeSelfFromMap(yyl2, d)
  3369  		}
  3370  		z.DecReadMapEnd()
  3371  	} else if yyct2 == codecSelferValueTypeArray19780 {
  3372  		yyl2 := z.DecReadArrayStart()
  3373  		if yyl2 != 0 {
  3374  			x.codecDecodeSelfFromArray(yyl2, d)
  3375  		}
  3376  		z.DecReadArrayEnd()
  3377  	} else {
  3378  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  3379  	}
  3380  }
  3381  
  3382  func (x *TestStrucCommon) codecDecodeSelfFromMap(l int, d *Decoder) {
  3383  	var h codecSelfer19780
  3384  	z, r := GenHelper().Decoder(d)
  3385  	_, _, _ = h, z, r
  3386  	var yyhl3 bool = l >= 0
  3387  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  3388  		z.DecReadMapElemKey()
  3389  		yys3 := r.DecodeStringAsBytes()
  3390  		z.DecReadMapElemValue()
  3391  		switch string(yys3) {
  3392  		case "S":
  3393  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  3394  		case "I64":
  3395  			x.I64 = (int64)(r.DecodeInt64())
  3396  		case "I32":
  3397  			x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  3398  		case "I16":
  3399  			x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  3400  		case "I8":
  3401  			x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  3402  		case "I64n":
  3403  			x.I64n = (int64)(r.DecodeInt64())
  3404  		case "I32n":
  3405  			x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  3406  		case "I16n":
  3407  			x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  3408  		case "I8n":
  3409  			x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  3410  		case "Ui64":
  3411  			x.Ui64 = (uint64)(r.DecodeUint64())
  3412  		case "Ui32":
  3413  			x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  3414  		case "Ui16":
  3415  			x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
  3416  		case "Ui8":
  3417  			x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  3418  		case "F64":
  3419  			x.F64 = (float64)(r.DecodeFloat64())
  3420  		case "F32":
  3421  			x.F32 = (float32)(z.DecDecodeFloat32())
  3422  		case "B":
  3423  			x.B = (bool)(r.DecodeBool())
  3424  		case "By":
  3425  			x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  3426  		case "Sslice":
  3427  			z.F.DecSliceStringX(&x.Sslice, d)
  3428  		case "I64slice":
  3429  			z.F.DecSliceInt64X(&x.I64slice, d)
  3430  		case "I32slice":
  3431  			z.F.DecSliceInt32X(&x.I32slice, d)
  3432  		case "Ui64slice":
  3433  			z.F.DecSliceUint64X(&x.Ui64slice, d)
  3434  		case "Ui8slice":
  3435  			x.Ui8slice = z.DecodeBytesInto(([]byte)(x.Ui8slice))
  3436  		case "Bslice":
  3437  			z.F.DecSliceBoolX(&x.Bslice, d)
  3438  		case "Byslice":
  3439  			x.Byslice = z.DecodeBytesInto(([]byte)(x.Byslice))
  3440  		case "BytesSlice":
  3441  			z.F.DecSliceBytesX(&x.BytesSlice, d)
  3442  		case "Iptrslice":
  3443  			h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
  3444  		case "WrapSliceInt64":
  3445  			if yyxt40 := z.Extension(x.WrapSliceInt64); yyxt40 != nil {
  3446  				z.DecExtension(&x.WrapSliceInt64, yyxt40)
  3447  			} else {
  3448  				x.WrapSliceInt64.CodecDecodeSelf(d)
  3449  			}
  3450  		case "WrapSliceString":
  3451  			if yyxt42 := z.Extension(x.WrapSliceString); yyxt42 != nil {
  3452  				z.DecExtension(&x.WrapSliceString, yyxt42)
  3453  			} else {
  3454  				x.WrapSliceString.CodecDecodeSelf(d)
  3455  			}
  3456  		case "Msint":
  3457  			z.F.DecMapStringIntX(&x.Msint, d)
  3458  		case "Msbytes":
  3459  			z.F.DecMapStringBytesX(&x.Msbytes, d)
  3460  		case "Simplef":
  3461  			if yyxt48 := z.Extension(x.Simplef); yyxt48 != nil {
  3462  				z.DecExtension(&x.Simplef, yyxt48)
  3463  			} else {
  3464  				x.Simplef.CodecDecodeSelf(d)
  3465  			}
  3466  		case "SstrUi64T":
  3467  			h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
  3468  		case "MstrUi64T":
  3469  			h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.MstrUi64T), d)
  3470  		case "AS":
  3471  			x.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  3472  		case "AI64":
  3473  			x.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
  3474  		case "AI16":
  3475  			x.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  3476  		case "AUi64":
  3477  			x.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
  3478  		case "ASslice":
  3479  			z.F.DecSliceStringX(&x.AnonInTestStruc.ASslice, d)
  3480  		case "AI64slice":
  3481  			z.F.DecSliceInt64X(&x.AnonInTestStruc.AI64slice, d)
  3482  		case "AUi64slice":
  3483  			z.F.DecSliceUint64X(&x.AnonInTestStruc.AUi64slice, d)
  3484  		case "AF64slice":
  3485  			z.F.DecSliceFloat64X(&x.AnonInTestStruc.AF64slice, d)
  3486  		case "AF32slice":
  3487  			z.F.DecSliceFloat32X(&x.AnonInTestStruc.AF32slice, d)
  3488  		case "AMSS":
  3489  			z.F.DecMapStringStringX(&x.AnonInTestStruc.AMSS, d)
  3490  		case "AMSU64":
  3491  			z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64, d)
  3492  		case "AI64arr8":
  3493  			h.decArray8int64((*[8]int64)(&x.AnonInTestStruc.AI64arr8), d)
  3494  		case "AI64arr0":
  3495  			h.decArray0int64((*[0]int64)(&x.AnonInTestStruc.AI64arr0), d)
  3496  		case "AI64slice0":
  3497  			z.F.DecSliceInt64X(&x.AnonInTestStruc.AI64slice0, d)
  3498  		case "AUi64sliceN":
  3499  			z.F.DecSliceUint64X(&x.AnonInTestStruc.AUi64sliceN, d)
  3500  		case "AMSU64N":
  3501  			z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64N, d)
  3502  		case "AMSU64E":
  3503  			z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64E, d)
  3504  		case "NotAnon":
  3505  			if yyxt84 := z.Extension(x.NotAnon); yyxt84 != nil {
  3506  				z.DecExtension(&x.NotAnon, yyxt84)
  3507  			} else {
  3508  				x.NotAnon.CodecDecodeSelf(d)
  3509  			}
  3510  		case "P":
  3511  			if r.TryNil() {
  3512  				if x.AnonInTestStrucSlim != nil && x.AnonInTestStrucSlim.P != nil { // remove the if-true
  3513  					x.AnonInTestStrucSlim.P = nil
  3514  				}
  3515  			} else {
  3516  				if x.AnonInTestStrucSlim == nil {
  3517  					x.AnonInTestStrucSlim = new(AnonInTestStrucSlim)
  3518  				}
  3519  				if x.AnonInTestStrucSlim.P == nil {
  3520  					x.AnonInTestStrucSlim.P = new(string)
  3521  				}
  3522  				*x.AnonInTestStrucSlim.P = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  3523  			}
  3524  		case "NotAnonSlim":
  3525  			if r.TryNil() {
  3526  				if x.NotAnonSlim != nil { // remove the if-true
  3527  					x.NotAnonSlim = nil
  3528  				}
  3529  			} else {
  3530  				if x.NotAnonSlim == nil {
  3531  					x.NotAnonSlim = new(AnonInTestStrucSlim)
  3532  				}
  3533  				if yyxt88 := z.Extension(x.NotAnonSlim); yyxt88 != nil {
  3534  					z.DecExtension(x.NotAnonSlim, yyxt88)
  3535  				} else {
  3536  					x.NotAnonSlim.CodecDecodeSelf(d)
  3537  				}
  3538  			}
  3539  		case "Nmap":
  3540  			z.F.DecMapStringBoolX(&x.Nmap, d)
  3541  		case "Nslice":
  3542  			x.Nslice = z.DecodeBytesInto(([]byte)(x.Nslice))
  3543  		case "Nint64":
  3544  			if r.TryNil() {
  3545  				if x.Nint64 != nil { // remove the if-true
  3546  					x.Nint64 = nil
  3547  				}
  3548  			} else {
  3549  				if x.Nint64 == nil {
  3550  					x.Nint64 = new(int64)
  3551  				}
  3552  				*x.Nint64 = (int64)(r.DecodeInt64())
  3553  			}
  3554  		default:
  3555  			z.DecStructFieldNotFound(-1, string(yys3))
  3556  		} // end switch yys3
  3557  	} // end for yyj3
  3558  }
  3559  
  3560  func (x *TestStrucCommon) codecDecodeSelfFromArray(l int, d *Decoder) {
  3561  	var h codecSelfer19780
  3562  	z, r := GenHelper().Decoder(d)
  3563  	_, _, _ = h, z, r
  3564  	var yyj95 int
  3565  	var yyb95 bool
  3566  	var yyhl95 bool = l >= 0
  3567  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3568  	if yyb95 {
  3569  		z.DecReadArrayEnd()
  3570  		return
  3571  	}
  3572  	z.DecReadArrayElem()
  3573  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  3574  	yyj95++
  3575  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3576  	if yyb95 {
  3577  		z.DecReadArrayEnd()
  3578  		return
  3579  	}
  3580  	z.DecReadArrayElem()
  3581  	x.I64 = (int64)(r.DecodeInt64())
  3582  	yyj95++
  3583  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3584  	if yyb95 {
  3585  		z.DecReadArrayEnd()
  3586  		return
  3587  	}
  3588  	z.DecReadArrayElem()
  3589  	x.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  3590  	yyj95++
  3591  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3592  	if yyb95 {
  3593  		z.DecReadArrayEnd()
  3594  		return
  3595  	}
  3596  	z.DecReadArrayElem()
  3597  	x.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  3598  	yyj95++
  3599  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3600  	if yyb95 {
  3601  		z.DecReadArrayEnd()
  3602  		return
  3603  	}
  3604  	z.DecReadArrayElem()
  3605  	x.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  3606  	yyj95++
  3607  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3608  	if yyb95 {
  3609  		z.DecReadArrayEnd()
  3610  		return
  3611  	}
  3612  	z.DecReadArrayElem()
  3613  	x.I64n = (int64)(r.DecodeInt64())
  3614  	yyj95++
  3615  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3616  	if yyb95 {
  3617  		z.DecReadArrayEnd()
  3618  		return
  3619  	}
  3620  	z.DecReadArrayElem()
  3621  	x.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  3622  	yyj95++
  3623  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3624  	if yyb95 {
  3625  		z.DecReadArrayEnd()
  3626  		return
  3627  	}
  3628  	z.DecReadArrayElem()
  3629  	x.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  3630  	yyj95++
  3631  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3632  	if yyb95 {
  3633  		z.DecReadArrayEnd()
  3634  		return
  3635  	}
  3636  	z.DecReadArrayElem()
  3637  	x.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  3638  	yyj95++
  3639  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3640  	if yyb95 {
  3641  		z.DecReadArrayEnd()
  3642  		return
  3643  	}
  3644  	z.DecReadArrayElem()
  3645  	x.Ui64 = (uint64)(r.DecodeUint64())
  3646  	yyj95++
  3647  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3648  	if yyb95 {
  3649  		z.DecReadArrayEnd()
  3650  		return
  3651  	}
  3652  	z.DecReadArrayElem()
  3653  	x.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  3654  	yyj95++
  3655  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3656  	if yyb95 {
  3657  		z.DecReadArrayEnd()
  3658  		return
  3659  	}
  3660  	z.DecReadArrayElem()
  3661  	x.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
  3662  	yyj95++
  3663  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3664  	if yyb95 {
  3665  		z.DecReadArrayEnd()
  3666  		return
  3667  	}
  3668  	z.DecReadArrayElem()
  3669  	x.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  3670  	yyj95++
  3671  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3672  	if yyb95 {
  3673  		z.DecReadArrayEnd()
  3674  		return
  3675  	}
  3676  	z.DecReadArrayElem()
  3677  	x.F64 = (float64)(r.DecodeFloat64())
  3678  	yyj95++
  3679  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3680  	if yyb95 {
  3681  		z.DecReadArrayEnd()
  3682  		return
  3683  	}
  3684  	z.DecReadArrayElem()
  3685  	x.F32 = (float32)(z.DecDecodeFloat32())
  3686  	yyj95++
  3687  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3688  	if yyb95 {
  3689  		z.DecReadArrayEnd()
  3690  		return
  3691  	}
  3692  	z.DecReadArrayElem()
  3693  	x.B = (bool)(r.DecodeBool())
  3694  	yyj95++
  3695  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3696  	if yyb95 {
  3697  		z.DecReadArrayEnd()
  3698  		return
  3699  	}
  3700  	z.DecReadArrayElem()
  3701  	x.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  3702  	yyj95++
  3703  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3704  	if yyb95 {
  3705  		z.DecReadArrayEnd()
  3706  		return
  3707  	}
  3708  	z.DecReadArrayElem()
  3709  	z.F.DecSliceStringX(&x.Sslice, d)
  3710  	yyj95++
  3711  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3712  	if yyb95 {
  3713  		z.DecReadArrayEnd()
  3714  		return
  3715  	}
  3716  	z.DecReadArrayElem()
  3717  	z.F.DecSliceInt64X(&x.I64slice, d)
  3718  	yyj95++
  3719  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3720  	if yyb95 {
  3721  		z.DecReadArrayEnd()
  3722  		return
  3723  	}
  3724  	z.DecReadArrayElem()
  3725  	z.F.DecSliceInt32X(&x.I32slice, d)
  3726  	yyj95++
  3727  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3728  	if yyb95 {
  3729  		z.DecReadArrayEnd()
  3730  		return
  3731  	}
  3732  	z.DecReadArrayElem()
  3733  	z.F.DecSliceUint64X(&x.Ui64slice, d)
  3734  	yyj95++
  3735  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3736  	if yyb95 {
  3737  		z.DecReadArrayEnd()
  3738  		return
  3739  	}
  3740  	z.DecReadArrayElem()
  3741  	x.Ui8slice = z.DecodeBytesInto(([]byte)(x.Ui8slice))
  3742  	yyj95++
  3743  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3744  	if yyb95 {
  3745  		z.DecReadArrayEnd()
  3746  		return
  3747  	}
  3748  	z.DecReadArrayElem()
  3749  	z.F.DecSliceBoolX(&x.Bslice, d)
  3750  	yyj95++
  3751  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3752  	if yyb95 {
  3753  		z.DecReadArrayEnd()
  3754  		return
  3755  	}
  3756  	z.DecReadArrayElem()
  3757  	x.Byslice = z.DecodeBytesInto(([]byte)(x.Byslice))
  3758  	yyj95++
  3759  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3760  	if yyb95 {
  3761  		z.DecReadArrayEnd()
  3762  		return
  3763  	}
  3764  	z.DecReadArrayElem()
  3765  	z.F.DecSliceBytesX(&x.BytesSlice, d)
  3766  	yyj95++
  3767  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3768  	if yyb95 {
  3769  		z.DecReadArrayEnd()
  3770  		return
  3771  	}
  3772  	z.DecReadArrayElem()
  3773  	h.decSlicePtrtoint64((*[]*int64)(&x.Iptrslice), d)
  3774  	yyj95++
  3775  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3776  	if yyb95 {
  3777  		z.DecReadArrayEnd()
  3778  		return
  3779  	}
  3780  	z.DecReadArrayElem()
  3781  	if yyxt132 := z.Extension(x.WrapSliceInt64); yyxt132 != nil {
  3782  		z.DecExtension(&x.WrapSliceInt64, yyxt132)
  3783  	} else {
  3784  		x.WrapSliceInt64.CodecDecodeSelf(d)
  3785  	}
  3786  	yyj95++
  3787  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3788  	if yyb95 {
  3789  		z.DecReadArrayEnd()
  3790  		return
  3791  	}
  3792  	z.DecReadArrayElem()
  3793  	if yyxt134 := z.Extension(x.WrapSliceString); yyxt134 != nil {
  3794  		z.DecExtension(&x.WrapSliceString, yyxt134)
  3795  	} else {
  3796  		x.WrapSliceString.CodecDecodeSelf(d)
  3797  	}
  3798  	yyj95++
  3799  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3800  	if yyb95 {
  3801  		z.DecReadArrayEnd()
  3802  		return
  3803  	}
  3804  	z.DecReadArrayElem()
  3805  	z.F.DecMapStringIntX(&x.Msint, d)
  3806  	yyj95++
  3807  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3808  	if yyb95 {
  3809  		z.DecReadArrayEnd()
  3810  		return
  3811  	}
  3812  	z.DecReadArrayElem()
  3813  	z.F.DecMapStringBytesX(&x.Msbytes, d)
  3814  	yyj95++
  3815  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3816  	if yyb95 {
  3817  		z.DecReadArrayEnd()
  3818  		return
  3819  	}
  3820  	z.DecReadArrayElem()
  3821  	if yyxt140 := z.Extension(x.Simplef); yyxt140 != nil {
  3822  		z.DecExtension(&x.Simplef, yyxt140)
  3823  	} else {
  3824  		x.Simplef.CodecDecodeSelf(d)
  3825  	}
  3826  	yyj95++
  3827  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3828  	if yyb95 {
  3829  		z.DecReadArrayEnd()
  3830  		return
  3831  	}
  3832  	z.DecReadArrayElem()
  3833  	h.decSlicestringUint64T((*[]stringUint64T)(&x.SstrUi64T), d)
  3834  	yyj95++
  3835  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3836  	if yyb95 {
  3837  		z.DecReadArrayEnd()
  3838  		return
  3839  	}
  3840  	z.DecReadArrayElem()
  3841  	h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.MstrUi64T), d)
  3842  	yyj95++
  3843  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3844  	if yyb95 {
  3845  		z.DecReadArrayEnd()
  3846  		return
  3847  	}
  3848  	z.DecReadArrayElem()
  3849  	x.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  3850  	yyj95++
  3851  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3852  	if yyb95 {
  3853  		z.DecReadArrayEnd()
  3854  		return
  3855  	}
  3856  	z.DecReadArrayElem()
  3857  	x.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
  3858  	yyj95++
  3859  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3860  	if yyb95 {
  3861  		z.DecReadArrayEnd()
  3862  		return
  3863  	}
  3864  	z.DecReadArrayElem()
  3865  	x.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  3866  	yyj95++
  3867  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3868  	if yyb95 {
  3869  		z.DecReadArrayEnd()
  3870  		return
  3871  	}
  3872  	z.DecReadArrayElem()
  3873  	x.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
  3874  	yyj95++
  3875  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3876  	if yyb95 {
  3877  		z.DecReadArrayEnd()
  3878  		return
  3879  	}
  3880  	z.DecReadArrayElem()
  3881  	z.F.DecSliceStringX(&x.AnonInTestStruc.ASslice, d)
  3882  	yyj95++
  3883  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3884  	if yyb95 {
  3885  		z.DecReadArrayEnd()
  3886  		return
  3887  	}
  3888  	z.DecReadArrayElem()
  3889  	z.F.DecSliceInt64X(&x.AnonInTestStruc.AI64slice, d)
  3890  	yyj95++
  3891  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3892  	if yyb95 {
  3893  		z.DecReadArrayEnd()
  3894  		return
  3895  	}
  3896  	z.DecReadArrayElem()
  3897  	z.F.DecSliceUint64X(&x.AnonInTestStruc.AUi64slice, d)
  3898  	yyj95++
  3899  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3900  	if yyb95 {
  3901  		z.DecReadArrayEnd()
  3902  		return
  3903  	}
  3904  	z.DecReadArrayElem()
  3905  	z.F.DecSliceFloat64X(&x.AnonInTestStruc.AF64slice, d)
  3906  	yyj95++
  3907  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3908  	if yyb95 {
  3909  		z.DecReadArrayEnd()
  3910  		return
  3911  	}
  3912  	z.DecReadArrayElem()
  3913  	z.F.DecSliceFloat32X(&x.AnonInTestStruc.AF32slice, d)
  3914  	yyj95++
  3915  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3916  	if yyb95 {
  3917  		z.DecReadArrayEnd()
  3918  		return
  3919  	}
  3920  	z.DecReadArrayElem()
  3921  	z.F.DecMapStringStringX(&x.AnonInTestStruc.AMSS, d)
  3922  	yyj95++
  3923  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3924  	if yyb95 {
  3925  		z.DecReadArrayEnd()
  3926  		return
  3927  	}
  3928  	z.DecReadArrayElem()
  3929  	z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64, d)
  3930  	yyj95++
  3931  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3932  	if yyb95 {
  3933  		z.DecReadArrayEnd()
  3934  		return
  3935  	}
  3936  	z.DecReadArrayElem()
  3937  	h.decArray8int64((*[8]int64)(&x.AnonInTestStruc.AI64arr8), d)
  3938  	yyj95++
  3939  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3940  	if yyb95 {
  3941  		z.DecReadArrayEnd()
  3942  		return
  3943  	}
  3944  	z.DecReadArrayElem()
  3945  	h.decArray0int64((*[0]int64)(&x.AnonInTestStruc.AI64arr0), d)
  3946  	yyj95++
  3947  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3948  	if yyb95 {
  3949  		z.DecReadArrayEnd()
  3950  		return
  3951  	}
  3952  	z.DecReadArrayElem()
  3953  	z.F.DecSliceInt64X(&x.AnonInTestStruc.AI64slice0, d)
  3954  	yyj95++
  3955  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3956  	if yyb95 {
  3957  		z.DecReadArrayEnd()
  3958  		return
  3959  	}
  3960  	z.DecReadArrayElem()
  3961  	z.F.DecSliceUint64X(&x.AnonInTestStruc.AUi64sliceN, d)
  3962  	yyj95++
  3963  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3964  	if yyb95 {
  3965  		z.DecReadArrayEnd()
  3966  		return
  3967  	}
  3968  	z.DecReadArrayElem()
  3969  	z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64N, d)
  3970  	yyj95++
  3971  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3972  	if yyb95 {
  3973  		z.DecReadArrayEnd()
  3974  		return
  3975  	}
  3976  	z.DecReadArrayElem()
  3977  	z.F.DecMapStringUint64X(&x.AnonInTestStruc.AMSU64E, d)
  3978  	yyj95++
  3979  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3980  	if yyb95 {
  3981  		z.DecReadArrayEnd()
  3982  		return
  3983  	}
  3984  	z.DecReadArrayElem()
  3985  	if yyxt176 := z.Extension(x.NotAnon); yyxt176 != nil {
  3986  		z.DecExtension(&x.NotAnon, yyxt176)
  3987  	} else {
  3988  		x.NotAnon.CodecDecodeSelf(d)
  3989  	}
  3990  	yyj95++
  3991  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  3992  	if yyb95 {
  3993  		z.DecReadArrayEnd()
  3994  		return
  3995  	}
  3996  	z.DecReadArrayElem()
  3997  	if r.TryNil() {
  3998  		if x.AnonInTestStrucSlim != nil && x.AnonInTestStrucSlim.P != nil { // remove the if-true
  3999  			x.AnonInTestStrucSlim.P = nil
  4000  		}
  4001  	} else {
  4002  		if x.AnonInTestStrucSlim == nil {
  4003  			x.AnonInTestStrucSlim = new(AnonInTestStrucSlim)
  4004  		}
  4005  		if x.AnonInTestStrucSlim.P == nil {
  4006  			x.AnonInTestStrucSlim.P = new(string)
  4007  		}
  4008  		*x.AnonInTestStrucSlim.P = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  4009  	}
  4010  	yyj95++
  4011  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  4012  	if yyb95 {
  4013  		z.DecReadArrayEnd()
  4014  		return
  4015  	}
  4016  	z.DecReadArrayElem()
  4017  	if r.TryNil() {
  4018  		if x.NotAnonSlim != nil { // remove the if-true
  4019  			x.NotAnonSlim = nil
  4020  		}
  4021  	} else {
  4022  		if x.NotAnonSlim == nil {
  4023  			x.NotAnonSlim = new(AnonInTestStrucSlim)
  4024  		}
  4025  		if yyxt180 := z.Extension(x.NotAnonSlim); yyxt180 != nil {
  4026  			z.DecExtension(x.NotAnonSlim, yyxt180)
  4027  		} else {
  4028  			x.NotAnonSlim.CodecDecodeSelf(d)
  4029  		}
  4030  	}
  4031  	yyj95++
  4032  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  4033  	if yyb95 {
  4034  		z.DecReadArrayEnd()
  4035  		return
  4036  	}
  4037  	z.DecReadArrayElem()
  4038  	z.F.DecMapStringBoolX(&x.Nmap, d)
  4039  	yyj95++
  4040  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  4041  	if yyb95 {
  4042  		z.DecReadArrayEnd()
  4043  		return
  4044  	}
  4045  	z.DecReadArrayElem()
  4046  	x.Nslice = z.DecodeBytesInto(([]byte)(x.Nslice))
  4047  	yyj95++
  4048  	yyb95 = !z.DecContainerNext(yyj95, l, yyhl95)
  4049  	if yyb95 {
  4050  		z.DecReadArrayEnd()
  4051  		return
  4052  	}
  4053  	z.DecReadArrayElem()
  4054  	if r.TryNil() {
  4055  		if x.Nint64 != nil { // remove the if-true
  4056  			x.Nint64 = nil
  4057  		}
  4058  	} else {
  4059  		if x.Nint64 == nil {
  4060  			x.Nint64 = new(int64)
  4061  		}
  4062  		*x.Nint64 = (int64)(r.DecodeInt64())
  4063  	}
  4064  	yyj95++
  4065  	for ; z.DecContainerNext(yyj95, l, yyhl95); yyj95++ {
  4066  		z.DecReadArrayElem()
  4067  		z.DecStructFieldNotFound(yyj95-1, "")
  4068  	}
  4069  }
  4070  
  4071  func (x *TestStrucCommon) IsCodecEmpty() bool {
  4072  	return !(x.S != "" || x.I64 != 0 || x.I32 != 0 || x.I16 != 0 || x.I8 != 0 || x.I64n != 0 || x.I32n != 0 || x.I16n != 0 || x.I8n != 0 || x.Ui64 != 0 || x.Ui32 != 0 || x.Ui16 != 0 || x.Ui8 != 0 || x.F64 != 0 || x.F32 != 0 || bool(x.B) || x.By != 0 || len(x.Sslice) != 0 || len(x.I64slice) != 0 || len(x.I32slice) != 0 || len(x.Ui64slice) != 0 || len(x.Ui8slice) != 0 || len(x.Bslice) != 0 || len(x.Byslice) != 0 || len(x.BytesSlice) != 0 || len(x.Iptrslice) != 0 || len(x.WrapSliceInt64) != 0 || len(x.WrapSliceString) != 0 || len(x.Msint) != 0 || len(x.Msbytes) != 0 || !(x.Simplef.IsCodecEmpty()) || len(x.SstrUi64T) != 0 || len(x.MstrUi64T) != 0 || !(x.AnonInTestStruc.IsCodecEmpty()) || !(x.NotAnon.IsCodecEmpty()) || x.AnonInTestStrucSlim != nil && len(x.Nmap) != 0 || len(x.Nslice) != 0 || false)
  4073  }
  4074  
  4075  func (TestStruc) codecSelferViaCodecgen() {}
  4076  func (x *TestStruc) CodecEncodeSelf(e *Encoder) {
  4077  	var h codecSelfer19780
  4078  	z, r := GenHelper().Encoder(e)
  4079  	_, _, _ = h, z, r
  4080  	if z.EncBasicHandle().CheckCircularRef {
  4081  		z.EncEncode(x)
  4082  		return
  4083  	}
  4084  	if x == nil {
  4085  		r.EncodeNil()
  4086  	} else {
  4087  		yy2arr2 := z.EncBasicHandle().StructToArray
  4088  		_ = yy2arr2
  4089  		const yyr2 bool = false // struct tag has 'toArray'
  4090  		var yyn54 bool = x.TestStrucCommon.AnonInTestStrucSlim == nil || x.TestStrucCommon.AnonInTestStrucSlim.P == nil
  4091  		var yyn55 bool = x.TestStrucCommon.NotAnonSlim == nil
  4092  		var yyn58 bool = x.TestStrucCommon.Nint64 == nil
  4093  		var yyn62 bool = x.Nteststruc == nil
  4094  		if yyr2 || yy2arr2 {
  4095  			z.EncWriteArrayStart(60)
  4096  			z.EncWriteArrayElem()
  4097  			r.EncodeString(string(x.TestStrucCommon.S))
  4098  			z.EncWriteArrayElem()
  4099  			r.EncodeInt(int64(x.TestStrucCommon.I64))
  4100  			z.EncWriteArrayElem()
  4101  			r.EncodeInt(int64(x.TestStrucCommon.I32))
  4102  			z.EncWriteArrayElem()
  4103  			r.EncodeInt(int64(x.TestStrucCommon.I16))
  4104  			z.EncWriteArrayElem()
  4105  			r.EncodeInt(int64(x.TestStrucCommon.I8))
  4106  			z.EncWriteArrayElem()
  4107  			r.EncodeInt(int64(x.TestStrucCommon.I64n))
  4108  			z.EncWriteArrayElem()
  4109  			r.EncodeInt(int64(x.TestStrucCommon.I32n))
  4110  			z.EncWriteArrayElem()
  4111  			r.EncodeInt(int64(x.TestStrucCommon.I16n))
  4112  			z.EncWriteArrayElem()
  4113  			r.EncodeInt(int64(x.TestStrucCommon.I8n))
  4114  			z.EncWriteArrayElem()
  4115  			r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
  4116  			z.EncWriteArrayElem()
  4117  			r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
  4118  			z.EncWriteArrayElem()
  4119  			r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
  4120  			z.EncWriteArrayElem()
  4121  			r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
  4122  			z.EncWriteArrayElem()
  4123  			r.EncodeFloat64(float64(x.TestStrucCommon.F64))
  4124  			z.EncWriteArrayElem()
  4125  			r.EncodeFloat32(float32(x.TestStrucCommon.F32))
  4126  			z.EncWriteArrayElem()
  4127  			r.EncodeBool(bool(x.TestStrucCommon.B))
  4128  			z.EncWriteArrayElem()
  4129  			r.EncodeUint(uint64(x.TestStrucCommon.By))
  4130  			z.EncWriteArrayElem()
  4131  			if x.TestStrucCommon.Sslice == nil {
  4132  				r.EncodeNil()
  4133  			} else {
  4134  				z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
  4135  			} // end block: if x.TestStrucCommon.Sslice slice == nil
  4136  			z.EncWriteArrayElem()
  4137  			if x.TestStrucCommon.I64slice == nil {
  4138  				r.EncodeNil()
  4139  			} else {
  4140  				z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
  4141  			} // end block: if x.TestStrucCommon.I64slice slice == nil
  4142  			z.EncWriteArrayElem()
  4143  			if x.TestStrucCommon.I32slice == nil {
  4144  				r.EncodeNil()
  4145  			} else {
  4146  				z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
  4147  			} // end block: if x.TestStrucCommon.I32slice slice == nil
  4148  			z.EncWriteArrayElem()
  4149  			if x.TestStrucCommon.Ui64slice == nil {
  4150  				r.EncodeNil()
  4151  			} else {
  4152  				z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
  4153  			} // end block: if x.TestStrucCommon.Ui64slice slice == nil
  4154  			z.EncWriteArrayElem()
  4155  			if x.TestStrucCommon.Ui8slice == nil {
  4156  				r.EncodeNil()
  4157  			} else {
  4158  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
  4159  			} // end block: if x.TestStrucCommon.Ui8slice slice == nil
  4160  			z.EncWriteArrayElem()
  4161  			if x.TestStrucCommon.Bslice == nil {
  4162  				r.EncodeNil()
  4163  			} else {
  4164  				z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
  4165  			} // end block: if x.TestStrucCommon.Bslice slice == nil
  4166  			z.EncWriteArrayElem()
  4167  			if x.TestStrucCommon.Byslice == nil {
  4168  				r.EncodeNil()
  4169  			} else {
  4170  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
  4171  			} // end block: if x.TestStrucCommon.Byslice slice == nil
  4172  			z.EncWriteArrayElem()
  4173  			if x.TestStrucCommon.BytesSlice == nil {
  4174  				r.EncodeNil()
  4175  			} else {
  4176  				z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
  4177  			} // end block: if x.TestStrucCommon.BytesSlice slice == nil
  4178  			z.EncWriteArrayElem()
  4179  			if x.TestStrucCommon.Iptrslice == nil {
  4180  				r.EncodeNil()
  4181  			} else {
  4182  				h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
  4183  			} // end block: if x.TestStrucCommon.Iptrslice slice == nil
  4184  			z.EncWriteArrayElem()
  4185  			if yyxt89 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt89 != nil {
  4186  				z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt89)
  4187  			} else {
  4188  				x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
  4189  			}
  4190  			z.EncWriteArrayElem()
  4191  			if yyxt90 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt90 != nil {
  4192  				z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt90)
  4193  			} else {
  4194  				x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
  4195  			}
  4196  			z.EncWriteArrayElem()
  4197  			if x.TestStrucCommon.Msint == nil {
  4198  				r.EncodeNil()
  4199  			} else {
  4200  				z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
  4201  			} // end block: if x.TestStrucCommon.Msint map == nil
  4202  			z.EncWriteArrayElem()
  4203  			if x.TestStrucCommon.Msbytes == nil {
  4204  				r.EncodeNil()
  4205  			} else {
  4206  				z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
  4207  			} // end block: if x.TestStrucCommon.Msbytes map == nil
  4208  			z.EncWriteArrayElem()
  4209  			yy93 := &x.TestStrucCommon.Simplef
  4210  			if yyxt94 := z.Extension(yy93); yyxt94 != nil {
  4211  				z.EncExtension(yy93, yyxt94)
  4212  			} else {
  4213  				yy93.CodecEncodeSelf(e)
  4214  			}
  4215  			z.EncWriteArrayElem()
  4216  			if x.TestStrucCommon.SstrUi64T == nil {
  4217  				r.EncodeNil()
  4218  			} else {
  4219  				h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
  4220  			} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
  4221  			z.EncWriteArrayElem()
  4222  			if x.TestStrucCommon.MstrUi64T == nil {
  4223  				r.EncodeNil()
  4224  			} else {
  4225  				h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
  4226  			} // end block: if x.TestStrucCommon.MstrUi64T map == nil
  4227  			z.EncWriteArrayElem()
  4228  			r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
  4229  			z.EncWriteArrayElem()
  4230  			r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
  4231  			z.EncWriteArrayElem()
  4232  			r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
  4233  			z.EncWriteArrayElem()
  4234  			r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
  4235  			z.EncWriteArrayElem()
  4236  			if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
  4237  				r.EncodeNil()
  4238  			} else {
  4239  				z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
  4240  			} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
  4241  			z.EncWriteArrayElem()
  4242  			if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
  4243  				r.EncodeNil()
  4244  			} else {
  4245  				z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
  4246  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
  4247  			z.EncWriteArrayElem()
  4248  			if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
  4249  				r.EncodeNil()
  4250  			} else {
  4251  				z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
  4252  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
  4253  			z.EncWriteArrayElem()
  4254  			if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
  4255  				r.EncodeNil()
  4256  			} else {
  4257  				z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
  4258  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
  4259  			z.EncWriteArrayElem()
  4260  			if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
  4261  				r.EncodeNil()
  4262  			} else {
  4263  				z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
  4264  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
  4265  			z.EncWriteArrayElem()
  4266  			if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
  4267  				r.EncodeNil()
  4268  			} else {
  4269  				z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
  4270  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
  4271  			z.EncWriteArrayElem()
  4272  			if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
  4273  				r.EncodeNil()
  4274  			} else {
  4275  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
  4276  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
  4277  			z.EncWriteArrayElem()
  4278  			yy108 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
  4279  			h.encArray8int64((*[8]int64)(yy108), e)
  4280  			z.EncWriteArrayElem()
  4281  			yy110 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
  4282  			h.encArray0int64((*[0]int64)(yy110), e)
  4283  			z.EncWriteArrayElem()
  4284  			if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
  4285  				r.EncodeNil()
  4286  			} else {
  4287  				z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
  4288  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
  4289  			z.EncWriteArrayElem()
  4290  			if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
  4291  				r.EncodeNil()
  4292  			} else {
  4293  				z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
  4294  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
  4295  			z.EncWriteArrayElem()
  4296  			if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
  4297  				r.EncodeNil()
  4298  			} else {
  4299  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
  4300  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
  4301  			z.EncWriteArrayElem()
  4302  			if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
  4303  				r.EncodeNil()
  4304  			} else {
  4305  				z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
  4306  			} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
  4307  			z.EncWriteArrayElem()
  4308  			yy116 := &x.TestStrucCommon.NotAnon
  4309  			if yyxt117 := z.Extension(yy116); yyxt117 != nil {
  4310  				z.EncExtension(yy116, yyxt117)
  4311  			} else {
  4312  				yy116.CodecEncodeSelf(e)
  4313  			}
  4314  			if yyn54 {
  4315  				z.EncWriteArrayElem()
  4316  				r.EncodeNil()
  4317  			} else {
  4318  				z.EncWriteArrayElem()
  4319  				yy118 := *x.TestStrucCommon.AnonInTestStrucSlim.P
  4320  				r.EncodeString(string(yy118))
  4321  			}
  4322  			if yyn55 {
  4323  				z.EncWriteArrayElem()
  4324  				r.EncodeNil()
  4325  			} else {
  4326  				z.EncWriteArrayElem()
  4327  				if yyxt120 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt120 != nil {
  4328  					z.EncExtension(x.TestStrucCommon.NotAnonSlim, yyxt120)
  4329  				} else {
  4330  					x.TestStrucCommon.NotAnonSlim.CodecEncodeSelf(e)
  4331  				}
  4332  			}
  4333  			z.EncWriteArrayElem()
  4334  			if x.TestStrucCommon.Nmap == nil {
  4335  				r.EncodeNil()
  4336  			} else {
  4337  				z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
  4338  			} // end block: if x.TestStrucCommon.Nmap map == nil
  4339  			z.EncWriteArrayElem()
  4340  			if x.TestStrucCommon.Nslice == nil {
  4341  				r.EncodeNil()
  4342  			} else {
  4343  				r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
  4344  			} // end block: if x.TestStrucCommon.Nslice slice == nil
  4345  			if yyn58 {
  4346  				z.EncWriteArrayElem()
  4347  				r.EncodeNil()
  4348  			} else {
  4349  				z.EncWriteArrayElem()
  4350  				yy123 := *x.TestStrucCommon.Nint64
  4351  				r.EncodeInt(int64(yy123))
  4352  			}
  4353  			z.EncWriteArrayElem()
  4354  			if x.Mtsptr == nil {
  4355  				r.EncodeNil()
  4356  			} else {
  4357  				h.encMapstringPtrtoTestStruc((map[string]*TestStruc)(x.Mtsptr), e)
  4358  			} // end block: if x.Mtsptr map == nil
  4359  			z.EncWriteArrayElem()
  4360  			if x.Mts == nil {
  4361  				r.EncodeNil()
  4362  			} else {
  4363  				h.encMapstringTestStruc((map[string]TestStruc)(x.Mts), e)
  4364  			} // end block: if x.Mts map == nil
  4365  			z.EncWriteArrayElem()
  4366  			if x.Its == nil {
  4367  				r.EncodeNil()
  4368  			} else {
  4369  				h.encSlicePtrtoTestStruc(([]*TestStruc)(x.Its), e)
  4370  			} // end block: if x.Its slice == nil
  4371  			if yyn62 {
  4372  				z.EncWriteArrayElem()
  4373  				r.EncodeNil()
  4374  			} else {
  4375  				z.EncWriteArrayElem()
  4376  				if yyxt128 := z.Extension(x.Nteststruc); yyxt128 != nil {
  4377  					z.EncExtension(x.Nteststruc, yyxt128)
  4378  				} else {
  4379  					x.Nteststruc.CodecEncodeSelf(e)
  4380  				}
  4381  			}
  4382  			z.EncWriteArrayEnd()
  4383  		} else {
  4384  			z.EncWriteMapStart(60)
  4385  			if z.EncBasicHandle().Canonical {
  4386  				z.EncWriteMapElemKey()
  4387  				if z.IsJSONHandle() {
  4388  					z.EncWr().WriteStr("\"AF32slice\"")
  4389  				} else {
  4390  					r.EncodeString(`AF32slice`)
  4391  				}
  4392  				z.EncWriteMapElemValue()
  4393  				if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
  4394  					r.EncodeNil()
  4395  				} else {
  4396  					z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
  4397  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
  4398  				z.EncWriteMapElemKey()
  4399  				if z.IsJSONHandle() {
  4400  					z.EncWr().WriteStr("\"AF64slice\"")
  4401  				} else {
  4402  					r.EncodeString(`AF64slice`)
  4403  				}
  4404  				z.EncWriteMapElemValue()
  4405  				if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
  4406  					r.EncodeNil()
  4407  				} else {
  4408  					z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
  4409  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
  4410  				z.EncWriteMapElemKey()
  4411  				if z.IsJSONHandle() {
  4412  					z.EncWr().WriteStr("\"AI16\"")
  4413  				} else {
  4414  					r.EncodeString(`AI16`)
  4415  				}
  4416  				z.EncWriteMapElemValue()
  4417  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
  4418  				z.EncWriteMapElemKey()
  4419  				if z.IsJSONHandle() {
  4420  					z.EncWr().WriteStr("\"AI64\"")
  4421  				} else {
  4422  					r.EncodeString(`AI64`)
  4423  				}
  4424  				z.EncWriteMapElemValue()
  4425  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
  4426  				z.EncWriteMapElemKey()
  4427  				if z.IsJSONHandle() {
  4428  					z.EncWr().WriteStr("\"AI64arr0\"")
  4429  				} else {
  4430  					r.EncodeString(`AI64arr0`)
  4431  				}
  4432  				z.EncWriteMapElemValue()
  4433  				yy133 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
  4434  				h.encArray0int64((*[0]int64)(yy133), e)
  4435  				z.EncWriteMapElemKey()
  4436  				if z.IsJSONHandle() {
  4437  					z.EncWr().WriteStr("\"AI64arr8\"")
  4438  				} else {
  4439  					r.EncodeString(`AI64arr8`)
  4440  				}
  4441  				z.EncWriteMapElemValue()
  4442  				yy135 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
  4443  				h.encArray8int64((*[8]int64)(yy135), e)
  4444  				z.EncWriteMapElemKey()
  4445  				if z.IsJSONHandle() {
  4446  					z.EncWr().WriteStr("\"AI64slice\"")
  4447  				} else {
  4448  					r.EncodeString(`AI64slice`)
  4449  				}
  4450  				z.EncWriteMapElemValue()
  4451  				if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
  4452  					r.EncodeNil()
  4453  				} else {
  4454  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
  4455  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
  4456  				z.EncWriteMapElemKey()
  4457  				if z.IsJSONHandle() {
  4458  					z.EncWr().WriteStr("\"AI64slice0\"")
  4459  				} else {
  4460  					r.EncodeString(`AI64slice0`)
  4461  				}
  4462  				z.EncWriteMapElemValue()
  4463  				if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
  4464  					r.EncodeNil()
  4465  				} else {
  4466  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
  4467  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
  4468  				z.EncWriteMapElemKey()
  4469  				if z.IsJSONHandle() {
  4470  					z.EncWr().WriteStr("\"AMSS\"")
  4471  				} else {
  4472  					r.EncodeString(`AMSS`)
  4473  				}
  4474  				z.EncWriteMapElemValue()
  4475  				if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
  4476  					r.EncodeNil()
  4477  				} else {
  4478  					z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
  4479  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
  4480  				z.EncWriteMapElemKey()
  4481  				if z.IsJSONHandle() {
  4482  					z.EncWr().WriteStr("\"AMSU64\"")
  4483  				} else {
  4484  					r.EncodeString(`AMSU64`)
  4485  				}
  4486  				z.EncWriteMapElemValue()
  4487  				if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
  4488  					r.EncodeNil()
  4489  				} else {
  4490  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
  4491  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
  4492  				z.EncWriteMapElemKey()
  4493  				if z.IsJSONHandle() {
  4494  					z.EncWr().WriteStr("\"AMSU64E\"")
  4495  				} else {
  4496  					r.EncodeString(`AMSU64E`)
  4497  				}
  4498  				z.EncWriteMapElemValue()
  4499  				if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
  4500  					r.EncodeNil()
  4501  				} else {
  4502  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
  4503  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
  4504  				z.EncWriteMapElemKey()
  4505  				if z.IsJSONHandle() {
  4506  					z.EncWr().WriteStr("\"AMSU64N\"")
  4507  				} else {
  4508  					r.EncodeString(`AMSU64N`)
  4509  				}
  4510  				z.EncWriteMapElemValue()
  4511  				if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
  4512  					r.EncodeNil()
  4513  				} else {
  4514  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
  4515  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
  4516  				z.EncWriteMapElemKey()
  4517  				if z.IsJSONHandle() {
  4518  					z.EncWr().WriteStr("\"AS\"")
  4519  				} else {
  4520  					r.EncodeString(`AS`)
  4521  				}
  4522  				z.EncWriteMapElemValue()
  4523  				r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
  4524  				z.EncWriteMapElemKey()
  4525  				if z.IsJSONHandle() {
  4526  					z.EncWr().WriteStr("\"ASslice\"")
  4527  				} else {
  4528  					r.EncodeString(`ASslice`)
  4529  				}
  4530  				z.EncWriteMapElemValue()
  4531  				if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
  4532  					r.EncodeNil()
  4533  				} else {
  4534  					z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
  4535  				} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
  4536  				z.EncWriteMapElemKey()
  4537  				if z.IsJSONHandle() {
  4538  					z.EncWr().WriteStr("\"AUi64\"")
  4539  				} else {
  4540  					r.EncodeString(`AUi64`)
  4541  				}
  4542  				z.EncWriteMapElemValue()
  4543  				r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
  4544  				z.EncWriteMapElemKey()
  4545  				if z.IsJSONHandle() {
  4546  					z.EncWr().WriteStr("\"AUi64slice\"")
  4547  				} else {
  4548  					r.EncodeString(`AUi64slice`)
  4549  				}
  4550  				z.EncWriteMapElemValue()
  4551  				if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
  4552  					r.EncodeNil()
  4553  				} else {
  4554  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
  4555  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
  4556  				z.EncWriteMapElemKey()
  4557  				if z.IsJSONHandle() {
  4558  					z.EncWr().WriteStr("\"AUi64sliceN\"")
  4559  				} else {
  4560  					r.EncodeString(`AUi64sliceN`)
  4561  				}
  4562  				z.EncWriteMapElemValue()
  4563  				if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
  4564  					r.EncodeNil()
  4565  				} else {
  4566  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
  4567  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
  4568  				z.EncWriteMapElemKey()
  4569  				if z.IsJSONHandle() {
  4570  					z.EncWr().WriteStr("\"B\"")
  4571  				} else {
  4572  					r.EncodeString(`B`)
  4573  				}
  4574  				z.EncWriteMapElemValue()
  4575  				r.EncodeBool(bool(x.TestStrucCommon.B))
  4576  				z.EncWriteMapElemKey()
  4577  				if z.IsJSONHandle() {
  4578  					z.EncWr().WriteStr("\"Bslice\"")
  4579  				} else {
  4580  					r.EncodeString(`Bslice`)
  4581  				}
  4582  				z.EncWriteMapElemValue()
  4583  				if x.TestStrucCommon.Bslice == nil {
  4584  					r.EncodeNil()
  4585  				} else {
  4586  					z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
  4587  				} // end block: if x.TestStrucCommon.Bslice slice == nil
  4588  				z.EncWriteMapElemKey()
  4589  				if z.IsJSONHandle() {
  4590  					z.EncWr().WriteStr("\"By\"")
  4591  				} else {
  4592  					r.EncodeString(`By`)
  4593  				}
  4594  				z.EncWriteMapElemValue()
  4595  				r.EncodeUint(uint64(x.TestStrucCommon.By))
  4596  				z.EncWriteMapElemKey()
  4597  				if z.IsJSONHandle() {
  4598  					z.EncWr().WriteStr("\"Byslice\"")
  4599  				} else {
  4600  					r.EncodeString(`Byslice`)
  4601  				}
  4602  				z.EncWriteMapElemValue()
  4603  				if x.TestStrucCommon.Byslice == nil {
  4604  					r.EncodeNil()
  4605  				} else {
  4606  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
  4607  				} // end block: if x.TestStrucCommon.Byslice slice == nil
  4608  				z.EncWriteMapElemKey()
  4609  				if z.IsJSONHandle() {
  4610  					z.EncWr().WriteStr("\"BytesSlice\"")
  4611  				} else {
  4612  					r.EncodeString(`BytesSlice`)
  4613  				}
  4614  				z.EncWriteMapElemValue()
  4615  				if x.TestStrucCommon.BytesSlice == nil {
  4616  					r.EncodeNil()
  4617  				} else {
  4618  					z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
  4619  				} // end block: if x.TestStrucCommon.BytesSlice slice == nil
  4620  				z.EncWriteMapElemKey()
  4621  				if z.IsJSONHandle() {
  4622  					z.EncWr().WriteStr("\"F32\"")
  4623  				} else {
  4624  					r.EncodeString(`F32`)
  4625  				}
  4626  				z.EncWriteMapElemValue()
  4627  				r.EncodeFloat32(float32(x.TestStrucCommon.F32))
  4628  				z.EncWriteMapElemKey()
  4629  				if z.IsJSONHandle() {
  4630  					z.EncWr().WriteStr("\"F64\"")
  4631  				} else {
  4632  					r.EncodeString(`F64`)
  4633  				}
  4634  				z.EncWriteMapElemValue()
  4635  				r.EncodeFloat64(float64(x.TestStrucCommon.F64))
  4636  				z.EncWriteMapElemKey()
  4637  				if z.IsJSONHandle() {
  4638  					z.EncWr().WriteStr("\"I16\"")
  4639  				} else {
  4640  					r.EncodeString(`I16`)
  4641  				}
  4642  				z.EncWriteMapElemValue()
  4643  				r.EncodeInt(int64(x.TestStrucCommon.I16))
  4644  				z.EncWriteMapElemKey()
  4645  				if z.IsJSONHandle() {
  4646  					z.EncWr().WriteStr("\"I16n\"")
  4647  				} else {
  4648  					r.EncodeString(`I16n`)
  4649  				}
  4650  				z.EncWriteMapElemValue()
  4651  				r.EncodeInt(int64(x.TestStrucCommon.I16n))
  4652  				z.EncWriteMapElemKey()
  4653  				if z.IsJSONHandle() {
  4654  					z.EncWr().WriteStr("\"I32\"")
  4655  				} else {
  4656  					r.EncodeString(`I32`)
  4657  				}
  4658  				z.EncWriteMapElemValue()
  4659  				r.EncodeInt(int64(x.TestStrucCommon.I32))
  4660  				z.EncWriteMapElemKey()
  4661  				if z.IsJSONHandle() {
  4662  					z.EncWr().WriteStr("\"I32n\"")
  4663  				} else {
  4664  					r.EncodeString(`I32n`)
  4665  				}
  4666  				z.EncWriteMapElemValue()
  4667  				r.EncodeInt(int64(x.TestStrucCommon.I32n))
  4668  				z.EncWriteMapElemKey()
  4669  				if z.IsJSONHandle() {
  4670  					z.EncWr().WriteStr("\"I32slice\"")
  4671  				} else {
  4672  					r.EncodeString(`I32slice`)
  4673  				}
  4674  				z.EncWriteMapElemValue()
  4675  				if x.TestStrucCommon.I32slice == nil {
  4676  					r.EncodeNil()
  4677  				} else {
  4678  					z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
  4679  				} // end block: if x.TestStrucCommon.I32slice slice == nil
  4680  				z.EncWriteMapElemKey()
  4681  				if z.IsJSONHandle() {
  4682  					z.EncWr().WriteStr("\"I64\"")
  4683  				} else {
  4684  					r.EncodeString(`I64`)
  4685  				}
  4686  				z.EncWriteMapElemValue()
  4687  				r.EncodeInt(int64(x.TestStrucCommon.I64))
  4688  				z.EncWriteMapElemKey()
  4689  				if z.IsJSONHandle() {
  4690  					z.EncWr().WriteStr("\"I64n\"")
  4691  				} else {
  4692  					r.EncodeString(`I64n`)
  4693  				}
  4694  				z.EncWriteMapElemValue()
  4695  				r.EncodeInt(int64(x.TestStrucCommon.I64n))
  4696  				z.EncWriteMapElemKey()
  4697  				if z.IsJSONHandle() {
  4698  					z.EncWr().WriteStr("\"I64slice\"")
  4699  				} else {
  4700  					r.EncodeString(`I64slice`)
  4701  				}
  4702  				z.EncWriteMapElemValue()
  4703  				if x.TestStrucCommon.I64slice == nil {
  4704  					r.EncodeNil()
  4705  				} else {
  4706  					z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
  4707  				} // end block: if x.TestStrucCommon.I64slice slice == nil
  4708  				z.EncWriteMapElemKey()
  4709  				if z.IsJSONHandle() {
  4710  					z.EncWr().WriteStr("\"I8\"")
  4711  				} else {
  4712  					r.EncodeString(`I8`)
  4713  				}
  4714  				z.EncWriteMapElemValue()
  4715  				r.EncodeInt(int64(x.TestStrucCommon.I8))
  4716  				z.EncWriteMapElemKey()
  4717  				if z.IsJSONHandle() {
  4718  					z.EncWr().WriteStr("\"I8n\"")
  4719  				} else {
  4720  					r.EncodeString(`I8n`)
  4721  				}
  4722  				z.EncWriteMapElemValue()
  4723  				r.EncodeInt(int64(x.TestStrucCommon.I8n))
  4724  				z.EncWriteMapElemKey()
  4725  				if z.IsJSONHandle() {
  4726  					z.EncWr().WriteStr("\"Iptrslice\"")
  4727  				} else {
  4728  					r.EncodeString(`Iptrslice`)
  4729  				}
  4730  				z.EncWriteMapElemValue()
  4731  				if x.TestStrucCommon.Iptrslice == nil {
  4732  					r.EncodeNil()
  4733  				} else {
  4734  					h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
  4735  				} // end block: if x.TestStrucCommon.Iptrslice slice == nil
  4736  				z.EncWriteMapElemKey()
  4737  				if z.IsJSONHandle() {
  4738  					z.EncWr().WriteStr("\"Its\"")
  4739  				} else {
  4740  					r.EncodeString(`Its`)
  4741  				}
  4742  				z.EncWriteMapElemValue()
  4743  				if x.Its == nil {
  4744  					r.EncodeNil()
  4745  				} else {
  4746  					h.encSlicePtrtoTestStruc(([]*TestStruc)(x.Its), e)
  4747  				} // end block: if x.Its slice == nil
  4748  				z.EncWriteMapElemKey()
  4749  				if z.IsJSONHandle() {
  4750  					z.EncWr().WriteStr("\"Msbytes\"")
  4751  				} else {
  4752  					r.EncodeString(`Msbytes`)
  4753  				}
  4754  				z.EncWriteMapElemValue()
  4755  				if x.TestStrucCommon.Msbytes == nil {
  4756  					r.EncodeNil()
  4757  				} else {
  4758  					z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
  4759  				} // end block: if x.TestStrucCommon.Msbytes map == nil
  4760  				z.EncWriteMapElemKey()
  4761  				if z.IsJSONHandle() {
  4762  					z.EncWr().WriteStr("\"Msint\"")
  4763  				} else {
  4764  					r.EncodeString(`Msint`)
  4765  				}
  4766  				z.EncWriteMapElemValue()
  4767  				if x.TestStrucCommon.Msint == nil {
  4768  					r.EncodeNil()
  4769  				} else {
  4770  					z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
  4771  				} // end block: if x.TestStrucCommon.Msint map == nil
  4772  				z.EncWriteMapElemKey()
  4773  				if z.IsJSONHandle() {
  4774  					z.EncWr().WriteStr("\"MstrUi64T\"")
  4775  				} else {
  4776  					r.EncodeString(`MstrUi64T`)
  4777  				}
  4778  				z.EncWriteMapElemValue()
  4779  				if x.TestStrucCommon.MstrUi64T == nil {
  4780  					r.EncodeNil()
  4781  				} else {
  4782  					h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
  4783  				} // end block: if x.TestStrucCommon.MstrUi64T map == nil
  4784  				z.EncWriteMapElemKey()
  4785  				if z.IsJSONHandle() {
  4786  					z.EncWr().WriteStr("\"Mts\"")
  4787  				} else {
  4788  					r.EncodeString(`Mts`)
  4789  				}
  4790  				z.EncWriteMapElemValue()
  4791  				if x.Mts == nil {
  4792  					r.EncodeNil()
  4793  				} else {
  4794  					h.encMapstringTestStruc((map[string]TestStruc)(x.Mts), e)
  4795  				} // end block: if x.Mts map == nil
  4796  				z.EncWriteMapElemKey()
  4797  				if z.IsJSONHandle() {
  4798  					z.EncWr().WriteStr("\"Mtsptr\"")
  4799  				} else {
  4800  					r.EncodeString(`Mtsptr`)
  4801  				}
  4802  				z.EncWriteMapElemValue()
  4803  				if x.Mtsptr == nil {
  4804  					r.EncodeNil()
  4805  				} else {
  4806  					h.encMapstringPtrtoTestStruc((map[string]*TestStruc)(x.Mtsptr), e)
  4807  				} // end block: if x.Mtsptr map == nil
  4808  				z.EncWriteMapElemKey()
  4809  				if z.IsJSONHandle() {
  4810  					z.EncWr().WriteStr("\"Nint64\"")
  4811  				} else {
  4812  					r.EncodeString(`Nint64`)
  4813  				}
  4814  				z.EncWriteMapElemValue()
  4815  				if yyn58 {
  4816  					r.EncodeNil()
  4817  				} else {
  4818  					yy172 := *x.TestStrucCommon.Nint64
  4819  					r.EncodeInt(int64(yy172))
  4820  				}
  4821  				z.EncWriteMapElemKey()
  4822  				if z.IsJSONHandle() {
  4823  					z.EncWr().WriteStr("\"Nmap\"")
  4824  				} else {
  4825  					r.EncodeString(`Nmap`)
  4826  				}
  4827  				z.EncWriteMapElemValue()
  4828  				if x.TestStrucCommon.Nmap == nil {
  4829  					r.EncodeNil()
  4830  				} else {
  4831  					z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
  4832  				} // end block: if x.TestStrucCommon.Nmap map == nil
  4833  				z.EncWriteMapElemKey()
  4834  				if z.IsJSONHandle() {
  4835  					z.EncWr().WriteStr("\"NotAnon\"")
  4836  				} else {
  4837  					r.EncodeString(`NotAnon`)
  4838  				}
  4839  				z.EncWriteMapElemValue()
  4840  				yy175 := &x.TestStrucCommon.NotAnon
  4841  				if yyxt176 := z.Extension(yy175); yyxt176 != nil {
  4842  					z.EncExtension(yy175, yyxt176)
  4843  				} else {
  4844  					yy175.CodecEncodeSelf(e)
  4845  				}
  4846  				z.EncWriteMapElemKey()
  4847  				if z.IsJSONHandle() {
  4848  					z.EncWr().WriteStr("\"NotAnonSlim\"")
  4849  				} else {
  4850  					r.EncodeString(`NotAnonSlim`)
  4851  				}
  4852  				z.EncWriteMapElemValue()
  4853  				if yyn55 {
  4854  					r.EncodeNil()
  4855  				} else {
  4856  					if yyxt177 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt177 != nil {
  4857  						z.EncExtension(x.TestStrucCommon.NotAnonSlim, yyxt177)
  4858  					} else {
  4859  						x.TestStrucCommon.NotAnonSlim.CodecEncodeSelf(e)
  4860  					}
  4861  				}
  4862  				z.EncWriteMapElemKey()
  4863  				if z.IsJSONHandle() {
  4864  					z.EncWr().WriteStr("\"Nslice\"")
  4865  				} else {
  4866  					r.EncodeString(`Nslice`)
  4867  				}
  4868  				z.EncWriteMapElemValue()
  4869  				if x.TestStrucCommon.Nslice == nil {
  4870  					r.EncodeNil()
  4871  				} else {
  4872  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
  4873  				} // end block: if x.TestStrucCommon.Nslice slice == nil
  4874  				z.EncWriteMapElemKey()
  4875  				if z.IsJSONHandle() {
  4876  					z.EncWr().WriteStr("\"Nteststruc\"")
  4877  				} else {
  4878  					r.EncodeString(`Nteststruc`)
  4879  				}
  4880  				z.EncWriteMapElemValue()
  4881  				if yyn62 {
  4882  					r.EncodeNil()
  4883  				} else {
  4884  					if yyxt179 := z.Extension(x.Nteststruc); yyxt179 != nil {
  4885  						z.EncExtension(x.Nteststruc, yyxt179)
  4886  					} else {
  4887  						x.Nteststruc.CodecEncodeSelf(e)
  4888  					}
  4889  				}
  4890  				z.EncWriteMapElemKey()
  4891  				if z.IsJSONHandle() {
  4892  					z.EncWr().WriteStr("\"P\"")
  4893  				} else {
  4894  					r.EncodeString(`P`)
  4895  				}
  4896  				z.EncWriteMapElemValue()
  4897  				if yyn54 {
  4898  					r.EncodeNil()
  4899  				} else {
  4900  					yy180 := *x.TestStrucCommon.AnonInTestStrucSlim.P
  4901  					r.EncodeString(string(yy180))
  4902  				}
  4903  				z.EncWriteMapElemKey()
  4904  				if z.IsJSONHandle() {
  4905  					z.EncWr().WriteStr("\"S\"")
  4906  				} else {
  4907  					r.EncodeString(`S`)
  4908  				}
  4909  				z.EncWriteMapElemValue()
  4910  				r.EncodeString(string(x.TestStrucCommon.S))
  4911  				z.EncWriteMapElemKey()
  4912  				if z.IsJSONHandle() {
  4913  					z.EncWr().WriteStr("\"Simplef\"")
  4914  				} else {
  4915  					r.EncodeString(`Simplef`)
  4916  				}
  4917  				z.EncWriteMapElemValue()
  4918  				yy183 := &x.TestStrucCommon.Simplef
  4919  				if yyxt184 := z.Extension(yy183); yyxt184 != nil {
  4920  					z.EncExtension(yy183, yyxt184)
  4921  				} else {
  4922  					yy183.CodecEncodeSelf(e)
  4923  				}
  4924  				z.EncWriteMapElemKey()
  4925  				if z.IsJSONHandle() {
  4926  					z.EncWr().WriteStr("\"Sslice\"")
  4927  				} else {
  4928  					r.EncodeString(`Sslice`)
  4929  				}
  4930  				z.EncWriteMapElemValue()
  4931  				if x.TestStrucCommon.Sslice == nil {
  4932  					r.EncodeNil()
  4933  				} else {
  4934  					z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
  4935  				} // end block: if x.TestStrucCommon.Sslice slice == nil
  4936  				z.EncWriteMapElemKey()
  4937  				if z.IsJSONHandle() {
  4938  					z.EncWr().WriteStr("\"SstrUi64T\"")
  4939  				} else {
  4940  					r.EncodeString(`SstrUi64T`)
  4941  				}
  4942  				z.EncWriteMapElemValue()
  4943  				if x.TestStrucCommon.SstrUi64T == nil {
  4944  					r.EncodeNil()
  4945  				} else {
  4946  					h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
  4947  				} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
  4948  				z.EncWriteMapElemKey()
  4949  				if z.IsJSONHandle() {
  4950  					z.EncWr().WriteStr("\"Ui16\"")
  4951  				} else {
  4952  					r.EncodeString(`Ui16`)
  4953  				}
  4954  				z.EncWriteMapElemValue()
  4955  				r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
  4956  				z.EncWriteMapElemKey()
  4957  				if z.IsJSONHandle() {
  4958  					z.EncWr().WriteStr("\"Ui32\"")
  4959  				} else {
  4960  					r.EncodeString(`Ui32`)
  4961  				}
  4962  				z.EncWriteMapElemValue()
  4963  				r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
  4964  				z.EncWriteMapElemKey()
  4965  				if z.IsJSONHandle() {
  4966  					z.EncWr().WriteStr("\"Ui64\"")
  4967  				} else {
  4968  					r.EncodeString(`Ui64`)
  4969  				}
  4970  				z.EncWriteMapElemValue()
  4971  				r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
  4972  				z.EncWriteMapElemKey()
  4973  				if z.IsJSONHandle() {
  4974  					z.EncWr().WriteStr("\"Ui64slice\"")
  4975  				} else {
  4976  					r.EncodeString(`Ui64slice`)
  4977  				}
  4978  				z.EncWriteMapElemValue()
  4979  				if x.TestStrucCommon.Ui64slice == nil {
  4980  					r.EncodeNil()
  4981  				} else {
  4982  					z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
  4983  				} // end block: if x.TestStrucCommon.Ui64slice slice == nil
  4984  				z.EncWriteMapElemKey()
  4985  				if z.IsJSONHandle() {
  4986  					z.EncWr().WriteStr("\"Ui8\"")
  4987  				} else {
  4988  					r.EncodeString(`Ui8`)
  4989  				}
  4990  				z.EncWriteMapElemValue()
  4991  				r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
  4992  				z.EncWriteMapElemKey()
  4993  				if z.IsJSONHandle() {
  4994  					z.EncWr().WriteStr("\"Ui8slice\"")
  4995  				} else {
  4996  					r.EncodeString(`Ui8slice`)
  4997  				}
  4998  				z.EncWriteMapElemValue()
  4999  				if x.TestStrucCommon.Ui8slice == nil {
  5000  					r.EncodeNil()
  5001  				} else {
  5002  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
  5003  				} // end block: if x.TestStrucCommon.Ui8slice slice == nil
  5004  				z.EncWriteMapElemKey()
  5005  				if z.IsJSONHandle() {
  5006  					z.EncWr().WriteStr("\"WrapSliceInt64\"")
  5007  				} else {
  5008  					r.EncodeString(`WrapSliceInt64`)
  5009  				}
  5010  				z.EncWriteMapElemValue()
  5011  				if yyxt193 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt193 != nil {
  5012  					z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt193)
  5013  				} else {
  5014  					x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
  5015  				}
  5016  				z.EncWriteMapElemKey()
  5017  				if z.IsJSONHandle() {
  5018  					z.EncWr().WriteStr("\"WrapSliceString\"")
  5019  				} else {
  5020  					r.EncodeString(`WrapSliceString`)
  5021  				}
  5022  				z.EncWriteMapElemValue()
  5023  				if yyxt194 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt194 != nil {
  5024  					z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt194)
  5025  				} else {
  5026  					x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
  5027  				}
  5028  			} else {
  5029  				z.EncWriteMapElemKey()
  5030  				if z.IsJSONHandle() {
  5031  					z.EncWr().WriteStr("\"S\"")
  5032  				} else {
  5033  					r.EncodeString(`S`)
  5034  				}
  5035  				z.EncWriteMapElemValue()
  5036  				r.EncodeString(string(x.TestStrucCommon.S))
  5037  				z.EncWriteMapElemKey()
  5038  				if z.IsJSONHandle() {
  5039  					z.EncWr().WriteStr("\"I64\"")
  5040  				} else {
  5041  					r.EncodeString(`I64`)
  5042  				}
  5043  				z.EncWriteMapElemValue()
  5044  				r.EncodeInt(int64(x.TestStrucCommon.I64))
  5045  				z.EncWriteMapElemKey()
  5046  				if z.IsJSONHandle() {
  5047  					z.EncWr().WriteStr("\"I32\"")
  5048  				} else {
  5049  					r.EncodeString(`I32`)
  5050  				}
  5051  				z.EncWriteMapElemValue()
  5052  				r.EncodeInt(int64(x.TestStrucCommon.I32))
  5053  				z.EncWriteMapElemKey()
  5054  				if z.IsJSONHandle() {
  5055  					z.EncWr().WriteStr("\"I16\"")
  5056  				} else {
  5057  					r.EncodeString(`I16`)
  5058  				}
  5059  				z.EncWriteMapElemValue()
  5060  				r.EncodeInt(int64(x.TestStrucCommon.I16))
  5061  				z.EncWriteMapElemKey()
  5062  				if z.IsJSONHandle() {
  5063  					z.EncWr().WriteStr("\"I8\"")
  5064  				} else {
  5065  					r.EncodeString(`I8`)
  5066  				}
  5067  				z.EncWriteMapElemValue()
  5068  				r.EncodeInt(int64(x.TestStrucCommon.I8))
  5069  				z.EncWriteMapElemKey()
  5070  				if z.IsJSONHandle() {
  5071  					z.EncWr().WriteStr("\"I64n\"")
  5072  				} else {
  5073  					r.EncodeString(`I64n`)
  5074  				}
  5075  				z.EncWriteMapElemValue()
  5076  				r.EncodeInt(int64(x.TestStrucCommon.I64n))
  5077  				z.EncWriteMapElemKey()
  5078  				if z.IsJSONHandle() {
  5079  					z.EncWr().WriteStr("\"I32n\"")
  5080  				} else {
  5081  					r.EncodeString(`I32n`)
  5082  				}
  5083  				z.EncWriteMapElemValue()
  5084  				r.EncodeInt(int64(x.TestStrucCommon.I32n))
  5085  				z.EncWriteMapElemKey()
  5086  				if z.IsJSONHandle() {
  5087  					z.EncWr().WriteStr("\"I16n\"")
  5088  				} else {
  5089  					r.EncodeString(`I16n`)
  5090  				}
  5091  				z.EncWriteMapElemValue()
  5092  				r.EncodeInt(int64(x.TestStrucCommon.I16n))
  5093  				z.EncWriteMapElemKey()
  5094  				if z.IsJSONHandle() {
  5095  					z.EncWr().WriteStr("\"I8n\"")
  5096  				} else {
  5097  					r.EncodeString(`I8n`)
  5098  				}
  5099  				z.EncWriteMapElemValue()
  5100  				r.EncodeInt(int64(x.TestStrucCommon.I8n))
  5101  				z.EncWriteMapElemKey()
  5102  				if z.IsJSONHandle() {
  5103  					z.EncWr().WriteStr("\"Ui64\"")
  5104  				} else {
  5105  					r.EncodeString(`Ui64`)
  5106  				}
  5107  				z.EncWriteMapElemValue()
  5108  				r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
  5109  				z.EncWriteMapElemKey()
  5110  				if z.IsJSONHandle() {
  5111  					z.EncWr().WriteStr("\"Ui32\"")
  5112  				} else {
  5113  					r.EncodeString(`Ui32`)
  5114  				}
  5115  				z.EncWriteMapElemValue()
  5116  				r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
  5117  				z.EncWriteMapElemKey()
  5118  				if z.IsJSONHandle() {
  5119  					z.EncWr().WriteStr("\"Ui16\"")
  5120  				} else {
  5121  					r.EncodeString(`Ui16`)
  5122  				}
  5123  				z.EncWriteMapElemValue()
  5124  				r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
  5125  				z.EncWriteMapElemKey()
  5126  				if z.IsJSONHandle() {
  5127  					z.EncWr().WriteStr("\"Ui8\"")
  5128  				} else {
  5129  					r.EncodeString(`Ui8`)
  5130  				}
  5131  				z.EncWriteMapElemValue()
  5132  				r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
  5133  				z.EncWriteMapElemKey()
  5134  				if z.IsJSONHandle() {
  5135  					z.EncWr().WriteStr("\"F64\"")
  5136  				} else {
  5137  					r.EncodeString(`F64`)
  5138  				}
  5139  				z.EncWriteMapElemValue()
  5140  				r.EncodeFloat64(float64(x.TestStrucCommon.F64))
  5141  				z.EncWriteMapElemKey()
  5142  				if z.IsJSONHandle() {
  5143  					z.EncWr().WriteStr("\"F32\"")
  5144  				} else {
  5145  					r.EncodeString(`F32`)
  5146  				}
  5147  				z.EncWriteMapElemValue()
  5148  				r.EncodeFloat32(float32(x.TestStrucCommon.F32))
  5149  				z.EncWriteMapElemKey()
  5150  				if z.IsJSONHandle() {
  5151  					z.EncWr().WriteStr("\"B\"")
  5152  				} else {
  5153  					r.EncodeString(`B`)
  5154  				}
  5155  				z.EncWriteMapElemValue()
  5156  				r.EncodeBool(bool(x.TestStrucCommon.B))
  5157  				z.EncWriteMapElemKey()
  5158  				if z.IsJSONHandle() {
  5159  					z.EncWr().WriteStr("\"By\"")
  5160  				} else {
  5161  					r.EncodeString(`By`)
  5162  				}
  5163  				z.EncWriteMapElemValue()
  5164  				r.EncodeUint(uint64(x.TestStrucCommon.By))
  5165  				z.EncWriteMapElemKey()
  5166  				if z.IsJSONHandle() {
  5167  					z.EncWr().WriteStr("\"Sslice\"")
  5168  				} else {
  5169  					r.EncodeString(`Sslice`)
  5170  				}
  5171  				z.EncWriteMapElemValue()
  5172  				if x.TestStrucCommon.Sslice == nil {
  5173  					r.EncodeNil()
  5174  				} else {
  5175  					z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
  5176  				} // end block: if x.TestStrucCommon.Sslice slice == nil
  5177  				z.EncWriteMapElemKey()
  5178  				if z.IsJSONHandle() {
  5179  					z.EncWr().WriteStr("\"I64slice\"")
  5180  				} else {
  5181  					r.EncodeString(`I64slice`)
  5182  				}
  5183  				z.EncWriteMapElemValue()
  5184  				if x.TestStrucCommon.I64slice == nil {
  5185  					r.EncodeNil()
  5186  				} else {
  5187  					z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
  5188  				} // end block: if x.TestStrucCommon.I64slice slice == nil
  5189  				z.EncWriteMapElemKey()
  5190  				if z.IsJSONHandle() {
  5191  					z.EncWr().WriteStr("\"I32slice\"")
  5192  				} else {
  5193  					r.EncodeString(`I32slice`)
  5194  				}
  5195  				z.EncWriteMapElemValue()
  5196  				if x.TestStrucCommon.I32slice == nil {
  5197  					r.EncodeNil()
  5198  				} else {
  5199  					z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
  5200  				} // end block: if x.TestStrucCommon.I32slice slice == nil
  5201  				z.EncWriteMapElemKey()
  5202  				if z.IsJSONHandle() {
  5203  					z.EncWr().WriteStr("\"Ui64slice\"")
  5204  				} else {
  5205  					r.EncodeString(`Ui64slice`)
  5206  				}
  5207  				z.EncWriteMapElemValue()
  5208  				if x.TestStrucCommon.Ui64slice == nil {
  5209  					r.EncodeNil()
  5210  				} else {
  5211  					z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
  5212  				} // end block: if x.TestStrucCommon.Ui64slice slice == nil
  5213  				z.EncWriteMapElemKey()
  5214  				if z.IsJSONHandle() {
  5215  					z.EncWr().WriteStr("\"Ui8slice\"")
  5216  				} else {
  5217  					r.EncodeString(`Ui8slice`)
  5218  				}
  5219  				z.EncWriteMapElemValue()
  5220  				if x.TestStrucCommon.Ui8slice == nil {
  5221  					r.EncodeNil()
  5222  				} else {
  5223  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
  5224  				} // end block: if x.TestStrucCommon.Ui8slice slice == nil
  5225  				z.EncWriteMapElemKey()
  5226  				if z.IsJSONHandle() {
  5227  					z.EncWr().WriteStr("\"Bslice\"")
  5228  				} else {
  5229  					r.EncodeString(`Bslice`)
  5230  				}
  5231  				z.EncWriteMapElemValue()
  5232  				if x.TestStrucCommon.Bslice == nil {
  5233  					r.EncodeNil()
  5234  				} else {
  5235  					z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
  5236  				} // end block: if x.TestStrucCommon.Bslice slice == nil
  5237  				z.EncWriteMapElemKey()
  5238  				if z.IsJSONHandle() {
  5239  					z.EncWr().WriteStr("\"Byslice\"")
  5240  				} else {
  5241  					r.EncodeString(`Byslice`)
  5242  				}
  5243  				z.EncWriteMapElemValue()
  5244  				if x.TestStrucCommon.Byslice == nil {
  5245  					r.EncodeNil()
  5246  				} else {
  5247  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
  5248  				} // end block: if x.TestStrucCommon.Byslice slice == nil
  5249  				z.EncWriteMapElemKey()
  5250  				if z.IsJSONHandle() {
  5251  					z.EncWr().WriteStr("\"BytesSlice\"")
  5252  				} else {
  5253  					r.EncodeString(`BytesSlice`)
  5254  				}
  5255  				z.EncWriteMapElemValue()
  5256  				if x.TestStrucCommon.BytesSlice == nil {
  5257  					r.EncodeNil()
  5258  				} else {
  5259  					z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
  5260  				} // end block: if x.TestStrucCommon.BytesSlice slice == nil
  5261  				z.EncWriteMapElemKey()
  5262  				if z.IsJSONHandle() {
  5263  					z.EncWr().WriteStr("\"Iptrslice\"")
  5264  				} else {
  5265  					r.EncodeString(`Iptrslice`)
  5266  				}
  5267  				z.EncWriteMapElemValue()
  5268  				if x.TestStrucCommon.Iptrslice == nil {
  5269  					r.EncodeNil()
  5270  				} else {
  5271  					h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
  5272  				} // end block: if x.TestStrucCommon.Iptrslice slice == nil
  5273  				z.EncWriteMapElemKey()
  5274  				if z.IsJSONHandle() {
  5275  					z.EncWr().WriteStr("\"WrapSliceInt64\"")
  5276  				} else {
  5277  					r.EncodeString(`WrapSliceInt64`)
  5278  				}
  5279  				z.EncWriteMapElemValue()
  5280  				if yyxt221 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt221 != nil {
  5281  					z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt221)
  5282  				} else {
  5283  					x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
  5284  				}
  5285  				z.EncWriteMapElemKey()
  5286  				if z.IsJSONHandle() {
  5287  					z.EncWr().WriteStr("\"WrapSliceString\"")
  5288  				} else {
  5289  					r.EncodeString(`WrapSliceString`)
  5290  				}
  5291  				z.EncWriteMapElemValue()
  5292  				if yyxt222 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt222 != nil {
  5293  					z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt222)
  5294  				} else {
  5295  					x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
  5296  				}
  5297  				z.EncWriteMapElemKey()
  5298  				if z.IsJSONHandle() {
  5299  					z.EncWr().WriteStr("\"Msint\"")
  5300  				} else {
  5301  					r.EncodeString(`Msint`)
  5302  				}
  5303  				z.EncWriteMapElemValue()
  5304  				if x.TestStrucCommon.Msint == nil {
  5305  					r.EncodeNil()
  5306  				} else {
  5307  					z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
  5308  				} // end block: if x.TestStrucCommon.Msint map == nil
  5309  				z.EncWriteMapElemKey()
  5310  				if z.IsJSONHandle() {
  5311  					z.EncWr().WriteStr("\"Msbytes\"")
  5312  				} else {
  5313  					r.EncodeString(`Msbytes`)
  5314  				}
  5315  				z.EncWriteMapElemValue()
  5316  				if x.TestStrucCommon.Msbytes == nil {
  5317  					r.EncodeNil()
  5318  				} else {
  5319  					z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
  5320  				} // end block: if x.TestStrucCommon.Msbytes map == nil
  5321  				z.EncWriteMapElemKey()
  5322  				if z.IsJSONHandle() {
  5323  					z.EncWr().WriteStr("\"Simplef\"")
  5324  				} else {
  5325  					r.EncodeString(`Simplef`)
  5326  				}
  5327  				z.EncWriteMapElemValue()
  5328  				yy225 := &x.TestStrucCommon.Simplef
  5329  				if yyxt226 := z.Extension(yy225); yyxt226 != nil {
  5330  					z.EncExtension(yy225, yyxt226)
  5331  				} else {
  5332  					yy225.CodecEncodeSelf(e)
  5333  				}
  5334  				z.EncWriteMapElemKey()
  5335  				if z.IsJSONHandle() {
  5336  					z.EncWr().WriteStr("\"SstrUi64T\"")
  5337  				} else {
  5338  					r.EncodeString(`SstrUi64T`)
  5339  				}
  5340  				z.EncWriteMapElemValue()
  5341  				if x.TestStrucCommon.SstrUi64T == nil {
  5342  					r.EncodeNil()
  5343  				} else {
  5344  					h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
  5345  				} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
  5346  				z.EncWriteMapElemKey()
  5347  				if z.IsJSONHandle() {
  5348  					z.EncWr().WriteStr("\"MstrUi64T\"")
  5349  				} else {
  5350  					r.EncodeString(`MstrUi64T`)
  5351  				}
  5352  				z.EncWriteMapElemValue()
  5353  				if x.TestStrucCommon.MstrUi64T == nil {
  5354  					r.EncodeNil()
  5355  				} else {
  5356  					h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
  5357  				} // end block: if x.TestStrucCommon.MstrUi64T map == nil
  5358  				z.EncWriteMapElemKey()
  5359  				if z.IsJSONHandle() {
  5360  					z.EncWr().WriteStr("\"AS\"")
  5361  				} else {
  5362  					r.EncodeString(`AS`)
  5363  				}
  5364  				z.EncWriteMapElemValue()
  5365  				r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
  5366  				z.EncWriteMapElemKey()
  5367  				if z.IsJSONHandle() {
  5368  					z.EncWr().WriteStr("\"AI64\"")
  5369  				} else {
  5370  					r.EncodeString(`AI64`)
  5371  				}
  5372  				z.EncWriteMapElemValue()
  5373  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
  5374  				z.EncWriteMapElemKey()
  5375  				if z.IsJSONHandle() {
  5376  					z.EncWr().WriteStr("\"AI16\"")
  5377  				} else {
  5378  					r.EncodeString(`AI16`)
  5379  				}
  5380  				z.EncWriteMapElemValue()
  5381  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
  5382  				z.EncWriteMapElemKey()
  5383  				if z.IsJSONHandle() {
  5384  					z.EncWr().WriteStr("\"AUi64\"")
  5385  				} else {
  5386  					r.EncodeString(`AUi64`)
  5387  				}
  5388  				z.EncWriteMapElemValue()
  5389  				r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
  5390  				z.EncWriteMapElemKey()
  5391  				if z.IsJSONHandle() {
  5392  					z.EncWr().WriteStr("\"ASslice\"")
  5393  				} else {
  5394  					r.EncodeString(`ASslice`)
  5395  				}
  5396  				z.EncWriteMapElemValue()
  5397  				if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
  5398  					r.EncodeNil()
  5399  				} else {
  5400  					z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
  5401  				} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
  5402  				z.EncWriteMapElemKey()
  5403  				if z.IsJSONHandle() {
  5404  					z.EncWr().WriteStr("\"AI64slice\"")
  5405  				} else {
  5406  					r.EncodeString(`AI64slice`)
  5407  				}
  5408  				z.EncWriteMapElemValue()
  5409  				if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
  5410  					r.EncodeNil()
  5411  				} else {
  5412  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
  5413  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
  5414  				z.EncWriteMapElemKey()
  5415  				if z.IsJSONHandle() {
  5416  					z.EncWr().WriteStr("\"AUi64slice\"")
  5417  				} else {
  5418  					r.EncodeString(`AUi64slice`)
  5419  				}
  5420  				z.EncWriteMapElemValue()
  5421  				if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
  5422  					r.EncodeNil()
  5423  				} else {
  5424  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
  5425  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
  5426  				z.EncWriteMapElemKey()
  5427  				if z.IsJSONHandle() {
  5428  					z.EncWr().WriteStr("\"AF64slice\"")
  5429  				} else {
  5430  					r.EncodeString(`AF64slice`)
  5431  				}
  5432  				z.EncWriteMapElemValue()
  5433  				if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
  5434  					r.EncodeNil()
  5435  				} else {
  5436  					z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
  5437  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
  5438  				z.EncWriteMapElemKey()
  5439  				if z.IsJSONHandle() {
  5440  					z.EncWr().WriteStr("\"AF32slice\"")
  5441  				} else {
  5442  					r.EncodeString(`AF32slice`)
  5443  				}
  5444  				z.EncWriteMapElemValue()
  5445  				if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
  5446  					r.EncodeNil()
  5447  				} else {
  5448  					z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
  5449  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
  5450  				z.EncWriteMapElemKey()
  5451  				if z.IsJSONHandle() {
  5452  					z.EncWr().WriteStr("\"AMSS\"")
  5453  				} else {
  5454  					r.EncodeString(`AMSS`)
  5455  				}
  5456  				z.EncWriteMapElemValue()
  5457  				if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
  5458  					r.EncodeNil()
  5459  				} else {
  5460  					z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
  5461  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
  5462  				z.EncWriteMapElemKey()
  5463  				if z.IsJSONHandle() {
  5464  					z.EncWr().WriteStr("\"AMSU64\"")
  5465  				} else {
  5466  					r.EncodeString(`AMSU64`)
  5467  				}
  5468  				z.EncWriteMapElemValue()
  5469  				if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
  5470  					r.EncodeNil()
  5471  				} else {
  5472  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
  5473  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
  5474  				z.EncWriteMapElemKey()
  5475  				if z.IsJSONHandle() {
  5476  					z.EncWr().WriteStr("\"AI64arr8\"")
  5477  				} else {
  5478  					r.EncodeString(`AI64arr8`)
  5479  				}
  5480  				z.EncWriteMapElemValue()
  5481  				yy240 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
  5482  				h.encArray8int64((*[8]int64)(yy240), e)
  5483  				z.EncWriteMapElemKey()
  5484  				if z.IsJSONHandle() {
  5485  					z.EncWr().WriteStr("\"AI64arr0\"")
  5486  				} else {
  5487  					r.EncodeString(`AI64arr0`)
  5488  				}
  5489  				z.EncWriteMapElemValue()
  5490  				yy242 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
  5491  				h.encArray0int64((*[0]int64)(yy242), e)
  5492  				z.EncWriteMapElemKey()
  5493  				if z.IsJSONHandle() {
  5494  					z.EncWr().WriteStr("\"AI64slice0\"")
  5495  				} else {
  5496  					r.EncodeString(`AI64slice0`)
  5497  				}
  5498  				z.EncWriteMapElemValue()
  5499  				if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
  5500  					r.EncodeNil()
  5501  				} else {
  5502  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
  5503  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
  5504  				z.EncWriteMapElemKey()
  5505  				if z.IsJSONHandle() {
  5506  					z.EncWr().WriteStr("\"AUi64sliceN\"")
  5507  				} else {
  5508  					r.EncodeString(`AUi64sliceN`)
  5509  				}
  5510  				z.EncWriteMapElemValue()
  5511  				if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
  5512  					r.EncodeNil()
  5513  				} else {
  5514  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
  5515  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
  5516  				z.EncWriteMapElemKey()
  5517  				if z.IsJSONHandle() {
  5518  					z.EncWr().WriteStr("\"AMSU64N\"")
  5519  				} else {
  5520  					r.EncodeString(`AMSU64N`)
  5521  				}
  5522  				z.EncWriteMapElemValue()
  5523  				if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
  5524  					r.EncodeNil()
  5525  				} else {
  5526  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
  5527  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
  5528  				z.EncWriteMapElemKey()
  5529  				if z.IsJSONHandle() {
  5530  					z.EncWr().WriteStr("\"AMSU64E\"")
  5531  				} else {
  5532  					r.EncodeString(`AMSU64E`)
  5533  				}
  5534  				z.EncWriteMapElemValue()
  5535  				if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
  5536  					r.EncodeNil()
  5537  				} else {
  5538  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
  5539  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
  5540  				z.EncWriteMapElemKey()
  5541  				if z.IsJSONHandle() {
  5542  					z.EncWr().WriteStr("\"NotAnon\"")
  5543  				} else {
  5544  					r.EncodeString(`NotAnon`)
  5545  				}
  5546  				z.EncWriteMapElemValue()
  5547  				yy248 := &x.TestStrucCommon.NotAnon
  5548  				if yyxt249 := z.Extension(yy248); yyxt249 != nil {
  5549  					z.EncExtension(yy248, yyxt249)
  5550  				} else {
  5551  					yy248.CodecEncodeSelf(e)
  5552  				}
  5553  				z.EncWriteMapElemKey()
  5554  				if z.IsJSONHandle() {
  5555  					z.EncWr().WriteStr("\"P\"")
  5556  				} else {
  5557  					r.EncodeString(`P`)
  5558  				}
  5559  				z.EncWriteMapElemValue()
  5560  				if yyn54 {
  5561  					r.EncodeNil()
  5562  				} else {
  5563  					yy250 := *x.TestStrucCommon.AnonInTestStrucSlim.P
  5564  					r.EncodeString(string(yy250))
  5565  				}
  5566  				z.EncWriteMapElemKey()
  5567  				if z.IsJSONHandle() {
  5568  					z.EncWr().WriteStr("\"NotAnonSlim\"")
  5569  				} else {
  5570  					r.EncodeString(`NotAnonSlim`)
  5571  				}
  5572  				z.EncWriteMapElemValue()
  5573  				if yyn55 {
  5574  					r.EncodeNil()
  5575  				} else {
  5576  					if yyxt252 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt252 != nil {
  5577  						z.EncExtension(x.TestStrucCommon.NotAnonSlim, yyxt252)
  5578  					} else {
  5579  						x.TestStrucCommon.NotAnonSlim.CodecEncodeSelf(e)
  5580  					}
  5581  				}
  5582  				z.EncWriteMapElemKey()
  5583  				if z.IsJSONHandle() {
  5584  					z.EncWr().WriteStr("\"Nmap\"")
  5585  				} else {
  5586  					r.EncodeString(`Nmap`)
  5587  				}
  5588  				z.EncWriteMapElemValue()
  5589  				if x.TestStrucCommon.Nmap == nil {
  5590  					r.EncodeNil()
  5591  				} else {
  5592  					z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
  5593  				} // end block: if x.TestStrucCommon.Nmap map == nil
  5594  				z.EncWriteMapElemKey()
  5595  				if z.IsJSONHandle() {
  5596  					z.EncWr().WriteStr("\"Nslice\"")
  5597  				} else {
  5598  					r.EncodeString(`Nslice`)
  5599  				}
  5600  				z.EncWriteMapElemValue()
  5601  				if x.TestStrucCommon.Nslice == nil {
  5602  					r.EncodeNil()
  5603  				} else {
  5604  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
  5605  				} // end block: if x.TestStrucCommon.Nslice slice == nil
  5606  				z.EncWriteMapElemKey()
  5607  				if z.IsJSONHandle() {
  5608  					z.EncWr().WriteStr("\"Nint64\"")
  5609  				} else {
  5610  					r.EncodeString(`Nint64`)
  5611  				}
  5612  				z.EncWriteMapElemValue()
  5613  				if yyn58 {
  5614  					r.EncodeNil()
  5615  				} else {
  5616  					yy255 := *x.TestStrucCommon.Nint64
  5617  					r.EncodeInt(int64(yy255))
  5618  				}
  5619  				z.EncWriteMapElemKey()
  5620  				if z.IsJSONHandle() {
  5621  					z.EncWr().WriteStr("\"Mtsptr\"")
  5622  				} else {
  5623  					r.EncodeString(`Mtsptr`)
  5624  				}
  5625  				z.EncWriteMapElemValue()
  5626  				if x.Mtsptr == nil {
  5627  					r.EncodeNil()
  5628  				} else {
  5629  					h.encMapstringPtrtoTestStruc((map[string]*TestStruc)(x.Mtsptr), e)
  5630  				} // end block: if x.Mtsptr map == nil
  5631  				z.EncWriteMapElemKey()
  5632  				if z.IsJSONHandle() {
  5633  					z.EncWr().WriteStr("\"Mts\"")
  5634  				} else {
  5635  					r.EncodeString(`Mts`)
  5636  				}
  5637  				z.EncWriteMapElemValue()
  5638  				if x.Mts == nil {
  5639  					r.EncodeNil()
  5640  				} else {
  5641  					h.encMapstringTestStruc((map[string]TestStruc)(x.Mts), e)
  5642  				} // end block: if x.Mts map == nil
  5643  				z.EncWriteMapElemKey()
  5644  				if z.IsJSONHandle() {
  5645  					z.EncWr().WriteStr("\"Its\"")
  5646  				} else {
  5647  					r.EncodeString(`Its`)
  5648  				}
  5649  				z.EncWriteMapElemValue()
  5650  				if x.Its == nil {
  5651  					r.EncodeNil()
  5652  				} else {
  5653  					h.encSlicePtrtoTestStruc(([]*TestStruc)(x.Its), e)
  5654  				} // end block: if x.Its slice == nil
  5655  				z.EncWriteMapElemKey()
  5656  				if z.IsJSONHandle() {
  5657  					z.EncWr().WriteStr("\"Nteststruc\"")
  5658  				} else {
  5659  					r.EncodeString(`Nteststruc`)
  5660  				}
  5661  				z.EncWriteMapElemValue()
  5662  				if yyn62 {
  5663  					r.EncodeNil()
  5664  				} else {
  5665  					if yyxt260 := z.Extension(x.Nteststruc); yyxt260 != nil {
  5666  						z.EncExtension(x.Nteststruc, yyxt260)
  5667  					} else {
  5668  						x.Nteststruc.CodecEncodeSelf(e)
  5669  					}
  5670  				}
  5671  			}
  5672  			z.EncWriteMapEnd()
  5673  		}
  5674  	}
  5675  }
  5676  
  5677  func (x *TestStruc) CodecDecodeSelf(d *Decoder) {
  5678  	var h codecSelfer19780
  5679  	z, r := GenHelper().Decoder(d)
  5680  	_, _, _ = h, z, r
  5681  	yyct2 := r.ContainerType()
  5682  	if yyct2 == codecSelferValueTypeNil19780 {
  5683  		*(x) = TestStruc{}
  5684  	} else if yyct2 == codecSelferValueTypeMap19780 {
  5685  		yyl2 := z.DecReadMapStart()
  5686  		if yyl2 == 0 {
  5687  		} else {
  5688  			x.codecDecodeSelfFromMap(yyl2, d)
  5689  		}
  5690  		z.DecReadMapEnd()
  5691  	} else if yyct2 == codecSelferValueTypeArray19780 {
  5692  		yyl2 := z.DecReadArrayStart()
  5693  		if yyl2 != 0 {
  5694  			x.codecDecodeSelfFromArray(yyl2, d)
  5695  		}
  5696  		z.DecReadArrayEnd()
  5697  	} else {
  5698  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  5699  	}
  5700  }
  5701  
  5702  func (x *TestStruc) codecDecodeSelfFromMap(l int, d *Decoder) {
  5703  	var h codecSelfer19780
  5704  	z, r := GenHelper().Decoder(d)
  5705  	_, _, _ = h, z, r
  5706  	var yyhl3 bool = l >= 0
  5707  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  5708  		z.DecReadMapElemKey()
  5709  		yys3 := r.DecodeStringAsBytes()
  5710  		z.DecReadMapElemValue()
  5711  		switch string(yys3) {
  5712  		case "S":
  5713  			x.TestStrucCommon.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  5714  		case "I64":
  5715  			x.TestStrucCommon.I64 = (int64)(r.DecodeInt64())
  5716  		case "I32":
  5717  			x.TestStrucCommon.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  5718  		case "I16":
  5719  			x.TestStrucCommon.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  5720  		case "I8":
  5721  			x.TestStrucCommon.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  5722  		case "I64n":
  5723  			x.TestStrucCommon.I64n = (int64)(r.DecodeInt64())
  5724  		case "I32n":
  5725  			x.TestStrucCommon.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  5726  		case "I16n":
  5727  			x.TestStrucCommon.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  5728  		case "I8n":
  5729  			x.TestStrucCommon.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  5730  		case "Ui64":
  5731  			x.TestStrucCommon.Ui64 = (uint64)(r.DecodeUint64())
  5732  		case "Ui32":
  5733  			x.TestStrucCommon.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  5734  		case "Ui16":
  5735  			x.TestStrucCommon.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
  5736  		case "Ui8":
  5737  			x.TestStrucCommon.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  5738  		case "F64":
  5739  			x.TestStrucCommon.F64 = (float64)(r.DecodeFloat64())
  5740  		case "F32":
  5741  			x.TestStrucCommon.F32 = (float32)(z.DecDecodeFloat32())
  5742  		case "B":
  5743  			x.TestStrucCommon.B = (bool)(r.DecodeBool())
  5744  		case "By":
  5745  			x.TestStrucCommon.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  5746  		case "Sslice":
  5747  			z.F.DecSliceStringX(&x.TestStrucCommon.Sslice, d)
  5748  		case "I64slice":
  5749  			z.F.DecSliceInt64X(&x.TestStrucCommon.I64slice, d)
  5750  		case "I32slice":
  5751  			z.F.DecSliceInt32X(&x.TestStrucCommon.I32slice, d)
  5752  		case "Ui64slice":
  5753  			z.F.DecSliceUint64X(&x.TestStrucCommon.Ui64slice, d)
  5754  		case "Ui8slice":
  5755  			x.TestStrucCommon.Ui8slice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Ui8slice))
  5756  		case "Bslice":
  5757  			z.F.DecSliceBoolX(&x.TestStrucCommon.Bslice, d)
  5758  		case "Byslice":
  5759  			x.TestStrucCommon.Byslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Byslice))
  5760  		case "BytesSlice":
  5761  			z.F.DecSliceBytesX(&x.TestStrucCommon.BytesSlice, d)
  5762  		case "Iptrslice":
  5763  			h.decSlicePtrtoint64((*[]*int64)(&x.TestStrucCommon.Iptrslice), d)
  5764  		case "WrapSliceInt64":
  5765  			if yyxt40 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt40 != nil {
  5766  				z.DecExtension(&x.TestStrucCommon.WrapSliceInt64, yyxt40)
  5767  			} else {
  5768  				x.TestStrucCommon.WrapSliceInt64.CodecDecodeSelf(d)
  5769  			}
  5770  		case "WrapSliceString":
  5771  			if yyxt42 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt42 != nil {
  5772  				z.DecExtension(&x.TestStrucCommon.WrapSliceString, yyxt42)
  5773  			} else {
  5774  				x.TestStrucCommon.WrapSliceString.CodecDecodeSelf(d)
  5775  			}
  5776  		case "Msint":
  5777  			z.F.DecMapStringIntX(&x.TestStrucCommon.Msint, d)
  5778  		case "Msbytes":
  5779  			z.F.DecMapStringBytesX(&x.TestStrucCommon.Msbytes, d)
  5780  		case "Simplef":
  5781  			if yyxt48 := z.Extension(x.TestStrucCommon.Simplef); yyxt48 != nil {
  5782  				z.DecExtension(&x.TestStrucCommon.Simplef, yyxt48)
  5783  			} else {
  5784  				x.TestStrucCommon.Simplef.CodecDecodeSelf(d)
  5785  			}
  5786  		case "SstrUi64T":
  5787  			h.decSlicestringUint64T((*[]stringUint64T)(&x.TestStrucCommon.SstrUi64T), d)
  5788  		case "MstrUi64T":
  5789  			h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.TestStrucCommon.MstrUi64T), d)
  5790  		case "AS":
  5791  			x.TestStrucCommon.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  5792  		case "AI64":
  5793  			x.TestStrucCommon.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
  5794  		case "AI16":
  5795  			x.TestStrucCommon.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  5796  		case "AUi64":
  5797  			x.TestStrucCommon.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
  5798  		case "ASslice":
  5799  			z.F.DecSliceStringX(&x.TestStrucCommon.AnonInTestStruc.ASslice, d)
  5800  		case "AI64slice":
  5801  			z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice, d)
  5802  		case "AUi64slice":
  5803  			z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64slice, d)
  5804  		case "AF64slice":
  5805  			z.F.DecSliceFloat64X(&x.TestStrucCommon.AnonInTestStruc.AF64slice, d)
  5806  		case "AF32slice":
  5807  			z.F.DecSliceFloat32X(&x.TestStrucCommon.AnonInTestStruc.AF32slice, d)
  5808  		case "AMSS":
  5809  			z.F.DecMapStringStringX(&x.TestStrucCommon.AnonInTestStruc.AMSS, d)
  5810  		case "AMSU64":
  5811  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64, d)
  5812  		case "AI64arr8":
  5813  			h.decArray8int64((*[8]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr8), d)
  5814  		case "AI64arr0":
  5815  			h.decArray0int64((*[0]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr0), d)
  5816  		case "AI64slice0":
  5817  			z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice0, d)
  5818  		case "AUi64sliceN":
  5819  			z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, d)
  5820  		case "AMSU64N":
  5821  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64N, d)
  5822  		case "AMSU64E":
  5823  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64E, d)
  5824  		case "NotAnon":
  5825  			if yyxt84 := z.Extension(x.TestStrucCommon.NotAnon); yyxt84 != nil {
  5826  				z.DecExtension(&x.TestStrucCommon.NotAnon, yyxt84)
  5827  			} else {
  5828  				x.TestStrucCommon.NotAnon.CodecDecodeSelf(d)
  5829  			}
  5830  		case "P":
  5831  			if r.TryNil() {
  5832  				if x.TestStrucCommon.AnonInTestStrucSlim != nil && x.TestStrucCommon.AnonInTestStrucSlim.P != nil { // remove the if-true
  5833  					x.TestStrucCommon.AnonInTestStrucSlim.P = nil
  5834  				}
  5835  			} else {
  5836  				if x.TestStrucCommon.AnonInTestStrucSlim == nil {
  5837  					x.TestStrucCommon.AnonInTestStrucSlim = new(AnonInTestStrucSlim)
  5838  				}
  5839  				if x.TestStrucCommon.AnonInTestStrucSlim.P == nil {
  5840  					x.TestStrucCommon.AnonInTestStrucSlim.P = new(string)
  5841  				}
  5842  				*x.TestStrucCommon.AnonInTestStrucSlim.P = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  5843  			}
  5844  		case "NotAnonSlim":
  5845  			if r.TryNil() {
  5846  				if x.TestStrucCommon.NotAnonSlim != nil { // remove the if-true
  5847  					x.TestStrucCommon.NotAnonSlim = nil
  5848  				}
  5849  			} else {
  5850  				if x.TestStrucCommon.NotAnonSlim == nil {
  5851  					x.TestStrucCommon.NotAnonSlim = new(AnonInTestStrucSlim)
  5852  				}
  5853  				if yyxt88 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt88 != nil {
  5854  					z.DecExtension(x.TestStrucCommon.NotAnonSlim, yyxt88)
  5855  				} else {
  5856  					x.TestStrucCommon.NotAnonSlim.CodecDecodeSelf(d)
  5857  				}
  5858  			}
  5859  		case "Nmap":
  5860  			z.F.DecMapStringBoolX(&x.TestStrucCommon.Nmap, d)
  5861  		case "Nslice":
  5862  			x.TestStrucCommon.Nslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Nslice))
  5863  		case "Nint64":
  5864  			if r.TryNil() {
  5865  				if x.TestStrucCommon.Nint64 != nil { // remove the if-true
  5866  					x.TestStrucCommon.Nint64 = nil
  5867  				}
  5868  			} else {
  5869  				if x.TestStrucCommon.Nint64 == nil {
  5870  					x.TestStrucCommon.Nint64 = new(int64)
  5871  				}
  5872  				*x.TestStrucCommon.Nint64 = (int64)(r.DecodeInt64())
  5873  			}
  5874  		case "Mtsptr":
  5875  			h.decMapstringPtrtoTestStruc((*map[string]*TestStruc)(&x.Mtsptr), d)
  5876  		case "Mts":
  5877  			h.decMapstringTestStruc((*map[string]TestStruc)(&x.Mts), d)
  5878  		case "Its":
  5879  			h.decSlicePtrtoTestStruc((*[]*TestStruc)(&x.Its), d)
  5880  		case "Nteststruc":
  5881  			if r.TryNil() {
  5882  				if x.Nteststruc != nil { // remove the if-true
  5883  					x.Nteststruc = nil
  5884  				}
  5885  			} else {
  5886  				if x.Nteststruc == nil {
  5887  					x.Nteststruc = new(TestStruc)
  5888  				}
  5889  				if yyxt102 := z.Extension(x.Nteststruc); yyxt102 != nil {
  5890  					z.DecExtension(x.Nteststruc, yyxt102)
  5891  				} else {
  5892  					x.Nteststruc.CodecDecodeSelf(d)
  5893  				}
  5894  			}
  5895  		default:
  5896  			z.DecStructFieldNotFound(-1, string(yys3))
  5897  		} // end switch yys3
  5898  	} // end for yyj3
  5899  }
  5900  
  5901  func (x *TestStruc) codecDecodeSelfFromArray(l int, d *Decoder) {
  5902  	var h codecSelfer19780
  5903  	z, r := GenHelper().Decoder(d)
  5904  	_, _, _ = h, z, r
  5905  	var yyj103 int
  5906  	var yyb103 bool
  5907  	var yyhl103 bool = l >= 0
  5908  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5909  	if yyb103 {
  5910  		z.DecReadArrayEnd()
  5911  		return
  5912  	}
  5913  	z.DecReadArrayElem()
  5914  	x.TestStrucCommon.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  5915  	yyj103++
  5916  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5917  	if yyb103 {
  5918  		z.DecReadArrayEnd()
  5919  		return
  5920  	}
  5921  	z.DecReadArrayElem()
  5922  	x.TestStrucCommon.I64 = (int64)(r.DecodeInt64())
  5923  	yyj103++
  5924  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5925  	if yyb103 {
  5926  		z.DecReadArrayEnd()
  5927  		return
  5928  	}
  5929  	z.DecReadArrayElem()
  5930  	x.TestStrucCommon.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  5931  	yyj103++
  5932  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5933  	if yyb103 {
  5934  		z.DecReadArrayEnd()
  5935  		return
  5936  	}
  5937  	z.DecReadArrayElem()
  5938  	x.TestStrucCommon.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  5939  	yyj103++
  5940  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5941  	if yyb103 {
  5942  		z.DecReadArrayEnd()
  5943  		return
  5944  	}
  5945  	z.DecReadArrayElem()
  5946  	x.TestStrucCommon.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  5947  	yyj103++
  5948  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5949  	if yyb103 {
  5950  		z.DecReadArrayEnd()
  5951  		return
  5952  	}
  5953  	z.DecReadArrayElem()
  5954  	x.TestStrucCommon.I64n = (int64)(r.DecodeInt64())
  5955  	yyj103++
  5956  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5957  	if yyb103 {
  5958  		z.DecReadArrayEnd()
  5959  		return
  5960  	}
  5961  	z.DecReadArrayElem()
  5962  	x.TestStrucCommon.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
  5963  	yyj103++
  5964  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5965  	if yyb103 {
  5966  		z.DecReadArrayEnd()
  5967  		return
  5968  	}
  5969  	z.DecReadArrayElem()
  5970  	x.TestStrucCommon.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  5971  	yyj103++
  5972  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5973  	if yyb103 {
  5974  		z.DecReadArrayEnd()
  5975  		return
  5976  	}
  5977  	z.DecReadArrayElem()
  5978  	x.TestStrucCommon.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
  5979  	yyj103++
  5980  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5981  	if yyb103 {
  5982  		z.DecReadArrayEnd()
  5983  		return
  5984  	}
  5985  	z.DecReadArrayElem()
  5986  	x.TestStrucCommon.Ui64 = (uint64)(r.DecodeUint64())
  5987  	yyj103++
  5988  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5989  	if yyb103 {
  5990  		z.DecReadArrayEnd()
  5991  		return
  5992  	}
  5993  	z.DecReadArrayElem()
  5994  	x.TestStrucCommon.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  5995  	yyj103++
  5996  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  5997  	if yyb103 {
  5998  		z.DecReadArrayEnd()
  5999  		return
  6000  	}
  6001  	z.DecReadArrayElem()
  6002  	x.TestStrucCommon.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
  6003  	yyj103++
  6004  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6005  	if yyb103 {
  6006  		z.DecReadArrayEnd()
  6007  		return
  6008  	}
  6009  	z.DecReadArrayElem()
  6010  	x.TestStrucCommon.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  6011  	yyj103++
  6012  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6013  	if yyb103 {
  6014  		z.DecReadArrayEnd()
  6015  		return
  6016  	}
  6017  	z.DecReadArrayElem()
  6018  	x.TestStrucCommon.F64 = (float64)(r.DecodeFloat64())
  6019  	yyj103++
  6020  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6021  	if yyb103 {
  6022  		z.DecReadArrayEnd()
  6023  		return
  6024  	}
  6025  	z.DecReadArrayElem()
  6026  	x.TestStrucCommon.F32 = (float32)(z.DecDecodeFloat32())
  6027  	yyj103++
  6028  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6029  	if yyb103 {
  6030  		z.DecReadArrayEnd()
  6031  		return
  6032  	}
  6033  	z.DecReadArrayElem()
  6034  	x.TestStrucCommon.B = (bool)(r.DecodeBool())
  6035  	yyj103++
  6036  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6037  	if yyb103 {
  6038  		z.DecReadArrayEnd()
  6039  		return
  6040  	}
  6041  	z.DecReadArrayElem()
  6042  	x.TestStrucCommon.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
  6043  	yyj103++
  6044  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6045  	if yyb103 {
  6046  		z.DecReadArrayEnd()
  6047  		return
  6048  	}
  6049  	z.DecReadArrayElem()
  6050  	z.F.DecSliceStringX(&x.TestStrucCommon.Sslice, d)
  6051  	yyj103++
  6052  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6053  	if yyb103 {
  6054  		z.DecReadArrayEnd()
  6055  		return
  6056  	}
  6057  	z.DecReadArrayElem()
  6058  	z.F.DecSliceInt64X(&x.TestStrucCommon.I64slice, d)
  6059  	yyj103++
  6060  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6061  	if yyb103 {
  6062  		z.DecReadArrayEnd()
  6063  		return
  6064  	}
  6065  	z.DecReadArrayElem()
  6066  	z.F.DecSliceInt32X(&x.TestStrucCommon.I32slice, d)
  6067  	yyj103++
  6068  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6069  	if yyb103 {
  6070  		z.DecReadArrayEnd()
  6071  		return
  6072  	}
  6073  	z.DecReadArrayElem()
  6074  	z.F.DecSliceUint64X(&x.TestStrucCommon.Ui64slice, d)
  6075  	yyj103++
  6076  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6077  	if yyb103 {
  6078  		z.DecReadArrayEnd()
  6079  		return
  6080  	}
  6081  	z.DecReadArrayElem()
  6082  	x.TestStrucCommon.Ui8slice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Ui8slice))
  6083  	yyj103++
  6084  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6085  	if yyb103 {
  6086  		z.DecReadArrayEnd()
  6087  		return
  6088  	}
  6089  	z.DecReadArrayElem()
  6090  	z.F.DecSliceBoolX(&x.TestStrucCommon.Bslice, d)
  6091  	yyj103++
  6092  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6093  	if yyb103 {
  6094  		z.DecReadArrayEnd()
  6095  		return
  6096  	}
  6097  	z.DecReadArrayElem()
  6098  	x.TestStrucCommon.Byslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Byslice))
  6099  	yyj103++
  6100  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6101  	if yyb103 {
  6102  		z.DecReadArrayEnd()
  6103  		return
  6104  	}
  6105  	z.DecReadArrayElem()
  6106  	z.F.DecSliceBytesX(&x.TestStrucCommon.BytesSlice, d)
  6107  	yyj103++
  6108  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6109  	if yyb103 {
  6110  		z.DecReadArrayEnd()
  6111  		return
  6112  	}
  6113  	z.DecReadArrayElem()
  6114  	h.decSlicePtrtoint64((*[]*int64)(&x.TestStrucCommon.Iptrslice), d)
  6115  	yyj103++
  6116  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6117  	if yyb103 {
  6118  		z.DecReadArrayEnd()
  6119  		return
  6120  	}
  6121  	z.DecReadArrayElem()
  6122  	if yyxt140 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt140 != nil {
  6123  		z.DecExtension(&x.TestStrucCommon.WrapSliceInt64, yyxt140)
  6124  	} else {
  6125  		x.TestStrucCommon.WrapSliceInt64.CodecDecodeSelf(d)
  6126  	}
  6127  	yyj103++
  6128  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6129  	if yyb103 {
  6130  		z.DecReadArrayEnd()
  6131  		return
  6132  	}
  6133  	z.DecReadArrayElem()
  6134  	if yyxt142 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt142 != nil {
  6135  		z.DecExtension(&x.TestStrucCommon.WrapSliceString, yyxt142)
  6136  	} else {
  6137  		x.TestStrucCommon.WrapSliceString.CodecDecodeSelf(d)
  6138  	}
  6139  	yyj103++
  6140  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6141  	if yyb103 {
  6142  		z.DecReadArrayEnd()
  6143  		return
  6144  	}
  6145  	z.DecReadArrayElem()
  6146  	z.F.DecMapStringIntX(&x.TestStrucCommon.Msint, d)
  6147  	yyj103++
  6148  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6149  	if yyb103 {
  6150  		z.DecReadArrayEnd()
  6151  		return
  6152  	}
  6153  	z.DecReadArrayElem()
  6154  	z.F.DecMapStringBytesX(&x.TestStrucCommon.Msbytes, d)
  6155  	yyj103++
  6156  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6157  	if yyb103 {
  6158  		z.DecReadArrayEnd()
  6159  		return
  6160  	}
  6161  	z.DecReadArrayElem()
  6162  	if yyxt148 := z.Extension(x.TestStrucCommon.Simplef); yyxt148 != nil {
  6163  		z.DecExtension(&x.TestStrucCommon.Simplef, yyxt148)
  6164  	} else {
  6165  		x.TestStrucCommon.Simplef.CodecDecodeSelf(d)
  6166  	}
  6167  	yyj103++
  6168  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6169  	if yyb103 {
  6170  		z.DecReadArrayEnd()
  6171  		return
  6172  	}
  6173  	z.DecReadArrayElem()
  6174  	h.decSlicestringUint64T((*[]stringUint64T)(&x.TestStrucCommon.SstrUi64T), d)
  6175  	yyj103++
  6176  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6177  	if yyb103 {
  6178  		z.DecReadArrayEnd()
  6179  		return
  6180  	}
  6181  	z.DecReadArrayElem()
  6182  	h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.TestStrucCommon.MstrUi64T), d)
  6183  	yyj103++
  6184  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6185  	if yyb103 {
  6186  		z.DecReadArrayEnd()
  6187  		return
  6188  	}
  6189  	z.DecReadArrayElem()
  6190  	x.TestStrucCommon.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  6191  	yyj103++
  6192  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6193  	if yyb103 {
  6194  		z.DecReadArrayEnd()
  6195  		return
  6196  	}
  6197  	z.DecReadArrayElem()
  6198  	x.TestStrucCommon.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
  6199  	yyj103++
  6200  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6201  	if yyb103 {
  6202  		z.DecReadArrayEnd()
  6203  		return
  6204  	}
  6205  	z.DecReadArrayElem()
  6206  	x.TestStrucCommon.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
  6207  	yyj103++
  6208  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6209  	if yyb103 {
  6210  		z.DecReadArrayEnd()
  6211  		return
  6212  	}
  6213  	z.DecReadArrayElem()
  6214  	x.TestStrucCommon.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
  6215  	yyj103++
  6216  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6217  	if yyb103 {
  6218  		z.DecReadArrayEnd()
  6219  		return
  6220  	}
  6221  	z.DecReadArrayElem()
  6222  	z.F.DecSliceStringX(&x.TestStrucCommon.AnonInTestStruc.ASslice, d)
  6223  	yyj103++
  6224  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6225  	if yyb103 {
  6226  		z.DecReadArrayEnd()
  6227  		return
  6228  	}
  6229  	z.DecReadArrayElem()
  6230  	z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice, d)
  6231  	yyj103++
  6232  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6233  	if yyb103 {
  6234  		z.DecReadArrayEnd()
  6235  		return
  6236  	}
  6237  	z.DecReadArrayElem()
  6238  	z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64slice, d)
  6239  	yyj103++
  6240  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6241  	if yyb103 {
  6242  		z.DecReadArrayEnd()
  6243  		return
  6244  	}
  6245  	z.DecReadArrayElem()
  6246  	z.F.DecSliceFloat64X(&x.TestStrucCommon.AnonInTestStruc.AF64slice, d)
  6247  	yyj103++
  6248  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6249  	if yyb103 {
  6250  		z.DecReadArrayEnd()
  6251  		return
  6252  	}
  6253  	z.DecReadArrayElem()
  6254  	z.F.DecSliceFloat32X(&x.TestStrucCommon.AnonInTestStruc.AF32slice, d)
  6255  	yyj103++
  6256  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6257  	if yyb103 {
  6258  		z.DecReadArrayEnd()
  6259  		return
  6260  	}
  6261  	z.DecReadArrayElem()
  6262  	z.F.DecMapStringStringX(&x.TestStrucCommon.AnonInTestStruc.AMSS, d)
  6263  	yyj103++
  6264  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6265  	if yyb103 {
  6266  		z.DecReadArrayEnd()
  6267  		return
  6268  	}
  6269  	z.DecReadArrayElem()
  6270  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64, d)
  6271  	yyj103++
  6272  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6273  	if yyb103 {
  6274  		z.DecReadArrayEnd()
  6275  		return
  6276  	}
  6277  	z.DecReadArrayElem()
  6278  	h.decArray8int64((*[8]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr8), d)
  6279  	yyj103++
  6280  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6281  	if yyb103 {
  6282  		z.DecReadArrayEnd()
  6283  		return
  6284  	}
  6285  	z.DecReadArrayElem()
  6286  	h.decArray0int64((*[0]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr0), d)
  6287  	yyj103++
  6288  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6289  	if yyb103 {
  6290  		z.DecReadArrayEnd()
  6291  		return
  6292  	}
  6293  	z.DecReadArrayElem()
  6294  	z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice0, d)
  6295  	yyj103++
  6296  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6297  	if yyb103 {
  6298  		z.DecReadArrayEnd()
  6299  		return
  6300  	}
  6301  	z.DecReadArrayElem()
  6302  	z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, d)
  6303  	yyj103++
  6304  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6305  	if yyb103 {
  6306  		z.DecReadArrayEnd()
  6307  		return
  6308  	}
  6309  	z.DecReadArrayElem()
  6310  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64N, d)
  6311  	yyj103++
  6312  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6313  	if yyb103 {
  6314  		z.DecReadArrayEnd()
  6315  		return
  6316  	}
  6317  	z.DecReadArrayElem()
  6318  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64E, d)
  6319  	yyj103++
  6320  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6321  	if yyb103 {
  6322  		z.DecReadArrayEnd()
  6323  		return
  6324  	}
  6325  	z.DecReadArrayElem()
  6326  	if yyxt184 := z.Extension(x.TestStrucCommon.NotAnon); yyxt184 != nil {
  6327  		z.DecExtension(&x.TestStrucCommon.NotAnon, yyxt184)
  6328  	} else {
  6329  		x.TestStrucCommon.NotAnon.CodecDecodeSelf(d)
  6330  	}
  6331  	yyj103++
  6332  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6333  	if yyb103 {
  6334  		z.DecReadArrayEnd()
  6335  		return
  6336  	}
  6337  	z.DecReadArrayElem()
  6338  	if r.TryNil() {
  6339  		if x.TestStrucCommon.AnonInTestStrucSlim != nil && x.TestStrucCommon.AnonInTestStrucSlim.P != nil { // remove the if-true
  6340  			x.TestStrucCommon.AnonInTestStrucSlim.P = nil
  6341  		}
  6342  	} else {
  6343  		if x.TestStrucCommon.AnonInTestStrucSlim == nil {
  6344  			x.TestStrucCommon.AnonInTestStrucSlim = new(AnonInTestStrucSlim)
  6345  		}
  6346  		if x.TestStrucCommon.AnonInTestStrucSlim.P == nil {
  6347  			x.TestStrucCommon.AnonInTestStrucSlim.P = new(string)
  6348  		}
  6349  		*x.TestStrucCommon.AnonInTestStrucSlim.P = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  6350  	}
  6351  	yyj103++
  6352  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6353  	if yyb103 {
  6354  		z.DecReadArrayEnd()
  6355  		return
  6356  	}
  6357  	z.DecReadArrayElem()
  6358  	if r.TryNil() {
  6359  		if x.TestStrucCommon.NotAnonSlim != nil { // remove the if-true
  6360  			x.TestStrucCommon.NotAnonSlim = nil
  6361  		}
  6362  	} else {
  6363  		if x.TestStrucCommon.NotAnonSlim == nil {
  6364  			x.TestStrucCommon.NotAnonSlim = new(AnonInTestStrucSlim)
  6365  		}
  6366  		if yyxt188 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt188 != nil {
  6367  			z.DecExtension(x.TestStrucCommon.NotAnonSlim, yyxt188)
  6368  		} else {
  6369  			x.TestStrucCommon.NotAnonSlim.CodecDecodeSelf(d)
  6370  		}
  6371  	}
  6372  	yyj103++
  6373  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6374  	if yyb103 {
  6375  		z.DecReadArrayEnd()
  6376  		return
  6377  	}
  6378  	z.DecReadArrayElem()
  6379  	z.F.DecMapStringBoolX(&x.TestStrucCommon.Nmap, d)
  6380  	yyj103++
  6381  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6382  	if yyb103 {
  6383  		z.DecReadArrayEnd()
  6384  		return
  6385  	}
  6386  	z.DecReadArrayElem()
  6387  	x.TestStrucCommon.Nslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Nslice))
  6388  	yyj103++
  6389  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6390  	if yyb103 {
  6391  		z.DecReadArrayEnd()
  6392  		return
  6393  	}
  6394  	z.DecReadArrayElem()
  6395  	if r.TryNil() {
  6396  		if x.TestStrucCommon.Nint64 != nil { // remove the if-true
  6397  			x.TestStrucCommon.Nint64 = nil
  6398  		}
  6399  	} else {
  6400  		if x.TestStrucCommon.Nint64 == nil {
  6401  			x.TestStrucCommon.Nint64 = new(int64)
  6402  		}
  6403  		*x.TestStrucCommon.Nint64 = (int64)(r.DecodeInt64())
  6404  	}
  6405  	yyj103++
  6406  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6407  	if yyb103 {
  6408  		z.DecReadArrayEnd()
  6409  		return
  6410  	}
  6411  	z.DecReadArrayElem()
  6412  	h.decMapstringPtrtoTestStruc((*map[string]*TestStruc)(&x.Mtsptr), d)
  6413  	yyj103++
  6414  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6415  	if yyb103 {
  6416  		z.DecReadArrayEnd()
  6417  		return
  6418  	}
  6419  	z.DecReadArrayElem()
  6420  	h.decMapstringTestStruc((*map[string]TestStruc)(&x.Mts), d)
  6421  	yyj103++
  6422  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6423  	if yyb103 {
  6424  		z.DecReadArrayEnd()
  6425  		return
  6426  	}
  6427  	z.DecReadArrayElem()
  6428  	h.decSlicePtrtoTestStruc((*[]*TestStruc)(&x.Its), d)
  6429  	yyj103++
  6430  	yyb103 = !z.DecContainerNext(yyj103, l, yyhl103)
  6431  	if yyb103 {
  6432  		z.DecReadArrayEnd()
  6433  		return
  6434  	}
  6435  	z.DecReadArrayElem()
  6436  	if r.TryNil() {
  6437  		if x.Nteststruc != nil { // remove the if-true
  6438  			x.Nteststruc = nil
  6439  		}
  6440  	} else {
  6441  		if x.Nteststruc == nil {
  6442  			x.Nteststruc = new(TestStruc)
  6443  		}
  6444  		if yyxt202 := z.Extension(x.Nteststruc); yyxt202 != nil {
  6445  			z.DecExtension(x.Nteststruc, yyxt202)
  6446  		} else {
  6447  			x.Nteststruc.CodecDecodeSelf(d)
  6448  		}
  6449  	}
  6450  	yyj103++
  6451  	for ; z.DecContainerNext(yyj103, l, yyhl103); yyj103++ {
  6452  		z.DecReadArrayElem()
  6453  		z.DecStructFieldNotFound(yyj103-1, "")
  6454  	}
  6455  }
  6456  
  6457  func (x *TestStruc) IsCodecEmpty() bool {
  6458  	return !(!(x.TestStrucCommon.IsCodecEmpty()) || len(x.Mtsptr) != 0 || len(x.Mts) != 0 || len(x.Its) != 0 || false)
  6459  }
  6460  
  6461  func (codecgenA) codecSelferViaCodecgen() {}
  6462  func (x *codecgenA) CodecEncodeSelf(e *Encoder) {
  6463  	var h codecSelfer19780
  6464  	z, r := GenHelper().Encoder(e)
  6465  	_, _, _ = h, z, r
  6466  	if z.EncBasicHandle().CheckCircularRef {
  6467  		z.EncEncode(x)
  6468  		return
  6469  	}
  6470  	if x == nil {
  6471  		r.EncodeNil()
  6472  	} else {
  6473  		yy2arr2 := z.EncBasicHandle().StructToArray
  6474  		_ = yy2arr2
  6475  		const yyr2 bool = false // struct tag has 'toArray'
  6476  		if yyr2 || yy2arr2 {
  6477  			z.EncWriteArrayStart(1)
  6478  			z.EncWriteArrayElem()
  6479  			if x.ZZ == nil {
  6480  				r.EncodeNil()
  6481  			} else {
  6482  				r.EncodeStringBytesRaw([]byte(x.ZZ))
  6483  			} // end block: if x.ZZ slice == nil
  6484  			z.EncWriteArrayEnd()
  6485  		} else {
  6486  			z.EncWriteMapStart(1)
  6487  			if z.EncBasicHandle().Canonical {
  6488  				z.EncWriteMapElemKey()
  6489  				if z.IsJSONHandle() {
  6490  					z.EncWr().WriteStr("\"ZZ\"")
  6491  				} else {
  6492  					r.EncodeString(`ZZ`)
  6493  				}
  6494  				z.EncWriteMapElemValue()
  6495  				if x.ZZ == nil {
  6496  					r.EncodeNil()
  6497  				} else {
  6498  					r.EncodeStringBytesRaw([]byte(x.ZZ))
  6499  				} // end block: if x.ZZ slice == nil
  6500  			} else {
  6501  				z.EncWriteMapElemKey()
  6502  				if z.IsJSONHandle() {
  6503  					z.EncWr().WriteStr("\"ZZ\"")
  6504  				} else {
  6505  					r.EncodeString(`ZZ`)
  6506  				}
  6507  				z.EncWriteMapElemValue()
  6508  				if x.ZZ == nil {
  6509  					r.EncodeNil()
  6510  				} else {
  6511  					r.EncodeStringBytesRaw([]byte(x.ZZ))
  6512  				} // end block: if x.ZZ slice == nil
  6513  			}
  6514  			z.EncWriteMapEnd()
  6515  		}
  6516  	}
  6517  }
  6518  
  6519  func (x *codecgenA) CodecDecodeSelf(d *Decoder) {
  6520  	var h codecSelfer19780
  6521  	z, r := GenHelper().Decoder(d)
  6522  	_, _, _ = h, z, r
  6523  	yyct2 := r.ContainerType()
  6524  	if yyct2 == codecSelferValueTypeNil19780 {
  6525  		*(x) = codecgenA{}
  6526  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6527  		yyl2 := z.DecReadMapStart()
  6528  		if yyl2 == 0 {
  6529  		} else {
  6530  			x.codecDecodeSelfFromMap(yyl2, d)
  6531  		}
  6532  		z.DecReadMapEnd()
  6533  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6534  		yyl2 := z.DecReadArrayStart()
  6535  		if yyl2 != 0 {
  6536  			x.codecDecodeSelfFromArray(yyl2, d)
  6537  		}
  6538  		z.DecReadArrayEnd()
  6539  	} else {
  6540  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6541  	}
  6542  }
  6543  
  6544  func (x *codecgenA) codecDecodeSelfFromMap(l int, d *Decoder) {
  6545  	var h codecSelfer19780
  6546  	z, r := GenHelper().Decoder(d)
  6547  	_, _, _ = h, z, r
  6548  	var yyhl3 bool = l >= 0
  6549  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  6550  		z.DecReadMapElemKey()
  6551  		yys3 := r.DecodeStringAsBytes()
  6552  		z.DecReadMapElemValue()
  6553  		switch string(yys3) {
  6554  		case "ZZ":
  6555  			x.ZZ = z.DecodeBytesInto(([]byte)(x.ZZ))
  6556  		default:
  6557  			z.DecStructFieldNotFound(-1, string(yys3))
  6558  		} // end switch yys3
  6559  	} // end for yyj3
  6560  }
  6561  
  6562  func (x *codecgenA) codecDecodeSelfFromArray(l int, d *Decoder) {
  6563  	var h codecSelfer19780
  6564  	z, r := GenHelper().Decoder(d)
  6565  	_, _, _ = h, z, r
  6566  	var yyj6 int
  6567  	var yyb6 bool
  6568  	var yyhl6 bool = l >= 0
  6569  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  6570  	if yyb6 {
  6571  		z.DecReadArrayEnd()
  6572  		return
  6573  	}
  6574  	z.DecReadArrayElem()
  6575  	x.ZZ = z.DecodeBytesInto(([]byte)(x.ZZ))
  6576  	yyj6++
  6577  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
  6578  		z.DecReadArrayElem()
  6579  		z.DecStructFieldNotFound(yyj6-1, "")
  6580  	}
  6581  }
  6582  
  6583  func (x *codecgenA) IsCodecEmpty() bool {
  6584  	return !(len(x.ZZ) != 0 || false)
  6585  }
  6586  
  6587  func (codecgenB) codecSelferViaCodecgen() {}
  6588  func (x *codecgenB) CodecEncodeSelf(e *Encoder) {
  6589  	var h codecSelfer19780
  6590  	z, r := GenHelper().Encoder(e)
  6591  	_, _, _ = h, z, r
  6592  	if z.EncBasicHandle().CheckCircularRef {
  6593  		z.EncEncode(x)
  6594  		return
  6595  	}
  6596  	if x == nil {
  6597  		r.EncodeNil()
  6598  	} else {
  6599  		yy2arr2 := z.EncBasicHandle().StructToArray
  6600  		_ = yy2arr2
  6601  		const yyr2 bool = false // struct tag has 'toArray'
  6602  		if yyr2 || yy2arr2 {
  6603  			z.EncWriteArrayStart(1)
  6604  			z.EncWriteArrayElem()
  6605  			yy4 := &x.AA
  6606  			if yyxt5 := z.Extension(yy4); yyxt5 != nil {
  6607  				z.EncExtension(yy4, yyxt5)
  6608  			} else {
  6609  				yy4.CodecEncodeSelf(e)
  6610  			}
  6611  			z.EncWriteArrayEnd()
  6612  		} else {
  6613  			z.EncWriteMapStart(1)
  6614  			if z.EncBasicHandle().Canonical {
  6615  				z.EncWriteMapElemKey()
  6616  				if z.IsJSONHandle() {
  6617  					z.EncWr().WriteStr("\"AA\"")
  6618  				} else {
  6619  					r.EncodeString(`AA`)
  6620  				}
  6621  				z.EncWriteMapElemValue()
  6622  				yy6 := &x.AA
  6623  				if yyxt7 := z.Extension(yy6); yyxt7 != nil {
  6624  					z.EncExtension(yy6, yyxt7)
  6625  				} else {
  6626  					yy6.CodecEncodeSelf(e)
  6627  				}
  6628  			} else {
  6629  				z.EncWriteMapElemKey()
  6630  				if z.IsJSONHandle() {
  6631  					z.EncWr().WriteStr("\"AA\"")
  6632  				} else {
  6633  					r.EncodeString(`AA`)
  6634  				}
  6635  				z.EncWriteMapElemValue()
  6636  				yy8 := &x.AA
  6637  				if yyxt9 := z.Extension(yy8); yyxt9 != nil {
  6638  					z.EncExtension(yy8, yyxt9)
  6639  				} else {
  6640  					yy8.CodecEncodeSelf(e)
  6641  				}
  6642  			}
  6643  			z.EncWriteMapEnd()
  6644  		}
  6645  	}
  6646  }
  6647  
  6648  func (x *codecgenB) CodecDecodeSelf(d *Decoder) {
  6649  	var h codecSelfer19780
  6650  	z, r := GenHelper().Decoder(d)
  6651  	_, _, _ = h, z, r
  6652  	yyct2 := r.ContainerType()
  6653  	if yyct2 == codecSelferValueTypeNil19780 {
  6654  		*(x) = codecgenB{}
  6655  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6656  		yyl2 := z.DecReadMapStart()
  6657  		if yyl2 == 0 {
  6658  		} else {
  6659  			x.codecDecodeSelfFromMap(yyl2, d)
  6660  		}
  6661  		z.DecReadMapEnd()
  6662  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6663  		yyl2 := z.DecReadArrayStart()
  6664  		if yyl2 != 0 {
  6665  			x.codecDecodeSelfFromArray(yyl2, d)
  6666  		}
  6667  		z.DecReadArrayEnd()
  6668  	} else {
  6669  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6670  	}
  6671  }
  6672  
  6673  func (x *codecgenB) codecDecodeSelfFromMap(l int, d *Decoder) {
  6674  	var h codecSelfer19780
  6675  	z, r := GenHelper().Decoder(d)
  6676  	_, _, _ = h, z, r
  6677  	var yyhl3 bool = l >= 0
  6678  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  6679  		z.DecReadMapElemKey()
  6680  		yys3 := r.DecodeStringAsBytes()
  6681  		z.DecReadMapElemValue()
  6682  		switch string(yys3) {
  6683  		case "AA":
  6684  			if yyxt5 := z.Extension(x.AA); yyxt5 != nil {
  6685  				z.DecExtension(&x.AA, yyxt5)
  6686  			} else {
  6687  				x.AA.CodecDecodeSelf(d)
  6688  			}
  6689  		default:
  6690  			z.DecStructFieldNotFound(-1, string(yys3))
  6691  		} // end switch yys3
  6692  	} // end for yyj3
  6693  }
  6694  
  6695  func (x *codecgenB) codecDecodeSelfFromArray(l int, d *Decoder) {
  6696  	var h codecSelfer19780
  6697  	z, r := GenHelper().Decoder(d)
  6698  	_, _, _ = h, z, r
  6699  	var yyj6 int
  6700  	var yyb6 bool
  6701  	var yyhl6 bool = l >= 0
  6702  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  6703  	if yyb6 {
  6704  		z.DecReadArrayEnd()
  6705  		return
  6706  	}
  6707  	z.DecReadArrayElem()
  6708  	if yyxt8 := z.Extension(x.AA); yyxt8 != nil {
  6709  		z.DecExtension(&x.AA, yyxt8)
  6710  	} else {
  6711  		x.AA.CodecDecodeSelf(d)
  6712  	}
  6713  	yyj6++
  6714  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
  6715  		z.DecReadArrayElem()
  6716  		z.DecStructFieldNotFound(yyj6-1, "")
  6717  	}
  6718  }
  6719  
  6720  func (x *codecgenB) IsCodecEmpty() bool {
  6721  	return !(!(x.AA.IsCodecEmpty()) || false)
  6722  }
  6723  
  6724  func (codecgenC) codecSelferViaCodecgen() {}
  6725  func (x *codecgenC) CodecEncodeSelf(e *Encoder) {
  6726  	var h codecSelfer19780
  6727  	z, r := GenHelper().Encoder(e)
  6728  	_, _, _ = h, z, r
  6729  	if z.EncBasicHandle().CheckCircularRef {
  6730  		z.EncEncode(x)
  6731  		return
  6732  	}
  6733  	if x == nil {
  6734  		r.EncodeNil()
  6735  	} else {
  6736  		yy2arr2 := z.EncBasicHandle().StructToArray
  6737  		_ = yy2arr2
  6738  		const yyr2 bool = false // struct tag has 'toArray'
  6739  		var yyq2 = [1]bool{     // should field at this index be written?
  6740  			!(x.BB.IsCodecEmpty()), // BB
  6741  		}
  6742  		_ = yyq2
  6743  		if yyr2 || yy2arr2 {
  6744  			z.EncWriteArrayStart(1)
  6745  			z.EncWriteArrayElem()
  6746  			if yyq2[0] {
  6747  				yy4 := &x.BB
  6748  				if yyxt5 := z.Extension(yy4); yyxt5 != nil {
  6749  					z.EncExtension(yy4, yyxt5)
  6750  				} else {
  6751  					yy4.CodecEncodeSelf(e)
  6752  				}
  6753  			} else {
  6754  				r.EncodeNil()
  6755  			}
  6756  			z.EncWriteArrayEnd()
  6757  		} else {
  6758  			var yynn2 int
  6759  			for _, b := range yyq2 {
  6760  				if b {
  6761  					yynn2++
  6762  				}
  6763  			}
  6764  			z.EncWriteMapStart(yynn2)
  6765  			yynn2 = 0
  6766  			if z.EncBasicHandle().Canonical {
  6767  				if yyq2[0] {
  6768  					z.EncWriteMapElemKey()
  6769  					if z.IsJSONHandle() {
  6770  						z.EncWr().WriteStr("\"BB\"")
  6771  					} else {
  6772  						r.EncodeString(`BB`)
  6773  					}
  6774  					z.EncWriteMapElemValue()
  6775  					yy6 := &x.BB
  6776  					if yyxt7 := z.Extension(yy6); yyxt7 != nil {
  6777  						z.EncExtension(yy6, yyxt7)
  6778  					} else {
  6779  						yy6.CodecEncodeSelf(e)
  6780  					}
  6781  				}
  6782  			} else {
  6783  				if yyq2[0] {
  6784  					z.EncWriteMapElemKey()
  6785  					if z.IsJSONHandle() {
  6786  						z.EncWr().WriteStr("\"BB\"")
  6787  					} else {
  6788  						r.EncodeString(`BB`)
  6789  					}
  6790  					z.EncWriteMapElemValue()
  6791  					yy8 := &x.BB
  6792  					if yyxt9 := z.Extension(yy8); yyxt9 != nil {
  6793  						z.EncExtension(yy8, yyxt9)
  6794  					} else {
  6795  						yy8.CodecEncodeSelf(e)
  6796  					}
  6797  				}
  6798  			}
  6799  			z.EncWriteMapEnd()
  6800  		}
  6801  	}
  6802  }
  6803  
  6804  func (x *codecgenC) CodecDecodeSelf(d *Decoder) {
  6805  	var h codecSelfer19780
  6806  	z, r := GenHelper().Decoder(d)
  6807  	_, _, _ = h, z, r
  6808  	yyct2 := r.ContainerType()
  6809  	if yyct2 == codecSelferValueTypeNil19780 {
  6810  		*(x) = codecgenC{}
  6811  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6812  		yyl2 := z.DecReadMapStart()
  6813  		if yyl2 == 0 {
  6814  		} else {
  6815  			x.codecDecodeSelfFromMap(yyl2, d)
  6816  		}
  6817  		z.DecReadMapEnd()
  6818  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6819  		yyl2 := z.DecReadArrayStart()
  6820  		if yyl2 != 0 {
  6821  			x.codecDecodeSelfFromArray(yyl2, d)
  6822  		}
  6823  		z.DecReadArrayEnd()
  6824  	} else {
  6825  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6826  	}
  6827  }
  6828  
  6829  func (x *codecgenC) codecDecodeSelfFromMap(l int, d *Decoder) {
  6830  	var h codecSelfer19780
  6831  	z, r := GenHelper().Decoder(d)
  6832  	_, _, _ = h, z, r
  6833  	var yyhl3 bool = l >= 0
  6834  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  6835  		z.DecReadMapElemKey()
  6836  		yys3 := r.DecodeStringAsBytes()
  6837  		z.DecReadMapElemValue()
  6838  		switch string(yys3) {
  6839  		case "BB":
  6840  			if yyxt5 := z.Extension(x.BB); yyxt5 != nil {
  6841  				z.DecExtension(&x.BB, yyxt5)
  6842  			} else {
  6843  				x.BB.CodecDecodeSelf(d)
  6844  			}
  6845  		default:
  6846  			z.DecStructFieldNotFound(-1, string(yys3))
  6847  		} // end switch yys3
  6848  	} // end for yyj3
  6849  }
  6850  
  6851  func (x *codecgenC) codecDecodeSelfFromArray(l int, d *Decoder) {
  6852  	var h codecSelfer19780
  6853  	z, r := GenHelper().Decoder(d)
  6854  	_, _, _ = h, z, r
  6855  	var yyj6 int
  6856  	var yyb6 bool
  6857  	var yyhl6 bool = l >= 0
  6858  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  6859  	if yyb6 {
  6860  		z.DecReadArrayEnd()
  6861  		return
  6862  	}
  6863  	z.DecReadArrayElem()
  6864  	if yyxt8 := z.Extension(x.BB); yyxt8 != nil {
  6865  		z.DecExtension(&x.BB, yyxt8)
  6866  	} else {
  6867  		x.BB.CodecDecodeSelf(d)
  6868  	}
  6869  	yyj6++
  6870  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
  6871  		z.DecReadArrayElem()
  6872  		z.DecStructFieldNotFound(yyj6-1, "")
  6873  	}
  6874  }
  6875  
  6876  func (x *codecgenC) IsCodecEmpty() bool {
  6877  	return !(!(x.BB.IsCodecEmpty()) || false)
  6878  }
  6879  
  6880  func (TestCodecgenG) codecSelferViaCodecgen() {}
  6881  func (x *TestCodecgenG) CodecEncodeSelf(e *Encoder) {
  6882  	var h codecSelfer19780
  6883  	z, r := GenHelper().Encoder(e)
  6884  	_, _, _ = h, z, r
  6885  	if z.EncBasicHandle().CheckCircularRef {
  6886  		z.EncEncode(x)
  6887  		return
  6888  	}
  6889  	if x == nil {
  6890  		r.EncodeNil()
  6891  	} else {
  6892  		yy2arr2 := z.EncBasicHandle().StructToArray
  6893  		_ = yy2arr2
  6894  		const yyr2 bool = false // struct tag has 'toArray'
  6895  		if yyr2 || yy2arr2 {
  6896  			z.EncWriteArrayStart(1)
  6897  			z.EncWriteArrayElem()
  6898  			r.EncodeInt(int64(x.TestCodecgenG))
  6899  			z.EncWriteArrayEnd()
  6900  		} else {
  6901  			z.EncWriteMapStart(1)
  6902  			if z.EncBasicHandle().Canonical {
  6903  				z.EncWriteMapElemKey()
  6904  				if z.IsJSONHandle() {
  6905  					z.EncWr().WriteStr("\"TestCodecgenG\"")
  6906  				} else {
  6907  					r.EncodeString(`TestCodecgenG`)
  6908  				}
  6909  				z.EncWriteMapElemValue()
  6910  				r.EncodeInt(int64(x.TestCodecgenG))
  6911  			} else {
  6912  				z.EncWriteMapElemKey()
  6913  				if z.IsJSONHandle() {
  6914  					z.EncWr().WriteStr("\"TestCodecgenG\"")
  6915  				} else {
  6916  					r.EncodeString(`TestCodecgenG`)
  6917  				}
  6918  				z.EncWriteMapElemValue()
  6919  				r.EncodeInt(int64(x.TestCodecgenG))
  6920  			}
  6921  			z.EncWriteMapEnd()
  6922  		}
  6923  	}
  6924  }
  6925  
  6926  func (x *TestCodecgenG) CodecDecodeSelf(d *Decoder) {
  6927  	var h codecSelfer19780
  6928  	z, r := GenHelper().Decoder(d)
  6929  	_, _, _ = h, z, r
  6930  	yyct2 := r.ContainerType()
  6931  	if yyct2 == codecSelferValueTypeNil19780 {
  6932  		*(x) = TestCodecgenG{}
  6933  	} else if yyct2 == codecSelferValueTypeMap19780 {
  6934  		yyl2 := z.DecReadMapStart()
  6935  		if yyl2 == 0 {
  6936  		} else {
  6937  			x.codecDecodeSelfFromMap(yyl2, d)
  6938  		}
  6939  		z.DecReadMapEnd()
  6940  	} else if yyct2 == codecSelferValueTypeArray19780 {
  6941  		yyl2 := z.DecReadArrayStart()
  6942  		if yyl2 != 0 {
  6943  			x.codecDecodeSelfFromArray(yyl2, d)
  6944  		}
  6945  		z.DecReadArrayEnd()
  6946  	} else {
  6947  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  6948  	}
  6949  }
  6950  
  6951  func (x *TestCodecgenG) codecDecodeSelfFromMap(l int, d *Decoder) {
  6952  	var h codecSelfer19780
  6953  	z, r := GenHelper().Decoder(d)
  6954  	_, _, _ = h, z, r
  6955  	var yyhl3 bool = l >= 0
  6956  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  6957  		z.DecReadMapElemKey()
  6958  		yys3 := r.DecodeStringAsBytes()
  6959  		z.DecReadMapElemValue()
  6960  		switch string(yys3) {
  6961  		case "TestCodecgenG":
  6962  			x.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6963  		default:
  6964  			z.DecStructFieldNotFound(-1, string(yys3))
  6965  		} // end switch yys3
  6966  	} // end for yyj3
  6967  }
  6968  
  6969  func (x *TestCodecgenG) codecDecodeSelfFromArray(l int, d *Decoder) {
  6970  	var h codecSelfer19780
  6971  	z, r := GenHelper().Decoder(d)
  6972  	_, _, _ = h, z, r
  6973  	var yyj5 int
  6974  	var yyb5 bool
  6975  	var yyhl5 bool = l >= 0
  6976  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  6977  	if yyb5 {
  6978  		z.DecReadArrayEnd()
  6979  		return
  6980  	}
  6981  	z.DecReadArrayElem()
  6982  	x.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  6983  	yyj5++
  6984  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  6985  		z.DecReadArrayElem()
  6986  		z.DecStructFieldNotFound(yyj5-1, "")
  6987  	}
  6988  }
  6989  
  6990  func (x *TestCodecgenG) IsCodecEmpty() bool {
  6991  	return !(x.TestCodecgenG != 0 || false)
  6992  }
  6993  
  6994  func (codecgenH) codecSelferViaCodecgen() {}
  6995  func (x *codecgenH) CodecEncodeSelf(e *Encoder) {
  6996  	var h codecSelfer19780
  6997  	z, r := GenHelper().Encoder(e)
  6998  	_, _, _ = h, z, r
  6999  	if z.EncBasicHandle().CheckCircularRef {
  7000  		z.EncEncode(x)
  7001  		return
  7002  	}
  7003  	if x == nil {
  7004  		r.EncodeNil()
  7005  	} else {
  7006  		yy2arr2 := z.EncBasicHandle().StructToArray
  7007  		_ = yy2arr2
  7008  		const yyr2 bool = false // struct tag has 'toArray'
  7009  		if yyr2 || yy2arr2 {
  7010  			z.EncWriteArrayStart(1)
  7011  			z.EncWriteArrayElem()
  7012  			r.EncodeInt(int64(x.TestCodecgenG.TestCodecgenG))
  7013  			z.EncWriteArrayEnd()
  7014  		} else {
  7015  			z.EncWriteMapStart(1)
  7016  			if z.EncBasicHandle().Canonical {
  7017  				z.EncWriteMapElemKey()
  7018  				if z.IsJSONHandle() {
  7019  					z.EncWr().WriteStr("\"TestCodecgenG\"")
  7020  				} else {
  7021  					r.EncodeString(`TestCodecgenG`)
  7022  				}
  7023  				z.EncWriteMapElemValue()
  7024  				r.EncodeInt(int64(x.TestCodecgenG.TestCodecgenG))
  7025  			} else {
  7026  				z.EncWriteMapElemKey()
  7027  				if z.IsJSONHandle() {
  7028  					z.EncWr().WriteStr("\"TestCodecgenG\"")
  7029  				} else {
  7030  					r.EncodeString(`TestCodecgenG`)
  7031  				}
  7032  				z.EncWriteMapElemValue()
  7033  				r.EncodeInt(int64(x.TestCodecgenG.TestCodecgenG))
  7034  			}
  7035  			z.EncWriteMapEnd()
  7036  		}
  7037  	}
  7038  }
  7039  
  7040  func (x *codecgenH) CodecDecodeSelf(d *Decoder) {
  7041  	var h codecSelfer19780
  7042  	z, r := GenHelper().Decoder(d)
  7043  	_, _, _ = h, z, r
  7044  	yyct2 := r.ContainerType()
  7045  	if yyct2 == codecSelferValueTypeNil19780 {
  7046  		*(x) = codecgenH{}
  7047  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7048  		yyl2 := z.DecReadMapStart()
  7049  		if yyl2 == 0 {
  7050  		} else {
  7051  			x.codecDecodeSelfFromMap(yyl2, d)
  7052  		}
  7053  		z.DecReadMapEnd()
  7054  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7055  		yyl2 := z.DecReadArrayStart()
  7056  		if yyl2 != 0 {
  7057  			x.codecDecodeSelfFromArray(yyl2, d)
  7058  		}
  7059  		z.DecReadArrayEnd()
  7060  	} else {
  7061  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7062  	}
  7063  }
  7064  
  7065  func (x *codecgenH) codecDecodeSelfFromMap(l int, d *Decoder) {
  7066  	var h codecSelfer19780
  7067  	z, r := GenHelper().Decoder(d)
  7068  	_, _, _ = h, z, r
  7069  	var yyhl3 bool = l >= 0
  7070  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  7071  		z.DecReadMapElemKey()
  7072  		yys3 := r.DecodeStringAsBytes()
  7073  		z.DecReadMapElemValue()
  7074  		switch string(yys3) {
  7075  		case "TestCodecgenG":
  7076  			x.TestCodecgenG.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7077  		default:
  7078  			z.DecStructFieldNotFound(-1, string(yys3))
  7079  		} // end switch yys3
  7080  	} // end for yyj3
  7081  }
  7082  
  7083  func (x *codecgenH) codecDecodeSelfFromArray(l int, d *Decoder) {
  7084  	var h codecSelfer19780
  7085  	z, r := GenHelper().Decoder(d)
  7086  	_, _, _ = h, z, r
  7087  	var yyj5 int
  7088  	var yyb5 bool
  7089  	var yyhl5 bool = l >= 0
  7090  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  7091  	if yyb5 {
  7092  		z.DecReadArrayEnd()
  7093  		return
  7094  	}
  7095  	z.DecReadArrayElem()
  7096  	x.TestCodecgenG.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7097  	yyj5++
  7098  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  7099  		z.DecReadArrayElem()
  7100  		z.DecStructFieldNotFound(yyj5-1, "")
  7101  	}
  7102  }
  7103  
  7104  func (x *codecgenH) IsCodecEmpty() bool {
  7105  	return !(!(x.TestCodecgenG.IsCodecEmpty()) || false)
  7106  }
  7107  
  7108  func (codecgenI) codecSelferViaCodecgen() {}
  7109  func (x *codecgenI) CodecEncodeSelf(e *Encoder) {
  7110  	var h codecSelfer19780
  7111  	z, r := GenHelper().Encoder(e)
  7112  	_, _, _ = h, z, r
  7113  	if z.EncBasicHandle().CheckCircularRef {
  7114  		z.EncEncode(x)
  7115  		return
  7116  	}
  7117  	if x == nil {
  7118  		r.EncodeNil()
  7119  	} else {
  7120  		yy2arr2 := z.EncBasicHandle().StructToArray
  7121  		_ = yy2arr2
  7122  		const yyr2 bool = false // struct tag has 'toArray'
  7123  		if yyr2 || yy2arr2 {
  7124  			z.EncWriteArrayStart(1)
  7125  			z.EncWriteArrayElem()
  7126  			r.EncodeInt(int64(x.codecgenH.TestCodecgenG.TestCodecgenG))
  7127  			z.EncWriteArrayEnd()
  7128  		} else {
  7129  			z.EncWriteMapStart(1)
  7130  			if z.EncBasicHandle().Canonical {
  7131  				z.EncWriteMapElemKey()
  7132  				if z.IsJSONHandle() {
  7133  					z.EncWr().WriteStr("\"TestCodecgenG\"")
  7134  				} else {
  7135  					r.EncodeString(`TestCodecgenG`)
  7136  				}
  7137  				z.EncWriteMapElemValue()
  7138  				r.EncodeInt(int64(x.codecgenH.TestCodecgenG.TestCodecgenG))
  7139  			} else {
  7140  				z.EncWriteMapElemKey()
  7141  				if z.IsJSONHandle() {
  7142  					z.EncWr().WriteStr("\"TestCodecgenG\"")
  7143  				} else {
  7144  					r.EncodeString(`TestCodecgenG`)
  7145  				}
  7146  				z.EncWriteMapElemValue()
  7147  				r.EncodeInt(int64(x.codecgenH.TestCodecgenG.TestCodecgenG))
  7148  			}
  7149  			z.EncWriteMapEnd()
  7150  		}
  7151  	}
  7152  }
  7153  
  7154  func (x *codecgenI) CodecDecodeSelf(d *Decoder) {
  7155  	var h codecSelfer19780
  7156  	z, r := GenHelper().Decoder(d)
  7157  	_, _, _ = h, z, r
  7158  	yyct2 := r.ContainerType()
  7159  	if yyct2 == codecSelferValueTypeNil19780 {
  7160  		*(x) = codecgenI{}
  7161  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7162  		yyl2 := z.DecReadMapStart()
  7163  		if yyl2 == 0 {
  7164  		} else {
  7165  			x.codecDecodeSelfFromMap(yyl2, d)
  7166  		}
  7167  		z.DecReadMapEnd()
  7168  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7169  		yyl2 := z.DecReadArrayStart()
  7170  		if yyl2 != 0 {
  7171  			x.codecDecodeSelfFromArray(yyl2, d)
  7172  		}
  7173  		z.DecReadArrayEnd()
  7174  	} else {
  7175  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7176  	}
  7177  }
  7178  
  7179  func (x *codecgenI) codecDecodeSelfFromMap(l int, d *Decoder) {
  7180  	var h codecSelfer19780
  7181  	z, r := GenHelper().Decoder(d)
  7182  	_, _, _ = h, z, r
  7183  	var yyhl3 bool = l >= 0
  7184  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  7185  		z.DecReadMapElemKey()
  7186  		yys3 := r.DecodeStringAsBytes()
  7187  		z.DecReadMapElemValue()
  7188  		switch string(yys3) {
  7189  		case "TestCodecgenG":
  7190  			x.codecgenH.TestCodecgenG.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7191  		default:
  7192  			z.DecStructFieldNotFound(-1, string(yys3))
  7193  		} // end switch yys3
  7194  	} // end for yyj3
  7195  }
  7196  
  7197  func (x *codecgenI) codecDecodeSelfFromArray(l int, d *Decoder) {
  7198  	var h codecSelfer19780
  7199  	z, r := GenHelper().Decoder(d)
  7200  	_, _, _ = h, z, r
  7201  	var yyj5 int
  7202  	var yyb5 bool
  7203  	var yyhl5 bool = l >= 0
  7204  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  7205  	if yyb5 {
  7206  		z.DecReadArrayEnd()
  7207  		return
  7208  	}
  7209  	z.DecReadArrayElem()
  7210  	x.codecgenH.TestCodecgenG.TestCodecgenG = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7211  	yyj5++
  7212  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  7213  		z.DecReadArrayElem()
  7214  		z.DecStructFieldNotFound(yyj5-1, "")
  7215  	}
  7216  }
  7217  
  7218  func (x *codecgenI) IsCodecEmpty() bool {
  7219  	return !(!(x.codecgenH.IsCodecEmpty()) || false)
  7220  }
  7221  
  7222  func (codecgenK) codecSelferViaCodecgen() {}
  7223  func (x *codecgenK) CodecEncodeSelf(e *Encoder) {
  7224  	var h codecSelfer19780
  7225  	z, r := GenHelper().Encoder(e)
  7226  	_, _, _ = h, z, r
  7227  	if z.EncBasicHandle().CheckCircularRef {
  7228  		z.EncEncode(x)
  7229  		return
  7230  	}
  7231  	if x == nil {
  7232  		r.EncodeNil()
  7233  	} else {
  7234  		yy2arr2 := z.EncBasicHandle().StructToArray
  7235  		_ = yy2arr2
  7236  		const yyr2 bool = false // struct tag has 'toArray'
  7237  		if yyr2 || yy2arr2 {
  7238  			z.EncWriteArrayStart(2)
  7239  			z.EncWriteArrayElem()
  7240  			r.EncodeInt(int64(x.X))
  7241  			z.EncWriteArrayElem()
  7242  			r.EncodeString(string(x.Y))
  7243  			z.EncWriteArrayEnd()
  7244  		} else {
  7245  			z.EncWriteMapStart(2)
  7246  			if z.EncBasicHandle().Canonical {
  7247  				z.EncWriteMapElemKey()
  7248  				if z.IsJSONHandle() {
  7249  					z.EncWr().WriteStr("\"X\"")
  7250  				} else {
  7251  					r.EncodeString(`X`)
  7252  				}
  7253  				z.EncWriteMapElemValue()
  7254  				r.EncodeInt(int64(x.X))
  7255  				z.EncWriteMapElemKey()
  7256  				if z.IsJSONHandle() {
  7257  					z.EncWr().WriteStr("\"Y\"")
  7258  				} else {
  7259  					r.EncodeString(`Y`)
  7260  				}
  7261  				z.EncWriteMapElemValue()
  7262  				r.EncodeString(string(x.Y))
  7263  			} else {
  7264  				z.EncWriteMapElemKey()
  7265  				if z.IsJSONHandle() {
  7266  					z.EncWr().WriteStr("\"X\"")
  7267  				} else {
  7268  					r.EncodeString(`X`)
  7269  				}
  7270  				z.EncWriteMapElemValue()
  7271  				r.EncodeInt(int64(x.X))
  7272  				z.EncWriteMapElemKey()
  7273  				if z.IsJSONHandle() {
  7274  					z.EncWr().WriteStr("\"Y\"")
  7275  				} else {
  7276  					r.EncodeString(`Y`)
  7277  				}
  7278  				z.EncWriteMapElemValue()
  7279  				r.EncodeString(string(x.Y))
  7280  			}
  7281  			z.EncWriteMapEnd()
  7282  		}
  7283  	}
  7284  }
  7285  
  7286  func (x *codecgenK) CodecDecodeSelf(d *Decoder) {
  7287  	var h codecSelfer19780
  7288  	z, r := GenHelper().Decoder(d)
  7289  	_, _, _ = h, z, r
  7290  	yyct2 := r.ContainerType()
  7291  	if yyct2 == codecSelferValueTypeNil19780 {
  7292  		*(x) = codecgenK{}
  7293  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7294  		yyl2 := z.DecReadMapStart()
  7295  		if yyl2 == 0 {
  7296  		} else {
  7297  			x.codecDecodeSelfFromMap(yyl2, d)
  7298  		}
  7299  		z.DecReadMapEnd()
  7300  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7301  		yyl2 := z.DecReadArrayStart()
  7302  		if yyl2 != 0 {
  7303  			x.codecDecodeSelfFromArray(yyl2, d)
  7304  		}
  7305  		z.DecReadArrayEnd()
  7306  	} else {
  7307  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7308  	}
  7309  }
  7310  
  7311  func (x *codecgenK) codecDecodeSelfFromMap(l int, d *Decoder) {
  7312  	var h codecSelfer19780
  7313  	z, r := GenHelper().Decoder(d)
  7314  	_, _, _ = h, z, r
  7315  	var yyhl3 bool = l >= 0
  7316  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  7317  		z.DecReadMapElemKey()
  7318  		yys3 := r.DecodeStringAsBytes()
  7319  		z.DecReadMapElemValue()
  7320  		switch string(yys3) {
  7321  		case "X":
  7322  			x.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7323  		case "Y":
  7324  			x.Y = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  7325  		default:
  7326  			z.DecStructFieldNotFound(-1, string(yys3))
  7327  		} // end switch yys3
  7328  	} // end for yyj3
  7329  }
  7330  
  7331  func (x *codecgenK) codecDecodeSelfFromArray(l int, d *Decoder) {
  7332  	var h codecSelfer19780
  7333  	z, r := GenHelper().Decoder(d)
  7334  	_, _, _ = h, z, r
  7335  	var yyj6 int
  7336  	var yyb6 bool
  7337  	var yyhl6 bool = l >= 0
  7338  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  7339  	if yyb6 {
  7340  		z.DecReadArrayEnd()
  7341  		return
  7342  	}
  7343  	z.DecReadArrayElem()
  7344  	x.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7345  	yyj6++
  7346  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  7347  	if yyb6 {
  7348  		z.DecReadArrayEnd()
  7349  		return
  7350  	}
  7351  	z.DecReadArrayElem()
  7352  	x.Y = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  7353  	yyj6++
  7354  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
  7355  		z.DecReadArrayElem()
  7356  		z.DecStructFieldNotFound(yyj6-1, "")
  7357  	}
  7358  }
  7359  
  7360  func (x *codecgenK) IsCodecEmpty() bool {
  7361  	return !(x.X != 0 || x.Y != "" || false)
  7362  }
  7363  
  7364  func (codecgenL) codecSelferViaCodecgen() {}
  7365  func (x *codecgenL) CodecEncodeSelf(e *Encoder) {
  7366  	var h codecSelfer19780
  7367  	z, r := GenHelper().Encoder(e)
  7368  	_, _, _ = h, z, r
  7369  	if z.EncBasicHandle().CheckCircularRef {
  7370  		z.EncEncode(x)
  7371  		return
  7372  	}
  7373  	if x == nil {
  7374  		r.EncodeNil()
  7375  	} else {
  7376  		yy2arr2 := z.EncBasicHandle().StructToArray
  7377  		_ = yy2arr2
  7378  		const yyr2 bool = false // struct tag has 'toArray'
  7379  		if yyr2 || yy2arr2 {
  7380  			z.EncWriteArrayStart(2)
  7381  			z.EncWriteArrayElem()
  7382  			r.EncodeInt(int64(x.X))
  7383  			z.EncWriteArrayElem()
  7384  			r.EncodeUint(uint64(x.Y))
  7385  			z.EncWriteArrayEnd()
  7386  		} else {
  7387  			z.EncWriteMapStart(2)
  7388  			if z.EncBasicHandle().Canonical {
  7389  				z.EncWriteMapElemKey()
  7390  				if z.IsJSONHandle() {
  7391  					z.EncWr().WriteStr("\"X\"")
  7392  				} else {
  7393  					r.EncodeString(`X`)
  7394  				}
  7395  				z.EncWriteMapElemValue()
  7396  				r.EncodeInt(int64(x.X))
  7397  				z.EncWriteMapElemKey()
  7398  				if z.IsJSONHandle() {
  7399  					z.EncWr().WriteStr("\"Y\"")
  7400  				} else {
  7401  					r.EncodeString(`Y`)
  7402  				}
  7403  				z.EncWriteMapElemValue()
  7404  				r.EncodeUint(uint64(x.Y))
  7405  			} else {
  7406  				z.EncWriteMapElemKey()
  7407  				if z.IsJSONHandle() {
  7408  					z.EncWr().WriteStr("\"X\"")
  7409  				} else {
  7410  					r.EncodeString(`X`)
  7411  				}
  7412  				z.EncWriteMapElemValue()
  7413  				r.EncodeInt(int64(x.X))
  7414  				z.EncWriteMapElemKey()
  7415  				if z.IsJSONHandle() {
  7416  					z.EncWr().WriteStr("\"Y\"")
  7417  				} else {
  7418  					r.EncodeString(`Y`)
  7419  				}
  7420  				z.EncWriteMapElemValue()
  7421  				r.EncodeUint(uint64(x.Y))
  7422  			}
  7423  			z.EncWriteMapEnd()
  7424  		}
  7425  	}
  7426  }
  7427  
  7428  func (x *codecgenL) CodecDecodeSelf(d *Decoder) {
  7429  	var h codecSelfer19780
  7430  	z, r := GenHelper().Decoder(d)
  7431  	_, _, _ = h, z, r
  7432  	yyct2 := r.ContainerType()
  7433  	if yyct2 == codecSelferValueTypeNil19780 {
  7434  		*(x) = codecgenL{}
  7435  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7436  		yyl2 := z.DecReadMapStart()
  7437  		if yyl2 == 0 {
  7438  		} else {
  7439  			x.codecDecodeSelfFromMap(yyl2, d)
  7440  		}
  7441  		z.DecReadMapEnd()
  7442  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7443  		yyl2 := z.DecReadArrayStart()
  7444  		if yyl2 != 0 {
  7445  			x.codecDecodeSelfFromArray(yyl2, d)
  7446  		}
  7447  		z.DecReadArrayEnd()
  7448  	} else {
  7449  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7450  	}
  7451  }
  7452  
  7453  func (x *codecgenL) codecDecodeSelfFromMap(l int, d *Decoder) {
  7454  	var h codecSelfer19780
  7455  	z, r := GenHelper().Decoder(d)
  7456  	_, _, _ = h, z, r
  7457  	var yyhl3 bool = l >= 0
  7458  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  7459  		z.DecReadMapElemKey()
  7460  		yys3 := r.DecodeStringAsBytes()
  7461  		z.DecReadMapElemValue()
  7462  		switch string(yys3) {
  7463  		case "X":
  7464  			x.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7465  		case "Y":
  7466  			x.Y = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  7467  		default:
  7468  			z.DecStructFieldNotFound(-1, string(yys3))
  7469  		} // end switch yys3
  7470  	} // end for yyj3
  7471  }
  7472  
  7473  func (x *codecgenL) codecDecodeSelfFromArray(l int, d *Decoder) {
  7474  	var h codecSelfer19780
  7475  	z, r := GenHelper().Decoder(d)
  7476  	_, _, _ = h, z, r
  7477  	var yyj6 int
  7478  	var yyb6 bool
  7479  	var yyhl6 bool = l >= 0
  7480  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  7481  	if yyb6 {
  7482  		z.DecReadArrayEnd()
  7483  		return
  7484  	}
  7485  	z.DecReadArrayElem()
  7486  	x.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7487  	yyj6++
  7488  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  7489  	if yyb6 {
  7490  		z.DecReadArrayEnd()
  7491  		return
  7492  	}
  7493  	z.DecReadArrayElem()
  7494  	x.Y = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
  7495  	yyj6++
  7496  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
  7497  		z.DecReadArrayElem()
  7498  		z.DecStructFieldNotFound(yyj6-1, "")
  7499  	}
  7500  }
  7501  
  7502  func (x *codecgenL) IsCodecEmpty() bool {
  7503  	return !(x.X != 0 || x.Y != 0 || false)
  7504  }
  7505  
  7506  func (codecgenM) codecSelferViaCodecgen() {}
  7507  func (x *codecgenM) CodecEncodeSelf(e *Encoder) {
  7508  	var h codecSelfer19780
  7509  	z, r := GenHelper().Encoder(e)
  7510  	_, _, _ = h, z, r
  7511  	if z.EncBasicHandle().CheckCircularRef {
  7512  		z.EncEncode(x)
  7513  		return
  7514  	}
  7515  	if x == nil {
  7516  		r.EncodeNil()
  7517  	} else {
  7518  		yy2arr2 := z.EncBasicHandle().StructToArray
  7519  		_ = yy2arr2
  7520  		const yyr2 bool = false // struct tag has 'toArray'
  7521  		if yyr2 || yy2arr2 {
  7522  			z.EncWriteArrayStart(2)
  7523  			z.EncWriteArrayElem()
  7524  			r.EncodeInt(int64(x.codecgenK.X))
  7525  			z.EncWriteArrayElem()
  7526  			r.EncodeString(string(x.codecgenK.Y))
  7527  			z.EncWriteArrayEnd()
  7528  		} else {
  7529  			z.EncWriteMapStart(2)
  7530  			if z.EncBasicHandle().Canonical {
  7531  				z.EncWriteMapElemKey()
  7532  				if z.IsJSONHandle() {
  7533  					z.EncWr().WriteStr("\"X\"")
  7534  				} else {
  7535  					r.EncodeString(`X`)
  7536  				}
  7537  				z.EncWriteMapElemValue()
  7538  				r.EncodeInt(int64(x.codecgenK.X))
  7539  				z.EncWriteMapElemKey()
  7540  				if z.IsJSONHandle() {
  7541  					z.EncWr().WriteStr("\"Y\"")
  7542  				} else {
  7543  					r.EncodeString(`Y`)
  7544  				}
  7545  				z.EncWriteMapElemValue()
  7546  				r.EncodeString(string(x.codecgenK.Y))
  7547  			} else {
  7548  				z.EncWriteMapElemKey()
  7549  				if z.IsJSONHandle() {
  7550  					z.EncWr().WriteStr("\"X\"")
  7551  				} else {
  7552  					r.EncodeString(`X`)
  7553  				}
  7554  				z.EncWriteMapElemValue()
  7555  				r.EncodeInt(int64(x.codecgenK.X))
  7556  				z.EncWriteMapElemKey()
  7557  				if z.IsJSONHandle() {
  7558  					z.EncWr().WriteStr("\"Y\"")
  7559  				} else {
  7560  					r.EncodeString(`Y`)
  7561  				}
  7562  				z.EncWriteMapElemValue()
  7563  				r.EncodeString(string(x.codecgenK.Y))
  7564  			}
  7565  			z.EncWriteMapEnd()
  7566  		}
  7567  	}
  7568  }
  7569  
  7570  func (x *codecgenM) CodecDecodeSelf(d *Decoder) {
  7571  	var h codecSelfer19780
  7572  	z, r := GenHelper().Decoder(d)
  7573  	_, _, _ = h, z, r
  7574  	yyct2 := r.ContainerType()
  7575  	if yyct2 == codecSelferValueTypeNil19780 {
  7576  		*(x) = codecgenM{}
  7577  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7578  		yyl2 := z.DecReadMapStart()
  7579  		if yyl2 == 0 {
  7580  		} else {
  7581  			x.codecDecodeSelfFromMap(yyl2, d)
  7582  		}
  7583  		z.DecReadMapEnd()
  7584  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7585  		yyl2 := z.DecReadArrayStart()
  7586  		if yyl2 != 0 {
  7587  			x.codecDecodeSelfFromArray(yyl2, d)
  7588  		}
  7589  		z.DecReadArrayEnd()
  7590  	} else {
  7591  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7592  	}
  7593  }
  7594  
  7595  func (x *codecgenM) codecDecodeSelfFromMap(l int, d *Decoder) {
  7596  	var h codecSelfer19780
  7597  	z, r := GenHelper().Decoder(d)
  7598  	_, _, _ = h, z, r
  7599  	var yyhl3 bool = l >= 0
  7600  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  7601  		z.DecReadMapElemKey()
  7602  		yys3 := r.DecodeStringAsBytes()
  7603  		z.DecReadMapElemValue()
  7604  		switch string(yys3) {
  7605  		case "X":
  7606  			x.codecgenK.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7607  		case "Y":
  7608  			x.codecgenK.Y = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  7609  		default:
  7610  			z.DecStructFieldNotFound(-1, string(yys3))
  7611  		} // end switch yys3
  7612  	} // end for yyj3
  7613  }
  7614  
  7615  func (x *codecgenM) codecDecodeSelfFromArray(l int, d *Decoder) {
  7616  	var h codecSelfer19780
  7617  	z, r := GenHelper().Decoder(d)
  7618  	_, _, _ = h, z, r
  7619  	var yyj6 int
  7620  	var yyb6 bool
  7621  	var yyhl6 bool = l >= 0
  7622  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  7623  	if yyb6 {
  7624  		z.DecReadArrayEnd()
  7625  		return
  7626  	}
  7627  	z.DecReadArrayElem()
  7628  	x.codecgenK.X = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7629  	yyj6++
  7630  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  7631  	if yyb6 {
  7632  		z.DecReadArrayEnd()
  7633  		return
  7634  	}
  7635  	z.DecReadArrayElem()
  7636  	x.codecgenK.Y = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  7637  	yyj6++
  7638  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
  7639  		z.DecReadArrayElem()
  7640  		z.DecStructFieldNotFound(yyj6-1, "")
  7641  	}
  7642  }
  7643  
  7644  func (x *codecgenM) IsCodecEmpty() bool {
  7645  	return !(!(x.codecgenK.IsCodecEmpty()) || false)
  7646  }
  7647  
  7648  func (testStrucKeyTypeT0) codecSelferViaCodecgen() {}
  7649  func (x *testStrucKeyTypeT0) CodecEncodeSelf(e *Encoder) {
  7650  	var h codecSelfer19780
  7651  	z, r := GenHelper().Encoder(e)
  7652  	_, _, _ = h, z, r
  7653  	if z.EncBasicHandle().CheckCircularRef {
  7654  		z.EncEncode(x)
  7655  		return
  7656  	}
  7657  	if x == nil {
  7658  		r.EncodeNil()
  7659  	} else {
  7660  		yy2arr2 := z.EncBasicHandle().StructToArray
  7661  		_ = yy2arr2
  7662  		const yyr2 bool = false // struct tag has 'toArray'
  7663  		if yyr2 || yy2arr2 {
  7664  			z.EncWriteArrayStart(1)
  7665  			z.EncWriteArrayElem()
  7666  			r.EncodeInt(int64(x.F))
  7667  			z.EncWriteArrayEnd()
  7668  		} else {
  7669  			z.EncWriteMapStart(1)
  7670  			if z.EncBasicHandle().Canonical {
  7671  				z.EncWriteMapElemKey()
  7672  				if z.IsJSONHandle() {
  7673  					z.EncWr().WriteStr("\"F\"")
  7674  				} else {
  7675  					r.EncodeString(`F`)
  7676  				}
  7677  				z.EncWriteMapElemValue()
  7678  				r.EncodeInt(int64(x.F))
  7679  			} else {
  7680  				z.EncWriteMapElemKey()
  7681  				if z.IsJSONHandle() {
  7682  					z.EncWr().WriteStr("\"F\"")
  7683  				} else {
  7684  					r.EncodeString(`F`)
  7685  				}
  7686  				z.EncWriteMapElemValue()
  7687  				r.EncodeInt(int64(x.F))
  7688  			}
  7689  			z.EncWriteMapEnd()
  7690  		}
  7691  	}
  7692  }
  7693  
  7694  func (x *testStrucKeyTypeT0) CodecDecodeSelf(d *Decoder) {
  7695  	var h codecSelfer19780
  7696  	z, r := GenHelper().Decoder(d)
  7697  	_, _, _ = h, z, r
  7698  	yyct2 := r.ContainerType()
  7699  	if yyct2 == codecSelferValueTypeNil19780 {
  7700  		*(x) = testStrucKeyTypeT0{}
  7701  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7702  		yyl2 := z.DecReadMapStart()
  7703  		if yyl2 == 0 {
  7704  		} else {
  7705  			x.codecDecodeSelfFromMap(yyl2, d)
  7706  		}
  7707  		z.DecReadMapEnd()
  7708  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7709  		yyl2 := z.DecReadArrayStart()
  7710  		if yyl2 != 0 {
  7711  			x.codecDecodeSelfFromArray(yyl2, d)
  7712  		}
  7713  		z.DecReadArrayEnd()
  7714  	} else {
  7715  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7716  	}
  7717  }
  7718  
  7719  func (x *testStrucKeyTypeT0) codecDecodeSelfFromMap(l int, d *Decoder) {
  7720  	var h codecSelfer19780
  7721  	z, r := GenHelper().Decoder(d)
  7722  	_, _, _ = h, z, r
  7723  	var yyhl3 bool = l >= 0
  7724  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  7725  		z.DecReadMapElemKey()
  7726  		yys3 := r.DecodeStringAsBytes()
  7727  		z.DecReadMapElemValue()
  7728  		switch string(yys3) {
  7729  		case "F":
  7730  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7731  		default:
  7732  			z.DecStructFieldNotFound(-1, string(yys3))
  7733  		} // end switch yys3
  7734  	} // end for yyj3
  7735  }
  7736  
  7737  func (x *testStrucKeyTypeT0) codecDecodeSelfFromArray(l int, d *Decoder) {
  7738  	var h codecSelfer19780
  7739  	z, r := GenHelper().Decoder(d)
  7740  	_, _, _ = h, z, r
  7741  	var yyj5 int
  7742  	var yyb5 bool
  7743  	var yyhl5 bool = l >= 0
  7744  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  7745  	if yyb5 {
  7746  		z.DecReadArrayEnd()
  7747  		return
  7748  	}
  7749  	z.DecReadArrayElem()
  7750  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7751  	yyj5++
  7752  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  7753  		z.DecReadArrayElem()
  7754  		z.DecStructFieldNotFound(yyj5-1, "")
  7755  	}
  7756  }
  7757  
  7758  func (x *testStrucKeyTypeT0) IsCodecEmpty() bool {
  7759  	return !(x.F != 0 || false)
  7760  }
  7761  
  7762  func (testStrucKeyTypeT1) codecSelferViaCodecgen() {}
  7763  func (x *testStrucKeyTypeT1) CodecEncodeSelf(e *Encoder) {
  7764  	var h codecSelfer19780
  7765  	z, r := GenHelper().Encoder(e)
  7766  	_, _, _ = h, z, r
  7767  	if z.EncBasicHandle().CheckCircularRef {
  7768  		z.EncEncode(x)
  7769  		return
  7770  	}
  7771  	if x == nil {
  7772  		r.EncodeNil()
  7773  	} else {
  7774  		yy2arr2 := z.EncBasicHandle().StructToArray
  7775  		_ = yy2arr2
  7776  		const yyr2 bool = false // struct tag has 'toArray'
  7777  		if yyr2 || yy2arr2 {
  7778  			z.EncWriteArrayStart(1)
  7779  			z.EncWriteArrayElem()
  7780  			r.EncodeInt(int64(x.F))
  7781  			z.EncWriteArrayEnd()
  7782  		} else {
  7783  			z.EncWriteMapStart(1)
  7784  			if z.EncBasicHandle().Canonical {
  7785  				z.EncWriteMapElemKey()
  7786  				if z.IsJSONHandle() {
  7787  					z.EncWr().WriteStr("\"FFFF\"")
  7788  				} else {
  7789  					r.EncodeString(`FFFF`)
  7790  				}
  7791  				z.EncWriteMapElemValue()
  7792  				r.EncodeInt(int64(x.F))
  7793  			} else {
  7794  				z.EncWriteMapElemKey()
  7795  				if z.IsJSONHandle() {
  7796  					z.EncWr().WriteStr("\"FFFF\"")
  7797  				} else {
  7798  					r.EncodeString(`FFFF`)
  7799  				}
  7800  				z.EncWriteMapElemValue()
  7801  				r.EncodeInt(int64(x.F))
  7802  			}
  7803  			z.EncWriteMapEnd()
  7804  		}
  7805  	}
  7806  }
  7807  
  7808  func (x *testStrucKeyTypeT1) CodecDecodeSelf(d *Decoder) {
  7809  	var h codecSelfer19780
  7810  	z, r := GenHelper().Decoder(d)
  7811  	_, _, _ = h, z, r
  7812  	yyct2 := r.ContainerType()
  7813  	if yyct2 == codecSelferValueTypeNil19780 {
  7814  		*(x) = testStrucKeyTypeT1{}
  7815  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7816  		yyl2 := z.DecReadMapStart()
  7817  		if yyl2 == 0 {
  7818  		} else {
  7819  			x.codecDecodeSelfFromMap(yyl2, d)
  7820  		}
  7821  		z.DecReadMapEnd()
  7822  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7823  		yyl2 := z.DecReadArrayStart()
  7824  		if yyl2 != 0 {
  7825  			x.codecDecodeSelfFromArray(yyl2, d)
  7826  		}
  7827  		z.DecReadArrayEnd()
  7828  	} else {
  7829  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7830  	}
  7831  }
  7832  
  7833  func (x *testStrucKeyTypeT1) codecDecodeSelfFromMap(l int, d *Decoder) {
  7834  	var h codecSelfer19780
  7835  	z, r := GenHelper().Decoder(d)
  7836  	_, _, _ = h, z, r
  7837  	var yyhl3 bool = l >= 0
  7838  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  7839  		z.DecReadMapElemKey()
  7840  		yys3 := r.DecodeStringAsBytes()
  7841  		z.DecReadMapElemValue()
  7842  		switch string(yys3) {
  7843  		case "FFFF":
  7844  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7845  		default:
  7846  			z.DecStructFieldNotFound(-1, string(yys3))
  7847  		} // end switch yys3
  7848  	} // end for yyj3
  7849  }
  7850  
  7851  func (x *testStrucKeyTypeT1) codecDecodeSelfFromArray(l int, d *Decoder) {
  7852  	var h codecSelfer19780
  7853  	z, r := GenHelper().Decoder(d)
  7854  	_, _, _ = h, z, r
  7855  	var yyj5 int
  7856  	var yyb5 bool
  7857  	var yyhl5 bool = l >= 0
  7858  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  7859  	if yyb5 {
  7860  		z.DecReadArrayEnd()
  7861  		return
  7862  	}
  7863  	z.DecReadArrayElem()
  7864  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7865  	yyj5++
  7866  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  7867  		z.DecReadArrayElem()
  7868  		z.DecStructFieldNotFound(yyj5-1, "")
  7869  	}
  7870  }
  7871  
  7872  func (x *testStrucKeyTypeT1) IsCodecEmpty() bool {
  7873  	return !(x.F != 0 || false)
  7874  }
  7875  
  7876  func (testStrucKeyTypeT2) codecSelferViaCodecgen() {}
  7877  func (x *testStrucKeyTypeT2) CodecEncodeSelf(e *Encoder) {
  7878  	var h codecSelfer19780
  7879  	z, r := GenHelper().Encoder(e)
  7880  	_, _, _ = h, z, r
  7881  	if z.EncBasicHandle().CheckCircularRef {
  7882  		z.EncEncode(x)
  7883  		return
  7884  	}
  7885  	if x == nil {
  7886  		r.EncodeNil()
  7887  	} else {
  7888  		yy2arr2 := z.EncBasicHandle().StructToArray
  7889  		_ = yy2arr2
  7890  		const yyr2 bool = false // struct tag has 'toArray'
  7891  		if yyr2 || yy2arr2 {
  7892  			z.EncWriteArrayStart(1)
  7893  			z.EncWriteArrayElem()
  7894  			r.EncodeInt(int64(x.F))
  7895  			z.EncWriteArrayEnd()
  7896  		} else {
  7897  			z.EncWriteMapStart(1)
  7898  			if z.EncBasicHandle().Canonical {
  7899  				z.EncWriteMapElemKey()
  7900  				r.EncodeInt(z.M.Int(strconv.ParseInt(`-1`, 10, 64)))
  7901  				z.EncWriteMapElemValue()
  7902  				r.EncodeInt(int64(x.F))
  7903  			} else {
  7904  				z.EncWriteMapElemKey()
  7905  				r.EncodeInt(z.M.Int(strconv.ParseInt(`-1`, 10, 64)))
  7906  				z.EncWriteMapElemValue()
  7907  				r.EncodeInt(int64(x.F))
  7908  			}
  7909  			z.EncWriteMapEnd()
  7910  		}
  7911  	}
  7912  }
  7913  
  7914  func (x *testStrucKeyTypeT2) CodecDecodeSelf(d *Decoder) {
  7915  	var h codecSelfer19780
  7916  	z, r := GenHelper().Decoder(d)
  7917  	_, _, _ = h, z, r
  7918  	yyct2 := r.ContainerType()
  7919  	if yyct2 == codecSelferValueTypeNil19780 {
  7920  		*(x) = testStrucKeyTypeT2{}
  7921  	} else if yyct2 == codecSelferValueTypeMap19780 {
  7922  		yyl2 := z.DecReadMapStart()
  7923  		if yyl2 == 0 {
  7924  		} else {
  7925  			x.codecDecodeSelfFromMap(yyl2, d)
  7926  		}
  7927  		z.DecReadMapEnd()
  7928  	} else if yyct2 == codecSelferValueTypeArray19780 {
  7929  		yyl2 := z.DecReadArrayStart()
  7930  		if yyl2 != 0 {
  7931  			x.codecDecodeSelfFromArray(yyl2, d)
  7932  		}
  7933  		z.DecReadArrayEnd()
  7934  	} else {
  7935  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  7936  	}
  7937  }
  7938  
  7939  func (x *testStrucKeyTypeT2) codecDecodeSelfFromMap(l int, d *Decoder) {
  7940  	var h codecSelfer19780
  7941  	z, r := GenHelper().Decoder(d)
  7942  	_, _, _ = h, z, r
  7943  	var yyhl3 bool = l >= 0
  7944  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  7945  		z.DecReadMapElemKey()
  7946  		yys3 := strconv.AppendInt(z.DecScratchArrayBuffer()[:0], r.DecodeInt64(), 10)
  7947  		z.DecReadMapElemValue()
  7948  		switch string(yys3) {
  7949  		case "-1":
  7950  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7951  		default:
  7952  			z.DecStructFieldNotFound(-1, string(yys3))
  7953  		} // end switch yys3
  7954  	} // end for yyj3
  7955  }
  7956  
  7957  func (x *testStrucKeyTypeT2) codecDecodeSelfFromArray(l int, d *Decoder) {
  7958  	var h codecSelfer19780
  7959  	z, r := GenHelper().Decoder(d)
  7960  	_, _, _ = h, z, r
  7961  	var yyj5 int
  7962  	var yyb5 bool
  7963  	var yyhl5 bool = l >= 0
  7964  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  7965  	if yyb5 {
  7966  		z.DecReadArrayEnd()
  7967  		return
  7968  	}
  7969  	z.DecReadArrayElem()
  7970  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  7971  	yyj5++
  7972  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  7973  		z.DecReadArrayElem()
  7974  		z.DecStructFieldNotFound(yyj5-1, "")
  7975  	}
  7976  }
  7977  
  7978  func (x *testStrucKeyTypeT2) IsCodecEmpty() bool {
  7979  	return !(x.F != 0 || false)
  7980  }
  7981  
  7982  func (testStrucKeyTypeT3) codecSelferViaCodecgen() {}
  7983  func (x *testStrucKeyTypeT3) CodecEncodeSelf(e *Encoder) {
  7984  	var h codecSelfer19780
  7985  	z, r := GenHelper().Encoder(e)
  7986  	_, _, _ = h, z, r
  7987  	if z.EncBasicHandle().CheckCircularRef {
  7988  		z.EncEncode(x)
  7989  		return
  7990  	}
  7991  	if x == nil {
  7992  		r.EncodeNil()
  7993  	} else {
  7994  		yy2arr2 := z.EncBasicHandle().StructToArray
  7995  		_ = yy2arr2
  7996  		const yyr2 bool = false // struct tag has 'toArray'
  7997  		if yyr2 || yy2arr2 {
  7998  			z.EncWriteArrayStart(1)
  7999  			z.EncWriteArrayElem()
  8000  			r.EncodeInt(int64(x.F))
  8001  			z.EncWriteArrayEnd()
  8002  		} else {
  8003  			z.EncWriteMapStart(1)
  8004  			if z.EncBasicHandle().Canonical {
  8005  				z.EncWriteMapElemKey()
  8006  				r.EncodeUint(z.M.Uint(strconv.ParseUint(`1`, 10, 64)))
  8007  				z.EncWriteMapElemValue()
  8008  				r.EncodeInt(int64(x.F))
  8009  			} else {
  8010  				z.EncWriteMapElemKey()
  8011  				r.EncodeUint(z.M.Uint(strconv.ParseUint(`1`, 10, 64)))
  8012  				z.EncWriteMapElemValue()
  8013  				r.EncodeInt(int64(x.F))
  8014  			}
  8015  			z.EncWriteMapEnd()
  8016  		}
  8017  	}
  8018  }
  8019  
  8020  func (x *testStrucKeyTypeT3) CodecDecodeSelf(d *Decoder) {
  8021  	var h codecSelfer19780
  8022  	z, r := GenHelper().Decoder(d)
  8023  	_, _, _ = h, z, r
  8024  	yyct2 := r.ContainerType()
  8025  	if yyct2 == codecSelferValueTypeNil19780 {
  8026  		*(x) = testStrucKeyTypeT3{}
  8027  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8028  		yyl2 := z.DecReadMapStart()
  8029  		if yyl2 == 0 {
  8030  		} else {
  8031  			x.codecDecodeSelfFromMap(yyl2, d)
  8032  		}
  8033  		z.DecReadMapEnd()
  8034  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8035  		yyl2 := z.DecReadArrayStart()
  8036  		if yyl2 != 0 {
  8037  			x.codecDecodeSelfFromArray(yyl2, d)
  8038  		}
  8039  		z.DecReadArrayEnd()
  8040  	} else {
  8041  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8042  	}
  8043  }
  8044  
  8045  func (x *testStrucKeyTypeT3) codecDecodeSelfFromMap(l int, d *Decoder) {
  8046  	var h codecSelfer19780
  8047  	z, r := GenHelper().Decoder(d)
  8048  	_, _, _ = h, z, r
  8049  	var yyhl3 bool = l >= 0
  8050  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  8051  		z.DecReadMapElemKey()
  8052  		yys3 := strconv.AppendUint(z.DecScratchArrayBuffer()[:0], r.DecodeUint64(), 10)
  8053  		z.DecReadMapElemValue()
  8054  		switch string(yys3) {
  8055  		case "1":
  8056  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8057  		default:
  8058  			z.DecStructFieldNotFound(-1, string(yys3))
  8059  		} // end switch yys3
  8060  	} // end for yyj3
  8061  }
  8062  
  8063  func (x *testStrucKeyTypeT3) codecDecodeSelfFromArray(l int, d *Decoder) {
  8064  	var h codecSelfer19780
  8065  	z, r := GenHelper().Decoder(d)
  8066  	_, _, _ = h, z, r
  8067  	var yyj5 int
  8068  	var yyb5 bool
  8069  	var yyhl5 bool = l >= 0
  8070  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  8071  	if yyb5 {
  8072  		z.DecReadArrayEnd()
  8073  		return
  8074  	}
  8075  	z.DecReadArrayElem()
  8076  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8077  	yyj5++
  8078  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  8079  		z.DecReadArrayElem()
  8080  		z.DecStructFieldNotFound(yyj5-1, "")
  8081  	}
  8082  }
  8083  
  8084  func (x *testStrucKeyTypeT3) IsCodecEmpty() bool {
  8085  	return !(x.F != 0 || false)
  8086  }
  8087  
  8088  func (testStrucKeyTypeT4) codecSelferViaCodecgen() {}
  8089  func (x *testStrucKeyTypeT4) CodecEncodeSelf(e *Encoder) {
  8090  	var h codecSelfer19780
  8091  	z, r := GenHelper().Encoder(e)
  8092  	_, _, _ = h, z, r
  8093  	if z.EncBasicHandle().CheckCircularRef {
  8094  		z.EncEncode(x)
  8095  		return
  8096  	}
  8097  	if x == nil {
  8098  		r.EncodeNil()
  8099  	} else {
  8100  		yy2arr2 := z.EncBasicHandle().StructToArray
  8101  		_ = yy2arr2
  8102  		const yyr2 bool = false // struct tag has 'toArray'
  8103  		if yyr2 || yy2arr2 {
  8104  			z.EncWriteArrayStart(1)
  8105  			z.EncWriteArrayElem()
  8106  			r.EncodeInt(int64(x.F))
  8107  			z.EncWriteArrayEnd()
  8108  		} else {
  8109  			z.EncWriteMapStart(1)
  8110  			if z.EncBasicHandle().Canonical {
  8111  				z.EncWriteMapElemKey()
  8112  				r.EncodeFloat64(z.M.Float(strconv.ParseFloat(`2.5`, 64)))
  8113  				z.EncWriteMapElemValue()
  8114  				r.EncodeInt(int64(x.F))
  8115  			} else {
  8116  				z.EncWriteMapElemKey()
  8117  				r.EncodeFloat64(z.M.Float(strconv.ParseFloat(`2.5`, 64)))
  8118  				z.EncWriteMapElemValue()
  8119  				r.EncodeInt(int64(x.F))
  8120  			}
  8121  			z.EncWriteMapEnd()
  8122  		}
  8123  	}
  8124  }
  8125  
  8126  func (x *testStrucKeyTypeT4) CodecDecodeSelf(d *Decoder) {
  8127  	var h codecSelfer19780
  8128  	z, r := GenHelper().Decoder(d)
  8129  	_, _, _ = h, z, r
  8130  	yyct2 := r.ContainerType()
  8131  	if yyct2 == codecSelferValueTypeNil19780 {
  8132  		*(x) = testStrucKeyTypeT4{}
  8133  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8134  		yyl2 := z.DecReadMapStart()
  8135  		if yyl2 == 0 {
  8136  		} else {
  8137  			x.codecDecodeSelfFromMap(yyl2, d)
  8138  		}
  8139  		z.DecReadMapEnd()
  8140  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8141  		yyl2 := z.DecReadArrayStart()
  8142  		if yyl2 != 0 {
  8143  			x.codecDecodeSelfFromArray(yyl2, d)
  8144  		}
  8145  		z.DecReadArrayEnd()
  8146  	} else {
  8147  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8148  	}
  8149  }
  8150  
  8151  func (x *testStrucKeyTypeT4) codecDecodeSelfFromMap(l int, d *Decoder) {
  8152  	var h codecSelfer19780
  8153  	z, r := GenHelper().Decoder(d)
  8154  	_, _, _ = h, z, r
  8155  	var yyhl3 bool = l >= 0
  8156  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  8157  		z.DecReadMapElemKey()
  8158  		yys3 := strconv.AppendFloat(z.DecScratchArrayBuffer()[:0], r.DecodeFloat64(), 'f', -1, 64)
  8159  		z.DecReadMapElemValue()
  8160  		switch string(yys3) {
  8161  		case "2.5":
  8162  			x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8163  		default:
  8164  			z.DecStructFieldNotFound(-1, string(yys3))
  8165  		} // end switch yys3
  8166  	} // end for yyj3
  8167  }
  8168  
  8169  func (x *testStrucKeyTypeT4) codecDecodeSelfFromArray(l int, d *Decoder) {
  8170  	var h codecSelfer19780
  8171  	z, r := GenHelper().Decoder(d)
  8172  	_, _, _ = h, z, r
  8173  	var yyj5 int
  8174  	var yyb5 bool
  8175  	var yyhl5 bool = l >= 0
  8176  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  8177  	if yyb5 {
  8178  		z.DecReadArrayEnd()
  8179  		return
  8180  	}
  8181  	z.DecReadArrayElem()
  8182  	x.F = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8183  	yyj5++
  8184  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  8185  		z.DecReadArrayElem()
  8186  		z.DecStructFieldNotFound(yyj5-1, "")
  8187  	}
  8188  }
  8189  
  8190  func (x *testStrucKeyTypeT4) IsCodecEmpty() bool {
  8191  	return !(x.F != 0 || false)
  8192  }
  8193  
  8194  func (Bbool) codecSelferViaCodecgen() {}
  8195  func (x Bbool) CodecEncodeSelf(e *Encoder) {
  8196  	var h codecSelfer19780
  8197  	z, r := GenHelper().Encoder(e)
  8198  	_, _, _ = h, z, r
  8199  	r.EncodeBool(bool(x))
  8200  }
  8201  
  8202  func (x *Bbool) CodecDecodeSelf(d *Decoder) {
  8203  	var h codecSelfer19780
  8204  	z, r := GenHelper().Decoder(d)
  8205  	_, _, _ = h, z, r
  8206  	*x = (Bbool)(r.DecodeBool())
  8207  }
  8208  
  8209  func (Aarray) codecSelferViaCodecgen() {}
  8210  func (x *Aarray) CodecEncodeSelf(e *Encoder) {
  8211  	var h codecSelfer19780
  8212  	z, r := GenHelper().Encoder(e)
  8213  	_, _, _ = h, z, r
  8214  	if x == nil {
  8215  		r.EncodeNil()
  8216  	} else {
  8217  		z.F.EncSliceStringV(([]string)(x[:]), e)
  8218  	}
  8219  }
  8220  
  8221  func (x *Aarray) CodecDecodeSelf(d *Decoder) {
  8222  	var h codecSelfer19780
  8223  	z, r := GenHelper().Decoder(d)
  8224  	_, _, _ = h, z, r
  8225  	z.F.DecSliceStringN(([]string)(x[:]), d)
  8226  }
  8227  
  8228  func (Sstring) codecSelferViaCodecgen() {}
  8229  func (x Sstring) CodecEncodeSelf(e *Encoder) {
  8230  	var h codecSelfer19780
  8231  	z, r := GenHelper().Encoder(e)
  8232  	_, _, _ = h, z, r
  8233  	r.EncodeString(string(x))
  8234  }
  8235  
  8236  func (x *Sstring) CodecDecodeSelf(d *Decoder) {
  8237  	var h codecSelfer19780
  8238  	z, r := GenHelper().Decoder(d)
  8239  	_, _, _ = h, z, r
  8240  	*x = (Sstring)(z.DecStringZC(r.DecodeStringAsBytes()))
  8241  }
  8242  
  8243  func (Sstructsmall) codecSelferViaCodecgen() {}
  8244  func (x *Sstructsmall) CodecEncodeSelf(e *Encoder) {
  8245  	var h codecSelfer19780
  8246  	z, r := GenHelper().Encoder(e)
  8247  	_, _, _ = h, z, r
  8248  	if z.EncBasicHandle().CheckCircularRef {
  8249  		z.EncEncode(x)
  8250  		return
  8251  	}
  8252  	if x == nil {
  8253  		r.EncodeNil()
  8254  	} else {
  8255  		yy2arr2 := z.EncBasicHandle().StructToArray
  8256  		_ = yy2arr2
  8257  		const yyr2 bool = false // struct tag has 'toArray'
  8258  		if yyr2 || yy2arr2 {
  8259  			z.EncWriteArrayStart(1)
  8260  			z.EncWriteArrayElem()
  8261  			r.EncodeInt(int64(x.A))
  8262  			z.EncWriteArrayEnd()
  8263  		} else {
  8264  			z.EncWriteMapStart(1)
  8265  			if z.EncBasicHandle().Canonical {
  8266  				z.EncWriteMapElemKey()
  8267  				if z.IsJSONHandle() {
  8268  					z.EncWr().WriteStr("\"A\"")
  8269  				} else {
  8270  					r.EncodeString(`A`)
  8271  				}
  8272  				z.EncWriteMapElemValue()
  8273  				r.EncodeInt(int64(x.A))
  8274  			} else {
  8275  				z.EncWriteMapElemKey()
  8276  				if z.IsJSONHandle() {
  8277  					z.EncWr().WriteStr("\"A\"")
  8278  				} else {
  8279  					r.EncodeString(`A`)
  8280  				}
  8281  				z.EncWriteMapElemValue()
  8282  				r.EncodeInt(int64(x.A))
  8283  			}
  8284  			z.EncWriteMapEnd()
  8285  		}
  8286  	}
  8287  }
  8288  
  8289  func (x *Sstructsmall) CodecDecodeSelf(d *Decoder) {
  8290  	var h codecSelfer19780
  8291  	z, r := GenHelper().Decoder(d)
  8292  	_, _, _ = h, z, r
  8293  	yyct2 := r.ContainerType()
  8294  	if yyct2 == codecSelferValueTypeNil19780 {
  8295  		*(x) = Sstructsmall{}
  8296  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8297  		yyl2 := z.DecReadMapStart()
  8298  		if yyl2 == 0 {
  8299  		} else {
  8300  			x.codecDecodeSelfFromMap(yyl2, d)
  8301  		}
  8302  		z.DecReadMapEnd()
  8303  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8304  		yyl2 := z.DecReadArrayStart()
  8305  		if yyl2 != 0 {
  8306  			x.codecDecodeSelfFromArray(yyl2, d)
  8307  		}
  8308  		z.DecReadArrayEnd()
  8309  	} else {
  8310  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8311  	}
  8312  }
  8313  
  8314  func (x *Sstructsmall) codecDecodeSelfFromMap(l int, d *Decoder) {
  8315  	var h codecSelfer19780
  8316  	z, r := GenHelper().Decoder(d)
  8317  	_, _, _ = h, z, r
  8318  	var yyhl3 bool = l >= 0
  8319  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  8320  		z.DecReadMapElemKey()
  8321  		yys3 := r.DecodeStringAsBytes()
  8322  		z.DecReadMapElemValue()
  8323  		switch string(yys3) {
  8324  		case "A":
  8325  			x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8326  		default:
  8327  			z.DecStructFieldNotFound(-1, string(yys3))
  8328  		} // end switch yys3
  8329  	} // end for yyj3
  8330  }
  8331  
  8332  func (x *Sstructsmall) codecDecodeSelfFromArray(l int, d *Decoder) {
  8333  	var h codecSelfer19780
  8334  	z, r := GenHelper().Decoder(d)
  8335  	_, _, _ = h, z, r
  8336  	var yyj5 int
  8337  	var yyb5 bool
  8338  	var yyhl5 bool = l >= 0
  8339  	yyb5 = !z.DecContainerNext(yyj5, l, yyhl5)
  8340  	if yyb5 {
  8341  		z.DecReadArrayEnd()
  8342  		return
  8343  	}
  8344  	z.DecReadArrayElem()
  8345  	x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8346  	yyj5++
  8347  	for ; z.DecContainerNext(yyj5, l, yyhl5); yyj5++ {
  8348  		z.DecReadArrayElem()
  8349  		z.DecStructFieldNotFound(yyj5-1, "")
  8350  	}
  8351  }
  8352  
  8353  func (x *Sstructsmall) IsCodecEmpty() bool {
  8354  	return !(x.A != 0 || false)
  8355  }
  8356  
  8357  func (Sstructbig) codecSelferViaCodecgen() {}
  8358  func (x *Sstructbig) CodecEncodeSelf(e *Encoder) {
  8359  	var h codecSelfer19780
  8360  	z, r := GenHelper().Encoder(e)
  8361  	_, _, _ = h, z, r
  8362  	if z.EncBasicHandle().CheckCircularRef {
  8363  		z.EncEncode(x)
  8364  		return
  8365  	}
  8366  	if x == nil {
  8367  		r.EncodeNil()
  8368  	} else {
  8369  		yy2arr2 := z.EncBasicHandle().StructToArray
  8370  		_ = yy2arr2
  8371  		const yyr2 bool = false // struct tag has 'toArray'
  8372  		var yyn5 bool = x.Ssmallptr == nil
  8373  		var yyn7 bool = x.Sptr == nil
  8374  		if yyr2 || yy2arr2 {
  8375  			z.EncWriteArrayStart(5)
  8376  			z.EncWriteArrayElem()
  8377  			r.EncodeInt(int64(x.A))
  8378  			z.EncWriteArrayElem()
  8379  			r.EncodeBool(bool(x.B))
  8380  			if yyn5 {
  8381  				z.EncWriteArrayElem()
  8382  				r.EncodeNil()
  8383  			} else {
  8384  				z.EncWriteArrayElem()
  8385  				if yyxt10 := z.Extension(x.Ssmallptr); yyxt10 != nil {
  8386  					z.EncExtension(x.Ssmallptr, yyxt10)
  8387  				} else {
  8388  					x.Ssmallptr.CodecEncodeSelf(e)
  8389  				}
  8390  			}
  8391  			z.EncWriteArrayElem()
  8392  			yy11 := &x.Ssmall
  8393  			if yyxt12 := z.Extension(yy11); yyxt12 != nil {
  8394  				z.EncExtension(yy11, yyxt12)
  8395  			} else {
  8396  				yy11.CodecEncodeSelf(e)
  8397  			}
  8398  			if yyn7 {
  8399  				z.EncWriteArrayElem()
  8400  				r.EncodeNil()
  8401  			} else {
  8402  				z.EncWriteArrayElem()
  8403  				if yyxt13 := z.Extension(x.Sptr); yyxt13 != nil {
  8404  					z.EncExtension(x.Sptr, yyxt13)
  8405  				} else {
  8406  					x.Sptr.CodecEncodeSelf(e)
  8407  				}
  8408  			}
  8409  			z.EncWriteArrayEnd()
  8410  		} else {
  8411  			z.EncWriteMapStart(5)
  8412  			if z.EncBasicHandle().Canonical {
  8413  				z.EncWriteMapElemKey()
  8414  				if z.IsJSONHandle() {
  8415  					z.EncWr().WriteStr("\"A\"")
  8416  				} else {
  8417  					r.EncodeString(`A`)
  8418  				}
  8419  				z.EncWriteMapElemValue()
  8420  				r.EncodeInt(int64(x.A))
  8421  				z.EncWriteMapElemKey()
  8422  				if z.IsJSONHandle() {
  8423  					z.EncWr().WriteStr("\"B\"")
  8424  				} else {
  8425  					r.EncodeString(`B`)
  8426  				}
  8427  				z.EncWriteMapElemValue()
  8428  				r.EncodeBool(bool(x.B))
  8429  				z.EncWriteMapElemKey()
  8430  				if z.IsJSONHandle() {
  8431  					z.EncWr().WriteStr("\"Sptr\"")
  8432  				} else {
  8433  					r.EncodeString(`Sptr`)
  8434  				}
  8435  				z.EncWriteMapElemValue()
  8436  				if yyn7 {
  8437  					r.EncodeNil()
  8438  				} else {
  8439  					if yyxt16 := z.Extension(x.Sptr); yyxt16 != nil {
  8440  						z.EncExtension(x.Sptr, yyxt16)
  8441  					} else {
  8442  						x.Sptr.CodecEncodeSelf(e)
  8443  					}
  8444  				}
  8445  				z.EncWriteMapElemKey()
  8446  				if z.IsJSONHandle() {
  8447  					z.EncWr().WriteStr("\"Ssmall\"")
  8448  				} else {
  8449  					r.EncodeString(`Ssmall`)
  8450  				}
  8451  				z.EncWriteMapElemValue()
  8452  				yy17 := &x.Ssmall
  8453  				if yyxt18 := z.Extension(yy17); yyxt18 != nil {
  8454  					z.EncExtension(yy17, yyxt18)
  8455  				} else {
  8456  					yy17.CodecEncodeSelf(e)
  8457  				}
  8458  				z.EncWriteMapElemKey()
  8459  				if z.IsJSONHandle() {
  8460  					z.EncWr().WriteStr("\"Ssmallptr\"")
  8461  				} else {
  8462  					r.EncodeString(`Ssmallptr`)
  8463  				}
  8464  				z.EncWriteMapElemValue()
  8465  				if yyn5 {
  8466  					r.EncodeNil()
  8467  				} else {
  8468  					if yyxt19 := z.Extension(x.Ssmallptr); yyxt19 != nil {
  8469  						z.EncExtension(x.Ssmallptr, yyxt19)
  8470  					} else {
  8471  						x.Ssmallptr.CodecEncodeSelf(e)
  8472  					}
  8473  				}
  8474  			} else {
  8475  				z.EncWriteMapElemKey()
  8476  				if z.IsJSONHandle() {
  8477  					z.EncWr().WriteStr("\"A\"")
  8478  				} else {
  8479  					r.EncodeString(`A`)
  8480  				}
  8481  				z.EncWriteMapElemValue()
  8482  				r.EncodeInt(int64(x.A))
  8483  				z.EncWriteMapElemKey()
  8484  				if z.IsJSONHandle() {
  8485  					z.EncWr().WriteStr("\"B\"")
  8486  				} else {
  8487  					r.EncodeString(`B`)
  8488  				}
  8489  				z.EncWriteMapElemValue()
  8490  				r.EncodeBool(bool(x.B))
  8491  				z.EncWriteMapElemKey()
  8492  				if z.IsJSONHandle() {
  8493  					z.EncWr().WriteStr("\"Ssmallptr\"")
  8494  				} else {
  8495  					r.EncodeString(`Ssmallptr`)
  8496  				}
  8497  				z.EncWriteMapElemValue()
  8498  				if yyn5 {
  8499  					r.EncodeNil()
  8500  				} else {
  8501  					if yyxt22 := z.Extension(x.Ssmallptr); yyxt22 != nil {
  8502  						z.EncExtension(x.Ssmallptr, yyxt22)
  8503  					} else {
  8504  						x.Ssmallptr.CodecEncodeSelf(e)
  8505  					}
  8506  				}
  8507  				z.EncWriteMapElemKey()
  8508  				if z.IsJSONHandle() {
  8509  					z.EncWr().WriteStr("\"Ssmall\"")
  8510  				} else {
  8511  					r.EncodeString(`Ssmall`)
  8512  				}
  8513  				z.EncWriteMapElemValue()
  8514  				yy23 := &x.Ssmall
  8515  				if yyxt24 := z.Extension(yy23); yyxt24 != nil {
  8516  					z.EncExtension(yy23, yyxt24)
  8517  				} else {
  8518  					yy23.CodecEncodeSelf(e)
  8519  				}
  8520  				z.EncWriteMapElemKey()
  8521  				if z.IsJSONHandle() {
  8522  					z.EncWr().WriteStr("\"Sptr\"")
  8523  				} else {
  8524  					r.EncodeString(`Sptr`)
  8525  				}
  8526  				z.EncWriteMapElemValue()
  8527  				if yyn7 {
  8528  					r.EncodeNil()
  8529  				} else {
  8530  					if yyxt25 := z.Extension(x.Sptr); yyxt25 != nil {
  8531  						z.EncExtension(x.Sptr, yyxt25)
  8532  					} else {
  8533  						x.Sptr.CodecEncodeSelf(e)
  8534  					}
  8535  				}
  8536  			}
  8537  			z.EncWriteMapEnd()
  8538  		}
  8539  	}
  8540  }
  8541  
  8542  func (x *Sstructbig) CodecDecodeSelf(d *Decoder) {
  8543  	var h codecSelfer19780
  8544  	z, r := GenHelper().Decoder(d)
  8545  	_, _, _ = h, z, r
  8546  	yyct2 := r.ContainerType()
  8547  	if yyct2 == codecSelferValueTypeNil19780 {
  8548  		*(x) = Sstructbig{}
  8549  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8550  		yyl2 := z.DecReadMapStart()
  8551  		if yyl2 == 0 {
  8552  		} else {
  8553  			x.codecDecodeSelfFromMap(yyl2, d)
  8554  		}
  8555  		z.DecReadMapEnd()
  8556  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8557  		yyl2 := z.DecReadArrayStart()
  8558  		if yyl2 != 0 {
  8559  			x.codecDecodeSelfFromArray(yyl2, d)
  8560  		}
  8561  		z.DecReadArrayEnd()
  8562  	} else {
  8563  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8564  	}
  8565  }
  8566  
  8567  func (x *Sstructbig) codecDecodeSelfFromMap(l int, d *Decoder) {
  8568  	var h codecSelfer19780
  8569  	z, r := GenHelper().Decoder(d)
  8570  	_, _, _ = h, z, r
  8571  	var yyhl3 bool = l >= 0
  8572  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  8573  		z.DecReadMapElemKey()
  8574  		yys3 := r.DecodeStringAsBytes()
  8575  		z.DecReadMapElemValue()
  8576  		switch string(yys3) {
  8577  		case "A":
  8578  			x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8579  		case "B":
  8580  			x.B = (bool)(r.DecodeBool())
  8581  		case "Ssmallptr":
  8582  			if r.TryNil() {
  8583  				if x.Ssmallptr != nil { // remove the if-true
  8584  					x.Ssmallptr = nil
  8585  				}
  8586  			} else {
  8587  				if x.Ssmallptr == nil {
  8588  					x.Ssmallptr = new(Sstructsmall)
  8589  				}
  8590  				if yyxt7 := z.Extension(x.Ssmallptr); yyxt7 != nil {
  8591  					z.DecExtension(x.Ssmallptr, yyxt7)
  8592  				} else {
  8593  					x.Ssmallptr.CodecDecodeSelf(d)
  8594  				}
  8595  			}
  8596  		case "Ssmall":
  8597  			if yyxt9 := z.Extension(x.Ssmall); yyxt9 != nil {
  8598  				z.DecExtension(&x.Ssmall, yyxt9)
  8599  			} else {
  8600  				x.Ssmall.CodecDecodeSelf(d)
  8601  			}
  8602  		case "Sptr":
  8603  			if r.TryNil() {
  8604  				if x.Sptr != nil { // remove the if-true
  8605  					x.Sptr = nil
  8606  				}
  8607  			} else {
  8608  				if x.Sptr == nil {
  8609  					x.Sptr = new(Sstructbig)
  8610  				}
  8611  				if yyxt11 := z.Extension(x.Sptr); yyxt11 != nil {
  8612  					z.DecExtension(x.Sptr, yyxt11)
  8613  				} else {
  8614  					x.Sptr.CodecDecodeSelf(d)
  8615  				}
  8616  			}
  8617  		default:
  8618  			z.DecStructFieldNotFound(-1, string(yys3))
  8619  		} // end switch yys3
  8620  	} // end for yyj3
  8621  }
  8622  
  8623  func (x *Sstructbig) codecDecodeSelfFromArray(l int, d *Decoder) {
  8624  	var h codecSelfer19780
  8625  	z, r := GenHelper().Decoder(d)
  8626  	_, _, _ = h, z, r
  8627  	var yyj12 int
  8628  	var yyb12 bool
  8629  	var yyhl12 bool = l >= 0
  8630  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  8631  	if yyb12 {
  8632  		z.DecReadArrayEnd()
  8633  		return
  8634  	}
  8635  	z.DecReadArrayElem()
  8636  	x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8637  	yyj12++
  8638  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  8639  	if yyb12 {
  8640  		z.DecReadArrayEnd()
  8641  		return
  8642  	}
  8643  	z.DecReadArrayElem()
  8644  	x.B = (bool)(r.DecodeBool())
  8645  	yyj12++
  8646  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  8647  	if yyb12 {
  8648  		z.DecReadArrayEnd()
  8649  		return
  8650  	}
  8651  	z.DecReadArrayElem()
  8652  	if r.TryNil() {
  8653  		if x.Ssmallptr != nil { // remove the if-true
  8654  			x.Ssmallptr = nil
  8655  		}
  8656  	} else {
  8657  		if x.Ssmallptr == nil {
  8658  			x.Ssmallptr = new(Sstructsmall)
  8659  		}
  8660  		if yyxt16 := z.Extension(x.Ssmallptr); yyxt16 != nil {
  8661  			z.DecExtension(x.Ssmallptr, yyxt16)
  8662  		} else {
  8663  			x.Ssmallptr.CodecDecodeSelf(d)
  8664  		}
  8665  	}
  8666  	yyj12++
  8667  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  8668  	if yyb12 {
  8669  		z.DecReadArrayEnd()
  8670  		return
  8671  	}
  8672  	z.DecReadArrayElem()
  8673  	if yyxt18 := z.Extension(x.Ssmall); yyxt18 != nil {
  8674  		z.DecExtension(&x.Ssmall, yyxt18)
  8675  	} else {
  8676  		x.Ssmall.CodecDecodeSelf(d)
  8677  	}
  8678  	yyj12++
  8679  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  8680  	if yyb12 {
  8681  		z.DecReadArrayEnd()
  8682  		return
  8683  	}
  8684  	z.DecReadArrayElem()
  8685  	if r.TryNil() {
  8686  		if x.Sptr != nil { // remove the if-true
  8687  			x.Sptr = nil
  8688  		}
  8689  	} else {
  8690  		if x.Sptr == nil {
  8691  			x.Sptr = new(Sstructbig)
  8692  		}
  8693  		if yyxt20 := z.Extension(x.Sptr); yyxt20 != nil {
  8694  			z.DecExtension(x.Sptr, yyxt20)
  8695  		} else {
  8696  			x.Sptr.CodecDecodeSelf(d)
  8697  		}
  8698  	}
  8699  	yyj12++
  8700  	for ; z.DecContainerNext(yyj12, l, yyhl12); yyj12++ {
  8701  		z.DecReadArrayElem()
  8702  		z.DecStructFieldNotFound(yyj12-1, "")
  8703  	}
  8704  }
  8705  
  8706  func (x *Sstructbig) IsCodecEmpty() bool {
  8707  	return !(x.A != 0 || bool(x.B) || !(x.Ssmall.IsCodecEmpty()) || false)
  8708  }
  8709  
  8710  func (SstructbigToArray) codecSelferViaCodecgen() {}
  8711  func (x *SstructbigToArray) CodecEncodeSelf(e *Encoder) {
  8712  	var h codecSelfer19780
  8713  	z, r := GenHelper().Encoder(e)
  8714  	_, _, _ = h, z, r
  8715  	if z.EncBasicHandle().CheckCircularRef {
  8716  		z.EncEncode(x)
  8717  		return
  8718  	}
  8719  	if x == nil {
  8720  		r.EncodeNil()
  8721  	} else {
  8722  		yy2arr2 := z.EncBasicHandle().StructToArray
  8723  		_ = yy2arr2
  8724  		const yyr2 bool = true // struct tag has 'toArray'
  8725  		var yyn5 bool = x.Ssmallptr == nil
  8726  		var yyn7 bool = x.Sptr == nil
  8727  		if yyr2 || yy2arr2 {
  8728  			z.EncWriteArrayStart(5)
  8729  			z.EncWriteArrayElem()
  8730  			r.EncodeInt(int64(x.A))
  8731  			z.EncWriteArrayElem()
  8732  			r.EncodeBool(bool(x.B))
  8733  			if yyn5 {
  8734  				z.EncWriteArrayElem()
  8735  				r.EncodeNil()
  8736  			} else {
  8737  				z.EncWriteArrayElem()
  8738  				if yyxt10 := z.Extension(x.Ssmallptr); yyxt10 != nil {
  8739  					z.EncExtension(x.Ssmallptr, yyxt10)
  8740  				} else {
  8741  					x.Ssmallptr.CodecEncodeSelf(e)
  8742  				}
  8743  			}
  8744  			z.EncWriteArrayElem()
  8745  			yy11 := &x.Ssmall
  8746  			if yyxt12 := z.Extension(yy11); yyxt12 != nil {
  8747  				z.EncExtension(yy11, yyxt12)
  8748  			} else {
  8749  				yy11.CodecEncodeSelf(e)
  8750  			}
  8751  			if yyn7 {
  8752  				z.EncWriteArrayElem()
  8753  				r.EncodeNil()
  8754  			} else {
  8755  				z.EncWriteArrayElem()
  8756  				if yyxt13 := z.Extension(x.Sptr); yyxt13 != nil {
  8757  					z.EncExtension(x.Sptr, yyxt13)
  8758  				} else {
  8759  					x.Sptr.CodecEncodeSelf(e)
  8760  				}
  8761  			}
  8762  			z.EncWriteArrayEnd()
  8763  		} else {
  8764  			z.EncWriteMapStart(5)
  8765  			if z.EncBasicHandle().Canonical {
  8766  				z.EncWriteMapElemKey()
  8767  				if z.IsJSONHandle() {
  8768  					z.EncWr().WriteStr("\"A\"")
  8769  				} else {
  8770  					r.EncodeString(`A`)
  8771  				}
  8772  				z.EncWriteMapElemValue()
  8773  				r.EncodeInt(int64(x.A))
  8774  				z.EncWriteMapElemKey()
  8775  				if z.IsJSONHandle() {
  8776  					z.EncWr().WriteStr("\"B\"")
  8777  				} else {
  8778  					r.EncodeString(`B`)
  8779  				}
  8780  				z.EncWriteMapElemValue()
  8781  				r.EncodeBool(bool(x.B))
  8782  				z.EncWriteMapElemKey()
  8783  				if z.IsJSONHandle() {
  8784  					z.EncWr().WriteStr("\"Sptr\"")
  8785  				} else {
  8786  					r.EncodeString(`Sptr`)
  8787  				}
  8788  				z.EncWriteMapElemValue()
  8789  				if yyn7 {
  8790  					r.EncodeNil()
  8791  				} else {
  8792  					if yyxt16 := z.Extension(x.Sptr); yyxt16 != nil {
  8793  						z.EncExtension(x.Sptr, yyxt16)
  8794  					} else {
  8795  						x.Sptr.CodecEncodeSelf(e)
  8796  					}
  8797  				}
  8798  				z.EncWriteMapElemKey()
  8799  				if z.IsJSONHandle() {
  8800  					z.EncWr().WriteStr("\"Ssmall\"")
  8801  				} else {
  8802  					r.EncodeString(`Ssmall`)
  8803  				}
  8804  				z.EncWriteMapElemValue()
  8805  				yy17 := &x.Ssmall
  8806  				if yyxt18 := z.Extension(yy17); yyxt18 != nil {
  8807  					z.EncExtension(yy17, yyxt18)
  8808  				} else {
  8809  					yy17.CodecEncodeSelf(e)
  8810  				}
  8811  				z.EncWriteMapElemKey()
  8812  				if z.IsJSONHandle() {
  8813  					z.EncWr().WriteStr("\"Ssmallptr\"")
  8814  				} else {
  8815  					r.EncodeString(`Ssmallptr`)
  8816  				}
  8817  				z.EncWriteMapElemValue()
  8818  				if yyn5 {
  8819  					r.EncodeNil()
  8820  				} else {
  8821  					if yyxt19 := z.Extension(x.Ssmallptr); yyxt19 != nil {
  8822  						z.EncExtension(x.Ssmallptr, yyxt19)
  8823  					} else {
  8824  						x.Ssmallptr.CodecEncodeSelf(e)
  8825  					}
  8826  				}
  8827  			} else {
  8828  				z.EncWriteMapElemKey()
  8829  				if z.IsJSONHandle() {
  8830  					z.EncWr().WriteStr("\"A\"")
  8831  				} else {
  8832  					r.EncodeString(`A`)
  8833  				}
  8834  				z.EncWriteMapElemValue()
  8835  				r.EncodeInt(int64(x.A))
  8836  				z.EncWriteMapElemKey()
  8837  				if z.IsJSONHandle() {
  8838  					z.EncWr().WriteStr("\"B\"")
  8839  				} else {
  8840  					r.EncodeString(`B`)
  8841  				}
  8842  				z.EncWriteMapElemValue()
  8843  				r.EncodeBool(bool(x.B))
  8844  				z.EncWriteMapElemKey()
  8845  				if z.IsJSONHandle() {
  8846  					z.EncWr().WriteStr("\"Ssmallptr\"")
  8847  				} else {
  8848  					r.EncodeString(`Ssmallptr`)
  8849  				}
  8850  				z.EncWriteMapElemValue()
  8851  				if yyn5 {
  8852  					r.EncodeNil()
  8853  				} else {
  8854  					if yyxt22 := z.Extension(x.Ssmallptr); yyxt22 != nil {
  8855  						z.EncExtension(x.Ssmallptr, yyxt22)
  8856  					} else {
  8857  						x.Ssmallptr.CodecEncodeSelf(e)
  8858  					}
  8859  				}
  8860  				z.EncWriteMapElemKey()
  8861  				if z.IsJSONHandle() {
  8862  					z.EncWr().WriteStr("\"Ssmall\"")
  8863  				} else {
  8864  					r.EncodeString(`Ssmall`)
  8865  				}
  8866  				z.EncWriteMapElemValue()
  8867  				yy23 := &x.Ssmall
  8868  				if yyxt24 := z.Extension(yy23); yyxt24 != nil {
  8869  					z.EncExtension(yy23, yyxt24)
  8870  				} else {
  8871  					yy23.CodecEncodeSelf(e)
  8872  				}
  8873  				z.EncWriteMapElemKey()
  8874  				if z.IsJSONHandle() {
  8875  					z.EncWr().WriteStr("\"Sptr\"")
  8876  				} else {
  8877  					r.EncodeString(`Sptr`)
  8878  				}
  8879  				z.EncWriteMapElemValue()
  8880  				if yyn7 {
  8881  					r.EncodeNil()
  8882  				} else {
  8883  					if yyxt25 := z.Extension(x.Sptr); yyxt25 != nil {
  8884  						z.EncExtension(x.Sptr, yyxt25)
  8885  					} else {
  8886  						x.Sptr.CodecEncodeSelf(e)
  8887  					}
  8888  				}
  8889  			}
  8890  			z.EncWriteMapEnd()
  8891  		}
  8892  	}
  8893  }
  8894  
  8895  func (x *SstructbigToArray) CodecDecodeSelf(d *Decoder) {
  8896  	var h codecSelfer19780
  8897  	z, r := GenHelper().Decoder(d)
  8898  	_, _, _ = h, z, r
  8899  	yyct2 := r.ContainerType()
  8900  	if yyct2 == codecSelferValueTypeNil19780 {
  8901  		*(x) = SstructbigToArray{}
  8902  	} else if yyct2 == codecSelferValueTypeMap19780 {
  8903  		yyl2 := z.DecReadMapStart()
  8904  		if yyl2 == 0 {
  8905  		} else {
  8906  			x.codecDecodeSelfFromMap(yyl2, d)
  8907  		}
  8908  		z.DecReadMapEnd()
  8909  	} else if yyct2 == codecSelferValueTypeArray19780 {
  8910  		yyl2 := z.DecReadArrayStart()
  8911  		if yyl2 != 0 {
  8912  			x.codecDecodeSelfFromArray(yyl2, d)
  8913  		}
  8914  		z.DecReadArrayEnd()
  8915  	} else {
  8916  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  8917  	}
  8918  }
  8919  
  8920  func (x *SstructbigToArray) codecDecodeSelfFromMap(l int, d *Decoder) {
  8921  	var h codecSelfer19780
  8922  	z, r := GenHelper().Decoder(d)
  8923  	_, _, _ = h, z, r
  8924  	var yyhl3 bool = l >= 0
  8925  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  8926  		z.DecReadMapElemKey()
  8927  		yys3 := r.DecodeStringAsBytes()
  8928  		z.DecReadMapElemValue()
  8929  		switch string(yys3) {
  8930  		case "A":
  8931  			x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8932  		case "B":
  8933  			x.B = (bool)(r.DecodeBool())
  8934  		case "Ssmallptr":
  8935  			if r.TryNil() {
  8936  				if x.Ssmallptr != nil { // remove the if-true
  8937  					x.Ssmallptr = nil
  8938  				}
  8939  			} else {
  8940  				if x.Ssmallptr == nil {
  8941  					x.Ssmallptr = new(Sstructsmall)
  8942  				}
  8943  				if yyxt7 := z.Extension(x.Ssmallptr); yyxt7 != nil {
  8944  					z.DecExtension(x.Ssmallptr, yyxt7)
  8945  				} else {
  8946  					x.Ssmallptr.CodecDecodeSelf(d)
  8947  				}
  8948  			}
  8949  		case "Ssmall":
  8950  			if yyxt9 := z.Extension(x.Ssmall); yyxt9 != nil {
  8951  				z.DecExtension(&x.Ssmall, yyxt9)
  8952  			} else {
  8953  				x.Ssmall.CodecDecodeSelf(d)
  8954  			}
  8955  		case "Sptr":
  8956  			if r.TryNil() {
  8957  				if x.Sptr != nil { // remove the if-true
  8958  					x.Sptr = nil
  8959  				}
  8960  			} else {
  8961  				if x.Sptr == nil {
  8962  					x.Sptr = new(Sstructbig)
  8963  				}
  8964  				if yyxt11 := z.Extension(x.Sptr); yyxt11 != nil {
  8965  					z.DecExtension(x.Sptr, yyxt11)
  8966  				} else {
  8967  					x.Sptr.CodecDecodeSelf(d)
  8968  				}
  8969  			}
  8970  		default:
  8971  			z.DecStructFieldNotFound(-1, string(yys3))
  8972  		} // end switch yys3
  8973  	} // end for yyj3
  8974  }
  8975  
  8976  func (x *SstructbigToArray) codecDecodeSelfFromArray(l int, d *Decoder) {
  8977  	var h codecSelfer19780
  8978  	z, r := GenHelper().Decoder(d)
  8979  	_, _, _ = h, z, r
  8980  	var yyj12 int
  8981  	var yyb12 bool
  8982  	var yyhl12 bool = l >= 0
  8983  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  8984  	if yyb12 {
  8985  		z.DecReadArrayEnd()
  8986  		return
  8987  	}
  8988  	z.DecReadArrayElem()
  8989  	x.A = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  8990  	yyj12++
  8991  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  8992  	if yyb12 {
  8993  		z.DecReadArrayEnd()
  8994  		return
  8995  	}
  8996  	z.DecReadArrayElem()
  8997  	x.B = (bool)(r.DecodeBool())
  8998  	yyj12++
  8999  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  9000  	if yyb12 {
  9001  		z.DecReadArrayEnd()
  9002  		return
  9003  	}
  9004  	z.DecReadArrayElem()
  9005  	if r.TryNil() {
  9006  		if x.Ssmallptr != nil { // remove the if-true
  9007  			x.Ssmallptr = nil
  9008  		}
  9009  	} else {
  9010  		if x.Ssmallptr == nil {
  9011  			x.Ssmallptr = new(Sstructsmall)
  9012  		}
  9013  		if yyxt16 := z.Extension(x.Ssmallptr); yyxt16 != nil {
  9014  			z.DecExtension(x.Ssmallptr, yyxt16)
  9015  		} else {
  9016  			x.Ssmallptr.CodecDecodeSelf(d)
  9017  		}
  9018  	}
  9019  	yyj12++
  9020  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  9021  	if yyb12 {
  9022  		z.DecReadArrayEnd()
  9023  		return
  9024  	}
  9025  	z.DecReadArrayElem()
  9026  	if yyxt18 := z.Extension(x.Ssmall); yyxt18 != nil {
  9027  		z.DecExtension(&x.Ssmall, yyxt18)
  9028  	} else {
  9029  		x.Ssmall.CodecDecodeSelf(d)
  9030  	}
  9031  	yyj12++
  9032  	yyb12 = !z.DecContainerNext(yyj12, l, yyhl12)
  9033  	if yyb12 {
  9034  		z.DecReadArrayEnd()
  9035  		return
  9036  	}
  9037  	z.DecReadArrayElem()
  9038  	if r.TryNil() {
  9039  		if x.Sptr != nil { // remove the if-true
  9040  			x.Sptr = nil
  9041  		}
  9042  	} else {
  9043  		if x.Sptr == nil {
  9044  			x.Sptr = new(Sstructbig)
  9045  		}
  9046  		if yyxt20 := z.Extension(x.Sptr); yyxt20 != nil {
  9047  			z.DecExtension(x.Sptr, yyxt20)
  9048  		} else {
  9049  			x.Sptr.CodecDecodeSelf(d)
  9050  		}
  9051  	}
  9052  	yyj12++
  9053  	for ; z.DecContainerNext(yyj12, l, yyhl12); yyj12++ {
  9054  		z.DecReadArrayElem()
  9055  		z.DecStructFieldNotFound(yyj12-1, "")
  9056  	}
  9057  }
  9058  
  9059  func (x *SstructbigToArray) IsCodecEmpty() bool {
  9060  	return !(x.A != 0 || bool(x.B) || !(x.Ssmall.IsCodecEmpty()) || false)
  9061  }
  9062  
  9063  func (tLowerFirstLetter) codecSelferViaCodecgen() {}
  9064  func (x *tLowerFirstLetter) CodecEncodeSelf(e *Encoder) {
  9065  	var h codecSelfer19780
  9066  	z, r := GenHelper().Encoder(e)
  9067  	_, _, _ = h, z, r
  9068  	if z.EncBasicHandle().CheckCircularRef {
  9069  		z.EncEncode(x)
  9070  		return
  9071  	}
  9072  	if x == nil {
  9073  		r.EncodeNil()
  9074  	} else {
  9075  		yy2arr2 := z.EncBasicHandle().StructToArray
  9076  		_ = yy2arr2
  9077  		const yyr2 bool = false // struct tag has 'toArray'
  9078  		if yyr2 || yy2arr2 {
  9079  			z.EncWriteArrayStart(2)
  9080  			z.EncWriteArrayElem()
  9081  			r.EncodeInt(int64(x.I))
  9082  			z.EncWriteArrayElem()
  9083  			r.EncodeString(string(x.S))
  9084  			z.EncWriteArrayEnd()
  9085  		} else {
  9086  			z.EncWriteMapStart(2)
  9087  			if z.EncBasicHandle().Canonical {
  9088  				z.EncWriteMapElemKey()
  9089  				if z.IsJSONHandle() {
  9090  					z.EncWr().WriteStr("\"I\"")
  9091  				} else {
  9092  					r.EncodeString(`I`)
  9093  				}
  9094  				z.EncWriteMapElemValue()
  9095  				r.EncodeInt(int64(x.I))
  9096  				z.EncWriteMapElemKey()
  9097  				if z.IsJSONHandle() {
  9098  					z.EncWr().WriteStr("\"S\"")
  9099  				} else {
  9100  					r.EncodeString(`S`)
  9101  				}
  9102  				z.EncWriteMapElemValue()
  9103  				r.EncodeString(string(x.S))
  9104  			} else {
  9105  				z.EncWriteMapElemKey()
  9106  				if z.IsJSONHandle() {
  9107  					z.EncWr().WriteStr("\"I\"")
  9108  				} else {
  9109  					r.EncodeString(`I`)
  9110  				}
  9111  				z.EncWriteMapElemValue()
  9112  				r.EncodeInt(int64(x.I))
  9113  				z.EncWriteMapElemKey()
  9114  				if z.IsJSONHandle() {
  9115  					z.EncWr().WriteStr("\"S\"")
  9116  				} else {
  9117  					r.EncodeString(`S`)
  9118  				}
  9119  				z.EncWriteMapElemValue()
  9120  				r.EncodeString(string(x.S))
  9121  			}
  9122  			z.EncWriteMapEnd()
  9123  		}
  9124  	}
  9125  }
  9126  
  9127  func (x *tLowerFirstLetter) CodecDecodeSelf(d *Decoder) {
  9128  	var h codecSelfer19780
  9129  	z, r := GenHelper().Decoder(d)
  9130  	_, _, _ = h, z, r
  9131  	yyct2 := r.ContainerType()
  9132  	if yyct2 == codecSelferValueTypeNil19780 {
  9133  		*(x) = tLowerFirstLetter{}
  9134  	} else if yyct2 == codecSelferValueTypeMap19780 {
  9135  		yyl2 := z.DecReadMapStart()
  9136  		if yyl2 == 0 {
  9137  		} else {
  9138  			x.codecDecodeSelfFromMap(yyl2, d)
  9139  		}
  9140  		z.DecReadMapEnd()
  9141  	} else if yyct2 == codecSelferValueTypeArray19780 {
  9142  		yyl2 := z.DecReadArrayStart()
  9143  		if yyl2 != 0 {
  9144  			x.codecDecodeSelfFromArray(yyl2, d)
  9145  		}
  9146  		z.DecReadArrayEnd()
  9147  	} else {
  9148  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  9149  	}
  9150  }
  9151  
  9152  func (x *tLowerFirstLetter) codecDecodeSelfFromMap(l int, d *Decoder) {
  9153  	var h codecSelfer19780
  9154  	z, r := GenHelper().Decoder(d)
  9155  	_, _, _ = h, z, r
  9156  	var yyhl3 bool = l >= 0
  9157  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  9158  		z.DecReadMapElemKey()
  9159  		yys3 := r.DecodeStringAsBytes()
  9160  		z.DecReadMapElemValue()
  9161  		switch string(yys3) {
  9162  		case "I":
  9163  			x.I = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  9164  		case "S":
  9165  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  9166  		default:
  9167  			z.DecStructFieldNotFound(-1, string(yys3))
  9168  		} // end switch yys3
  9169  	} // end for yyj3
  9170  }
  9171  
  9172  func (x *tLowerFirstLetter) codecDecodeSelfFromArray(l int, d *Decoder) {
  9173  	var h codecSelfer19780
  9174  	z, r := GenHelper().Decoder(d)
  9175  	_, _, _ = h, z, r
  9176  	var yyj6 int
  9177  	var yyb6 bool
  9178  	var yyhl6 bool = l >= 0
  9179  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  9180  	if yyb6 {
  9181  		z.DecReadArrayEnd()
  9182  		return
  9183  	}
  9184  	z.DecReadArrayElem()
  9185  	x.I = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
  9186  	yyj6++
  9187  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
  9188  	if yyb6 {
  9189  		z.DecReadArrayEnd()
  9190  		return
  9191  	}
  9192  	z.DecReadArrayElem()
  9193  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  9194  	yyj6++
  9195  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
  9196  		z.DecReadArrayElem()
  9197  		z.DecStructFieldNotFound(yyj6-1, "")
  9198  	}
  9199  }
  9200  
  9201  func (x *tLowerFirstLetter) IsCodecEmpty() bool {
  9202  	return !(x.I != 0 || x.S != "" || false)
  9203  }
  9204  
  9205  func (wrapInt64) codecSelferViaCodecgen() {}
  9206  func (x wrapInt64) CodecEncodeSelf(e *Encoder) {
  9207  	var h codecSelfer19780
  9208  	z, r := GenHelper().Encoder(e)
  9209  	_, _, _ = h, z, r
  9210  	r.EncodeInt(int64(x))
  9211  }
  9212  
  9213  func (x *wrapInt64) CodecDecodeSelf(d *Decoder) {
  9214  	var h codecSelfer19780
  9215  	z, r := GenHelper().Decoder(d)
  9216  	_, _, _ = h, z, r
  9217  	*x = (wrapInt64)(r.DecodeInt64())
  9218  }
  9219  
  9220  func (wrapUint8) codecSelferViaCodecgen() {}
  9221  func (x wrapUint8) CodecEncodeSelf(e *Encoder) {
  9222  	var h codecSelfer19780
  9223  	z, r := GenHelper().Encoder(e)
  9224  	_, _, _ = h, z, r
  9225  	r.EncodeUint(uint64(x))
  9226  }
  9227  
  9228  func (x *wrapUint8) CodecDecodeSelf(d *Decoder) {
  9229  	var h codecSelfer19780
  9230  	z, r := GenHelper().Decoder(d)
  9231  	_, _, _ = h, z, r
  9232  	*x = (wrapUint8)(z.C.UintV(r.DecodeUint64(), 8))
  9233  }
  9234  
  9235  func (wrapBytes) codecSelferViaCodecgen() {}
  9236  func (x wrapBytes) CodecEncodeSelf(e *Encoder) {
  9237  	var h codecSelfer19780
  9238  	z, r := GenHelper().Encoder(e)
  9239  	_, _, _ = h, z, r
  9240  	if x == nil {
  9241  		r.EncodeNil()
  9242  	} else {
  9243  		z.F.EncSliceUint8V(([]uint8)(x), e)
  9244  	} // end block: if x slice == nil
  9245  }
  9246  
  9247  func (x *wrapBytes) CodecDecodeSelf(d *Decoder) {
  9248  	var h codecSelfer19780
  9249  	z, r := GenHelper().Decoder(d)
  9250  	_, _, _ = h, z, r
  9251  	z.F.DecSliceUint8X((*[]uint8)(x), d)
  9252  }
  9253  
  9254  func (testMarshalAsJSON) codecSelferViaCodecgen() {}
  9255  func (x testMarshalAsJSON) CodecEncodeSelf(e *Encoder) {
  9256  	var h codecSelfer19780
  9257  	z, r := GenHelper().Encoder(e)
  9258  	_, _, _ = h, z, r
  9259  	if !z.EncBinary() && z.IsJSONHandle() {
  9260  		z.EncJSONMarshal(x)
  9261  	} else {
  9262  		r.EncodeBool(bool(x))
  9263  	}
  9264  }
  9265  
  9266  func (x *testMarshalAsJSON) CodecDecodeSelf(d *Decoder) {
  9267  	var h codecSelfer19780
  9268  	z, r := GenHelper().Decoder(d)
  9269  	_, _, _ = h, z, r
  9270  	if !z.DecBinary() && z.IsJSONHandle() {
  9271  		z.DecJSONUnmarshal(x)
  9272  	} else {
  9273  		*x = (testMarshalAsJSON)(r.DecodeBool())
  9274  	}
  9275  }
  9276  
  9277  func (testMarshalAsBinary) codecSelferViaCodecgen() {}
  9278  func (x testMarshalAsBinary) CodecEncodeSelf(e *Encoder) {
  9279  	var h codecSelfer19780
  9280  	z, r := GenHelper().Encoder(e)
  9281  	_, _, _ = h, z, r
  9282  	if z.EncBinary() {
  9283  		z.EncBinaryMarshal(x)
  9284  	} else {
  9285  		if x == nil {
  9286  			r.EncodeNil()
  9287  		} else {
  9288  			z.F.EncSliceUint8V(([]uint8)(x), e)
  9289  		} // end block: if x slice == nil
  9290  	}
  9291  }
  9292  
  9293  func (x *testMarshalAsBinary) CodecDecodeSelf(d *Decoder) {
  9294  	var h codecSelfer19780
  9295  	z, r := GenHelper().Decoder(d)
  9296  	_, _, _ = h, z, r
  9297  	if z.DecBinary() {
  9298  		z.DecBinaryUnmarshal(x)
  9299  	} else {
  9300  		z.F.DecSliceUint8X((*[]uint8)(x), d)
  9301  	}
  9302  }
  9303  
  9304  func (testMarshalAsText) codecSelferViaCodecgen() {}
  9305  func (x testMarshalAsText) CodecEncodeSelf(e *Encoder) {
  9306  	var h codecSelfer19780
  9307  	z, r := GenHelper().Encoder(e)
  9308  	_, _, _ = h, z, r
  9309  	if !z.EncBinary() {
  9310  		z.EncTextMarshal(x)
  9311  	} else {
  9312  		r.EncodeString(string(x))
  9313  	}
  9314  }
  9315  
  9316  func (x *testMarshalAsText) CodecDecodeSelf(d *Decoder) {
  9317  	var h codecSelfer19780
  9318  	z, r := GenHelper().Decoder(d)
  9319  	_, _, _ = h, z, r
  9320  	if !z.DecBinary() {
  9321  		z.DecTextUnmarshal(x)
  9322  	} else {
  9323  		*x = (testMarshalAsText)(z.DecStringZC(r.DecodeStringAsBytes()))
  9324  	}
  9325  }
  9326  
  9327  func (testUintToBytes) codecSelferViaCodecgen() {}
  9328  func (x testUintToBytes) CodecEncodeSelf(e *Encoder) {
  9329  	var h codecSelfer19780
  9330  	z, r := GenHelper().Encoder(e)
  9331  	_, _, _ = h, z, r
  9332  	r.EncodeUint(uint64(x))
  9333  }
  9334  
  9335  func (x *testUintToBytes) CodecDecodeSelf(d *Decoder) {
  9336  	var h codecSelfer19780
  9337  	z, r := GenHelper().Decoder(d)
  9338  	_, _, _ = h, z, r
  9339  	*x = (testUintToBytes)(z.C.UintV(r.DecodeUint64(), 32))
  9340  }
  9341  
  9342  func (AnonInTestStrucIntf) codecSelferViaCodecgen() {}
  9343  func (x *AnonInTestStrucIntf) CodecEncodeSelf(e *Encoder) {
  9344  	var h codecSelfer19780
  9345  	z, r := GenHelper().Encoder(e)
  9346  	_, _, _ = h, z, r
  9347  	if z.EncBasicHandle().CheckCircularRef {
  9348  		z.EncEncode(x)
  9349  		return
  9350  	}
  9351  	if x == nil {
  9352  		r.EncodeNil()
  9353  	} else {
  9354  		yy2arr2 := z.EncBasicHandle().StructToArray
  9355  		_ = yy2arr2
  9356  		const yyr2 bool = false // struct tag has 'toArray'
  9357  		var yyn7 bool = x.Tptr == nil
  9358  		if yyr2 || yy2arr2 {
  9359  			z.EncWriteArrayStart(5)
  9360  			z.EncWriteArrayElem()
  9361  			if x.Islice == nil {
  9362  				r.EncodeNil()
  9363  			} else {
  9364  				z.F.EncSliceIntfV(x.Islice, e)
  9365  			} // end block: if x.Islice slice == nil
  9366  			z.EncWriteArrayElem()
  9367  			if x.Ms == nil {
  9368  				r.EncodeNil()
  9369  			} else {
  9370  				z.F.EncMapStringIntfV(x.Ms, e)
  9371  			} // end block: if x.Ms map == nil
  9372  			z.EncWriteArrayElem()
  9373  			z.EncFallback(x.Nintf)
  9374  			z.EncWriteArrayElem()
  9375  			if z.EncBasicHandle().TimeBuiltin() {
  9376  				r.EncodeTime(x.T)
  9377  			} else if yyxt11 := z.Extension(x.T); yyxt11 != nil {
  9378  				z.EncExtension(x.T, yyxt11)
  9379  			} else if z.EncBinary() {
  9380  				z.EncBinaryMarshal(x.T)
  9381  			} else if !z.EncBinary() && z.IsJSONHandle() {
  9382  				z.EncJSONMarshal(x.T)
  9383  			} else {
  9384  				z.EncFallback(x.T)
  9385  			}
  9386  			if yyn7 {
  9387  				z.EncWriteArrayElem()
  9388  				r.EncodeNil()
  9389  			} else {
  9390  				z.EncWriteArrayElem()
  9391  				yy12 := *x.Tptr
  9392  				if z.EncBasicHandle().TimeBuiltin() {
  9393  					r.EncodeTime(yy12)
  9394  				} else if yyxt13 := z.Extension(yy12); yyxt13 != nil {
  9395  					z.EncExtension(yy12, yyxt13)
  9396  				} else if z.EncBinary() {
  9397  					z.EncBinaryMarshal(yy12)
  9398  				} else if !z.EncBinary() && z.IsJSONHandle() {
  9399  					z.EncJSONMarshal(yy12)
  9400  				} else {
  9401  					z.EncFallback(yy12)
  9402  				}
  9403  			}
  9404  			z.EncWriteArrayEnd()
  9405  		} else {
  9406  			z.EncWriteMapStart(5)
  9407  			if z.EncBasicHandle().Canonical {
  9408  				z.EncWriteMapElemKey()
  9409  				if z.IsJSONHandle() {
  9410  					z.EncWr().WriteStr("\"Islice\"")
  9411  				} else {
  9412  					r.EncodeString(`Islice`)
  9413  				}
  9414  				z.EncWriteMapElemValue()
  9415  				if x.Islice == nil {
  9416  					r.EncodeNil()
  9417  				} else {
  9418  					z.F.EncSliceIntfV(x.Islice, e)
  9419  				} // end block: if x.Islice slice == nil
  9420  				z.EncWriteMapElemKey()
  9421  				if z.IsJSONHandle() {
  9422  					z.EncWr().WriteStr("\"Ms\"")
  9423  				} else {
  9424  					r.EncodeString(`Ms`)
  9425  				}
  9426  				z.EncWriteMapElemValue()
  9427  				if x.Ms == nil {
  9428  					r.EncodeNil()
  9429  				} else {
  9430  					z.F.EncMapStringIntfV(x.Ms, e)
  9431  				} // end block: if x.Ms map == nil
  9432  				z.EncWriteMapElemKey()
  9433  				if z.IsJSONHandle() {
  9434  					z.EncWr().WriteStr("\"Nintf\"")
  9435  				} else {
  9436  					r.EncodeString(`Nintf`)
  9437  				}
  9438  				z.EncWriteMapElemValue()
  9439  				z.EncFallback(x.Nintf)
  9440  				z.EncWriteMapElemKey()
  9441  				if z.IsJSONHandle() {
  9442  					z.EncWr().WriteStr("\"T\"")
  9443  				} else {
  9444  					r.EncodeString(`T`)
  9445  				}
  9446  				z.EncWriteMapElemValue()
  9447  				if z.EncBasicHandle().TimeBuiltin() {
  9448  					r.EncodeTime(x.T)
  9449  				} else if yyxt17 := z.Extension(x.T); yyxt17 != nil {
  9450  					z.EncExtension(x.T, yyxt17)
  9451  				} else if z.EncBinary() {
  9452  					z.EncBinaryMarshal(x.T)
  9453  				} else if !z.EncBinary() && z.IsJSONHandle() {
  9454  					z.EncJSONMarshal(x.T)
  9455  				} else {
  9456  					z.EncFallback(x.T)
  9457  				}
  9458  				z.EncWriteMapElemKey()
  9459  				if z.IsJSONHandle() {
  9460  					z.EncWr().WriteStr("\"Tptr\"")
  9461  				} else {
  9462  					r.EncodeString(`Tptr`)
  9463  				}
  9464  				z.EncWriteMapElemValue()
  9465  				if yyn7 {
  9466  					r.EncodeNil()
  9467  				} else {
  9468  					yy18 := *x.Tptr
  9469  					if z.EncBasicHandle().TimeBuiltin() {
  9470  						r.EncodeTime(yy18)
  9471  					} else if yyxt19 := z.Extension(yy18); yyxt19 != nil {
  9472  						z.EncExtension(yy18, yyxt19)
  9473  					} else if z.EncBinary() {
  9474  						z.EncBinaryMarshal(yy18)
  9475  					} else if !z.EncBinary() && z.IsJSONHandle() {
  9476  						z.EncJSONMarshal(yy18)
  9477  					} else {
  9478  						z.EncFallback(yy18)
  9479  					}
  9480  				}
  9481  			} else {
  9482  				z.EncWriteMapElemKey()
  9483  				if z.IsJSONHandle() {
  9484  					z.EncWr().WriteStr("\"Islice\"")
  9485  				} else {
  9486  					r.EncodeString(`Islice`)
  9487  				}
  9488  				z.EncWriteMapElemValue()
  9489  				if x.Islice == nil {
  9490  					r.EncodeNil()
  9491  				} else {
  9492  					z.F.EncSliceIntfV(x.Islice, e)
  9493  				} // end block: if x.Islice slice == nil
  9494  				z.EncWriteMapElemKey()
  9495  				if z.IsJSONHandle() {
  9496  					z.EncWr().WriteStr("\"Ms\"")
  9497  				} else {
  9498  					r.EncodeString(`Ms`)
  9499  				}
  9500  				z.EncWriteMapElemValue()
  9501  				if x.Ms == nil {
  9502  					r.EncodeNil()
  9503  				} else {
  9504  					z.F.EncMapStringIntfV(x.Ms, e)
  9505  				} // end block: if x.Ms map == nil
  9506  				z.EncWriteMapElemKey()
  9507  				if z.IsJSONHandle() {
  9508  					z.EncWr().WriteStr("\"Nintf\"")
  9509  				} else {
  9510  					r.EncodeString(`Nintf`)
  9511  				}
  9512  				z.EncWriteMapElemValue()
  9513  				z.EncFallback(x.Nintf)
  9514  				z.EncWriteMapElemKey()
  9515  				if z.IsJSONHandle() {
  9516  					z.EncWr().WriteStr("\"T\"")
  9517  				} else {
  9518  					r.EncodeString(`T`)
  9519  				}
  9520  				z.EncWriteMapElemValue()
  9521  				if z.EncBasicHandle().TimeBuiltin() {
  9522  					r.EncodeTime(x.T)
  9523  				} else if yyxt23 := z.Extension(x.T); yyxt23 != nil {
  9524  					z.EncExtension(x.T, yyxt23)
  9525  				} else if z.EncBinary() {
  9526  					z.EncBinaryMarshal(x.T)
  9527  				} else if !z.EncBinary() && z.IsJSONHandle() {
  9528  					z.EncJSONMarshal(x.T)
  9529  				} else {
  9530  					z.EncFallback(x.T)
  9531  				}
  9532  				z.EncWriteMapElemKey()
  9533  				if z.IsJSONHandle() {
  9534  					z.EncWr().WriteStr("\"Tptr\"")
  9535  				} else {
  9536  					r.EncodeString(`Tptr`)
  9537  				}
  9538  				z.EncWriteMapElemValue()
  9539  				if yyn7 {
  9540  					r.EncodeNil()
  9541  				} else {
  9542  					yy24 := *x.Tptr
  9543  					if z.EncBasicHandle().TimeBuiltin() {
  9544  						r.EncodeTime(yy24)
  9545  					} else if yyxt25 := z.Extension(yy24); yyxt25 != nil {
  9546  						z.EncExtension(yy24, yyxt25)
  9547  					} else if z.EncBinary() {
  9548  						z.EncBinaryMarshal(yy24)
  9549  					} else if !z.EncBinary() && z.IsJSONHandle() {
  9550  						z.EncJSONMarshal(yy24)
  9551  					} else {
  9552  						z.EncFallback(yy24)
  9553  					}
  9554  				}
  9555  			}
  9556  			z.EncWriteMapEnd()
  9557  		}
  9558  	}
  9559  }
  9560  
  9561  func (x *AnonInTestStrucIntf) CodecDecodeSelf(d *Decoder) {
  9562  	var h codecSelfer19780
  9563  	z, r := GenHelper().Decoder(d)
  9564  	_, _, _ = h, z, r
  9565  	yyct2 := r.ContainerType()
  9566  	if yyct2 == codecSelferValueTypeNil19780 {
  9567  		*(x) = AnonInTestStrucIntf{}
  9568  	} else if yyct2 == codecSelferValueTypeMap19780 {
  9569  		yyl2 := z.DecReadMapStart()
  9570  		if yyl2 == 0 {
  9571  		} else {
  9572  			x.codecDecodeSelfFromMap(yyl2, d)
  9573  		}
  9574  		z.DecReadMapEnd()
  9575  	} else if yyct2 == codecSelferValueTypeArray19780 {
  9576  		yyl2 := z.DecReadArrayStart()
  9577  		if yyl2 != 0 {
  9578  			x.codecDecodeSelfFromArray(yyl2, d)
  9579  		}
  9580  		z.DecReadArrayEnd()
  9581  	} else {
  9582  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  9583  	}
  9584  }
  9585  
  9586  func (x *AnonInTestStrucIntf) codecDecodeSelfFromMap(l int, d *Decoder) {
  9587  	var h codecSelfer19780
  9588  	z, r := GenHelper().Decoder(d)
  9589  	_, _, _ = h, z, r
  9590  	var yyhl3 bool = l >= 0
  9591  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  9592  		z.DecReadMapElemKey()
  9593  		yys3 := r.DecodeStringAsBytes()
  9594  		z.DecReadMapElemValue()
  9595  		switch string(yys3) {
  9596  		case "Islice":
  9597  			z.F.DecSliceIntfX(&x.Islice, d)
  9598  		case "Ms":
  9599  			z.F.DecMapStringIntfX(&x.Ms, d)
  9600  		case "Nintf":
  9601  			z.DecFallback(&x.Nintf, true)
  9602  		case "T":
  9603  			if z.DecBasicHandle().TimeBuiltin() {
  9604  				x.T = r.DecodeTime()
  9605  			} else if yyxt11 := z.Extension(x.T); yyxt11 != nil {
  9606  				z.DecExtension(&x.T, yyxt11)
  9607  			} else if z.DecBinary() {
  9608  				z.DecBinaryUnmarshal(&x.T)
  9609  			} else if !z.DecBinary() && z.IsJSONHandle() {
  9610  				z.DecJSONUnmarshal(&x.T)
  9611  			} else {
  9612  				z.DecFallback(&x.T, false)
  9613  			}
  9614  		case "Tptr":
  9615  			if r.TryNil() {
  9616  				if x.Tptr != nil { // remove the if-true
  9617  					x.Tptr = nil
  9618  				}
  9619  			} else {
  9620  				if x.Tptr == nil {
  9621  					x.Tptr = new(time.Time)
  9622  				}
  9623  				if z.DecBasicHandle().TimeBuiltin() {
  9624  					*x.Tptr = r.DecodeTime()
  9625  				} else if yyxt13 := z.Extension(x.Tptr); yyxt13 != nil {
  9626  					z.DecExtension(x.Tptr, yyxt13)
  9627  				} else if z.DecBinary() {
  9628  					z.DecBinaryUnmarshal(x.Tptr)
  9629  				} else if !z.DecBinary() && z.IsJSONHandle() {
  9630  					z.DecJSONUnmarshal(x.Tptr)
  9631  				} else {
  9632  					z.DecFallback(x.Tptr, false)
  9633  				}
  9634  			}
  9635  		default:
  9636  			z.DecStructFieldNotFound(-1, string(yys3))
  9637  		} // end switch yys3
  9638  	} // end for yyj3
  9639  }
  9640  
  9641  func (x *AnonInTestStrucIntf) codecDecodeSelfFromArray(l int, d *Decoder) {
  9642  	var h codecSelfer19780
  9643  	z, r := GenHelper().Decoder(d)
  9644  	_, _, _ = h, z, r
  9645  	var yyj14 int
  9646  	var yyb14 bool
  9647  	var yyhl14 bool = l >= 0
  9648  	yyb14 = !z.DecContainerNext(yyj14, l, yyhl14)
  9649  	if yyb14 {
  9650  		z.DecReadArrayEnd()
  9651  		return
  9652  	}
  9653  	z.DecReadArrayElem()
  9654  	z.F.DecSliceIntfX(&x.Islice, d)
  9655  	yyj14++
  9656  	yyb14 = !z.DecContainerNext(yyj14, l, yyhl14)
  9657  	if yyb14 {
  9658  		z.DecReadArrayEnd()
  9659  		return
  9660  	}
  9661  	z.DecReadArrayElem()
  9662  	z.F.DecMapStringIntfX(&x.Ms, d)
  9663  	yyj14++
  9664  	yyb14 = !z.DecContainerNext(yyj14, l, yyhl14)
  9665  	if yyb14 {
  9666  		z.DecReadArrayEnd()
  9667  		return
  9668  	}
  9669  	z.DecReadArrayElem()
  9670  	z.DecFallback(&x.Nintf, true)
  9671  	yyj14++
  9672  	yyb14 = !z.DecContainerNext(yyj14, l, yyhl14)
  9673  	if yyb14 {
  9674  		z.DecReadArrayEnd()
  9675  		return
  9676  	}
  9677  	z.DecReadArrayElem()
  9678  	if z.DecBasicHandle().TimeBuiltin() {
  9679  		x.T = r.DecodeTime()
  9680  	} else if yyxt22 := z.Extension(x.T); yyxt22 != nil {
  9681  		z.DecExtension(&x.T, yyxt22)
  9682  	} else if z.DecBinary() {
  9683  		z.DecBinaryUnmarshal(&x.T)
  9684  	} else if !z.DecBinary() && z.IsJSONHandle() {
  9685  		z.DecJSONUnmarshal(&x.T)
  9686  	} else {
  9687  		z.DecFallback(&x.T, false)
  9688  	}
  9689  	yyj14++
  9690  	yyb14 = !z.DecContainerNext(yyj14, l, yyhl14)
  9691  	if yyb14 {
  9692  		z.DecReadArrayEnd()
  9693  		return
  9694  	}
  9695  	z.DecReadArrayElem()
  9696  	if r.TryNil() {
  9697  		if x.Tptr != nil { // remove the if-true
  9698  			x.Tptr = nil
  9699  		}
  9700  	} else {
  9701  		if x.Tptr == nil {
  9702  			x.Tptr = new(time.Time)
  9703  		}
  9704  		if z.DecBasicHandle().TimeBuiltin() {
  9705  			*x.Tptr = r.DecodeTime()
  9706  		} else if yyxt24 := z.Extension(x.Tptr); yyxt24 != nil {
  9707  			z.DecExtension(x.Tptr, yyxt24)
  9708  		} else if z.DecBinary() {
  9709  			z.DecBinaryUnmarshal(x.Tptr)
  9710  		} else if !z.DecBinary() && z.IsJSONHandle() {
  9711  			z.DecJSONUnmarshal(x.Tptr)
  9712  		} else {
  9713  			z.DecFallback(x.Tptr, false)
  9714  		}
  9715  	}
  9716  	yyj14++
  9717  	for ; z.DecContainerNext(yyj14, l, yyhl14); yyj14++ {
  9718  		z.DecReadArrayElem()
  9719  		z.DecStructFieldNotFound(yyj14-1, "")
  9720  	}
  9721  }
  9722  
  9723  func (x *AnonInTestStrucIntf) IsCodecEmpty() bool {
  9724  	return !(len(x.Islice) != 0 || len(x.Ms) != 0 || x.Nintf != nil || !(x.T.IsZero()) || false)
  9725  }
  9726  
  9727  func (missingFielderT2) codecSelferViaCodecgen() {}
  9728  func (x *missingFielderT2) CodecEncodeSelf(e *Encoder) {
  9729  	var h codecSelfer19780
  9730  	z, r := GenHelper().Encoder(e)
  9731  	_, _, _ = h, z, r
  9732  	if z.EncBasicHandle().CheckCircularRef {
  9733  		z.EncEncode(x)
  9734  		return
  9735  	}
  9736  	if x == nil {
  9737  		r.EncodeNil()
  9738  	} else {
  9739  		yy2arr2 := z.EncBasicHandle().StructToArray
  9740  		_ = yy2arr2
  9741  		const yyr2 bool = false // struct tag has 'toArray'
  9742  		if yyr2 || yy2arr2 {
  9743  			z.EncWriteArrayStart(4)
  9744  			z.EncWriteArrayElem()
  9745  			r.EncodeString(string(x.S))
  9746  			z.EncWriteArrayElem()
  9747  			r.EncodeBool(bool(x.B))
  9748  			z.EncWriteArrayElem()
  9749  			r.EncodeFloat64(float64(x.F))
  9750  			z.EncWriteArrayElem()
  9751  			r.EncodeInt(int64(x.I))
  9752  			z.EncWriteArrayEnd()
  9753  		} else {
  9754  			z.EncWriteMapStart(4)
  9755  			if z.EncBasicHandle().Canonical {
  9756  				z.EncWriteMapElemKey()
  9757  				if z.IsJSONHandle() {
  9758  					z.EncWr().WriteStr("\"B\"")
  9759  				} else {
  9760  					r.EncodeString(`B`)
  9761  				}
  9762  				z.EncWriteMapElemValue()
  9763  				r.EncodeBool(bool(x.B))
  9764  				z.EncWriteMapElemKey()
  9765  				if z.IsJSONHandle() {
  9766  					z.EncWr().WriteStr("\"F\"")
  9767  				} else {
  9768  					r.EncodeString(`F`)
  9769  				}
  9770  				z.EncWriteMapElemValue()
  9771  				r.EncodeFloat64(float64(x.F))
  9772  				z.EncWriteMapElemKey()
  9773  				if z.IsJSONHandle() {
  9774  					z.EncWr().WriteStr("\"I\"")
  9775  				} else {
  9776  					r.EncodeString(`I`)
  9777  				}
  9778  				z.EncWriteMapElemValue()
  9779  				r.EncodeInt(int64(x.I))
  9780  				z.EncWriteMapElemKey()
  9781  				if z.IsJSONHandle() {
  9782  					z.EncWr().WriteStr("\"S\"")
  9783  				} else {
  9784  					r.EncodeString(`S`)
  9785  				}
  9786  				z.EncWriteMapElemValue()
  9787  				r.EncodeString(string(x.S))
  9788  			} else {
  9789  				z.EncWriteMapElemKey()
  9790  				if z.IsJSONHandle() {
  9791  					z.EncWr().WriteStr("\"S\"")
  9792  				} else {
  9793  					r.EncodeString(`S`)
  9794  				}
  9795  				z.EncWriteMapElemValue()
  9796  				r.EncodeString(string(x.S))
  9797  				z.EncWriteMapElemKey()
  9798  				if z.IsJSONHandle() {
  9799  					z.EncWr().WriteStr("\"B\"")
  9800  				} else {
  9801  					r.EncodeString(`B`)
  9802  				}
  9803  				z.EncWriteMapElemValue()
  9804  				r.EncodeBool(bool(x.B))
  9805  				z.EncWriteMapElemKey()
  9806  				if z.IsJSONHandle() {
  9807  					z.EncWr().WriteStr("\"F\"")
  9808  				} else {
  9809  					r.EncodeString(`F`)
  9810  				}
  9811  				z.EncWriteMapElemValue()
  9812  				r.EncodeFloat64(float64(x.F))
  9813  				z.EncWriteMapElemKey()
  9814  				if z.IsJSONHandle() {
  9815  					z.EncWr().WriteStr("\"I\"")
  9816  				} else {
  9817  					r.EncodeString(`I`)
  9818  				}
  9819  				z.EncWriteMapElemValue()
  9820  				r.EncodeInt(int64(x.I))
  9821  			}
  9822  			z.EncWriteMapEnd()
  9823  		}
  9824  	}
  9825  }
  9826  
  9827  func (x *missingFielderT2) CodecDecodeSelf(d *Decoder) {
  9828  	var h codecSelfer19780
  9829  	z, r := GenHelper().Decoder(d)
  9830  	_, _, _ = h, z, r
  9831  	yyct2 := r.ContainerType()
  9832  	if yyct2 == codecSelferValueTypeNil19780 {
  9833  		*(x) = missingFielderT2{}
  9834  	} else if yyct2 == codecSelferValueTypeMap19780 {
  9835  		yyl2 := z.DecReadMapStart()
  9836  		if yyl2 == 0 {
  9837  		} else {
  9838  			x.codecDecodeSelfFromMap(yyl2, d)
  9839  		}
  9840  		z.DecReadMapEnd()
  9841  	} else if yyct2 == codecSelferValueTypeArray19780 {
  9842  		yyl2 := z.DecReadArrayStart()
  9843  		if yyl2 != 0 {
  9844  			x.codecDecodeSelfFromArray(yyl2, d)
  9845  		}
  9846  		z.DecReadArrayEnd()
  9847  	} else {
  9848  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
  9849  	}
  9850  }
  9851  
  9852  func (x *missingFielderT2) codecDecodeSelfFromMap(l int, d *Decoder) {
  9853  	var h codecSelfer19780
  9854  	z, r := GenHelper().Decoder(d)
  9855  	_, _, _ = h, z, r
  9856  	var yyhl3 bool = l >= 0
  9857  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
  9858  		z.DecReadMapElemKey()
  9859  		yys3 := r.DecodeStringAsBytes()
  9860  		z.DecReadMapElemValue()
  9861  		switch string(yys3) {
  9862  		case "S":
  9863  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  9864  		case "B":
  9865  			x.B = (bool)(r.DecodeBool())
  9866  		case "F":
  9867  			x.F = (float64)(r.DecodeFloat64())
  9868  		case "I":
  9869  			x.I = (int64)(r.DecodeInt64())
  9870  		default:
  9871  			z.DecStructFieldNotFound(-1, string(yys3))
  9872  		} // end switch yys3
  9873  	} // end for yyj3
  9874  }
  9875  
  9876  func (x *missingFielderT2) codecDecodeSelfFromArray(l int, d *Decoder) {
  9877  	var h codecSelfer19780
  9878  	z, r := GenHelper().Decoder(d)
  9879  	_, _, _ = h, z, r
  9880  	var yyj8 int
  9881  	var yyb8 bool
  9882  	var yyhl8 bool = l >= 0
  9883  	yyb8 = !z.DecContainerNext(yyj8, l, yyhl8)
  9884  	if yyb8 {
  9885  		z.DecReadArrayEnd()
  9886  		return
  9887  	}
  9888  	z.DecReadArrayElem()
  9889  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
  9890  	yyj8++
  9891  	yyb8 = !z.DecContainerNext(yyj8, l, yyhl8)
  9892  	if yyb8 {
  9893  		z.DecReadArrayEnd()
  9894  		return
  9895  	}
  9896  	z.DecReadArrayElem()
  9897  	x.B = (bool)(r.DecodeBool())
  9898  	yyj8++
  9899  	yyb8 = !z.DecContainerNext(yyj8, l, yyhl8)
  9900  	if yyb8 {
  9901  		z.DecReadArrayEnd()
  9902  		return
  9903  	}
  9904  	z.DecReadArrayElem()
  9905  	x.F = (float64)(r.DecodeFloat64())
  9906  	yyj8++
  9907  	yyb8 = !z.DecContainerNext(yyj8, l, yyhl8)
  9908  	if yyb8 {
  9909  		z.DecReadArrayEnd()
  9910  		return
  9911  	}
  9912  	z.DecReadArrayElem()
  9913  	x.I = (int64)(r.DecodeInt64())
  9914  	yyj8++
  9915  	for ; z.DecContainerNext(yyj8, l, yyhl8); yyj8++ {
  9916  		z.DecReadArrayElem()
  9917  		z.DecStructFieldNotFound(yyj8-1, "")
  9918  	}
  9919  }
  9920  
  9921  func (x *missingFielderT2) IsCodecEmpty() bool {
  9922  	return !(x.S != "" || bool(x.B) || x.F != 0 || x.I != 0 || false)
  9923  }
  9924  
  9925  func (testSelfExtHelper) codecSelferViaCodecgen() {}
  9926  func (x *testSelfExtHelper) CodecEncodeSelf(e *Encoder) {
  9927  	var h codecSelfer19780
  9928  	z, r := GenHelper().Encoder(e)
  9929  	_, _, _ = h, z, r
  9930  	if z.EncBasicHandle().CheckCircularRef {
  9931  		z.EncEncode(x)
  9932  		return
  9933  	}
  9934  	if x == nil {
  9935  		r.EncodeNil()
  9936  	} else {
  9937  		yy2arr2 := z.EncBasicHandle().StructToArray
  9938  		_ = yy2arr2
  9939  		const yyr2 bool = false // struct tag has 'toArray'
  9940  		if yyr2 || yy2arr2 {
  9941  			z.EncWriteArrayStart(3)
  9942  			z.EncWriteArrayElem()
  9943  			r.EncodeString(string(x.S))
  9944  			z.EncWriteArrayElem()
  9945  			r.EncodeInt(int64(x.I))
  9946  			z.EncWriteArrayElem()
  9947  			r.EncodeBool(bool(x.B))
  9948  			z.EncWriteArrayEnd()
  9949  		} else {
  9950  			z.EncWriteMapStart(3)
  9951  			if z.EncBasicHandle().Canonical {
  9952  				z.EncWriteMapElemKey()
  9953  				if z.IsJSONHandle() {
  9954  					z.EncWr().WriteStr("\"B\"")
  9955  				} else {
  9956  					r.EncodeString(`B`)
  9957  				}
  9958  				z.EncWriteMapElemValue()
  9959  				r.EncodeBool(bool(x.B))
  9960  				z.EncWriteMapElemKey()
  9961  				if z.IsJSONHandle() {
  9962  					z.EncWr().WriteStr("\"I\"")
  9963  				} else {
  9964  					r.EncodeString(`I`)
  9965  				}
  9966  				z.EncWriteMapElemValue()
  9967  				r.EncodeInt(int64(x.I))
  9968  				z.EncWriteMapElemKey()
  9969  				if z.IsJSONHandle() {
  9970  					z.EncWr().WriteStr("\"S\"")
  9971  				} else {
  9972  					r.EncodeString(`S`)
  9973  				}
  9974  				z.EncWriteMapElemValue()
  9975  				r.EncodeString(string(x.S))
  9976  			} else {
  9977  				z.EncWriteMapElemKey()
  9978  				if z.IsJSONHandle() {
  9979  					z.EncWr().WriteStr("\"S\"")
  9980  				} else {
  9981  					r.EncodeString(`S`)
  9982  				}
  9983  				z.EncWriteMapElemValue()
  9984  				r.EncodeString(string(x.S))
  9985  				z.EncWriteMapElemKey()
  9986  				if z.IsJSONHandle() {
  9987  					z.EncWr().WriteStr("\"I\"")
  9988  				} else {
  9989  					r.EncodeString(`I`)
  9990  				}
  9991  				z.EncWriteMapElemValue()
  9992  				r.EncodeInt(int64(x.I))
  9993  				z.EncWriteMapElemKey()
  9994  				if z.IsJSONHandle() {
  9995  					z.EncWr().WriteStr("\"B\"")
  9996  				} else {
  9997  					r.EncodeString(`B`)
  9998  				}
  9999  				z.EncWriteMapElemValue()
 10000  				r.EncodeBool(bool(x.B))
 10001  			}
 10002  			z.EncWriteMapEnd()
 10003  		}
 10004  	}
 10005  }
 10006  
 10007  func (x *testSelfExtHelper) CodecDecodeSelf(d *Decoder) {
 10008  	var h codecSelfer19780
 10009  	z, r := GenHelper().Decoder(d)
 10010  	_, _, _ = h, z, r
 10011  	yyct2 := r.ContainerType()
 10012  	if yyct2 == codecSelferValueTypeNil19780 {
 10013  		*(x) = testSelfExtHelper{}
 10014  	} else if yyct2 == codecSelferValueTypeMap19780 {
 10015  		yyl2 := z.DecReadMapStart()
 10016  		if yyl2 == 0 {
 10017  		} else {
 10018  			x.codecDecodeSelfFromMap(yyl2, d)
 10019  		}
 10020  		z.DecReadMapEnd()
 10021  	} else if yyct2 == codecSelferValueTypeArray19780 {
 10022  		yyl2 := z.DecReadArrayStart()
 10023  		if yyl2 != 0 {
 10024  			x.codecDecodeSelfFromArray(yyl2, d)
 10025  		}
 10026  		z.DecReadArrayEnd()
 10027  	} else {
 10028  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
 10029  	}
 10030  }
 10031  
 10032  func (x *testSelfExtHelper) codecDecodeSelfFromMap(l int, d *Decoder) {
 10033  	var h codecSelfer19780
 10034  	z, r := GenHelper().Decoder(d)
 10035  	_, _, _ = h, z, r
 10036  	var yyhl3 bool = l >= 0
 10037  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
 10038  		z.DecReadMapElemKey()
 10039  		yys3 := r.DecodeStringAsBytes()
 10040  		z.DecReadMapElemValue()
 10041  		switch string(yys3) {
 10042  		case "S":
 10043  			x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 10044  		case "I":
 10045  			x.I = (int64)(r.DecodeInt64())
 10046  		case "B":
 10047  			x.B = (bool)(r.DecodeBool())
 10048  		default:
 10049  			z.DecStructFieldNotFound(-1, string(yys3))
 10050  		} // end switch yys3
 10051  	} // end for yyj3
 10052  }
 10053  
 10054  func (x *testSelfExtHelper) codecDecodeSelfFromArray(l int, d *Decoder) {
 10055  	var h codecSelfer19780
 10056  	z, r := GenHelper().Decoder(d)
 10057  	_, _, _ = h, z, r
 10058  	var yyj7 int
 10059  	var yyb7 bool
 10060  	var yyhl7 bool = l >= 0
 10061  	yyb7 = !z.DecContainerNext(yyj7, l, yyhl7)
 10062  	if yyb7 {
 10063  		z.DecReadArrayEnd()
 10064  		return
 10065  	}
 10066  	z.DecReadArrayElem()
 10067  	x.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 10068  	yyj7++
 10069  	yyb7 = !z.DecContainerNext(yyj7, l, yyhl7)
 10070  	if yyb7 {
 10071  		z.DecReadArrayEnd()
 10072  		return
 10073  	}
 10074  	z.DecReadArrayElem()
 10075  	x.I = (int64)(r.DecodeInt64())
 10076  	yyj7++
 10077  	yyb7 = !z.DecContainerNext(yyj7, l, yyhl7)
 10078  	if yyb7 {
 10079  		z.DecReadArrayEnd()
 10080  		return
 10081  	}
 10082  	z.DecReadArrayElem()
 10083  	x.B = (bool)(r.DecodeBool())
 10084  	yyj7++
 10085  	for ; z.DecContainerNext(yyj7, l, yyhl7); yyj7++ {
 10086  		z.DecReadArrayElem()
 10087  		z.DecStructFieldNotFound(yyj7-1, "")
 10088  	}
 10089  }
 10090  
 10091  func (x *testSelfExtHelper) IsCodecEmpty() bool {
 10092  	return !(x.S != "" || x.I != 0 || bool(x.B) || false)
 10093  }
 10094  
 10095  func (TestSelfExtImpl) codecSelferViaCodecgen() {}
 10096  func (x *TestSelfExtImpl) CodecEncodeSelf(e *Encoder) {
 10097  	var h codecSelfer19780
 10098  	z, r := GenHelper().Encoder(e)
 10099  	_, _, _ = h, z, r
 10100  	if z.EncBasicHandle().CheckCircularRef {
 10101  		z.EncEncode(x)
 10102  		return
 10103  	}
 10104  	if x == nil {
 10105  		r.EncodeNil()
 10106  	} else {
 10107  		yy2arr2 := z.EncBasicHandle().StructToArray
 10108  		_ = yy2arr2
 10109  		const yyr2 bool = false // struct tag has 'toArray'
 10110  		if yyr2 || yy2arr2 {
 10111  			z.EncWriteArrayStart(3)
 10112  			z.EncWriteArrayElem()
 10113  			r.EncodeString(string(x.testSelfExtHelper.S))
 10114  			z.EncWriteArrayElem()
 10115  			r.EncodeInt(int64(x.testSelfExtHelper.I))
 10116  			z.EncWriteArrayElem()
 10117  			r.EncodeBool(bool(x.testSelfExtHelper.B))
 10118  			z.EncWriteArrayEnd()
 10119  		} else {
 10120  			z.EncWriteMapStart(3)
 10121  			if z.EncBasicHandle().Canonical {
 10122  				z.EncWriteMapElemKey()
 10123  				if z.IsJSONHandle() {
 10124  					z.EncWr().WriteStr("\"B\"")
 10125  				} else {
 10126  					r.EncodeString(`B`)
 10127  				}
 10128  				z.EncWriteMapElemValue()
 10129  				r.EncodeBool(bool(x.testSelfExtHelper.B))
 10130  				z.EncWriteMapElemKey()
 10131  				if z.IsJSONHandle() {
 10132  					z.EncWr().WriteStr("\"I\"")
 10133  				} else {
 10134  					r.EncodeString(`I`)
 10135  				}
 10136  				z.EncWriteMapElemValue()
 10137  				r.EncodeInt(int64(x.testSelfExtHelper.I))
 10138  				z.EncWriteMapElemKey()
 10139  				if z.IsJSONHandle() {
 10140  					z.EncWr().WriteStr("\"S\"")
 10141  				} else {
 10142  					r.EncodeString(`S`)
 10143  				}
 10144  				z.EncWriteMapElemValue()
 10145  				r.EncodeString(string(x.testSelfExtHelper.S))
 10146  			} else {
 10147  				z.EncWriteMapElemKey()
 10148  				if z.IsJSONHandle() {
 10149  					z.EncWr().WriteStr("\"S\"")
 10150  				} else {
 10151  					r.EncodeString(`S`)
 10152  				}
 10153  				z.EncWriteMapElemValue()
 10154  				r.EncodeString(string(x.testSelfExtHelper.S))
 10155  				z.EncWriteMapElemKey()
 10156  				if z.IsJSONHandle() {
 10157  					z.EncWr().WriteStr("\"I\"")
 10158  				} else {
 10159  					r.EncodeString(`I`)
 10160  				}
 10161  				z.EncWriteMapElemValue()
 10162  				r.EncodeInt(int64(x.testSelfExtHelper.I))
 10163  				z.EncWriteMapElemKey()
 10164  				if z.IsJSONHandle() {
 10165  					z.EncWr().WriteStr("\"B\"")
 10166  				} else {
 10167  					r.EncodeString(`B`)
 10168  				}
 10169  				z.EncWriteMapElemValue()
 10170  				r.EncodeBool(bool(x.testSelfExtHelper.B))
 10171  			}
 10172  			z.EncWriteMapEnd()
 10173  		}
 10174  	}
 10175  }
 10176  
 10177  func (x *TestSelfExtImpl) CodecDecodeSelf(d *Decoder) {
 10178  	var h codecSelfer19780
 10179  	z, r := GenHelper().Decoder(d)
 10180  	_, _, _ = h, z, r
 10181  	yyct2 := r.ContainerType()
 10182  	if yyct2 == codecSelferValueTypeNil19780 {
 10183  		*(x) = TestSelfExtImpl{}
 10184  	} else if yyct2 == codecSelferValueTypeMap19780 {
 10185  		yyl2 := z.DecReadMapStart()
 10186  		if yyl2 == 0 {
 10187  		} else {
 10188  			x.codecDecodeSelfFromMap(yyl2, d)
 10189  		}
 10190  		z.DecReadMapEnd()
 10191  	} else if yyct2 == codecSelferValueTypeArray19780 {
 10192  		yyl2 := z.DecReadArrayStart()
 10193  		if yyl2 != 0 {
 10194  			x.codecDecodeSelfFromArray(yyl2, d)
 10195  		}
 10196  		z.DecReadArrayEnd()
 10197  	} else {
 10198  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
 10199  	}
 10200  }
 10201  
 10202  func (x *TestSelfExtImpl) codecDecodeSelfFromMap(l int, d *Decoder) {
 10203  	var h codecSelfer19780
 10204  	z, r := GenHelper().Decoder(d)
 10205  	_, _, _ = h, z, r
 10206  	var yyhl3 bool = l >= 0
 10207  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
 10208  		z.DecReadMapElemKey()
 10209  		yys3 := r.DecodeStringAsBytes()
 10210  		z.DecReadMapElemValue()
 10211  		switch string(yys3) {
 10212  		case "S":
 10213  			x.testSelfExtHelper.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 10214  		case "I":
 10215  			x.testSelfExtHelper.I = (int64)(r.DecodeInt64())
 10216  		case "B":
 10217  			x.testSelfExtHelper.B = (bool)(r.DecodeBool())
 10218  		default:
 10219  			z.DecStructFieldNotFound(-1, string(yys3))
 10220  		} // end switch yys3
 10221  	} // end for yyj3
 10222  }
 10223  
 10224  func (x *TestSelfExtImpl) codecDecodeSelfFromArray(l int, d *Decoder) {
 10225  	var h codecSelfer19780
 10226  	z, r := GenHelper().Decoder(d)
 10227  	_, _, _ = h, z, r
 10228  	var yyj7 int
 10229  	var yyb7 bool
 10230  	var yyhl7 bool = l >= 0
 10231  	yyb7 = !z.DecContainerNext(yyj7, l, yyhl7)
 10232  	if yyb7 {
 10233  		z.DecReadArrayEnd()
 10234  		return
 10235  	}
 10236  	z.DecReadArrayElem()
 10237  	x.testSelfExtHelper.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 10238  	yyj7++
 10239  	yyb7 = !z.DecContainerNext(yyj7, l, yyhl7)
 10240  	if yyb7 {
 10241  		z.DecReadArrayEnd()
 10242  		return
 10243  	}
 10244  	z.DecReadArrayElem()
 10245  	x.testSelfExtHelper.I = (int64)(r.DecodeInt64())
 10246  	yyj7++
 10247  	yyb7 = !z.DecContainerNext(yyj7, l, yyhl7)
 10248  	if yyb7 {
 10249  		z.DecReadArrayEnd()
 10250  		return
 10251  	}
 10252  	z.DecReadArrayElem()
 10253  	x.testSelfExtHelper.B = (bool)(r.DecodeBool())
 10254  	yyj7++
 10255  	for ; z.DecContainerNext(yyj7, l, yyhl7); yyj7++ {
 10256  		z.DecReadArrayElem()
 10257  		z.DecStructFieldNotFound(yyj7-1, "")
 10258  	}
 10259  }
 10260  
 10261  func (x *TestSelfExtImpl) IsCodecEmpty() bool {
 10262  	return !(!(x.testSelfExtHelper.IsCodecEmpty()) || false)
 10263  }
 10264  
 10265  func (TestSelfExtImpl2) codecSelferViaCodecgen() {}
 10266  func (x *TestSelfExtImpl2) CodecEncodeSelf(e *Encoder) {
 10267  	var h codecSelfer19780
 10268  	z, r := GenHelper().Encoder(e)
 10269  	_, _, _ = h, z, r
 10270  	if z.EncBasicHandle().CheckCircularRef {
 10271  		z.EncEncode(x)
 10272  		return
 10273  	}
 10274  	if x == nil {
 10275  		r.EncodeNil()
 10276  	} else {
 10277  		yy2arr2 := z.EncBasicHandle().StructToArray
 10278  		_ = yy2arr2
 10279  		const yyr2 bool = false // struct tag has 'toArray'
 10280  		if yyr2 || yy2arr2 {
 10281  			z.EncWriteArrayStart(2)
 10282  			z.EncWriteArrayElem()
 10283  			r.EncodeString(string(x.M))
 10284  			z.EncWriteArrayElem()
 10285  			r.EncodeBool(bool(x.O))
 10286  			z.EncWriteArrayEnd()
 10287  		} else {
 10288  			z.EncWriteMapStart(2)
 10289  			if z.EncBasicHandle().Canonical {
 10290  				z.EncWriteMapElemKey()
 10291  				if z.IsJSONHandle() {
 10292  					z.EncWr().WriteStr("\"M\"")
 10293  				} else {
 10294  					r.EncodeString(`M`)
 10295  				}
 10296  				z.EncWriteMapElemValue()
 10297  				r.EncodeString(string(x.M))
 10298  				z.EncWriteMapElemKey()
 10299  				if z.IsJSONHandle() {
 10300  					z.EncWr().WriteStr("\"O\"")
 10301  				} else {
 10302  					r.EncodeString(`O`)
 10303  				}
 10304  				z.EncWriteMapElemValue()
 10305  				r.EncodeBool(bool(x.O))
 10306  			} else {
 10307  				z.EncWriteMapElemKey()
 10308  				if z.IsJSONHandle() {
 10309  					z.EncWr().WriteStr("\"M\"")
 10310  				} else {
 10311  					r.EncodeString(`M`)
 10312  				}
 10313  				z.EncWriteMapElemValue()
 10314  				r.EncodeString(string(x.M))
 10315  				z.EncWriteMapElemKey()
 10316  				if z.IsJSONHandle() {
 10317  					z.EncWr().WriteStr("\"O\"")
 10318  				} else {
 10319  					r.EncodeString(`O`)
 10320  				}
 10321  				z.EncWriteMapElemValue()
 10322  				r.EncodeBool(bool(x.O))
 10323  			}
 10324  			z.EncWriteMapEnd()
 10325  		}
 10326  	}
 10327  }
 10328  
 10329  func (x *TestSelfExtImpl2) CodecDecodeSelf(d *Decoder) {
 10330  	var h codecSelfer19780
 10331  	z, r := GenHelper().Decoder(d)
 10332  	_, _, _ = h, z, r
 10333  	yyct2 := r.ContainerType()
 10334  	if yyct2 == codecSelferValueTypeNil19780 {
 10335  		*(x) = TestSelfExtImpl2{}
 10336  	} else if yyct2 == codecSelferValueTypeMap19780 {
 10337  		yyl2 := z.DecReadMapStart()
 10338  		if yyl2 == 0 {
 10339  		} else {
 10340  			x.codecDecodeSelfFromMap(yyl2, d)
 10341  		}
 10342  		z.DecReadMapEnd()
 10343  	} else if yyct2 == codecSelferValueTypeArray19780 {
 10344  		yyl2 := z.DecReadArrayStart()
 10345  		if yyl2 != 0 {
 10346  			x.codecDecodeSelfFromArray(yyl2, d)
 10347  		}
 10348  		z.DecReadArrayEnd()
 10349  	} else {
 10350  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
 10351  	}
 10352  }
 10353  
 10354  func (x *TestSelfExtImpl2) codecDecodeSelfFromMap(l int, d *Decoder) {
 10355  	var h codecSelfer19780
 10356  	z, r := GenHelper().Decoder(d)
 10357  	_, _, _ = h, z, r
 10358  	var yyhl3 bool = l >= 0
 10359  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
 10360  		z.DecReadMapElemKey()
 10361  		yys3 := r.DecodeStringAsBytes()
 10362  		z.DecReadMapElemValue()
 10363  		switch string(yys3) {
 10364  		case "M":
 10365  			x.M = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 10366  		case "O":
 10367  			x.O = (bool)(r.DecodeBool())
 10368  		default:
 10369  			z.DecStructFieldNotFound(-1, string(yys3))
 10370  		} // end switch yys3
 10371  	} // end for yyj3
 10372  }
 10373  
 10374  func (x *TestSelfExtImpl2) codecDecodeSelfFromArray(l int, d *Decoder) {
 10375  	var h codecSelfer19780
 10376  	z, r := GenHelper().Decoder(d)
 10377  	_, _, _ = h, z, r
 10378  	var yyj6 int
 10379  	var yyb6 bool
 10380  	var yyhl6 bool = l >= 0
 10381  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
 10382  	if yyb6 {
 10383  		z.DecReadArrayEnd()
 10384  		return
 10385  	}
 10386  	z.DecReadArrayElem()
 10387  	x.M = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 10388  	yyj6++
 10389  	yyb6 = !z.DecContainerNext(yyj6, l, yyhl6)
 10390  	if yyb6 {
 10391  		z.DecReadArrayEnd()
 10392  		return
 10393  	}
 10394  	z.DecReadArrayElem()
 10395  	x.O = (bool)(r.DecodeBool())
 10396  	yyj6++
 10397  	for ; z.DecContainerNext(yyj6, l, yyhl6); yyj6++ {
 10398  		z.DecReadArrayElem()
 10399  		z.DecStructFieldNotFound(yyj6-1, "")
 10400  	}
 10401  }
 10402  
 10403  func (x *TestSelfExtImpl2) IsCodecEmpty() bool {
 10404  	return !(x.M != "" || bool(x.O) || false)
 10405  }
 10406  
 10407  func (TestTwoNakedInterfaces) codecSelferViaCodecgen() {}
 10408  func (x *TestTwoNakedInterfaces) CodecEncodeSelf(e *Encoder) {
 10409  	var h codecSelfer19780
 10410  	z, r := GenHelper().Encoder(e)
 10411  	_, _, _ = h, z, r
 10412  	if z.EncBasicHandle().CheckCircularRef {
 10413  		z.EncEncode(x)
 10414  		return
 10415  	}
 10416  	if x == nil {
 10417  		r.EncodeNil()
 10418  	} else {
 10419  		yy2arr2 := z.EncBasicHandle().StructToArray
 10420  		_ = yy2arr2
 10421  		const yyr2 bool = false // struct tag has 'toArray'
 10422  		if yyr2 || yy2arr2 {
 10423  			z.EncWriteArrayStart(2)
 10424  			z.EncWriteArrayElem()
 10425  			z.EncFallback(x.A)
 10426  			z.EncWriteArrayElem()
 10427  			z.EncFallback(x.B)
 10428  			z.EncWriteArrayEnd()
 10429  		} else {
 10430  			z.EncWriteMapStart(2)
 10431  			if z.EncBasicHandle().Canonical {
 10432  				z.EncWriteMapElemKey()
 10433  				if z.IsJSONHandle() {
 10434  					z.EncWr().WriteStr("\"A\"")
 10435  				} else {
 10436  					r.EncodeString(`A`)
 10437  				}
 10438  				z.EncWriteMapElemValue()
 10439  				z.EncFallback(x.A)
 10440  				z.EncWriteMapElemKey()
 10441  				if z.IsJSONHandle() {
 10442  					z.EncWr().WriteStr("\"B\"")
 10443  				} else {
 10444  					r.EncodeString(`B`)
 10445  				}
 10446  				z.EncWriteMapElemValue()
 10447  				z.EncFallback(x.B)
 10448  			} else {
 10449  				z.EncWriteMapElemKey()
 10450  				if z.IsJSONHandle() {
 10451  					z.EncWr().WriteStr("\"A\"")
 10452  				} else {
 10453  					r.EncodeString(`A`)
 10454  				}
 10455  				z.EncWriteMapElemValue()
 10456  				z.EncFallback(x.A)
 10457  				z.EncWriteMapElemKey()
 10458  				if z.IsJSONHandle() {
 10459  					z.EncWr().WriteStr("\"B\"")
 10460  				} else {
 10461  					r.EncodeString(`B`)
 10462  				}
 10463  				z.EncWriteMapElemValue()
 10464  				z.EncFallback(x.B)
 10465  			}
 10466  			z.EncWriteMapEnd()
 10467  		}
 10468  	}
 10469  }
 10470  
 10471  func (x *TestTwoNakedInterfaces) CodecDecodeSelf(d *Decoder) {
 10472  	var h codecSelfer19780
 10473  	z, r := GenHelper().Decoder(d)
 10474  	_, _, _ = h, z, r
 10475  	yyct2 := r.ContainerType()
 10476  	if yyct2 == codecSelferValueTypeNil19780 {
 10477  		*(x) = TestTwoNakedInterfaces{}
 10478  	} else if yyct2 == codecSelferValueTypeMap19780 {
 10479  		yyl2 := z.DecReadMapStart()
 10480  		if yyl2 == 0 {
 10481  		} else {
 10482  			x.codecDecodeSelfFromMap(yyl2, d)
 10483  		}
 10484  		z.DecReadMapEnd()
 10485  	} else if yyct2 == codecSelferValueTypeArray19780 {
 10486  		yyl2 := z.DecReadArrayStart()
 10487  		if yyl2 != 0 {
 10488  			x.codecDecodeSelfFromArray(yyl2, d)
 10489  		}
 10490  		z.DecReadArrayEnd()
 10491  	} else {
 10492  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
 10493  	}
 10494  }
 10495  
 10496  func (x *TestTwoNakedInterfaces) codecDecodeSelfFromMap(l int, d *Decoder) {
 10497  	var h codecSelfer19780
 10498  	z, r := GenHelper().Decoder(d)
 10499  	_, _, _ = h, z, r
 10500  	var yyhl3 bool = l >= 0
 10501  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
 10502  		z.DecReadMapElemKey()
 10503  		yys3 := r.DecodeStringAsBytes()
 10504  		z.DecReadMapElemValue()
 10505  		switch string(yys3) {
 10506  		case "A":
 10507  			z.DecFallback(&x.A, true)
 10508  		case "B":
 10509  			z.DecFallback(&x.B, true)
 10510  		default:
 10511  			z.DecStructFieldNotFound(-1, string(yys3))
 10512  		} // end switch yys3
 10513  	} // end for yyj3
 10514  }
 10515  
 10516  func (x *TestTwoNakedInterfaces) codecDecodeSelfFromArray(l int, d *Decoder) {
 10517  	var h codecSelfer19780
 10518  	z, r := GenHelper().Decoder(d)
 10519  	_, _, _ = h, z, r
 10520  	var yyj8 int
 10521  	var yyb8 bool
 10522  	var yyhl8 bool = l >= 0
 10523  	yyb8 = !z.DecContainerNext(yyj8, l, yyhl8)
 10524  	if yyb8 {
 10525  		z.DecReadArrayEnd()
 10526  		return
 10527  	}
 10528  	z.DecReadArrayElem()
 10529  	z.DecFallback(&x.A, true)
 10530  	yyj8++
 10531  	yyb8 = !z.DecContainerNext(yyj8, l, yyhl8)
 10532  	if yyb8 {
 10533  		z.DecReadArrayEnd()
 10534  		return
 10535  	}
 10536  	z.DecReadArrayElem()
 10537  	z.DecFallback(&x.B, true)
 10538  	yyj8++
 10539  	for ; z.DecContainerNext(yyj8, l, yyhl8); yyj8++ {
 10540  		z.DecReadArrayElem()
 10541  		z.DecStructFieldNotFound(yyj8-1, "")
 10542  	}
 10543  }
 10544  
 10545  func (x *TestTwoNakedInterfaces) IsCodecEmpty() bool {
 10546  	return !(x.A != nil || x.B != nil || false)
 10547  }
 10548  
 10549  func (TestStrucFlex) codecSelferViaCodecgen() {}
 10550  func (x *TestStrucFlex) CodecEncodeSelf(e *Encoder) {
 10551  	var h codecSelfer19780
 10552  	z, r := GenHelper().Encoder(e)
 10553  	_, _, _ = h, z, r
 10554  	if z.EncBasicHandle().CheckCircularRef {
 10555  		z.EncEncode(x)
 10556  		return
 10557  	}
 10558  	if x == nil {
 10559  		r.EncodeNil()
 10560  	} else {
 10561  		yy2arr2 := z.EncBasicHandle().StructToArray
 10562  		_ = yy2arr2
 10563  		const yyr2 bool = false // struct tag has 'toArray'
 10564  		var yyn54 bool = x.TestStrucCommon.AnonInTestStrucSlim == nil || x.TestStrucCommon.AnonInTestStrucSlim.P == nil
 10565  		var yyn55 bool = x.TestStrucCommon.NotAnonSlim == nil
 10566  		var yyn58 bool = x.TestStrucCommon.Nint64 == nil
 10567  		var yyn81 bool = x.Ttimeptr == nil
 10568  		var yyn82 bool = x.AnonInTestStrucIntf == nil
 10569  		var yyn83 bool = x.AnonInTestStrucIntf == nil
 10570  		var yyn84 bool = x.AnonInTestStrucIntf == nil
 10571  		var yyn85 bool = x.AnonInTestStrucIntf == nil
 10572  		var yyn86 bool = x.AnonInTestStrucIntf == nil || x.AnonInTestStrucIntf.Tptr == nil
 10573  		var yyn91 bool = x.Nteststruc == nil
 10574  		var yyq2 = [95]bool{ // should field at this index be written?
 10575  			x.S != "",                   // S
 10576  			x.I64 != 0,                  // I64
 10577  			x.I32 != 0,                  // I32
 10578  			x.I16 != 0,                  // I16
 10579  			x.I8 != 0,                   // I8
 10580  			x.I64n != 0,                 // I64n
 10581  			x.I32n != 0,                 // I32n
 10582  			x.I16n != 0,                 // I16n
 10583  			x.I8n != 0,                  // I8n
 10584  			x.Ui64 != 0,                 // Ui64
 10585  			x.Ui32 != 0,                 // Ui32
 10586  			x.Ui16 != 0,                 // Ui16
 10587  			x.Ui8 != 0,                  // Ui8
 10588  			x.F64 != 0,                  // F64
 10589  			x.F32 != 0,                  // F32
 10590  			bool(x.B),                   // B
 10591  			x.By != 0,                   // By
 10592  			len(x.Sslice) != 0,          // Sslice
 10593  			len(x.I64slice) != 0,        // I64slice
 10594  			len(x.I32slice) != 0,        // I32slice
 10595  			len(x.Ui64slice) != 0,       // Ui64slice
 10596  			len(x.Ui8slice) != 0,        // Ui8slice
 10597  			len(x.Bslice) != 0,          // Bslice
 10598  			len(x.Byslice) != 0,         // Byslice
 10599  			len(x.BytesSlice) != 0,      // BytesSlice
 10600  			len(x.Iptrslice) != 0,       // Iptrslice
 10601  			len(x.WrapSliceInt64) != 0,  // WrapSliceInt64
 10602  			len(x.WrapSliceString) != 0, // WrapSliceString
 10603  			len(x.Msint) != 0,           // Msint
 10604  			len(x.Msbytes) != 0,         // Msbytes
 10605  			!(x.Simplef.IsCodecEmpty()), // Simplef
 10606  			len(x.SstrUi64T) != 0,       // SstrUi64T
 10607  			len(x.MstrUi64T) != 0,       // MstrUi64T
 10608  			x.AS != "",                  // AS
 10609  			x.AI64 != 0,                 // AI64
 10610  			x.AI16 != 0,                 // AI16
 10611  			x.AUi64 != 0,                // AUi64
 10612  			len(x.ASslice) != 0,         // ASslice
 10613  			len(x.AI64slice) != 0,       // AI64slice
 10614  			len(x.AUi64slice) != 0,      // AUi64slice
 10615  			len(x.AF64slice) != 0,       // AF64slice
 10616  			len(x.AF32slice) != 0,       // AF32slice
 10617  			len(x.AMSS) != 0,            // AMSS
 10618  			len(x.AMSU64) != 0,          // AMSU64
 10619  			x.AI64arr8 != [8]int64{},    // AI64arr8
 10620  			false,                       // AI64arr0
 10621  			len(x.AI64slice0) != 0,      // AI64slice0
 10622  			len(x.AUi64sliceN) != 0,     // AUi64sliceN
 10623  			len(x.AMSU64N) != 0,         // AMSU64N
 10624  			len(x.AMSU64E) != 0,         // AMSU64E
 10625  			!(x.NotAnon.IsCodecEmpty()), // NotAnon
 10626  			x.TestStrucCommon.AnonInTestStrucSlim != nil && x.P != nil, // P
 10627  			x.NotAnonSlim != nil,                // NotAnonSlim
 10628  			len(x.Nmap) != 0,                    // Nmap
 10629  			len(x.Nslice) != 0,                  // Nslice
 10630  			x.Nint64 != nil,                     // Nint64
 10631  			len(x.Chstr) != 0,                   // Chstr
 10632  			len(x.Mis) != 0,                     // Mis
 10633  			len(x.Mbu64) != 0,                   // Mbu64
 10634  			len(x.Mu8e) != 0,                    // Mu8e
 10635  			len(x.Mu8u64) != 0,                  // Mu8u64
 10636  			len(x.Msp2ss) != 0,                  // Msp2ss
 10637  			len(x.Mip2ss) != 0,                  // Mip2ss
 10638  			len(x.Ms2misu) != 0,                 // Ms2misu
 10639  			len(x.Miwu64s) != 0,                 // Miwu64s
 10640  			len(x.Mfwss) != 0,                   // Mfwss
 10641  			len(x.Mf32wss) != 0,                 // Mf32wss
 10642  			len(x.Mui2wss) != 0,                 // Mui2wss
 10643  			len(x.Msu2wss) != 0,                 // Msu2wss
 10644  			x.Ci64 != 0,                         // Ci64
 10645  			len(x.Swrapbytes) != 0,              // Swrapbytes
 10646  			len(x.Swrapuint8) != 0,              // Swrapuint8
 10647  			x.ArrStrUi64T != [4]stringUint64T{}, // ArrStrUi64T
 10648  			x.Ui64array != [4]uint64{},          // Ui64array
 10649  			len(x.Ui64slicearray) != 0,          // Ui64slicearray
 10650  			len(x.SintfAarray) != 0,             // SintfAarray
 10651  			len(x.MstrUi64TSelf) != 0,           // MstrUi64TSelf
 10652  			!(x.Ttime.IsZero()),                 // Ttime
 10653  			x.Ttimeptr != nil,                   // Ttimeptr
 10654  			x.AnonInTestStrucIntf != nil && len(x.Islice) != 0, // Islice
 10655  			x.AnonInTestStrucIntf != nil && len(x.Ms) != 0,     // Ms
 10656  			x.AnonInTestStrucIntf != nil && x.Nintf != nil,     // Nintf
 10657  			x.AnonInTestStrucIntf != nil && !(x.T.IsZero()),    // T
 10658  			x.AnonInTestStrucIntf != nil && x.Tptr != nil,      // Tptr
 10659  			len(x.Msu) != 0,     // Msu
 10660  			len(x.Mtsptr) != 0,  // Mtsptr
 10661  			len(x.Mts) != 0,     // Mts
 10662  			len(x.Its) != 0,     // Its
 10663  			x.Nteststruc != nil, // Nteststruc
 10664  			bool(x.MarJ),        // MarJ
 10665  			x.MarT != "",        // MarT
 10666  			len(x.MarB) != 0,    // MarB
 10667  			x.XuintToBytes != 0, // XuintToBytes
 10668  			x.Cmplx64 != 0,      // Cmplx64
 10669  			x.Cmplx128 != 0,     // Cmplx128
 10670  		}
 10671  		_ = yyq2
 10672  		if yyr2 || yy2arr2 {
 10673  			z.EncWriteArrayStart(95)
 10674  			z.EncWriteArrayElem()
 10675  			if yyq2[0] {
 10676  				r.EncodeString(string(x.TestStrucCommon.S))
 10677  			} else {
 10678  				r.EncodeString("")
 10679  			}
 10680  			z.EncWriteArrayElem()
 10681  			if yyq2[1] {
 10682  				r.EncodeInt(int64(x.TestStrucCommon.I64))
 10683  			} else {
 10684  				r.EncodeInt(0)
 10685  			}
 10686  			z.EncWriteArrayElem()
 10687  			if yyq2[2] {
 10688  				r.EncodeInt(int64(x.TestStrucCommon.I32))
 10689  			} else {
 10690  				r.EncodeInt(0)
 10691  			}
 10692  			z.EncWriteArrayElem()
 10693  			if yyq2[3] {
 10694  				r.EncodeInt(int64(x.TestStrucCommon.I16))
 10695  			} else {
 10696  				r.EncodeInt(0)
 10697  			}
 10698  			z.EncWriteArrayElem()
 10699  			if yyq2[4] {
 10700  				r.EncodeInt(int64(x.TestStrucCommon.I8))
 10701  			} else {
 10702  				r.EncodeInt(0)
 10703  			}
 10704  			z.EncWriteArrayElem()
 10705  			if yyq2[5] {
 10706  				r.EncodeInt(int64(x.TestStrucCommon.I64n))
 10707  			} else {
 10708  				r.EncodeInt(0)
 10709  			}
 10710  			z.EncWriteArrayElem()
 10711  			if yyq2[6] {
 10712  				r.EncodeInt(int64(x.TestStrucCommon.I32n))
 10713  			} else {
 10714  				r.EncodeInt(0)
 10715  			}
 10716  			z.EncWriteArrayElem()
 10717  			if yyq2[7] {
 10718  				r.EncodeInt(int64(x.TestStrucCommon.I16n))
 10719  			} else {
 10720  				r.EncodeInt(0)
 10721  			}
 10722  			z.EncWriteArrayElem()
 10723  			if yyq2[8] {
 10724  				r.EncodeInt(int64(x.TestStrucCommon.I8n))
 10725  			} else {
 10726  				r.EncodeInt(0)
 10727  			}
 10728  			z.EncWriteArrayElem()
 10729  			if yyq2[9] {
 10730  				r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
 10731  			} else {
 10732  				r.EncodeUint(0)
 10733  			}
 10734  			z.EncWriteArrayElem()
 10735  			if yyq2[10] {
 10736  				r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
 10737  			} else {
 10738  				r.EncodeUint(0)
 10739  			}
 10740  			z.EncWriteArrayElem()
 10741  			if yyq2[11] {
 10742  				r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
 10743  			} else {
 10744  				r.EncodeUint(0)
 10745  			}
 10746  			z.EncWriteArrayElem()
 10747  			if yyq2[12] {
 10748  				r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
 10749  			} else {
 10750  				r.EncodeUint(0)
 10751  			}
 10752  			z.EncWriteArrayElem()
 10753  			if yyq2[13] {
 10754  				r.EncodeFloat64(float64(x.TestStrucCommon.F64))
 10755  			} else {
 10756  				r.EncodeFloat64(0)
 10757  			}
 10758  			z.EncWriteArrayElem()
 10759  			if yyq2[14] {
 10760  				r.EncodeFloat32(float32(x.TestStrucCommon.F32))
 10761  			} else {
 10762  				r.EncodeFloat32(0)
 10763  			}
 10764  			z.EncWriteArrayElem()
 10765  			if yyq2[15] {
 10766  				r.EncodeBool(bool(x.TestStrucCommon.B))
 10767  			} else {
 10768  				r.EncodeBool(false)
 10769  			}
 10770  			z.EncWriteArrayElem()
 10771  			if yyq2[16] {
 10772  				r.EncodeUint(uint64(x.TestStrucCommon.By))
 10773  			} else {
 10774  				r.EncodeUint(0)
 10775  			}
 10776  			z.EncWriteArrayElem()
 10777  			if yyq2[17] {
 10778  				if x.TestStrucCommon.Sslice == nil {
 10779  					r.EncodeNil()
 10780  				} else {
 10781  					z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
 10782  				} // end block: if x.TestStrucCommon.Sslice slice == nil
 10783  			} else {
 10784  				r.EncodeNil()
 10785  			}
 10786  			z.EncWriteArrayElem()
 10787  			if yyq2[18] {
 10788  				if x.TestStrucCommon.I64slice == nil {
 10789  					r.EncodeNil()
 10790  				} else {
 10791  					z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
 10792  				} // end block: if x.TestStrucCommon.I64slice slice == nil
 10793  			} else {
 10794  				r.EncodeNil()
 10795  			}
 10796  			z.EncWriteArrayElem()
 10797  			if yyq2[19] {
 10798  				if x.TestStrucCommon.I32slice == nil {
 10799  					r.EncodeNil()
 10800  				} else {
 10801  					z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
 10802  				} // end block: if x.TestStrucCommon.I32slice slice == nil
 10803  			} else {
 10804  				r.EncodeNil()
 10805  			}
 10806  			z.EncWriteArrayElem()
 10807  			if yyq2[20] {
 10808  				if x.TestStrucCommon.Ui64slice == nil {
 10809  					r.EncodeNil()
 10810  				} else {
 10811  					z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
 10812  				} // end block: if x.TestStrucCommon.Ui64slice slice == nil
 10813  			} else {
 10814  				r.EncodeNil()
 10815  			}
 10816  			z.EncWriteArrayElem()
 10817  			if yyq2[21] {
 10818  				if x.TestStrucCommon.Ui8slice == nil {
 10819  					r.EncodeNil()
 10820  				} else {
 10821  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
 10822  				} // end block: if x.TestStrucCommon.Ui8slice slice == nil
 10823  			} else {
 10824  				r.EncodeNil()
 10825  			}
 10826  			z.EncWriteArrayElem()
 10827  			if yyq2[22] {
 10828  				if x.TestStrucCommon.Bslice == nil {
 10829  					r.EncodeNil()
 10830  				} else {
 10831  					z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
 10832  				} // end block: if x.TestStrucCommon.Bslice slice == nil
 10833  			} else {
 10834  				r.EncodeNil()
 10835  			}
 10836  			z.EncWriteArrayElem()
 10837  			if yyq2[23] {
 10838  				if x.TestStrucCommon.Byslice == nil {
 10839  					r.EncodeNil()
 10840  				} else {
 10841  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
 10842  				} // end block: if x.TestStrucCommon.Byslice slice == nil
 10843  			} else {
 10844  				r.EncodeNil()
 10845  			}
 10846  			z.EncWriteArrayElem()
 10847  			if yyq2[24] {
 10848  				if x.TestStrucCommon.BytesSlice == nil {
 10849  					r.EncodeNil()
 10850  				} else {
 10851  					z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
 10852  				} // end block: if x.TestStrucCommon.BytesSlice slice == nil
 10853  			} else {
 10854  				r.EncodeNil()
 10855  			}
 10856  			z.EncWriteArrayElem()
 10857  			if yyq2[25] {
 10858  				if x.TestStrucCommon.Iptrslice == nil {
 10859  					r.EncodeNil()
 10860  				} else {
 10861  					h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
 10862  				} // end block: if x.TestStrucCommon.Iptrslice slice == nil
 10863  			} else {
 10864  				r.EncodeNil()
 10865  			}
 10866  			z.EncWriteArrayElem()
 10867  			if yyq2[26] {
 10868  				if yyxt124 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt124 != nil {
 10869  					z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt124)
 10870  				} else {
 10871  					x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
 10872  				}
 10873  			} else {
 10874  				r.EncodeNil()
 10875  			}
 10876  			z.EncWriteArrayElem()
 10877  			if yyq2[27] {
 10878  				if yyxt125 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt125 != nil {
 10879  					z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt125)
 10880  				} else {
 10881  					x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
 10882  				}
 10883  			} else {
 10884  				r.EncodeNil()
 10885  			}
 10886  			z.EncWriteArrayElem()
 10887  			if yyq2[28] {
 10888  				if x.TestStrucCommon.Msint == nil {
 10889  					r.EncodeNil()
 10890  				} else {
 10891  					z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
 10892  				} // end block: if x.TestStrucCommon.Msint map == nil
 10893  			} else {
 10894  				r.EncodeNil()
 10895  			}
 10896  			z.EncWriteArrayElem()
 10897  			if yyq2[29] {
 10898  				if x.TestStrucCommon.Msbytes == nil {
 10899  					r.EncodeNil()
 10900  				} else {
 10901  					z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
 10902  				} // end block: if x.TestStrucCommon.Msbytes map == nil
 10903  			} else {
 10904  				r.EncodeNil()
 10905  			}
 10906  			z.EncWriteArrayElem()
 10907  			if yyq2[30] {
 10908  				yy128 := &x.TestStrucCommon.Simplef
 10909  				if yyxt129 := z.Extension(yy128); yyxt129 != nil {
 10910  					z.EncExtension(yy128, yyxt129)
 10911  				} else {
 10912  					yy128.CodecEncodeSelf(e)
 10913  				}
 10914  			} else {
 10915  				r.EncodeNil()
 10916  			}
 10917  			z.EncWriteArrayElem()
 10918  			if yyq2[31] {
 10919  				if x.TestStrucCommon.SstrUi64T == nil {
 10920  					r.EncodeNil()
 10921  				} else {
 10922  					h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
 10923  				} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
 10924  			} else {
 10925  				r.EncodeNil()
 10926  			}
 10927  			z.EncWriteArrayElem()
 10928  			if yyq2[32] {
 10929  				if x.TestStrucCommon.MstrUi64T == nil {
 10930  					r.EncodeNil()
 10931  				} else {
 10932  					h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
 10933  				} // end block: if x.TestStrucCommon.MstrUi64T map == nil
 10934  			} else {
 10935  				r.EncodeNil()
 10936  			}
 10937  			z.EncWriteArrayElem()
 10938  			if yyq2[33] {
 10939  				r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
 10940  			} else {
 10941  				r.EncodeString("")
 10942  			}
 10943  			z.EncWriteArrayElem()
 10944  			if yyq2[34] {
 10945  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
 10946  			} else {
 10947  				r.EncodeInt(0)
 10948  			}
 10949  			z.EncWriteArrayElem()
 10950  			if yyq2[35] {
 10951  				r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
 10952  			} else {
 10953  				r.EncodeInt(0)
 10954  			}
 10955  			z.EncWriteArrayElem()
 10956  			if yyq2[36] {
 10957  				r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
 10958  			} else {
 10959  				r.EncodeUint(0)
 10960  			}
 10961  			z.EncWriteArrayElem()
 10962  			if yyq2[37] {
 10963  				if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
 10964  					r.EncodeNil()
 10965  				} else {
 10966  					z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
 10967  				} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
 10968  			} else {
 10969  				r.EncodeNil()
 10970  			}
 10971  			z.EncWriteArrayElem()
 10972  			if yyq2[38] {
 10973  				if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
 10974  					r.EncodeNil()
 10975  				} else {
 10976  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
 10977  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
 10978  			} else {
 10979  				r.EncodeNil()
 10980  			}
 10981  			z.EncWriteArrayElem()
 10982  			if yyq2[39] {
 10983  				if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
 10984  					r.EncodeNil()
 10985  				} else {
 10986  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
 10987  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
 10988  			} else {
 10989  				r.EncodeNil()
 10990  			}
 10991  			z.EncWriteArrayElem()
 10992  			if yyq2[40] {
 10993  				if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
 10994  					r.EncodeNil()
 10995  				} else {
 10996  					z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
 10997  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
 10998  			} else {
 10999  				r.EncodeNil()
 11000  			}
 11001  			z.EncWriteArrayElem()
 11002  			if yyq2[41] {
 11003  				if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
 11004  					r.EncodeNil()
 11005  				} else {
 11006  					z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
 11007  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
 11008  			} else {
 11009  				r.EncodeNil()
 11010  			}
 11011  			z.EncWriteArrayElem()
 11012  			if yyq2[42] {
 11013  				if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
 11014  					r.EncodeNil()
 11015  				} else {
 11016  					z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
 11017  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
 11018  			} else {
 11019  				r.EncodeNil()
 11020  			}
 11021  			z.EncWriteArrayElem()
 11022  			if yyq2[43] {
 11023  				if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
 11024  					r.EncodeNil()
 11025  				} else {
 11026  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
 11027  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
 11028  			} else {
 11029  				r.EncodeNil()
 11030  			}
 11031  			z.EncWriteArrayElem()
 11032  			if yyq2[44] {
 11033  				yy143 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
 11034  				h.encArray8int64((*[8]int64)(yy143), e)
 11035  			} else {
 11036  				r.EncodeNil()
 11037  			}
 11038  			z.EncWriteArrayElem()
 11039  			if yyq2[45] {
 11040  				yy145 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
 11041  				h.encArray0int64((*[0]int64)(yy145), e)
 11042  			} else {
 11043  				r.EncodeNil()
 11044  			}
 11045  			z.EncWriteArrayElem()
 11046  			if yyq2[46] {
 11047  				if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
 11048  					r.EncodeNil()
 11049  				} else {
 11050  					z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
 11051  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
 11052  			} else {
 11053  				r.EncodeNil()
 11054  			}
 11055  			z.EncWriteArrayElem()
 11056  			if yyq2[47] {
 11057  				if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
 11058  					r.EncodeNil()
 11059  				} else {
 11060  					z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
 11061  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
 11062  			} else {
 11063  				r.EncodeNil()
 11064  			}
 11065  			z.EncWriteArrayElem()
 11066  			if yyq2[48] {
 11067  				if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
 11068  					r.EncodeNil()
 11069  				} else {
 11070  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
 11071  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
 11072  			} else {
 11073  				r.EncodeNil()
 11074  			}
 11075  			z.EncWriteArrayElem()
 11076  			if yyq2[49] {
 11077  				if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
 11078  					r.EncodeNil()
 11079  				} else {
 11080  					z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
 11081  				} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
 11082  			} else {
 11083  				r.EncodeNil()
 11084  			}
 11085  			z.EncWriteArrayElem()
 11086  			if yyq2[50] {
 11087  				yy151 := &x.TestStrucCommon.NotAnon
 11088  				if yyxt152 := z.Extension(yy151); yyxt152 != nil {
 11089  					z.EncExtension(yy151, yyxt152)
 11090  				} else {
 11091  					yy151.CodecEncodeSelf(e)
 11092  				}
 11093  			} else {
 11094  				r.EncodeNil()
 11095  			}
 11096  			if yyn54 {
 11097  				z.EncWriteArrayElem()
 11098  				r.EncodeNil()
 11099  			} else {
 11100  				z.EncWriteArrayElem()
 11101  				if yyq2[51] {
 11102  					yy153 := *x.TestStrucCommon.AnonInTestStrucSlim.P
 11103  					r.EncodeString(string(yy153))
 11104  				} else {
 11105  					r.EncodeNil()
 11106  				}
 11107  			}
 11108  			if yyn55 {
 11109  				z.EncWriteArrayElem()
 11110  				r.EncodeNil()
 11111  			} else {
 11112  				z.EncWriteArrayElem()
 11113  				if yyq2[52] {
 11114  					if yyxt155 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt155 != nil {
 11115  						z.EncExtension(x.TestStrucCommon.NotAnonSlim, yyxt155)
 11116  					} else {
 11117  						x.TestStrucCommon.NotAnonSlim.CodecEncodeSelf(e)
 11118  					}
 11119  				} else {
 11120  					r.EncodeNil()
 11121  				}
 11122  			}
 11123  			z.EncWriteArrayElem()
 11124  			if yyq2[53] {
 11125  				if x.TestStrucCommon.Nmap == nil {
 11126  					r.EncodeNil()
 11127  				} else {
 11128  					z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
 11129  				} // end block: if x.TestStrucCommon.Nmap map == nil
 11130  			} else {
 11131  				r.EncodeNil()
 11132  			}
 11133  			z.EncWriteArrayElem()
 11134  			if yyq2[54] {
 11135  				if x.TestStrucCommon.Nslice == nil {
 11136  					r.EncodeNil()
 11137  				} else {
 11138  					r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
 11139  				} // end block: if x.TestStrucCommon.Nslice slice == nil
 11140  			} else {
 11141  				r.EncodeNil()
 11142  			}
 11143  			if yyn58 {
 11144  				z.EncWriteArrayElem()
 11145  				r.EncodeNil()
 11146  			} else {
 11147  				z.EncWriteArrayElem()
 11148  				if yyq2[55] {
 11149  					yy158 := *x.TestStrucCommon.Nint64
 11150  					r.EncodeInt(int64(yy158))
 11151  				} else {
 11152  					r.EncodeNil()
 11153  				}
 11154  			}
 11155  			z.EncWriteArrayElem()
 11156  			if yyq2[56] {
 11157  				h.encChanstring((chan string)(x.Chstr), e)
 11158  			} else {
 11159  				r.EncodeNil()
 11160  			}
 11161  			z.EncWriteArrayElem()
 11162  			if yyq2[57] {
 11163  				if x.Mis == nil {
 11164  					r.EncodeNil()
 11165  				} else {
 11166  					z.F.EncMapIntStringV(x.Mis, e)
 11167  				} // end block: if x.Mis map == nil
 11168  			} else {
 11169  				r.EncodeNil()
 11170  			}
 11171  			z.EncWriteArrayElem()
 11172  			if yyq2[58] {
 11173  				if x.Mbu64 == nil {
 11174  					r.EncodeNil()
 11175  				} else {
 11176  					h.encMapboolONaHEdLDOQQHWfI((map[bool]struct{})(x.Mbu64), e)
 11177  				} // end block: if x.Mbu64 map == nil
 11178  			} else {
 11179  				r.EncodeNil()
 11180  			}
 11181  			z.EncWriteArrayElem()
 11182  			if yyq2[59] {
 11183  				if x.Mu8e == nil {
 11184  					r.EncodeNil()
 11185  				} else {
 11186  					h.encMapuint8ONaHEdLDOQQHWfI((map[uint8]struct{})(x.Mu8e), e)
 11187  				} // end block: if x.Mu8e map == nil
 11188  			} else {
 11189  				r.EncodeNil()
 11190  			}
 11191  			z.EncWriteArrayElem()
 11192  			if yyq2[60] {
 11193  				if x.Mu8u64 == nil {
 11194  					r.EncodeNil()
 11195  				} else {
 11196  					h.encMapuint8stringUint64T((map[uint8]stringUint64T)(x.Mu8u64), e)
 11197  				} // end block: if x.Mu8u64 map == nil
 11198  			} else {
 11199  				r.EncodeNil()
 11200  			}
 11201  			z.EncWriteArrayElem()
 11202  			if yyq2[61] {
 11203  				if x.Msp2ss == nil {
 11204  					r.EncodeNil()
 11205  				} else {
 11206  					h.encMapPtrtostringSlicestring((map[*string][]string)(x.Msp2ss), e)
 11207  				} // end block: if x.Msp2ss map == nil
 11208  			} else {
 11209  				r.EncodeNil()
 11210  			}
 11211  			z.EncWriteArrayElem()
 11212  			if yyq2[62] {
 11213  				if x.Mip2ss == nil {
 11214  					r.EncodeNil()
 11215  				} else {
 11216  					h.encMapPtrtouint64Slicestring((map[*uint64][]string)(x.Mip2ss), e)
 11217  				} // end block: if x.Mip2ss map == nil
 11218  			} else {
 11219  				r.EncodeNil()
 11220  			}
 11221  			z.EncWriteArrayElem()
 11222  			if yyq2[63] {
 11223  				if x.Ms2misu == nil {
 11224  					r.EncodeNil()
 11225  				} else {
 11226  					h.encMapstringMapuint64stringUint64T((map[string]map[uint64]stringUint64T)(x.Ms2misu), e)
 11227  				} // end block: if x.Ms2misu map == nil
 11228  			} else {
 11229  				r.EncodeNil()
 11230  			}
 11231  			z.EncWriteArrayElem()
 11232  			if yyq2[64] {
 11233  				if x.Miwu64s == nil {
 11234  					r.EncodeNil()
 11235  				} else {
 11236  					h.encMapintwrapUint64Slice((map[int]wrapUint64Slice)(x.Miwu64s), e)
 11237  				} // end block: if x.Miwu64s map == nil
 11238  			} else {
 11239  				r.EncodeNil()
 11240  			}
 11241  			z.EncWriteArrayElem()
 11242  			if yyq2[65] {
 11243  				if x.Mfwss == nil {
 11244  					r.EncodeNil()
 11245  				} else {
 11246  					h.encMapfloat64wrapStringSlice((map[float64]wrapStringSlice)(x.Mfwss), e)
 11247  				} // end block: if x.Mfwss map == nil
 11248  			} else {
 11249  				r.EncodeNil()
 11250  			}
 11251  			z.EncWriteArrayElem()
 11252  			if yyq2[66] {
 11253  				if x.Mf32wss == nil {
 11254  					r.EncodeNil()
 11255  				} else {
 11256  					h.encMapfloat32wrapStringSlice((map[float32]wrapStringSlice)(x.Mf32wss), e)
 11257  				} // end block: if x.Mf32wss map == nil
 11258  			} else {
 11259  				r.EncodeNil()
 11260  			}
 11261  			z.EncWriteArrayElem()
 11262  			if yyq2[67] {
 11263  				if x.Mui2wss == nil {
 11264  					r.EncodeNil()
 11265  				} else {
 11266  					h.encMapuint64wrapStringSlice((map[uint64]wrapStringSlice)(x.Mui2wss), e)
 11267  				} // end block: if x.Mui2wss map == nil
 11268  			} else {
 11269  				r.EncodeNil()
 11270  			}
 11271  			z.EncWriteArrayElem()
 11272  			if yyq2[68] {
 11273  				if x.Msu2wss == nil {
 11274  					r.EncodeNil()
 11275  				} else {
 11276  					h.encMapstringUint64TwrapStringSlice((map[stringUint64T]wrapStringSlice)(x.Msu2wss), e)
 11277  				} // end block: if x.Msu2wss map == nil
 11278  			} else {
 11279  				r.EncodeNil()
 11280  			}
 11281  			z.EncWriteArrayElem()
 11282  			if yyq2[69] {
 11283  				if yyxt173 := z.Extension(x.Ci64); yyxt173 != nil {
 11284  					z.EncExtension(x.Ci64, yyxt173)
 11285  				} else {
 11286  					x.Ci64.CodecEncodeSelf(e)
 11287  				}
 11288  			} else {
 11289  				r.EncodeInt(0)
 11290  			}
 11291  			z.EncWriteArrayElem()
 11292  			if yyq2[70] {
 11293  				if x.Swrapbytes == nil {
 11294  					r.EncodeNil()
 11295  				} else {
 11296  					h.encSlicewrapBytes(([]wrapBytes)(x.Swrapbytes), e)
 11297  				} // end block: if x.Swrapbytes slice == nil
 11298  			} else {
 11299  				r.EncodeNil()
 11300  			}
 11301  			z.EncWriteArrayElem()
 11302  			if yyq2[71] {
 11303  				if x.Swrapuint8 == nil {
 11304  					r.EncodeNil()
 11305  				} else {
 11306  					h.encSlicewrapUint8(([]wrapUint8)(x.Swrapuint8), e)
 11307  				} // end block: if x.Swrapuint8 slice == nil
 11308  			} else {
 11309  				r.EncodeNil()
 11310  			}
 11311  			z.EncWriteArrayElem()
 11312  			if yyq2[72] {
 11313  				yy176 := &x.ArrStrUi64T
 11314  				h.encArray4stringUint64T((*[4]stringUint64T)(yy176), e)
 11315  			} else {
 11316  				r.EncodeNil()
 11317  			}
 11318  			z.EncWriteArrayElem()
 11319  			if yyq2[73] {
 11320  				yy178 := &x.Ui64array
 11321  				h.encArray4uint64((*[4]uint64)(yy178), e)
 11322  			} else {
 11323  				r.EncodeNil()
 11324  			}
 11325  			z.EncWriteArrayElem()
 11326  			if yyq2[74] {
 11327  				if x.Ui64slicearray == nil {
 11328  					r.EncodeNil()
 11329  				} else {
 11330  					h.encSlicePtrtoArray4uint64(([]*[4]uint64)(x.Ui64slicearray), e)
 11331  				} // end block: if x.Ui64slicearray slice == nil
 11332  			} else {
 11333  				r.EncodeNil()
 11334  			}
 11335  			z.EncWriteArrayElem()
 11336  			if yyq2[75] {
 11337  				if x.SintfAarray == nil {
 11338  					r.EncodeNil()
 11339  				} else {
 11340  					z.F.EncSliceIntfV(x.SintfAarray, e)
 11341  				} // end block: if x.SintfAarray slice == nil
 11342  			} else {
 11343  				r.EncodeNil()
 11344  			}
 11345  			z.EncWriteArrayElem()
 11346  			if yyq2[76] {
 11347  				if x.MstrUi64TSelf == nil {
 11348  					r.EncodeNil()
 11349  				} else {
 11350  					h.encMapstringUint64TPtrtostringUint64T((map[stringUint64T]*stringUint64T)(x.MstrUi64TSelf), e)
 11351  				} // end block: if x.MstrUi64TSelf map == nil
 11352  			} else {
 11353  				r.EncodeNil()
 11354  			}
 11355  			z.EncWriteArrayElem()
 11356  			if yyq2[77] {
 11357  				if z.EncBasicHandle().TimeBuiltin() {
 11358  					r.EncodeTime(x.Ttime)
 11359  				} else if yyxt183 := z.Extension(x.Ttime); yyxt183 != nil {
 11360  					z.EncExtension(x.Ttime, yyxt183)
 11361  				} else if z.EncBinary() {
 11362  					z.EncBinaryMarshal(x.Ttime)
 11363  				} else if !z.EncBinary() && z.IsJSONHandle() {
 11364  					z.EncJSONMarshal(x.Ttime)
 11365  				} else {
 11366  					z.EncFallback(x.Ttime)
 11367  				}
 11368  			} else {
 11369  				r.EncodeNil()
 11370  			}
 11371  			if yyn81 {
 11372  				z.EncWriteArrayElem()
 11373  				r.EncodeNil()
 11374  			} else {
 11375  				z.EncWriteArrayElem()
 11376  				if yyq2[78] {
 11377  					yy184 := *x.Ttimeptr
 11378  					if z.EncBasicHandle().TimeBuiltin() {
 11379  						r.EncodeTime(yy184)
 11380  					} else if yyxt185 := z.Extension(yy184); yyxt185 != nil {
 11381  						z.EncExtension(yy184, yyxt185)
 11382  					} else if z.EncBinary() {
 11383  						z.EncBinaryMarshal(yy184)
 11384  					} else if !z.EncBinary() && z.IsJSONHandle() {
 11385  						z.EncJSONMarshal(yy184)
 11386  					} else {
 11387  						z.EncFallback(yy184)
 11388  					}
 11389  				} else {
 11390  					r.EncodeNil()
 11391  				}
 11392  			}
 11393  			if yyn82 {
 11394  				z.EncWriteArrayElem()
 11395  				r.EncodeNil()
 11396  			} else {
 11397  				z.EncWriteArrayElem()
 11398  				if yyq2[79] {
 11399  					if x.AnonInTestStrucIntf.Islice == nil {
 11400  						r.EncodeNil()
 11401  					} else {
 11402  						z.F.EncSliceIntfV(x.AnonInTestStrucIntf.Islice, e)
 11403  					} // end block: if x.AnonInTestStrucIntf.Islice slice == nil
 11404  				} else {
 11405  					r.EncodeNil()
 11406  				}
 11407  			}
 11408  			if yyn83 {
 11409  				z.EncWriteArrayElem()
 11410  				r.EncodeNil()
 11411  			} else {
 11412  				z.EncWriteArrayElem()
 11413  				if yyq2[80] {
 11414  					if x.AnonInTestStrucIntf.Ms == nil {
 11415  						r.EncodeNil()
 11416  					} else {
 11417  						z.F.EncMapStringIntfV(x.AnonInTestStrucIntf.Ms, e)
 11418  					} // end block: if x.AnonInTestStrucIntf.Ms map == nil
 11419  				} else {
 11420  					r.EncodeNil()
 11421  				}
 11422  			}
 11423  			if yyn84 {
 11424  				z.EncWriteArrayElem()
 11425  				r.EncodeNil()
 11426  			} else {
 11427  				z.EncWriteArrayElem()
 11428  				if yyq2[81] {
 11429  					z.EncFallback(x.AnonInTestStrucIntf.Nintf)
 11430  				} else {
 11431  					r.EncodeNil()
 11432  				}
 11433  			}
 11434  			if yyn85 {
 11435  				z.EncWriteArrayElem()
 11436  				r.EncodeNil()
 11437  			} else {
 11438  				z.EncWriteArrayElem()
 11439  				if yyq2[82] {
 11440  					if z.EncBasicHandle().TimeBuiltin() {
 11441  						r.EncodeTime(x.AnonInTestStrucIntf.T)
 11442  					} else if yyxt189 := z.Extension(x.AnonInTestStrucIntf.T); yyxt189 != nil {
 11443  						z.EncExtension(x.AnonInTestStrucIntf.T, yyxt189)
 11444  					} else if z.EncBinary() {
 11445  						z.EncBinaryMarshal(x.AnonInTestStrucIntf.T)
 11446  					} else if !z.EncBinary() && z.IsJSONHandle() {
 11447  						z.EncJSONMarshal(x.AnonInTestStrucIntf.T)
 11448  					} else {
 11449  						z.EncFallback(x.AnonInTestStrucIntf.T)
 11450  					}
 11451  				} else {
 11452  					r.EncodeNil()
 11453  				}
 11454  			}
 11455  			if yyn86 {
 11456  				z.EncWriteArrayElem()
 11457  				r.EncodeNil()
 11458  			} else {
 11459  				z.EncWriteArrayElem()
 11460  				if yyq2[83] {
 11461  					yy190 := *x.AnonInTestStrucIntf.Tptr
 11462  					if z.EncBasicHandle().TimeBuiltin() {
 11463  						r.EncodeTime(yy190)
 11464  					} else if yyxt191 := z.Extension(yy190); yyxt191 != nil {
 11465  						z.EncExtension(yy190, yyxt191)
 11466  					} else if z.EncBinary() {
 11467  						z.EncBinaryMarshal(yy190)
 11468  					} else if !z.EncBinary() && z.IsJSONHandle() {
 11469  						z.EncJSONMarshal(yy190)
 11470  					} else {
 11471  						z.EncFallback(yy190)
 11472  					}
 11473  				} else {
 11474  					r.EncodeNil()
 11475  				}
 11476  			}
 11477  			z.EncWriteArrayElem()
 11478  			if yyq2[84] {
 11479  				if x.Msu == nil {
 11480  					r.EncodeNil()
 11481  				} else {
 11482  					h.encMapwrapStringInterface((map[wrapString]interface{})(x.Msu), e)
 11483  				} // end block: if x.Msu map == nil
 11484  			} else {
 11485  				r.EncodeNil()
 11486  			}
 11487  			z.EncWriteArrayElem()
 11488  			if yyq2[85] {
 11489  				if x.Mtsptr == nil {
 11490  					r.EncodeNil()
 11491  				} else {
 11492  					h.encMapstringPtrtoTestStrucFlex((map[string]*TestStrucFlex)(x.Mtsptr), e)
 11493  				} // end block: if x.Mtsptr map == nil
 11494  			} else {
 11495  				r.EncodeNil()
 11496  			}
 11497  			z.EncWriteArrayElem()
 11498  			if yyq2[86] {
 11499  				if x.Mts == nil {
 11500  					r.EncodeNil()
 11501  				} else {
 11502  					h.encMapstringTestStrucFlex((map[string]TestStrucFlex)(x.Mts), e)
 11503  				} // end block: if x.Mts map == nil
 11504  			} else {
 11505  				r.EncodeNil()
 11506  			}
 11507  			z.EncWriteArrayElem()
 11508  			if yyq2[87] {
 11509  				if x.Its == nil {
 11510  					r.EncodeNil()
 11511  				} else {
 11512  					h.encSlicePtrtoTestStrucFlex(([]*TestStrucFlex)(x.Its), e)
 11513  				} // end block: if x.Its slice == nil
 11514  			} else {
 11515  				r.EncodeNil()
 11516  			}
 11517  			if yyn91 {
 11518  				z.EncWriteArrayElem()
 11519  				r.EncodeNil()
 11520  			} else {
 11521  				z.EncWriteArrayElem()
 11522  				if yyq2[88] {
 11523  					if yyxt196 := z.Extension(x.Nteststruc); yyxt196 != nil {
 11524  						z.EncExtension(x.Nteststruc, yyxt196)
 11525  					} else {
 11526  						x.Nteststruc.CodecEncodeSelf(e)
 11527  					}
 11528  				} else {
 11529  					r.EncodeNil()
 11530  				}
 11531  			}
 11532  			z.EncWriteArrayElem()
 11533  			if yyq2[89] {
 11534  				if yyxt197 := z.Extension(x.MarJ); yyxt197 != nil {
 11535  					z.EncExtension(x.MarJ, yyxt197)
 11536  				} else {
 11537  					x.MarJ.CodecEncodeSelf(e)
 11538  				}
 11539  			} else {
 11540  				r.EncodeBool(false)
 11541  			}
 11542  			z.EncWriteArrayElem()
 11543  			if yyq2[90] {
 11544  				if yyxt198 := z.Extension(x.MarT); yyxt198 != nil {
 11545  					z.EncExtension(x.MarT, yyxt198)
 11546  				} else {
 11547  					x.MarT.CodecEncodeSelf(e)
 11548  				}
 11549  			} else {
 11550  				r.EncodeString("")
 11551  			}
 11552  			z.EncWriteArrayElem()
 11553  			if yyq2[91] {
 11554  				if yyxt199 := z.Extension(x.MarB); yyxt199 != nil {
 11555  					z.EncExtension(x.MarB, yyxt199)
 11556  				} else {
 11557  					x.MarB.CodecEncodeSelf(e)
 11558  				}
 11559  			} else {
 11560  				r.EncodeNil()
 11561  			}
 11562  			z.EncWriteArrayElem()
 11563  			if yyq2[92] {
 11564  				if yyxt200 := z.Extension(x.XuintToBytes); yyxt200 != nil {
 11565  					z.EncExtension(x.XuintToBytes, yyxt200)
 11566  				} else {
 11567  					x.XuintToBytes.CodecEncodeSelf(e)
 11568  				}
 11569  			} else {
 11570  				r.EncodeUint(0)
 11571  			}
 11572  			z.EncWriteArrayElem()
 11573  			if yyq2[93] {
 11574  				z.EncEncodeComplex64(complex64(x.Cmplx64))
 11575  			} else {
 11576  				z.EncEncodeComplex64(0)
 11577  			}
 11578  			z.EncWriteArrayElem()
 11579  			if yyq2[94] {
 11580  				z.EncEncodeComplex128(complex128(x.Cmplx128))
 11581  			} else {
 11582  				z.EncEncodeComplex128(0)
 11583  			}
 11584  			z.EncWriteArrayEnd()
 11585  		} else {
 11586  			var yynn2 int
 11587  			for _, b := range yyq2 {
 11588  				if b {
 11589  					yynn2++
 11590  				}
 11591  			}
 11592  			z.EncWriteMapStart(yynn2)
 11593  			yynn2 = 0
 11594  			if z.EncBasicHandle().Canonical {
 11595  				if yyq2[41] {
 11596  					z.EncWriteMapElemKey()
 11597  					if z.IsJSONHandle() {
 11598  						z.EncWr().WriteStr("\"AF32slice\"")
 11599  					} else {
 11600  						r.EncodeString(`AF32slice`)
 11601  					}
 11602  					z.EncWriteMapElemValue()
 11603  					if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
 11604  						r.EncodeNil()
 11605  					} else {
 11606  						z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
 11607  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
 11608  				}
 11609  				if yyq2[40] {
 11610  					z.EncWriteMapElemKey()
 11611  					if z.IsJSONHandle() {
 11612  						z.EncWr().WriteStr("\"AF64slice\"")
 11613  					} else {
 11614  						r.EncodeString(`AF64slice`)
 11615  					}
 11616  					z.EncWriteMapElemValue()
 11617  					if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
 11618  						r.EncodeNil()
 11619  					} else {
 11620  						z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
 11621  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
 11622  				}
 11623  				if yyq2[35] {
 11624  					z.EncWriteMapElemKey()
 11625  					if z.IsJSONHandle() {
 11626  						z.EncWr().WriteStr("\"AI16\"")
 11627  					} else {
 11628  						r.EncodeString(`AI16`)
 11629  					}
 11630  					z.EncWriteMapElemValue()
 11631  					r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
 11632  				}
 11633  				if yyq2[34] {
 11634  					z.EncWriteMapElemKey()
 11635  					if z.IsJSONHandle() {
 11636  						z.EncWr().WriteStr("\"AI64\"")
 11637  					} else {
 11638  						r.EncodeString(`AI64`)
 11639  					}
 11640  					z.EncWriteMapElemValue()
 11641  					r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
 11642  				}
 11643  				if yyq2[45] {
 11644  					z.EncWriteMapElemKey()
 11645  					if z.IsJSONHandle() {
 11646  						z.EncWr().WriteStr("\"AI64arr0\"")
 11647  					} else {
 11648  						r.EncodeString(`AI64arr0`)
 11649  					}
 11650  					z.EncWriteMapElemValue()
 11651  					yy207 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
 11652  					h.encArray0int64((*[0]int64)(yy207), e)
 11653  				}
 11654  				if yyq2[44] {
 11655  					z.EncWriteMapElemKey()
 11656  					if z.IsJSONHandle() {
 11657  						z.EncWr().WriteStr("\"AI64arr8\"")
 11658  					} else {
 11659  						r.EncodeString(`AI64arr8`)
 11660  					}
 11661  					z.EncWriteMapElemValue()
 11662  					yy209 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
 11663  					h.encArray8int64((*[8]int64)(yy209), e)
 11664  				}
 11665  				if yyq2[38] {
 11666  					z.EncWriteMapElemKey()
 11667  					if z.IsJSONHandle() {
 11668  						z.EncWr().WriteStr("\"AI64slice\"")
 11669  					} else {
 11670  						r.EncodeString(`AI64slice`)
 11671  					}
 11672  					z.EncWriteMapElemValue()
 11673  					if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
 11674  						r.EncodeNil()
 11675  					} else {
 11676  						z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
 11677  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
 11678  				}
 11679  				if yyq2[46] {
 11680  					z.EncWriteMapElemKey()
 11681  					if z.IsJSONHandle() {
 11682  						z.EncWr().WriteStr("\"AI64slice0\"")
 11683  					} else {
 11684  						r.EncodeString(`AI64slice0`)
 11685  					}
 11686  					z.EncWriteMapElemValue()
 11687  					if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
 11688  						r.EncodeNil()
 11689  					} else {
 11690  						z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
 11691  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
 11692  				}
 11693  				if yyq2[42] {
 11694  					z.EncWriteMapElemKey()
 11695  					if z.IsJSONHandle() {
 11696  						z.EncWr().WriteStr("\"AMSS\"")
 11697  					} else {
 11698  						r.EncodeString(`AMSS`)
 11699  					}
 11700  					z.EncWriteMapElemValue()
 11701  					if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
 11702  						r.EncodeNil()
 11703  					} else {
 11704  						z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
 11705  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
 11706  				}
 11707  				if yyq2[43] {
 11708  					z.EncWriteMapElemKey()
 11709  					if z.IsJSONHandle() {
 11710  						z.EncWr().WriteStr("\"AMSU64\"")
 11711  					} else {
 11712  						r.EncodeString(`AMSU64`)
 11713  					}
 11714  					z.EncWriteMapElemValue()
 11715  					if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
 11716  						r.EncodeNil()
 11717  					} else {
 11718  						z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
 11719  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
 11720  				}
 11721  				if yyq2[49] {
 11722  					z.EncWriteMapElemKey()
 11723  					if z.IsJSONHandle() {
 11724  						z.EncWr().WriteStr("\"AMSU64E\"")
 11725  					} else {
 11726  						r.EncodeString(`AMSU64E`)
 11727  					}
 11728  					z.EncWriteMapElemValue()
 11729  					if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
 11730  						r.EncodeNil()
 11731  					} else {
 11732  						z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
 11733  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
 11734  				}
 11735  				if yyq2[48] {
 11736  					z.EncWriteMapElemKey()
 11737  					if z.IsJSONHandle() {
 11738  						z.EncWr().WriteStr("\"AMSU64N\"")
 11739  					} else {
 11740  						r.EncodeString(`AMSU64N`)
 11741  					}
 11742  					z.EncWriteMapElemValue()
 11743  					if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
 11744  						r.EncodeNil()
 11745  					} else {
 11746  						z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
 11747  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
 11748  				}
 11749  				if yyq2[33] {
 11750  					z.EncWriteMapElemKey()
 11751  					if z.IsJSONHandle() {
 11752  						z.EncWr().WriteStr("\"AS\"")
 11753  					} else {
 11754  						r.EncodeString(`AS`)
 11755  					}
 11756  					z.EncWriteMapElemValue()
 11757  					r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
 11758  				}
 11759  				if yyq2[37] {
 11760  					z.EncWriteMapElemKey()
 11761  					if z.IsJSONHandle() {
 11762  						z.EncWr().WriteStr("\"ASslice\"")
 11763  					} else {
 11764  						r.EncodeString(`ASslice`)
 11765  					}
 11766  					z.EncWriteMapElemValue()
 11767  					if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
 11768  						r.EncodeNil()
 11769  					} else {
 11770  						z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
 11771  					} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
 11772  				}
 11773  				if yyq2[36] {
 11774  					z.EncWriteMapElemKey()
 11775  					if z.IsJSONHandle() {
 11776  						z.EncWr().WriteStr("\"AUi64\"")
 11777  					} else {
 11778  						r.EncodeString(`AUi64`)
 11779  					}
 11780  					z.EncWriteMapElemValue()
 11781  					r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
 11782  				}
 11783  				if yyq2[39] {
 11784  					z.EncWriteMapElemKey()
 11785  					if z.IsJSONHandle() {
 11786  						z.EncWr().WriteStr("\"AUi64slice\"")
 11787  					} else {
 11788  						r.EncodeString(`AUi64slice`)
 11789  					}
 11790  					z.EncWriteMapElemValue()
 11791  					if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
 11792  						r.EncodeNil()
 11793  					} else {
 11794  						z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
 11795  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
 11796  				}
 11797  				if yyq2[47] {
 11798  					z.EncWriteMapElemKey()
 11799  					if z.IsJSONHandle() {
 11800  						z.EncWr().WriteStr("\"AUi64sliceN\"")
 11801  					} else {
 11802  						r.EncodeString(`AUi64sliceN`)
 11803  					}
 11804  					z.EncWriteMapElemValue()
 11805  					if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
 11806  						r.EncodeNil()
 11807  					} else {
 11808  						z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
 11809  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
 11810  				}
 11811  				if yyq2[72] {
 11812  					z.EncWriteMapElemKey()
 11813  					if z.IsJSONHandle() {
 11814  						z.EncWr().WriteStr("\"ArrStrUi64T\"")
 11815  					} else {
 11816  						r.EncodeString(`ArrStrUi64T`)
 11817  					}
 11818  					z.EncWriteMapElemValue()
 11819  					yy222 := &x.ArrStrUi64T
 11820  					h.encArray4stringUint64T((*[4]stringUint64T)(yy222), e)
 11821  				}
 11822  				if yyq2[15] {
 11823  					z.EncWriteMapElemKey()
 11824  					if z.IsJSONHandle() {
 11825  						z.EncWr().WriteStr("\"B\"")
 11826  					} else {
 11827  						r.EncodeString(`B`)
 11828  					}
 11829  					z.EncWriteMapElemValue()
 11830  					r.EncodeBool(bool(x.TestStrucCommon.B))
 11831  				}
 11832  				if yyq2[22] {
 11833  					z.EncWriteMapElemKey()
 11834  					if z.IsJSONHandle() {
 11835  						z.EncWr().WriteStr("\"Bslice\"")
 11836  					} else {
 11837  						r.EncodeString(`Bslice`)
 11838  					}
 11839  					z.EncWriteMapElemValue()
 11840  					if x.TestStrucCommon.Bslice == nil {
 11841  						r.EncodeNil()
 11842  					} else {
 11843  						z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
 11844  					} // end block: if x.TestStrucCommon.Bslice slice == nil
 11845  				}
 11846  				if yyq2[16] {
 11847  					z.EncWriteMapElemKey()
 11848  					if z.IsJSONHandle() {
 11849  						z.EncWr().WriteStr("\"By\"")
 11850  					} else {
 11851  						r.EncodeString(`By`)
 11852  					}
 11853  					z.EncWriteMapElemValue()
 11854  					r.EncodeUint(uint64(x.TestStrucCommon.By))
 11855  				}
 11856  				if yyq2[23] {
 11857  					z.EncWriteMapElemKey()
 11858  					if z.IsJSONHandle() {
 11859  						z.EncWr().WriteStr("\"Byslice\"")
 11860  					} else {
 11861  						r.EncodeString(`Byslice`)
 11862  					}
 11863  					z.EncWriteMapElemValue()
 11864  					if x.TestStrucCommon.Byslice == nil {
 11865  						r.EncodeNil()
 11866  					} else {
 11867  						r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
 11868  					} // end block: if x.TestStrucCommon.Byslice slice == nil
 11869  				}
 11870  				if yyq2[24] {
 11871  					z.EncWriteMapElemKey()
 11872  					if z.IsJSONHandle() {
 11873  						z.EncWr().WriteStr("\"BytesSlice\"")
 11874  					} else {
 11875  						r.EncodeString(`BytesSlice`)
 11876  					}
 11877  					z.EncWriteMapElemValue()
 11878  					if x.TestStrucCommon.BytesSlice == nil {
 11879  						r.EncodeNil()
 11880  					} else {
 11881  						z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
 11882  					} // end block: if x.TestStrucCommon.BytesSlice slice == nil
 11883  				}
 11884  				if yyq2[56] {
 11885  					z.EncWriteMapElemKey()
 11886  					if z.IsJSONHandle() {
 11887  						z.EncWr().WriteStr("\"Chstr\"")
 11888  					} else {
 11889  						r.EncodeString(`Chstr`)
 11890  					}
 11891  					z.EncWriteMapElemValue()
 11892  					h.encChanstring((chan string)(x.Chstr), e)
 11893  				}
 11894  				if yyq2[69] {
 11895  					z.EncWriteMapElemKey()
 11896  					if z.IsJSONHandle() {
 11897  						z.EncWr().WriteStr("\"Ci64\"")
 11898  					} else {
 11899  						r.EncodeString(`Ci64`)
 11900  					}
 11901  					z.EncWriteMapElemValue()
 11902  					if yyxt230 := z.Extension(x.Ci64); yyxt230 != nil {
 11903  						z.EncExtension(x.Ci64, yyxt230)
 11904  					} else {
 11905  						x.Ci64.CodecEncodeSelf(e)
 11906  					}
 11907  				}
 11908  				if yyq2[94] {
 11909  					z.EncWriteMapElemKey()
 11910  					if z.IsJSONHandle() {
 11911  						z.EncWr().WriteStr("\"Cmplx128\"")
 11912  					} else {
 11913  						r.EncodeString(`Cmplx128`)
 11914  					}
 11915  					z.EncWriteMapElemValue()
 11916  					z.EncEncodeComplex128(complex128(x.Cmplx128))
 11917  				}
 11918  				if yyq2[93] {
 11919  					z.EncWriteMapElemKey()
 11920  					if z.IsJSONHandle() {
 11921  						z.EncWr().WriteStr("\"Cmplx64\"")
 11922  					} else {
 11923  						r.EncodeString(`Cmplx64`)
 11924  					}
 11925  					z.EncWriteMapElemValue()
 11926  					z.EncEncodeComplex64(complex64(x.Cmplx64))
 11927  				}
 11928  				if yyq2[14] {
 11929  					z.EncWriteMapElemKey()
 11930  					if z.IsJSONHandle() {
 11931  						z.EncWr().WriteStr("\"F32\"")
 11932  					} else {
 11933  						r.EncodeString(`F32`)
 11934  					}
 11935  					z.EncWriteMapElemValue()
 11936  					r.EncodeFloat32(float32(x.TestStrucCommon.F32))
 11937  				}
 11938  				if yyq2[13] {
 11939  					z.EncWriteMapElemKey()
 11940  					if z.IsJSONHandle() {
 11941  						z.EncWr().WriteStr("\"F64\"")
 11942  					} else {
 11943  						r.EncodeString(`F64`)
 11944  					}
 11945  					z.EncWriteMapElemValue()
 11946  					r.EncodeFloat64(float64(x.TestStrucCommon.F64))
 11947  				}
 11948  				if yyq2[3] {
 11949  					z.EncWriteMapElemKey()
 11950  					if z.IsJSONHandle() {
 11951  						z.EncWr().WriteStr("\"I16\"")
 11952  					} else {
 11953  						r.EncodeString(`I16`)
 11954  					}
 11955  					z.EncWriteMapElemValue()
 11956  					r.EncodeInt(int64(x.TestStrucCommon.I16))
 11957  				}
 11958  				if yyq2[7] {
 11959  					z.EncWriteMapElemKey()
 11960  					if z.IsJSONHandle() {
 11961  						z.EncWr().WriteStr("\"I16n\"")
 11962  					} else {
 11963  						r.EncodeString(`I16n`)
 11964  					}
 11965  					z.EncWriteMapElemValue()
 11966  					r.EncodeInt(int64(x.TestStrucCommon.I16n))
 11967  				}
 11968  				if yyq2[2] {
 11969  					z.EncWriteMapElemKey()
 11970  					if z.IsJSONHandle() {
 11971  						z.EncWr().WriteStr("\"I32\"")
 11972  					} else {
 11973  						r.EncodeString(`I32`)
 11974  					}
 11975  					z.EncWriteMapElemValue()
 11976  					r.EncodeInt(int64(x.TestStrucCommon.I32))
 11977  				}
 11978  				if yyq2[6] {
 11979  					z.EncWriteMapElemKey()
 11980  					if z.IsJSONHandle() {
 11981  						z.EncWr().WriteStr("\"I32n\"")
 11982  					} else {
 11983  						r.EncodeString(`I32n`)
 11984  					}
 11985  					z.EncWriteMapElemValue()
 11986  					r.EncodeInt(int64(x.TestStrucCommon.I32n))
 11987  				}
 11988  				if yyq2[19] {
 11989  					z.EncWriteMapElemKey()
 11990  					if z.IsJSONHandle() {
 11991  						z.EncWr().WriteStr("\"I32slice\"")
 11992  					} else {
 11993  						r.EncodeString(`I32slice`)
 11994  					}
 11995  					z.EncWriteMapElemValue()
 11996  					if x.TestStrucCommon.I32slice == nil {
 11997  						r.EncodeNil()
 11998  					} else {
 11999  						z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
 12000  					} // end block: if x.TestStrucCommon.I32slice slice == nil
 12001  				}
 12002  				if yyq2[1] {
 12003  					z.EncWriteMapElemKey()
 12004  					if z.IsJSONHandle() {
 12005  						z.EncWr().WriteStr("\"I64\"")
 12006  					} else {
 12007  						r.EncodeString(`I64`)
 12008  					}
 12009  					z.EncWriteMapElemValue()
 12010  					r.EncodeInt(int64(x.TestStrucCommon.I64))
 12011  				}
 12012  				if yyq2[5] {
 12013  					z.EncWriteMapElemKey()
 12014  					if z.IsJSONHandle() {
 12015  						z.EncWr().WriteStr("\"I64n\"")
 12016  					} else {
 12017  						r.EncodeString(`I64n`)
 12018  					}
 12019  					z.EncWriteMapElemValue()
 12020  					r.EncodeInt(int64(x.TestStrucCommon.I64n))
 12021  				}
 12022  				if yyq2[18] {
 12023  					z.EncWriteMapElemKey()
 12024  					if z.IsJSONHandle() {
 12025  						z.EncWr().WriteStr("\"I64slice\"")
 12026  					} else {
 12027  						r.EncodeString(`I64slice`)
 12028  					}
 12029  					z.EncWriteMapElemValue()
 12030  					if x.TestStrucCommon.I64slice == nil {
 12031  						r.EncodeNil()
 12032  					} else {
 12033  						z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
 12034  					} // end block: if x.TestStrucCommon.I64slice slice == nil
 12035  				}
 12036  				if yyq2[4] {
 12037  					z.EncWriteMapElemKey()
 12038  					if z.IsJSONHandle() {
 12039  						z.EncWr().WriteStr("\"I8\"")
 12040  					} else {
 12041  						r.EncodeString(`I8`)
 12042  					}
 12043  					z.EncWriteMapElemValue()
 12044  					r.EncodeInt(int64(x.TestStrucCommon.I8))
 12045  				}
 12046  				if yyq2[8] {
 12047  					z.EncWriteMapElemKey()
 12048  					if z.IsJSONHandle() {
 12049  						z.EncWr().WriteStr("\"I8n\"")
 12050  					} else {
 12051  						r.EncodeString(`I8n`)
 12052  					}
 12053  					z.EncWriteMapElemValue()
 12054  					r.EncodeInt(int64(x.TestStrucCommon.I8n))
 12055  				}
 12056  				if yyq2[25] {
 12057  					z.EncWriteMapElemKey()
 12058  					if z.IsJSONHandle() {
 12059  						z.EncWr().WriteStr("\"Iptrslice\"")
 12060  					} else {
 12061  						r.EncodeString(`Iptrslice`)
 12062  					}
 12063  					z.EncWriteMapElemValue()
 12064  					if x.TestStrucCommon.Iptrslice == nil {
 12065  						r.EncodeNil()
 12066  					} else {
 12067  						h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
 12068  					} // end block: if x.TestStrucCommon.Iptrslice slice == nil
 12069  				}
 12070  				if yyq2[79] {
 12071  					z.EncWriteMapElemKey()
 12072  					if z.IsJSONHandle() {
 12073  						z.EncWr().WriteStr("\"Islice\"")
 12074  					} else {
 12075  						r.EncodeString(`Islice`)
 12076  					}
 12077  					z.EncWriteMapElemValue()
 12078  					if yyn82 {
 12079  						r.EncodeNil()
 12080  					} else {
 12081  						if x.AnonInTestStrucIntf.Islice == nil {
 12082  							r.EncodeNil()
 12083  						} else {
 12084  							z.F.EncSliceIntfV(x.AnonInTestStrucIntf.Islice, e)
 12085  						} // end block: if x.AnonInTestStrucIntf.Islice slice == nil
 12086  					}
 12087  				}
 12088  				if yyq2[87] {
 12089  					z.EncWriteMapElemKey()
 12090  					if z.IsJSONHandle() {
 12091  						z.EncWr().WriteStr("\"Its\"")
 12092  					} else {
 12093  						r.EncodeString(`Its`)
 12094  					}
 12095  					z.EncWriteMapElemValue()
 12096  					if x.Its == nil {
 12097  						r.EncodeNil()
 12098  					} else {
 12099  						h.encSlicePtrtoTestStrucFlex(([]*TestStrucFlex)(x.Its), e)
 12100  					} // end block: if x.Its slice == nil
 12101  				}
 12102  				if yyq2[91] {
 12103  					z.EncWriteMapElemKey()
 12104  					if z.IsJSONHandle() {
 12105  						z.EncWr().WriteStr("\"MarB\"")
 12106  					} else {
 12107  						r.EncodeString(`MarB`)
 12108  					}
 12109  					z.EncWriteMapElemValue()
 12110  					if yyxt248 := z.Extension(x.MarB); yyxt248 != nil {
 12111  						z.EncExtension(x.MarB, yyxt248)
 12112  					} else {
 12113  						x.MarB.CodecEncodeSelf(e)
 12114  					}
 12115  				}
 12116  				if yyq2[89] {
 12117  					z.EncWriteMapElemKey()
 12118  					if z.IsJSONHandle() {
 12119  						z.EncWr().WriteStr("\"MarJ\"")
 12120  					} else {
 12121  						r.EncodeString(`MarJ`)
 12122  					}
 12123  					z.EncWriteMapElemValue()
 12124  					if yyxt249 := z.Extension(x.MarJ); yyxt249 != nil {
 12125  						z.EncExtension(x.MarJ, yyxt249)
 12126  					} else {
 12127  						x.MarJ.CodecEncodeSelf(e)
 12128  					}
 12129  				}
 12130  				if yyq2[90] {
 12131  					z.EncWriteMapElemKey()
 12132  					if z.IsJSONHandle() {
 12133  						z.EncWr().WriteStr("\"MarT\"")
 12134  					} else {
 12135  						r.EncodeString(`MarT`)
 12136  					}
 12137  					z.EncWriteMapElemValue()
 12138  					if yyxt250 := z.Extension(x.MarT); yyxt250 != nil {
 12139  						z.EncExtension(x.MarT, yyxt250)
 12140  					} else {
 12141  						x.MarT.CodecEncodeSelf(e)
 12142  					}
 12143  				}
 12144  				if yyq2[58] {
 12145  					z.EncWriteMapElemKey()
 12146  					if z.IsJSONHandle() {
 12147  						z.EncWr().WriteStr("\"Mbu64\"")
 12148  					} else {
 12149  						r.EncodeString(`Mbu64`)
 12150  					}
 12151  					z.EncWriteMapElemValue()
 12152  					if x.Mbu64 == nil {
 12153  						r.EncodeNil()
 12154  					} else {
 12155  						h.encMapboolONaHEdLDOQQHWfI((map[bool]struct{})(x.Mbu64), e)
 12156  					} // end block: if x.Mbu64 map == nil
 12157  				}
 12158  				if yyq2[66] {
 12159  					z.EncWriteMapElemKey()
 12160  					if z.IsJSONHandle() {
 12161  						z.EncWr().WriteStr("\"Mf32wss\"")
 12162  					} else {
 12163  						r.EncodeString(`Mf32wss`)
 12164  					}
 12165  					z.EncWriteMapElemValue()
 12166  					if x.Mf32wss == nil {
 12167  						r.EncodeNil()
 12168  					} else {
 12169  						h.encMapfloat32wrapStringSlice((map[float32]wrapStringSlice)(x.Mf32wss), e)
 12170  					} // end block: if x.Mf32wss map == nil
 12171  				}
 12172  				if yyq2[65] {
 12173  					z.EncWriteMapElemKey()
 12174  					if z.IsJSONHandle() {
 12175  						z.EncWr().WriteStr("\"Mfwss\"")
 12176  					} else {
 12177  						r.EncodeString(`Mfwss`)
 12178  					}
 12179  					z.EncWriteMapElemValue()
 12180  					if x.Mfwss == nil {
 12181  						r.EncodeNil()
 12182  					} else {
 12183  						h.encMapfloat64wrapStringSlice((map[float64]wrapStringSlice)(x.Mfwss), e)
 12184  					} // end block: if x.Mfwss map == nil
 12185  				}
 12186  				if yyq2[62] {
 12187  					z.EncWriteMapElemKey()
 12188  					if z.IsJSONHandle() {
 12189  						z.EncWr().WriteStr("\"Mip2ss\"")
 12190  					} else {
 12191  						r.EncodeString(`Mip2ss`)
 12192  					}
 12193  					z.EncWriteMapElemValue()
 12194  					if x.Mip2ss == nil {
 12195  						r.EncodeNil()
 12196  					} else {
 12197  						h.encMapPtrtouint64Slicestring((map[*uint64][]string)(x.Mip2ss), e)
 12198  					} // end block: if x.Mip2ss map == nil
 12199  				}
 12200  				if yyq2[57] {
 12201  					z.EncWriteMapElemKey()
 12202  					if z.IsJSONHandle() {
 12203  						z.EncWr().WriteStr("\"Mis\"")
 12204  					} else {
 12205  						r.EncodeString(`Mis`)
 12206  					}
 12207  					z.EncWriteMapElemValue()
 12208  					if x.Mis == nil {
 12209  						r.EncodeNil()
 12210  					} else {
 12211  						z.F.EncMapIntStringV(x.Mis, e)
 12212  					} // end block: if x.Mis map == nil
 12213  				}
 12214  				if yyq2[64] {
 12215  					z.EncWriteMapElemKey()
 12216  					if z.IsJSONHandle() {
 12217  						z.EncWr().WriteStr("\"Miwu64s\"")
 12218  					} else {
 12219  						r.EncodeString(`Miwu64s`)
 12220  					}
 12221  					z.EncWriteMapElemValue()
 12222  					if x.Miwu64s == nil {
 12223  						r.EncodeNil()
 12224  					} else {
 12225  						h.encMapintwrapUint64Slice((map[int]wrapUint64Slice)(x.Miwu64s), e)
 12226  					} // end block: if x.Miwu64s map == nil
 12227  				}
 12228  				if yyq2[80] {
 12229  					z.EncWriteMapElemKey()
 12230  					if z.IsJSONHandle() {
 12231  						z.EncWr().WriteStr("\"Ms\"")
 12232  					} else {
 12233  						r.EncodeString(`Ms`)
 12234  					}
 12235  					z.EncWriteMapElemValue()
 12236  					if yyn83 {
 12237  						r.EncodeNil()
 12238  					} else {
 12239  						if x.AnonInTestStrucIntf.Ms == nil {
 12240  							r.EncodeNil()
 12241  						} else {
 12242  							z.F.EncMapStringIntfV(x.AnonInTestStrucIntf.Ms, e)
 12243  						} // end block: if x.AnonInTestStrucIntf.Ms map == nil
 12244  					}
 12245  				}
 12246  				if yyq2[63] {
 12247  					z.EncWriteMapElemKey()
 12248  					if z.IsJSONHandle() {
 12249  						z.EncWr().WriteStr("\"Ms2misu\"")
 12250  					} else {
 12251  						r.EncodeString(`Ms2misu`)
 12252  					}
 12253  					z.EncWriteMapElemValue()
 12254  					if x.Ms2misu == nil {
 12255  						r.EncodeNil()
 12256  					} else {
 12257  						h.encMapstringMapuint64stringUint64T((map[string]map[uint64]stringUint64T)(x.Ms2misu), e)
 12258  					} // end block: if x.Ms2misu map == nil
 12259  				}
 12260  				if yyq2[29] {
 12261  					z.EncWriteMapElemKey()
 12262  					if z.IsJSONHandle() {
 12263  						z.EncWr().WriteStr("\"Msbytes\"")
 12264  					} else {
 12265  						r.EncodeString(`Msbytes`)
 12266  					}
 12267  					z.EncWriteMapElemValue()
 12268  					if x.TestStrucCommon.Msbytes == nil {
 12269  						r.EncodeNil()
 12270  					} else {
 12271  						z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
 12272  					} // end block: if x.TestStrucCommon.Msbytes map == nil
 12273  				}
 12274  				if yyq2[28] {
 12275  					z.EncWriteMapElemKey()
 12276  					if z.IsJSONHandle() {
 12277  						z.EncWr().WriteStr("\"Msint\"")
 12278  					} else {
 12279  						r.EncodeString(`Msint`)
 12280  					}
 12281  					z.EncWriteMapElemValue()
 12282  					if x.TestStrucCommon.Msint == nil {
 12283  						r.EncodeNil()
 12284  					} else {
 12285  						z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
 12286  					} // end block: if x.TestStrucCommon.Msint map == nil
 12287  				}
 12288  				if yyq2[61] {
 12289  					z.EncWriteMapElemKey()
 12290  					if z.IsJSONHandle() {
 12291  						z.EncWr().WriteStr("\"Msp2ss\"")
 12292  					} else {
 12293  						r.EncodeString(`Msp2ss`)
 12294  					}
 12295  					z.EncWriteMapElemValue()
 12296  					if x.Msp2ss == nil {
 12297  						r.EncodeNil()
 12298  					} else {
 12299  						h.encMapPtrtostringSlicestring((map[*string][]string)(x.Msp2ss), e)
 12300  					} // end block: if x.Msp2ss map == nil
 12301  				}
 12302  				if yyq2[32] {
 12303  					z.EncWriteMapElemKey()
 12304  					if z.IsJSONHandle() {
 12305  						z.EncWr().WriteStr("\"MstrUi64T\"")
 12306  					} else {
 12307  						r.EncodeString(`MstrUi64T`)
 12308  					}
 12309  					z.EncWriteMapElemValue()
 12310  					if x.TestStrucCommon.MstrUi64T == nil {
 12311  						r.EncodeNil()
 12312  					} else {
 12313  						h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
 12314  					} // end block: if x.TestStrucCommon.MstrUi64T map == nil
 12315  				}
 12316  				if yyq2[76] {
 12317  					z.EncWriteMapElemKey()
 12318  					if z.IsJSONHandle() {
 12319  						z.EncWr().WriteStr("\"MstrUi64TSelf\"")
 12320  					} else {
 12321  						r.EncodeString(`MstrUi64TSelf`)
 12322  					}
 12323  					z.EncWriteMapElemValue()
 12324  					if x.MstrUi64TSelf == nil {
 12325  						r.EncodeNil()
 12326  					} else {
 12327  						h.encMapstringUint64TPtrtostringUint64T((map[stringUint64T]*stringUint64T)(x.MstrUi64TSelf), e)
 12328  					} // end block: if x.MstrUi64TSelf map == nil
 12329  				}
 12330  				if yyq2[84] {
 12331  					z.EncWriteMapElemKey()
 12332  					if z.IsJSONHandle() {
 12333  						z.EncWr().WriteStr("\"Msu\"")
 12334  					} else {
 12335  						r.EncodeString(`Msu`)
 12336  					}
 12337  					z.EncWriteMapElemValue()
 12338  					if x.Msu == nil {
 12339  						r.EncodeNil()
 12340  					} else {
 12341  						h.encMapwrapStringInterface((map[wrapString]interface{})(x.Msu), e)
 12342  					} // end block: if x.Msu map == nil
 12343  				}
 12344  				if yyq2[68] {
 12345  					z.EncWriteMapElemKey()
 12346  					if z.IsJSONHandle() {
 12347  						z.EncWr().WriteStr("\"Msu2wss\"")
 12348  					} else {
 12349  						r.EncodeString(`Msu2wss`)
 12350  					}
 12351  					z.EncWriteMapElemValue()
 12352  					if x.Msu2wss == nil {
 12353  						r.EncodeNil()
 12354  					} else {
 12355  						h.encMapstringUint64TwrapStringSlice((map[stringUint64T]wrapStringSlice)(x.Msu2wss), e)
 12356  					} // end block: if x.Msu2wss map == nil
 12357  				}
 12358  				if yyq2[86] {
 12359  					z.EncWriteMapElemKey()
 12360  					if z.IsJSONHandle() {
 12361  						z.EncWr().WriteStr("\"Mts\"")
 12362  					} else {
 12363  						r.EncodeString(`Mts`)
 12364  					}
 12365  					z.EncWriteMapElemValue()
 12366  					if x.Mts == nil {
 12367  						r.EncodeNil()
 12368  					} else {
 12369  						h.encMapstringTestStrucFlex((map[string]TestStrucFlex)(x.Mts), e)
 12370  					} // end block: if x.Mts map == nil
 12371  				}
 12372  				if yyq2[85] {
 12373  					z.EncWriteMapElemKey()
 12374  					if z.IsJSONHandle() {
 12375  						z.EncWr().WriteStr("\"Mtsptr\"")
 12376  					} else {
 12377  						r.EncodeString(`Mtsptr`)
 12378  					}
 12379  					z.EncWriteMapElemValue()
 12380  					if x.Mtsptr == nil {
 12381  						r.EncodeNil()
 12382  					} else {
 12383  						h.encMapstringPtrtoTestStrucFlex((map[string]*TestStrucFlex)(x.Mtsptr), e)
 12384  					} // end block: if x.Mtsptr map == nil
 12385  				}
 12386  				if yyq2[59] {
 12387  					z.EncWriteMapElemKey()
 12388  					if z.IsJSONHandle() {
 12389  						z.EncWr().WriteStr("\"Mu8e\"")
 12390  					} else {
 12391  						r.EncodeString(`Mu8e`)
 12392  					}
 12393  					z.EncWriteMapElemValue()
 12394  					if x.Mu8e == nil {
 12395  						r.EncodeNil()
 12396  					} else {
 12397  						h.encMapuint8ONaHEdLDOQQHWfI((map[uint8]struct{})(x.Mu8e), e)
 12398  					} // end block: if x.Mu8e map == nil
 12399  				}
 12400  				if yyq2[60] {
 12401  					z.EncWriteMapElemKey()
 12402  					if z.IsJSONHandle() {
 12403  						z.EncWr().WriteStr("\"Mu8u64\"")
 12404  					} else {
 12405  						r.EncodeString(`Mu8u64`)
 12406  					}
 12407  					z.EncWriteMapElemValue()
 12408  					if x.Mu8u64 == nil {
 12409  						r.EncodeNil()
 12410  					} else {
 12411  						h.encMapuint8stringUint64T((map[uint8]stringUint64T)(x.Mu8u64), e)
 12412  					} // end block: if x.Mu8u64 map == nil
 12413  				}
 12414  				if yyq2[67] {
 12415  					z.EncWriteMapElemKey()
 12416  					if z.IsJSONHandle() {
 12417  						z.EncWr().WriteStr("\"Mui2wss\"")
 12418  					} else {
 12419  						r.EncodeString(`Mui2wss`)
 12420  					}
 12421  					z.EncWriteMapElemValue()
 12422  					if x.Mui2wss == nil {
 12423  						r.EncodeNil()
 12424  					} else {
 12425  						h.encMapuint64wrapStringSlice((map[uint64]wrapStringSlice)(x.Mui2wss), e)
 12426  					} // end block: if x.Mui2wss map == nil
 12427  				}
 12428  				if yyq2[55] {
 12429  					z.EncWriteMapElemKey()
 12430  					if z.IsJSONHandle() {
 12431  						z.EncWr().WriteStr("\"Nint64\"")
 12432  					} else {
 12433  						r.EncodeString(`Nint64`)
 12434  					}
 12435  					z.EncWriteMapElemValue()
 12436  					if yyn58 {
 12437  						r.EncodeNil()
 12438  					} else {
 12439  						yy271 := *x.TestStrucCommon.Nint64
 12440  						r.EncodeInt(int64(yy271))
 12441  					}
 12442  				}
 12443  				if yyq2[81] {
 12444  					z.EncWriteMapElemKey()
 12445  					if z.IsJSONHandle() {
 12446  						z.EncWr().WriteStr("\"Nintf\"")
 12447  					} else {
 12448  						r.EncodeString(`Nintf`)
 12449  					}
 12450  					z.EncWriteMapElemValue()
 12451  					if yyn84 {
 12452  						r.EncodeNil()
 12453  					} else {
 12454  						z.EncFallback(x.AnonInTestStrucIntf.Nintf)
 12455  					}
 12456  				}
 12457  				if yyq2[53] {
 12458  					z.EncWriteMapElemKey()
 12459  					if z.IsJSONHandle() {
 12460  						z.EncWr().WriteStr("\"Nmap\"")
 12461  					} else {
 12462  						r.EncodeString(`Nmap`)
 12463  					}
 12464  					z.EncWriteMapElemValue()
 12465  					if x.TestStrucCommon.Nmap == nil {
 12466  						r.EncodeNil()
 12467  					} else {
 12468  						z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
 12469  					} // end block: if x.TestStrucCommon.Nmap map == nil
 12470  				}
 12471  				if yyq2[50] {
 12472  					z.EncWriteMapElemKey()
 12473  					if z.IsJSONHandle() {
 12474  						z.EncWr().WriteStr("\"NotAnon\"")
 12475  					} else {
 12476  						r.EncodeString(`NotAnon`)
 12477  					}
 12478  					z.EncWriteMapElemValue()
 12479  					yy275 := &x.TestStrucCommon.NotAnon
 12480  					if yyxt276 := z.Extension(yy275); yyxt276 != nil {
 12481  						z.EncExtension(yy275, yyxt276)
 12482  					} else {
 12483  						yy275.CodecEncodeSelf(e)
 12484  					}
 12485  				}
 12486  				if yyq2[52] {
 12487  					z.EncWriteMapElemKey()
 12488  					if z.IsJSONHandle() {
 12489  						z.EncWr().WriteStr("\"NotAnonSlim\"")
 12490  					} else {
 12491  						r.EncodeString(`NotAnonSlim`)
 12492  					}
 12493  					z.EncWriteMapElemValue()
 12494  					if yyn55 {
 12495  						r.EncodeNil()
 12496  					} else {
 12497  						if yyxt277 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt277 != nil {
 12498  							z.EncExtension(x.TestStrucCommon.NotAnonSlim, yyxt277)
 12499  						} else {
 12500  							x.TestStrucCommon.NotAnonSlim.CodecEncodeSelf(e)
 12501  						}
 12502  					}
 12503  				}
 12504  				if yyq2[54] {
 12505  					z.EncWriteMapElemKey()
 12506  					if z.IsJSONHandle() {
 12507  						z.EncWr().WriteStr("\"Nslice\"")
 12508  					} else {
 12509  						r.EncodeString(`Nslice`)
 12510  					}
 12511  					z.EncWriteMapElemValue()
 12512  					if x.TestStrucCommon.Nslice == nil {
 12513  						r.EncodeNil()
 12514  					} else {
 12515  						r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
 12516  					} // end block: if x.TestStrucCommon.Nslice slice == nil
 12517  				}
 12518  				if yyq2[88] {
 12519  					z.EncWriteMapElemKey()
 12520  					if z.IsJSONHandle() {
 12521  						z.EncWr().WriteStr("\"Nteststruc\"")
 12522  					} else {
 12523  						r.EncodeString(`Nteststruc`)
 12524  					}
 12525  					z.EncWriteMapElemValue()
 12526  					if yyn91 {
 12527  						r.EncodeNil()
 12528  					} else {
 12529  						if yyxt279 := z.Extension(x.Nteststruc); yyxt279 != nil {
 12530  							z.EncExtension(x.Nteststruc, yyxt279)
 12531  						} else {
 12532  							x.Nteststruc.CodecEncodeSelf(e)
 12533  						}
 12534  					}
 12535  				}
 12536  				if yyq2[51] {
 12537  					z.EncWriteMapElemKey()
 12538  					if z.IsJSONHandle() {
 12539  						z.EncWr().WriteStr("\"P\"")
 12540  					} else {
 12541  						r.EncodeString(`P`)
 12542  					}
 12543  					z.EncWriteMapElemValue()
 12544  					if yyn54 {
 12545  						r.EncodeNil()
 12546  					} else {
 12547  						yy280 := *x.TestStrucCommon.AnonInTestStrucSlim.P
 12548  						r.EncodeString(string(yy280))
 12549  					}
 12550  				}
 12551  				if yyq2[0] {
 12552  					z.EncWriteMapElemKey()
 12553  					if z.IsJSONHandle() {
 12554  						z.EncWr().WriteStr("\"S\"")
 12555  					} else {
 12556  						r.EncodeString(`S`)
 12557  					}
 12558  					z.EncWriteMapElemValue()
 12559  					r.EncodeString(string(x.TestStrucCommon.S))
 12560  				}
 12561  				if yyq2[30] {
 12562  					z.EncWriteMapElemKey()
 12563  					if z.IsJSONHandle() {
 12564  						z.EncWr().WriteStr("\"Simplef\"")
 12565  					} else {
 12566  						r.EncodeString(`Simplef`)
 12567  					}
 12568  					z.EncWriteMapElemValue()
 12569  					yy283 := &x.TestStrucCommon.Simplef
 12570  					if yyxt284 := z.Extension(yy283); yyxt284 != nil {
 12571  						z.EncExtension(yy283, yyxt284)
 12572  					} else {
 12573  						yy283.CodecEncodeSelf(e)
 12574  					}
 12575  				}
 12576  				if yyq2[75] {
 12577  					z.EncWriteMapElemKey()
 12578  					if z.IsJSONHandle() {
 12579  						z.EncWr().WriteStr("\"SintfAarray\"")
 12580  					} else {
 12581  						r.EncodeString(`SintfAarray`)
 12582  					}
 12583  					z.EncWriteMapElemValue()
 12584  					if x.SintfAarray == nil {
 12585  						r.EncodeNil()
 12586  					} else {
 12587  						z.F.EncSliceIntfV(x.SintfAarray, e)
 12588  					} // end block: if x.SintfAarray slice == nil
 12589  				}
 12590  				if yyq2[17] {
 12591  					z.EncWriteMapElemKey()
 12592  					if z.IsJSONHandle() {
 12593  						z.EncWr().WriteStr("\"Sslice\"")
 12594  					} else {
 12595  						r.EncodeString(`Sslice`)
 12596  					}
 12597  					z.EncWriteMapElemValue()
 12598  					if x.TestStrucCommon.Sslice == nil {
 12599  						r.EncodeNil()
 12600  					} else {
 12601  						z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
 12602  					} // end block: if x.TestStrucCommon.Sslice slice == nil
 12603  				}
 12604  				if yyq2[31] {
 12605  					z.EncWriteMapElemKey()
 12606  					if z.IsJSONHandle() {
 12607  						z.EncWr().WriteStr("\"SstrUi64T\"")
 12608  					} else {
 12609  						r.EncodeString(`SstrUi64T`)
 12610  					}
 12611  					z.EncWriteMapElemValue()
 12612  					if x.TestStrucCommon.SstrUi64T == nil {
 12613  						r.EncodeNil()
 12614  					} else {
 12615  						h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
 12616  					} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
 12617  				}
 12618  				if yyq2[70] {
 12619  					z.EncWriteMapElemKey()
 12620  					if z.IsJSONHandle() {
 12621  						z.EncWr().WriteStr("\"Swrapbytes\"")
 12622  					} else {
 12623  						r.EncodeString(`Swrapbytes`)
 12624  					}
 12625  					z.EncWriteMapElemValue()
 12626  					if x.Swrapbytes == nil {
 12627  						r.EncodeNil()
 12628  					} else {
 12629  						h.encSlicewrapBytes(([]wrapBytes)(x.Swrapbytes), e)
 12630  					} // end block: if x.Swrapbytes slice == nil
 12631  				}
 12632  				if yyq2[71] {
 12633  					z.EncWriteMapElemKey()
 12634  					if z.IsJSONHandle() {
 12635  						z.EncWr().WriteStr("\"Swrapuint8\"")
 12636  					} else {
 12637  						r.EncodeString(`Swrapuint8`)
 12638  					}
 12639  					z.EncWriteMapElemValue()
 12640  					if x.Swrapuint8 == nil {
 12641  						r.EncodeNil()
 12642  					} else {
 12643  						h.encSlicewrapUint8(([]wrapUint8)(x.Swrapuint8), e)
 12644  					} // end block: if x.Swrapuint8 slice == nil
 12645  				}
 12646  				if yyq2[82] {
 12647  					z.EncWriteMapElemKey()
 12648  					if z.IsJSONHandle() {
 12649  						z.EncWr().WriteStr("\"T\"")
 12650  					} else {
 12651  						r.EncodeString(`T`)
 12652  					}
 12653  					z.EncWriteMapElemValue()
 12654  					if yyn85 {
 12655  						r.EncodeNil()
 12656  					} else {
 12657  						if z.EncBasicHandle().TimeBuiltin() {
 12658  							r.EncodeTime(x.AnonInTestStrucIntf.T)
 12659  						} else if yyxt290 := z.Extension(x.AnonInTestStrucIntf.T); yyxt290 != nil {
 12660  							z.EncExtension(x.AnonInTestStrucIntf.T, yyxt290)
 12661  						} else if z.EncBinary() {
 12662  							z.EncBinaryMarshal(x.AnonInTestStrucIntf.T)
 12663  						} else if !z.EncBinary() && z.IsJSONHandle() {
 12664  							z.EncJSONMarshal(x.AnonInTestStrucIntf.T)
 12665  						} else {
 12666  							z.EncFallback(x.AnonInTestStrucIntf.T)
 12667  						}
 12668  					}
 12669  				}
 12670  				if yyq2[83] {
 12671  					z.EncWriteMapElemKey()
 12672  					if z.IsJSONHandle() {
 12673  						z.EncWr().WriteStr("\"Tptr\"")
 12674  					} else {
 12675  						r.EncodeString(`Tptr`)
 12676  					}
 12677  					z.EncWriteMapElemValue()
 12678  					if yyn86 {
 12679  						r.EncodeNil()
 12680  					} else {
 12681  						yy291 := *x.AnonInTestStrucIntf.Tptr
 12682  						if z.EncBasicHandle().TimeBuiltin() {
 12683  							r.EncodeTime(yy291)
 12684  						} else if yyxt292 := z.Extension(yy291); yyxt292 != nil {
 12685  							z.EncExtension(yy291, yyxt292)
 12686  						} else if z.EncBinary() {
 12687  							z.EncBinaryMarshal(yy291)
 12688  						} else if !z.EncBinary() && z.IsJSONHandle() {
 12689  							z.EncJSONMarshal(yy291)
 12690  						} else {
 12691  							z.EncFallback(yy291)
 12692  						}
 12693  					}
 12694  				}
 12695  				if yyq2[77] {
 12696  					z.EncWriteMapElemKey()
 12697  					if z.IsJSONHandle() {
 12698  						z.EncWr().WriteStr("\"Ttime\"")
 12699  					} else {
 12700  						r.EncodeString(`Ttime`)
 12701  					}
 12702  					z.EncWriteMapElemValue()
 12703  					if z.EncBasicHandle().TimeBuiltin() {
 12704  						r.EncodeTime(x.Ttime)
 12705  					} else if yyxt293 := z.Extension(x.Ttime); yyxt293 != nil {
 12706  						z.EncExtension(x.Ttime, yyxt293)
 12707  					} else if z.EncBinary() {
 12708  						z.EncBinaryMarshal(x.Ttime)
 12709  					} else if !z.EncBinary() && z.IsJSONHandle() {
 12710  						z.EncJSONMarshal(x.Ttime)
 12711  					} else {
 12712  						z.EncFallback(x.Ttime)
 12713  					}
 12714  				}
 12715  				if yyq2[78] {
 12716  					z.EncWriteMapElemKey()
 12717  					if z.IsJSONHandle() {
 12718  						z.EncWr().WriteStr("\"Ttimeptr\"")
 12719  					} else {
 12720  						r.EncodeString(`Ttimeptr`)
 12721  					}
 12722  					z.EncWriteMapElemValue()
 12723  					if yyn81 {
 12724  						r.EncodeNil()
 12725  					} else {
 12726  						yy294 := *x.Ttimeptr
 12727  						if z.EncBasicHandle().TimeBuiltin() {
 12728  							r.EncodeTime(yy294)
 12729  						} else if yyxt295 := z.Extension(yy294); yyxt295 != nil {
 12730  							z.EncExtension(yy294, yyxt295)
 12731  						} else if z.EncBinary() {
 12732  							z.EncBinaryMarshal(yy294)
 12733  						} else if !z.EncBinary() && z.IsJSONHandle() {
 12734  							z.EncJSONMarshal(yy294)
 12735  						} else {
 12736  							z.EncFallback(yy294)
 12737  						}
 12738  					}
 12739  				}
 12740  				if yyq2[11] {
 12741  					z.EncWriteMapElemKey()
 12742  					if z.IsJSONHandle() {
 12743  						z.EncWr().WriteStr("\"Ui16\"")
 12744  					} else {
 12745  						r.EncodeString(`Ui16`)
 12746  					}
 12747  					z.EncWriteMapElemValue()
 12748  					r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
 12749  				}
 12750  				if yyq2[10] {
 12751  					z.EncWriteMapElemKey()
 12752  					if z.IsJSONHandle() {
 12753  						z.EncWr().WriteStr("\"Ui32\"")
 12754  					} else {
 12755  						r.EncodeString(`Ui32`)
 12756  					}
 12757  					z.EncWriteMapElemValue()
 12758  					r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
 12759  				}
 12760  				if yyq2[9] {
 12761  					z.EncWriteMapElemKey()
 12762  					if z.IsJSONHandle() {
 12763  						z.EncWr().WriteStr("\"Ui64\"")
 12764  					} else {
 12765  						r.EncodeString(`Ui64`)
 12766  					}
 12767  					z.EncWriteMapElemValue()
 12768  					r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
 12769  				}
 12770  				if yyq2[73] {
 12771  					z.EncWriteMapElemKey()
 12772  					if z.IsJSONHandle() {
 12773  						z.EncWr().WriteStr("\"Ui64array\"")
 12774  					} else {
 12775  						r.EncodeString(`Ui64array`)
 12776  					}
 12777  					z.EncWriteMapElemValue()
 12778  					yy299 := &x.Ui64array
 12779  					h.encArray4uint64((*[4]uint64)(yy299), e)
 12780  				}
 12781  				if yyq2[20] {
 12782  					z.EncWriteMapElemKey()
 12783  					if z.IsJSONHandle() {
 12784  						z.EncWr().WriteStr("\"Ui64slice\"")
 12785  					} else {
 12786  						r.EncodeString(`Ui64slice`)
 12787  					}
 12788  					z.EncWriteMapElemValue()
 12789  					if x.TestStrucCommon.Ui64slice == nil {
 12790  						r.EncodeNil()
 12791  					} else {
 12792  						z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
 12793  					} // end block: if x.TestStrucCommon.Ui64slice slice == nil
 12794  				}
 12795  				if yyq2[74] {
 12796  					z.EncWriteMapElemKey()
 12797  					if z.IsJSONHandle() {
 12798  						z.EncWr().WriteStr("\"Ui64slicearray\"")
 12799  					} else {
 12800  						r.EncodeString(`Ui64slicearray`)
 12801  					}
 12802  					z.EncWriteMapElemValue()
 12803  					if x.Ui64slicearray == nil {
 12804  						r.EncodeNil()
 12805  					} else {
 12806  						h.encSlicePtrtoArray4uint64(([]*[4]uint64)(x.Ui64slicearray), e)
 12807  					} // end block: if x.Ui64slicearray slice == nil
 12808  				}
 12809  				if yyq2[12] {
 12810  					z.EncWriteMapElemKey()
 12811  					if z.IsJSONHandle() {
 12812  						z.EncWr().WriteStr("\"Ui8\"")
 12813  					} else {
 12814  						r.EncodeString(`Ui8`)
 12815  					}
 12816  					z.EncWriteMapElemValue()
 12817  					r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
 12818  				}
 12819  				if yyq2[21] {
 12820  					z.EncWriteMapElemKey()
 12821  					if z.IsJSONHandle() {
 12822  						z.EncWr().WriteStr("\"Ui8slice\"")
 12823  					} else {
 12824  						r.EncodeString(`Ui8slice`)
 12825  					}
 12826  					z.EncWriteMapElemValue()
 12827  					if x.TestStrucCommon.Ui8slice == nil {
 12828  						r.EncodeNil()
 12829  					} else {
 12830  						r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
 12831  					} // end block: if x.TestStrucCommon.Ui8slice slice == nil
 12832  				}
 12833  				if yyq2[26] {
 12834  					z.EncWriteMapElemKey()
 12835  					if z.IsJSONHandle() {
 12836  						z.EncWr().WriteStr("\"WrapSliceInt64\"")
 12837  					} else {
 12838  						r.EncodeString(`WrapSliceInt64`)
 12839  					}
 12840  					z.EncWriteMapElemValue()
 12841  					if yyxt305 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt305 != nil {
 12842  						z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt305)
 12843  					} else {
 12844  						x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
 12845  					}
 12846  				}
 12847  				if yyq2[27] {
 12848  					z.EncWriteMapElemKey()
 12849  					if z.IsJSONHandle() {
 12850  						z.EncWr().WriteStr("\"WrapSliceString\"")
 12851  					} else {
 12852  						r.EncodeString(`WrapSliceString`)
 12853  					}
 12854  					z.EncWriteMapElemValue()
 12855  					if yyxt306 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt306 != nil {
 12856  						z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt306)
 12857  					} else {
 12858  						x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
 12859  					}
 12860  				}
 12861  				if yyq2[92] {
 12862  					z.EncWriteMapElemKey()
 12863  					if z.IsJSONHandle() {
 12864  						z.EncWr().WriteStr("\"XuintToBytes\"")
 12865  					} else {
 12866  						r.EncodeString(`XuintToBytes`)
 12867  					}
 12868  					z.EncWriteMapElemValue()
 12869  					if yyxt307 := z.Extension(x.XuintToBytes); yyxt307 != nil {
 12870  						z.EncExtension(x.XuintToBytes, yyxt307)
 12871  					} else {
 12872  						x.XuintToBytes.CodecEncodeSelf(e)
 12873  					}
 12874  				}
 12875  			} else {
 12876  				if yyq2[0] {
 12877  					z.EncWriteMapElemKey()
 12878  					if z.IsJSONHandle() {
 12879  						z.EncWr().WriteStr("\"S\"")
 12880  					} else {
 12881  						r.EncodeString(`S`)
 12882  					}
 12883  					z.EncWriteMapElemValue()
 12884  					r.EncodeString(string(x.TestStrucCommon.S))
 12885  				}
 12886  				if yyq2[1] {
 12887  					z.EncWriteMapElemKey()
 12888  					if z.IsJSONHandle() {
 12889  						z.EncWr().WriteStr("\"I64\"")
 12890  					} else {
 12891  						r.EncodeString(`I64`)
 12892  					}
 12893  					z.EncWriteMapElemValue()
 12894  					r.EncodeInt(int64(x.TestStrucCommon.I64))
 12895  				}
 12896  				if yyq2[2] {
 12897  					z.EncWriteMapElemKey()
 12898  					if z.IsJSONHandle() {
 12899  						z.EncWr().WriteStr("\"I32\"")
 12900  					} else {
 12901  						r.EncodeString(`I32`)
 12902  					}
 12903  					z.EncWriteMapElemValue()
 12904  					r.EncodeInt(int64(x.TestStrucCommon.I32))
 12905  				}
 12906  				if yyq2[3] {
 12907  					z.EncWriteMapElemKey()
 12908  					if z.IsJSONHandle() {
 12909  						z.EncWr().WriteStr("\"I16\"")
 12910  					} else {
 12911  						r.EncodeString(`I16`)
 12912  					}
 12913  					z.EncWriteMapElemValue()
 12914  					r.EncodeInt(int64(x.TestStrucCommon.I16))
 12915  				}
 12916  				if yyq2[4] {
 12917  					z.EncWriteMapElemKey()
 12918  					if z.IsJSONHandle() {
 12919  						z.EncWr().WriteStr("\"I8\"")
 12920  					} else {
 12921  						r.EncodeString(`I8`)
 12922  					}
 12923  					z.EncWriteMapElemValue()
 12924  					r.EncodeInt(int64(x.TestStrucCommon.I8))
 12925  				}
 12926  				if yyq2[5] {
 12927  					z.EncWriteMapElemKey()
 12928  					if z.IsJSONHandle() {
 12929  						z.EncWr().WriteStr("\"I64n\"")
 12930  					} else {
 12931  						r.EncodeString(`I64n`)
 12932  					}
 12933  					z.EncWriteMapElemValue()
 12934  					r.EncodeInt(int64(x.TestStrucCommon.I64n))
 12935  				}
 12936  				if yyq2[6] {
 12937  					z.EncWriteMapElemKey()
 12938  					if z.IsJSONHandle() {
 12939  						z.EncWr().WriteStr("\"I32n\"")
 12940  					} else {
 12941  						r.EncodeString(`I32n`)
 12942  					}
 12943  					z.EncWriteMapElemValue()
 12944  					r.EncodeInt(int64(x.TestStrucCommon.I32n))
 12945  				}
 12946  				if yyq2[7] {
 12947  					z.EncWriteMapElemKey()
 12948  					if z.IsJSONHandle() {
 12949  						z.EncWr().WriteStr("\"I16n\"")
 12950  					} else {
 12951  						r.EncodeString(`I16n`)
 12952  					}
 12953  					z.EncWriteMapElemValue()
 12954  					r.EncodeInt(int64(x.TestStrucCommon.I16n))
 12955  				}
 12956  				if yyq2[8] {
 12957  					z.EncWriteMapElemKey()
 12958  					if z.IsJSONHandle() {
 12959  						z.EncWr().WriteStr("\"I8n\"")
 12960  					} else {
 12961  						r.EncodeString(`I8n`)
 12962  					}
 12963  					z.EncWriteMapElemValue()
 12964  					r.EncodeInt(int64(x.TestStrucCommon.I8n))
 12965  				}
 12966  				if yyq2[9] {
 12967  					z.EncWriteMapElemKey()
 12968  					if z.IsJSONHandle() {
 12969  						z.EncWr().WriteStr("\"Ui64\"")
 12970  					} else {
 12971  						r.EncodeString(`Ui64`)
 12972  					}
 12973  					z.EncWriteMapElemValue()
 12974  					r.EncodeUint(uint64(x.TestStrucCommon.Ui64))
 12975  				}
 12976  				if yyq2[10] {
 12977  					z.EncWriteMapElemKey()
 12978  					if z.IsJSONHandle() {
 12979  						z.EncWr().WriteStr("\"Ui32\"")
 12980  					} else {
 12981  						r.EncodeString(`Ui32`)
 12982  					}
 12983  					z.EncWriteMapElemValue()
 12984  					r.EncodeUint(uint64(x.TestStrucCommon.Ui32))
 12985  				}
 12986  				if yyq2[11] {
 12987  					z.EncWriteMapElemKey()
 12988  					if z.IsJSONHandle() {
 12989  						z.EncWr().WriteStr("\"Ui16\"")
 12990  					} else {
 12991  						r.EncodeString(`Ui16`)
 12992  					}
 12993  					z.EncWriteMapElemValue()
 12994  					r.EncodeUint(uint64(x.TestStrucCommon.Ui16))
 12995  				}
 12996  				if yyq2[12] {
 12997  					z.EncWriteMapElemKey()
 12998  					if z.IsJSONHandle() {
 12999  						z.EncWr().WriteStr("\"Ui8\"")
 13000  					} else {
 13001  						r.EncodeString(`Ui8`)
 13002  					}
 13003  					z.EncWriteMapElemValue()
 13004  					r.EncodeUint(uint64(x.TestStrucCommon.Ui8))
 13005  				}
 13006  				if yyq2[13] {
 13007  					z.EncWriteMapElemKey()
 13008  					if z.IsJSONHandle() {
 13009  						z.EncWr().WriteStr("\"F64\"")
 13010  					} else {
 13011  						r.EncodeString(`F64`)
 13012  					}
 13013  					z.EncWriteMapElemValue()
 13014  					r.EncodeFloat64(float64(x.TestStrucCommon.F64))
 13015  				}
 13016  				if yyq2[14] {
 13017  					z.EncWriteMapElemKey()
 13018  					if z.IsJSONHandle() {
 13019  						z.EncWr().WriteStr("\"F32\"")
 13020  					} else {
 13021  						r.EncodeString(`F32`)
 13022  					}
 13023  					z.EncWriteMapElemValue()
 13024  					r.EncodeFloat32(float32(x.TestStrucCommon.F32))
 13025  				}
 13026  				if yyq2[15] {
 13027  					z.EncWriteMapElemKey()
 13028  					if z.IsJSONHandle() {
 13029  						z.EncWr().WriteStr("\"B\"")
 13030  					} else {
 13031  						r.EncodeString(`B`)
 13032  					}
 13033  					z.EncWriteMapElemValue()
 13034  					r.EncodeBool(bool(x.TestStrucCommon.B))
 13035  				}
 13036  				if yyq2[16] {
 13037  					z.EncWriteMapElemKey()
 13038  					if z.IsJSONHandle() {
 13039  						z.EncWr().WriteStr("\"By\"")
 13040  					} else {
 13041  						r.EncodeString(`By`)
 13042  					}
 13043  					z.EncWriteMapElemValue()
 13044  					r.EncodeUint(uint64(x.TestStrucCommon.By))
 13045  				}
 13046  				if yyq2[17] {
 13047  					z.EncWriteMapElemKey()
 13048  					if z.IsJSONHandle() {
 13049  						z.EncWr().WriteStr("\"Sslice\"")
 13050  					} else {
 13051  						r.EncodeString(`Sslice`)
 13052  					}
 13053  					z.EncWriteMapElemValue()
 13054  					if x.TestStrucCommon.Sslice == nil {
 13055  						r.EncodeNil()
 13056  					} else {
 13057  						z.F.EncSliceStringV(x.TestStrucCommon.Sslice, e)
 13058  					} // end block: if x.TestStrucCommon.Sslice slice == nil
 13059  				}
 13060  				if yyq2[18] {
 13061  					z.EncWriteMapElemKey()
 13062  					if z.IsJSONHandle() {
 13063  						z.EncWr().WriteStr("\"I64slice\"")
 13064  					} else {
 13065  						r.EncodeString(`I64slice`)
 13066  					}
 13067  					z.EncWriteMapElemValue()
 13068  					if x.TestStrucCommon.I64slice == nil {
 13069  						r.EncodeNil()
 13070  					} else {
 13071  						z.F.EncSliceInt64V(x.TestStrucCommon.I64slice, e)
 13072  					} // end block: if x.TestStrucCommon.I64slice slice == nil
 13073  				}
 13074  				if yyq2[19] {
 13075  					z.EncWriteMapElemKey()
 13076  					if z.IsJSONHandle() {
 13077  						z.EncWr().WriteStr("\"I32slice\"")
 13078  					} else {
 13079  						r.EncodeString(`I32slice`)
 13080  					}
 13081  					z.EncWriteMapElemValue()
 13082  					if x.TestStrucCommon.I32slice == nil {
 13083  						r.EncodeNil()
 13084  					} else {
 13085  						z.F.EncSliceInt32V(x.TestStrucCommon.I32slice, e)
 13086  					} // end block: if x.TestStrucCommon.I32slice slice == nil
 13087  				}
 13088  				if yyq2[20] {
 13089  					z.EncWriteMapElemKey()
 13090  					if z.IsJSONHandle() {
 13091  						z.EncWr().WriteStr("\"Ui64slice\"")
 13092  					} else {
 13093  						r.EncodeString(`Ui64slice`)
 13094  					}
 13095  					z.EncWriteMapElemValue()
 13096  					if x.TestStrucCommon.Ui64slice == nil {
 13097  						r.EncodeNil()
 13098  					} else {
 13099  						z.F.EncSliceUint64V(x.TestStrucCommon.Ui64slice, e)
 13100  					} // end block: if x.TestStrucCommon.Ui64slice slice == nil
 13101  				}
 13102  				if yyq2[21] {
 13103  					z.EncWriteMapElemKey()
 13104  					if z.IsJSONHandle() {
 13105  						z.EncWr().WriteStr("\"Ui8slice\"")
 13106  					} else {
 13107  						r.EncodeString(`Ui8slice`)
 13108  					}
 13109  					z.EncWriteMapElemValue()
 13110  					if x.TestStrucCommon.Ui8slice == nil {
 13111  						r.EncodeNil()
 13112  					} else {
 13113  						r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Ui8slice))
 13114  					} // end block: if x.TestStrucCommon.Ui8slice slice == nil
 13115  				}
 13116  				if yyq2[22] {
 13117  					z.EncWriteMapElemKey()
 13118  					if z.IsJSONHandle() {
 13119  						z.EncWr().WriteStr("\"Bslice\"")
 13120  					} else {
 13121  						r.EncodeString(`Bslice`)
 13122  					}
 13123  					z.EncWriteMapElemValue()
 13124  					if x.TestStrucCommon.Bslice == nil {
 13125  						r.EncodeNil()
 13126  					} else {
 13127  						z.F.EncSliceBoolV(x.TestStrucCommon.Bslice, e)
 13128  					} // end block: if x.TestStrucCommon.Bslice slice == nil
 13129  				}
 13130  				if yyq2[23] {
 13131  					z.EncWriteMapElemKey()
 13132  					if z.IsJSONHandle() {
 13133  						z.EncWr().WriteStr("\"Byslice\"")
 13134  					} else {
 13135  						r.EncodeString(`Byslice`)
 13136  					}
 13137  					z.EncWriteMapElemValue()
 13138  					if x.TestStrucCommon.Byslice == nil {
 13139  						r.EncodeNil()
 13140  					} else {
 13141  						r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Byslice))
 13142  					} // end block: if x.TestStrucCommon.Byslice slice == nil
 13143  				}
 13144  				if yyq2[24] {
 13145  					z.EncWriteMapElemKey()
 13146  					if z.IsJSONHandle() {
 13147  						z.EncWr().WriteStr("\"BytesSlice\"")
 13148  					} else {
 13149  						r.EncodeString(`BytesSlice`)
 13150  					}
 13151  					z.EncWriteMapElemValue()
 13152  					if x.TestStrucCommon.BytesSlice == nil {
 13153  						r.EncodeNil()
 13154  					} else {
 13155  						z.F.EncSliceBytesV(x.TestStrucCommon.BytesSlice, e)
 13156  					} // end block: if x.TestStrucCommon.BytesSlice slice == nil
 13157  				}
 13158  				if yyq2[25] {
 13159  					z.EncWriteMapElemKey()
 13160  					if z.IsJSONHandle() {
 13161  						z.EncWr().WriteStr("\"Iptrslice\"")
 13162  					} else {
 13163  						r.EncodeString(`Iptrslice`)
 13164  					}
 13165  					z.EncWriteMapElemValue()
 13166  					if x.TestStrucCommon.Iptrslice == nil {
 13167  						r.EncodeNil()
 13168  					} else {
 13169  						h.encSlicePtrtoint64(([]*int64)(x.TestStrucCommon.Iptrslice), e)
 13170  					} // end block: if x.TestStrucCommon.Iptrslice slice == nil
 13171  				}
 13172  				if yyq2[26] {
 13173  					z.EncWriteMapElemKey()
 13174  					if z.IsJSONHandle() {
 13175  						z.EncWr().WriteStr("\"WrapSliceInt64\"")
 13176  					} else {
 13177  						r.EncodeString(`WrapSliceInt64`)
 13178  					}
 13179  					z.EncWriteMapElemValue()
 13180  					if yyxt334 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt334 != nil {
 13181  						z.EncExtension(x.TestStrucCommon.WrapSliceInt64, yyxt334)
 13182  					} else {
 13183  						x.TestStrucCommon.WrapSliceInt64.CodecEncodeSelf(e)
 13184  					}
 13185  				}
 13186  				if yyq2[27] {
 13187  					z.EncWriteMapElemKey()
 13188  					if z.IsJSONHandle() {
 13189  						z.EncWr().WriteStr("\"WrapSliceString\"")
 13190  					} else {
 13191  						r.EncodeString(`WrapSliceString`)
 13192  					}
 13193  					z.EncWriteMapElemValue()
 13194  					if yyxt335 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt335 != nil {
 13195  						z.EncExtension(x.TestStrucCommon.WrapSliceString, yyxt335)
 13196  					} else {
 13197  						x.TestStrucCommon.WrapSliceString.CodecEncodeSelf(e)
 13198  					}
 13199  				}
 13200  				if yyq2[28] {
 13201  					z.EncWriteMapElemKey()
 13202  					if z.IsJSONHandle() {
 13203  						z.EncWr().WriteStr("\"Msint\"")
 13204  					} else {
 13205  						r.EncodeString(`Msint`)
 13206  					}
 13207  					z.EncWriteMapElemValue()
 13208  					if x.TestStrucCommon.Msint == nil {
 13209  						r.EncodeNil()
 13210  					} else {
 13211  						z.F.EncMapStringIntV(x.TestStrucCommon.Msint, e)
 13212  					} // end block: if x.TestStrucCommon.Msint map == nil
 13213  				}
 13214  				if yyq2[29] {
 13215  					z.EncWriteMapElemKey()
 13216  					if z.IsJSONHandle() {
 13217  						z.EncWr().WriteStr("\"Msbytes\"")
 13218  					} else {
 13219  						r.EncodeString(`Msbytes`)
 13220  					}
 13221  					z.EncWriteMapElemValue()
 13222  					if x.TestStrucCommon.Msbytes == nil {
 13223  						r.EncodeNil()
 13224  					} else {
 13225  						z.F.EncMapStringBytesV(x.TestStrucCommon.Msbytes, e)
 13226  					} // end block: if x.TestStrucCommon.Msbytes map == nil
 13227  				}
 13228  				if yyq2[30] {
 13229  					z.EncWriteMapElemKey()
 13230  					if z.IsJSONHandle() {
 13231  						z.EncWr().WriteStr("\"Simplef\"")
 13232  					} else {
 13233  						r.EncodeString(`Simplef`)
 13234  					}
 13235  					z.EncWriteMapElemValue()
 13236  					yy338 := &x.TestStrucCommon.Simplef
 13237  					if yyxt339 := z.Extension(yy338); yyxt339 != nil {
 13238  						z.EncExtension(yy338, yyxt339)
 13239  					} else {
 13240  						yy338.CodecEncodeSelf(e)
 13241  					}
 13242  				}
 13243  				if yyq2[31] {
 13244  					z.EncWriteMapElemKey()
 13245  					if z.IsJSONHandle() {
 13246  						z.EncWr().WriteStr("\"SstrUi64T\"")
 13247  					} else {
 13248  						r.EncodeString(`SstrUi64T`)
 13249  					}
 13250  					z.EncWriteMapElemValue()
 13251  					if x.TestStrucCommon.SstrUi64T == nil {
 13252  						r.EncodeNil()
 13253  					} else {
 13254  						h.encSlicestringUint64T(([]stringUint64T)(x.TestStrucCommon.SstrUi64T), e)
 13255  					} // end block: if x.TestStrucCommon.SstrUi64T slice == nil
 13256  				}
 13257  				if yyq2[32] {
 13258  					z.EncWriteMapElemKey()
 13259  					if z.IsJSONHandle() {
 13260  						z.EncWr().WriteStr("\"MstrUi64T\"")
 13261  					} else {
 13262  						r.EncodeString(`MstrUi64T`)
 13263  					}
 13264  					z.EncWriteMapElemValue()
 13265  					if x.TestStrucCommon.MstrUi64T == nil {
 13266  						r.EncodeNil()
 13267  					} else {
 13268  						h.encMapstringPtrtostringUint64T((map[string]*stringUint64T)(x.TestStrucCommon.MstrUi64T), e)
 13269  					} // end block: if x.TestStrucCommon.MstrUi64T map == nil
 13270  				}
 13271  				if yyq2[33] {
 13272  					z.EncWriteMapElemKey()
 13273  					if z.IsJSONHandle() {
 13274  						z.EncWr().WriteStr("\"AS\"")
 13275  					} else {
 13276  						r.EncodeString(`AS`)
 13277  					}
 13278  					z.EncWriteMapElemValue()
 13279  					r.EncodeString(string(x.TestStrucCommon.AnonInTestStruc.AS))
 13280  				}
 13281  				if yyq2[34] {
 13282  					z.EncWriteMapElemKey()
 13283  					if z.IsJSONHandle() {
 13284  						z.EncWr().WriteStr("\"AI64\"")
 13285  					} else {
 13286  						r.EncodeString(`AI64`)
 13287  					}
 13288  					z.EncWriteMapElemValue()
 13289  					r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI64))
 13290  				}
 13291  				if yyq2[35] {
 13292  					z.EncWriteMapElemKey()
 13293  					if z.IsJSONHandle() {
 13294  						z.EncWr().WriteStr("\"AI16\"")
 13295  					} else {
 13296  						r.EncodeString(`AI16`)
 13297  					}
 13298  					z.EncWriteMapElemValue()
 13299  					r.EncodeInt(int64(x.TestStrucCommon.AnonInTestStruc.AI16))
 13300  				}
 13301  				if yyq2[36] {
 13302  					z.EncWriteMapElemKey()
 13303  					if z.IsJSONHandle() {
 13304  						z.EncWr().WriteStr("\"AUi64\"")
 13305  					} else {
 13306  						r.EncodeString(`AUi64`)
 13307  					}
 13308  					z.EncWriteMapElemValue()
 13309  					r.EncodeUint(uint64(x.TestStrucCommon.AnonInTestStruc.AUi64))
 13310  				}
 13311  				if yyq2[37] {
 13312  					z.EncWriteMapElemKey()
 13313  					if z.IsJSONHandle() {
 13314  						z.EncWr().WriteStr("\"ASslice\"")
 13315  					} else {
 13316  						r.EncodeString(`ASslice`)
 13317  					}
 13318  					z.EncWriteMapElemValue()
 13319  					if x.TestStrucCommon.AnonInTestStruc.ASslice == nil {
 13320  						r.EncodeNil()
 13321  					} else {
 13322  						z.F.EncSliceStringV(x.TestStrucCommon.AnonInTestStruc.ASslice, e)
 13323  					} // end block: if x.TestStrucCommon.AnonInTestStruc.ASslice slice == nil
 13324  				}
 13325  				if yyq2[38] {
 13326  					z.EncWriteMapElemKey()
 13327  					if z.IsJSONHandle() {
 13328  						z.EncWr().WriteStr("\"AI64slice\"")
 13329  					} else {
 13330  						r.EncodeString(`AI64slice`)
 13331  					}
 13332  					z.EncWriteMapElemValue()
 13333  					if x.TestStrucCommon.AnonInTestStruc.AI64slice == nil {
 13334  						r.EncodeNil()
 13335  					} else {
 13336  						z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice, e)
 13337  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice slice == nil
 13338  				}
 13339  				if yyq2[39] {
 13340  					z.EncWriteMapElemKey()
 13341  					if z.IsJSONHandle() {
 13342  						z.EncWr().WriteStr("\"AUi64slice\"")
 13343  					} else {
 13344  						r.EncodeString(`AUi64slice`)
 13345  					}
 13346  					z.EncWriteMapElemValue()
 13347  					if x.TestStrucCommon.AnonInTestStruc.AUi64slice == nil {
 13348  						r.EncodeNil()
 13349  					} else {
 13350  						z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64slice, e)
 13351  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64slice slice == nil
 13352  				}
 13353  				if yyq2[40] {
 13354  					z.EncWriteMapElemKey()
 13355  					if z.IsJSONHandle() {
 13356  						z.EncWr().WriteStr("\"AF64slice\"")
 13357  					} else {
 13358  						r.EncodeString(`AF64slice`)
 13359  					}
 13360  					z.EncWriteMapElemValue()
 13361  					if x.TestStrucCommon.AnonInTestStruc.AF64slice == nil {
 13362  						r.EncodeNil()
 13363  					} else {
 13364  						z.F.EncSliceFloat64V(x.TestStrucCommon.AnonInTestStruc.AF64slice, e)
 13365  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AF64slice slice == nil
 13366  				}
 13367  				if yyq2[41] {
 13368  					z.EncWriteMapElemKey()
 13369  					if z.IsJSONHandle() {
 13370  						z.EncWr().WriteStr("\"AF32slice\"")
 13371  					} else {
 13372  						r.EncodeString(`AF32slice`)
 13373  					}
 13374  					z.EncWriteMapElemValue()
 13375  					if x.TestStrucCommon.AnonInTestStruc.AF32slice == nil {
 13376  						r.EncodeNil()
 13377  					} else {
 13378  						z.F.EncSliceFloat32V(x.TestStrucCommon.AnonInTestStruc.AF32slice, e)
 13379  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AF32slice slice == nil
 13380  				}
 13381  				if yyq2[42] {
 13382  					z.EncWriteMapElemKey()
 13383  					if z.IsJSONHandle() {
 13384  						z.EncWr().WriteStr("\"AMSS\"")
 13385  					} else {
 13386  						r.EncodeString(`AMSS`)
 13387  					}
 13388  					z.EncWriteMapElemValue()
 13389  					if x.TestStrucCommon.AnonInTestStruc.AMSS == nil {
 13390  						r.EncodeNil()
 13391  					} else {
 13392  						z.F.EncMapStringStringV(x.TestStrucCommon.AnonInTestStruc.AMSS, e)
 13393  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSS map == nil
 13394  				}
 13395  				if yyq2[43] {
 13396  					z.EncWriteMapElemKey()
 13397  					if z.IsJSONHandle() {
 13398  						z.EncWr().WriteStr("\"AMSU64\"")
 13399  					} else {
 13400  						r.EncodeString(`AMSU64`)
 13401  					}
 13402  					z.EncWriteMapElemValue()
 13403  					if x.TestStrucCommon.AnonInTestStruc.AMSU64 == nil {
 13404  						r.EncodeNil()
 13405  					} else {
 13406  						z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64, e)
 13407  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64 map == nil
 13408  				}
 13409  				if yyq2[44] {
 13410  					z.EncWriteMapElemKey()
 13411  					if z.IsJSONHandle() {
 13412  						z.EncWr().WriteStr("\"AI64arr8\"")
 13413  					} else {
 13414  						r.EncodeString(`AI64arr8`)
 13415  					}
 13416  					z.EncWriteMapElemValue()
 13417  					yy353 := &x.TestStrucCommon.AnonInTestStruc.AI64arr8
 13418  					h.encArray8int64((*[8]int64)(yy353), e)
 13419  				}
 13420  				if yyq2[45] {
 13421  					z.EncWriteMapElemKey()
 13422  					if z.IsJSONHandle() {
 13423  						z.EncWr().WriteStr("\"AI64arr0\"")
 13424  					} else {
 13425  						r.EncodeString(`AI64arr0`)
 13426  					}
 13427  					z.EncWriteMapElemValue()
 13428  					yy355 := &x.TestStrucCommon.AnonInTestStruc.AI64arr0
 13429  					h.encArray0int64((*[0]int64)(yy355), e)
 13430  				}
 13431  				if yyq2[46] {
 13432  					z.EncWriteMapElemKey()
 13433  					if z.IsJSONHandle() {
 13434  						z.EncWr().WriteStr("\"AI64slice0\"")
 13435  					} else {
 13436  						r.EncodeString(`AI64slice0`)
 13437  					}
 13438  					z.EncWriteMapElemValue()
 13439  					if x.TestStrucCommon.AnonInTestStruc.AI64slice0 == nil {
 13440  						r.EncodeNil()
 13441  					} else {
 13442  						z.F.EncSliceInt64V(x.TestStrucCommon.AnonInTestStruc.AI64slice0, e)
 13443  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AI64slice0 slice == nil
 13444  				}
 13445  				if yyq2[47] {
 13446  					z.EncWriteMapElemKey()
 13447  					if z.IsJSONHandle() {
 13448  						z.EncWr().WriteStr("\"AUi64sliceN\"")
 13449  					} else {
 13450  						r.EncodeString(`AUi64sliceN`)
 13451  					}
 13452  					z.EncWriteMapElemValue()
 13453  					if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN == nil {
 13454  						r.EncodeNil()
 13455  					} else {
 13456  						z.F.EncSliceUint64V(x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, e)
 13457  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AUi64sliceN slice == nil
 13458  				}
 13459  				if yyq2[48] {
 13460  					z.EncWriteMapElemKey()
 13461  					if z.IsJSONHandle() {
 13462  						z.EncWr().WriteStr("\"AMSU64N\"")
 13463  					} else {
 13464  						r.EncodeString(`AMSU64N`)
 13465  					}
 13466  					z.EncWriteMapElemValue()
 13467  					if x.TestStrucCommon.AnonInTestStruc.AMSU64N == nil {
 13468  						r.EncodeNil()
 13469  					} else {
 13470  						z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64N, e)
 13471  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64N map == nil
 13472  				}
 13473  				if yyq2[49] {
 13474  					z.EncWriteMapElemKey()
 13475  					if z.IsJSONHandle() {
 13476  						z.EncWr().WriteStr("\"AMSU64E\"")
 13477  					} else {
 13478  						r.EncodeString(`AMSU64E`)
 13479  					}
 13480  					z.EncWriteMapElemValue()
 13481  					if x.TestStrucCommon.AnonInTestStruc.AMSU64E == nil {
 13482  						r.EncodeNil()
 13483  					} else {
 13484  						z.F.EncMapStringUint64V(x.TestStrucCommon.AnonInTestStruc.AMSU64E, e)
 13485  					} // end block: if x.TestStrucCommon.AnonInTestStruc.AMSU64E map == nil
 13486  				}
 13487  				if yyq2[50] {
 13488  					z.EncWriteMapElemKey()
 13489  					if z.IsJSONHandle() {
 13490  						z.EncWr().WriteStr("\"NotAnon\"")
 13491  					} else {
 13492  						r.EncodeString(`NotAnon`)
 13493  					}
 13494  					z.EncWriteMapElemValue()
 13495  					yy361 := &x.TestStrucCommon.NotAnon
 13496  					if yyxt362 := z.Extension(yy361); yyxt362 != nil {
 13497  						z.EncExtension(yy361, yyxt362)
 13498  					} else {
 13499  						yy361.CodecEncodeSelf(e)
 13500  					}
 13501  				}
 13502  				if yyq2[51] {
 13503  					z.EncWriteMapElemKey()
 13504  					if z.IsJSONHandle() {
 13505  						z.EncWr().WriteStr("\"P\"")
 13506  					} else {
 13507  						r.EncodeString(`P`)
 13508  					}
 13509  					z.EncWriteMapElemValue()
 13510  					if yyn54 {
 13511  						r.EncodeNil()
 13512  					} else {
 13513  						yy363 := *x.TestStrucCommon.AnonInTestStrucSlim.P
 13514  						r.EncodeString(string(yy363))
 13515  					}
 13516  				}
 13517  				if yyq2[52] {
 13518  					z.EncWriteMapElemKey()
 13519  					if z.IsJSONHandle() {
 13520  						z.EncWr().WriteStr("\"NotAnonSlim\"")
 13521  					} else {
 13522  						r.EncodeString(`NotAnonSlim`)
 13523  					}
 13524  					z.EncWriteMapElemValue()
 13525  					if yyn55 {
 13526  						r.EncodeNil()
 13527  					} else {
 13528  						if yyxt365 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt365 != nil {
 13529  							z.EncExtension(x.TestStrucCommon.NotAnonSlim, yyxt365)
 13530  						} else {
 13531  							x.TestStrucCommon.NotAnonSlim.CodecEncodeSelf(e)
 13532  						}
 13533  					}
 13534  				}
 13535  				if yyq2[53] {
 13536  					z.EncWriteMapElemKey()
 13537  					if z.IsJSONHandle() {
 13538  						z.EncWr().WriteStr("\"Nmap\"")
 13539  					} else {
 13540  						r.EncodeString(`Nmap`)
 13541  					}
 13542  					z.EncWriteMapElemValue()
 13543  					if x.TestStrucCommon.Nmap == nil {
 13544  						r.EncodeNil()
 13545  					} else {
 13546  						z.F.EncMapStringBoolV(x.TestStrucCommon.Nmap, e)
 13547  					} // end block: if x.TestStrucCommon.Nmap map == nil
 13548  				}
 13549  				if yyq2[54] {
 13550  					z.EncWriteMapElemKey()
 13551  					if z.IsJSONHandle() {
 13552  						z.EncWr().WriteStr("\"Nslice\"")
 13553  					} else {
 13554  						r.EncodeString(`Nslice`)
 13555  					}
 13556  					z.EncWriteMapElemValue()
 13557  					if x.TestStrucCommon.Nslice == nil {
 13558  						r.EncodeNil()
 13559  					} else {
 13560  						r.EncodeStringBytesRaw([]byte(x.TestStrucCommon.Nslice))
 13561  					} // end block: if x.TestStrucCommon.Nslice slice == nil
 13562  				}
 13563  				if yyq2[55] {
 13564  					z.EncWriteMapElemKey()
 13565  					if z.IsJSONHandle() {
 13566  						z.EncWr().WriteStr("\"Nint64\"")
 13567  					} else {
 13568  						r.EncodeString(`Nint64`)
 13569  					}
 13570  					z.EncWriteMapElemValue()
 13571  					if yyn58 {
 13572  						r.EncodeNil()
 13573  					} else {
 13574  						yy368 := *x.TestStrucCommon.Nint64
 13575  						r.EncodeInt(int64(yy368))
 13576  					}
 13577  				}
 13578  				if yyq2[56] {
 13579  					z.EncWriteMapElemKey()
 13580  					if z.IsJSONHandle() {
 13581  						z.EncWr().WriteStr("\"Chstr\"")
 13582  					} else {
 13583  						r.EncodeString(`Chstr`)
 13584  					}
 13585  					z.EncWriteMapElemValue()
 13586  					h.encChanstring((chan string)(x.Chstr), e)
 13587  				}
 13588  				if yyq2[57] {
 13589  					z.EncWriteMapElemKey()
 13590  					if z.IsJSONHandle() {
 13591  						z.EncWr().WriteStr("\"Mis\"")
 13592  					} else {
 13593  						r.EncodeString(`Mis`)
 13594  					}
 13595  					z.EncWriteMapElemValue()
 13596  					if x.Mis == nil {
 13597  						r.EncodeNil()
 13598  					} else {
 13599  						z.F.EncMapIntStringV(x.Mis, e)
 13600  					} // end block: if x.Mis map == nil
 13601  				}
 13602  				if yyq2[58] {
 13603  					z.EncWriteMapElemKey()
 13604  					if z.IsJSONHandle() {
 13605  						z.EncWr().WriteStr("\"Mbu64\"")
 13606  					} else {
 13607  						r.EncodeString(`Mbu64`)
 13608  					}
 13609  					z.EncWriteMapElemValue()
 13610  					if x.Mbu64 == nil {
 13611  						r.EncodeNil()
 13612  					} else {
 13613  						h.encMapboolONaHEdLDOQQHWfI((map[bool]struct{})(x.Mbu64), e)
 13614  					} // end block: if x.Mbu64 map == nil
 13615  				}
 13616  				if yyq2[59] {
 13617  					z.EncWriteMapElemKey()
 13618  					if z.IsJSONHandle() {
 13619  						z.EncWr().WriteStr("\"Mu8e\"")
 13620  					} else {
 13621  						r.EncodeString(`Mu8e`)
 13622  					}
 13623  					z.EncWriteMapElemValue()
 13624  					if x.Mu8e == nil {
 13625  						r.EncodeNil()
 13626  					} else {
 13627  						h.encMapuint8ONaHEdLDOQQHWfI((map[uint8]struct{})(x.Mu8e), e)
 13628  					} // end block: if x.Mu8e map == nil
 13629  				}
 13630  				if yyq2[60] {
 13631  					z.EncWriteMapElemKey()
 13632  					if z.IsJSONHandle() {
 13633  						z.EncWr().WriteStr("\"Mu8u64\"")
 13634  					} else {
 13635  						r.EncodeString(`Mu8u64`)
 13636  					}
 13637  					z.EncWriteMapElemValue()
 13638  					if x.Mu8u64 == nil {
 13639  						r.EncodeNil()
 13640  					} else {
 13641  						h.encMapuint8stringUint64T((map[uint8]stringUint64T)(x.Mu8u64), e)
 13642  					} // end block: if x.Mu8u64 map == nil
 13643  				}
 13644  				if yyq2[61] {
 13645  					z.EncWriteMapElemKey()
 13646  					if z.IsJSONHandle() {
 13647  						z.EncWr().WriteStr("\"Msp2ss\"")
 13648  					} else {
 13649  						r.EncodeString(`Msp2ss`)
 13650  					}
 13651  					z.EncWriteMapElemValue()
 13652  					if x.Msp2ss == nil {
 13653  						r.EncodeNil()
 13654  					} else {
 13655  						h.encMapPtrtostringSlicestring((map[*string][]string)(x.Msp2ss), e)
 13656  					} // end block: if x.Msp2ss map == nil
 13657  				}
 13658  				if yyq2[62] {
 13659  					z.EncWriteMapElemKey()
 13660  					if z.IsJSONHandle() {
 13661  						z.EncWr().WriteStr("\"Mip2ss\"")
 13662  					} else {
 13663  						r.EncodeString(`Mip2ss`)
 13664  					}
 13665  					z.EncWriteMapElemValue()
 13666  					if x.Mip2ss == nil {
 13667  						r.EncodeNil()
 13668  					} else {
 13669  						h.encMapPtrtouint64Slicestring((map[*uint64][]string)(x.Mip2ss), e)
 13670  					} // end block: if x.Mip2ss map == nil
 13671  				}
 13672  				if yyq2[63] {
 13673  					z.EncWriteMapElemKey()
 13674  					if z.IsJSONHandle() {
 13675  						z.EncWr().WriteStr("\"Ms2misu\"")
 13676  					} else {
 13677  						r.EncodeString(`Ms2misu`)
 13678  					}
 13679  					z.EncWriteMapElemValue()
 13680  					if x.Ms2misu == nil {
 13681  						r.EncodeNil()
 13682  					} else {
 13683  						h.encMapstringMapuint64stringUint64T((map[string]map[uint64]stringUint64T)(x.Ms2misu), e)
 13684  					} // end block: if x.Ms2misu map == nil
 13685  				}
 13686  				if yyq2[64] {
 13687  					z.EncWriteMapElemKey()
 13688  					if z.IsJSONHandle() {
 13689  						z.EncWr().WriteStr("\"Miwu64s\"")
 13690  					} else {
 13691  						r.EncodeString(`Miwu64s`)
 13692  					}
 13693  					z.EncWriteMapElemValue()
 13694  					if x.Miwu64s == nil {
 13695  						r.EncodeNil()
 13696  					} else {
 13697  						h.encMapintwrapUint64Slice((map[int]wrapUint64Slice)(x.Miwu64s), e)
 13698  					} // end block: if x.Miwu64s map == nil
 13699  				}
 13700  				if yyq2[65] {
 13701  					z.EncWriteMapElemKey()
 13702  					if z.IsJSONHandle() {
 13703  						z.EncWr().WriteStr("\"Mfwss\"")
 13704  					} else {
 13705  						r.EncodeString(`Mfwss`)
 13706  					}
 13707  					z.EncWriteMapElemValue()
 13708  					if x.Mfwss == nil {
 13709  						r.EncodeNil()
 13710  					} else {
 13711  						h.encMapfloat64wrapStringSlice((map[float64]wrapStringSlice)(x.Mfwss), e)
 13712  					} // end block: if x.Mfwss map == nil
 13713  				}
 13714  				if yyq2[66] {
 13715  					z.EncWriteMapElemKey()
 13716  					if z.IsJSONHandle() {
 13717  						z.EncWr().WriteStr("\"Mf32wss\"")
 13718  					} else {
 13719  						r.EncodeString(`Mf32wss`)
 13720  					}
 13721  					z.EncWriteMapElemValue()
 13722  					if x.Mf32wss == nil {
 13723  						r.EncodeNil()
 13724  					} else {
 13725  						h.encMapfloat32wrapStringSlice((map[float32]wrapStringSlice)(x.Mf32wss), e)
 13726  					} // end block: if x.Mf32wss map == nil
 13727  				}
 13728  				if yyq2[67] {
 13729  					z.EncWriteMapElemKey()
 13730  					if z.IsJSONHandle() {
 13731  						z.EncWr().WriteStr("\"Mui2wss\"")
 13732  					} else {
 13733  						r.EncodeString(`Mui2wss`)
 13734  					}
 13735  					z.EncWriteMapElemValue()
 13736  					if x.Mui2wss == nil {
 13737  						r.EncodeNil()
 13738  					} else {
 13739  						h.encMapuint64wrapStringSlice((map[uint64]wrapStringSlice)(x.Mui2wss), e)
 13740  					} // end block: if x.Mui2wss map == nil
 13741  				}
 13742  				if yyq2[68] {
 13743  					z.EncWriteMapElemKey()
 13744  					if z.IsJSONHandle() {
 13745  						z.EncWr().WriteStr("\"Msu2wss\"")
 13746  					} else {
 13747  						r.EncodeString(`Msu2wss`)
 13748  					}
 13749  					z.EncWriteMapElemValue()
 13750  					if x.Msu2wss == nil {
 13751  						r.EncodeNil()
 13752  					} else {
 13753  						h.encMapstringUint64TwrapStringSlice((map[stringUint64T]wrapStringSlice)(x.Msu2wss), e)
 13754  					} // end block: if x.Msu2wss map == nil
 13755  				}
 13756  				if yyq2[69] {
 13757  					z.EncWriteMapElemKey()
 13758  					if z.IsJSONHandle() {
 13759  						z.EncWr().WriteStr("\"Ci64\"")
 13760  					} else {
 13761  						r.EncodeString(`Ci64`)
 13762  					}
 13763  					z.EncWriteMapElemValue()
 13764  					if yyxt383 := z.Extension(x.Ci64); yyxt383 != nil {
 13765  						z.EncExtension(x.Ci64, yyxt383)
 13766  					} else {
 13767  						x.Ci64.CodecEncodeSelf(e)
 13768  					}
 13769  				}
 13770  				if yyq2[70] {
 13771  					z.EncWriteMapElemKey()
 13772  					if z.IsJSONHandle() {
 13773  						z.EncWr().WriteStr("\"Swrapbytes\"")
 13774  					} else {
 13775  						r.EncodeString(`Swrapbytes`)
 13776  					}
 13777  					z.EncWriteMapElemValue()
 13778  					if x.Swrapbytes == nil {
 13779  						r.EncodeNil()
 13780  					} else {
 13781  						h.encSlicewrapBytes(([]wrapBytes)(x.Swrapbytes), e)
 13782  					} // end block: if x.Swrapbytes slice == nil
 13783  				}
 13784  				if yyq2[71] {
 13785  					z.EncWriteMapElemKey()
 13786  					if z.IsJSONHandle() {
 13787  						z.EncWr().WriteStr("\"Swrapuint8\"")
 13788  					} else {
 13789  						r.EncodeString(`Swrapuint8`)
 13790  					}
 13791  					z.EncWriteMapElemValue()
 13792  					if x.Swrapuint8 == nil {
 13793  						r.EncodeNil()
 13794  					} else {
 13795  						h.encSlicewrapUint8(([]wrapUint8)(x.Swrapuint8), e)
 13796  					} // end block: if x.Swrapuint8 slice == nil
 13797  				}
 13798  				if yyq2[72] {
 13799  					z.EncWriteMapElemKey()
 13800  					if z.IsJSONHandle() {
 13801  						z.EncWr().WriteStr("\"ArrStrUi64T\"")
 13802  					} else {
 13803  						r.EncodeString(`ArrStrUi64T`)
 13804  					}
 13805  					z.EncWriteMapElemValue()
 13806  					yy386 := &x.ArrStrUi64T
 13807  					h.encArray4stringUint64T((*[4]stringUint64T)(yy386), e)
 13808  				}
 13809  				if yyq2[73] {
 13810  					z.EncWriteMapElemKey()
 13811  					if z.IsJSONHandle() {
 13812  						z.EncWr().WriteStr("\"Ui64array\"")
 13813  					} else {
 13814  						r.EncodeString(`Ui64array`)
 13815  					}
 13816  					z.EncWriteMapElemValue()
 13817  					yy388 := &x.Ui64array
 13818  					h.encArray4uint64((*[4]uint64)(yy388), e)
 13819  				}
 13820  				if yyq2[74] {
 13821  					z.EncWriteMapElemKey()
 13822  					if z.IsJSONHandle() {
 13823  						z.EncWr().WriteStr("\"Ui64slicearray\"")
 13824  					} else {
 13825  						r.EncodeString(`Ui64slicearray`)
 13826  					}
 13827  					z.EncWriteMapElemValue()
 13828  					if x.Ui64slicearray == nil {
 13829  						r.EncodeNil()
 13830  					} else {
 13831  						h.encSlicePtrtoArray4uint64(([]*[4]uint64)(x.Ui64slicearray), e)
 13832  					} // end block: if x.Ui64slicearray slice == nil
 13833  				}
 13834  				if yyq2[75] {
 13835  					z.EncWriteMapElemKey()
 13836  					if z.IsJSONHandle() {
 13837  						z.EncWr().WriteStr("\"SintfAarray\"")
 13838  					} else {
 13839  						r.EncodeString(`SintfAarray`)
 13840  					}
 13841  					z.EncWriteMapElemValue()
 13842  					if x.SintfAarray == nil {
 13843  						r.EncodeNil()
 13844  					} else {
 13845  						z.F.EncSliceIntfV(x.SintfAarray, e)
 13846  					} // end block: if x.SintfAarray slice == nil
 13847  				}
 13848  				if yyq2[76] {
 13849  					z.EncWriteMapElemKey()
 13850  					if z.IsJSONHandle() {
 13851  						z.EncWr().WriteStr("\"MstrUi64TSelf\"")
 13852  					} else {
 13853  						r.EncodeString(`MstrUi64TSelf`)
 13854  					}
 13855  					z.EncWriteMapElemValue()
 13856  					if x.MstrUi64TSelf == nil {
 13857  						r.EncodeNil()
 13858  					} else {
 13859  						h.encMapstringUint64TPtrtostringUint64T((map[stringUint64T]*stringUint64T)(x.MstrUi64TSelf), e)
 13860  					} // end block: if x.MstrUi64TSelf map == nil
 13861  				}
 13862  				if yyq2[77] {
 13863  					z.EncWriteMapElemKey()
 13864  					if z.IsJSONHandle() {
 13865  						z.EncWr().WriteStr("\"Ttime\"")
 13866  					} else {
 13867  						r.EncodeString(`Ttime`)
 13868  					}
 13869  					z.EncWriteMapElemValue()
 13870  					if z.EncBasicHandle().TimeBuiltin() {
 13871  						r.EncodeTime(x.Ttime)
 13872  					} else if yyxt393 := z.Extension(x.Ttime); yyxt393 != nil {
 13873  						z.EncExtension(x.Ttime, yyxt393)
 13874  					} else if z.EncBinary() {
 13875  						z.EncBinaryMarshal(x.Ttime)
 13876  					} else if !z.EncBinary() && z.IsJSONHandle() {
 13877  						z.EncJSONMarshal(x.Ttime)
 13878  					} else {
 13879  						z.EncFallback(x.Ttime)
 13880  					}
 13881  				}
 13882  				if yyq2[78] {
 13883  					z.EncWriteMapElemKey()
 13884  					if z.IsJSONHandle() {
 13885  						z.EncWr().WriteStr("\"Ttimeptr\"")
 13886  					} else {
 13887  						r.EncodeString(`Ttimeptr`)
 13888  					}
 13889  					z.EncWriteMapElemValue()
 13890  					if yyn81 {
 13891  						r.EncodeNil()
 13892  					} else {
 13893  						yy394 := *x.Ttimeptr
 13894  						if z.EncBasicHandle().TimeBuiltin() {
 13895  							r.EncodeTime(yy394)
 13896  						} else if yyxt395 := z.Extension(yy394); yyxt395 != nil {
 13897  							z.EncExtension(yy394, yyxt395)
 13898  						} else if z.EncBinary() {
 13899  							z.EncBinaryMarshal(yy394)
 13900  						} else if !z.EncBinary() && z.IsJSONHandle() {
 13901  							z.EncJSONMarshal(yy394)
 13902  						} else {
 13903  							z.EncFallback(yy394)
 13904  						}
 13905  					}
 13906  				}
 13907  				if yyq2[79] {
 13908  					z.EncWriteMapElemKey()
 13909  					if z.IsJSONHandle() {
 13910  						z.EncWr().WriteStr("\"Islice\"")
 13911  					} else {
 13912  						r.EncodeString(`Islice`)
 13913  					}
 13914  					z.EncWriteMapElemValue()
 13915  					if yyn82 {
 13916  						r.EncodeNil()
 13917  					} else {
 13918  						if x.AnonInTestStrucIntf.Islice == nil {
 13919  							r.EncodeNil()
 13920  						} else {
 13921  							z.F.EncSliceIntfV(x.AnonInTestStrucIntf.Islice, e)
 13922  						} // end block: if x.AnonInTestStrucIntf.Islice slice == nil
 13923  					}
 13924  				}
 13925  				if yyq2[80] {
 13926  					z.EncWriteMapElemKey()
 13927  					if z.IsJSONHandle() {
 13928  						z.EncWr().WriteStr("\"Ms\"")
 13929  					} else {
 13930  						r.EncodeString(`Ms`)
 13931  					}
 13932  					z.EncWriteMapElemValue()
 13933  					if yyn83 {
 13934  						r.EncodeNil()
 13935  					} else {
 13936  						if x.AnonInTestStrucIntf.Ms == nil {
 13937  							r.EncodeNil()
 13938  						} else {
 13939  							z.F.EncMapStringIntfV(x.AnonInTestStrucIntf.Ms, e)
 13940  						} // end block: if x.AnonInTestStrucIntf.Ms map == nil
 13941  					}
 13942  				}
 13943  				if yyq2[81] {
 13944  					z.EncWriteMapElemKey()
 13945  					if z.IsJSONHandle() {
 13946  						z.EncWr().WriteStr("\"Nintf\"")
 13947  					} else {
 13948  						r.EncodeString(`Nintf`)
 13949  					}
 13950  					z.EncWriteMapElemValue()
 13951  					if yyn84 {
 13952  						r.EncodeNil()
 13953  					} else {
 13954  						z.EncFallback(x.AnonInTestStrucIntf.Nintf)
 13955  					}
 13956  				}
 13957  				if yyq2[82] {
 13958  					z.EncWriteMapElemKey()
 13959  					if z.IsJSONHandle() {
 13960  						z.EncWr().WriteStr("\"T\"")
 13961  					} else {
 13962  						r.EncodeString(`T`)
 13963  					}
 13964  					z.EncWriteMapElemValue()
 13965  					if yyn85 {
 13966  						r.EncodeNil()
 13967  					} else {
 13968  						if z.EncBasicHandle().TimeBuiltin() {
 13969  							r.EncodeTime(x.AnonInTestStrucIntf.T)
 13970  						} else if yyxt399 := z.Extension(x.AnonInTestStrucIntf.T); yyxt399 != nil {
 13971  							z.EncExtension(x.AnonInTestStrucIntf.T, yyxt399)
 13972  						} else if z.EncBinary() {
 13973  							z.EncBinaryMarshal(x.AnonInTestStrucIntf.T)
 13974  						} else if !z.EncBinary() && z.IsJSONHandle() {
 13975  							z.EncJSONMarshal(x.AnonInTestStrucIntf.T)
 13976  						} else {
 13977  							z.EncFallback(x.AnonInTestStrucIntf.T)
 13978  						}
 13979  					}
 13980  				}
 13981  				if yyq2[83] {
 13982  					z.EncWriteMapElemKey()
 13983  					if z.IsJSONHandle() {
 13984  						z.EncWr().WriteStr("\"Tptr\"")
 13985  					} else {
 13986  						r.EncodeString(`Tptr`)
 13987  					}
 13988  					z.EncWriteMapElemValue()
 13989  					if yyn86 {
 13990  						r.EncodeNil()
 13991  					} else {
 13992  						yy400 := *x.AnonInTestStrucIntf.Tptr
 13993  						if z.EncBasicHandle().TimeBuiltin() {
 13994  							r.EncodeTime(yy400)
 13995  						} else if yyxt401 := z.Extension(yy400); yyxt401 != nil {
 13996  							z.EncExtension(yy400, yyxt401)
 13997  						} else if z.EncBinary() {
 13998  							z.EncBinaryMarshal(yy400)
 13999  						} else if !z.EncBinary() && z.IsJSONHandle() {
 14000  							z.EncJSONMarshal(yy400)
 14001  						} else {
 14002  							z.EncFallback(yy400)
 14003  						}
 14004  					}
 14005  				}
 14006  				if yyq2[84] {
 14007  					z.EncWriteMapElemKey()
 14008  					if z.IsJSONHandle() {
 14009  						z.EncWr().WriteStr("\"Msu\"")
 14010  					} else {
 14011  						r.EncodeString(`Msu`)
 14012  					}
 14013  					z.EncWriteMapElemValue()
 14014  					if x.Msu == nil {
 14015  						r.EncodeNil()
 14016  					} else {
 14017  						h.encMapwrapStringInterface((map[wrapString]interface{})(x.Msu), e)
 14018  					} // end block: if x.Msu map == nil
 14019  				}
 14020  				if yyq2[85] {
 14021  					z.EncWriteMapElemKey()
 14022  					if z.IsJSONHandle() {
 14023  						z.EncWr().WriteStr("\"Mtsptr\"")
 14024  					} else {
 14025  						r.EncodeString(`Mtsptr`)
 14026  					}
 14027  					z.EncWriteMapElemValue()
 14028  					if x.Mtsptr == nil {
 14029  						r.EncodeNil()
 14030  					} else {
 14031  						h.encMapstringPtrtoTestStrucFlex((map[string]*TestStrucFlex)(x.Mtsptr), e)
 14032  					} // end block: if x.Mtsptr map == nil
 14033  				}
 14034  				if yyq2[86] {
 14035  					z.EncWriteMapElemKey()
 14036  					if z.IsJSONHandle() {
 14037  						z.EncWr().WriteStr("\"Mts\"")
 14038  					} else {
 14039  						r.EncodeString(`Mts`)
 14040  					}
 14041  					z.EncWriteMapElemValue()
 14042  					if x.Mts == nil {
 14043  						r.EncodeNil()
 14044  					} else {
 14045  						h.encMapstringTestStrucFlex((map[string]TestStrucFlex)(x.Mts), e)
 14046  					} // end block: if x.Mts map == nil
 14047  				}
 14048  				if yyq2[87] {
 14049  					z.EncWriteMapElemKey()
 14050  					if z.IsJSONHandle() {
 14051  						z.EncWr().WriteStr("\"Its\"")
 14052  					} else {
 14053  						r.EncodeString(`Its`)
 14054  					}
 14055  					z.EncWriteMapElemValue()
 14056  					if x.Its == nil {
 14057  						r.EncodeNil()
 14058  					} else {
 14059  						h.encSlicePtrtoTestStrucFlex(([]*TestStrucFlex)(x.Its), e)
 14060  					} // end block: if x.Its slice == nil
 14061  				}
 14062  				if yyq2[88] {
 14063  					z.EncWriteMapElemKey()
 14064  					if z.IsJSONHandle() {
 14065  						z.EncWr().WriteStr("\"Nteststruc\"")
 14066  					} else {
 14067  						r.EncodeString(`Nteststruc`)
 14068  					}
 14069  					z.EncWriteMapElemValue()
 14070  					if yyn91 {
 14071  						r.EncodeNil()
 14072  					} else {
 14073  						if yyxt406 := z.Extension(x.Nteststruc); yyxt406 != nil {
 14074  							z.EncExtension(x.Nteststruc, yyxt406)
 14075  						} else {
 14076  							x.Nteststruc.CodecEncodeSelf(e)
 14077  						}
 14078  					}
 14079  				}
 14080  				if yyq2[89] {
 14081  					z.EncWriteMapElemKey()
 14082  					if z.IsJSONHandle() {
 14083  						z.EncWr().WriteStr("\"MarJ\"")
 14084  					} else {
 14085  						r.EncodeString(`MarJ`)
 14086  					}
 14087  					z.EncWriteMapElemValue()
 14088  					if yyxt407 := z.Extension(x.MarJ); yyxt407 != nil {
 14089  						z.EncExtension(x.MarJ, yyxt407)
 14090  					} else {
 14091  						x.MarJ.CodecEncodeSelf(e)
 14092  					}
 14093  				}
 14094  				if yyq2[90] {
 14095  					z.EncWriteMapElemKey()
 14096  					if z.IsJSONHandle() {
 14097  						z.EncWr().WriteStr("\"MarT\"")
 14098  					} else {
 14099  						r.EncodeString(`MarT`)
 14100  					}
 14101  					z.EncWriteMapElemValue()
 14102  					if yyxt408 := z.Extension(x.MarT); yyxt408 != nil {
 14103  						z.EncExtension(x.MarT, yyxt408)
 14104  					} else {
 14105  						x.MarT.CodecEncodeSelf(e)
 14106  					}
 14107  				}
 14108  				if yyq2[91] {
 14109  					z.EncWriteMapElemKey()
 14110  					if z.IsJSONHandle() {
 14111  						z.EncWr().WriteStr("\"MarB\"")
 14112  					} else {
 14113  						r.EncodeString(`MarB`)
 14114  					}
 14115  					z.EncWriteMapElemValue()
 14116  					if yyxt409 := z.Extension(x.MarB); yyxt409 != nil {
 14117  						z.EncExtension(x.MarB, yyxt409)
 14118  					} else {
 14119  						x.MarB.CodecEncodeSelf(e)
 14120  					}
 14121  				}
 14122  				if yyq2[92] {
 14123  					z.EncWriteMapElemKey()
 14124  					if z.IsJSONHandle() {
 14125  						z.EncWr().WriteStr("\"XuintToBytes\"")
 14126  					} else {
 14127  						r.EncodeString(`XuintToBytes`)
 14128  					}
 14129  					z.EncWriteMapElemValue()
 14130  					if yyxt410 := z.Extension(x.XuintToBytes); yyxt410 != nil {
 14131  						z.EncExtension(x.XuintToBytes, yyxt410)
 14132  					} else {
 14133  						x.XuintToBytes.CodecEncodeSelf(e)
 14134  					}
 14135  				}
 14136  				if yyq2[93] {
 14137  					z.EncWriteMapElemKey()
 14138  					if z.IsJSONHandle() {
 14139  						z.EncWr().WriteStr("\"Cmplx64\"")
 14140  					} else {
 14141  						r.EncodeString(`Cmplx64`)
 14142  					}
 14143  					z.EncWriteMapElemValue()
 14144  					z.EncEncodeComplex64(complex64(x.Cmplx64))
 14145  				}
 14146  				if yyq2[94] {
 14147  					z.EncWriteMapElemKey()
 14148  					if z.IsJSONHandle() {
 14149  						z.EncWr().WriteStr("\"Cmplx128\"")
 14150  					} else {
 14151  						r.EncodeString(`Cmplx128`)
 14152  					}
 14153  					z.EncWriteMapElemValue()
 14154  					z.EncEncodeComplex128(complex128(x.Cmplx128))
 14155  				}
 14156  			}
 14157  			z.EncWriteMapEnd()
 14158  		}
 14159  	}
 14160  }
 14161  
 14162  func (x *TestStrucFlex) CodecDecodeSelf(d *Decoder) {
 14163  	var h codecSelfer19780
 14164  	z, r := GenHelper().Decoder(d)
 14165  	_, _, _ = h, z, r
 14166  	yyct2 := r.ContainerType()
 14167  	if yyct2 == codecSelferValueTypeNil19780 {
 14168  		*(x) = TestStrucFlex{}
 14169  	} else if yyct2 == codecSelferValueTypeMap19780 {
 14170  		yyl2 := z.DecReadMapStart()
 14171  		if yyl2 == 0 {
 14172  		} else {
 14173  			x.codecDecodeSelfFromMap(yyl2, d)
 14174  		}
 14175  		z.DecReadMapEnd()
 14176  	} else if yyct2 == codecSelferValueTypeArray19780 {
 14177  		yyl2 := z.DecReadArrayStart()
 14178  		if yyl2 != 0 {
 14179  			x.codecDecodeSelfFromArray(yyl2, d)
 14180  		}
 14181  		z.DecReadArrayEnd()
 14182  	} else {
 14183  		panic(errCodecSelferOnlyMapOrArrayEncodeToStruct19780)
 14184  	}
 14185  }
 14186  
 14187  func (x *TestStrucFlex) codecDecodeSelfFromMap(l int, d *Decoder) {
 14188  	var h codecSelfer19780
 14189  	z, r := GenHelper().Decoder(d)
 14190  	_, _, _ = h, z, r
 14191  	var yyhl3 bool = l >= 0
 14192  	for yyj3 := 0; z.DecContainerNext(yyj3, l, yyhl3); yyj3++ {
 14193  		z.DecReadMapElemKey()
 14194  		yys3 := r.DecodeStringAsBytes()
 14195  		z.DecReadMapElemValue()
 14196  		switch string(yys3) {
 14197  		case "S":
 14198  			x.TestStrucCommon.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 14199  		case "I64":
 14200  			x.TestStrucCommon.I64 = (int64)(r.DecodeInt64())
 14201  		case "I32":
 14202  			x.TestStrucCommon.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
 14203  		case "I16":
 14204  			x.TestStrucCommon.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 14205  		case "I8":
 14206  			x.TestStrucCommon.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
 14207  		case "I64n":
 14208  			x.TestStrucCommon.I64n = (int64)(r.DecodeInt64())
 14209  		case "I32n":
 14210  			x.TestStrucCommon.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
 14211  		case "I16n":
 14212  			x.TestStrucCommon.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 14213  		case "I8n":
 14214  			x.TestStrucCommon.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
 14215  		case "Ui64":
 14216  			x.TestStrucCommon.Ui64 = (uint64)(r.DecodeUint64())
 14217  		case "Ui32":
 14218  			x.TestStrucCommon.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
 14219  		case "Ui16":
 14220  			x.TestStrucCommon.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
 14221  		case "Ui8":
 14222  			x.TestStrucCommon.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 14223  		case "F64":
 14224  			x.TestStrucCommon.F64 = (float64)(r.DecodeFloat64())
 14225  		case "F32":
 14226  			x.TestStrucCommon.F32 = (float32)(z.DecDecodeFloat32())
 14227  		case "B":
 14228  			x.TestStrucCommon.B = (bool)(r.DecodeBool())
 14229  		case "By":
 14230  			x.TestStrucCommon.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 14231  		case "Sslice":
 14232  			z.F.DecSliceStringX(&x.TestStrucCommon.Sslice, d)
 14233  		case "I64slice":
 14234  			z.F.DecSliceInt64X(&x.TestStrucCommon.I64slice, d)
 14235  		case "I32slice":
 14236  			z.F.DecSliceInt32X(&x.TestStrucCommon.I32slice, d)
 14237  		case "Ui64slice":
 14238  			z.F.DecSliceUint64X(&x.TestStrucCommon.Ui64slice, d)
 14239  		case "Ui8slice":
 14240  			x.TestStrucCommon.Ui8slice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Ui8slice))
 14241  		case "Bslice":
 14242  			z.F.DecSliceBoolX(&x.TestStrucCommon.Bslice, d)
 14243  		case "Byslice":
 14244  			x.TestStrucCommon.Byslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Byslice))
 14245  		case "BytesSlice":
 14246  			z.F.DecSliceBytesX(&x.TestStrucCommon.BytesSlice, d)
 14247  		case "Iptrslice":
 14248  			h.decSlicePtrtoint64((*[]*int64)(&x.TestStrucCommon.Iptrslice), d)
 14249  		case "WrapSliceInt64":
 14250  			if yyxt40 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt40 != nil {
 14251  				z.DecExtension(&x.TestStrucCommon.WrapSliceInt64, yyxt40)
 14252  			} else {
 14253  				x.TestStrucCommon.WrapSliceInt64.CodecDecodeSelf(d)
 14254  			}
 14255  		case "WrapSliceString":
 14256  			if yyxt42 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt42 != nil {
 14257  				z.DecExtension(&x.TestStrucCommon.WrapSliceString, yyxt42)
 14258  			} else {
 14259  				x.TestStrucCommon.WrapSliceString.CodecDecodeSelf(d)
 14260  			}
 14261  		case "Msint":
 14262  			z.F.DecMapStringIntX(&x.TestStrucCommon.Msint, d)
 14263  		case "Msbytes":
 14264  			z.F.DecMapStringBytesX(&x.TestStrucCommon.Msbytes, d)
 14265  		case "Simplef":
 14266  			if yyxt48 := z.Extension(x.TestStrucCommon.Simplef); yyxt48 != nil {
 14267  				z.DecExtension(&x.TestStrucCommon.Simplef, yyxt48)
 14268  			} else {
 14269  				x.TestStrucCommon.Simplef.CodecDecodeSelf(d)
 14270  			}
 14271  		case "SstrUi64T":
 14272  			h.decSlicestringUint64T((*[]stringUint64T)(&x.TestStrucCommon.SstrUi64T), d)
 14273  		case "MstrUi64T":
 14274  			h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.TestStrucCommon.MstrUi64T), d)
 14275  		case "AS":
 14276  			x.TestStrucCommon.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 14277  		case "AI64":
 14278  			x.TestStrucCommon.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
 14279  		case "AI16":
 14280  			x.TestStrucCommon.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 14281  		case "AUi64":
 14282  			x.TestStrucCommon.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
 14283  		case "ASslice":
 14284  			z.F.DecSliceStringX(&x.TestStrucCommon.AnonInTestStruc.ASslice, d)
 14285  		case "AI64slice":
 14286  			z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice, d)
 14287  		case "AUi64slice":
 14288  			z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64slice, d)
 14289  		case "AF64slice":
 14290  			z.F.DecSliceFloat64X(&x.TestStrucCommon.AnonInTestStruc.AF64slice, d)
 14291  		case "AF32slice":
 14292  			z.F.DecSliceFloat32X(&x.TestStrucCommon.AnonInTestStruc.AF32slice, d)
 14293  		case "AMSS":
 14294  			z.F.DecMapStringStringX(&x.TestStrucCommon.AnonInTestStruc.AMSS, d)
 14295  		case "AMSU64":
 14296  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64, d)
 14297  		case "AI64arr8":
 14298  			h.decArray8int64((*[8]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr8), d)
 14299  		case "AI64arr0":
 14300  			h.decArray0int64((*[0]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr0), d)
 14301  		case "AI64slice0":
 14302  			z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice0, d)
 14303  		case "AUi64sliceN":
 14304  			z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, d)
 14305  		case "AMSU64N":
 14306  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64N, d)
 14307  		case "AMSU64E":
 14308  			z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64E, d)
 14309  		case "NotAnon":
 14310  			if yyxt84 := z.Extension(x.TestStrucCommon.NotAnon); yyxt84 != nil {
 14311  				z.DecExtension(&x.TestStrucCommon.NotAnon, yyxt84)
 14312  			} else {
 14313  				x.TestStrucCommon.NotAnon.CodecDecodeSelf(d)
 14314  			}
 14315  		case "P":
 14316  			if r.TryNil() {
 14317  				if x.TestStrucCommon.AnonInTestStrucSlim != nil && x.TestStrucCommon.AnonInTestStrucSlim.P != nil { // remove the if-true
 14318  					x.TestStrucCommon.AnonInTestStrucSlim.P = nil
 14319  				}
 14320  			} else {
 14321  				if x.TestStrucCommon.AnonInTestStrucSlim == nil {
 14322  					x.TestStrucCommon.AnonInTestStrucSlim = new(AnonInTestStrucSlim)
 14323  				}
 14324  				if x.TestStrucCommon.AnonInTestStrucSlim.P == nil {
 14325  					x.TestStrucCommon.AnonInTestStrucSlim.P = new(string)
 14326  				}
 14327  				*x.TestStrucCommon.AnonInTestStrucSlim.P = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 14328  			}
 14329  		case "NotAnonSlim":
 14330  			if r.TryNil() {
 14331  				if x.TestStrucCommon.NotAnonSlim != nil { // remove the if-true
 14332  					x.TestStrucCommon.NotAnonSlim = nil
 14333  				}
 14334  			} else {
 14335  				if x.TestStrucCommon.NotAnonSlim == nil {
 14336  					x.TestStrucCommon.NotAnonSlim = new(AnonInTestStrucSlim)
 14337  				}
 14338  				if yyxt88 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt88 != nil {
 14339  					z.DecExtension(x.TestStrucCommon.NotAnonSlim, yyxt88)
 14340  				} else {
 14341  					x.TestStrucCommon.NotAnonSlim.CodecDecodeSelf(d)
 14342  				}
 14343  			}
 14344  		case "Nmap":
 14345  			z.F.DecMapStringBoolX(&x.TestStrucCommon.Nmap, d)
 14346  		case "Nslice":
 14347  			x.TestStrucCommon.Nslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Nslice))
 14348  		case "Nint64":
 14349  			if r.TryNil() {
 14350  				if x.TestStrucCommon.Nint64 != nil { // remove the if-true
 14351  					x.TestStrucCommon.Nint64 = nil
 14352  				}
 14353  			} else {
 14354  				if x.TestStrucCommon.Nint64 == nil {
 14355  					x.TestStrucCommon.Nint64 = new(int64)
 14356  				}
 14357  				*x.TestStrucCommon.Nint64 = (int64)(r.DecodeInt64())
 14358  			}
 14359  		case "Chstr":
 14360  			h.decChanstring((*chan string)(&x.Chstr), d)
 14361  		case "Mis":
 14362  			z.F.DecMapIntStringX(&x.Mis, d)
 14363  		case "Mbu64":
 14364  			h.decMapboolONaHEdLDOQQHWfI((*map[bool]struct{})(&x.Mbu64), d)
 14365  		case "Mu8e":
 14366  			h.decMapuint8ONaHEdLDOQQHWfI((*map[uint8]struct{})(&x.Mu8e), d)
 14367  		case "Mu8u64":
 14368  			h.decMapuint8stringUint64T((*map[uint8]stringUint64T)(&x.Mu8u64), d)
 14369  		case "Msp2ss":
 14370  			h.decMapPtrtostringSlicestring((*map[*string][]string)(&x.Msp2ss), d)
 14371  		case "Mip2ss":
 14372  			h.decMapPtrtouint64Slicestring((*map[*uint64][]string)(&x.Mip2ss), d)
 14373  		case "Ms2misu":
 14374  			h.decMapstringMapuint64stringUint64T((*map[string]map[uint64]stringUint64T)(&x.Ms2misu), d)
 14375  		case "Miwu64s":
 14376  			h.decMapintwrapUint64Slice((*map[int]wrapUint64Slice)(&x.Miwu64s), d)
 14377  		case "Mfwss":
 14378  			h.decMapfloat64wrapStringSlice((*map[float64]wrapStringSlice)(&x.Mfwss), d)
 14379  		case "Mf32wss":
 14380  			h.decMapfloat32wrapStringSlice((*map[float32]wrapStringSlice)(&x.Mf32wss), d)
 14381  		case "Mui2wss":
 14382  			h.decMapuint64wrapStringSlice((*map[uint64]wrapStringSlice)(&x.Mui2wss), d)
 14383  		case "Msu2wss":
 14384  			h.decMapstringUint64TwrapStringSlice((*map[stringUint64T]wrapStringSlice)(&x.Msu2wss), d)
 14385  		case "Ci64":
 14386  			if yyxt122 := z.Extension(x.Ci64); yyxt122 != nil {
 14387  				z.DecExtension(&x.Ci64, yyxt122)
 14388  			} else {
 14389  				x.Ci64.CodecDecodeSelf(d)
 14390  			}
 14391  		case "Swrapbytes":
 14392  			h.decSlicewrapBytes((*[]wrapBytes)(&x.Swrapbytes), d)
 14393  		case "Swrapuint8":
 14394  			h.decSlicewrapUint8((*[]wrapUint8)(&x.Swrapuint8), d)
 14395  		case "ArrStrUi64T":
 14396  			h.decArray4stringUint64T((*[4]stringUint64T)(&x.ArrStrUi64T), d)
 14397  		case "Ui64array":
 14398  			h.decArray4uint64((*[4]uint64)(&x.Ui64array), d)
 14399  		case "Ui64slicearray":
 14400  			h.decSlicePtrtoArray4uint64((*[]*[4]uint64)(&x.Ui64slicearray), d)
 14401  		case "SintfAarray":
 14402  			z.F.DecSliceIntfX(&x.SintfAarray, d)
 14403  		case "MstrUi64TSelf":
 14404  			h.decMapstringUint64TPtrtostringUint64T((*map[stringUint64T]*stringUint64T)(&x.MstrUi64TSelf), d)
 14405  		case "Ttime":
 14406  			if z.DecBasicHandle().TimeBuiltin() {
 14407  				x.Ttime = r.DecodeTime()
 14408  			} else if yyxt138 := z.Extension(x.Ttime); yyxt138 != nil {
 14409  				z.DecExtension(&x.Ttime, yyxt138)
 14410  			} else if z.DecBinary() {
 14411  				z.DecBinaryUnmarshal(&x.Ttime)
 14412  			} else if !z.DecBinary() && z.IsJSONHandle() {
 14413  				z.DecJSONUnmarshal(&x.Ttime)
 14414  			} else {
 14415  				z.DecFallback(&x.Ttime, false)
 14416  			}
 14417  		case "Ttimeptr":
 14418  			if r.TryNil() {
 14419  				if x.Ttimeptr != nil { // remove the if-true
 14420  					x.Ttimeptr = nil
 14421  				}
 14422  			} else {
 14423  				if x.Ttimeptr == nil {
 14424  					x.Ttimeptr = new(time.Time)
 14425  				}
 14426  				if z.DecBasicHandle().TimeBuiltin() {
 14427  					*x.Ttimeptr = r.DecodeTime()
 14428  				} else if yyxt140 := z.Extension(x.Ttimeptr); yyxt140 != nil {
 14429  					z.DecExtension(x.Ttimeptr, yyxt140)
 14430  				} else if z.DecBinary() {
 14431  					z.DecBinaryUnmarshal(x.Ttimeptr)
 14432  				} else if !z.DecBinary() && z.IsJSONHandle() {
 14433  					z.DecJSONUnmarshal(x.Ttimeptr)
 14434  				} else {
 14435  					z.DecFallback(x.Ttimeptr, false)
 14436  				}
 14437  			}
 14438  		case "Islice":
 14439  			if r.TryNil() {
 14440  				if x.AnonInTestStrucIntf != nil { // remove the if-true
 14441  					x.AnonInTestStrucIntf.Islice = nil
 14442  				}
 14443  			} else {
 14444  				if x.AnonInTestStrucIntf == nil {
 14445  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 14446  				}
 14447  				z.F.DecSliceIntfX(&x.AnonInTestStrucIntf.Islice, d)
 14448  			}
 14449  		case "Ms":
 14450  			if r.TryNil() {
 14451  				if x.AnonInTestStrucIntf != nil { // remove the if-true
 14452  					x.AnonInTestStrucIntf.Ms = nil
 14453  				}
 14454  			} else {
 14455  				if x.AnonInTestStrucIntf == nil {
 14456  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 14457  				}
 14458  				z.F.DecMapStringIntfX(&x.AnonInTestStrucIntf.Ms, d)
 14459  			}
 14460  		case "Nintf":
 14461  			if r.TryNil() {
 14462  				if x.AnonInTestStrucIntf != nil { // remove the if-true
 14463  					x.AnonInTestStrucIntf.Nintf = nil
 14464  				}
 14465  			} else {
 14466  				if x.AnonInTestStrucIntf == nil {
 14467  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 14468  				}
 14469  				z.DecFallback(&x.AnonInTestStrucIntf.Nintf, true)
 14470  			}
 14471  		case "T":
 14472  			if r.TryNil() {
 14473  				if x.AnonInTestStrucIntf != nil { // remove the if-true
 14474  					x.AnonInTestStrucIntf.T = time.Time{}
 14475  				}
 14476  			} else {
 14477  				if x.AnonInTestStrucIntf == nil {
 14478  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 14479  				}
 14480  				if z.DecBasicHandle().TimeBuiltin() {
 14481  					x.AnonInTestStrucIntf.T = r.DecodeTime()
 14482  				} else if yyxt148 := z.Extension(x.AnonInTestStrucIntf.T); yyxt148 != nil {
 14483  					z.DecExtension(&x.AnonInTestStrucIntf.T, yyxt148)
 14484  				} else if z.DecBinary() {
 14485  					z.DecBinaryUnmarshal(&x.AnonInTestStrucIntf.T)
 14486  				} else if !z.DecBinary() && z.IsJSONHandle() {
 14487  					z.DecJSONUnmarshal(&x.AnonInTestStrucIntf.T)
 14488  				} else {
 14489  					z.DecFallback(&x.AnonInTestStrucIntf.T, false)
 14490  				}
 14491  			}
 14492  		case "Tptr":
 14493  			if r.TryNil() {
 14494  				if x.AnonInTestStrucIntf != nil && x.AnonInTestStrucIntf.Tptr != nil { // remove the if-true
 14495  					x.AnonInTestStrucIntf.Tptr = nil
 14496  				}
 14497  			} else {
 14498  				if x.AnonInTestStrucIntf == nil {
 14499  					x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 14500  				}
 14501  				if x.AnonInTestStrucIntf.Tptr == nil {
 14502  					x.AnonInTestStrucIntf.Tptr = new(time.Time)
 14503  				}
 14504  				if z.DecBasicHandle().TimeBuiltin() {
 14505  					*x.AnonInTestStrucIntf.Tptr = r.DecodeTime()
 14506  				} else if yyxt150 := z.Extension(x.AnonInTestStrucIntf.Tptr); yyxt150 != nil {
 14507  					z.DecExtension(x.AnonInTestStrucIntf.Tptr, yyxt150)
 14508  				} else if z.DecBinary() {
 14509  					z.DecBinaryUnmarshal(x.AnonInTestStrucIntf.Tptr)
 14510  				} else if !z.DecBinary() && z.IsJSONHandle() {
 14511  					z.DecJSONUnmarshal(x.AnonInTestStrucIntf.Tptr)
 14512  				} else {
 14513  					z.DecFallback(x.AnonInTestStrucIntf.Tptr, false)
 14514  				}
 14515  			}
 14516  		case "Msu":
 14517  			h.decMapwrapStringInterface((*map[wrapString]interface{})(&x.Msu), d)
 14518  		case "Mtsptr":
 14519  			h.decMapstringPtrtoTestStrucFlex((*map[string]*TestStrucFlex)(&x.Mtsptr), d)
 14520  		case "Mts":
 14521  			h.decMapstringTestStrucFlex((*map[string]TestStrucFlex)(&x.Mts), d)
 14522  		case "Its":
 14523  			h.decSlicePtrtoTestStrucFlex((*[]*TestStrucFlex)(&x.Its), d)
 14524  		case "Nteststruc":
 14525  			if r.TryNil() {
 14526  				if x.Nteststruc != nil { // remove the if-true
 14527  					x.Nteststruc = nil
 14528  				}
 14529  			} else {
 14530  				if x.Nteststruc == nil {
 14531  					x.Nteststruc = new(TestStrucFlex)
 14532  				}
 14533  				if yyxt160 := z.Extension(x.Nteststruc); yyxt160 != nil {
 14534  					z.DecExtension(x.Nteststruc, yyxt160)
 14535  				} else {
 14536  					x.Nteststruc.CodecDecodeSelf(d)
 14537  				}
 14538  			}
 14539  		case "MarJ":
 14540  			if yyxt162 := z.Extension(x.MarJ); yyxt162 != nil {
 14541  				z.DecExtension(&x.MarJ, yyxt162)
 14542  			} else {
 14543  				x.MarJ.CodecDecodeSelf(d)
 14544  			}
 14545  		case "MarT":
 14546  			if yyxt164 := z.Extension(x.MarT); yyxt164 != nil {
 14547  				z.DecExtension(&x.MarT, yyxt164)
 14548  			} else {
 14549  				x.MarT.CodecDecodeSelf(d)
 14550  			}
 14551  		case "MarB":
 14552  			if yyxt166 := z.Extension(x.MarB); yyxt166 != nil {
 14553  				z.DecExtension(&x.MarB, yyxt166)
 14554  			} else {
 14555  				x.MarB.CodecDecodeSelf(d)
 14556  			}
 14557  		case "XuintToBytes":
 14558  			if yyxt168 := z.Extension(x.XuintToBytes); yyxt168 != nil {
 14559  				z.DecExtension(&x.XuintToBytes, yyxt168)
 14560  			} else {
 14561  				x.XuintToBytes.CodecDecodeSelf(d)
 14562  			}
 14563  		case "Cmplx64":
 14564  			x.Cmplx64 = (complex64)(complex(z.DecDecodeFloat32(), 0))
 14565  		case "Cmplx128":
 14566  			x.Cmplx128 = (complex128)(complex(r.DecodeFloat64(), 0))
 14567  		default:
 14568  			z.DecStructFieldNotFound(-1, string(yys3))
 14569  		} // end switch yys3
 14570  	} // end for yyj3
 14571  }
 14572  
 14573  func (x *TestStrucFlex) codecDecodeSelfFromArray(l int, d *Decoder) {
 14574  	var h codecSelfer19780
 14575  	z, r := GenHelper().Decoder(d)
 14576  	_, _, _ = h, z, r
 14577  	var yyj171 int
 14578  	var yyb171 bool
 14579  	var yyhl171 bool = l >= 0
 14580  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14581  	if yyb171 {
 14582  		z.DecReadArrayEnd()
 14583  		return
 14584  	}
 14585  	z.DecReadArrayElem()
 14586  	x.TestStrucCommon.S = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 14587  	yyj171++
 14588  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14589  	if yyb171 {
 14590  		z.DecReadArrayEnd()
 14591  		return
 14592  	}
 14593  	z.DecReadArrayElem()
 14594  	x.TestStrucCommon.I64 = (int64)(r.DecodeInt64())
 14595  	yyj171++
 14596  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14597  	if yyb171 {
 14598  		z.DecReadArrayEnd()
 14599  		return
 14600  	}
 14601  	z.DecReadArrayElem()
 14602  	x.TestStrucCommon.I32 = (int32)(z.C.IntV(r.DecodeInt64(), 32))
 14603  	yyj171++
 14604  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14605  	if yyb171 {
 14606  		z.DecReadArrayEnd()
 14607  		return
 14608  	}
 14609  	z.DecReadArrayElem()
 14610  	x.TestStrucCommon.I16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 14611  	yyj171++
 14612  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14613  	if yyb171 {
 14614  		z.DecReadArrayEnd()
 14615  		return
 14616  	}
 14617  	z.DecReadArrayElem()
 14618  	x.TestStrucCommon.I8 = (int8)(z.C.IntV(r.DecodeInt64(), 8))
 14619  	yyj171++
 14620  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14621  	if yyb171 {
 14622  		z.DecReadArrayEnd()
 14623  		return
 14624  	}
 14625  	z.DecReadArrayElem()
 14626  	x.TestStrucCommon.I64n = (int64)(r.DecodeInt64())
 14627  	yyj171++
 14628  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14629  	if yyb171 {
 14630  		z.DecReadArrayEnd()
 14631  		return
 14632  	}
 14633  	z.DecReadArrayElem()
 14634  	x.TestStrucCommon.I32n = (int32)(z.C.IntV(r.DecodeInt64(), 32))
 14635  	yyj171++
 14636  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14637  	if yyb171 {
 14638  		z.DecReadArrayEnd()
 14639  		return
 14640  	}
 14641  	z.DecReadArrayElem()
 14642  	x.TestStrucCommon.I16n = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 14643  	yyj171++
 14644  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14645  	if yyb171 {
 14646  		z.DecReadArrayEnd()
 14647  		return
 14648  	}
 14649  	z.DecReadArrayElem()
 14650  	x.TestStrucCommon.I8n = (int8)(z.C.IntV(r.DecodeInt64(), 8))
 14651  	yyj171++
 14652  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14653  	if yyb171 {
 14654  		z.DecReadArrayEnd()
 14655  		return
 14656  	}
 14657  	z.DecReadArrayElem()
 14658  	x.TestStrucCommon.Ui64 = (uint64)(r.DecodeUint64())
 14659  	yyj171++
 14660  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14661  	if yyb171 {
 14662  		z.DecReadArrayEnd()
 14663  		return
 14664  	}
 14665  	z.DecReadArrayElem()
 14666  	x.TestStrucCommon.Ui32 = (uint32)(z.C.UintV(r.DecodeUint64(), 32))
 14667  	yyj171++
 14668  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14669  	if yyb171 {
 14670  		z.DecReadArrayEnd()
 14671  		return
 14672  	}
 14673  	z.DecReadArrayElem()
 14674  	x.TestStrucCommon.Ui16 = (uint16)(z.C.UintV(r.DecodeUint64(), 16))
 14675  	yyj171++
 14676  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14677  	if yyb171 {
 14678  		z.DecReadArrayEnd()
 14679  		return
 14680  	}
 14681  	z.DecReadArrayElem()
 14682  	x.TestStrucCommon.Ui8 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 14683  	yyj171++
 14684  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14685  	if yyb171 {
 14686  		z.DecReadArrayEnd()
 14687  		return
 14688  	}
 14689  	z.DecReadArrayElem()
 14690  	x.TestStrucCommon.F64 = (float64)(r.DecodeFloat64())
 14691  	yyj171++
 14692  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14693  	if yyb171 {
 14694  		z.DecReadArrayEnd()
 14695  		return
 14696  	}
 14697  	z.DecReadArrayElem()
 14698  	x.TestStrucCommon.F32 = (float32)(z.DecDecodeFloat32())
 14699  	yyj171++
 14700  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14701  	if yyb171 {
 14702  		z.DecReadArrayEnd()
 14703  		return
 14704  	}
 14705  	z.DecReadArrayElem()
 14706  	x.TestStrucCommon.B = (bool)(r.DecodeBool())
 14707  	yyj171++
 14708  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14709  	if yyb171 {
 14710  		z.DecReadArrayEnd()
 14711  		return
 14712  	}
 14713  	z.DecReadArrayElem()
 14714  	x.TestStrucCommon.By = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 14715  	yyj171++
 14716  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14717  	if yyb171 {
 14718  		z.DecReadArrayEnd()
 14719  		return
 14720  	}
 14721  	z.DecReadArrayElem()
 14722  	z.F.DecSliceStringX(&x.TestStrucCommon.Sslice, d)
 14723  	yyj171++
 14724  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14725  	if yyb171 {
 14726  		z.DecReadArrayEnd()
 14727  		return
 14728  	}
 14729  	z.DecReadArrayElem()
 14730  	z.F.DecSliceInt64X(&x.TestStrucCommon.I64slice, d)
 14731  	yyj171++
 14732  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14733  	if yyb171 {
 14734  		z.DecReadArrayEnd()
 14735  		return
 14736  	}
 14737  	z.DecReadArrayElem()
 14738  	z.F.DecSliceInt32X(&x.TestStrucCommon.I32slice, d)
 14739  	yyj171++
 14740  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14741  	if yyb171 {
 14742  		z.DecReadArrayEnd()
 14743  		return
 14744  	}
 14745  	z.DecReadArrayElem()
 14746  	z.F.DecSliceUint64X(&x.TestStrucCommon.Ui64slice, d)
 14747  	yyj171++
 14748  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14749  	if yyb171 {
 14750  		z.DecReadArrayEnd()
 14751  		return
 14752  	}
 14753  	z.DecReadArrayElem()
 14754  	x.TestStrucCommon.Ui8slice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Ui8slice))
 14755  	yyj171++
 14756  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14757  	if yyb171 {
 14758  		z.DecReadArrayEnd()
 14759  		return
 14760  	}
 14761  	z.DecReadArrayElem()
 14762  	z.F.DecSliceBoolX(&x.TestStrucCommon.Bslice, d)
 14763  	yyj171++
 14764  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14765  	if yyb171 {
 14766  		z.DecReadArrayEnd()
 14767  		return
 14768  	}
 14769  	z.DecReadArrayElem()
 14770  	x.TestStrucCommon.Byslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Byslice))
 14771  	yyj171++
 14772  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14773  	if yyb171 {
 14774  		z.DecReadArrayEnd()
 14775  		return
 14776  	}
 14777  	z.DecReadArrayElem()
 14778  	z.F.DecSliceBytesX(&x.TestStrucCommon.BytesSlice, d)
 14779  	yyj171++
 14780  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14781  	if yyb171 {
 14782  		z.DecReadArrayEnd()
 14783  		return
 14784  	}
 14785  	z.DecReadArrayElem()
 14786  	h.decSlicePtrtoint64((*[]*int64)(&x.TestStrucCommon.Iptrslice), d)
 14787  	yyj171++
 14788  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14789  	if yyb171 {
 14790  		z.DecReadArrayEnd()
 14791  		return
 14792  	}
 14793  	z.DecReadArrayElem()
 14794  	if yyxt208 := z.Extension(x.TestStrucCommon.WrapSliceInt64); yyxt208 != nil {
 14795  		z.DecExtension(&x.TestStrucCommon.WrapSliceInt64, yyxt208)
 14796  	} else {
 14797  		x.TestStrucCommon.WrapSliceInt64.CodecDecodeSelf(d)
 14798  	}
 14799  	yyj171++
 14800  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14801  	if yyb171 {
 14802  		z.DecReadArrayEnd()
 14803  		return
 14804  	}
 14805  	z.DecReadArrayElem()
 14806  	if yyxt210 := z.Extension(x.TestStrucCommon.WrapSliceString); yyxt210 != nil {
 14807  		z.DecExtension(&x.TestStrucCommon.WrapSliceString, yyxt210)
 14808  	} else {
 14809  		x.TestStrucCommon.WrapSliceString.CodecDecodeSelf(d)
 14810  	}
 14811  	yyj171++
 14812  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14813  	if yyb171 {
 14814  		z.DecReadArrayEnd()
 14815  		return
 14816  	}
 14817  	z.DecReadArrayElem()
 14818  	z.F.DecMapStringIntX(&x.TestStrucCommon.Msint, d)
 14819  	yyj171++
 14820  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14821  	if yyb171 {
 14822  		z.DecReadArrayEnd()
 14823  		return
 14824  	}
 14825  	z.DecReadArrayElem()
 14826  	z.F.DecMapStringBytesX(&x.TestStrucCommon.Msbytes, d)
 14827  	yyj171++
 14828  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14829  	if yyb171 {
 14830  		z.DecReadArrayEnd()
 14831  		return
 14832  	}
 14833  	z.DecReadArrayElem()
 14834  	if yyxt216 := z.Extension(x.TestStrucCommon.Simplef); yyxt216 != nil {
 14835  		z.DecExtension(&x.TestStrucCommon.Simplef, yyxt216)
 14836  	} else {
 14837  		x.TestStrucCommon.Simplef.CodecDecodeSelf(d)
 14838  	}
 14839  	yyj171++
 14840  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14841  	if yyb171 {
 14842  		z.DecReadArrayEnd()
 14843  		return
 14844  	}
 14845  	z.DecReadArrayElem()
 14846  	h.decSlicestringUint64T((*[]stringUint64T)(&x.TestStrucCommon.SstrUi64T), d)
 14847  	yyj171++
 14848  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14849  	if yyb171 {
 14850  		z.DecReadArrayEnd()
 14851  		return
 14852  	}
 14853  	z.DecReadArrayElem()
 14854  	h.decMapstringPtrtostringUint64T((*map[string]*stringUint64T)(&x.TestStrucCommon.MstrUi64T), d)
 14855  	yyj171++
 14856  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14857  	if yyb171 {
 14858  		z.DecReadArrayEnd()
 14859  		return
 14860  	}
 14861  	z.DecReadArrayElem()
 14862  	x.TestStrucCommon.AnonInTestStruc.AS = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 14863  	yyj171++
 14864  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14865  	if yyb171 {
 14866  		z.DecReadArrayEnd()
 14867  		return
 14868  	}
 14869  	z.DecReadArrayElem()
 14870  	x.TestStrucCommon.AnonInTestStruc.AI64 = (int64)(r.DecodeInt64())
 14871  	yyj171++
 14872  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14873  	if yyb171 {
 14874  		z.DecReadArrayEnd()
 14875  		return
 14876  	}
 14877  	z.DecReadArrayElem()
 14878  	x.TestStrucCommon.AnonInTestStruc.AI16 = (int16)(z.C.IntV(r.DecodeInt64(), 16))
 14879  	yyj171++
 14880  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14881  	if yyb171 {
 14882  		z.DecReadArrayEnd()
 14883  		return
 14884  	}
 14885  	z.DecReadArrayElem()
 14886  	x.TestStrucCommon.AnonInTestStruc.AUi64 = (uint64)(r.DecodeUint64())
 14887  	yyj171++
 14888  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14889  	if yyb171 {
 14890  		z.DecReadArrayEnd()
 14891  		return
 14892  	}
 14893  	z.DecReadArrayElem()
 14894  	z.F.DecSliceStringX(&x.TestStrucCommon.AnonInTestStruc.ASslice, d)
 14895  	yyj171++
 14896  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14897  	if yyb171 {
 14898  		z.DecReadArrayEnd()
 14899  		return
 14900  	}
 14901  	z.DecReadArrayElem()
 14902  	z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice, d)
 14903  	yyj171++
 14904  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14905  	if yyb171 {
 14906  		z.DecReadArrayEnd()
 14907  		return
 14908  	}
 14909  	z.DecReadArrayElem()
 14910  	z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64slice, d)
 14911  	yyj171++
 14912  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14913  	if yyb171 {
 14914  		z.DecReadArrayEnd()
 14915  		return
 14916  	}
 14917  	z.DecReadArrayElem()
 14918  	z.F.DecSliceFloat64X(&x.TestStrucCommon.AnonInTestStruc.AF64slice, d)
 14919  	yyj171++
 14920  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14921  	if yyb171 {
 14922  		z.DecReadArrayEnd()
 14923  		return
 14924  	}
 14925  	z.DecReadArrayElem()
 14926  	z.F.DecSliceFloat32X(&x.TestStrucCommon.AnonInTestStruc.AF32slice, d)
 14927  	yyj171++
 14928  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14929  	if yyb171 {
 14930  		z.DecReadArrayEnd()
 14931  		return
 14932  	}
 14933  	z.DecReadArrayElem()
 14934  	z.F.DecMapStringStringX(&x.TestStrucCommon.AnonInTestStruc.AMSS, d)
 14935  	yyj171++
 14936  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14937  	if yyb171 {
 14938  		z.DecReadArrayEnd()
 14939  		return
 14940  	}
 14941  	z.DecReadArrayElem()
 14942  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64, d)
 14943  	yyj171++
 14944  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14945  	if yyb171 {
 14946  		z.DecReadArrayEnd()
 14947  		return
 14948  	}
 14949  	z.DecReadArrayElem()
 14950  	h.decArray8int64((*[8]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr8), d)
 14951  	yyj171++
 14952  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14953  	if yyb171 {
 14954  		z.DecReadArrayEnd()
 14955  		return
 14956  	}
 14957  	z.DecReadArrayElem()
 14958  	h.decArray0int64((*[0]int64)(&x.TestStrucCommon.AnonInTestStruc.AI64arr0), d)
 14959  	yyj171++
 14960  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14961  	if yyb171 {
 14962  		z.DecReadArrayEnd()
 14963  		return
 14964  	}
 14965  	z.DecReadArrayElem()
 14966  	z.F.DecSliceInt64X(&x.TestStrucCommon.AnonInTestStruc.AI64slice0, d)
 14967  	yyj171++
 14968  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14969  	if yyb171 {
 14970  		z.DecReadArrayEnd()
 14971  		return
 14972  	}
 14973  	z.DecReadArrayElem()
 14974  	z.F.DecSliceUint64X(&x.TestStrucCommon.AnonInTestStruc.AUi64sliceN, d)
 14975  	yyj171++
 14976  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14977  	if yyb171 {
 14978  		z.DecReadArrayEnd()
 14979  		return
 14980  	}
 14981  	z.DecReadArrayElem()
 14982  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64N, d)
 14983  	yyj171++
 14984  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14985  	if yyb171 {
 14986  		z.DecReadArrayEnd()
 14987  		return
 14988  	}
 14989  	z.DecReadArrayElem()
 14990  	z.F.DecMapStringUint64X(&x.TestStrucCommon.AnonInTestStruc.AMSU64E, d)
 14991  	yyj171++
 14992  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 14993  	if yyb171 {
 14994  		z.DecReadArrayEnd()
 14995  		return
 14996  	}
 14997  	z.DecReadArrayElem()
 14998  	if yyxt252 := z.Extension(x.TestStrucCommon.NotAnon); yyxt252 != nil {
 14999  		z.DecExtension(&x.TestStrucCommon.NotAnon, yyxt252)
 15000  	} else {
 15001  		x.TestStrucCommon.NotAnon.CodecDecodeSelf(d)
 15002  	}
 15003  	yyj171++
 15004  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15005  	if yyb171 {
 15006  		z.DecReadArrayEnd()
 15007  		return
 15008  	}
 15009  	z.DecReadArrayElem()
 15010  	if r.TryNil() {
 15011  		if x.TestStrucCommon.AnonInTestStrucSlim != nil && x.TestStrucCommon.AnonInTestStrucSlim.P != nil { // remove the if-true
 15012  			x.TestStrucCommon.AnonInTestStrucSlim.P = nil
 15013  		}
 15014  	} else {
 15015  		if x.TestStrucCommon.AnonInTestStrucSlim == nil {
 15016  			x.TestStrucCommon.AnonInTestStrucSlim = new(AnonInTestStrucSlim)
 15017  		}
 15018  		if x.TestStrucCommon.AnonInTestStrucSlim.P == nil {
 15019  			x.TestStrucCommon.AnonInTestStrucSlim.P = new(string)
 15020  		}
 15021  		*x.TestStrucCommon.AnonInTestStrucSlim.P = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 15022  	}
 15023  	yyj171++
 15024  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15025  	if yyb171 {
 15026  		z.DecReadArrayEnd()
 15027  		return
 15028  	}
 15029  	z.DecReadArrayElem()
 15030  	if r.TryNil() {
 15031  		if x.TestStrucCommon.NotAnonSlim != nil { // remove the if-true
 15032  			x.TestStrucCommon.NotAnonSlim = nil
 15033  		}
 15034  	} else {
 15035  		if x.TestStrucCommon.NotAnonSlim == nil {
 15036  			x.TestStrucCommon.NotAnonSlim = new(AnonInTestStrucSlim)
 15037  		}
 15038  		if yyxt256 := z.Extension(x.TestStrucCommon.NotAnonSlim); yyxt256 != nil {
 15039  			z.DecExtension(x.TestStrucCommon.NotAnonSlim, yyxt256)
 15040  		} else {
 15041  			x.TestStrucCommon.NotAnonSlim.CodecDecodeSelf(d)
 15042  		}
 15043  	}
 15044  	yyj171++
 15045  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15046  	if yyb171 {
 15047  		z.DecReadArrayEnd()
 15048  		return
 15049  	}
 15050  	z.DecReadArrayElem()
 15051  	z.F.DecMapStringBoolX(&x.TestStrucCommon.Nmap, d)
 15052  	yyj171++
 15053  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15054  	if yyb171 {
 15055  		z.DecReadArrayEnd()
 15056  		return
 15057  	}
 15058  	z.DecReadArrayElem()
 15059  	x.TestStrucCommon.Nslice = z.DecodeBytesInto(([]byte)(x.TestStrucCommon.Nslice))
 15060  	yyj171++
 15061  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15062  	if yyb171 {
 15063  		z.DecReadArrayEnd()
 15064  		return
 15065  	}
 15066  	z.DecReadArrayElem()
 15067  	if r.TryNil() {
 15068  		if x.TestStrucCommon.Nint64 != nil { // remove the if-true
 15069  			x.TestStrucCommon.Nint64 = nil
 15070  		}
 15071  	} else {
 15072  		if x.TestStrucCommon.Nint64 == nil {
 15073  			x.TestStrucCommon.Nint64 = new(int64)
 15074  		}
 15075  		*x.TestStrucCommon.Nint64 = (int64)(r.DecodeInt64())
 15076  	}
 15077  	yyj171++
 15078  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15079  	if yyb171 {
 15080  		z.DecReadArrayEnd()
 15081  		return
 15082  	}
 15083  	z.DecReadArrayElem()
 15084  	h.decChanstring((*chan string)(&x.Chstr), d)
 15085  	yyj171++
 15086  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15087  	if yyb171 {
 15088  		z.DecReadArrayEnd()
 15089  		return
 15090  	}
 15091  	z.DecReadArrayElem()
 15092  	z.F.DecMapIntStringX(&x.Mis, d)
 15093  	yyj171++
 15094  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15095  	if yyb171 {
 15096  		z.DecReadArrayEnd()
 15097  		return
 15098  	}
 15099  	z.DecReadArrayElem()
 15100  	h.decMapboolONaHEdLDOQQHWfI((*map[bool]struct{})(&x.Mbu64), d)
 15101  	yyj171++
 15102  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15103  	if yyb171 {
 15104  		z.DecReadArrayEnd()
 15105  		return
 15106  	}
 15107  	z.DecReadArrayElem()
 15108  	h.decMapuint8ONaHEdLDOQQHWfI((*map[uint8]struct{})(&x.Mu8e), d)
 15109  	yyj171++
 15110  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15111  	if yyb171 {
 15112  		z.DecReadArrayEnd()
 15113  		return
 15114  	}
 15115  	z.DecReadArrayElem()
 15116  	h.decMapuint8stringUint64T((*map[uint8]stringUint64T)(&x.Mu8u64), d)
 15117  	yyj171++
 15118  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15119  	if yyb171 {
 15120  		z.DecReadArrayEnd()
 15121  		return
 15122  	}
 15123  	z.DecReadArrayElem()
 15124  	h.decMapPtrtostringSlicestring((*map[*string][]string)(&x.Msp2ss), d)
 15125  	yyj171++
 15126  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15127  	if yyb171 {
 15128  		z.DecReadArrayEnd()
 15129  		return
 15130  	}
 15131  	z.DecReadArrayElem()
 15132  	h.decMapPtrtouint64Slicestring((*map[*uint64][]string)(&x.Mip2ss), d)
 15133  	yyj171++
 15134  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15135  	if yyb171 {
 15136  		z.DecReadArrayEnd()
 15137  		return
 15138  	}
 15139  	z.DecReadArrayElem()
 15140  	h.decMapstringMapuint64stringUint64T((*map[string]map[uint64]stringUint64T)(&x.Ms2misu), d)
 15141  	yyj171++
 15142  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15143  	if yyb171 {
 15144  		z.DecReadArrayEnd()
 15145  		return
 15146  	}
 15147  	z.DecReadArrayElem()
 15148  	h.decMapintwrapUint64Slice((*map[int]wrapUint64Slice)(&x.Miwu64s), d)
 15149  	yyj171++
 15150  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15151  	if yyb171 {
 15152  		z.DecReadArrayEnd()
 15153  		return
 15154  	}
 15155  	z.DecReadArrayElem()
 15156  	h.decMapfloat64wrapStringSlice((*map[float64]wrapStringSlice)(&x.Mfwss), d)
 15157  	yyj171++
 15158  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15159  	if yyb171 {
 15160  		z.DecReadArrayEnd()
 15161  		return
 15162  	}
 15163  	z.DecReadArrayElem()
 15164  	h.decMapfloat32wrapStringSlice((*map[float32]wrapStringSlice)(&x.Mf32wss), d)
 15165  	yyj171++
 15166  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15167  	if yyb171 {
 15168  		z.DecReadArrayEnd()
 15169  		return
 15170  	}
 15171  	z.DecReadArrayElem()
 15172  	h.decMapuint64wrapStringSlice((*map[uint64]wrapStringSlice)(&x.Mui2wss), d)
 15173  	yyj171++
 15174  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15175  	if yyb171 {
 15176  		z.DecReadArrayEnd()
 15177  		return
 15178  	}
 15179  	z.DecReadArrayElem()
 15180  	h.decMapstringUint64TwrapStringSlice((*map[stringUint64T]wrapStringSlice)(&x.Msu2wss), d)
 15181  	yyj171++
 15182  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15183  	if yyb171 {
 15184  		z.DecReadArrayEnd()
 15185  		return
 15186  	}
 15187  	z.DecReadArrayElem()
 15188  	if yyxt290 := z.Extension(x.Ci64); yyxt290 != nil {
 15189  		z.DecExtension(&x.Ci64, yyxt290)
 15190  	} else {
 15191  		x.Ci64.CodecDecodeSelf(d)
 15192  	}
 15193  	yyj171++
 15194  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15195  	if yyb171 {
 15196  		z.DecReadArrayEnd()
 15197  		return
 15198  	}
 15199  	z.DecReadArrayElem()
 15200  	h.decSlicewrapBytes((*[]wrapBytes)(&x.Swrapbytes), d)
 15201  	yyj171++
 15202  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15203  	if yyb171 {
 15204  		z.DecReadArrayEnd()
 15205  		return
 15206  	}
 15207  	z.DecReadArrayElem()
 15208  	h.decSlicewrapUint8((*[]wrapUint8)(&x.Swrapuint8), d)
 15209  	yyj171++
 15210  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15211  	if yyb171 {
 15212  		z.DecReadArrayEnd()
 15213  		return
 15214  	}
 15215  	z.DecReadArrayElem()
 15216  	h.decArray4stringUint64T((*[4]stringUint64T)(&x.ArrStrUi64T), d)
 15217  	yyj171++
 15218  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15219  	if yyb171 {
 15220  		z.DecReadArrayEnd()
 15221  		return
 15222  	}
 15223  	z.DecReadArrayElem()
 15224  	h.decArray4uint64((*[4]uint64)(&x.Ui64array), d)
 15225  	yyj171++
 15226  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15227  	if yyb171 {
 15228  		z.DecReadArrayEnd()
 15229  		return
 15230  	}
 15231  	z.DecReadArrayElem()
 15232  	h.decSlicePtrtoArray4uint64((*[]*[4]uint64)(&x.Ui64slicearray), d)
 15233  	yyj171++
 15234  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15235  	if yyb171 {
 15236  		z.DecReadArrayEnd()
 15237  		return
 15238  	}
 15239  	z.DecReadArrayElem()
 15240  	z.F.DecSliceIntfX(&x.SintfAarray, d)
 15241  	yyj171++
 15242  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15243  	if yyb171 {
 15244  		z.DecReadArrayEnd()
 15245  		return
 15246  	}
 15247  	z.DecReadArrayElem()
 15248  	h.decMapstringUint64TPtrtostringUint64T((*map[stringUint64T]*stringUint64T)(&x.MstrUi64TSelf), d)
 15249  	yyj171++
 15250  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15251  	if yyb171 {
 15252  		z.DecReadArrayEnd()
 15253  		return
 15254  	}
 15255  	z.DecReadArrayElem()
 15256  	if z.DecBasicHandle().TimeBuiltin() {
 15257  		x.Ttime = r.DecodeTime()
 15258  	} else if yyxt306 := z.Extension(x.Ttime); yyxt306 != nil {
 15259  		z.DecExtension(&x.Ttime, yyxt306)
 15260  	} else if z.DecBinary() {
 15261  		z.DecBinaryUnmarshal(&x.Ttime)
 15262  	} else if !z.DecBinary() && z.IsJSONHandle() {
 15263  		z.DecJSONUnmarshal(&x.Ttime)
 15264  	} else {
 15265  		z.DecFallback(&x.Ttime, false)
 15266  	}
 15267  	yyj171++
 15268  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15269  	if yyb171 {
 15270  		z.DecReadArrayEnd()
 15271  		return
 15272  	}
 15273  	z.DecReadArrayElem()
 15274  	if r.TryNil() {
 15275  		if x.Ttimeptr != nil { // remove the if-true
 15276  			x.Ttimeptr = nil
 15277  		}
 15278  	} else {
 15279  		if x.Ttimeptr == nil {
 15280  			x.Ttimeptr = new(time.Time)
 15281  		}
 15282  		if z.DecBasicHandle().TimeBuiltin() {
 15283  			*x.Ttimeptr = r.DecodeTime()
 15284  		} else if yyxt308 := z.Extension(x.Ttimeptr); yyxt308 != nil {
 15285  			z.DecExtension(x.Ttimeptr, yyxt308)
 15286  		} else if z.DecBinary() {
 15287  			z.DecBinaryUnmarshal(x.Ttimeptr)
 15288  		} else if !z.DecBinary() && z.IsJSONHandle() {
 15289  			z.DecJSONUnmarshal(x.Ttimeptr)
 15290  		} else {
 15291  			z.DecFallback(x.Ttimeptr, false)
 15292  		}
 15293  	}
 15294  	yyj171++
 15295  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15296  	if yyb171 {
 15297  		z.DecReadArrayEnd()
 15298  		return
 15299  	}
 15300  	z.DecReadArrayElem()
 15301  	if r.TryNil() {
 15302  		if x.AnonInTestStrucIntf != nil { // remove the if-true
 15303  			x.AnonInTestStrucIntf.Islice = nil
 15304  		}
 15305  	} else {
 15306  		if x.AnonInTestStrucIntf == nil {
 15307  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 15308  		}
 15309  		z.F.DecSliceIntfX(&x.AnonInTestStrucIntf.Islice, d)
 15310  	}
 15311  	yyj171++
 15312  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15313  	if yyb171 {
 15314  		z.DecReadArrayEnd()
 15315  		return
 15316  	}
 15317  	z.DecReadArrayElem()
 15318  	if r.TryNil() {
 15319  		if x.AnonInTestStrucIntf != nil { // remove the if-true
 15320  			x.AnonInTestStrucIntf.Ms = nil
 15321  		}
 15322  	} else {
 15323  		if x.AnonInTestStrucIntf == nil {
 15324  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 15325  		}
 15326  		z.F.DecMapStringIntfX(&x.AnonInTestStrucIntf.Ms, d)
 15327  	}
 15328  	yyj171++
 15329  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15330  	if yyb171 {
 15331  		z.DecReadArrayEnd()
 15332  		return
 15333  	}
 15334  	z.DecReadArrayElem()
 15335  	if r.TryNil() {
 15336  		if x.AnonInTestStrucIntf != nil { // remove the if-true
 15337  			x.AnonInTestStrucIntf.Nintf = nil
 15338  		}
 15339  	} else {
 15340  		if x.AnonInTestStrucIntf == nil {
 15341  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 15342  		}
 15343  		z.DecFallback(&x.AnonInTestStrucIntf.Nintf, true)
 15344  	}
 15345  	yyj171++
 15346  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15347  	if yyb171 {
 15348  		z.DecReadArrayEnd()
 15349  		return
 15350  	}
 15351  	z.DecReadArrayElem()
 15352  	if r.TryNil() {
 15353  		if x.AnonInTestStrucIntf != nil { // remove the if-true
 15354  			x.AnonInTestStrucIntf.T = time.Time{}
 15355  		}
 15356  	} else {
 15357  		if x.AnonInTestStrucIntf == nil {
 15358  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 15359  		}
 15360  		if z.DecBasicHandle().TimeBuiltin() {
 15361  			x.AnonInTestStrucIntf.T = r.DecodeTime()
 15362  		} else if yyxt316 := z.Extension(x.AnonInTestStrucIntf.T); yyxt316 != nil {
 15363  			z.DecExtension(&x.AnonInTestStrucIntf.T, yyxt316)
 15364  		} else if z.DecBinary() {
 15365  			z.DecBinaryUnmarshal(&x.AnonInTestStrucIntf.T)
 15366  		} else if !z.DecBinary() && z.IsJSONHandle() {
 15367  			z.DecJSONUnmarshal(&x.AnonInTestStrucIntf.T)
 15368  		} else {
 15369  			z.DecFallback(&x.AnonInTestStrucIntf.T, false)
 15370  		}
 15371  	}
 15372  	yyj171++
 15373  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15374  	if yyb171 {
 15375  		z.DecReadArrayEnd()
 15376  		return
 15377  	}
 15378  	z.DecReadArrayElem()
 15379  	if r.TryNil() {
 15380  		if x.AnonInTestStrucIntf != nil && x.AnonInTestStrucIntf.Tptr != nil { // remove the if-true
 15381  			x.AnonInTestStrucIntf.Tptr = nil
 15382  		}
 15383  	} else {
 15384  		if x.AnonInTestStrucIntf == nil {
 15385  			x.AnonInTestStrucIntf = new(AnonInTestStrucIntf)
 15386  		}
 15387  		if x.AnonInTestStrucIntf.Tptr == nil {
 15388  			x.AnonInTestStrucIntf.Tptr = new(time.Time)
 15389  		}
 15390  		if z.DecBasicHandle().TimeBuiltin() {
 15391  			*x.AnonInTestStrucIntf.Tptr = r.DecodeTime()
 15392  		} else if yyxt318 := z.Extension(x.AnonInTestStrucIntf.Tptr); yyxt318 != nil {
 15393  			z.DecExtension(x.AnonInTestStrucIntf.Tptr, yyxt318)
 15394  		} else if z.DecBinary() {
 15395  			z.DecBinaryUnmarshal(x.AnonInTestStrucIntf.Tptr)
 15396  		} else if !z.DecBinary() && z.IsJSONHandle() {
 15397  			z.DecJSONUnmarshal(x.AnonInTestStrucIntf.Tptr)
 15398  		} else {
 15399  			z.DecFallback(x.AnonInTestStrucIntf.Tptr, false)
 15400  		}
 15401  	}
 15402  	yyj171++
 15403  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15404  	if yyb171 {
 15405  		z.DecReadArrayEnd()
 15406  		return
 15407  	}
 15408  	z.DecReadArrayElem()
 15409  	h.decMapwrapStringInterface((*map[wrapString]interface{})(&x.Msu), d)
 15410  	yyj171++
 15411  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15412  	if yyb171 {
 15413  		z.DecReadArrayEnd()
 15414  		return
 15415  	}
 15416  	z.DecReadArrayElem()
 15417  	h.decMapstringPtrtoTestStrucFlex((*map[string]*TestStrucFlex)(&x.Mtsptr), d)
 15418  	yyj171++
 15419  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15420  	if yyb171 {
 15421  		z.DecReadArrayEnd()
 15422  		return
 15423  	}
 15424  	z.DecReadArrayElem()
 15425  	h.decMapstringTestStrucFlex((*map[string]TestStrucFlex)(&x.Mts), d)
 15426  	yyj171++
 15427  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15428  	if yyb171 {
 15429  		z.DecReadArrayEnd()
 15430  		return
 15431  	}
 15432  	z.DecReadArrayElem()
 15433  	h.decSlicePtrtoTestStrucFlex((*[]*TestStrucFlex)(&x.Its), d)
 15434  	yyj171++
 15435  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15436  	if yyb171 {
 15437  		z.DecReadArrayEnd()
 15438  		return
 15439  	}
 15440  	z.DecReadArrayElem()
 15441  	if r.TryNil() {
 15442  		if x.Nteststruc != nil { // remove the if-true
 15443  			x.Nteststruc = nil
 15444  		}
 15445  	} else {
 15446  		if x.Nteststruc == nil {
 15447  			x.Nteststruc = new(TestStrucFlex)
 15448  		}
 15449  		if yyxt328 := z.Extension(x.Nteststruc); yyxt328 != nil {
 15450  			z.DecExtension(x.Nteststruc, yyxt328)
 15451  		} else {
 15452  			x.Nteststruc.CodecDecodeSelf(d)
 15453  		}
 15454  	}
 15455  	yyj171++
 15456  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15457  	if yyb171 {
 15458  		z.DecReadArrayEnd()
 15459  		return
 15460  	}
 15461  	z.DecReadArrayElem()
 15462  	if yyxt330 := z.Extension(x.MarJ); yyxt330 != nil {
 15463  		z.DecExtension(&x.MarJ, yyxt330)
 15464  	} else {
 15465  		x.MarJ.CodecDecodeSelf(d)
 15466  	}
 15467  	yyj171++
 15468  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15469  	if yyb171 {
 15470  		z.DecReadArrayEnd()
 15471  		return
 15472  	}
 15473  	z.DecReadArrayElem()
 15474  	if yyxt332 := z.Extension(x.MarT); yyxt332 != nil {
 15475  		z.DecExtension(&x.MarT, yyxt332)
 15476  	} else {
 15477  		x.MarT.CodecDecodeSelf(d)
 15478  	}
 15479  	yyj171++
 15480  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15481  	if yyb171 {
 15482  		z.DecReadArrayEnd()
 15483  		return
 15484  	}
 15485  	z.DecReadArrayElem()
 15486  	if yyxt334 := z.Extension(x.MarB); yyxt334 != nil {
 15487  		z.DecExtension(&x.MarB, yyxt334)
 15488  	} else {
 15489  		x.MarB.CodecDecodeSelf(d)
 15490  	}
 15491  	yyj171++
 15492  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15493  	if yyb171 {
 15494  		z.DecReadArrayEnd()
 15495  		return
 15496  	}
 15497  	z.DecReadArrayElem()
 15498  	if yyxt336 := z.Extension(x.XuintToBytes); yyxt336 != nil {
 15499  		z.DecExtension(&x.XuintToBytes, yyxt336)
 15500  	} else {
 15501  		x.XuintToBytes.CodecDecodeSelf(d)
 15502  	}
 15503  	yyj171++
 15504  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15505  	if yyb171 {
 15506  		z.DecReadArrayEnd()
 15507  		return
 15508  	}
 15509  	z.DecReadArrayElem()
 15510  	x.Cmplx64 = (complex64)(complex(z.DecDecodeFloat32(), 0))
 15511  	yyj171++
 15512  	yyb171 = !z.DecContainerNext(yyj171, l, yyhl171)
 15513  	if yyb171 {
 15514  		z.DecReadArrayEnd()
 15515  		return
 15516  	}
 15517  	z.DecReadArrayElem()
 15518  	x.Cmplx128 = (complex128)(complex(r.DecodeFloat64(), 0))
 15519  	yyj171++
 15520  	for ; z.DecContainerNext(yyj171, l, yyhl171); yyj171++ {
 15521  		z.DecReadArrayElem()
 15522  		z.DecStructFieldNotFound(yyj171-1, "")
 15523  	}
 15524  }
 15525  
 15526  func (x *TestStrucFlex) IsCodecEmpty() bool {
 15527  	return !(!(x.TestStrucCommon.IsCodecEmpty()) || len(x.Chstr) != 0 || len(x.Mis) != 0 || len(x.Mbu64) != 0 || len(x.Mu8e) != 0 || len(x.Mu8u64) != 0 || len(x.Msp2ss) != 0 || len(x.Mip2ss) != 0 || len(x.Ms2misu) != 0 || len(x.Miwu64s) != 0 || len(x.Mfwss) != 0 || len(x.Mf32wss) != 0 || len(x.Mui2wss) != 0 || len(x.Msu2wss) != 0 || x.Ci64 != 0 || len(x.Swrapbytes) != 0 || len(x.Swrapuint8) != 0 || x.ArrStrUi64T != [4]stringUint64T{} || x.Ui64array != [4]uint64{} || len(x.Ui64slicearray) != 0 || len(x.SintfAarray) != 0 || len(x.MstrUi64TSelf) != 0 || !(x.Ttime.IsZero()) || x.AnonInTestStrucIntf != nil && len(x.Msu) != 0 || len(x.Mtsptr) != 0 || len(x.Mts) != 0 || len(x.Its) != 0 || bool(x.MarJ) || x.MarT != "" || len(x.MarB) != 0 || x.XuintToBytes != 0 || x.Cmplx64 != 0 || x.Cmplx128 != 0 || false)
 15528  }
 15529  
 15530  func (x codecSelfer19780) encwrapUint64Slice(v wrapUint64Slice, e *Encoder) {
 15531  	var h codecSelfer19780
 15532  	z, r := GenHelper().Encoder(e)
 15533  	_, _, _ = h, z, r
 15534  	if v == nil {
 15535  		r.EncodeNil()
 15536  		return
 15537  	}
 15538  	z.EncWriteArrayStart(len(v))
 15539  	for yyv1 := range v {
 15540  		z.EncWriteArrayElem()
 15541  		if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 15542  			z.EncExtension(v[yyv1], yyxt2)
 15543  		} else {
 15544  			v[yyv1].CodecEncodeSelf(e)
 15545  		}
 15546  	}
 15547  	z.EncWriteArrayEnd()
 15548  }
 15549  
 15550  func (x codecSelfer19780) decwrapUint64Slice(v *wrapUint64Slice, d *Decoder) {
 15551  	var h codecSelfer19780
 15552  	z, r := GenHelper().Decoder(d)
 15553  	_, _, _ = h, z, r
 15554  
 15555  	yyv1 := *v
 15556  	yyh1, yyl1 := z.DecSliceHelperStart()
 15557  	var yyc1 bool
 15558  	_ = yyc1
 15559  	if yyh1.IsNil {
 15560  		if yyv1 != nil {
 15561  			yyv1 = nil
 15562  			yyc1 = true
 15563  		}
 15564  	} else if yyl1 == 0 {
 15565  		if yyv1 == nil {
 15566  			yyv1 = []wrapUint64{}
 15567  			yyc1 = true
 15568  		} else if len(yyv1) != 0 {
 15569  			yyv1 = yyv1[:0]
 15570  			yyc1 = true
 15571  		}
 15572  	} else {
 15573  		yyhl1 := yyl1 > 0
 15574  		var yyrl1 int
 15575  		_ = yyrl1
 15576  		if yyhl1 {
 15577  			if yyl1 > cap(yyv1) {
 15578  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 15579  				if yyrl1 <= cap(yyv1) {
 15580  					yyv1 = yyv1[:yyrl1]
 15581  				} else {
 15582  					yyv1 = make([]wrapUint64, yyrl1)
 15583  				}
 15584  				yyc1 = true
 15585  			} else if yyl1 != len(yyv1) {
 15586  				yyv1 = yyv1[:yyl1]
 15587  				yyc1 = true
 15588  			}
 15589  		}
 15590  		var yyj1 int
 15591  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 15592  			if yyj1 == 0 && yyv1 == nil {
 15593  				if yyhl1 {
 15594  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 15595  				} else {
 15596  					yyrl1 = 8
 15597  				}
 15598  				yyv1 = make([]wrapUint64, yyrl1)
 15599  				yyc1 = true
 15600  			}
 15601  			yyh1.ElemContainerState(yyj1)
 15602  			var yydb1 bool
 15603  			if yyj1 >= len(yyv1) {
 15604  				yyv1 = append(yyv1, 0)
 15605  				yyc1 = true
 15606  			}
 15607  			if yydb1 {
 15608  				z.DecSwallow()
 15609  			} else {
 15610  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 15611  					z.DecExtension(&yyv1[yyj1], yyxt3)
 15612  				} else {
 15613  					yyv1[yyj1].CodecDecodeSelf(d)
 15614  				}
 15615  			}
 15616  		}
 15617  		if yyj1 < len(yyv1) {
 15618  			yyv1 = yyv1[:yyj1]
 15619  			yyc1 = true
 15620  		} else if yyj1 == 0 && yyv1 == nil {
 15621  			yyv1 = []wrapUint64{}
 15622  			yyc1 = true
 15623  		}
 15624  	}
 15625  	yyh1.End()
 15626  	if yyc1 {
 15627  		*v = yyv1
 15628  	}
 15629  }
 15630  
 15631  func (x codecSelfer19780) encwrapStringSlice(v wrapStringSlice, e *Encoder) {
 15632  	var h codecSelfer19780
 15633  	z, r := GenHelper().Encoder(e)
 15634  	_, _, _ = h, z, r
 15635  	if v == nil {
 15636  		r.EncodeNil()
 15637  		return
 15638  	}
 15639  	z.EncWriteArrayStart(len(v))
 15640  	for yyv1 := range v {
 15641  		z.EncWriteArrayElem()
 15642  		if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 15643  			z.EncExtension(v[yyv1], yyxt2)
 15644  		} else {
 15645  			v[yyv1].CodecEncodeSelf(e)
 15646  		}
 15647  	}
 15648  	z.EncWriteArrayEnd()
 15649  }
 15650  
 15651  func (x codecSelfer19780) decwrapStringSlice(v *wrapStringSlice, d *Decoder) {
 15652  	var h codecSelfer19780
 15653  	z, r := GenHelper().Decoder(d)
 15654  	_, _, _ = h, z, r
 15655  
 15656  	yyv1 := *v
 15657  	yyh1, yyl1 := z.DecSliceHelperStart()
 15658  	var yyc1 bool
 15659  	_ = yyc1
 15660  	if yyh1.IsNil {
 15661  		if yyv1 != nil {
 15662  			yyv1 = nil
 15663  			yyc1 = true
 15664  		}
 15665  	} else if yyl1 == 0 {
 15666  		if yyv1 == nil {
 15667  			yyv1 = []wrapString{}
 15668  			yyc1 = true
 15669  		} else if len(yyv1) != 0 {
 15670  			yyv1 = yyv1[:0]
 15671  			yyc1 = true
 15672  		}
 15673  	} else {
 15674  		yyhl1 := yyl1 > 0
 15675  		var yyrl1 int
 15676  		_ = yyrl1
 15677  		if yyhl1 {
 15678  			if yyl1 > cap(yyv1) {
 15679  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
 15680  				if yyrl1 <= cap(yyv1) {
 15681  					yyv1 = yyv1[:yyrl1]
 15682  				} else {
 15683  					yyv1 = make([]wrapString, yyrl1)
 15684  				}
 15685  				yyc1 = true
 15686  			} else if yyl1 != len(yyv1) {
 15687  				yyv1 = yyv1[:yyl1]
 15688  				yyc1 = true
 15689  			}
 15690  		}
 15691  		var yyj1 int
 15692  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 15693  			if yyj1 == 0 && yyv1 == nil {
 15694  				if yyhl1 {
 15695  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
 15696  				} else {
 15697  					yyrl1 = 8
 15698  				}
 15699  				yyv1 = make([]wrapString, yyrl1)
 15700  				yyc1 = true
 15701  			}
 15702  			yyh1.ElemContainerState(yyj1)
 15703  			var yydb1 bool
 15704  			if yyj1 >= len(yyv1) {
 15705  				yyv1 = append(yyv1, "")
 15706  				yyc1 = true
 15707  			}
 15708  			if yydb1 {
 15709  				z.DecSwallow()
 15710  			} else {
 15711  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 15712  					z.DecExtension(&yyv1[yyj1], yyxt3)
 15713  				} else {
 15714  					yyv1[yyj1].CodecDecodeSelf(d)
 15715  				}
 15716  			}
 15717  		}
 15718  		if yyj1 < len(yyv1) {
 15719  			yyv1 = yyv1[:yyj1]
 15720  			yyc1 = true
 15721  		} else if yyj1 == 0 && yyv1 == nil {
 15722  			yyv1 = []wrapString{}
 15723  			yyc1 = true
 15724  		}
 15725  	}
 15726  	yyh1.End()
 15727  	if yyc1 {
 15728  		*v = yyv1
 15729  	}
 15730  }
 15731  
 15732  func (x codecSelfer19780) encArray8int64(v *[8]int64, e *Encoder) {
 15733  	var h codecSelfer19780
 15734  	z, r := GenHelper().Encoder(e)
 15735  	_, _, _ = h, z, r
 15736  	if v == nil {
 15737  		r.EncodeNil()
 15738  		return
 15739  	}
 15740  	z.EncWriteArrayStart(len(v))
 15741  	for yyv1 := range v {
 15742  		z.EncWriteArrayElem()
 15743  		r.EncodeInt(int64(v[yyv1]))
 15744  	}
 15745  	z.EncWriteArrayEnd()
 15746  }
 15747  
 15748  func (x codecSelfer19780) decArray8int64(v *[8]int64, d *Decoder) {
 15749  	var h codecSelfer19780
 15750  	z, r := GenHelper().Decoder(d)
 15751  	_, _, _ = h, z, r
 15752  
 15753  	yyv1 := v
 15754  	yyh1, yyl1 := z.DecSliceHelperStart()
 15755  	if yyl1 == 0 {
 15756  	} else {
 15757  		yyhl1 := yyl1 > 0
 15758  		var yyrl1 int
 15759  		_ = yyrl1
 15760  		var yyj1 int
 15761  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 15762  			yyh1.ElemContainerState(yyj1)
 15763  			var yydb1 bool
 15764  			if yyj1 >= len(yyv1) {
 15765  				z.DecArrayCannotExpand(len(v), yyj1+1)
 15766  				yydb1 = true
 15767  			}
 15768  			if yydb1 {
 15769  				z.DecSwallow()
 15770  			} else {
 15771  				yyv1[yyj1] = (int64)(r.DecodeInt64())
 15772  			}
 15773  		}
 15774  	}
 15775  	yyh1.End()
 15776  }
 15777  
 15778  func (x codecSelfer19780) encArray0int64(v *[0]int64, e *Encoder) {
 15779  	var h codecSelfer19780
 15780  	z, r := GenHelper().Encoder(e)
 15781  	_, _, _ = h, z, r
 15782  	if v == nil {
 15783  		r.EncodeNil()
 15784  		return
 15785  	}
 15786  	z.EncWriteArrayStart(len(v))
 15787  	for yyv1 := range v {
 15788  		z.EncWriteArrayElem()
 15789  		r.EncodeInt(int64(v[yyv1]))
 15790  	}
 15791  	z.EncWriteArrayEnd()
 15792  }
 15793  
 15794  func (x codecSelfer19780) decArray0int64(v *[0]int64, d *Decoder) {
 15795  	var h codecSelfer19780
 15796  	z, r := GenHelper().Decoder(d)
 15797  	_, _, _ = h, z, r
 15798  
 15799  	yyv1 := v
 15800  	yyh1, yyl1 := z.DecSliceHelperStart()
 15801  	if yyl1 == 0 {
 15802  	} else {
 15803  		yyhl1 := yyl1 > 0
 15804  		var yyrl1 int
 15805  		_ = yyrl1
 15806  		var yyj1 int
 15807  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 15808  			yyh1.ElemContainerState(yyj1)
 15809  			var yydb1 bool
 15810  			if yyj1 >= len(yyv1) {
 15811  				z.DecArrayCannotExpand(len(v), yyj1+1)
 15812  				yydb1 = true
 15813  			}
 15814  			if yydb1 {
 15815  				z.DecSwallow()
 15816  			} else {
 15817  				yyv1[yyj1] = (int64)(r.DecodeInt64())
 15818  			}
 15819  		}
 15820  	}
 15821  	yyh1.End()
 15822  }
 15823  
 15824  func (x codecSelfer19780) encSlicePtrtoint64(v []*int64, e *Encoder) {
 15825  	var h codecSelfer19780
 15826  	z, r := GenHelper().Encoder(e)
 15827  	_, _, _ = h, z, r
 15828  	if v == nil {
 15829  		r.EncodeNil()
 15830  		return
 15831  	}
 15832  	z.EncWriteArrayStart(len(v))
 15833  	for yyv1 := range v {
 15834  		z.EncWriteArrayElem()
 15835  		if v[yyv1] == nil {
 15836  			r.EncodeNil()
 15837  		} else {
 15838  			yy2 := *v[yyv1]
 15839  			r.EncodeInt(int64(yy2))
 15840  		}
 15841  	}
 15842  	z.EncWriteArrayEnd()
 15843  }
 15844  
 15845  func (x codecSelfer19780) decSlicePtrtoint64(v *[]*int64, d *Decoder) {
 15846  	var h codecSelfer19780
 15847  	z, r := GenHelper().Decoder(d)
 15848  	_, _, _ = h, z, r
 15849  
 15850  	yyv1 := *v
 15851  	yyh1, yyl1 := z.DecSliceHelperStart()
 15852  	var yyc1 bool
 15853  	_ = yyc1
 15854  	if yyh1.IsNil {
 15855  		if yyv1 != nil {
 15856  			yyv1 = nil
 15857  			yyc1 = true
 15858  		}
 15859  	} else if yyl1 == 0 {
 15860  		if yyv1 == nil {
 15861  			yyv1 = []*int64{}
 15862  			yyc1 = true
 15863  		} else if len(yyv1) != 0 {
 15864  			yyv1 = yyv1[:0]
 15865  			yyc1 = true
 15866  		}
 15867  	} else {
 15868  		yyhl1 := yyl1 > 0
 15869  		var yyrl1 int
 15870  		_ = yyrl1
 15871  		if yyhl1 {
 15872  			if yyl1 > cap(yyv1) {
 15873  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 15874  				if yyrl1 <= cap(yyv1) {
 15875  					yyv1 = yyv1[:yyrl1]
 15876  				} else {
 15877  					yyv1 = make([]*int64, yyrl1)
 15878  				}
 15879  				yyc1 = true
 15880  			} else if yyl1 != len(yyv1) {
 15881  				yyv1 = yyv1[:yyl1]
 15882  				yyc1 = true
 15883  			}
 15884  		}
 15885  		var yyj1 int
 15886  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 15887  			if yyj1 == 0 && yyv1 == nil {
 15888  				if yyhl1 {
 15889  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 15890  				} else {
 15891  					yyrl1 = 8
 15892  				}
 15893  				yyv1 = make([]*int64, yyrl1)
 15894  				yyc1 = true
 15895  			}
 15896  			yyh1.ElemContainerState(yyj1)
 15897  			var yydb1 bool
 15898  			if yyj1 >= len(yyv1) {
 15899  				yyv1 = append(yyv1, nil)
 15900  				yyc1 = true
 15901  			}
 15902  			if yydb1 {
 15903  				z.DecSwallow()
 15904  			} else {
 15905  				if r.TryNil() {
 15906  					yyv1[yyj1] = nil
 15907  				} else {
 15908  					if yyv1[yyj1] == nil {
 15909  						yyv1[yyj1] = new(int64)
 15910  					}
 15911  					*yyv1[yyj1] = (int64)(r.DecodeInt64())
 15912  				}
 15913  			}
 15914  		}
 15915  		if yyj1 < len(yyv1) {
 15916  			yyv1 = yyv1[:yyj1]
 15917  			yyc1 = true
 15918  		} else if yyj1 == 0 && yyv1 == nil {
 15919  			yyv1 = []*int64{}
 15920  			yyc1 = true
 15921  		}
 15922  	}
 15923  	yyh1.End()
 15924  	if yyc1 {
 15925  		*v = yyv1
 15926  	}
 15927  }
 15928  
 15929  func (x codecSelfer19780) encSlicestringUint64T(v []stringUint64T, e *Encoder) {
 15930  	var h codecSelfer19780
 15931  	z, r := GenHelper().Encoder(e)
 15932  	_, _, _ = h, z, r
 15933  	if v == nil {
 15934  		r.EncodeNil()
 15935  		return
 15936  	}
 15937  	z.EncWriteArrayStart(len(v))
 15938  	for yyv1 := range v {
 15939  		z.EncWriteArrayElem()
 15940  		yy2 := &v[yyv1]
 15941  		if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 15942  			z.EncExtension(yy2, yyxt3)
 15943  		} else {
 15944  			yy2.CodecEncodeSelf(e)
 15945  		}
 15946  	}
 15947  	z.EncWriteArrayEnd()
 15948  }
 15949  
 15950  func (x codecSelfer19780) decSlicestringUint64T(v *[]stringUint64T, d *Decoder) {
 15951  	var h codecSelfer19780
 15952  	z, r := GenHelper().Decoder(d)
 15953  	_, _, _ = h, z, r
 15954  
 15955  	yyv1 := *v
 15956  	yyh1, yyl1 := z.DecSliceHelperStart()
 15957  	var yyc1 bool
 15958  	_ = yyc1
 15959  	if yyh1.IsNil {
 15960  		if yyv1 != nil {
 15961  			yyv1 = nil
 15962  			yyc1 = true
 15963  		}
 15964  	} else if yyl1 == 0 {
 15965  		if yyv1 == nil {
 15966  			yyv1 = []stringUint64T{}
 15967  			yyc1 = true
 15968  		} else if len(yyv1) != 0 {
 15969  			yyv1 = yyv1[:0]
 15970  			yyc1 = true
 15971  		}
 15972  	} else {
 15973  		yyhl1 := yyl1 > 0
 15974  		var yyrl1 int
 15975  		_ = yyrl1
 15976  		if yyhl1 {
 15977  			if yyl1 > cap(yyv1) {
 15978  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 15979  				if yyrl1 <= cap(yyv1) {
 15980  					yyv1 = yyv1[:yyrl1]
 15981  				} else {
 15982  					yyv1 = make([]stringUint64T, yyrl1)
 15983  				}
 15984  				yyc1 = true
 15985  			} else if yyl1 != len(yyv1) {
 15986  				yyv1 = yyv1[:yyl1]
 15987  				yyc1 = true
 15988  			}
 15989  		}
 15990  		var yyj1 int
 15991  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 15992  			if yyj1 == 0 && yyv1 == nil {
 15993  				if yyhl1 {
 15994  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 15995  				} else {
 15996  					yyrl1 = 8
 15997  				}
 15998  				yyv1 = make([]stringUint64T, yyrl1)
 15999  				yyc1 = true
 16000  			}
 16001  			yyh1.ElemContainerState(yyj1)
 16002  			var yydb1 bool
 16003  			if yyj1 >= len(yyv1) {
 16004  				yyv1 = append(yyv1, stringUint64T{})
 16005  				yyc1 = true
 16006  			}
 16007  			if yydb1 {
 16008  				z.DecSwallow()
 16009  			} else {
 16010  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 16011  					z.DecExtension(&yyv1[yyj1], yyxt3)
 16012  				} else {
 16013  					yyv1[yyj1].CodecDecodeSelf(d)
 16014  				}
 16015  			}
 16016  		}
 16017  		if yyj1 < len(yyv1) {
 16018  			yyv1 = yyv1[:yyj1]
 16019  			yyc1 = true
 16020  		} else if yyj1 == 0 && yyv1 == nil {
 16021  			yyv1 = []stringUint64T{}
 16022  			yyc1 = true
 16023  		}
 16024  	}
 16025  	yyh1.End()
 16026  	if yyc1 {
 16027  		*v = yyv1
 16028  	}
 16029  }
 16030  
 16031  func (x codecSelfer19780) encMapstringPtrtostringUint64T(v map[string]*stringUint64T, e *Encoder) {
 16032  	var h codecSelfer19780
 16033  	z, r := GenHelper().Encoder(e)
 16034  	_, _, _ = h, z, r
 16035  	if v == nil {
 16036  		r.EncodeNil()
 16037  	} else if z.EncBasicHandle().Canonical {
 16038  		yys1 := make([]string, 0, len(v))
 16039  		for k, _ := range v {
 16040  			yys1 = append(yys1, string(k))
 16041  		}
 16042  		sort.Sort(codecSelfer19780stringSlice(yys1))
 16043  		z.EncWriteMapStart(len(v))
 16044  		for _, yyv1 := range yys1 {
 16045  			z.EncWriteMapElemKey()
 16046  			r.EncodeString(yyv1)
 16047  			z.EncWriteMapElemValue()
 16048  			yye1 := v[string(yyv1)]
 16049  			if yye1 == nil {
 16050  				r.EncodeNil()
 16051  			} else {
 16052  				if yyxt2 := z.Extension(yye1); yyxt2 != nil {
 16053  					z.EncExtension(yye1, yyxt2)
 16054  				} else {
 16055  					yye1.CodecEncodeSelf(e)
 16056  				}
 16057  			}
 16058  		}
 16059  		z.EncWriteMapEnd()
 16060  	} else {
 16061  		z.EncWriteMapStart(len(v))
 16062  		for yyk1, yyv1 := range v {
 16063  			z.EncWriteMapElemKey()
 16064  			r.EncodeString(string(yyk1))
 16065  			z.EncWriteMapElemValue()
 16066  			if yyv1 == nil {
 16067  				r.EncodeNil()
 16068  			} else {
 16069  				if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 16070  					z.EncExtension(yyv1, yyxt4)
 16071  				} else {
 16072  					yyv1.CodecEncodeSelf(e)
 16073  				}
 16074  			}
 16075  		}
 16076  		z.EncWriteMapEnd()
 16077  	}
 16078  }
 16079  
 16080  func (x codecSelfer19780) decMapstringPtrtostringUint64T(v *map[string]*stringUint64T, d *Decoder) {
 16081  	var h codecSelfer19780
 16082  	z, r := GenHelper().Decoder(d)
 16083  	_, _, _ = h, z, r
 16084  
 16085  	yyv1 := *v
 16086  	yyl1 := z.DecReadMapStart()
 16087  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16088  		*v = nil
 16089  	} else {
 16090  		if yyv1 == nil {
 16091  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 16092  			yyv1 = make(map[string]*stringUint64T, yyrl1)
 16093  			*v = yyv1
 16094  		}
 16095  		var yymk1 string
 16096  		var yymv1 *stringUint64T
 16097  		var yymg1, yymdn1, yyms1, yymok1 bool
 16098  		if z.DecBasicHandle().MapValueReset {
 16099  			yymg1 = true
 16100  		}
 16101  		if yyl1 != 0 {
 16102  			yyhl1 := yyl1 > 0
 16103  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16104  				z.DecReadMapElemKey()
 16105  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 16106  				yyms1 = true
 16107  				if yymg1 {
 16108  					yymv1, yymok1 = yyv1[yymk1]
 16109  					if yymok1 {
 16110  						yyms1 = false
 16111  					}
 16112  				} else {
 16113  					yymv1 = nil
 16114  				}
 16115  				z.DecReadMapElemValue()
 16116  				yymdn1 = false
 16117  				if r.TryNil() {
 16118  					yymdn1 = true
 16119  				} else {
 16120  					if yymv1 == nil {
 16121  						yymv1 = new(stringUint64T)
 16122  					}
 16123  					if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 16124  						z.DecExtension(yymv1, yyxt4)
 16125  					} else {
 16126  						yymv1.CodecDecodeSelf(d)
 16127  					}
 16128  				}
 16129  				if yymdn1 {
 16130  					yyv1[yymk1] = nil
 16131  				} else if yyms1 {
 16132  					yyv1[yymk1] = yymv1
 16133  				}
 16134  			}
 16135  		} // else len==0: leave as-is (do not clear map entries)
 16136  		z.DecReadMapEnd()
 16137  	}
 16138  }
 16139  
 16140  func (x codecSelfer19780) encMapstringPtrtoTestStruc(v map[string]*TestStruc, e *Encoder) {
 16141  	var h codecSelfer19780
 16142  	z, r := GenHelper().Encoder(e)
 16143  	_, _, _ = h, z, r
 16144  	if v == nil {
 16145  		r.EncodeNil()
 16146  	} else if z.EncBasicHandle().Canonical {
 16147  		yys1 := make([]string, 0, len(v))
 16148  		for k, _ := range v {
 16149  			yys1 = append(yys1, string(k))
 16150  		}
 16151  		sort.Sort(codecSelfer19780stringSlice(yys1))
 16152  		z.EncWriteMapStart(len(v))
 16153  		for _, yyv1 := range yys1 {
 16154  			z.EncWriteMapElemKey()
 16155  			r.EncodeString(yyv1)
 16156  			z.EncWriteMapElemValue()
 16157  			yye1 := v[string(yyv1)]
 16158  			if yye1 == nil {
 16159  				r.EncodeNil()
 16160  			} else {
 16161  				if yyxt2 := z.Extension(yye1); yyxt2 != nil {
 16162  					z.EncExtension(yye1, yyxt2)
 16163  				} else {
 16164  					yye1.CodecEncodeSelf(e)
 16165  				}
 16166  			}
 16167  		}
 16168  		z.EncWriteMapEnd()
 16169  	} else {
 16170  		z.EncWriteMapStart(len(v))
 16171  		for yyk1, yyv1 := range v {
 16172  			z.EncWriteMapElemKey()
 16173  			r.EncodeString(string(yyk1))
 16174  			z.EncWriteMapElemValue()
 16175  			if yyv1 == nil {
 16176  				r.EncodeNil()
 16177  			} else {
 16178  				if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 16179  					z.EncExtension(yyv1, yyxt4)
 16180  				} else {
 16181  					yyv1.CodecEncodeSelf(e)
 16182  				}
 16183  			}
 16184  		}
 16185  		z.EncWriteMapEnd()
 16186  	}
 16187  }
 16188  
 16189  func (x codecSelfer19780) decMapstringPtrtoTestStruc(v *map[string]*TestStruc, d *Decoder) {
 16190  	var h codecSelfer19780
 16191  	z, r := GenHelper().Decoder(d)
 16192  	_, _, _ = h, z, r
 16193  
 16194  	yyv1 := *v
 16195  	yyl1 := z.DecReadMapStart()
 16196  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16197  		*v = nil
 16198  	} else {
 16199  		if yyv1 == nil {
 16200  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 16201  			yyv1 = make(map[string]*TestStruc, yyrl1)
 16202  			*v = yyv1
 16203  		}
 16204  		var yymk1 string
 16205  		var yymv1 *TestStruc
 16206  		var yymg1, yymdn1, yyms1, yymok1 bool
 16207  		if z.DecBasicHandle().MapValueReset {
 16208  			yymg1 = true
 16209  		}
 16210  		if yyl1 != 0 {
 16211  			yyhl1 := yyl1 > 0
 16212  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16213  				z.DecReadMapElemKey()
 16214  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 16215  				yyms1 = true
 16216  				if yymg1 {
 16217  					yymv1, yymok1 = yyv1[yymk1]
 16218  					if yymok1 {
 16219  						yyms1 = false
 16220  					}
 16221  				} else {
 16222  					yymv1 = nil
 16223  				}
 16224  				z.DecReadMapElemValue()
 16225  				yymdn1 = false
 16226  				if r.TryNil() {
 16227  					yymdn1 = true
 16228  				} else {
 16229  					if yymv1 == nil {
 16230  						yymv1 = new(TestStruc)
 16231  					}
 16232  					if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 16233  						z.DecExtension(yymv1, yyxt4)
 16234  					} else {
 16235  						yymv1.CodecDecodeSelf(d)
 16236  					}
 16237  				}
 16238  				if yymdn1 {
 16239  					yyv1[yymk1] = nil
 16240  				} else if yyms1 {
 16241  					yyv1[yymk1] = yymv1
 16242  				}
 16243  			}
 16244  		} // else len==0: leave as-is (do not clear map entries)
 16245  		z.DecReadMapEnd()
 16246  	}
 16247  }
 16248  
 16249  func (x codecSelfer19780) encMapstringTestStruc(v map[string]TestStruc, e *Encoder) {
 16250  	var h codecSelfer19780
 16251  	z, r := GenHelper().Encoder(e)
 16252  	_, _, _ = h, z, r
 16253  	if v == nil {
 16254  		r.EncodeNil()
 16255  	} else if z.EncBasicHandle().Canonical {
 16256  		yys1 := make([]string, 0, len(v))
 16257  		for k, _ := range v {
 16258  			yys1 = append(yys1, string(k))
 16259  		}
 16260  		sort.Sort(codecSelfer19780stringSlice(yys1))
 16261  		z.EncWriteMapStart(len(v))
 16262  		for _, yyv1 := range yys1 {
 16263  			z.EncWriteMapElemKey()
 16264  			r.EncodeString(yyv1)
 16265  			z.EncWriteMapElemValue()
 16266  			yye1 := v[string(yyv1)]
 16267  			yy2 := &yye1
 16268  			if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 16269  				z.EncExtension(yy2, yyxt3)
 16270  			} else {
 16271  				yy2.CodecEncodeSelf(e)
 16272  			}
 16273  		}
 16274  		z.EncWriteMapEnd()
 16275  	} else {
 16276  		z.EncWriteMapStart(len(v))
 16277  		for yyk1, yyv1 := range v {
 16278  			z.EncWriteMapElemKey()
 16279  			r.EncodeString(string(yyk1))
 16280  			z.EncWriteMapElemValue()
 16281  			yy5 := &yyv1
 16282  			if yyxt6 := z.Extension(yy5); yyxt6 != nil {
 16283  				z.EncExtension(yy5, yyxt6)
 16284  			} else {
 16285  				yy5.CodecEncodeSelf(e)
 16286  			}
 16287  		}
 16288  		z.EncWriteMapEnd()
 16289  	}
 16290  }
 16291  
 16292  func (x codecSelfer19780) decMapstringTestStruc(v *map[string]TestStruc, d *Decoder) {
 16293  	var h codecSelfer19780
 16294  	z, r := GenHelper().Decoder(d)
 16295  	_, _, _ = h, z, r
 16296  
 16297  	yyv1 := *v
 16298  	yyl1 := z.DecReadMapStart()
 16299  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16300  		*v = nil
 16301  	} else {
 16302  		if yyv1 == nil {
 16303  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1384)
 16304  			yyv1 = make(map[string]TestStruc, yyrl1)
 16305  			*v = yyv1
 16306  		}
 16307  		var yymk1 string
 16308  		var yymv1 TestStruc
 16309  		var yymg1, yymdn1 bool
 16310  		if z.DecBasicHandle().MapValueReset {
 16311  			yymg1 = true
 16312  		}
 16313  		if yyl1 != 0 {
 16314  			yyhl1 := yyl1 > 0
 16315  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16316  				z.DecReadMapElemKey()
 16317  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 16318  				if yymg1 {
 16319  					yymv1 = yyv1[yymk1]
 16320  				} else {
 16321  					yymv1 = TestStruc{}
 16322  				}
 16323  				z.DecReadMapElemValue()
 16324  				yymdn1 = false
 16325  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 16326  					z.DecExtension(&yymv1, yyxt4)
 16327  				} else {
 16328  					yymv1.CodecDecodeSelf(d)
 16329  				}
 16330  				if yymdn1 {
 16331  					yyv1[yymk1] = TestStruc{}
 16332  				} else {
 16333  					yyv1[yymk1] = yymv1
 16334  				}
 16335  			}
 16336  		} // else len==0: leave as-is (do not clear map entries)
 16337  		z.DecReadMapEnd()
 16338  	}
 16339  }
 16340  
 16341  func (x codecSelfer19780) encSlicePtrtoTestStruc(v []*TestStruc, e *Encoder) {
 16342  	var h codecSelfer19780
 16343  	z, r := GenHelper().Encoder(e)
 16344  	_, _, _ = h, z, r
 16345  	if v == nil {
 16346  		r.EncodeNil()
 16347  		return
 16348  	}
 16349  	z.EncWriteArrayStart(len(v))
 16350  	for yyv1 := range v {
 16351  		z.EncWriteArrayElem()
 16352  		if v[yyv1] == nil {
 16353  			r.EncodeNil()
 16354  		} else {
 16355  			if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 16356  				z.EncExtension(v[yyv1], yyxt2)
 16357  			} else {
 16358  				v[yyv1].CodecEncodeSelf(e)
 16359  			}
 16360  		}
 16361  	}
 16362  	z.EncWriteArrayEnd()
 16363  }
 16364  
 16365  func (x codecSelfer19780) decSlicePtrtoTestStruc(v *[]*TestStruc, d *Decoder) {
 16366  	var h codecSelfer19780
 16367  	z, r := GenHelper().Decoder(d)
 16368  	_, _, _ = h, z, r
 16369  
 16370  	yyv1 := *v
 16371  	yyh1, yyl1 := z.DecSliceHelperStart()
 16372  	var yyc1 bool
 16373  	_ = yyc1
 16374  	if yyh1.IsNil {
 16375  		if yyv1 != nil {
 16376  			yyv1 = nil
 16377  			yyc1 = true
 16378  		}
 16379  	} else if yyl1 == 0 {
 16380  		if yyv1 == nil {
 16381  			yyv1 = []*TestStruc{}
 16382  			yyc1 = true
 16383  		} else if len(yyv1) != 0 {
 16384  			yyv1 = yyv1[:0]
 16385  			yyc1 = true
 16386  		}
 16387  	} else {
 16388  		yyhl1 := yyl1 > 0
 16389  		var yyrl1 int
 16390  		_ = yyrl1
 16391  		if yyhl1 {
 16392  			if yyl1 > cap(yyv1) {
 16393  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 16394  				if yyrl1 <= cap(yyv1) {
 16395  					yyv1 = yyv1[:yyrl1]
 16396  				} else {
 16397  					yyv1 = make([]*TestStruc, yyrl1)
 16398  				}
 16399  				yyc1 = true
 16400  			} else if yyl1 != len(yyv1) {
 16401  				yyv1 = yyv1[:yyl1]
 16402  				yyc1 = true
 16403  			}
 16404  		}
 16405  		var yyj1 int
 16406  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16407  			if yyj1 == 0 && yyv1 == nil {
 16408  				if yyhl1 {
 16409  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 16410  				} else {
 16411  					yyrl1 = 8
 16412  				}
 16413  				yyv1 = make([]*TestStruc, yyrl1)
 16414  				yyc1 = true
 16415  			}
 16416  			yyh1.ElemContainerState(yyj1)
 16417  			var yydb1 bool
 16418  			if yyj1 >= len(yyv1) {
 16419  				yyv1 = append(yyv1, nil)
 16420  				yyc1 = true
 16421  			}
 16422  			if yydb1 {
 16423  				z.DecSwallow()
 16424  			} else {
 16425  				if r.TryNil() {
 16426  					yyv1[yyj1] = nil
 16427  				} else {
 16428  					if yyv1[yyj1] == nil {
 16429  						yyv1[yyj1] = new(TestStruc)
 16430  					}
 16431  					if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 16432  						z.DecExtension(yyv1[yyj1], yyxt3)
 16433  					} else {
 16434  						yyv1[yyj1].CodecDecodeSelf(d)
 16435  					}
 16436  				}
 16437  			}
 16438  		}
 16439  		if yyj1 < len(yyv1) {
 16440  			yyv1 = yyv1[:yyj1]
 16441  			yyc1 = true
 16442  		} else if yyj1 == 0 && yyv1 == nil {
 16443  			yyv1 = []*TestStruc{}
 16444  			yyc1 = true
 16445  		}
 16446  	}
 16447  	yyh1.End()
 16448  	if yyc1 {
 16449  		*v = yyv1
 16450  	}
 16451  }
 16452  
 16453  func (x codecSelfer19780) encChanstring(v chan string, e *Encoder) {
 16454  	var h codecSelfer19780
 16455  	z, r := GenHelper().Encoder(e)
 16456  	_, _, _ = h, z, r
 16457  	if v == nil {
 16458  		r.EncodeNil()
 16459  		return
 16460  	}
 16461  	if v == nil {
 16462  		r.EncodeNil()
 16463  	} else {
 16464  		var sch1 []string
 16465  
 16466  	Lsch1:
 16467  		switch timeout1 := z.EncBasicHandle().ChanRecvTimeout; {
 16468  		case timeout1 == 0: // only consume available
 16469  			for {
 16470  				select {
 16471  				case b1 := <-v:
 16472  					sch1 = append(sch1, b1)
 16473  				default:
 16474  					break Lsch1
 16475  				}
 16476  			}
 16477  		case timeout1 > 0: // consume until timeout
 16478  			tt1 := time.NewTimer(timeout1)
 16479  			for {
 16480  				select {
 16481  				case b1 := <-v:
 16482  					sch1 = append(sch1, b1)
 16483  				case <-tt1.C:
 16484  					// close(tt.C)
 16485  					break Lsch1
 16486  				}
 16487  			}
 16488  		default: // consume until close
 16489  			for b1 := range v {
 16490  				sch1 = append(sch1, b1)
 16491  			}
 16492  		}
 16493  		z.EncWriteArrayStart(len(sch1))
 16494  		for yyv1 := range sch1 {
 16495  			z.EncWriteArrayElem()
 16496  			r.EncodeString(string(sch1[yyv1]))
 16497  		}
 16498  		z.EncWriteArrayEnd()
 16499  	}
 16500  }
 16501  
 16502  func (x codecSelfer19780) decChanstring(v *chan string, d *Decoder) {
 16503  	var h codecSelfer19780
 16504  	z, r := GenHelper().Decoder(d)
 16505  	_, _, _ = h, z, r
 16506  
 16507  	yyv1 := *v
 16508  	yyh1, yyl1 := z.DecSliceHelperStart()
 16509  	var yyc1 bool
 16510  	_ = yyc1
 16511  	if yyh1.IsNil {
 16512  		if yyv1 != nil {
 16513  			yyv1 = nil
 16514  			yyc1 = true
 16515  		}
 16516  	} else if yyl1 == 0 {
 16517  		if yyv1 == nil {
 16518  			yyv1 = make(chan string, 0)
 16519  			yyc1 = true
 16520  		}
 16521  	} else {
 16522  		yyhl1 := yyl1 > 0
 16523  		var yyrl1 int
 16524  		_ = yyrl1
 16525  		var yyj1 int
 16526  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16527  			if yyj1 == 0 && yyv1 == nil {
 16528  				if yyhl1 {
 16529  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 16)
 16530  				} else {
 16531  					yyrl1 = 64
 16532  				}
 16533  				yyv1 = make(chan string, yyrl1)
 16534  				yyc1 = true
 16535  			}
 16536  			yyh1.ElemContainerState(yyj1)
 16537  			var yyvcx1 string
 16538  			yyvcx1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 16539  			yyv1 <- yyvcx1
 16540  		}
 16541  	}
 16542  	yyh1.End()
 16543  	if yyc1 {
 16544  		*v = yyv1
 16545  	}
 16546  }
 16547  
 16548  func (x codecSelfer19780) encMapboolONaHEdLDOQQHWfI(v map[bool]struct{}, e *Encoder) {
 16549  	var h codecSelfer19780
 16550  	z, r := GenHelper().Encoder(e)
 16551  	_, _, _ = h, z, r
 16552  	if v == nil {
 16553  		r.EncodeNil()
 16554  	} else if z.EncBasicHandle().Canonical {
 16555  		z.EncEncodeMapNonNil(v)
 16556  	} else {
 16557  		z.EncWriteMapStart(len(v))
 16558  		for yyk1, yyv1 := range v {
 16559  			z.EncWriteMapElemKey()
 16560  			r.EncodeBool(bool(yyk1))
 16561  			z.EncWriteMapElemValue()
 16562  			yy3 := &yyv1
 16563  			z.EncFallback(yy3)
 16564  		}
 16565  		z.EncWriteMapEnd()
 16566  	}
 16567  }
 16568  
 16569  func (x codecSelfer19780) decMapboolONaHEdLDOQQHWfI(v *map[bool]struct{}, d *Decoder) {
 16570  	var h codecSelfer19780
 16571  	z, r := GenHelper().Decoder(d)
 16572  	_, _, _ = h, z, r
 16573  
 16574  	yyv1 := *v
 16575  	yyl1 := z.DecReadMapStart()
 16576  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16577  		*v = nil
 16578  	} else {
 16579  		if yyv1 == nil {
 16580  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
 16581  			yyv1 = make(map[bool]struct{}, yyrl1)
 16582  			*v = yyv1
 16583  		}
 16584  		var yymk1 bool
 16585  		var yymv1 struct{}
 16586  		var yymg1, yymdn1 bool
 16587  		if z.DecBasicHandle().MapValueReset {
 16588  			yymg1 = true
 16589  		}
 16590  		if yyl1 != 0 {
 16591  			yyhl1 := yyl1 > 0
 16592  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16593  				z.DecReadMapElemKey()
 16594  				yymk1 = (bool)(r.DecodeBool())
 16595  				if yymg1 {
 16596  					yymv1 = yyv1[yymk1]
 16597  				} else {
 16598  					yymv1 = struct{}{}
 16599  				}
 16600  				z.DecReadMapElemValue()
 16601  				yymdn1 = false
 16602  				z.DecFallback(&yymv1, false)
 16603  				if yymdn1 {
 16604  					yyv1[yymk1] = struct{}{}
 16605  				} else {
 16606  					yyv1[yymk1] = yymv1
 16607  				}
 16608  			}
 16609  		} // else len==0: leave as-is (do not clear map entries)
 16610  		z.DecReadMapEnd()
 16611  	}
 16612  }
 16613  
 16614  func (x codecSelfer19780) encMapuint8ONaHEdLDOQQHWfI(v map[uint8]struct{}, e *Encoder) {
 16615  	var h codecSelfer19780
 16616  	z, r := GenHelper().Encoder(e)
 16617  	_, _, _ = h, z, r
 16618  	if v == nil {
 16619  		r.EncodeNil()
 16620  	} else if z.EncBasicHandle().Canonical {
 16621  		yys1 := make([]uint64, 0, len(v))
 16622  		for k, _ := range v {
 16623  			yys1 = append(yys1, uint64(k))
 16624  		}
 16625  		sort.Sort(codecSelfer19780uint64Slice(yys1))
 16626  		z.EncWriteMapStart(len(v))
 16627  		for _, yyv1 := range yys1 {
 16628  			z.EncWriteMapElemKey()
 16629  			r.EncodeUint(yyv1)
 16630  			z.EncWriteMapElemValue()
 16631  			yye1 := v[uint8(yyv1)]
 16632  			yy2 := &yye1
 16633  			z.EncFallback(yy2)
 16634  		}
 16635  		z.EncWriteMapEnd()
 16636  	} else {
 16637  		z.EncWriteMapStart(len(v))
 16638  		for yyk1, yyv1 := range v {
 16639  			z.EncWriteMapElemKey()
 16640  			r.EncodeUint(uint64(yyk1))
 16641  			z.EncWriteMapElemValue()
 16642  			yy5 := &yyv1
 16643  			z.EncFallback(yy5)
 16644  		}
 16645  		z.EncWriteMapEnd()
 16646  	}
 16647  }
 16648  
 16649  func (x codecSelfer19780) decMapuint8ONaHEdLDOQQHWfI(v *map[uint8]struct{}, d *Decoder) {
 16650  	var h codecSelfer19780
 16651  	z, r := GenHelper().Decoder(d)
 16652  	_, _, _ = h, z, r
 16653  
 16654  	yyv1 := *v
 16655  	yyl1 := z.DecReadMapStart()
 16656  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16657  		*v = nil
 16658  	} else {
 16659  		if yyv1 == nil {
 16660  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
 16661  			yyv1 = make(map[uint8]struct{}, yyrl1)
 16662  			*v = yyv1
 16663  		}
 16664  		var yymk1 uint8
 16665  		var yymv1 struct{}
 16666  		var yymg1, yymdn1 bool
 16667  		if z.DecBasicHandle().MapValueReset {
 16668  			yymg1 = true
 16669  		}
 16670  		if yyl1 != 0 {
 16671  			yyhl1 := yyl1 > 0
 16672  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16673  				z.DecReadMapElemKey()
 16674  				yymk1 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 16675  				if yymg1 {
 16676  					yymv1 = yyv1[yymk1]
 16677  				} else {
 16678  					yymv1 = struct{}{}
 16679  				}
 16680  				z.DecReadMapElemValue()
 16681  				yymdn1 = false
 16682  				z.DecFallback(&yymv1, false)
 16683  				if yymdn1 {
 16684  					yyv1[yymk1] = struct{}{}
 16685  				} else {
 16686  					yyv1[yymk1] = yymv1
 16687  				}
 16688  			}
 16689  		} // else len==0: leave as-is (do not clear map entries)
 16690  		z.DecReadMapEnd()
 16691  	}
 16692  }
 16693  
 16694  func (x codecSelfer19780) encMapuint8stringUint64T(v map[uint8]stringUint64T, e *Encoder) {
 16695  	var h codecSelfer19780
 16696  	z, r := GenHelper().Encoder(e)
 16697  	_, _, _ = h, z, r
 16698  	if v == nil {
 16699  		r.EncodeNil()
 16700  	} else if z.EncBasicHandle().Canonical {
 16701  		yys1 := make([]uint64, 0, len(v))
 16702  		for k, _ := range v {
 16703  			yys1 = append(yys1, uint64(k))
 16704  		}
 16705  		sort.Sort(codecSelfer19780uint64Slice(yys1))
 16706  		z.EncWriteMapStart(len(v))
 16707  		for _, yyv1 := range yys1 {
 16708  			z.EncWriteMapElemKey()
 16709  			r.EncodeUint(yyv1)
 16710  			z.EncWriteMapElemValue()
 16711  			yye1 := v[uint8(yyv1)]
 16712  			yy2 := &yye1
 16713  			if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 16714  				z.EncExtension(yy2, yyxt3)
 16715  			} else {
 16716  				yy2.CodecEncodeSelf(e)
 16717  			}
 16718  		}
 16719  		z.EncWriteMapEnd()
 16720  	} else {
 16721  		z.EncWriteMapStart(len(v))
 16722  		for yyk1, yyv1 := range v {
 16723  			z.EncWriteMapElemKey()
 16724  			r.EncodeUint(uint64(yyk1))
 16725  			z.EncWriteMapElemValue()
 16726  			yy5 := &yyv1
 16727  			if yyxt6 := z.Extension(yy5); yyxt6 != nil {
 16728  				z.EncExtension(yy5, yyxt6)
 16729  			} else {
 16730  				yy5.CodecEncodeSelf(e)
 16731  			}
 16732  		}
 16733  		z.EncWriteMapEnd()
 16734  	}
 16735  }
 16736  
 16737  func (x codecSelfer19780) decMapuint8stringUint64T(v *map[uint8]stringUint64T, d *Decoder) {
 16738  	var h codecSelfer19780
 16739  	z, r := GenHelper().Decoder(d)
 16740  	_, _, _ = h, z, r
 16741  
 16742  	yyv1 := *v
 16743  	yyl1 := z.DecReadMapStart()
 16744  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16745  		*v = nil
 16746  	} else {
 16747  		if yyv1 == nil {
 16748  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 25)
 16749  			yyv1 = make(map[uint8]stringUint64T, yyrl1)
 16750  			*v = yyv1
 16751  		}
 16752  		var yymk1 uint8
 16753  		var yymv1 stringUint64T
 16754  		var yymg1, yymdn1 bool
 16755  		if z.DecBasicHandle().MapValueReset {
 16756  			yymg1 = true
 16757  		}
 16758  		if yyl1 != 0 {
 16759  			yyhl1 := yyl1 > 0
 16760  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16761  				z.DecReadMapElemKey()
 16762  				yymk1 = (uint8)(z.C.UintV(r.DecodeUint64(), 8))
 16763  				if yymg1 {
 16764  					yymv1 = yyv1[yymk1]
 16765  				} else {
 16766  					yymv1 = stringUint64T{}
 16767  				}
 16768  				z.DecReadMapElemValue()
 16769  				yymdn1 = false
 16770  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 16771  					z.DecExtension(&yymv1, yyxt4)
 16772  				} else {
 16773  					yymv1.CodecDecodeSelf(d)
 16774  				}
 16775  				if yymdn1 {
 16776  					yyv1[yymk1] = stringUint64T{}
 16777  				} else {
 16778  					yyv1[yymk1] = yymv1
 16779  				}
 16780  			}
 16781  		} // else len==0: leave as-is (do not clear map entries)
 16782  		z.DecReadMapEnd()
 16783  	}
 16784  }
 16785  
 16786  func (x codecSelfer19780) encMapPtrtostringSlicestring(v map[*string][]string, e *Encoder) {
 16787  	var h codecSelfer19780
 16788  	z, r := GenHelper().Encoder(e)
 16789  	_, _, _ = h, z, r
 16790  	if v == nil {
 16791  		r.EncodeNil()
 16792  	} else if z.EncBasicHandle().Canonical {
 16793  		z.EncEncodeMapNonNil(v)
 16794  	} else {
 16795  		z.EncWriteMapStart(len(v))
 16796  		for yyk1, yyv1 := range v {
 16797  			z.EncWriteMapElemKey()
 16798  			if yyk1 == nil {
 16799  				r.EncodeNil()
 16800  			} else {
 16801  				yy2 := *yyk1
 16802  				r.EncodeString(string(yy2))
 16803  			}
 16804  			z.EncWriteMapElemValue()
 16805  			if yyv1 == nil {
 16806  				r.EncodeNil()
 16807  			} else {
 16808  				z.F.EncSliceStringV(yyv1, e)
 16809  			} // end block: if yyv1 slice == nil
 16810  		}
 16811  		z.EncWriteMapEnd()
 16812  	}
 16813  }
 16814  
 16815  func (x codecSelfer19780) decMapPtrtostringSlicestring(v *map[*string][]string, d *Decoder) {
 16816  	var h codecSelfer19780
 16817  	z, r := GenHelper().Decoder(d)
 16818  	_, _, _ = h, z, r
 16819  
 16820  	yyv1 := *v
 16821  	yyl1 := z.DecReadMapStart()
 16822  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16823  		*v = nil
 16824  	} else {
 16825  		if yyv1 == nil {
 16826  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 16827  			yyv1 = make(map[*string][]string, yyrl1)
 16828  			*v = yyv1
 16829  		}
 16830  		var yymk1 *string
 16831  		var yymv1 []string
 16832  		var yymg1, yymdn1 bool
 16833  		if z.DecBasicHandle().MapValueReset {
 16834  			yymg1 = true
 16835  		}
 16836  		if yyl1 != 0 {
 16837  			yyhl1 := yyl1 > 0
 16838  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16839  				z.DecReadMapElemKey()
 16840  				if r.TryNil() {
 16841  					*yymk1 = ""
 16842  				} else {
 16843  					if yymk1 == nil {
 16844  						yymk1 = new(string)
 16845  					}
 16846  					*yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 16847  				}
 16848  				if yymg1 {
 16849  					yymv1 = yyv1[yymk1]
 16850  				} else {
 16851  					yymv1 = nil
 16852  				}
 16853  				z.DecReadMapElemValue()
 16854  				yymdn1 = false
 16855  				z.F.DecSliceStringX(&yymv1, d)
 16856  				if yymdn1 {
 16857  					yyv1[yymk1] = nil
 16858  				} else {
 16859  					yyv1[yymk1] = yymv1
 16860  				}
 16861  			}
 16862  		} // else len==0: leave as-is (do not clear map entries)
 16863  		z.DecReadMapEnd()
 16864  	}
 16865  }
 16866  
 16867  func (x codecSelfer19780) encMapPtrtouint64Slicestring(v map[*uint64][]string, e *Encoder) {
 16868  	var h codecSelfer19780
 16869  	z, r := GenHelper().Encoder(e)
 16870  	_, _, _ = h, z, r
 16871  	if v == nil {
 16872  		r.EncodeNil()
 16873  	} else if z.EncBasicHandle().Canonical {
 16874  		z.EncEncodeMapNonNil(v)
 16875  	} else {
 16876  		z.EncWriteMapStart(len(v))
 16877  		for yyk1, yyv1 := range v {
 16878  			z.EncWriteMapElemKey()
 16879  			if yyk1 == nil {
 16880  				r.EncodeNil()
 16881  			} else {
 16882  				yy2 := *yyk1
 16883  				r.EncodeUint(uint64(yy2))
 16884  			}
 16885  			z.EncWriteMapElemValue()
 16886  			if yyv1 == nil {
 16887  				r.EncodeNil()
 16888  			} else {
 16889  				z.F.EncSliceStringV(yyv1, e)
 16890  			} // end block: if yyv1 slice == nil
 16891  		}
 16892  		z.EncWriteMapEnd()
 16893  	}
 16894  }
 16895  
 16896  func (x codecSelfer19780) decMapPtrtouint64Slicestring(v *map[*uint64][]string, d *Decoder) {
 16897  	var h codecSelfer19780
 16898  	z, r := GenHelper().Decoder(d)
 16899  	_, _, _ = h, z, r
 16900  
 16901  	yyv1 := *v
 16902  	yyl1 := z.DecReadMapStart()
 16903  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16904  		*v = nil
 16905  	} else {
 16906  		if yyv1 == nil {
 16907  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 16908  			yyv1 = make(map[*uint64][]string, yyrl1)
 16909  			*v = yyv1
 16910  		}
 16911  		var yymk1 *uint64
 16912  		var yymv1 []string
 16913  		var yymg1, yymdn1 bool
 16914  		if z.DecBasicHandle().MapValueReset {
 16915  			yymg1 = true
 16916  		}
 16917  		if yyl1 != 0 {
 16918  			yyhl1 := yyl1 > 0
 16919  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 16920  				z.DecReadMapElemKey()
 16921  				if r.TryNil() {
 16922  					*yymk1 = 0
 16923  				} else {
 16924  					if yymk1 == nil {
 16925  						yymk1 = new(uint64)
 16926  					}
 16927  					*yymk1 = (uint64)(r.DecodeUint64())
 16928  				}
 16929  				if yymg1 {
 16930  					yymv1 = yyv1[yymk1]
 16931  				} else {
 16932  					yymv1 = nil
 16933  				}
 16934  				z.DecReadMapElemValue()
 16935  				yymdn1 = false
 16936  				z.F.DecSliceStringX(&yymv1, d)
 16937  				if yymdn1 {
 16938  					yyv1[yymk1] = nil
 16939  				} else {
 16940  					yyv1[yymk1] = yymv1
 16941  				}
 16942  			}
 16943  		} // else len==0: leave as-is (do not clear map entries)
 16944  		z.DecReadMapEnd()
 16945  	}
 16946  }
 16947  
 16948  func (x codecSelfer19780) encMapstringMapuint64stringUint64T(v map[string]map[uint64]stringUint64T, e *Encoder) {
 16949  	var h codecSelfer19780
 16950  	z, r := GenHelper().Encoder(e)
 16951  	_, _, _ = h, z, r
 16952  	if v == nil {
 16953  		r.EncodeNil()
 16954  	} else if z.EncBasicHandle().Canonical {
 16955  		yys1 := make([]string, 0, len(v))
 16956  		for k, _ := range v {
 16957  			yys1 = append(yys1, string(k))
 16958  		}
 16959  		sort.Sort(codecSelfer19780stringSlice(yys1))
 16960  		z.EncWriteMapStart(len(v))
 16961  		for _, yyv1 := range yys1 {
 16962  			z.EncWriteMapElemKey()
 16963  			r.EncodeString(yyv1)
 16964  			z.EncWriteMapElemValue()
 16965  			yye1 := v[string(yyv1)]
 16966  			if yye1 == nil {
 16967  				r.EncodeNil()
 16968  			} else {
 16969  				h.encMapuint64stringUint64T((map[uint64]stringUint64T)(yye1), e)
 16970  			} // end block: if yye1 map == nil
 16971  		}
 16972  		z.EncWriteMapEnd()
 16973  	} else {
 16974  		z.EncWriteMapStart(len(v))
 16975  		for yyk1, yyv1 := range v {
 16976  			z.EncWriteMapElemKey()
 16977  			r.EncodeString(string(yyk1))
 16978  			z.EncWriteMapElemValue()
 16979  			if yyv1 == nil {
 16980  				r.EncodeNil()
 16981  			} else {
 16982  				h.encMapuint64stringUint64T((map[uint64]stringUint64T)(yyv1), e)
 16983  			} // end block: if yyv1 map == nil
 16984  		}
 16985  		z.EncWriteMapEnd()
 16986  	}
 16987  }
 16988  
 16989  func (x codecSelfer19780) decMapstringMapuint64stringUint64T(v *map[string]map[uint64]stringUint64T, d *Decoder) {
 16990  	var h codecSelfer19780
 16991  	z, r := GenHelper().Decoder(d)
 16992  	_, _, _ = h, z, r
 16993  
 16994  	yyv1 := *v
 16995  	yyl1 := z.DecReadMapStart()
 16996  	if yyl1 == codecSelferDecContainerLenNil19780 {
 16997  		*v = nil
 16998  	} else {
 16999  		if yyv1 == nil {
 17000  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 17001  			yyv1 = make(map[string]map[uint64]stringUint64T, yyrl1)
 17002  			*v = yyv1
 17003  		}
 17004  		var yymk1 string
 17005  		var yymv1 map[uint64]stringUint64T
 17006  		var yymg1, yymdn1 bool
 17007  		if z.DecBasicHandle().MapValueReset {
 17008  			yymg1 = true
 17009  		}
 17010  		if yyl1 != 0 {
 17011  			yyhl1 := yyl1 > 0
 17012  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17013  				z.DecReadMapElemKey()
 17014  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 17015  				if yymg1 {
 17016  					yymv1 = yyv1[yymk1]
 17017  				} else {
 17018  					yymv1 = nil
 17019  				}
 17020  				z.DecReadMapElemValue()
 17021  				yymdn1 = false
 17022  				h.decMapuint64stringUint64T((*map[uint64]stringUint64T)(&yymv1), d)
 17023  				if yymdn1 {
 17024  					yyv1[yymk1] = nil
 17025  				} else {
 17026  					yyv1[yymk1] = yymv1
 17027  				}
 17028  			}
 17029  		} // else len==0: leave as-is (do not clear map entries)
 17030  		z.DecReadMapEnd()
 17031  	}
 17032  }
 17033  
 17034  func (x codecSelfer19780) encMapuint64stringUint64T(v map[uint64]stringUint64T, e *Encoder) {
 17035  	var h codecSelfer19780
 17036  	z, r := GenHelper().Encoder(e)
 17037  	_, _, _ = h, z, r
 17038  	if v == nil {
 17039  		r.EncodeNil()
 17040  	} else if z.EncBasicHandle().Canonical {
 17041  		yys1 := make([]uint64, 0, len(v))
 17042  		for k, _ := range v {
 17043  			yys1 = append(yys1, uint64(k))
 17044  		}
 17045  		sort.Sort(codecSelfer19780uint64Slice(yys1))
 17046  		z.EncWriteMapStart(len(v))
 17047  		for _, yyv1 := range yys1 {
 17048  			z.EncWriteMapElemKey()
 17049  			r.EncodeUint(uint64(yyv1))
 17050  			z.EncWriteMapElemValue()
 17051  			yye1 := v[uint64(yyv1)]
 17052  			yy2 := &yye1
 17053  			if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 17054  				z.EncExtension(yy2, yyxt3)
 17055  			} else {
 17056  				yy2.CodecEncodeSelf(e)
 17057  			}
 17058  		}
 17059  		z.EncWriteMapEnd()
 17060  	} else {
 17061  		z.EncWriteMapStart(len(v))
 17062  		for yyk1, yyv1 := range v {
 17063  			z.EncWriteMapElemKey()
 17064  			r.EncodeUint(uint64(yyk1))
 17065  			z.EncWriteMapElemValue()
 17066  			yy5 := &yyv1
 17067  			if yyxt6 := z.Extension(yy5); yyxt6 != nil {
 17068  				z.EncExtension(yy5, yyxt6)
 17069  			} else {
 17070  				yy5.CodecEncodeSelf(e)
 17071  			}
 17072  		}
 17073  		z.EncWriteMapEnd()
 17074  	}
 17075  }
 17076  
 17077  func (x codecSelfer19780) decMapuint64stringUint64T(v *map[uint64]stringUint64T, d *Decoder) {
 17078  	var h codecSelfer19780
 17079  	z, r := GenHelper().Decoder(d)
 17080  	_, _, _ = h, z, r
 17081  
 17082  	yyv1 := *v
 17083  	yyl1 := z.DecReadMapStart()
 17084  	if yyl1 == codecSelferDecContainerLenNil19780 {
 17085  		*v = nil
 17086  	} else {
 17087  		if yyv1 == nil {
 17088  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 17089  			yyv1 = make(map[uint64]stringUint64T, yyrl1)
 17090  			*v = yyv1
 17091  		}
 17092  		var yymk1 uint64
 17093  		var yymv1 stringUint64T
 17094  		var yymg1, yymdn1 bool
 17095  		if z.DecBasicHandle().MapValueReset {
 17096  			yymg1 = true
 17097  		}
 17098  		if yyl1 != 0 {
 17099  			yyhl1 := yyl1 > 0
 17100  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17101  				z.DecReadMapElemKey()
 17102  				yymk1 = (uint64)(r.DecodeUint64())
 17103  				if yymg1 {
 17104  					yymv1 = yyv1[yymk1]
 17105  				} else {
 17106  					yymv1 = stringUint64T{}
 17107  				}
 17108  				z.DecReadMapElemValue()
 17109  				yymdn1 = false
 17110  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 17111  					z.DecExtension(&yymv1, yyxt4)
 17112  				} else {
 17113  					yymv1.CodecDecodeSelf(d)
 17114  				}
 17115  				if yymdn1 {
 17116  					yyv1[yymk1] = stringUint64T{}
 17117  				} else {
 17118  					yyv1[yymk1] = yymv1
 17119  				}
 17120  			}
 17121  		} // else len==0: leave as-is (do not clear map entries)
 17122  		z.DecReadMapEnd()
 17123  	}
 17124  }
 17125  
 17126  func (x codecSelfer19780) encMapintwrapUint64Slice(v map[int]wrapUint64Slice, e *Encoder) {
 17127  	var h codecSelfer19780
 17128  	z, r := GenHelper().Encoder(e)
 17129  	_, _, _ = h, z, r
 17130  	if v == nil {
 17131  		r.EncodeNil()
 17132  	} else if z.EncBasicHandle().Canonical {
 17133  		yys1 := make([]int64, 0, len(v))
 17134  		for k, _ := range v {
 17135  			yys1 = append(yys1, int64(k))
 17136  		}
 17137  		sort.Sort(codecSelfer19780int64Slice(yys1))
 17138  		z.EncWriteMapStart(len(v))
 17139  		for _, yyv1 := range yys1 {
 17140  			z.EncWriteMapElemKey()
 17141  			r.EncodeInt(int64(yyv1))
 17142  			z.EncWriteMapElemValue()
 17143  			yye1 := v[int(yyv1)]
 17144  			if yyxt2 := z.Extension(yye1); yyxt2 != nil {
 17145  				z.EncExtension(yye1, yyxt2)
 17146  			} else {
 17147  				yye1.CodecEncodeSelf(e)
 17148  			}
 17149  		}
 17150  		z.EncWriteMapEnd()
 17151  	} else {
 17152  		z.EncWriteMapStart(len(v))
 17153  		for yyk1, yyv1 := range v {
 17154  			z.EncWriteMapElemKey()
 17155  			r.EncodeInt(int64(yyk1))
 17156  			z.EncWriteMapElemValue()
 17157  			if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 17158  				z.EncExtension(yyv1, yyxt4)
 17159  			} else {
 17160  				yyv1.CodecEncodeSelf(e)
 17161  			}
 17162  		}
 17163  		z.EncWriteMapEnd()
 17164  	}
 17165  }
 17166  
 17167  func (x codecSelfer19780) decMapintwrapUint64Slice(v *map[int]wrapUint64Slice, d *Decoder) {
 17168  	var h codecSelfer19780
 17169  	z, r := GenHelper().Decoder(d)
 17170  	_, _, _ = h, z, r
 17171  
 17172  	yyv1 := *v
 17173  	yyl1 := z.DecReadMapStart()
 17174  	if yyl1 == codecSelferDecContainerLenNil19780 {
 17175  		*v = nil
 17176  	} else {
 17177  		if yyv1 == nil {
 17178  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 17179  			yyv1 = make(map[int]wrapUint64Slice, yyrl1)
 17180  			*v = yyv1
 17181  		}
 17182  		var yymk1 int
 17183  		var yymv1 wrapUint64Slice
 17184  		var yymg1, yymdn1 bool
 17185  		if z.DecBasicHandle().MapValueReset {
 17186  			yymg1 = true
 17187  		}
 17188  		if yyl1 != 0 {
 17189  			yyhl1 := yyl1 > 0
 17190  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17191  				z.DecReadMapElemKey()
 17192  				yymk1 = (int)(z.C.IntV(r.DecodeInt64(), codecSelferBitsize19780))
 17193  				if yymg1 {
 17194  					yymv1 = yyv1[yymk1]
 17195  				} else {
 17196  					yymv1 = nil
 17197  				}
 17198  				z.DecReadMapElemValue()
 17199  				yymdn1 = false
 17200  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 17201  					z.DecExtension(&yymv1, yyxt4)
 17202  				} else {
 17203  					yymv1.CodecDecodeSelf(d)
 17204  				}
 17205  				if yymdn1 {
 17206  					yyv1[yymk1] = nil
 17207  				} else {
 17208  					yyv1[yymk1] = yymv1
 17209  				}
 17210  			}
 17211  		} // else len==0: leave as-is (do not clear map entries)
 17212  		z.DecReadMapEnd()
 17213  	}
 17214  }
 17215  
 17216  func (x codecSelfer19780) encMapfloat64wrapStringSlice(v map[float64]wrapStringSlice, e *Encoder) {
 17217  	var h codecSelfer19780
 17218  	z, r := GenHelper().Encoder(e)
 17219  	_, _, _ = h, z, r
 17220  	if v == nil {
 17221  		r.EncodeNil()
 17222  	} else if z.EncBasicHandle().Canonical {
 17223  		yys1 := make([]float64, 0, len(v))
 17224  		for k, _ := range v {
 17225  			yys1 = append(yys1, float64(k))
 17226  		}
 17227  		sort.Sort(codecSelfer19780float64Slice(yys1))
 17228  		z.EncWriteMapStart(len(v))
 17229  		for _, yyv1 := range yys1 {
 17230  			z.EncWriteMapElemKey()
 17231  			r.EncodeFloat64(yyv1)
 17232  			z.EncWriteMapElemValue()
 17233  			yye1 := v[float64(yyv1)]
 17234  			if yyxt2 := z.Extension(yye1); yyxt2 != nil {
 17235  				z.EncExtension(yye1, yyxt2)
 17236  			} else {
 17237  				yye1.CodecEncodeSelf(e)
 17238  			}
 17239  		}
 17240  		z.EncWriteMapEnd()
 17241  	} else {
 17242  		z.EncWriteMapStart(len(v))
 17243  		for yyk1, yyv1 := range v {
 17244  			z.EncWriteMapElemKey()
 17245  			r.EncodeFloat64(float64(yyk1))
 17246  			z.EncWriteMapElemValue()
 17247  			if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 17248  				z.EncExtension(yyv1, yyxt4)
 17249  			} else {
 17250  				yyv1.CodecEncodeSelf(e)
 17251  			}
 17252  		}
 17253  		z.EncWriteMapEnd()
 17254  	}
 17255  }
 17256  
 17257  func (x codecSelfer19780) decMapfloat64wrapStringSlice(v *map[float64]wrapStringSlice, d *Decoder) {
 17258  	var h codecSelfer19780
 17259  	z, r := GenHelper().Decoder(d)
 17260  	_, _, _ = h, z, r
 17261  
 17262  	yyv1 := *v
 17263  	yyl1 := z.DecReadMapStart()
 17264  	if yyl1 == codecSelferDecContainerLenNil19780 {
 17265  		*v = nil
 17266  	} else {
 17267  		if yyv1 == nil {
 17268  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 17269  			yyv1 = make(map[float64]wrapStringSlice, yyrl1)
 17270  			*v = yyv1
 17271  		}
 17272  		var yymk1 float64
 17273  		var yymv1 wrapStringSlice
 17274  		var yymg1, yymdn1 bool
 17275  		if z.DecBasicHandle().MapValueReset {
 17276  			yymg1 = true
 17277  		}
 17278  		if yyl1 != 0 {
 17279  			yyhl1 := yyl1 > 0
 17280  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17281  				z.DecReadMapElemKey()
 17282  				yymk1 = (float64)(r.DecodeFloat64())
 17283  				if yymg1 {
 17284  					yymv1 = yyv1[yymk1]
 17285  				} else {
 17286  					yymv1 = nil
 17287  				}
 17288  				z.DecReadMapElemValue()
 17289  				yymdn1 = false
 17290  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 17291  					z.DecExtension(&yymv1, yyxt4)
 17292  				} else {
 17293  					yymv1.CodecDecodeSelf(d)
 17294  				}
 17295  				if yymdn1 {
 17296  					yyv1[yymk1] = nil
 17297  				} else {
 17298  					yyv1[yymk1] = yymv1
 17299  				}
 17300  			}
 17301  		} // else len==0: leave as-is (do not clear map entries)
 17302  		z.DecReadMapEnd()
 17303  	}
 17304  }
 17305  
 17306  func (x codecSelfer19780) encMapfloat32wrapStringSlice(v map[float32]wrapStringSlice, e *Encoder) {
 17307  	var h codecSelfer19780
 17308  	z, r := GenHelper().Encoder(e)
 17309  	_, _, _ = h, z, r
 17310  	if v == nil {
 17311  		r.EncodeNil()
 17312  	} else if z.EncBasicHandle().Canonical {
 17313  		yys1 := make([]float64, 0, len(v))
 17314  		for k, _ := range v {
 17315  			yys1 = append(yys1, float64(k))
 17316  		}
 17317  		sort.Sort(codecSelfer19780float64Slice(yys1))
 17318  		z.EncWriteMapStart(len(v))
 17319  		for _, yyv1 := range yys1 {
 17320  			z.EncWriteMapElemKey()
 17321  			r.EncodeFloat32(float32(yyv1))
 17322  			z.EncWriteMapElemValue()
 17323  			yye1 := v[float32(yyv1)]
 17324  			if yyxt2 := z.Extension(yye1); yyxt2 != nil {
 17325  				z.EncExtension(yye1, yyxt2)
 17326  			} else {
 17327  				yye1.CodecEncodeSelf(e)
 17328  			}
 17329  		}
 17330  		z.EncWriteMapEnd()
 17331  	} else {
 17332  		z.EncWriteMapStart(len(v))
 17333  		for yyk1, yyv1 := range v {
 17334  			z.EncWriteMapElemKey()
 17335  			r.EncodeFloat32(float32(yyk1))
 17336  			z.EncWriteMapElemValue()
 17337  			if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 17338  				z.EncExtension(yyv1, yyxt4)
 17339  			} else {
 17340  				yyv1.CodecEncodeSelf(e)
 17341  			}
 17342  		}
 17343  		z.EncWriteMapEnd()
 17344  	}
 17345  }
 17346  
 17347  func (x codecSelfer19780) decMapfloat32wrapStringSlice(v *map[float32]wrapStringSlice, d *Decoder) {
 17348  	var h codecSelfer19780
 17349  	z, r := GenHelper().Decoder(d)
 17350  	_, _, _ = h, z, r
 17351  
 17352  	yyv1 := *v
 17353  	yyl1 := z.DecReadMapStart()
 17354  	if yyl1 == codecSelferDecContainerLenNil19780 {
 17355  		*v = nil
 17356  	} else {
 17357  		if yyv1 == nil {
 17358  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 28)
 17359  			yyv1 = make(map[float32]wrapStringSlice, yyrl1)
 17360  			*v = yyv1
 17361  		}
 17362  		var yymk1 float32
 17363  		var yymv1 wrapStringSlice
 17364  		var yymg1, yymdn1 bool
 17365  		if z.DecBasicHandle().MapValueReset {
 17366  			yymg1 = true
 17367  		}
 17368  		if yyl1 != 0 {
 17369  			yyhl1 := yyl1 > 0
 17370  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17371  				z.DecReadMapElemKey()
 17372  				yymk1 = (float32)(z.DecDecodeFloat32())
 17373  				if yymg1 {
 17374  					yymv1 = yyv1[yymk1]
 17375  				} else {
 17376  					yymv1 = nil
 17377  				}
 17378  				z.DecReadMapElemValue()
 17379  				yymdn1 = false
 17380  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 17381  					z.DecExtension(&yymv1, yyxt4)
 17382  				} else {
 17383  					yymv1.CodecDecodeSelf(d)
 17384  				}
 17385  				if yymdn1 {
 17386  					yyv1[yymk1] = nil
 17387  				} else {
 17388  					yyv1[yymk1] = yymv1
 17389  				}
 17390  			}
 17391  		} // else len==0: leave as-is (do not clear map entries)
 17392  		z.DecReadMapEnd()
 17393  	}
 17394  }
 17395  
 17396  func (x codecSelfer19780) encMapuint64wrapStringSlice(v map[uint64]wrapStringSlice, e *Encoder) {
 17397  	var h codecSelfer19780
 17398  	z, r := GenHelper().Encoder(e)
 17399  	_, _, _ = h, z, r
 17400  	if v == nil {
 17401  		r.EncodeNil()
 17402  	} else if z.EncBasicHandle().Canonical {
 17403  		yys1 := make([]uint64, 0, len(v))
 17404  		for k, _ := range v {
 17405  			yys1 = append(yys1, uint64(k))
 17406  		}
 17407  		sort.Sort(codecSelfer19780uint64Slice(yys1))
 17408  		z.EncWriteMapStart(len(v))
 17409  		for _, yyv1 := range yys1 {
 17410  			z.EncWriteMapElemKey()
 17411  			r.EncodeUint(uint64(yyv1))
 17412  			z.EncWriteMapElemValue()
 17413  			yye1 := v[uint64(yyv1)]
 17414  			if yyxt2 := z.Extension(yye1); yyxt2 != nil {
 17415  				z.EncExtension(yye1, yyxt2)
 17416  			} else {
 17417  				yye1.CodecEncodeSelf(e)
 17418  			}
 17419  		}
 17420  		z.EncWriteMapEnd()
 17421  	} else {
 17422  		z.EncWriteMapStart(len(v))
 17423  		for yyk1, yyv1 := range v {
 17424  			z.EncWriteMapElemKey()
 17425  			r.EncodeUint(uint64(yyk1))
 17426  			z.EncWriteMapElemValue()
 17427  			if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 17428  				z.EncExtension(yyv1, yyxt4)
 17429  			} else {
 17430  				yyv1.CodecEncodeSelf(e)
 17431  			}
 17432  		}
 17433  		z.EncWriteMapEnd()
 17434  	}
 17435  }
 17436  
 17437  func (x codecSelfer19780) decMapuint64wrapStringSlice(v *map[uint64]wrapStringSlice, d *Decoder) {
 17438  	var h codecSelfer19780
 17439  	z, r := GenHelper().Decoder(d)
 17440  	_, _, _ = h, z, r
 17441  
 17442  	yyv1 := *v
 17443  	yyl1 := z.DecReadMapStart()
 17444  	if yyl1 == codecSelferDecContainerLenNil19780 {
 17445  		*v = nil
 17446  	} else {
 17447  		if yyv1 == nil {
 17448  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 17449  			yyv1 = make(map[uint64]wrapStringSlice, yyrl1)
 17450  			*v = yyv1
 17451  		}
 17452  		var yymk1 uint64
 17453  		var yymv1 wrapStringSlice
 17454  		var yymg1, yymdn1 bool
 17455  		if z.DecBasicHandle().MapValueReset {
 17456  			yymg1 = true
 17457  		}
 17458  		if yyl1 != 0 {
 17459  			yyhl1 := yyl1 > 0
 17460  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17461  				z.DecReadMapElemKey()
 17462  				yymk1 = (uint64)(r.DecodeUint64())
 17463  				if yymg1 {
 17464  					yymv1 = yyv1[yymk1]
 17465  				} else {
 17466  					yymv1 = nil
 17467  				}
 17468  				z.DecReadMapElemValue()
 17469  				yymdn1 = false
 17470  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 17471  					z.DecExtension(&yymv1, yyxt4)
 17472  				} else {
 17473  					yymv1.CodecDecodeSelf(d)
 17474  				}
 17475  				if yymdn1 {
 17476  					yyv1[yymk1] = nil
 17477  				} else {
 17478  					yyv1[yymk1] = yymv1
 17479  				}
 17480  			}
 17481  		} // else len==0: leave as-is (do not clear map entries)
 17482  		z.DecReadMapEnd()
 17483  	}
 17484  }
 17485  
 17486  func (x codecSelfer19780) encMapstringUint64TwrapStringSlice(v map[stringUint64T]wrapStringSlice, e *Encoder) {
 17487  	var h codecSelfer19780
 17488  	z, r := GenHelper().Encoder(e)
 17489  	_, _, _ = h, z, r
 17490  	if v == nil {
 17491  		r.EncodeNil()
 17492  	} else if z.EncBasicHandle().Canonical {
 17493  		z.EncEncodeMapNonNil(v)
 17494  	} else {
 17495  		z.EncWriteMapStart(len(v))
 17496  		for yyk1, yyv1 := range v {
 17497  			z.EncWriteMapElemKey()
 17498  			yy2 := &yyk1
 17499  			if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 17500  				z.EncExtension(yy2, yyxt3)
 17501  			} else {
 17502  				yy2.CodecEncodeSelf(e)
 17503  			}
 17504  			z.EncWriteMapElemValue()
 17505  			if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 17506  				z.EncExtension(yyv1, yyxt4)
 17507  			} else {
 17508  				yyv1.CodecEncodeSelf(e)
 17509  			}
 17510  		}
 17511  		z.EncWriteMapEnd()
 17512  	}
 17513  }
 17514  
 17515  func (x codecSelfer19780) decMapstringUint64TwrapStringSlice(v *map[stringUint64T]wrapStringSlice, d *Decoder) {
 17516  	var h codecSelfer19780
 17517  	z, r := GenHelper().Decoder(d)
 17518  	_, _, _ = h, z, r
 17519  
 17520  	yyv1 := *v
 17521  	yyl1 := z.DecReadMapStart()
 17522  	if yyl1 == codecSelferDecContainerLenNil19780 {
 17523  		*v = nil
 17524  	} else {
 17525  		if yyv1 == nil {
 17526  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 48)
 17527  			yyv1 = make(map[stringUint64T]wrapStringSlice, yyrl1)
 17528  			*v = yyv1
 17529  		}
 17530  		var yymk1 stringUint64T
 17531  		var yymv1 wrapStringSlice
 17532  		var yymg1, yymdn1 bool
 17533  		if z.DecBasicHandle().MapValueReset {
 17534  			yymg1 = true
 17535  		}
 17536  		if yyl1 != 0 {
 17537  			yyhl1 := yyl1 > 0
 17538  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17539  				z.DecReadMapElemKey()
 17540  				if yyxt3 := z.Extension(yymk1); yyxt3 != nil {
 17541  					z.DecExtension(&yymk1, yyxt3)
 17542  				} else {
 17543  					yymk1.CodecDecodeSelf(d)
 17544  				}
 17545  				if yymg1 {
 17546  					yymv1 = yyv1[yymk1]
 17547  				} else {
 17548  					yymv1 = nil
 17549  				}
 17550  				z.DecReadMapElemValue()
 17551  				yymdn1 = false
 17552  				if yyxt5 := z.Extension(yymv1); yyxt5 != nil {
 17553  					z.DecExtension(&yymv1, yyxt5)
 17554  				} else {
 17555  					yymv1.CodecDecodeSelf(d)
 17556  				}
 17557  				if yymdn1 {
 17558  					yyv1[yymk1] = nil
 17559  				} else {
 17560  					yyv1[yymk1] = yymv1
 17561  				}
 17562  			}
 17563  		} // else len==0: leave as-is (do not clear map entries)
 17564  		z.DecReadMapEnd()
 17565  	}
 17566  }
 17567  
 17568  func (x codecSelfer19780) encSlicewrapBytes(v []wrapBytes, e *Encoder) {
 17569  	var h codecSelfer19780
 17570  	z, r := GenHelper().Encoder(e)
 17571  	_, _, _ = h, z, r
 17572  	if v == nil {
 17573  		r.EncodeNil()
 17574  		return
 17575  	}
 17576  	z.EncWriteArrayStart(len(v))
 17577  	for yyv1 := range v {
 17578  		z.EncWriteArrayElem()
 17579  		if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 17580  			z.EncExtension(v[yyv1], yyxt2)
 17581  		} else {
 17582  			v[yyv1].CodecEncodeSelf(e)
 17583  		}
 17584  	}
 17585  	z.EncWriteArrayEnd()
 17586  }
 17587  
 17588  func (x codecSelfer19780) decSlicewrapBytes(v *[]wrapBytes, d *Decoder) {
 17589  	var h codecSelfer19780
 17590  	z, r := GenHelper().Decoder(d)
 17591  	_, _, _ = h, z, r
 17592  
 17593  	yyv1 := *v
 17594  	yyh1, yyl1 := z.DecSliceHelperStart()
 17595  	var yyc1 bool
 17596  	_ = yyc1
 17597  	if yyh1.IsNil {
 17598  		if yyv1 != nil {
 17599  			yyv1 = nil
 17600  			yyc1 = true
 17601  		}
 17602  	} else if yyl1 == 0 {
 17603  		if yyv1 == nil {
 17604  			yyv1 = []wrapBytes{}
 17605  			yyc1 = true
 17606  		} else if len(yyv1) != 0 {
 17607  			yyv1 = yyv1[:0]
 17608  			yyc1 = true
 17609  		}
 17610  	} else {
 17611  		yyhl1 := yyl1 > 0
 17612  		var yyrl1 int
 17613  		_ = yyrl1
 17614  		if yyhl1 {
 17615  			if yyl1 > cap(yyv1) {
 17616  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 17617  				if yyrl1 <= cap(yyv1) {
 17618  					yyv1 = yyv1[:yyrl1]
 17619  				} else {
 17620  					yyv1 = make([]wrapBytes, yyrl1)
 17621  				}
 17622  				yyc1 = true
 17623  			} else if yyl1 != len(yyv1) {
 17624  				yyv1 = yyv1[:yyl1]
 17625  				yyc1 = true
 17626  			}
 17627  		}
 17628  		var yyj1 int
 17629  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17630  			if yyj1 == 0 && yyv1 == nil {
 17631  				if yyhl1 {
 17632  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 17633  				} else {
 17634  					yyrl1 = 8
 17635  				}
 17636  				yyv1 = make([]wrapBytes, yyrl1)
 17637  				yyc1 = true
 17638  			}
 17639  			yyh1.ElemContainerState(yyj1)
 17640  			var yydb1 bool
 17641  			if yyj1 >= len(yyv1) {
 17642  				yyv1 = append(yyv1, nil)
 17643  				yyc1 = true
 17644  			}
 17645  			if yydb1 {
 17646  				z.DecSwallow()
 17647  			} else {
 17648  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 17649  					z.DecExtension(&yyv1[yyj1], yyxt3)
 17650  				} else {
 17651  					yyv1[yyj1].CodecDecodeSelf(d)
 17652  				}
 17653  			}
 17654  		}
 17655  		if yyj1 < len(yyv1) {
 17656  			yyv1 = yyv1[:yyj1]
 17657  			yyc1 = true
 17658  		} else if yyj1 == 0 && yyv1 == nil {
 17659  			yyv1 = []wrapBytes{}
 17660  			yyc1 = true
 17661  		}
 17662  	}
 17663  	yyh1.End()
 17664  	if yyc1 {
 17665  		*v = yyv1
 17666  	}
 17667  }
 17668  
 17669  func (x codecSelfer19780) encSlicewrapUint8(v []wrapUint8, e *Encoder) {
 17670  	var h codecSelfer19780
 17671  	z, r := GenHelper().Encoder(e)
 17672  	_, _, _ = h, z, r
 17673  	if v == nil {
 17674  		r.EncodeNil()
 17675  		return
 17676  	}
 17677  	z.EncWriteArrayStart(len(v))
 17678  	for yyv1 := range v {
 17679  		z.EncWriteArrayElem()
 17680  		if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 17681  			z.EncExtension(v[yyv1], yyxt2)
 17682  		} else {
 17683  			v[yyv1].CodecEncodeSelf(e)
 17684  		}
 17685  	}
 17686  	z.EncWriteArrayEnd()
 17687  }
 17688  
 17689  func (x codecSelfer19780) decSlicewrapUint8(v *[]wrapUint8, d *Decoder) {
 17690  	var h codecSelfer19780
 17691  	z, r := GenHelper().Decoder(d)
 17692  	_, _, _ = h, z, r
 17693  
 17694  	yyv1 := *v
 17695  	yyh1, yyl1 := z.DecSliceHelperStart()
 17696  	var yyc1 bool
 17697  	_ = yyc1
 17698  	if yyh1.IsNil {
 17699  		if yyv1 != nil {
 17700  			yyv1 = nil
 17701  			yyc1 = true
 17702  		}
 17703  	} else if yyl1 == 0 {
 17704  		if yyv1 == nil {
 17705  			yyv1 = []wrapUint8{}
 17706  			yyc1 = true
 17707  		} else if len(yyv1) != 0 {
 17708  			yyv1 = yyv1[:0]
 17709  			yyc1 = true
 17710  		}
 17711  	} else {
 17712  		yyhl1 := yyl1 > 0
 17713  		var yyrl1 int
 17714  		_ = yyrl1
 17715  		if yyhl1 {
 17716  			if yyl1 > cap(yyv1) {
 17717  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
 17718  				if yyrl1 <= cap(yyv1) {
 17719  					yyv1 = yyv1[:yyrl1]
 17720  				} else {
 17721  					yyv1 = make([]wrapUint8, yyrl1)
 17722  				}
 17723  				yyc1 = true
 17724  			} else if yyl1 != len(yyv1) {
 17725  				yyv1 = yyv1[:yyl1]
 17726  				yyc1 = true
 17727  			}
 17728  		}
 17729  		var yyj1 int
 17730  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17731  			if yyj1 == 0 && yyv1 == nil {
 17732  				if yyhl1 {
 17733  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1)
 17734  				} else {
 17735  					yyrl1 = 8
 17736  				}
 17737  				yyv1 = make([]wrapUint8, yyrl1)
 17738  				yyc1 = true
 17739  			}
 17740  			yyh1.ElemContainerState(yyj1)
 17741  			var yydb1 bool
 17742  			if yyj1 >= len(yyv1) {
 17743  				yyv1 = append(yyv1, 0)
 17744  				yyc1 = true
 17745  			}
 17746  			if yydb1 {
 17747  				z.DecSwallow()
 17748  			} else {
 17749  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 17750  					z.DecExtension(&yyv1[yyj1], yyxt3)
 17751  				} else {
 17752  					yyv1[yyj1].CodecDecodeSelf(d)
 17753  				}
 17754  			}
 17755  		}
 17756  		if yyj1 < len(yyv1) {
 17757  			yyv1 = yyv1[:yyj1]
 17758  			yyc1 = true
 17759  		} else if yyj1 == 0 && yyv1 == nil {
 17760  			yyv1 = []wrapUint8{}
 17761  			yyc1 = true
 17762  		}
 17763  	}
 17764  	yyh1.End()
 17765  	if yyc1 {
 17766  		*v = yyv1
 17767  	}
 17768  }
 17769  
 17770  func (x codecSelfer19780) encArray4stringUint64T(v *[4]stringUint64T, e *Encoder) {
 17771  	var h codecSelfer19780
 17772  	z, r := GenHelper().Encoder(e)
 17773  	_, _, _ = h, z, r
 17774  	if v == nil {
 17775  		r.EncodeNil()
 17776  		return
 17777  	}
 17778  	z.EncWriteArrayStart(len(v))
 17779  	for yyv1 := range v {
 17780  		z.EncWriteArrayElem()
 17781  		yy2 := &v[yyv1]
 17782  		if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 17783  			z.EncExtension(yy2, yyxt3)
 17784  		} else {
 17785  			yy2.CodecEncodeSelf(e)
 17786  		}
 17787  	}
 17788  	z.EncWriteArrayEnd()
 17789  }
 17790  
 17791  func (x codecSelfer19780) decArray4stringUint64T(v *[4]stringUint64T, d *Decoder) {
 17792  	var h codecSelfer19780
 17793  	z, r := GenHelper().Decoder(d)
 17794  	_, _, _ = h, z, r
 17795  
 17796  	yyv1 := v
 17797  	yyh1, yyl1 := z.DecSliceHelperStart()
 17798  	if yyl1 == 0 {
 17799  	} else {
 17800  		yyhl1 := yyl1 > 0
 17801  		var yyrl1 int
 17802  		_ = yyrl1
 17803  		var yyj1 int
 17804  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17805  			yyh1.ElemContainerState(yyj1)
 17806  			var yydb1 bool
 17807  			if yyj1 >= len(yyv1) {
 17808  				z.DecArrayCannotExpand(len(v), yyj1+1)
 17809  				yydb1 = true
 17810  			}
 17811  			if yydb1 {
 17812  				z.DecSwallow()
 17813  			} else {
 17814  				if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 17815  					z.DecExtension(&yyv1[yyj1], yyxt3)
 17816  				} else {
 17817  					yyv1[yyj1].CodecDecodeSelf(d)
 17818  				}
 17819  			}
 17820  		}
 17821  	}
 17822  	yyh1.End()
 17823  }
 17824  
 17825  func (x codecSelfer19780) encArray4uint64(v *[4]uint64, e *Encoder) {
 17826  	var h codecSelfer19780
 17827  	z, r := GenHelper().Encoder(e)
 17828  	_, _, _ = h, z, r
 17829  	if v == nil {
 17830  		r.EncodeNil()
 17831  		return
 17832  	}
 17833  	z.EncWriteArrayStart(len(v))
 17834  	for yyv1 := range v {
 17835  		z.EncWriteArrayElem()
 17836  		r.EncodeUint(uint64(v[yyv1]))
 17837  	}
 17838  	z.EncWriteArrayEnd()
 17839  }
 17840  
 17841  func (x codecSelfer19780) decArray4uint64(v *[4]uint64, d *Decoder) {
 17842  	var h codecSelfer19780
 17843  	z, r := GenHelper().Decoder(d)
 17844  	_, _, _ = h, z, r
 17845  
 17846  	yyv1 := v
 17847  	yyh1, yyl1 := z.DecSliceHelperStart()
 17848  	if yyl1 == 0 {
 17849  	} else {
 17850  		yyhl1 := yyl1 > 0
 17851  		var yyrl1 int
 17852  		_ = yyrl1
 17853  		var yyj1 int
 17854  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17855  			yyh1.ElemContainerState(yyj1)
 17856  			var yydb1 bool
 17857  			if yyj1 >= len(yyv1) {
 17858  				z.DecArrayCannotExpand(len(v), yyj1+1)
 17859  				yydb1 = true
 17860  			}
 17861  			if yydb1 {
 17862  				z.DecSwallow()
 17863  			} else {
 17864  				yyv1[yyj1] = (uint64)(r.DecodeUint64())
 17865  			}
 17866  		}
 17867  	}
 17868  	yyh1.End()
 17869  }
 17870  
 17871  func (x codecSelfer19780) encSlicePtrtoArray4uint64(v []*[4]uint64, e *Encoder) {
 17872  	var h codecSelfer19780
 17873  	z, r := GenHelper().Encoder(e)
 17874  	_, _, _ = h, z, r
 17875  	if v == nil {
 17876  		r.EncodeNil()
 17877  		return
 17878  	}
 17879  	z.EncWriteArrayStart(len(v))
 17880  	for yyv1 := range v {
 17881  		z.EncWriteArrayElem()
 17882  		if v[yyv1] == nil {
 17883  			r.EncodeNil()
 17884  		} else {
 17885  			h.encArray4uint64((*[4]uint64)(v[yyv1]), e)
 17886  		}
 17887  	}
 17888  	z.EncWriteArrayEnd()
 17889  }
 17890  
 17891  func (x codecSelfer19780) decSlicePtrtoArray4uint64(v *[]*[4]uint64, d *Decoder) {
 17892  	var h codecSelfer19780
 17893  	z, r := GenHelper().Decoder(d)
 17894  	_, _, _ = h, z, r
 17895  
 17896  	yyv1 := *v
 17897  	yyh1, yyl1 := z.DecSliceHelperStart()
 17898  	var yyc1 bool
 17899  	_ = yyc1
 17900  	if yyh1.IsNil {
 17901  		if yyv1 != nil {
 17902  			yyv1 = nil
 17903  			yyc1 = true
 17904  		}
 17905  	} else if yyl1 == 0 {
 17906  		if yyv1 == nil {
 17907  			yyv1 = []*[4]uint64{}
 17908  			yyc1 = true
 17909  		} else if len(yyv1) != 0 {
 17910  			yyv1 = yyv1[:0]
 17911  			yyc1 = true
 17912  		}
 17913  	} else {
 17914  		yyhl1 := yyl1 > 0
 17915  		var yyrl1 int
 17916  		_ = yyrl1
 17917  		if yyhl1 {
 17918  			if yyl1 > cap(yyv1) {
 17919  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 17920  				if yyrl1 <= cap(yyv1) {
 17921  					yyv1 = yyv1[:yyrl1]
 17922  				} else {
 17923  					yyv1 = make([]*[4]uint64, yyrl1)
 17924  				}
 17925  				yyc1 = true
 17926  			} else if yyl1 != len(yyv1) {
 17927  				yyv1 = yyv1[:yyl1]
 17928  				yyc1 = true
 17929  			}
 17930  		}
 17931  		var yyj1 int
 17932  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 17933  			if yyj1 == 0 && yyv1 == nil {
 17934  				if yyhl1 {
 17935  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 17936  				} else {
 17937  					yyrl1 = 8
 17938  				}
 17939  				yyv1 = make([]*[4]uint64, yyrl1)
 17940  				yyc1 = true
 17941  			}
 17942  			yyh1.ElemContainerState(yyj1)
 17943  			var yydb1 bool
 17944  			if yyj1 >= len(yyv1) {
 17945  				yyv1 = append(yyv1, nil)
 17946  				yyc1 = true
 17947  			}
 17948  			if yydb1 {
 17949  				z.DecSwallow()
 17950  			} else {
 17951  				if r.TryNil() {
 17952  					yyv1[yyj1] = nil
 17953  				} else {
 17954  					if yyv1[yyj1] == nil {
 17955  						yyv1[yyj1] = new([4]uint64)
 17956  					}
 17957  					h.decArray4uint64((*[4]uint64)(yyv1[yyj1]), d)
 17958  				}
 17959  			}
 17960  		}
 17961  		if yyj1 < len(yyv1) {
 17962  			yyv1 = yyv1[:yyj1]
 17963  			yyc1 = true
 17964  		} else if yyj1 == 0 && yyv1 == nil {
 17965  			yyv1 = []*[4]uint64{}
 17966  			yyc1 = true
 17967  		}
 17968  	}
 17969  	yyh1.End()
 17970  	if yyc1 {
 17971  		*v = yyv1
 17972  	}
 17973  }
 17974  
 17975  func (x codecSelfer19780) encMapstringUint64TPtrtostringUint64T(v map[stringUint64T]*stringUint64T, e *Encoder) {
 17976  	var h codecSelfer19780
 17977  	z, r := GenHelper().Encoder(e)
 17978  	_, _, _ = h, z, r
 17979  	if v == nil {
 17980  		r.EncodeNil()
 17981  	} else if z.EncBasicHandle().Canonical {
 17982  		z.EncEncodeMapNonNil(v)
 17983  	} else {
 17984  		z.EncWriteMapStart(len(v))
 17985  		for yyk1, yyv1 := range v {
 17986  			z.EncWriteMapElemKey()
 17987  			yy2 := &yyk1
 17988  			if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 17989  				z.EncExtension(yy2, yyxt3)
 17990  			} else {
 17991  				yy2.CodecEncodeSelf(e)
 17992  			}
 17993  			z.EncWriteMapElemValue()
 17994  			if yyv1 == nil {
 17995  				r.EncodeNil()
 17996  			} else {
 17997  				if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 17998  					z.EncExtension(yyv1, yyxt4)
 17999  				} else {
 18000  					yyv1.CodecEncodeSelf(e)
 18001  				}
 18002  			}
 18003  		}
 18004  		z.EncWriteMapEnd()
 18005  	}
 18006  }
 18007  
 18008  func (x codecSelfer19780) decMapstringUint64TPtrtostringUint64T(v *map[stringUint64T]*stringUint64T, d *Decoder) {
 18009  	var h codecSelfer19780
 18010  	z, r := GenHelper().Decoder(d)
 18011  	_, _, _ = h, z, r
 18012  
 18013  	yyv1 := *v
 18014  	yyl1 := z.DecReadMapStart()
 18015  	if yyl1 == codecSelferDecContainerLenNil19780 {
 18016  		*v = nil
 18017  	} else {
 18018  		if yyv1 == nil {
 18019  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 18020  			yyv1 = make(map[stringUint64T]*stringUint64T, yyrl1)
 18021  			*v = yyv1
 18022  		}
 18023  		var yymk1 stringUint64T
 18024  		var yymv1 *stringUint64T
 18025  		var yymg1, yymdn1, yyms1, yymok1 bool
 18026  		if z.DecBasicHandle().MapValueReset {
 18027  			yymg1 = true
 18028  		}
 18029  		if yyl1 != 0 {
 18030  			yyhl1 := yyl1 > 0
 18031  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 18032  				z.DecReadMapElemKey()
 18033  				if yyxt3 := z.Extension(yymk1); yyxt3 != nil {
 18034  					z.DecExtension(&yymk1, yyxt3)
 18035  				} else {
 18036  					yymk1.CodecDecodeSelf(d)
 18037  				}
 18038  				yyms1 = true
 18039  				if yymg1 {
 18040  					yymv1, yymok1 = yyv1[yymk1]
 18041  					if yymok1 {
 18042  						yyms1 = false
 18043  					}
 18044  				} else {
 18045  					yymv1 = nil
 18046  				}
 18047  				z.DecReadMapElemValue()
 18048  				yymdn1 = false
 18049  				if r.TryNil() {
 18050  					yymdn1 = true
 18051  				} else {
 18052  					if yymv1 == nil {
 18053  						yymv1 = new(stringUint64T)
 18054  					}
 18055  					if yyxt5 := z.Extension(yymv1); yyxt5 != nil {
 18056  						z.DecExtension(yymv1, yyxt5)
 18057  					} else {
 18058  						yymv1.CodecDecodeSelf(d)
 18059  					}
 18060  				}
 18061  				if yymdn1 {
 18062  					yyv1[yymk1] = nil
 18063  				} else if yyms1 {
 18064  					yyv1[yymk1] = yymv1
 18065  				}
 18066  			}
 18067  		} // else len==0: leave as-is (do not clear map entries)
 18068  		z.DecReadMapEnd()
 18069  	}
 18070  }
 18071  
 18072  func (x codecSelfer19780) encMapwrapStringInterface(v map[wrapString]interface{}, e *Encoder) {
 18073  	var h codecSelfer19780
 18074  	z, r := GenHelper().Encoder(e)
 18075  	_, _, _ = h, z, r
 18076  	if v == nil {
 18077  		r.EncodeNil()
 18078  	} else if z.EncBasicHandle().Canonical {
 18079  		var yyvv1 wrapString
 18080  		yyencfn1 := z.EncFnGivenAddr(&yyvv1)
 18081  		yys1 := make([]string, 0, len(v))
 18082  		for k, _ := range v {
 18083  			yys1 = append(yys1, string(k))
 18084  		}
 18085  		sort.Sort(codecSelfer19780stringSlice(yys1))
 18086  		z.EncWriteMapStart(len(v))
 18087  		for _, yyv1 := range yys1 {
 18088  			z.EncWriteMapElemKey()
 18089  			yyvv1 = wrapString(yyv1)
 18090  			z.EncEncodeNumBoolStrKindGivenAddr(&yyvv1, yyencfn1)
 18091  			z.EncWriteMapElemValue()
 18092  			yye1 := v[yyvv1]
 18093  			if yye1 == nil {
 18094  				r.EncodeNil()
 18095  			} else {
 18096  				z.EncFallback(yye1)
 18097  			}
 18098  		}
 18099  		z.EncWriteMapEnd()
 18100  	} else {
 18101  		z.EncWriteMapStart(len(v))
 18102  		for yyk1, yyv1 := range v {
 18103  			z.EncWriteMapElemKey()
 18104  			if yyxt3 := z.Extension(yyk1); yyxt3 != nil {
 18105  				z.EncExtension(yyk1, yyxt3)
 18106  			} else {
 18107  				yyk1.CodecEncodeSelf(e)
 18108  			}
 18109  			z.EncWriteMapElemValue()
 18110  			if yyv1 == nil {
 18111  				r.EncodeNil()
 18112  			} else {
 18113  				z.EncFallback(yyv1)
 18114  			}
 18115  		}
 18116  		z.EncWriteMapEnd()
 18117  	}
 18118  }
 18119  
 18120  func (x codecSelfer19780) decMapwrapStringInterface(v *map[wrapString]interface{}, d *Decoder) {
 18121  	var h codecSelfer19780
 18122  	z, r := GenHelper().Decoder(d)
 18123  	_, _, _ = h, z, r
 18124  
 18125  	yyv1 := *v
 18126  	yyl1 := z.DecReadMapStart()
 18127  	if yyl1 == codecSelferDecContainerLenNil19780 {
 18128  		*v = nil
 18129  	} else {
 18130  		if yyv1 == nil {
 18131  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 32)
 18132  			yyv1 = make(map[wrapString]interface{}, yyrl1)
 18133  			*v = yyv1
 18134  		}
 18135  		var yymk1 wrapString
 18136  		var yymv1 interface{}
 18137  		var yymg1, yymdn1 bool
 18138  		if z.DecBasicHandle().MapValueReset {
 18139  			if !z.DecBasicHandle().InterfaceReset {
 18140  				yymg1 = true
 18141  			}
 18142  		}
 18143  		if yyl1 != 0 {
 18144  			yyhl1 := yyl1 > 0
 18145  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 18146  				z.DecReadMapElemKey()
 18147  				if yyxt3 := z.Extension(yymk1); yyxt3 != nil {
 18148  					z.DecExtension(&yymk1, yyxt3)
 18149  				} else {
 18150  					yymk1.CodecDecodeSelf(d)
 18151  				}
 18152  				if yymg1 {
 18153  					yymv1 = yyv1[yymk1]
 18154  				} else {
 18155  					yymv1 = nil
 18156  				}
 18157  				z.DecReadMapElemValue()
 18158  				yymdn1 = false
 18159  				z.DecFallback(&yymv1, true)
 18160  				if yymdn1 {
 18161  					yyv1[yymk1] = nil
 18162  				} else {
 18163  					yyv1[yymk1] = yymv1
 18164  				}
 18165  			}
 18166  		} // else len==0: leave as-is (do not clear map entries)
 18167  		z.DecReadMapEnd()
 18168  	}
 18169  }
 18170  
 18171  func (x codecSelfer19780) encMapstringPtrtoTestStrucFlex(v map[string]*TestStrucFlex, e *Encoder) {
 18172  	var h codecSelfer19780
 18173  	z, r := GenHelper().Encoder(e)
 18174  	_, _, _ = h, z, r
 18175  	if v == nil {
 18176  		r.EncodeNil()
 18177  	} else if z.EncBasicHandle().Canonical {
 18178  		yys1 := make([]string, 0, len(v))
 18179  		for k, _ := range v {
 18180  			yys1 = append(yys1, string(k))
 18181  		}
 18182  		sort.Sort(codecSelfer19780stringSlice(yys1))
 18183  		z.EncWriteMapStart(len(v))
 18184  		for _, yyv1 := range yys1 {
 18185  			z.EncWriteMapElemKey()
 18186  			r.EncodeString(yyv1)
 18187  			z.EncWriteMapElemValue()
 18188  			yye1 := v[string(yyv1)]
 18189  			if yye1 == nil {
 18190  				r.EncodeNil()
 18191  			} else {
 18192  				if yyxt2 := z.Extension(yye1); yyxt2 != nil {
 18193  					z.EncExtension(yye1, yyxt2)
 18194  				} else {
 18195  					yye1.CodecEncodeSelf(e)
 18196  				}
 18197  			}
 18198  		}
 18199  		z.EncWriteMapEnd()
 18200  	} else {
 18201  		z.EncWriteMapStart(len(v))
 18202  		for yyk1, yyv1 := range v {
 18203  			z.EncWriteMapElemKey()
 18204  			r.EncodeString(string(yyk1))
 18205  			z.EncWriteMapElemValue()
 18206  			if yyv1 == nil {
 18207  				r.EncodeNil()
 18208  			} else {
 18209  				if yyxt4 := z.Extension(yyv1); yyxt4 != nil {
 18210  					z.EncExtension(yyv1, yyxt4)
 18211  				} else {
 18212  					yyv1.CodecEncodeSelf(e)
 18213  				}
 18214  			}
 18215  		}
 18216  		z.EncWriteMapEnd()
 18217  	}
 18218  }
 18219  
 18220  func (x codecSelfer19780) decMapstringPtrtoTestStrucFlex(v *map[string]*TestStrucFlex, d *Decoder) {
 18221  	var h codecSelfer19780
 18222  	z, r := GenHelper().Decoder(d)
 18223  	_, _, _ = h, z, r
 18224  
 18225  	yyv1 := *v
 18226  	yyl1 := z.DecReadMapStart()
 18227  	if yyl1 == codecSelferDecContainerLenNil19780 {
 18228  		*v = nil
 18229  	} else {
 18230  		if yyv1 == nil {
 18231  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 24)
 18232  			yyv1 = make(map[string]*TestStrucFlex, yyrl1)
 18233  			*v = yyv1
 18234  		}
 18235  		var yymk1 string
 18236  		var yymv1 *TestStrucFlex
 18237  		var yymg1, yymdn1, yyms1, yymok1 bool
 18238  		if z.DecBasicHandle().MapValueReset {
 18239  			yymg1 = true
 18240  		}
 18241  		if yyl1 != 0 {
 18242  			yyhl1 := yyl1 > 0
 18243  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 18244  				z.DecReadMapElemKey()
 18245  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 18246  				yyms1 = true
 18247  				if yymg1 {
 18248  					yymv1, yymok1 = yyv1[yymk1]
 18249  					if yymok1 {
 18250  						yyms1 = false
 18251  					}
 18252  				} else {
 18253  					yymv1 = nil
 18254  				}
 18255  				z.DecReadMapElemValue()
 18256  				yymdn1 = false
 18257  				if r.TryNil() {
 18258  					yymdn1 = true
 18259  				} else {
 18260  					if yymv1 == nil {
 18261  						yymv1 = new(TestStrucFlex)
 18262  					}
 18263  					if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 18264  						z.DecExtension(yymv1, yyxt4)
 18265  					} else {
 18266  						yymv1.CodecDecodeSelf(d)
 18267  					}
 18268  				}
 18269  				if yymdn1 {
 18270  					yyv1[yymk1] = nil
 18271  				} else if yyms1 {
 18272  					yyv1[yymk1] = yymv1
 18273  				}
 18274  			}
 18275  		} // else len==0: leave as-is (do not clear map entries)
 18276  		z.DecReadMapEnd()
 18277  	}
 18278  }
 18279  
 18280  func (x codecSelfer19780) encMapstringTestStrucFlex(v map[string]TestStrucFlex, e *Encoder) {
 18281  	var h codecSelfer19780
 18282  	z, r := GenHelper().Encoder(e)
 18283  	_, _, _ = h, z, r
 18284  	if v == nil {
 18285  		r.EncodeNil()
 18286  	} else if z.EncBasicHandle().Canonical {
 18287  		yys1 := make([]string, 0, len(v))
 18288  		for k, _ := range v {
 18289  			yys1 = append(yys1, string(k))
 18290  		}
 18291  		sort.Sort(codecSelfer19780stringSlice(yys1))
 18292  		z.EncWriteMapStart(len(v))
 18293  		for _, yyv1 := range yys1 {
 18294  			z.EncWriteMapElemKey()
 18295  			r.EncodeString(yyv1)
 18296  			z.EncWriteMapElemValue()
 18297  			yye1 := v[string(yyv1)]
 18298  			yy2 := &yye1
 18299  			if yyxt3 := z.Extension(yy2); yyxt3 != nil {
 18300  				z.EncExtension(yy2, yyxt3)
 18301  			} else {
 18302  				yy2.CodecEncodeSelf(e)
 18303  			}
 18304  		}
 18305  		z.EncWriteMapEnd()
 18306  	} else {
 18307  		z.EncWriteMapStart(len(v))
 18308  		for yyk1, yyv1 := range v {
 18309  			z.EncWriteMapElemKey()
 18310  			r.EncodeString(string(yyk1))
 18311  			z.EncWriteMapElemValue()
 18312  			yy5 := &yyv1
 18313  			if yyxt6 := z.Extension(yy5); yyxt6 != nil {
 18314  				z.EncExtension(yy5, yyxt6)
 18315  			} else {
 18316  				yy5.CodecEncodeSelf(e)
 18317  			}
 18318  		}
 18319  		z.EncWriteMapEnd()
 18320  	}
 18321  }
 18322  
 18323  func (x codecSelfer19780) decMapstringTestStrucFlex(v *map[string]TestStrucFlex, d *Decoder) {
 18324  	var h codecSelfer19780
 18325  	z, r := GenHelper().Decoder(d)
 18326  	_, _, _ = h, z, r
 18327  
 18328  	yyv1 := *v
 18329  	yyl1 := z.DecReadMapStart()
 18330  	if yyl1 == codecSelferDecContainerLenNil19780 {
 18331  		*v = nil
 18332  	} else {
 18333  		if yyv1 == nil {
 18334  			yyrl1 := z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 1880)
 18335  			yyv1 = make(map[string]TestStrucFlex, yyrl1)
 18336  			*v = yyv1
 18337  		}
 18338  		var yymk1 string
 18339  		var yymv1 TestStrucFlex
 18340  		var yymg1, yymdn1 bool
 18341  		if z.DecBasicHandle().MapValueReset {
 18342  			yymg1 = true
 18343  		}
 18344  		if yyl1 != 0 {
 18345  			yyhl1 := yyl1 > 0
 18346  			for yyj1 := 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 18347  				z.DecReadMapElemKey()
 18348  				yymk1 = (string)(z.DecStringZC(r.DecodeStringAsBytes()))
 18349  				if yymg1 {
 18350  					yymv1 = yyv1[yymk1]
 18351  				} else {
 18352  					yymv1 = TestStrucFlex{}
 18353  				}
 18354  				z.DecReadMapElemValue()
 18355  				yymdn1 = false
 18356  				if yyxt4 := z.Extension(yymv1); yyxt4 != nil {
 18357  					z.DecExtension(&yymv1, yyxt4)
 18358  				} else {
 18359  					yymv1.CodecDecodeSelf(d)
 18360  				}
 18361  				if yymdn1 {
 18362  					yyv1[yymk1] = TestStrucFlex{}
 18363  				} else {
 18364  					yyv1[yymk1] = yymv1
 18365  				}
 18366  			}
 18367  		} // else len==0: leave as-is (do not clear map entries)
 18368  		z.DecReadMapEnd()
 18369  	}
 18370  }
 18371  
 18372  func (x codecSelfer19780) encSlicePtrtoTestStrucFlex(v []*TestStrucFlex, e *Encoder) {
 18373  	var h codecSelfer19780
 18374  	z, r := GenHelper().Encoder(e)
 18375  	_, _, _ = h, z, r
 18376  	if v == nil {
 18377  		r.EncodeNil()
 18378  		return
 18379  	}
 18380  	z.EncWriteArrayStart(len(v))
 18381  	for yyv1 := range v {
 18382  		z.EncWriteArrayElem()
 18383  		if v[yyv1] == nil {
 18384  			r.EncodeNil()
 18385  		} else {
 18386  			if yyxt2 := z.Extension(v[yyv1]); yyxt2 != nil {
 18387  				z.EncExtension(v[yyv1], yyxt2)
 18388  			} else {
 18389  				v[yyv1].CodecEncodeSelf(e)
 18390  			}
 18391  		}
 18392  	}
 18393  	z.EncWriteArrayEnd()
 18394  }
 18395  
 18396  func (x codecSelfer19780) decSlicePtrtoTestStrucFlex(v *[]*TestStrucFlex, d *Decoder) {
 18397  	var h codecSelfer19780
 18398  	z, r := GenHelper().Decoder(d)
 18399  	_, _, _ = h, z, r
 18400  
 18401  	yyv1 := *v
 18402  	yyh1, yyl1 := z.DecSliceHelperStart()
 18403  	var yyc1 bool
 18404  	_ = yyc1
 18405  	if yyh1.IsNil {
 18406  		if yyv1 != nil {
 18407  			yyv1 = nil
 18408  			yyc1 = true
 18409  		}
 18410  	} else if yyl1 == 0 {
 18411  		if yyv1 == nil {
 18412  			yyv1 = []*TestStrucFlex{}
 18413  			yyc1 = true
 18414  		} else if len(yyv1) != 0 {
 18415  			yyv1 = yyv1[:0]
 18416  			yyc1 = true
 18417  		}
 18418  	} else {
 18419  		yyhl1 := yyl1 > 0
 18420  		var yyrl1 int
 18421  		_ = yyrl1
 18422  		if yyhl1 {
 18423  			if yyl1 > cap(yyv1) {
 18424  				yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 18425  				if yyrl1 <= cap(yyv1) {
 18426  					yyv1 = yyv1[:yyrl1]
 18427  				} else {
 18428  					yyv1 = make([]*TestStrucFlex, yyrl1)
 18429  				}
 18430  				yyc1 = true
 18431  			} else if yyl1 != len(yyv1) {
 18432  				yyv1 = yyv1[:yyl1]
 18433  				yyc1 = true
 18434  			}
 18435  		}
 18436  		var yyj1 int
 18437  		for yyj1 = 0; z.DecContainerNext(yyj1, yyl1, yyhl1); yyj1++ {
 18438  			if yyj1 == 0 && yyv1 == nil {
 18439  				if yyhl1 {
 18440  					yyrl1 = z.DecInferLen(yyl1, z.DecBasicHandle().MaxInitLen, 8)
 18441  				} else {
 18442  					yyrl1 = 8
 18443  				}
 18444  				yyv1 = make([]*TestStrucFlex, yyrl1)
 18445  				yyc1 = true
 18446  			}
 18447  			yyh1.ElemContainerState(yyj1)
 18448  			var yydb1 bool
 18449  			if yyj1 >= len(yyv1) {
 18450  				yyv1 = append(yyv1, nil)
 18451  				yyc1 = true
 18452  			}
 18453  			if yydb1 {
 18454  				z.DecSwallow()
 18455  			} else {
 18456  				if r.TryNil() {
 18457  					yyv1[yyj1] = nil
 18458  				} else {
 18459  					if yyv1[yyj1] == nil {
 18460  						yyv1[yyj1] = new(TestStrucFlex)
 18461  					}
 18462  					if yyxt3 := z.Extension(yyv1[yyj1]); yyxt3 != nil {
 18463  						z.DecExtension(yyv1[yyj1], yyxt3)
 18464  					} else {
 18465  						yyv1[yyj1].CodecDecodeSelf(d)
 18466  					}
 18467  				}
 18468  			}
 18469  		}
 18470  		if yyj1 < len(yyv1) {
 18471  			yyv1 = yyv1[:yyj1]
 18472  			yyc1 = true
 18473  		} else if yyj1 == 0 && yyv1 == nil {
 18474  			yyv1 = []*TestStrucFlex{}
 18475  			yyc1 = true
 18476  		}
 18477  	}
 18478  	yyh1.End()
 18479  	if yyc1 {
 18480  		*v = yyv1
 18481  	}
 18482  }