docstr: Create the `name` table for the font. The `nameStrings` argument must
  be a dict, mapping nameIDs or descriptive names for the nameIDs to name
  record values. A value is either a string, or a dict, mapping language codes
  to strings, to allow localized name table entries.
  
  By default, both Windows (platformID=3) and Macintosh (platformID=1) name
  records are added, unless any of `windows` or `mac` arguments is False.
  
  The following descriptive names are available for nameIDs:
  
      copyright (nameID 0)
      familyName (nameID 1)
      styleName (nameID 2)
      uniqueFontIdentifier (nameID 3)
      fullName (nameID 4)
      version (nameID 5)
      psName (nameID 6)
      trademark (nameID 7)
      manufacturer (nameID 8)
      designer (nameID 9)
      description (nameID 10)
      vendorURL (nameID 11)
      designerURL (nameID 12)
      licenseDescription (nameID 13)
      licenseInfoURL (nameID 14)
      typographicFamily (nameID 16)
      typographicSubfamily (nameID 17)
      compatibleFullName (nameID 18)
      sampleText (nameID 19)
      postScriptCIDFindfontName (nameID 20)
      wwsFamilyName (nameID 21)
      wwsSubfamilyName (nameID 22)
      lightBackgroundPalette (nameID 23)
      darkBackgroundPalette (nameID 24)
      variationsPostScriptNamePrefix (nameID 25)
code: def setupNameTable(self, nameStrings, windows=True, mac=True):
      """Create the `name` table for the font. The `nameStrings` argument must
      be a dict, mapping nameIDs or descriptive names for the nameIDs to name
      record values. A value is either a string, or a dict, mapping language codes
      to strings, to allow localized name table entries.
  
      By default, both Windows (platformID=3) and Macintosh (platformID=1) name
      records are added, unless any of `windows` or `mac` arguments is False.
  
      The following descriptive names are available for nameIDs:
  
          copyright (nameID 0)
          familyName (nameID 1)
          styleName (nameID 2)
          uniqueFontIdentifier (nameID 3)
          fullName (nameID 4)
          version (nameID 5)
          psName (nameID 6)
          trademark (nameID 7)
          manufacturer (nameID 8)
          designer (nameID 9)
          description (nameID 10)
          vendorURL (nameID 11)
          designerURL (nameID 12)
          licenseDescription (nameID 13)
          licenseInfoURL (nameID 14)
          typographicFamily (nameID 16)
          typographicSubfamily (nameID 17)
          compatibleFullName (nameID 18)
          sampleText (nameID 19)
          postScriptCIDFindfontName (nameID 20)
          wwsFamilyName (nameID 21)
          wwsSubfamilyName (nameID 22)
          lightBackgroundPalette (nameID 23)
          darkBackgroundPalette (nameID 24)
          variationsPostScriptNamePrefix (nameID 25)
      """
      nameTable = self.font["name"] = newTable("name")
      nameTable.names = []
  
      for nameName, nameValue in nameStrings.items():
          if isinstance(nameName, int):
              nameID = nameName
          else:
              nameID = _nameIDs[nameName]
          if isinstance(nameValue, str):
              nameValue = dict(en=nameValue)
          nameTable.addMultilingualName(
              nameValue,
              ttFont=self.font,
              nameID=nameID,
              windows=windows,
              mac=mac,
          )
  
imports: from .ttLib import TTFont, newTable
  from .ttLib.tables._c_m_a_p import cmap_classes
  from .ttLib.tables._g_l_y_f import flagCubic
  from .ttLib.tables.O_S_2f_2 import Panose
  from .misc.timeTools import timestampNow
  import struct
  from collections import OrderedDict
label_desc: Use image node_id 9 for calling the FontBuilder obj's underlying member method code with example usage: obj.setupNameTable(nameStrings, windows, mac) without return types