code: def parseTlvProperties(response):
      
      d = {
              'raw': response,
          }
  
      # create a new list to consume it
      tmp = list(response)
      while tmp:
          tag = tmp[0]
          len = tmp[1]
          data = tmp[2:2 + len]
  
          if PCSCv2_PART10_PROPERTY_sFirmwareID == tag:
              # convert to a string
              data = "".join([chr(c) for c in data])
          # we now suppose the value is an integer
          elif 1 == len:
              # byte
              data = data[0]
          elif 2 == len:
              # 16 bits value
              data = data[1] * 256 + data[0]
          elif 4 == len:
              # 32 bits value
              data = ((data[3] * 256 + data[2]) * 256 + data[1]) * 256 + data[0]
  
          # store the value in the dictionnary
          try:
              d[Properties[tag]] = data
          except KeyError:
              d["UNKNOWN"] = data
  
          del tmp[0:2 + len]
  
      return d
docs: return the GET_TLV_PROPERTIES structure
  
      @param response: result of  L{FEATURE_GET_TLV_PROPERTIES}
  
      @rtype: dict
      @return: a dict