http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/9975ef7a/newtmgr/vendor/github.com/ugorji/go/codec/fast-path.go.tmpl
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/github.com/ugorji/go/codec/fast-path.go.tmpl 
b/newtmgr/vendor/github.com/ugorji/go/codec/fast-path.go.tmpl
deleted file mode 100644
index c3ffdf9..0000000
--- a/newtmgr/vendor/github.com/ugorji/go/codec/fast-path.go.tmpl
+++ /dev/null
@@ -1,527 +0,0 @@
-// +build !notfastpath
-
-// Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.
-// Use of this source code is governed by a MIT license found in the LICENSE 
file.
-
-// ************************************************************
-// DO NOT EDIT. 
-// THIS FILE IS AUTO-GENERATED from fast-path.go.tmpl
-// ************************************************************
-
-package codec
-
-// Fast path functions try to create a fast path encode or decode 
implementation
-// for common maps and slices.
-//
-// We define the functions and register then in this single file
-// so as not to pollute the encode.go and decode.go, and create a dependency 
in there.
-// This file can be omitted without causing a build failure.
-//
-// The advantage of fast paths is:
-//    - Many calls bypass reflection altogether
-// 
-// Currently support
-//    - slice of all builtin types,
-//    - map of all builtin types to string or interface value
-//    - symmetrical maps of all builtin types (e.g. str-str, uint8-uint8)
-// This should provide adequate "typical" implementations.
-// 
-// Note that fast track decode functions must handle values for which an 
address cannot be obtained.
-// For example: 
-//   m2 := map[string]int{}
-//   p2 := []interface{}{m2}
-//   // decoding into p2 will bomb if fast track functions do not treat like 
unaddressable.
-// 
-
-import (
-       "reflect"
-       "sort"
-)
-
-const fastpathEnabled = true
-
-const fastpathCheckNilFalse = false // for reflect
-const fastpathCheckNilTrue = true // for type switch
-
-type fastpathT struct {}
-
-var fastpathTV fastpathT
-
-type fastpathE struct {
-       rtid uintptr
-       rt reflect.Type 
-       encfn func(*encFnInfo, reflect.Value)
-       decfn func(*decFnInfo, reflect.Value)
-}
-
-type fastpathA [{{ .FastpathLen }}]fastpathE
-
-func (x *fastpathA) index(rtid uintptr) int {
-       // use binary search to grab the index (adapted from sort/search.go)
-       h, i, j := 0, 0, {{ .FastpathLen }} // len(x)
-       for i < j {
-               h = i + (j-i)/2
-               if x[h].rtid < rtid {
-                       i = h + 1
-               } else {
-                       j = h
-               }
-       }
-       if i < {{ .FastpathLen }} && x[i].rtid == rtid {
-               return i
-       }
-       return -1
-}
-
-type fastpathAslice []fastpathE
-
-func (x fastpathAslice) Len() int { return len(x) }
-func (x fastpathAslice) Less(i, j int) bool { return x[i].rtid < x[j].rtid }
-func (x fastpathAslice) Swap(i, j int) { x[i], x[j] = x[j], x[i] }
-
-var fastpathAV fastpathA
-
-// due to possible initialization loop error, make fastpath in an init()
-func init() {
-       i := 0
-       fn := func(v interface{}, fe func(*encFnInfo, reflect.Value), fd 
func(*decFnInfo, reflect.Value)) (f fastpathE) {
-               xrt := reflect.TypeOf(v)
-               xptr := reflect.ValueOf(xrt).Pointer()
-               fastpathAV[i] = fastpathE{xptr, xrt, fe, fd}
-               i++
-               return
-       }
-       
-       {{range .Values}}{{if not .Primitive}}{{if not .MapKey }}
-       fn([]{{ .Elem }}(nil), (*encFnInfo).{{ .MethodNamePfx "fastpathEnc" 
false }}R, (*decFnInfo).{{ .MethodNamePfx "fastpathDec" false 
}}R){{end}}{{end}}{{end}}
-       
-       {{range .Values}}{{if not .Primitive}}{{if .MapKey }}
-       fn(map[{{ .MapKey }}]{{ .Elem }}(nil), (*encFnInfo).{{ .MethodNamePfx 
"fastpathEnc" false }}R, (*decFnInfo).{{ .MethodNamePfx "fastpathDec" false 
}}R){{end}}{{end}}{{end}}
-       
-       sort.Sort(fastpathAslice(fastpathAV[:]))
-}
-
-// -- encode
-
-// -- -- fast path type switch
-func fastpathEncodeTypeSwitch(iv interface{}, e *Encoder) bool {
-       switch v := iv.(type) {
-{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}
-       case []{{ .Elem }}:{{else}}
-       case map[{{ .MapKey }}]{{ .Elem }}:{{end}}
-               fastpathTV.{{ .MethodNamePfx "Enc" false }}V(v, 
fastpathCheckNilTrue, e){{if not .MapKey }}
-       case *[]{{ .Elem }}:{{else}}
-       case *map[{{ .MapKey }}]{{ .Elem }}:{{end}}
-               fastpathTV.{{ .MethodNamePfx "Enc" false }}V(*v, 
fastpathCheckNilTrue, e)
-{{end}}{{end}}
-       default:
-        _ = v // TODO: workaround https://github.com/golang/go/issues/12927 
(remove after go 1.6 release)
-               return false
-       }
-       return true
-}
-
-func fastpathEncodeTypeSwitchSlice(iv interface{}, e *Encoder) bool {
-       switch v := iv.(type) {
-{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}
-       case []{{ .Elem }}:
-               fastpathTV.{{ .MethodNamePfx "Enc" false }}V(v, 
fastpathCheckNilTrue, e)
-       case *[]{{ .Elem }}:
-               fastpathTV.{{ .MethodNamePfx "Enc" false }}V(*v, 
fastpathCheckNilTrue, e)
-{{end}}{{end}}{{end}}
-       default:
-        _ = v // TODO: workaround https://github.com/golang/go/issues/12927 
(remove after go 1.6 release)
-               return false
-       }
-       return true
-}
-
-func fastpathEncodeTypeSwitchMap(iv interface{}, e *Encoder) bool {
-       switch v := iv.(type) {
-{{range .Values}}{{if not .Primitive}}{{if .MapKey }}
-       case map[{{ .MapKey }}]{{ .Elem }}:
-               fastpathTV.{{ .MethodNamePfx "Enc" false }}V(v, 
fastpathCheckNilTrue, e)
-       case *map[{{ .MapKey }}]{{ .Elem }}:
-               fastpathTV.{{ .MethodNamePfx "Enc" false }}V(*v, 
fastpathCheckNilTrue, e)
-{{end}}{{end}}{{end}}
-       default:
-        _ = v // TODO: workaround https://github.com/golang/go/issues/12927 
(remove after go 1.6 release)
-               return false
-       }
-       return true
-}
-
-// -- -- fast path functions
-{{range .Values}}{{if not .Primitive}}{{if not .MapKey }} 
-
-func (f *encFnInfo) {{ .MethodNamePfx "fastpathEnc" false }}R(rv 
reflect.Value) {
-       if f.ti.mbs {
-               fastpathTV.{{ .MethodNamePfx "EncAsMap" false 
}}V(rv.Interface().([]{{ .Elem }}), fastpathCheckNilFalse, f.e)
-       } else {
-               fastpathTV.{{ .MethodNamePfx "Enc" false 
}}V(rv.Interface().([]{{ .Elem }}), fastpathCheckNilFalse, f.e)
-       }
-}
-func (_ fastpathT) {{ .MethodNamePfx "Enc" false }}V(v []{{ .Elem }}, checkNil 
bool, e *Encoder) {
-       ee := e.e
-       cr := e.cr
-       if checkNil && v == nil {
-               ee.EncodeNil()
-               return
-       }
-       ee.EncodeArrayStart(len(v))
-       for _, v2 := range v {
-               if cr != nil { cr.sendContainerState(containerArrayElem) }
-               {{ encmd .Elem "v2"}}
-       }
-       if cr != nil { cr.sendContainerState(containerArrayEnd) }{{/* 
ee.EncodeEnd() */}}
-}
-
-func (_ fastpathT) {{ .MethodNamePfx "EncAsMap" false }}V(v []{{ .Elem }}, 
checkNil bool, e *Encoder) {
-       ee := e.e
-       cr := e.cr
-       if checkNil && v == nil {
-               ee.EncodeNil()
-               return
-       }
-       if len(v)%2 == 1 {
-               e.errorf("mapBySlice requires even slice length, but got %v", 
len(v))
-               return
-       }
-       ee.EncodeMapStart(len(v) / 2)
-       for j, v2 := range v {
-               if cr != nil {
-                       if j%2 == 0 {
-                               cr.sendContainerState(containerMapKey)
-                       } else {
-                               cr.sendContainerState(containerMapValue)
-                       }
-               }
-               {{ encmd .Elem "v2"}}
-       }
-       if cr != nil { cr.sendContainerState(containerMapEnd) }
-}
-
-{{end}}{{end}}{{end}}
-
-{{range .Values}}{{if not .Primitive}}{{if .MapKey }}
-
-func (f *encFnInfo) {{ .MethodNamePfx "fastpathEnc" false }}R(rv 
reflect.Value) {
-       fastpathTV.{{ .MethodNamePfx "Enc" false }}V(rv.Interface().(map[{{ 
.MapKey }}]{{ .Elem }}), fastpathCheckNilFalse, f.e)
-}
-func (_ fastpathT) {{ .MethodNamePfx "Enc" false }}V(v map[{{ .MapKey }}]{{ 
.Elem }}, checkNil bool, e *Encoder) {
-       ee := e.e
-       cr := e.cr
-       if checkNil && v == nil {
-               ee.EncodeNil()
-               return
-       }
-       ee.EncodeMapStart(len(v))
-       {{if eq .MapKey "string"}}asSymbols := 
e.h.AsSymbols&AsSymbolMapStringKeysFlag != 0
-       {{end}}if e.h.Canonical {
-               {{if eq .MapKey "interface{}"}}{{/* out of band 
-               */}}var mksv []byte = make([]byte, 0, len(v)*16) // temporary 
byte slice for the encoding
-               e2 := NewEncoderBytes(&mksv, e.hh)
-               v2 := make([]bytesI, len(v))
-               var i, l int
-               var vp *bytesI {{/* put loop variables outside. seems currently 
needed for better perf */}}
-               for k2, _ := range v {
-                       l = len(mksv)
-                       e2.MustEncode(k2)
-                       vp = &v2[i]
-                       vp.v = mksv[l:]
-                       vp.i = k2 
-                       i++
-               }
-               sort.Sort(bytesISlice(v2))
-               for j := range v2 {
-                       if cr != nil { cr.sendContainerState(containerMapKey) }
-                       e.asis(v2[j].v)
-                       if cr != nil { cr.sendContainerState(containerMapValue) 
}
-                       e.encode(v[v2[j].i])
-               } {{else}}{{ $x := sorttype .MapKey true}}v2 := make([]{{ $x 
}}, len(v))
-               var i int 
-               for k, _ := range v {
-                       v2[i] = {{ $x }}(k)
-                       i++
-               }
-               sort.Sort({{ sorttype .MapKey false}}(v2))
-               for _, k2 := range v2 {
-                       if cr != nil { cr.sendContainerState(containerMapKey) }
-                       {{if eq .MapKey "string"}}if asSymbols {
-                               ee.EncodeSymbol(k2)
-                       } else {
-                               ee.EncodeString(c_UTF8, k2)
-                       }{{else}}{{ $y := printf "%s(k2)" .MapKey }}{{ encmd 
.MapKey $y }}{{end}}
-                       if cr != nil { cr.sendContainerState(containerMapValue) 
}
-                       {{ $y := printf "v[%s(k2)]" .MapKey }}{{ encmd .Elem $y 
}}
-               } {{end}}
-       } else {
-               for k2, v2 := range v {
-                       if cr != nil { cr.sendContainerState(containerMapKey) }
-                       {{if eq .MapKey "string"}}if asSymbols {
-                               ee.EncodeSymbol(k2)
-                       } else {
-                               ee.EncodeString(c_UTF8, k2)
-                       }{{else}}{{ encmd .MapKey "k2"}}{{end}}
-                       if cr != nil { cr.sendContainerState(containerMapValue) 
}
-                       {{ encmd .Elem "v2"}}
-               }
-       }
-       if cr != nil { cr.sendContainerState(containerMapEnd) }{{/* 
ee.EncodeEnd() */}}
-}
-
-{{end}}{{end}}{{end}}
-
-// -- decode
-
-// -- -- fast path type switch
-func fastpathDecodeTypeSwitch(iv interface{}, d *Decoder) bool {
-       switch v := iv.(type) {
-{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}
-       case []{{ .Elem }}:{{else}}
-       case map[{{ .MapKey }}]{{ .Elem }}:{{end}}
-               fastpathTV.{{ .MethodNamePfx "Dec" false }}V(v, 
fastpathCheckNilFalse, false, d){{if not .MapKey }}
-       case *[]{{ .Elem }}:{{else}}
-       case *map[{{ .MapKey }}]{{ .Elem }}:{{end}}
-               v2, changed2 := fastpathTV.{{ .MethodNamePfx "Dec" false 
}}V(*v, fastpathCheckNilFalse, true, d)
-               if changed2 {
-                       *v = v2 
-               }
-{{end}}{{end}}
-       default:
-        _ = v // TODO: workaround https://github.com/golang/go/issues/12927 
(remove after go 1.6 release)
-               return false
-       }
-       return true
-}
-
-// -- -- fast path functions
-{{range .Values}}{{if not .Primitive}}{{if not .MapKey }}
-{{/*
-Slices can change if they 
-- did not come from an array
-- are addressable (from a ptr)
-- are settable (e.g. contained in an interface{})
-*/}}
-func (f *decFnInfo) {{ .MethodNamePfx "fastpathDec" false }}R(rv 
reflect.Value) { 
-       array := f.seq == seqTypeArray
-       if !array && rv.CanAddr() { {{/* // CanSet => CanAddr + Exported */}}
-               vp := rv.Addr().Interface().(*[]{{ .Elem }})
-               v, changed := fastpathTV.{{ .MethodNamePfx "Dec" false }}V(*vp, 
fastpathCheckNilFalse, !array, f.d)
-               if changed {
-                       *vp = v
-               }
-       } else {
-               v := rv.Interface().([]{{ .Elem }})
-               fastpathTV.{{ .MethodNamePfx "Dec" false }}V(v, 
fastpathCheckNilFalse, false, f.d)
-       }
-}
-
-func (f fastpathT) {{ .MethodNamePfx "Dec" false }}X(vp *[]{{ .Elem }}, 
checkNil bool, d *Decoder) {
-       v, changed := f.{{ .MethodNamePfx "Dec" false }}V(*vp, checkNil, true, 
d)
-       if changed {
-               *vp = v 
-       }
-}
-func (_ fastpathT) {{ .MethodNamePfx "Dec" false }}V(v []{{ .Elem }}, checkNil 
bool, canChange bool, d *Decoder) (_ []{{ .Elem }}, changed bool) {
-       dd := d.d
-       {{/* // if dd.isContainerType(valueTypeNil) { dd.TryDecodeAsNil() */}}
-       if checkNil && dd.TryDecodeAsNil() {
-               if v != nil {
-                       changed = true 
-               }
-               return nil, changed 
-       }
-
-       slh, containerLenS := d.decSliceHelperStart()
-       if containerLenS == 0 {
-               if canChange {
-                       if v == nil {
-                               v = []{{ .Elem }}{}
-                       } else if len(v) != 0 {
-                               v = v[:0]
-                       }
-                       changed = true
-               }
-               slh.End()
-               return v, changed
-       }
-       
-       if containerLenS > 0 {
-               x2read := containerLenS
-               var xtrunc bool 
-               if containerLenS > cap(v) {
-                       if canChange { {{/*
-                               // fast-path is for "basic" immutable types, so 
no need to copy them over
-                               // s := make([]{{ .Elem }}, 
decInferLen(containerLenS, d.h.MaxInitLen))
-                               // copy(s, v[:cap(v)])
-                               // v = s */}}
-                               var xlen int 
-                xlen, xtrunc = decInferLen(containerLenS, d.h.MaxInitLen, {{ 
.Size }})
-                               if xtrunc {
-                                       if xlen <= cap(v) {
-                                               v = v[:xlen]
-                                       } else {
-                                               v = make([]{{ .Elem }}, xlen)
-                                       }
-                               } else {
-                                       v = make([]{{ .Elem }}, xlen)
-                               }
-                               changed = true
-                       } else {
-                               d.arrayCannotExpand(len(v), containerLenS)
-                       }
-                       x2read = len(v)
-               } else if containerLenS != len(v) {
-                       if canChange {
-                               v = v[:containerLenS]
-                               changed = true
-                       }
-               } {{/* // all checks done. cannot go past len. */}}
-               j := 0
-               for ; j < x2read; j++ {
-                       slh.ElemContainerState(j)
-                       {{ if eq .Elem "interface{}" }}d.decode(&v[j]){{ else 
}}v[j] = {{ decmd .Elem }}{{ end }}
-               }
-               if xtrunc { {{/* // means canChange=true, changed=true already. 
*/}}
-                       for ; j < containerLenS; j++ {
-                               v = append(v, {{ zerocmd .Elem }})
-                               slh.ElemContainerState(j)
-                               {{ if eq .Elem "interface{}" 
}}d.decode(&v[j]){{ else }}v[j] = {{ decmd .Elem }}{{ end }}
-                       }
-               } else if !canChange {
-                       for ; j < containerLenS; j++ {
-                               slh.ElemContainerState(j)
-                               d.swallow()
-                       }
-               }
-       } else {
-               breakFound := dd.CheckBreak() {{/* check break first, so we can 
initialize v with a capacity of 4 if necessary */}}
-               if breakFound {
-                       if canChange {
-                               if v == nil {
-                                       v = []{{ .Elem }}{}
-                               } else if len(v) != 0 {
-                                       v = v[:0]
-                               }
-                               changed = true
-                       }
-                       slh.End()
-                       return v, changed
-               }
-               if cap(v) == 0 {
-                       v = make([]{{ .Elem }}, 1, 4)
-                       changed = true
-               }
-               j := 0  
-               for ; !breakFound; j++ {
-                       if j >= len(v) { 
-                               if canChange {
-                                       v = append(v, {{ zerocmd .Elem }})
-                                       changed = true
-                               } else {
-                                       d.arrayCannotExpand(len(v), j+1)
-                               }
-                       }
-                       slh.ElemContainerState(j)
-                       if j < len(v) { {{/* // all checks done. cannot go past 
len. */}}
-                               {{ if eq .Elem "interface{}" }}d.decode(&v[j])
-                               {{ else }}v[j] = {{ decmd .Elem }}{{ end }}
-                       } else {
-                               d.swallow()
-                       }
-                       breakFound = dd.CheckBreak()
-               }
-               if canChange && j < len(v) {
-                       v = v[:j]
-                       changed = true
-               }
-       }
-       slh.End() 
-       return v, changed 
-}
-
-{{end}}{{end}}{{end}}
-
-
-{{range .Values}}{{if not .Primitive}}{{if .MapKey }}
-{{/*
-Maps can change if they are
-- addressable (from a ptr)
-- settable (e.g. contained in an interface{})
-*/}}
-func (f *decFnInfo) {{ .MethodNamePfx "fastpathDec" false }}R(rv 
reflect.Value) { 
-       if rv.CanAddr() {
-               vp := rv.Addr().Interface().(*map[{{ .MapKey }}]{{ .Elem }})
-               v, changed := fastpathTV.{{ .MethodNamePfx "Dec" false }}V(*vp, 
fastpathCheckNilFalse, true, f.d)
-               if changed {
-                       *vp = v
-               }
-       } else {
-               v := rv.Interface().(map[{{ .MapKey }}]{{ .Elem }})
-               fastpathTV.{{ .MethodNamePfx "Dec" false }}V(v, 
fastpathCheckNilFalse, false, f.d)
-       }
-}
-func (f fastpathT) {{ .MethodNamePfx "Dec" false }}X(vp *map[{{ .MapKey }}]{{ 
.Elem }}, checkNil bool, d *Decoder) {
-       v, changed := f.{{ .MethodNamePfx "Dec" false }}V(*vp, checkNil, true, 
d)
-       if changed {
-               *vp = v 
-       }
-}
-func (_ fastpathT) {{ .MethodNamePfx "Dec" false }}V(v map[{{ .MapKey }}]{{ 
.Elem }}, checkNil bool, canChange bool, 
-       d *Decoder) (_ map[{{ .MapKey }}]{{ .Elem }}, changed bool) {
-       dd := d.d
-       cr := d.cr
-       {{/* // if dd.isContainerType(valueTypeNil) {dd.TryDecodeAsNil() */}}
-       if checkNil && dd.TryDecodeAsNil() {
-               if v != nil {
-                       changed = true
-               } 
-               return nil, changed
-       }
-
-       containerLen := dd.ReadMapStart()
-       if canChange && v == nil {
-               xlen, _ := decInferLen(containerLen, d.h.MaxInitLen, {{ .Size 
}})
-               v = make(map[{{ .MapKey }}]{{ .Elem }}, xlen)
-               changed = true
-       }
-       {{ if eq .Elem "interface{}" }}mapGet := !d.h.MapValueReset && 
!d.h.InterfaceReset{{end}}
-       var mk {{ .MapKey }}
-       var mv {{ .Elem }}
-       if containerLen > 0 {
-               for j := 0; j < containerLen; j++ {
-                       if cr != nil { cr.sendContainerState(containerMapKey) }
-                       {{ if eq .MapKey "interface{}" }}mk = nil 
-                       d.decode(&mk)
-                       if bv, bok := mk.([]byte); bok {
-                               mk = d.string(bv) {{/* // maps cannot have 
[]byte as key. switch to string. */}}
-                       }{{ else }}mk = {{ decmd .MapKey }}{{ end }}
-                       if cr != nil { cr.sendContainerState(containerMapValue) 
}
-                       {{ if eq .Elem "interface{}" }}if mapGet { mv = v[mk] } 
else { mv = nil }
-                       d.decode(&mv){{ else }}mv = {{ decmd .Elem }}{{ end }}
-                       if v != nil {
-                               v[mk] = mv
-                       }
-               }
-       } else if containerLen < 0 {
-               for j := 0; !dd.CheckBreak(); j++ {
-                       if cr != nil { cr.sendContainerState(containerMapKey) }
-                       {{ if eq .MapKey "interface{}" }}mk = nil 
-                       d.decode(&mk)
-                       if bv, bok := mk.([]byte); bok {
-                               mk = d.string(bv) {{/* // maps cannot have 
[]byte as key. switch to string. */}}
-                       }{{ else }}mk = {{ decmd .MapKey }}{{ end }}
-                       if cr != nil { cr.sendContainerState(containerMapValue) 
}
-                       {{ if eq .Elem "interface{}" }}if mapGet { mv = v[mk] } 
else { mv = nil }
-                       d.decode(&mv){{ else }}mv = {{ decmd .Elem }}{{ end }}
-                       if v != nil {
-                               v[mk] = mv
-                       }
-               }
-       }
-       if cr != nil { cr.sendContainerState(containerMapEnd) }
-       return v, changed
-}
-
-{{end}}{{end}}{{end}}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/9975ef7a/newtmgr/vendor/github.com/ugorji/go/codec/fast-path.not.go
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/github.com/ugorji/go/codec/fast-path.not.go 
b/newtmgr/vendor/github.com/ugorji/go/codec/fast-path.not.go
deleted file mode 100644
index 63e5911..0000000
--- a/newtmgr/vendor/github.com/ugorji/go/codec/fast-path.not.go
+++ /dev/null
@@ -1,34 +0,0 @@
-// +build notfastpath
-
-package codec
-
-import "reflect"
-
-const fastpathEnabled = false
-
-// The generated fast-path code is very large, and adds a few seconds to the 
build time.
-// This causes test execution, execution of small tools which use codec, etc
-// to take a long time.
-//
-// To mitigate, we now support the notfastpath tag.
-// This tag disables fastpath during build, allowing for faster build, test 
execution,
-// short-program runs, etc.
-
-func fastpathDecodeTypeSwitch(iv interface{}, d *Decoder) bool      { return 
false }
-func fastpathEncodeTypeSwitch(iv interface{}, e *Encoder) bool      { return 
false }
-func fastpathEncodeTypeSwitchSlice(iv interface{}, e *Encoder) bool { return 
false }
-func fastpathEncodeTypeSwitchMap(iv interface{}, e *Encoder) bool   { return 
false }
-
-type fastpathT struct{}
-type fastpathE struct {
-       rtid  uintptr
-       rt    reflect.Type
-       encfn func(*encFnInfo, reflect.Value)
-       decfn func(*decFnInfo, reflect.Value)
-}
-type fastpathA [0]fastpathE
-
-func (x fastpathA) index(rtid uintptr) int { return -1 }
-
-var fastpathAV fastpathA
-var fastpathTV fastpathT

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/9975ef7a/newtmgr/vendor/github.com/ugorji/go/codec/gen-dec-array.go.tmpl
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/github.com/ugorji/go/codec/gen-dec-array.go.tmpl 
b/newtmgr/vendor/github.com/ugorji/go/codec/gen-dec-array.go.tmpl
deleted file mode 100644
index 32df541..0000000
--- a/newtmgr/vendor/github.com/ugorji/go/codec/gen-dec-array.go.tmpl
+++ /dev/null
@@ -1,104 +0,0 @@
-{{var "v"}} := {{if not isArray}}*{{end}}{{ .Varname }}
-{{var "h"}}, {{var "l"}} := z.DecSliceHelperStart() {{/* // helper, 
containerLenS */}}{{if not isArray}}
-var {{var "c"}} bool {{/* // changed */}}
-_ = {{var "c"}}{{end}}
-if {{var "l"}} == 0 {
-       {{if isSlice }}if {{var "v"}} == nil {
-               {{var "v"}} = []{{ .Typ }}{}
-               {{var "c"}} = true
-       } else if len({{var "v"}}) != 0 {
-               {{var "v"}} = {{var "v"}}[:0]
-               {{var "c"}} = true
-       } {{end}} {{if isChan }}if {{var "v"}} == nil {
-               {{var "v"}} = make({{ .CTyp }}, 0)
-               {{var "c"}} = true
-       } {{end}}
-} else if {{var "l"}} > 0 {
-       {{if isChan }}if {{var "v"}} == nil {
-               {{var "rl"}}, _ = z.DecInferLen({{var "l"}}, 
z.DecBasicHandle().MaxInitLen, {{ .Size }})
-               {{var "v"}} = make({{ .CTyp }}, {{var "rl"}})
-               {{var "c"}} = true
-       }
-       for {{var "r"}} := 0; {{var "r"}} < {{var "l"}}; {{var "r"}}++ {
-               {{var "h"}}.ElemContainerState({{var "r"}})
-               var {{var "t"}} {{ .Typ }}
-               {{ $x := printf "%st%s" .TempVar .Rand }}{{ decLineVar $x }}
-               {{var "v"}} <- {{var "t"}}
-       }
-       {{ else }}      var {{var "rr"}}, {{var "rl"}} int {{/* // num2read, 
length of slice/array/chan */}}
-       var {{var "rt"}} bool {{/* truncated */}}
-       _, _ = {{var "rl"}}, {{var "rt"}}
-       {{var "rr"}} = {{var "l"}} // len({{var "v"}})
-       if {{var "l"}} > cap({{var "v"}}) {
-               {{if isArray }}z.DecArrayCannotExpand(len({{var "v"}}), {{var 
"l"}})
-               {{ else }}{{if not .Immutable }}
-               {{var "rg"}} := len({{var "v"}}) > 0
-               {{var "v2"}} := {{var "v"}} {{end}}
-               {{var "rl"}}, {{var "rt"}} = z.DecInferLen({{var "l"}}, 
z.DecBasicHandle().MaxInitLen, {{ .Size }})
-               if {{var "rt"}} {
-                       if {{var "rl"}} <= cap({{var "v"}}) {
-                               {{var "v"}} = {{var "v"}}[:{{var "rl"}}]
-                       } else {
-                               {{var "v"}} = make([]{{ .Typ }}, {{var "rl"}})
-                       }
-               } else {
-                       {{var "v"}} = make([]{{ .Typ }}, {{var "rl"}})
-               }
-               {{var "c"}} = true
-               {{var "rr"}} = len({{var "v"}}) {{if not .Immutable }}
-                       if {{var "rg"}} { copy({{var "v"}}, {{var "v2"}}) } 
{{end}} {{end}}{{/* end not Immutable, isArray */}}
-       } {{if isSlice }} else if {{var "l"}} != len({{var "v"}}) {
-               {{var "v"}} = {{var "v"}}[:{{var "l"}}]
-               {{var "c"}} = true
-       } {{end}}       {{/* end isSlice:47 */}} 
-       {{var "j"}} := 0
-       for ; {{var "j"}} < {{var "rr"}} ; {{var "j"}}++ {
-               {{var "h"}}.ElemContainerState({{var "j"}})
-               {{ $x := printf "%[1]vv%[2]v[%[1]vj%[2]v]" .TempVar .Rand }}{{ 
decLineVar $x }}
-       }
-       {{if isArray }}for ; {{var "j"}} < {{var "l"}} ; {{var "j"}}++ {
-               {{var "h"}}.ElemContainerState({{var "j"}})
-               z.DecSwallow()
-       }
-       {{ else }}if {{var "rt"}} {
-               for ; {{var "j"}} < {{var "l"}} ; {{var "j"}}++ {
-                       {{var "v"}} = append({{var "v"}}, {{ zero}})
-                       {{var "h"}}.ElemContainerState({{var "j"}})
-                       {{ $x := printf "%[1]vv%[2]v[%[1]vj%[2]v]" .TempVar 
.Rand }}{{ decLineVar $x }}
-               }
-       } {{end}} {{/* end isArray:56 */}}
-       {{end}} {{/* end isChan:16 */}}
-} else { {{/* len < 0 */}}
-       {{var "j"}} := 0
-       for ; !r.CheckBreak(); {{var "j"}}++ {
-               {{if isChan }}
-               {{var "h"}}.ElemContainerState({{var "j"}})
-               var {{var "t"}} {{ .Typ }}
-               {{ $x := printf "%st%s" .TempVar .Rand }}{{ decLineVar $x }}
-               {{var "v"}} <- {{var "t"}} 
-               {{ else }}
-               if {{var "j"}} >= len({{var "v"}}) {
-                       {{if isArray }}z.DecArrayCannotExpand(len({{var "v"}}), 
{{var "j"}}+1)
-                       {{ else }}{{var "v"}} = append({{var "v"}}, {{zero}})// 
var {{var "z"}} {{ .Typ }}
-                       {{var "c"}} = true {{end}}
-               }
-               {{var "h"}}.ElemContainerState({{var "j"}})
-               if {{var "j"}} < len({{var "v"}}) {
-                       {{ $x := printf "%[1]vv%[2]v[%[1]vj%[2]v]" .TempVar 
.Rand }}{{ decLineVar $x }}
-               } else {
-                       z.DecSwallow()
-               }
-               {{end}}
-       }
-       {{if isSlice }}if {{var "j"}} < len({{var "v"}}) {
-               {{var "v"}} = {{var "v"}}[:{{var "j"}}]
-               {{var "c"}} = true
-       } else if {{var "j"}} == 0 && {{var "v"}} == nil {
-               {{var "v"}} = []{{ .Typ }}{}
-               {{var "c"}} = true
-       }{{end}}
-}
-{{var "h"}}.End()
-{{if not isArray }}if {{var "c"}} { 
-       *{{ .Varname }} = {{var "v"}}
-}{{end}}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/9975ef7a/newtmgr/vendor/github.com/ugorji/go/codec/gen-dec-map.go.tmpl
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/github.com/ugorji/go/codec/gen-dec-map.go.tmpl 
b/newtmgr/vendor/github.com/ugorji/go/codec/gen-dec-map.go.tmpl
deleted file mode 100644
index 77400e0..0000000
--- a/newtmgr/vendor/github.com/ugorji/go/codec/gen-dec-map.go.tmpl
+++ /dev/null
@@ -1,58 +0,0 @@
-{{var "v"}} := *{{ .Varname }}
-{{var "l"}} := r.ReadMapStart()
-{{var "bh"}} := z.DecBasicHandle()
-if {{var "v"}} == nil {
-       {{var "rl"}}, _ := z.DecInferLen({{var "l"}}, {{var "bh"}}.MaxInitLen, 
{{ .Size }})
-       {{var "v"}} = make(map[{{ .KTyp }}]{{ .Typ }}, {{var "rl"}})
-       *{{ .Varname }} = {{var "v"}}
-}
-var {{var "mk"}} {{ .KTyp }}
-var {{var "mv"}} {{ .Typ }}
-var {{var "mg"}} {{if decElemKindPtr}}, {{var "ms"}}, {{var "mok"}}{{end}} bool
-if {{var "bh"}}.MapValueReset {
-       {{if decElemKindPtr}}{{var "mg"}} = true
-       {{else if decElemKindIntf}}if !{{var "bh"}}.InterfaceReset { {{var 
"mg"}} = true }
-       {{else if not decElemKindImmutable}}{{var "mg"}} = true
-       {{end}} }
-if {{var "l"}} > 0  {
-for {{var "j"}} := 0; {{var "j"}} < {{var "l"}}; {{var "j"}}++ {
-       z.DecSendContainerState(codecSelfer_containerMapKey{{ .Sfx }})
-       {{ $x := printf "%vmk%v" .TempVar .Rand }}{{ decLineVarK $x }}
-{{ if eq .KTyp "interface{}" }}{{/* // special case if a byte array. */}}if 
{{var "bv"}}, {{var "bok"}} := {{var "mk"}}.([]byte); {{var "bok"}} {
-               {{var "mk"}} = string({{var "bv"}})
-       }{{ end }}{{if decElemKindPtr}}
-       {{var "ms"}} = true{{end}}
-       if {{var "mg"}} {
-               {{if decElemKindPtr}}{{var "mv"}}, {{var "mok"}} = {{var 
"v"}}[{{var "mk"}}] 
-               if {{var "mok"}} {
-                       {{var "ms"}} = false
-               } {{else}}{{var "mv"}} = {{var "v"}}[{{var "mk"}}] {{end}}
-       } {{if not decElemKindImmutable}}else { {{var "mv"}} = {{decElemZero}} 
}{{end}}
-       z.DecSendContainerState(codecSelfer_containerMapValue{{ .Sfx }})
-       {{ $x := printf "%vmv%v" .TempVar .Rand }}{{ decLineVar $x }}
-       if {{if decElemKindPtr}} {{var "ms"}} && {{end}} {{var "v"}} != nil {
-               {{var "v"}}[{{var "mk"}}] = {{var "mv"}}
-       }
-}
-} else if {{var "l"}} < 0  {
-for {{var "j"}} := 0; !r.CheckBreak(); {{var "j"}}++ {
-       z.DecSendContainerState(codecSelfer_containerMapKey{{ .Sfx }})
-       {{ $x := printf "%vmk%v" .TempVar .Rand }}{{ decLineVarK $x }}
-{{ if eq .KTyp "interface{}" }}{{/* // special case if a byte array. */}}if 
{{var "bv"}}, {{var "bok"}} := {{var "mk"}}.([]byte); {{var "bok"}} {
-               {{var "mk"}} = string({{var "bv"}})
-       }{{ end }}{{if decElemKindPtr}}
-       {{var "ms"}} = true {{ end }}
-       if {{var "mg"}} {
-               {{if decElemKindPtr}}{{var "mv"}}, {{var "mok"}} = {{var 
"v"}}[{{var "mk"}}] 
-               if {{var "mok"}} {
-                       {{var "ms"}} = false
-               } {{else}}{{var "mv"}} = {{var "v"}}[{{var "mk"}}] {{end}}
-       } {{if not decElemKindImmutable}}else { {{var "mv"}} = {{decElemZero}} 
}{{end}}
-       z.DecSendContainerState(codecSelfer_containerMapValue{{ .Sfx }})
-       {{ $x := printf "%vmv%v" .TempVar .Rand }}{{ decLineVar $x }}
-       if {{if decElemKindPtr}} {{var "ms"}} && {{end}} {{var "v"}} != nil {
-               {{var "v"}}[{{var "mk"}}] = {{var "mv"}}
-       }
-}
-} // else len==0: TODO: Should we clear map entries?
-z.DecSendContainerState(codecSelfer_containerMapEnd{{ .Sfx }})

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/9975ef7a/newtmgr/vendor/github.com/ugorji/go/codec/gen-helper.generated.go
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/github.com/ugorji/go/codec/gen-helper.generated.go 
b/newtmgr/vendor/github.com/ugorji/go/codec/gen-helper.generated.go
deleted file mode 100644
index eb0bdad..0000000
--- a/newtmgr/vendor/github.com/ugorji/go/codec/gen-helper.generated.go
+++ /dev/null
@@ -1,243 +0,0 @@
-/* // +build ignore */
-
-// Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.
-// Use of this source code is governed by a MIT license found in the LICENSE 
file.
-
-// ************************************************************
-// DO NOT EDIT.
-// THIS FILE IS AUTO-GENERATED from gen-helper.go.tmpl
-// ************************************************************
-
-package codec
-
-import (
-       "encoding"
-       "reflect"
-)
-
-// This file is used to generate helper code for codecgen.
-// The values here i.e. genHelper(En|De)coder are not to be used directly by
-// library users. They WILL change continuously and without notice.
-//
-// To help enforce this, we create an unexported type with exported members.
-// The only way to get the type is via the one exported type that we control 
(somewhat).
-//
-// When static codecs are created for types, they will use this value
-// to perform encoding or decoding of primitives or known slice or map types.
-
-// GenHelperEncoder is exported so that it can be used externally by codecgen.
-// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINOUSLY WITHOUT 
NOTICE.
-func GenHelperEncoder(e *Encoder) (genHelperEncoder, encDriver) {
-       return genHelperEncoder{e: e}, e.e
-}
-
-// GenHelperDecoder is exported so that it can be used externally by codecgen.
-// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINOUSLY WITHOUT 
NOTICE.
-func GenHelperDecoder(d *Decoder) (genHelperDecoder, decDriver) {
-       return genHelperDecoder{d: d}, d.d
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-type genHelperEncoder struct {
-       e *Encoder
-       F fastpathT
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-type genHelperDecoder struct {
-       d *Decoder
-       F fastpathT
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncBasicHandle() *BasicHandle {
-       return f.e.h
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncBinary() bool {
-       return f.e.be // f.e.hh.isBinaryEncoding()
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncFallback(iv interface{}) {
-       // println(">>>>>>>>> EncFallback")
-       f.e.encodeI(iv, false, false)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncTextMarshal(iv encoding.TextMarshaler) {
-       bs, fnerr := iv.MarshalText()
-       f.e.marshal(bs, fnerr, false, c_UTF8)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncJSONMarshal(iv jsonMarshaler) {
-       bs, fnerr := iv.MarshalJSON()
-       f.e.marshal(bs, fnerr, true, c_UTF8)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncBinaryMarshal(iv encoding.BinaryMarshaler) {
-       bs, fnerr := iv.MarshalBinary()
-       f.e.marshal(bs, fnerr, false, c_RAW)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncRaw(iv Raw) {
-       f.e.raw(iv)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) TimeRtidIfBinc() uintptr {
-       if _, ok := f.e.hh.(*BincHandle); ok {
-               return timeTypId
-       }
-       return 0
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) IsJSONHandle() bool {
-       return f.e.js
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) HasExtensions() bool {
-       return len(f.e.h.extHandle) != 0
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncExt(v interface{}) (r bool) {
-       rt := reflect.TypeOf(v)
-       if rt.Kind() == reflect.Ptr {
-               rt = rt.Elem()
-       }
-       rtid := reflect.ValueOf(rt).Pointer()
-       if xfFn := f.e.h.getExt(rtid); xfFn != nil {
-               f.e.e.EncodeExt(v, xfFn.tag, xfFn.ext, f.e)
-               return true
-       }
-       return false
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncSendContainerState(c containerState) {
-       if f.e.cr != nil {
-               f.e.cr.sendContainerState(c)
-       }
-}
-
-// ---------------- DECODER FOLLOWS -----------------
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecBasicHandle() *BasicHandle {
-       return f.d.h
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecBinary() bool {
-       return f.d.be // f.d.hh.isBinaryEncoding()
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecSwallow() {
-       f.d.swallow()
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecScratchBuffer() []byte {
-       return f.d.b[:]
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecFallback(iv interface{}, chkPtr bool) {
-       // println(">>>>>>>>> DecFallback")
-       f.d.decodeI(iv, chkPtr, false, false, false)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecSliceHelperStart() (decSliceHelper, int) {
-       return f.d.decSliceHelperStart()
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecStructFieldNotFound(index int, name string) {
-       f.d.structFieldNotFound(index, name)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecArrayCannotExpand(sliceLen, streamLen int) {
-       f.d.arrayCannotExpand(sliceLen, streamLen)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecTextUnmarshal(tm encoding.TextUnmarshaler) {
-       fnerr := tm.UnmarshalText(f.d.d.DecodeBytes(f.d.b[:], true, true))
-       if fnerr != nil {
-               panic(fnerr)
-       }
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecJSONUnmarshal(tm jsonUnmarshaler) {
-       // bs := f.dd.DecodeBytes(f.d.b[:], true, true)
-       // grab the bytes to be read, as UnmarshalJSON needs the full JSON so 
as to unmarshal it itself.
-       fnerr := tm.UnmarshalJSON(f.d.nextValueBytes())
-       if fnerr != nil {
-               panic(fnerr)
-       }
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecBinaryUnmarshal(bm encoding.BinaryUnmarshaler) {
-       fnerr := bm.UnmarshalBinary(f.d.d.DecodeBytes(nil, false, true))
-       if fnerr != nil {
-               panic(fnerr)
-       }
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecRaw() []byte {
-       return f.d.raw()
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) TimeRtidIfBinc() uintptr {
-       if _, ok := f.d.hh.(*BincHandle); ok {
-               return timeTypId
-       }
-       return 0
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) IsJSONHandle() bool {
-       return f.d.js
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) HasExtensions() bool {
-       return len(f.d.h.extHandle) != 0
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecExt(v interface{}) (r bool) {
-       rt := reflect.TypeOf(v).Elem()
-       rtid := reflect.ValueOf(rt).Pointer()
-       if xfFn := f.d.h.getExt(rtid); xfFn != nil {
-               f.d.d.DecodeExt(v, xfFn.tag, xfFn.ext)
-               return true
-       }
-       return false
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecInferLen(clen, maxlen, unit int) (rvlen int, 
truncated bool) {
-       return decInferLen(clen, maxlen, unit)
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecSendContainerState(c containerState) {
-       if f.d.cr != nil {
-               f.d.cr.sendContainerState(c)
-       }
-}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/9975ef7a/newtmgr/vendor/github.com/ugorji/go/codec/gen-helper.go.tmpl
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/github.com/ugorji/go/codec/gen-helper.go.tmpl 
b/newtmgr/vendor/github.com/ugorji/go/codec/gen-helper.go.tmpl
deleted file mode 100644
index ad99f66..0000000
--- a/newtmgr/vendor/github.com/ugorji/go/codec/gen-helper.go.tmpl
+++ /dev/null
@@ -1,372 +0,0 @@
-/* // +build ignore */
-
-// Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.
-// Use of this source code is governed by a MIT license found in the LICENSE 
file.
-
-// ************************************************************
-// DO NOT EDIT.
-// THIS FILE IS AUTO-GENERATED from gen-helper.go.tmpl
-// ************************************************************
-
-package codec
-
-import (
-       "encoding"
-       "reflect"
-)
-
-// This file is used to generate helper code for codecgen. 
-// The values here i.e. genHelper(En|De)coder are not to be used directly by 
-// library users. They WILL change continuously and without notice.
-// 
-// To help enforce this, we create an unexported type with exported members.
-// The only way to get the type is via the one exported type that we control 
(somewhat).
-// 
-// When static codecs are created for types, they will use this value
-// to perform encoding or decoding of primitives or known slice or map types.
-
-// GenHelperEncoder is exported so that it can be used externally by codecgen.
-// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINOUSLY WITHOUT 
NOTICE.
-func GenHelperEncoder(e *Encoder) (genHelperEncoder, encDriver) {
-       return genHelperEncoder{e:e}, e.e 
-}
-
-// GenHelperDecoder is exported so that it can be used externally by codecgen.
-// Library users: DO NOT USE IT DIRECTLY. IT WILL CHANGE CONTINOUSLY WITHOUT 
NOTICE.
-func GenHelperDecoder(d *Decoder) (genHelperDecoder, decDriver) {
-       return genHelperDecoder{d:d}, d.d 
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-type genHelperEncoder struct {
-       e *Encoder
-       F fastpathT 
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-type genHelperDecoder struct {
-       d *Decoder
-       F fastpathT 
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncBasicHandle() *BasicHandle {
-       return f.e.h
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncBinary() bool {
-       return f.e.be // f.e.hh.isBinaryEncoding()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncFallback(iv interface{}) {
-       // println(">>>>>>>>> EncFallback")
-       f.e.encodeI(iv, false, false)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncTextMarshal(iv encoding.TextMarshaler) {
-       bs, fnerr := iv.MarshalText()
-       f.e.marshal(bs, fnerr, false, c_UTF8)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncJSONMarshal(iv jsonMarshaler) {
-       bs, fnerr := iv.MarshalJSON()
-       f.e.marshal(bs, fnerr, true, c_UTF8)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncBinaryMarshal(iv encoding.BinaryMarshaler) {
-       bs, fnerr := iv.MarshalBinary()
-       f.e.marshal(bs, fnerr, false, c_RAW)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncRaw(iv Raw) {
-       f.e.raw(iv)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) TimeRtidIfBinc() uintptr {
-       if _, ok := f.e.hh.(*BincHandle); ok {
-               return timeTypId 
-       }
-       return 0
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) IsJSONHandle() bool {
-       return f.e.js
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) HasExtensions() bool {
-       return len(f.e.h.extHandle) != 0
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncExt(v interface{}) (r bool) {
-       rt := reflect.TypeOf(v)
-       if rt.Kind() == reflect.Ptr {
-               rt = rt.Elem()
-       }
-       rtid := reflect.ValueOf(rt).Pointer()
-       if xfFn := f.e.h.getExt(rtid); xfFn != nil {
-               f.e.e.EncodeExt(v, xfFn.tag, xfFn.ext, f.e)
-               return true
-       }
-       return false 
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncSendContainerState(c containerState) {
-       if f.e.cr != nil {
-               f.e.cr.sendContainerState(c)
-       }
-}
-
-// ---------------- DECODER FOLLOWS -----------------
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecBasicHandle() *BasicHandle {
-       return f.d.h
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecBinary() bool {
-     return f.d.be // f.d.hh.isBinaryEncoding()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecSwallow() {
-       f.d.swallow()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecScratchBuffer() []byte {
-       return f.d.b[:]
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecFallback(iv interface{}, chkPtr bool) {
-       // println(">>>>>>>>> DecFallback")
-       f.d.decodeI(iv, chkPtr, false, false, false)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecSliceHelperStart() (decSliceHelper, int) {
-       return f.d.decSliceHelperStart()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecStructFieldNotFound(index int, name string) {
-       f.d.structFieldNotFound(index, name)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecArrayCannotExpand(sliceLen, streamLen int) {
-       f.d.arrayCannotExpand(sliceLen, streamLen)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecTextUnmarshal(tm encoding.TextUnmarshaler) {
-       fnerr := tm.UnmarshalText(f.d.d.DecodeBytes(f.d.b[:], true, true))
-       if fnerr != nil {
-               panic(fnerr)
-       }
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecJSONUnmarshal(tm jsonUnmarshaler) {
-       // bs := f.dd.DecodeBytes(f.d.b[:], true, true)
-       // grab the bytes to be read, as UnmarshalJSON needs the full JSON so 
as to unmarshal it itself.
-       fnerr := tm.UnmarshalJSON(f.d.nextValueBytes())
-       if fnerr != nil {
-               panic(fnerr)
-       }
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecBinaryUnmarshal(bm encoding.BinaryUnmarshaler) {
-       fnerr := bm.UnmarshalBinary(f.d.d.DecodeBytes(nil, false, true))
-       if fnerr != nil {
-               panic(fnerr)
-       }
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecRaw() []byte {
-       return f.d.raw()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) TimeRtidIfBinc() uintptr {
-       if _, ok := f.d.hh.(*BincHandle); ok {
-               return timeTypId 
-       }
-       return 0
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) IsJSONHandle() bool {
-       return f.d.js 
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) HasExtensions() bool {
-       return len(f.d.h.extHandle) != 0
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecExt(v interface{}) (r bool) {
-       rt := reflect.TypeOf(v).Elem()
-       rtid := reflect.ValueOf(rt).Pointer()
-       if xfFn := f.d.h.getExt(rtid); xfFn != nil {
-               f.d.d.DecodeExt(v, xfFn.tag, xfFn.ext)
-               return true
-       }
-       return false 
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecInferLen(clen, maxlen, unit int) (rvlen int, 
truncated bool) {
-       return decInferLen(clen, maxlen, unit)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecSendContainerState(c containerState) {
-       if f.d.cr != nil {
-               f.d.cr.sendContainerState(c)
-       }
-}
-
-{{/*
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncDriver() encDriver {
-       return f.e.e
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecDriver() decDriver {
-     return f.d.d
-}
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncNil() {
-       f.e.e.EncodeNil()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncBytes(v []byte) {
-       f.e.e.EncodeStringBytes(c_RAW, v)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncArrayStart(length int) {
-       f.e.e.EncodeArrayStart(length)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncArrayEnd() {
-       f.e.e.EncodeArrayEnd()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncArrayEntrySeparator() {
-       f.e.e.EncodeArrayEntrySeparator()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncMapStart(length int) {
-       f.e.e.EncodeMapStart(length)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncMapEnd() {
-       f.e.e.EncodeMapEnd()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncMapEntrySeparator() {
-       f.e.e.EncodeMapEntrySeparator()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) EncMapKVSeparator() {
-       f.e.e.EncodeMapKVSeparator()
-}
-
-// ---------
-
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecBytes(v *[]byte) {
-       *v = f.d.d.DecodeBytes(*v)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecTryNil() bool {
-       return f.d.d.TryDecodeAsNil()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecContainerIsNil() (b bool) {
-       return f.d.d.IsContainerType(valueTypeNil)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecContainerIsMap() (b bool) {
-       return f.d.d.IsContainerType(valueTypeMap)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecContainerIsArray() (b bool) {
-       return f.d.d.IsContainerType(valueTypeArray)
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecCheckBreak() bool {
-       return f.d.d.CheckBreak()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecMapStart() int {
-       return f.d.d.ReadMapStart()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecArrayStart() int {
-       return f.d.d.ReadArrayStart()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecMapEnd() {
-       f.d.d.ReadMapEnd()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecArrayEnd() {
-       f.d.d.ReadArrayEnd()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecArrayEntrySeparator() {
-       f.d.d.ReadArrayEntrySeparator()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecMapEntrySeparator() {
-       f.d.d.ReadMapEntrySeparator()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) DecMapKVSeparator() {
-       f.d.d.ReadMapKVSeparator()
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) ReadStringAsBytes(bs []byte) []byte {
-       return f.d.d.DecodeStringAsBytes(bs)
-}
-
-
-// -- encode calls (primitives)
-{{range .Values}}{{if .Primitive }}{{if ne .Primitive "interface{}" }}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) {{ .MethodNamePfx "Enc" true }}(v {{ .Primitive }}) {
-       ee := f.e.e
-       {{ encmd .Primitive "v" }}
-}
-{{ end }}{{ end }}{{ end }}
-
-// -- decode calls (primitives)
-{{range .Values}}{{if .Primitive }}{{if ne .Primitive "interface{}" }}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) {{ .MethodNamePfx "Dec" true }}(vp *{{ .Primitive 
}}) {
-       dd := f.d.d
-       *vp = {{ decmd .Primitive }}
-}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperDecoder) {{ .MethodNamePfx "Read" true }}() (v {{ .Primitive 
}}) {
-       dd := f.d.d
-       v = {{ decmd .Primitive }}
-       return
-}
-{{ end }}{{ end }}{{ end }}
-
-
-// -- encode calls (slices/maps)
-{{range .Values}}{{if not .Primitive }}{{if .Slice }}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) {{ .MethodNamePfx "Enc" false }}(v []{{ .Elem }}) { 
{{ else }}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-func (f genHelperEncoder) {{ .MethodNamePfx "Enc" false }}(v map[{{ .MapKey 
}}]{{ .Elem }}) { {{end}}
-       f.F.{{ .MethodNamePfx "Enc" false }}V(v, false, f.e)
-}
-{{ end }}{{ end }}
-
-// -- decode calls (slices/maps) 
-{{range .Values}}{{if not .Primitive }}
-// FOR USE BY CODECGEN ONLY. IT *WILL* CHANGE WITHOUT NOTICE. *DO NOT USE*
-{{if .Slice }}func (f genHelperDecoder) {{ .MethodNamePfx "Dec" false }}(vp 
*[]{{ .Elem }}) { 
-{{else}}func (f genHelperDecoder) {{ .MethodNamePfx "Dec" false }}(vp *map[{{ 
.MapKey }}]{{ .Elem }}) { {{end}}
-       v, changed := f.F.{{ .MethodNamePfx "Dec" false }}V(*vp, false, true, 
f.d)
-       if changed {
-               *vp = v 
-       }
-}
-{{ end }}{{ end }}
-*/}}

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newtmgr/blob/9975ef7a/newtmgr/vendor/github.com/ugorji/go/codec/gen.generated.go
----------------------------------------------------------------------
diff --git a/newtmgr/vendor/github.com/ugorji/go/codec/gen.generated.go 
b/newtmgr/vendor/github.com/ugorji/go/codec/gen.generated.go
deleted file mode 100644
index 2ace97b..0000000
--- a/newtmgr/vendor/github.com/ugorji/go/codec/gen.generated.go
+++ /dev/null
@@ -1,175 +0,0 @@
-// Copyright (c) 2012-2015 Ugorji Nwoke. All rights reserved.
-// Use of this source code is governed by a MIT license found in the LICENSE 
file.
-
-package codec
-
-// DO NOT EDIT. THIS FILE IS AUTO-GENERATED FROM gen-dec-(map|array).go.tmpl
-
-const genDecMapTmpl = `
-{{var "v"}} := *{{ .Varname }}
-{{var "l"}} := r.ReadMapStart()
-{{var "bh"}} := z.DecBasicHandle()
-if {{var "v"}} == nil {
-       {{var "rl"}}, _ := z.DecInferLen({{var "l"}}, {{var "bh"}}.MaxInitLen, 
{{ .Size }})
-       {{var "v"}} = make(map[{{ .KTyp }}]{{ .Typ }}, {{var "rl"}})
-       *{{ .Varname }} = {{var "v"}}
-}
-var {{var "mk"}} {{ .KTyp }}
-var {{var "mv"}} {{ .Typ }}
-var {{var "mg"}} {{if decElemKindPtr}}, {{var "ms"}}, {{var "mok"}}{{end}} bool
-if {{var "bh"}}.MapValueReset {
-       {{if decElemKindPtr}}{{var "mg"}} = true
-       {{else if decElemKindIntf}}if !{{var "bh"}}.InterfaceReset { {{var 
"mg"}} = true }
-       {{else if not decElemKindImmutable}}{{var "mg"}} = true
-       {{end}} }
-if {{var "l"}} > 0  {
-for {{var "j"}} := 0; {{var "j"}} < {{var "l"}}; {{var "j"}}++ {
-       z.DecSendContainerState(codecSelfer_containerMapKey{{ .Sfx }})
-       {{ $x := printf "%vmk%v" .TempVar .Rand }}{{ decLineVarK $x }}
-{{ if eq .KTyp "interface{}" }}{{/* // special case if a byte array. */}}if 
{{var "bv"}}, {{var "bok"}} := {{var "mk"}}.([]byte); {{var "bok"}} {
-               {{var "mk"}} = string({{var "bv"}})
-       }{{ end }}{{if decElemKindPtr}}
-       {{var "ms"}} = true{{end}}
-       if {{var "mg"}} {
-               {{if decElemKindPtr}}{{var "mv"}}, {{var "mok"}} = {{var 
"v"}}[{{var "mk"}}] 
-               if {{var "mok"}} {
-                       {{var "ms"}} = false
-               } {{else}}{{var "mv"}} = {{var "v"}}[{{var "mk"}}] {{end}}
-       } {{if not decElemKindImmutable}}else { {{var "mv"}} = {{decElemZero}} 
}{{end}}
-       z.DecSendContainerState(codecSelfer_containerMapValue{{ .Sfx }})
-       {{ $x := printf "%vmv%v" .TempVar .Rand }}{{ decLineVar $x }}
-       if {{if decElemKindPtr}} {{var "ms"}} && {{end}} {{var "v"}} != nil {
-               {{var "v"}}[{{var "mk"}}] = {{var "mv"}}
-       }
-}
-} else if {{var "l"}} < 0  {
-for {{var "j"}} := 0; !r.CheckBreak(); {{var "j"}}++ {
-       z.DecSendContainerState(codecSelfer_containerMapKey{{ .Sfx }})
-       {{ $x := printf "%vmk%v" .TempVar .Rand }}{{ decLineVarK $x }}
-{{ if eq .KTyp "interface{}" }}{{/* // special case if a byte array. */}}if 
{{var "bv"}}, {{var "bok"}} := {{var "mk"}}.([]byte); {{var "bok"}} {
-               {{var "mk"}} = string({{var "bv"}})
-       }{{ end }}{{if decElemKindPtr}}
-       {{var "ms"}} = true {{ end }}
-       if {{var "mg"}} {
-               {{if decElemKindPtr}}{{var "mv"}}, {{var "mok"}} = {{var 
"v"}}[{{var "mk"}}] 
-               if {{var "mok"}} {
-                       {{var "ms"}} = false
-               } {{else}}{{var "mv"}} = {{var "v"}}[{{var "mk"}}] {{end}}
-       } {{if not decElemKindImmutable}}else { {{var "mv"}} = {{decElemZero}} 
}{{end}}
-       z.DecSendContainerState(codecSelfer_containerMapValue{{ .Sfx }})
-       {{ $x := printf "%vmv%v" .TempVar .Rand }}{{ decLineVar $x }}
-       if {{if decElemKindPtr}} {{var "ms"}} && {{end}} {{var "v"}} != nil {
-               {{var "v"}}[{{var "mk"}}] = {{var "mv"}}
-       }
-}
-} // else len==0: TODO: Should we clear map entries?
-z.DecSendContainerState(codecSelfer_containerMapEnd{{ .Sfx }})
-`
-
-const genDecListTmpl = `
-{{var "v"}} := {{if not isArray}}*{{end}}{{ .Varname }}
-{{var "h"}}, {{var "l"}} := z.DecSliceHelperStart() {{/* // helper, 
containerLenS */}}{{if not isArray}}
-var {{var "c"}} bool {{/* // changed */}}
-_ = {{var "c"}}{{end}}
-if {{var "l"}} == 0 {
-       {{if isSlice }}if {{var "v"}} == nil {
-               {{var "v"}} = []{{ .Typ }}{}
-               {{var "c"}} = true
-       } else if len({{var "v"}}) != 0 {
-               {{var "v"}} = {{var "v"}}[:0]
-               {{var "c"}} = true
-       } {{end}} {{if isChan }}if {{var "v"}} == nil {
-               {{var "v"}} = make({{ .CTyp }}, 0)
-               {{var "c"}} = true
-       } {{end}}
-} else if {{var "l"}} > 0 {
-       {{if isChan }}if {{var "v"}} == nil {
-               {{var "rl"}}, _ = z.DecInferLen({{var "l"}}, 
z.DecBasicHandle().MaxInitLen, {{ .Size }})
-               {{var "v"}} = make({{ .CTyp }}, {{var "rl"}})
-               {{var "c"}} = true
-       }
-       for {{var "r"}} := 0; {{var "r"}} < {{var "l"}}; {{var "r"}}++ {
-               {{var "h"}}.ElemContainerState({{var "r"}})
-               var {{var "t"}} {{ .Typ }}
-               {{ $x := printf "%st%s" .TempVar .Rand }}{{ decLineVar $x }}
-               {{var "v"}} <- {{var "t"}}
-       }
-       {{ else }}      var {{var "rr"}}, {{var "rl"}} int {{/* // num2read, 
length of slice/array/chan */}}
-       var {{var "rt"}} bool {{/* truncated */}}
-       _, _ = {{var "rl"}}, {{var "rt"}}
-       {{var "rr"}} = {{var "l"}} // len({{var "v"}})
-       if {{var "l"}} > cap({{var "v"}}) {
-               {{if isArray }}z.DecArrayCannotExpand(len({{var "v"}}), {{var 
"l"}})
-               {{ else }}{{if not .Immutable }}
-               {{var "rg"}} := len({{var "v"}}) > 0
-               {{var "v2"}} := {{var "v"}} {{end}}
-               {{var "rl"}}, {{var "rt"}} = z.DecInferLen({{var "l"}}, 
z.DecBasicHandle().MaxInitLen, {{ .Size }})
-               if {{var "rt"}} {
-                       if {{var "rl"}} <= cap({{var "v"}}) {
-                               {{var "v"}} = {{var "v"}}[:{{var "rl"}}]
-                       } else {
-                               {{var "v"}} = make([]{{ .Typ }}, {{var "rl"}})
-                       }
-               } else {
-                       {{var "v"}} = make([]{{ .Typ }}, {{var "rl"}})
-               }
-               {{var "c"}} = true
-               {{var "rr"}} = len({{var "v"}}) {{if not .Immutable }}
-                       if {{var "rg"}} { copy({{var "v"}}, {{var "v2"}}) } 
{{end}} {{end}}{{/* end not Immutable, isArray */}}
-       } {{if isSlice }} else if {{var "l"}} != len({{var "v"}}) {
-               {{var "v"}} = {{var "v"}}[:{{var "l"}}]
-               {{var "c"}} = true
-       } {{end}}       {{/* end isSlice:47 */}} 
-       {{var "j"}} := 0
-       for ; {{var "j"}} < {{var "rr"}} ; {{var "j"}}++ {
-               {{var "h"}}.ElemContainerState({{var "j"}})
-               {{ $x := printf "%[1]vv%[2]v[%[1]vj%[2]v]" .TempVar .Rand }}{{ 
decLineVar $x }}
-       }
-       {{if isArray }}for ; {{var "j"}} < {{var "l"}} ; {{var "j"}}++ {
-               {{var "h"}}.ElemContainerState({{var "j"}})
-               z.DecSwallow()
-       }
-       {{ else }}if {{var "rt"}} {
-               for ; {{var "j"}} < {{var "l"}} ; {{var "j"}}++ {
-                       {{var "v"}} = append({{var "v"}}, {{ zero}})
-                       {{var "h"}}.ElemContainerState({{var "j"}})
-                       {{ $x := printf "%[1]vv%[2]v[%[1]vj%[2]v]" .TempVar 
.Rand }}{{ decLineVar $x }}
-               }
-       } {{end}} {{/* end isArray:56 */}}
-       {{end}} {{/* end isChan:16 */}}
-} else { {{/* len < 0 */}}
-       {{var "j"}} := 0
-       for ; !r.CheckBreak(); {{var "j"}}++ {
-               {{if isChan }}
-               {{var "h"}}.ElemContainerState({{var "j"}})
-               var {{var "t"}} {{ .Typ }}
-               {{ $x := printf "%st%s" .TempVar .Rand }}{{ decLineVar $x }}
-               {{var "v"}} <- {{var "t"}} 
-               {{ else }}
-               if {{var "j"}} >= len({{var "v"}}) {
-                       {{if isArray }}z.DecArrayCannotExpand(len({{var "v"}}), 
{{var "j"}}+1)
-                       {{ else }}{{var "v"}} = append({{var "v"}}, {{zero}})// 
var {{var "z"}} {{ .Typ }}
-                       {{var "c"}} = true {{end}}
-               }
-               {{var "h"}}.ElemContainerState({{var "j"}})
-               if {{var "j"}} < len({{var "v"}}) {
-                       {{ $x := printf "%[1]vv%[2]v[%[1]vj%[2]v]" .TempVar 
.Rand }}{{ decLineVar $x }}
-               } else {
-                       z.DecSwallow()
-               }
-               {{end}}
-       }
-       {{if isSlice }}if {{var "j"}} < len({{var "v"}}) {
-               {{var "v"}} = {{var "v"}}[:{{var "j"}}]
-               {{var "c"}} = true
-       } else if {{var "j"}} == 0 && {{var "v"}} == nil {
-               {{var "v"}} = []{{ .Typ }}{}
-               {{var "c"}} = true
-       }{{end}}
-}
-{{var "h"}}.End()
-{{if not isArray }}if {{var "c"}} { 
-       *{{ .Varname }} = {{var "v"}}
-}{{end}}
-`
-

Reply via email to