code: def unpack_item(item):
      tp = type(item.value)
      if tp == dict:
          newitem = {}
          for key, value in item.value.items():
              newitem[key] = unpack_item(value)
      elif tp == list:
          newitem = [None] * len(item.value)
          for i in range(len(item.value)):
              newitem[i] = unpack_item(item.value[i])
          if item.type == "proceduretype":
              newitem = tuple(newitem)
      else:
          newitem = item.value
      return newitem
  
imports: from fontTools.misc.textTools import bytechr, byteord, bytesjoin, tobytes, tostr
  from fontTools.misc import eexec
  from .psOperators import PSOperators, ps_StandardEncoding, ps_array, ps_boolean, ps_dict, ps_integer, ps_literal, ps_mark, ps_name, ps_operator, ps_procedure, ps_procmark, ps_real, ps_string
  import re
  from collections.abc import Callable
  from string import whitespace
  import logging
label_desc: Use image node_id 1 for calling a global function with example usage: unpack_item(item) and returns: newitem