code: def fromXML(self, name, attrs, content, ttFont):
      if not hasattr(self, "glyphPrograms"):
          self.glyphPrograms = {}
          self.extraPrograms = {}
      lines = strjoin(content).replace("\r", "\n").split("\n")
      text = "\r".join(lines[1:-1])
      if name == "glyphProgram":
          self.glyphPrograms[attrs["name"]] = text
      elif name == "extraProgram":
          self.extraPrograms[attrs["name"]] = text
  
file_path: catboost/contrib/python/fonttools/fontTools/ttLib/tables/T_S_I__1.py
imports: from .None import DefaultTable
  from fontTools.misc.loggingTools import LogMixin
  from fontTools.misc.textTools import strjoin, tobytes, tostr
label_desc: Use image node_id 4 for calling the table_T_S_I__1 obj's underlying member method code with example usage: obj.fromXML(name, attrs, content, ttFont) without return types