code: def _handleLookupType2Format2(subtable, lookupIndex, subtableIndex):
      
      # extract the classes
      leftClasses = _extractFeatureClasses(lookupIndex=lookupIndex, subtableIndex=subtableIndex, classDefs=subtable.ClassDef1.classDefs, coverage=subtable.Coverage.glyphs)
      rightClasses = _extractFeatureClasses(lookupIndex=lookupIndex, subtableIndex=subtableIndex, classDefs=subtable.ClassDef2.classDefs)
      # extract the pairs
      kerning = {}
      for class1RecordIndex, class1Record in enumerate(subtable.Class1Record):
          for class2RecordIndex, class2Record in enumerate(class1Record.Class2Record):
              leftClass = (lookupIndex, subtableIndex, class1RecordIndex)
              rightClass = (lookupIndex, subtableIndex, class2RecordIndex)
              valueFormat1 = subtable.ValueFormat1
              if valueFormat1:
                  value = class2Record.Value1
              else:
                  value = class2Record.Value2
              if hasattr(value, "XAdvance") and value.XAdvance != 0:
                  value = value.XAdvance
                  kerning[leftClass, rightClass] = value
      return kerning, leftClasses, rightClasses
docs: Extract kerning, left class and right class dictionaries from a Lookup Type 2 Format 2.