code: func Decode(b []byte) (v int32, n int, ok bool) {
  	if len(b) == 0 {
  		return 0, 0, false
  	}
  	n = bits.LeadingZeros8(^(b[0] & 0xf0)) + 1
  	if len(b) < n {
  		return 0, n, false
  	}
  	switch n {
  	case 1:
  		v = int32(b[0])
  	case 2:
  		v = int32(b[1]) | int32(b[0]&0x3f)<<8
  	case 3:
  		v = int32(b[2]) | int32(b[1])<<8 | int32(b[0]&0x1f)<<16
  	case 4:
  		v = int32(b[3]) | int32(b[2])<<8 | int32(b[1])<<16 | int32(b[0]&0x0f)<<24
  	case 5:
  		v = int32(b[4]&0x0f) | int32(b[3])<<4 | int32(b[2])<<12 | int32(b[1])<<20 | int32(b[0]&0x0f)<<28
  	}
  	return v, n, true
  }
docs: // Decode decodes the ITF-8 encoding in b and returns the int32 value, its
  // width in bytes and whether the decoding was successful. If the encoding
  // is invalid, the expected length of b and false are returned. If b has zero
  // length, zero, zero and false are returned.