class_docstr: Stores token position and character start and end information for each
  posting.
  
  Supports: frequency, weight, positions, position_boosts (always reports
  position boost = 1.0), characters.
class_docstr_tok: ["Stores","token","position","and","character","start","and","end","information","for","each","posting",".","Supports",":","frequency",",","weight",",","positions",",","position_boosts","(","always","reports","position","boost","=","1.0",")",",","characters","."]
code: def decode_characters(self, valuestring):
      if not valuestring.endswith(b(".")):
          valuestring += b(".")
      codes = loads(valuestring[_INT_SIZE:])
      position = 0
      endchar = 0
      posns_chars = []
      for code in codes:
          position = code[0] + position
          startchar = code[1] + endchar
          endchar = code[2] + startchar
          posns_chars.append((position, startchar, endchar))
      return posns_chars
  
imports: from collections import defaultdict
  from whoosh.analysis import unstopped, entoken
  from whoosh.compat import iteritems, dumps, loads, b
  from whoosh.system import emptybytes
  from whoosh.system import _INT_SIZE, _FLOAT_SIZE
  from whoosh.system import pack_uint, unpack_uint, pack_float, unpack_float
label_desc: Use image node_id 3 for calling the Characters obj's underlying member method code with example usage: obj.decode_characters(valuestring) and returns: posns_chars