在好例子网,分享、交流、成长!
您当前所在位置:首页Others 开发实例一般编程问题 → Python中操作字体文件的库(fonttools)源码

Python中操作字体文件的库(fonttools)源码

一般编程问题

下载此实例
  • 开发语言:Others
  • 实例大小:5.73M
  • 下载次数:1
  • 浏览次数:27
  • 发布时间:2024-05-31
  • 实例类别:一般编程问题
  • 发 布 人:chenxiaolan
  • 文件格式:.zip
  • 所需积分:2
 相关标签: python tools 字体文件 py 字体

实例介绍

【实例简介】
fonttools是一个用Python编写的操作字体文件的库。该项目包括TTX工具,可将TrueType和OpenType字体转换为XML文本格式,并支持TrueType、OpenType、AFM以及部分Type 1和一些Mac特定格式。
【实例截图】
【核心代码】
文件清单
└── fonttools-089400352f4daf0d8a72bbe558a9a42795f542aa
    ├── CODE_OF_CONDUCT.md
    ├── CONTRIBUTING.md
    ├── dev-requirements.txt
    ├── Doc
    │   ├── docs-requirements.txt
    │   ├── make.bat
    │   ├── Makefile
    │   ├── man
    │   │   └── man1
    │   │       └── ttx.1
    │   ├── README.md
    │   └── source
    │       ├── afmLib.rst
    │       ├── agl.rst
    │       ├── assets
    │       │   └── img
    │       │       └── favicon.ico
    │       ├── cffLib
    │       │   ├── index.rst
    │       │   ├── specializer.rst
    │       │   └── width.rst
    │       ├── colorLib
    │       │   └── index.rst
    │       ├── config.rst
    │       ├── conf.py
    │       ├── cu2qu
    │       │   └── index.rst
    │       ├── designspaceLib
    │       │   ├── index.rst
    │       │   ├── python.rst
    │       │   ├── scripting.rst
    │       │   ├── v5_class_diagram.png
    │       │   ├── v5_class_diagram.puml
    │       │   ├── v5_split_downconvert.png
    │       │   ├── v5_split_downconvert.puml
    │       │   ├── v5_variable_fonts_vs_instances.png
    │       │   └── xml.rst
    │       ├── developer.rst
    │       ├── encodings
    │       │   └── index.rst
    │       ├── feaLib
    │       │   └── index.rst
    │       ├── index.rst
    │       ├── merge.rst
    │       ├── misc
    │       │   ├── arrayTools.rst
    │       │   ├── bezierTools.rst
    │       │   ├── classifyTools.rst
    │       │   ├── cliTools.rst
    │       │   ├── configTools.rst
    │       │   ├── eexec.rst
    │       │   ├── encodingTools.rst
    │       │   ├── etree.rst
    │       │   ├── filenames.rst
    │       │   ├── fixedTools.rst
    │       │   ├── index.rst
    │       │   ├── intTools.rst
    │       │   ├── loggingTools.rst
    │       │   ├── macCreatorType.rst
    │       │   ├── macRes.rst
    │       │   ├── plistlib.rst
    │       │   ├── psCharStrings.rst
    │       │   ├── psLib.rst
    │       │   ├── psOperators.rst
    │       │   ├── sstruct.rst
    │       │   ├── symfont.rst
    │       │   ├── testTools.rst
    │       │   ├── textTools.rst
    │       │   ├── timeTools.rst
    │       │   ├── transform.rst
    │       │   ├── xmlReader.rst
    │       │   └── xmlWriter.rst
    │       ├── mtiLib.rst
    │       ├── optional.rst
    │       ├── otlLib
    │       │   └── index.rst
    │       ├── pens
    │       │   ├── areaPen.rst
    │       │   ├── basePen.rst
    │       │   ├── boundsPen.rst
    │       │   ├── cocoaPen.rst
    │       │   ├── cu2quPen.rst
    │       │   ├── filterPen.rst
    │       │   ├── freetypePen.rst
    │       │   ├── index.rst
    │       │   ├── momentsPen.rst
    │       │   ├── perimeterPen.rst
    │       │   ├── pointInsidePen.rst
    │       │   ├── pointPen.rst
    │       │   ├── qtPen.rst
    │       │   ├── recordingPen.rst
    │       │   ├── reportLabPen.rst
    │       │   ├── reverseContourPen.rst
    │       │   ├── roundingPen.rst
    │       │   ├── statisticsPen.rst
    │       │   ├── svgPathPen.rst
    │       │   ├── t2CharStringPen.rst
    │       │   ├── teePen.rst
    │       │   ├── transformPen.rst
    │       │   ├── ttGlyphPen.rst
    │       │   └── wxPen.rst
    │       ├── subset
    │       │   ├── cff.rst
    │       │   └── index.rst
    │       ├── svgLib
    │       │   ├── index.rst
    │       │   └── path
    │       │       ├── index.rst
    │       │       └── parser.rst
    │       ├── t1Lib.rst
    │       ├── tfmLib.rst
    │       ├── ttLib
    │       │   ├── index.rst
    │       │   ├── macUtils.rst
    │       │   ├── sfnt.rst
    │       │   ├── standardGlyphOrder.rst
    │       │   ├── tables
    │       │   │   ├── _a_n_k_r.rst
    │       │   │   ├── _a_v_a_r.rst
    │       │   │   ├── B_A_S_E_.rst
    │       │   │   ├── _b_s_l_n.rst
    │       │   │   ├── C_B_D_T_.rst
    │       │   │   ├── C_B_L_C_.rst
    │       │   │   ├── C_F_F__2.rst
    │       │   │   ├── C_F_F_.rst
    │       │   │   ├── _c_i_d_g.rst
    │       │   │   ├── _c_m_a_p.rst
    │       │   │   ├── C_O_L_R_.rst
    │       │   │   ├── C_P_A_L_.rst
    │       │   │   ├── _c_v_a_r.rst
    │       │   │   ├── _c_v_t.rst
    │       │   │   ├── D_S_I_G_.rst
    │       │   │   ├── E_B_D_T_.rst
    │       │   │   ├── E_B_L_C_.rst
    │       │   │   ├── _f_e_a_t.rst
    │       │   │   ├── F__e_a_t.rst
    │       │   │   ├── F_F_T_M_.rst
    │       │   │   ├── _f_p_g_m.rst
    │       │   │   ├── _f_v_a_r.rst
    │       │   │   ├── _g_a_s_p.rst
    │       │   │   ├── _g_c_i_d.rst
    │       │   │   ├── G_D_E_F_.rst
    │       │   │   ├── G__l_a_t.rst
    │       │   │   ├── G__l_o_c.rst
    │       │   │   ├── _g_l_y_f.rst
    │       │   │   ├── G_M_A_P_.rst
    │       │   │   ├── G_P_K_G_.rst
    │       │   │   ├── G_P_O_S_.rst
    │       │   │   ├── G_S_U_B_.rst
    │       │   │   ├── _g_v_a_r.rst
    │       │   │   ├── _h_d_m_x.rst
    │       │   │   ├── _h_e_a_d.rst
    │       │   │   ├── _h_h_e_a.rst
    │       │   │   ├── _h_m_t_x.rst
    │       │   │   ├── H_V_A_R_.rst
    │       │   │   ├── J_S_T_F_.rst
    │       │   │   ├── _k_e_r_n.rst
    │       │   │   ├── _l_c_a_r.rst
    │       │   │   ├── _l_o_c_a.rst
    │       │   │   ├── _l_t_a_g.rst
    │       │   │   ├── L_T_S_H_.rst
    │       │   │   ├── M_A_T_H_.rst
    │       │   │   ├── _m_a_x_p.rst
    │       │   │   ├── _m_e_t_a.rst
    │       │   │   ├── M_E_T_A_.rst
    │       │   │   ├── _m_o_r_t.rst
    │       │   │   ├── _m_o_r_x.rst
    │       │   │   ├── M_V_A_R_.rst
    │       │   │   ├── _n_a_m_e.rst
    │       │   │   ├── _o_p_b_d.rst
    │       │   │   ├── O_S_2f_2.rst
    │       │   │   ├── _p_o_s_t.rst
    │       │   │   ├── _p_r_e_p.rst
    │       │   │   ├── _p_r_o_p.rst
    │       │   │   ├── _s_b_i_x.rst
    │       │   │   ├── S__i_l_f.rst
    │       │   │   ├── S__i_l_l.rst
    │       │   │   ├── S_I_N_G_.rst
    │       │   │   ├── S_T_A_T_.rst
    │       │   │   ├── S_V_G_.rst
    │       │   │   ├── _t_r_a_k.rst
    │       │   │   ├── T_T_F_A_.rst
    │       │   │   ├── V_D_M_X_.rst
    │       │   │   ├── _v_h_e_a.rst
    │       │   │   ├── _v_m_t_x.rst
    │       │   │   ├── V_O_R_G_.rst
    │       │   │   ├── VTT_related.rst
    │       │   │   └── V_V_A_R_.rst
    │       │   ├── tables.rst
    │       │   ├── ttCollection.rst
    │       │   ├── ttFont.rst
    │       │   └── woff2.rst
    │       ├── ttx.rst
    │       ├── ufoLib
    │       │   ├── converters.rst
    │       │   ├── errors.rst
    │       │   ├── filenames.rst
    │       │   ├── glifLib.rst
    │       │   ├── index.rst
    │       │   ├── kerning.rst
    │       │   ├── plistlib.rst
    │       │   ├── pointpen.rst
    │       │   ├── utils.rst
    │       │   └── validators.rst
    │       ├── unicodedata
    │       │   ├── Blocks.rst
    │       │   ├── index.rst
    │       │   ├── OTTags.rst
    │       │   ├── ScriptExtensions.rst
    │       │   └── Scripts.rst
    │       ├── unicode.rst
    │       ├── varLib
    │       │   ├── builder.rst
    │       │   ├── cff.rst
    │       │   ├── errors.rst
    │       │   ├── featureVars.rst
    │       │   ├── index.rst
    │       │   ├── instancer.rst
    │       │   ├── interpolatable.rst
    │       │   ├── interpolate_layout.rst
    │       │   ├── iup.rst
    │       │   ├── merger.rst
    │       │   ├── models.rst
    │       │   ├── mutator.rst
    │       │   ├── mvar.rst
    │       │   ├── plot.rst
    │       │   └── varStore.rst
    │       └── voltLib
    │           ├── index.rst
    │           └── voltToFea.rst
    ├── fonttools
    ├── Icons
    │   ├── FontToolsIconGreenCircle.pdf
    │   ├── FontToolsIconGreenCircle.png
    │   ├── FontToolsIconGreenSquare.pdf
    │   ├── FontToolsIconGreenSquare.png
    │   ├── FontToolsIconWhiteCircle.pdf
    │   ├── FontToolsIconWhiteCircle.png
    │   ├── FontToolsIconWhiteSquare.pdf
    │   └── FontToolsIconWhiteSquare.png
    ├── Lib
    │   └── fontTools
    │       ├── afmLib.py
    │       ├── agl.py
    │       ├── cffLib
    │       │   ├── CFF2ToCFF.py
    │       │   ├── CFFToCFF2.py
    │       │   ├── __init__.py
    │       │   ├── specializer.py
    │       │   ├── transforms.py
    │       │   └── width.py
    │       ├── colorLib
    │       │   ├── builder.py
    │       │   ├── errors.py
    │       │   ├── geometry.py
    │       │   ├── __init__.py
    │       │   ├── table_builder.py
    │       │   └── unbuilder.py
    │       ├── config
    │       │   └── __init__.py
    │       ├── cu2qu
    │       │   ├── benchmark.py
    │       │   ├── cli.py
    │       │   ├── cu2qu.py
    │       │   ├── errors.py
    │       │   ├── __init__.py
    │       │   ├── __main__.py
    │       │   └── ufo.py
    │       ├── designspaceLib
    │       │   ├── __init__.py
    │       │   ├── __main__.py
    │       │   ├── split.py
    │       │   ├── statNames.py
    │       │   └── types.py
    │       ├── encodings
    │       │   ├── codecs.py
    │       │   ├── __init__.py
    │       │   ├── MacRoman.py
    │       │   └── StandardEncoding.py
    │       ├── feaLib
    │       │   ├── ast.py
    │       │   ├── builder.py
    │       │   ├── error.py
    │       │   ├── __init__.py
    │       │   ├── lexer.py
    │       │   ├── location.py
    │       │   ├── lookupDebugInfo.py
    │       │   ├── __main__.py
    │       │   ├── parser.py
    │       │   └── variableScalar.py
    │       ├── fontBuilder.py
    │       ├── help.py
    │       ├── __init__.py
    │       ├── __main__.py
    │       ├── merge
    │       │   ├── base.py
    │       │   ├── cmap.py
    │       │   ├── __init__.py
    │       │   ├── layout.py
    │       │   ├── __main__.py
    │       │   ├── options.py
    │       │   ├── tables.py
    │       │   ├── unicode.py
    │       │   └── util.py
    │       ├── misc
    │       │   ├── arrayTools.py
    │       │   ├── bezierTools.py
    │       │   ├── classifyTools.py
    │       │   ├── cliTools.py
    │       │   ├── configTools.py
    │       │   ├── cython.py
    │       │   ├── dictTools.py
    │       │   ├── eexec.py
    │       │   ├── encodingTools.py
    │       │   ├── etree.py
    │       │   ├── filenames.py
    │       │   ├── fixedTools.py
    │       │   ├── __init__.py
    │       │   ├── intTools.py
    │       │   ├── iterTools.py
    │       │   ├── lazyTools.py
    │       │   ├── loggingTools.py
    │       │   ├── macCreatorType.py
    │       │   ├── macRes.py
    │       │   ├── plistlib
    │       │   │   ├── __init__.py
    │       │   │   └── py.typed
    │       │   ├── psCharStrings.py
    │       │   ├── psLib.py
    │       │   ├── psOperators.py
    │       │   ├── py23.py
    │       │   ├── roundTools.py
    │       │   ├── sstruct.py
    │       │   ├── symfont.py
    │       │   ├── testTools.py
    │       │   ├── textTools.py
    │       │   ├── timeTools.py
    │       │   ├── transform.py
    │       │   ├── treeTools.py
    │       │   ├── vector.py
    │       │   ├── visitor.py
    │       │   ├── xmlReader.py
    │       │   └── xmlWriter.py
    │       ├── mtiLib
    │       │   ├── __init__.py
    │       │   └── __main__.py
    │       ├── otlLib
    │       │   ├── builder.py
    │       │   ├── builder.py.sketch
    │       │   ├── error.py
    │       │   ├── __init__.py
    │       │   ├── maxContextCalc.py
    │       │   └── optimize
    │       │       ├── gpos.py
    │       │       ├── __init__.py
    │       │       └── __main__.py
    │       ├── pens
    │       │   ├── areaPen.py
    │       │   ├── basePen.py
    │       │   ├── boundsPen.py
    │       │   ├── cairoPen.py
    │       │   ├── cocoaPen.py
    │       │   ├── cu2quPen.py
    │       │   ├── explicitClosingLinePen.py
    │       │   ├── filterPen.py
    │       │   ├── freetypePen.py
    │       │   ├── hashPointPen.py
    │       │   ├── __init__.py
    │       │   ├── momentsPen.py
    │       │   ├── perimeterPen.py
    │       │   ├── pointInsidePen.py
    │       │   ├── pointPen.py
    │       │   ├── qtPen.py
    │       │   ├── qu2cuPen.py
    │       │   ├── quartzPen.py
    │       │   ├── recordingPen.py
    │       │   ├── reportLabPen.py
    │       │   ├── reverseContourPen.py
    │       │   ├── roundingPen.py
    │       │   ├── statisticsPen.py
    │       │   ├── svgPathPen.py
    │       │   ├── t2CharStringPen.py
    │       │   ├── teePen.py
    │       │   ├── transformPen.py
    │       │   ├── ttGlyphPen.py
    │       │   └── wxPen.py
    │       ├── qu2cu
    │       │   ├── benchmark.py
    │       │   ├── cli.py
    │       │   ├── __init__.py
    │       │   ├── __main__.py
    │       │   └── qu2cu.py
    │       ├── subset
    │       │   ├── cff.py
    │       │   ├── __init__.py
    │       │   ├── __main__.py
    │       │   ├── svg.py
    │       │   └── util.py
    │       ├── svgLib
    │       │   ├── __init__.py
    │       │   └── path
    │       │       ├── arc.py
    │       │       ├── __init__.py
    │       │       ├── parser.py
    │       │       └── shapes.py
    │       ├── t1Lib
    │       │   └── __init__.py
    │       ├── tfmLib.py
    │       ├── ttLib
    │       │   ├── __init__.py
    │       │   ├── macUtils.py
    │       │   ├── __main__.py
    │       │   ├── removeOverlaps.py
    │       │   ├── reorderGlyphs.py
    │       │   ├── scaleUpem.py
    │       │   ├── sfnt.py
    │       │   ├── standardGlyphOrder.py
    │       │   ├── tables
    │       │   │   ├── _a_n_k_r.py
    │       │   │   ├── asciiTable.py
    │       │   │   ├── _a_v_a_r.py
    │       │   │   ├── B_A_S_E_.py
    │       │   │   ├── BitmapGlyphMetrics.py
    │       │   │   ├── _b_s_l_n.py
    │       │   │   ├── C_B_D_T_.py
    │       │   │   ├── C_B_L_C_.py
    │       │   │   ├── C_F_F__2.py
    │       │   │   ├── C_F_F_.py
    │       │   │   ├── _c_i_d_g.py
    │       │   │   ├── _c_m_a_p.py
    │       │   │   ├── C_O_L_R_.py
    │       │   │   ├── C_P_A_L_.py
    │       │   │   ├── _c_v_a_r.py
    │       │   │   ├── _c_v_t.py
    │       │   │   ├── D__e_b_g.py
    │       │   │   ├── DefaultTable.py
    │       │   │   ├── D_S_I_G_.py
    │       │   │   ├── E_B_D_T_.py
    │       │   │   ├── E_B_L_C_.py
    │       │   │   ├── _f_e_a_t.py
    │       │   │   ├── F__e_a_t.py
    │       │   │   ├── F_F_T_M_.py
    │       │   │   ├── _f_p_g_m.py
    │       │   │   ├── _f_v_a_r.py
    │       │   │   ├── _g_a_s_p.py
    │       │   │   ├── _g_c_i_d.py
    │       │   │   ├── G_D_E_F_.py
    │       │   │   ├── G__l_a_t.py
    │       │   │   ├── G__l_o_c.py
    │       │   │   ├── _g_l_y_f.py
    │       │   │   ├── G_M_A_P_.py
    │       │   │   ├── G_P_K_G_.py
    │       │   │   ├── G_P_O_S_.py
    │       │   │   ├── grUtils.py
    │       │   │   ├── G_S_U_B_.py
    │       │   │   ├── _g_v_a_r.py
    │       │   │   ├── _h_d_m_x.py
    │       │   │   ├── _h_e_a_d.py
    │       │   │   ├── _h_h_e_a.py
    │       │   │   ├── _h_m_t_x.py
    │       │   │   ├── H_V_A_R_.py
    │       │   │   ├── __init__.py
    │       │   │   ├── J_S_T_F_.py
    │       │   │   ├── _k_e_r_n.py
    │       │   │   ├── _l_c_a_r.py
    │       │   │   ├── _l_o_c_a.py
    │       │   │   ├── _l_t_a_g.py
    │       │   │   ├── L_T_S_H_.py
    │       │   │   ├── M_A_T_H_.py
    │       │   │   ├── _m_a_x_p.py
    │       │   │   ├── _m_e_t_a.py
    │       │   │   ├── M_E_T_A_.py
    │       │   │   ├── _m_o_r_t.py
    │       │   │   ├── _m_o_r_x.py
    │       │   │   ├── M_V_A_R_.py
    │       │   │   ├── _n_a_m_e.py
    │       │   │   ├── _o_p_b_d.py
    │       │   │   ├── O_S_2f_2.py
    │       │   │   ├── otBase.py
    │       │   │   ├── otConverters.py
    │       │   │   ├── otData.py
    │       │   │   ├── otTables.py
    │       │   │   ├── otTraverse.py
    │       │   │   ├── _p_o_s_t.py
    │       │   │   ├── _p_r_e_p.py
    │       │   │   ├── _p_r_o_p.py
    │       │   │   ├── sbixGlyph.py
    │       │   │   ├── _s_b_i_x.py
    │       │   │   ├── sbixStrike.py
    │       │   │   ├── S__i_l_f.py
    │       │   │   ├── S__i_l_l.py
    │       │   │   ├── S_I_N_G_.py
    │       │   │   ├── S_T_A_T_.py
    │       │   │   ├── S_V_G_.py
    │       │   │   ├── table_API_readme.txt
    │       │   │   ├── _t_r_a_k.py
    │       │   │   ├── T_S_I__0.py
    │       │   │   ├── T_S_I__1.py
    │       │   │   ├── T_S_I__2.py
    │       │   │   ├── T_S_I__3.py
    │       │   │   ├── T_S_I__5.py
    │       │   │   ├── T_S_I_B_.py
    │       │   │   ├── T_S_I_C_.py
    │       │   │   ├── T_S_I_D_.py
    │       │   │   ├── T_S_I_J_.py
    │       │   │   ├── T_S_I_P_.py
    │       │   │   ├── T_S_I_S_.py
    │       │   │   ├── T_S_I_V_.py
    │       │   │   ├── T_T_F_A_.py
    │       │   │   ├── ttProgram.py
    │       │   │   ├── TupleVariation.py
    │       │   │   ├── V_A_R_C_.py
    │       │   │   ├── V_D_M_X_.py
    │       │   │   ├── _v_h_e_a.py
    │       │   │   ├── _v_m_t_x.py
    │       │   │   ├── V_O_R_G_.py
    │       │   │   └── V_V_A_R_.py
    │       │   ├── ttCollection.py
    │       │   ├── ttFont.py
    │       │   ├── ttGlyphSet.py
    │       │   ├── ttVisitor.py
    │       │   └── woff2.py
    │       ├── ttx.py
    │       ├── ufoLib
    │       │   ├── converters.py
    │       │   ├── errors.py
    │       │   ├── etree.py
    │       │   ├── filenames.py
    │       │   ├── glifLib.py
    │       │   ├── __init__.py
    │       │   ├── kerning.py
    │       │   ├── plistlib.py
    │       │   ├── pointPen.py
    │       │   ├── utils.py
    │       │   └── validators.py
    │       ├── unicodedata
    │       │   ├── Blocks.py
    │       │   ├── __init__.py
    │       │   ├── OTTags.py
    │       │   ├── ScriptExtensions.py
    │       │   └── Scripts.py
    │       ├── unicode.py
    │       ├── varLib
    │       │   ├── avarPlanner.py
    │       │   ├── avar.py
    │       │   ├── builder.py
    │       │   ├── cff.py
    │       │   ├── errors.py
    │       │   ├── featureVars.py
    │       │   ├── __init__.py
    │       │   ├── instancer
    │       │   │   ├── featureVars.py
    │       │   │   ├── __init__.py
    │       │   │   ├── __main__.py
    │       │   │   ├── names.py
    │       │   │   └── solver.py
    │       │   ├── interpolatableHelpers.py
    │       │   ├── interpolatablePlot.py
    │       │   ├── interpolatable.py
    │       │   ├── interpolatableTestContourOrder.py
    │       │   ├── interpolatableTestStartingPoint.py
    │       │   ├── interpolate_layout.py
    │       │   ├── iup.py
    │       │   ├── __main__.py
    │       │   ├── merger.py
    │       │   ├── models.py
    │       │   ├── multiVarStore.py
    │       │   ├── mutator.py
    │       │   ├── mvar.py
    │       │   ├── plot.py
    │       │   ├── stat.py
    │       │   └── varStore.py
    │       └── voltLib
    │           ├── ast.py
    │           ├── error.py
    │           ├── __init__.py
    │           ├── lexer.py
    │           ├── parser.py
    │           └── voltToFea.py
    ├── LICENSE
    ├── LICENSE.external
    ├── Makefile
    ├── MANIFEST.in
    ├── MetaTools
    │   ├── buildTableList.py
    │   ├── buildUCD.py
    │   └── roundTrip.py
    ├── mypy.ini
    ├── NEWS.rst
    ├── pyproject.toml
    ├── README.rst
    ├── requirements.txt
    ├── SECURITY.md
    ├── setup.cfg
    ├── setup.py
    ├── Snippets
    │   ├── checksum.py
    │   ├── cmap-format.py
    │   ├── compact_gpos.py
    │   ├── decompose-ttf.py
    │   ├── dump_woff_metadata.py
    │   ├── edit_raw_table_data.py
    │   ├── fix-dflt-langsys.py
    │   ├── fontTools
    │   ├── interpolate.py
    │   ├── layout-features.py
    │   ├── merge_woff_metadata.py
    │   ├── name-viewer.ipynb
    │   ├── otf2ttf.py
    │   ├── print-json.py
    │   ├── README.md
    │   ├── rename-fonts.py
    │   ├── statShape.py
    │   ├── subset-fpgm.py
    │   └── svg2glif.py
    ├── Tests
    │   ├── afmLib
    │   │   ├── afmLib_test.py
    │   │   └── data
    │   │       └── TestAFM.afm
    │   ├── agl_test.py
    │   ├── cffLib
    │   │   ├── cffLib_test.py
    │   │   ├── data
    │   │   │   ├── CFFToCFF2-1.otf
    │   │   │   ├── LinLibertine_RBI.otf
    │   │   │   ├── TestCFF2Widths.ttx
    │   │   │   ├── TestFDSelect4.ttx
    │   │   │   ├── TestOTF.ttx
    │   │   │   └── TestSparseCFF2VF.ttx
    │   │   └── specializer_test.py
    │   ├── colorLib
    │   │   ├── builder_test.py
    │   │   ├── __init__.py
    │   │   ├── table_builder_test.py
    │   │   └── unbuilder_test.py
    │   ├── config_test.py
    │   ├── conftest.py
    │   ├── cu2qu
    │   │   ├── cli_test.py
    │   │   ├── cu2qu_test.py
    │   │   ├── data
    │   │   │   ├── curves.json
    │   │   │   ├── RobotoSubset-Bold.ufo
    │   │   │   │   ├── fontinfo.plist
    │   │   │   │   ├── glyphs
    │   │   │   │   │   ├── a.glif
    │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   ├── b.glif
    │   │   │   │   │   ├── B_.glif
    │   │   │   │   │   ├── c.glif
    │   │   │   │   │   ├── C_.glif
    │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   ├── d.glif
    │   │   │   │   │   ├── D_.glif
    │   │   │   │   │   ├── e.glif
    │   │   │   │   │   ├── E_.glif
    │   │   │   │   │   ├── f.glif
    │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   ├── g.glif
    │   │   │   │   │   ├── G_.glif
    │   │   │   │   │   ├── h.glif
    │   │   │   │   │   ├── H_.glif
    │   │   │   │   │   ├── i.glif
    │   │   │   │   │   ├── I_.glif
    │   │   │   │   │   ├── j.glif
    │   │   │   │   │   ├── J_.glif
    │   │   │   │   │   ├── k.glif
    │   │   │   │   │   ├── K_.glif
    │   │   │   │   │   ├── l.glif
    │   │   │   │   │   ├── L_.glif
    │   │   │   │   │   ├── m.glif
    │   │   │   │   │   ├── M_.glif
    │   │   │   │   │   ├── n.glif
    │   │   │   │   │   ├── N_.glif
    │   │   │   │   │   ├── o.glif
    │   │   │   │   │   ├── O_.glif
    │   │   │   │   │   ├── p.glif
    │   │   │   │   │   ├── P_.glif
    │   │   │   │   │   ├── q.glif
    │   │   │   │   │   ├── Q_.glif
    │   │   │   │   │   ├── r.glif
    │   │   │   │   │   ├── R_.glif
    │   │   │   │   │   ├── s.glif
    │   │   │   │   │   ├── S_.glif
    │   │   │   │   │   ├── space.glif
    │   │   │   │   │   ├── t.glif
    │   │   │   │   │   ├── T_.glif
    │   │   │   │   │   ├── u.glif
    │   │   │   │   │   ├── U_.glif
    │   │   │   │   │   ├── v.glif
    │   │   │   │   │   ├── V_.glif
    │   │   │   │   │   ├── w.glif
    │   │   │   │   │   ├── W_.glif
    │   │   │   │   │   ├── x.glif
    │   │   │   │   │   ├── X_.glif
    │   │   │   │   │   ├── y.glif
    │   │   │   │   │   ├── Y_.glif
    │   │   │   │   │   ├── z.glif
    │   │   │   │   │   └── Z_.glif
    │   │   │   │   ├── layercontents.plist
    │   │   │   │   ├── lib.plist
    │   │   │   │   └── metainfo.plist
    │   │   │   └── RobotoSubset-Regular.ufo
    │   │   │       ├── fontinfo.plist
    │   │   │       ├── glyphs
    │   │   │       │   ├── a.glif
    │   │   │       │   ├── A_.glif
    │   │   │       │   ├── b.glif
    │   │   │       │   ├── B_.glif
    │   │   │       │   ├── c.glif
    │   │   │       │   ├── C_.glif
    │   │   │       │   ├── contents.plist
    │   │   │       │   ├── d.glif
    │   │   │       │   ├── D_.glif
    │   │   │       │   ├── e.glif
    │   │   │       │   ├── E_.glif
    │   │   │       │   ├── f.glif
    │   │   │       │   ├── F_.glif
    │   │   │       │   ├── g.glif
    │   │   │       │   ├── G_.glif
    │   │   │       │   ├── h.glif
    │   │   │       │   ├── H_.glif
    │   │   │       │   ├── i.glif
    │   │   │       │   ├── I_.glif
    │   │   │       │   ├── j.glif
    │   │   │       │   ├── J_.glif
    │   │   │       │   ├── k.glif
    │   │   │       │   ├── K_.glif
    │   │   │       │   ├── l.glif
    │   │   │       │   ├── L_.glif
    │   │   │       │   ├── m.glif
    │   │   │       │   ├── M_.glif
    │   │   │       │   ├── n.glif
    │   │   │       │   ├── N_.glif
    │   │   │       │   ├── o.glif
    │   │   │       │   ├── O_.glif
    │   │   │       │   ├── p.glif
    │   │   │       │   ├── P_.glif
    │   │   │       │   ├── q.glif
    │   │   │       │   ├── Q_.glif
    │   │   │       │   ├── r.glif
    │   │   │       │   ├── R_.glif
    │   │   │       │   ├── s.glif
    │   │   │       │   ├── S_.glif
    │   │   │       │   ├── space.glif
    │   │   │       │   ├── t.glif
    │   │   │       │   ├── T_.glif
    │   │   │       │   ├── u.glif
    │   │   │       │   ├── U_.glif
    │   │   │       │   ├── v.glif
    │   │   │       │   ├── V_.glif
    │   │   │       │   ├── w.glif
    │   │   │       │   ├── W_.glif
    │   │   │       │   ├── x.glif
    │   │   │       │   ├── X_.glif
    │   │   │       │   ├── y.glif
    │   │   │       │   ├── Y_.glif
    │   │   │       │   ├── z.glif
    │   │   │       │   └── Z_.glif
    │   │   │       ├── layercontents.plist
    │   │   │       ├── lib.plist
    │   │   │       └── metainfo.plist
    │   │   └── ufo_test.py
    │   ├── designspaceLib
    │   │   ├── data
    │   │   │   ├── convert5to4_output
    │   │   │   │   ├── AktivGroteskVF_Italics_Wght.designspace
    │   │   │   │   ├── AktivGroteskVF_Italics_WghtWdth.designspace
    │   │   │   │   ├── AktivGroteskVF_Wght.designspace
    │   │   │   │   ├── AktivGroteskVF_WghtWdth.designspace
    │   │   │   │   ├── AktivGroteskVF_WghtWdthItal.designspace
    │   │   │   │   ├── SourceSerif4Variable-Italic.designspace
    │   │   │   │   └── SourceSerif4Variable-Roman.designspace
    │   │   │   ├── DS5BreakTest.designspace
    │   │   │   ├── split_output
    │   │   │   │   ├── AktivGroteskVF_Italics_Wght.designspace
    │   │   │   │   ├── AktivGroteskVF_Italics_WghtWdth.designspace
    │   │   │   │   ├── AktivGroteskVF_Wght.designspace
    │   │   │   │   ├── AktivGroteskVF_WghtWdth.designspace
    │   │   │   │   ├── AktivGroteskVF_WghtWdthItal.designspace
    │   │   │   │   ├── MutatorSansVariable_Weight.designspace
    │   │   │   │   ├── MutatorSansVariable_Weight_Width.designspace
    │   │   │   │   ├── MutatorSansVariable_Width.designspace
    │   │   │   │   ├── MutatorSerifVariable_Width.designspace
    │   │   │   │   ├── SourceSerif4Variable-Italic.designspace
    │   │   │   │   ├── SourceSerif4Variable-Roman.designspace
    │   │   │   │   ├── test_v5_aktiv_.designspace
    │   │   │   │   ├── test_v5_MutatorSans_and_Serif_serif_0.0.designspace
    │   │   │   │   ├── test_v5_MutatorSans_and_Serif_serif_1.0.designspace
    │   │   │   │   ├── test_v5_sourceserif_italic_0.0.designspace
    │   │   │   │   └── test_v5_sourceserif_italic_1.0.designspace
    │   │   │   ├── test_avar2.designspace
    │   │   │   ├── test_v4_original.designspace
    │   │   │   ├── test_v5_aktiv.designspace
    │   │   │   ├── test_v5_decovar.designspace
    │   │   │   ├── test_v5.designspace
    │   │   │   ├── test_v5_discrete.designspace
    │   │   │   ├── test_v5_MutatorSans_and_Serif.designspace
    │   │   │   ├── test_v5_original.designspace
    │   │   │   └── test_v5_sourceserif.designspace
    │   │   ├── designspace_test.py
    │   │   ├── designspace_v5_test.py
    │   │   ├── fixtures.py
    │   │   ├── __init__.py
    │   │   ├── split_test.py
    │   │   └── statNames_test.py
    │   ├── encodings
    │   │   └── codecs_test.py
    │   ├── feaLib
    │   │   ├── ast_test.py
    │   │   ├── builder_test.py
    │   │   ├── data
    │   │   │   ├── aalt_chain_contextual_subst.fea
    │   │   │   ├── aalt_chain_contextual_subst.ttx
    │   │   │   ├── AlternateChained.fea
    │   │   │   ├── AlternateChained.ttx
    │   │   │   ├── AlternateSubtable.fea
    │   │   │   ├── AlternateSubtable.ttx
    │   │   │   ├── Attach.fea
    │   │   │   ├── Attach.ttx
    │   │   │   ├── baseClass.fea
    │   │   │   ├── baseClass.feax
    │   │   │   ├── bug1307.fea
    │   │   │   ├── bug1307.ttx
    │   │   │   ├── bug1459.fea
    │   │   │   ├── bug1459.ttx
    │   │   │   ├── bug2276.fea
    │   │   │   ├── bug2276.ttx
    │   │   │   ├── bug2949.fea
    │   │   │   ├── bug2949.ttx
    │   │   │   ├── bug453.fea
    │   │   │   ├── bug453.ttx
    │   │   │   ├── bug457.fea
    │   │   │   ├── bug457.ttx
    │   │   │   ├── bug463.fea
    │   │   │   ├── bug463.ttx
    │   │   │   ├── bug501.fea
    │   │   │   ├── bug501.ttx
    │   │   │   ├── bug502.fea
    │   │   │   ├── bug502.ttx
    │   │   │   ├── bug504.fea
    │   │   │   ├── bug504.ttx
    │   │   │   ├── bug505.fea
    │   │   │   ├── bug505.ttx
    │   │   │   ├── bug506.fea
    │   │   │   ├── bug506.ttx
    │   │   │   ├── bug509.fea
    │   │   │   ├── bug509.ttx
    │   │   │   ├── bug512.fea
    │   │   │   ├── bug512.ttx
    │   │   │   ├── bug514.fea
    │   │   │   ├── bug514.ttx
    │   │   │   ├── bug568.fea
    │   │   │   ├── bug568.ttx
    │   │   │   ├── bug633.fea
    │   │   │   ├── bug633.ttx
    │   │   │   ├── ChainPosSubtable.fea
    │   │   │   ├── ChainPosSubtable.ttx
    │   │   │   ├── ChainSubstSubtable.fea
    │   │   │   ├── ChainSubstSubtable.ttx
    │   │   │   ├── cid_range.fea
    │   │   │   ├── cid_range.ttx
    │   │   │   ├── delete_glyph.fea
    │   │   │   ├── delete_glyph.ttx
    │   │   │   ├── duplicate_lookup_reference.fea
    │   │   │   ├── duplicate_lookup_reference.ttx
    │   │   │   ├── enum.fea
    │   │   │   ├── enum.ttx
    │   │   │   ├── feature_aalt.fea
    │   │   │   ├── feature_aalt.ttx
    │   │   │   ├── GlyphClassDef.fea
    │   │   │   ├── GlyphClassDef.ttx
    │   │   │   ├── GPOS_1.fea
    │   │   │   ├── GPOS_1.ttx
    │   │   │   ├── GPOS_1_zero.fea
    │   │   │   ├── GPOS_1_zero.ttx
    │   │   │   ├── GPOS_2b.fea
    │   │   │   ├── GPOS_2b.ttx
    │   │   │   ├── GPOS_2.fea
    │   │   │   ├── GPOS_2.ttx
    │   │   │   ├── GPOS_3.fea
    │   │   │   ├── GPOS_3.ttx
    │   │   │   ├── GPOS_4.fea
    │   │   │   ├── GPOS_4.ttx
    │   │   │   ├── GPOS_5.fea
    │   │   │   ├── GPOS_5.ttx
    │   │   │   ├── GPOS_6.fea
    │   │   │   ├── GPOS_6.ttx
    │   │   │   ├── GPOS_8.fea
    │   │   │   ├── GPOS_8.ttx
    │   │   │   ├── GSUB_2.fea
    │   │   │   ├── GSUB_2.ttx
    │   │   │   ├── GSUB_3.fea
    │   │   │   ├── GSUB_3.ttx
    │   │   │   ├── GSUB_5_formats.fea
    │   │   │   ├── GSUB_5_formats.ttx
    │   │   │   ├── GSUB_6.fea
    │   │   │   ├── GSUB_6_formats.fea
    │   │   │   ├── GSUB_6_formats.ttx
    │   │   │   ├── GSUB_6.ttx
    │   │   │   ├── GSUB_8.fea
    │   │   │   ├── GSUB_8.ttx
    │   │   │   ├── GSUB_error.fea
    │   │   │   ├── ignore_pos.fea
    │   │   │   ├── ignore_pos.ttx
    │   │   │   ├── include
    │   │   │   │   ├── include1.fea
    │   │   │   │   ├── include3.fea
    │   │   │   │   ├── include4.fea
    │   │   │   │   ├── include5.fea
    │   │   │   │   ├── include6.fea
    │   │   │   │   ├── includemissingfile.fea
    │   │   │   │   ├── includeself.fea
    │   │   │   │   ├── subdir
    │   │   │   │   │   └── include2.fea
    │   │   │   │   ├── test.fea
    │   │   │   │   └── test.ufo
    │   │   │   │       └── features.fea
    │   │   │   ├── include0.fea
    │   │   │   ├── language_required.fea
    │   │   │   ├── language_required.ttx
    │   │   │   ├── LigatureCaretByIndex.fea
    │   │   │   ├── LigatureCaretByIndex.ttx
    │   │   │   ├── LigatureCaretByPos.fea
    │   │   │   ├── LigatureCaretByPos.ttx
    │   │   │   ├── LigatureSubtable.fea
    │   │   │   ├── LigatureSubtable.ttx
    │   │   │   ├── lookup-debug.ttx
    │   │   │   ├── lookup.fea
    │   │   │   ├── lookupflag.fea
    │   │   │   ├── lookupflag.ttx
    │   │   │   ├── lookup.ttx
    │   │   │   ├── markClass.fea
    │   │   │   ├── markClass.ttx
    │   │   │   ├── mini.fea
    │   │   │   ├── multiple_feature_blocks.fea
    │   │   │   ├── multiple_feature_blocks.ttx
    │   │   │   ├── MultipleLookupsPerGlyph2.fea
    │   │   │   ├── MultipleLookupsPerGlyph2.ttx
    │   │   │   ├── MultipleLookupsPerGlyph.fea
    │   │   │   ├── MultipleLookupsPerGlyph.ttx
    │   │   │   ├── MultipleSubstSubtable.fea
    │   │   │   ├── MultipleSubstSubtable.ttx
    │   │   │   ├── name.fea
    │   │   │   ├── name.ttx
    │   │   │   ├── omitted_GlyphClassDef.fea
    │   │   │   ├── omitted_GlyphClassDef.ttx
    │   │   │   ├── PairPosSubtable.fea
    │   │   │   ├── PairPosSubtable.ttx
    │   │   │   ├── SingleSubstSubtable.fea
    │   │   │   ├── SingleSubstSubtable.ttx
    │   │   │   ├── size2.fea
    │   │   │   ├── size2.ttx
    │   │   │   ├── size.fea
    │   │   │   ├── size.ttx
    │   │   │   ├── spec10.fea
    │   │   │   ├── spec10.ttx
    │   │   │   ├── spec4h1.fea
    │   │   │   ├── spec4h1.ttx
    │   │   │   ├── spec4h2.fea
    │   │   │   ├── spec4h2.ttx
    │   │   │   ├── spec5d1.fea
    │   │   │   ├── spec5d1.ttx
    │   │   │   ├── spec5d2.fea
    │   │   │   ├── spec5d2.ttx
    │   │   │   ├── spec5fi1.fea
    │   │   │   ├── spec5fi1.ttx
    │   │   │   ├── spec5fi2.fea
    │   │   │   ├── spec5fi2.ttx
    │   │   │   ├── spec5fi3.fea
    │   │   │   ├── spec5fi3.ttx
    │   │   │   ├── spec5fi4.fea
    │   │   │   ├── spec5fi4.ttx
    │   │   │   ├── spec5f_ii_1.fea
    │   │   │   ├── spec5f_ii_1.ttx
    │   │   │   ├── spec5f_ii_2.fea
    │   │   │   ├── spec5f_ii_2.ttx
    │   │   │   ├── spec5f_ii_3.fea
    │   │   │   ├── spec5f_ii_3.ttx
    │   │   │   ├── spec5f_ii_4.fea
    │   │   │   ├── spec5f_ii_4.ttx
    │   │   │   ├── spec5h1.fea
    │   │   │   ├── spec5h1.ttx
    │   │   │   ├── spec6b_ii.fea
    │   │   │   ├── spec6b_ii.ttx
    │   │   │   ├── spec6d2.fea
    │   │   │   ├── spec6d2.ttx
    │   │   │   ├── spec6e.fea
    │   │   │   ├── spec6e.ttx
    │   │   │   ├── spec6f.fea
    │   │   │   ├── spec6f.ttx
    │   │   │   ├── spec6h_ii.fea
    │   │   │   ├── spec6h_iii_1.fea
    │   │   │   ├── spec6h_iii_1.ttx
    │   │   │   ├── spec6h_iii_3d.fea
    │   │   │   ├── spec6h_iii_3d.ttx
    │   │   │   ├── spec6h_ii.ttx
    │   │   │   ├── spec8a.fea
    │   │   │   ├── spec8a.ttx
    │   │   │   ├── spec8b.fea
    │   │   │   ├── spec8b.ttx
    │   │   │   ├── spec8c.fea
    │   │   │   ├── spec8c.ttx
    │   │   │   ├── spec8d.fea
    │   │   │   ├── spec8d.ttx
    │   │   │   ├── spec9a.fea
    │   │   │   ├── spec9a.ttx
    │   │   │   ├── spec9b.fea
    │   │   │   ├── spec9b.ttx
    │   │   │   ├── spec9c1.fea
    │   │   │   ├── spec9c1.ttx
    │   │   │   ├── spec9c2.fea
    │   │   │   ├── spec9c2.ttx
    │   │   │   ├── spec9c3.fea
    │   │   │   ├── spec9c3.ttx
    │   │   │   ├── spec9d.fea
    │   │   │   ├── spec9d.ttx
    │   │   │   ├── spec9e.fea
    │   │   │   ├── spec9e.ttx
    │   │   │   ├── spec9f.fea
    │   │   │   ├── spec9f.ttx
    │   │   │   ├── spec9g.fea
    │   │   │   ├── spec9g.ttx
    │   │   │   ├── STAT_bad.fea
    │   │   │   ├── STAT_test_elidedFallbackNameID.fea
    │   │   │   ├── STAT_test_elidedFallbackNameID.ttx
    │   │   │   ├── STAT_test.fea
    │   │   │   ├── STAT_test.ttx
    │   │   │   ├── SubstSubtable.fea
    │   │   │   ├── SubstSubtable.ttx
    │   │   │   ├── test.fea
    │   │   │   ├── variable_bug2772.fea
    │   │   │   ├── variable_bug2772.ttx
    │   │   │   ├── variable_conditionset.fea
    │   │   │   ├── variable_conditionset.ttx
    │   │   │   ├── variable_mark_anchor.fea
    │   │   │   ├── variable_mark_anchor.ttx
    │   │   │   ├── variable_scalar_anchor.fea
    │   │   │   ├── variable_scalar_anchor.ttx
    │   │   │   ├── variable_scalar_valuerecord.fea
    │   │   │   ├── variable_scalar_valuerecord.ttx
    │   │   │   ├── ZeroValue_ChainSinglePos_horizontal.fea
    │   │   │   ├── ZeroValue_ChainSinglePos_horizontal.ttx
    │   │   │   ├── ZeroValue_ChainSinglePos_vertical.fea
    │   │   │   ├── ZeroValue_ChainSinglePos_vertical.ttx
    │   │   │   ├── ZeroValue_PairPos_horizontal.fea
    │   │   │   ├── ZeroValue_PairPos_horizontal.ttx
    │   │   │   ├── ZeroValue_PairPos_vertical.fea
    │   │   │   ├── ZeroValue_PairPos_vertical.ttx
    │   │   │   ├── ZeroValue_SinglePos_horizontal.fea
    │   │   │   ├── ZeroValue_SinglePos_horizontal.ttx
    │   │   │   ├── ZeroValue_SinglePos_vertical.fea
    │   │   │   └── ZeroValue_SinglePos_vertical.ttx
    │   │   ├── error_test.py
    │   │   ├── __init__.py
    │   │   ├── lexer_test.py
    │   │   ├── parser_test.py
    │   │   └── STAT2.fea
    │   ├── fontBuilder
    │   │   ├── data
    │   │   │   ├── test.otf.ttx
    │   │   │   ├── test.ttf.ttx
    │   │   │   ├── test_uvs.ttf.ttx
    │   │   │   ├── test_var.otf.ttx
    │   │   │   └── test_var.ttf.ttx
    │   │   └── fontBuilder_test.py
    │   ├── merge
    │   │   ├── data
    │   │   │   ├── CFFFont1.ttx
    │   │   │   ├── CFFFont2.ttx
    │   │   │   └── CFFFont_expected.ttx
    │   │   └── merge_test.py
    │   ├── misc
    │   │   ├── arrayTools_test.py
    │   │   ├── bezierTools_test.py
    │   │   ├── classifyTools_test.py
    │   │   ├── configTools_test.py
    │   │   ├── eexec_test.py
    │   │   ├── encodingTools_test.py
    │   │   ├── etree_test.py
    │   │   ├── filenames_test.py
    │   │   ├── fixedTools_test.py
    │   │   ├── loggingTools_test.py
    │   │   ├── macRes_test.py
    │   │   ├── plistlib_test.py
    │   │   ├── psCharStrings_test.py
    │   │   ├── py23_test.py
    │   │   ├── symfont_test.py
    │   │   ├── testdata
    │   │   │   └── test.plist
    │   │   ├── testTools_test.py
    │   │   ├── textTools_test.py
    │   │   ├── timeTools_test.py
    │   │   ├── transform_test.py
    │   │   ├── treeTools_test.py
    │   │   ├── vector_test.py
    │   │   ├── visitor_test.py
    │   │   ├── xmlReader_test.py
    │   │   └── xmlWriter_test.py
    │   ├── mtiLib
    │   │   ├── data
    │   │   │   ├── featurename-backward.ttx.GSUB
    │   │   │   ├── featurename-backward.txt
    │   │   │   ├── featurename-forward.ttx.GSUB
    │   │   │   ├── featurename-forward.txt
    │   │   │   ├── lookupnames-backward.ttx.GSUB
    │   │   │   ├── lookupnames-backward.txt
    │   │   │   ├── lookupnames-forward.ttx.GSUB
    │   │   │   ├── lookupnames-forward.txt
    │   │   │   ├── mixed-toplevels.ttx.GSUB
    │   │   │   ├── mixed-toplevels.txt
    │   │   │   └── mti
    │   │   │       ├── chainedclass.ttx.GSUB
    │   │   │       ├── chainedclass.txt
    │   │   │       ├── chainedcoverage.ttx.GSUB
    │   │   │       ├── chainedcoverage.txt
    │   │   │       ├── chained-glyph.ttx.GPOS
    │   │   │       ├── chained-glyph.ttx.GSUB
    │   │   │       ├── chained-glyph.txt
    │   │   │       ├── cmap.ttx
    │   │   │       ├── cmap.ttx.cmap
    │   │   │       ├── cmap.txt
    │   │   │       ├── contextclass.txt
    │   │   │       ├── contextcoverage.txt
    │   │   │       ├── context-glyph.txt
    │   │   │       ├── featuretable.txt
    │   │   │       ├── gdefattach.ttx.GDEF
    │   │   │       ├── gdefattach.txt
    │   │   │       ├── gdefclasses.ttx.GDEF
    │   │   │       ├── gdefclasses.txt
    │   │   │       ├── gdefligcaret.ttx.GDEF
    │   │   │       ├── gdefligcaret.txt
    │   │   │       ├── gdefmarkattach.ttx.GDEF
    │   │   │       ├── gdefmarkattach.txt
    │   │   │       ├── gdefmarkfilter.ttx.GDEF
    │   │   │       ├── gdefmarkfilter.txt
    │   │   │       ├── gposcursive.ttx.GPOS
    │   │   │       ├── gposcursive.txt
    │   │   │       ├── gposkernset.ttx.GPOS
    │   │   │       ├── gposkernset.txt
    │   │   │       ├── gposmarktobase.ttx.GPOS
    │   │   │       ├── gposmarktobase.txt
    │   │   │       ├── gpospairclass.ttx.GPOS
    │   │   │       ├── gpospairclass.txt
    │   │   │       ├── gpospairglyph.ttx.GPOS
    │   │   │       ├── gpospairglyph.txt
    │   │   │       ├── gpossingle.ttx.GPOS
    │   │   │       ├── gpossingle.txt
    │   │   │       ├── gsubalternate.ttx.GSUB
    │   │   │       ├── gsubalternate.txt
    │   │   │       ├── gsubligature.ttx.GSUB
    │   │   │       ├── gsubligature.txt
    │   │   │       ├── gsubmultiple.ttx.GSUB
    │   │   │       ├── gsubmultiple.txt
    │   │   │       ├── gsubreversechanined.ttx.GSUB
    │   │   │       ├── gsubreversechanined.txt
    │   │   │       ├── gsubsingle.ttx.GSUB
    │   │   │       ├── gsubsingle.txt
    │   │   │       ├── mark-to-ligature.ttx.GPOS
    │   │   │       ├── mark-to-ligature.txt
    │   │   │       ├── README
    │   │   │       ├── scripttable.ttx.GPOS
    │   │   │       ├── scripttable.ttx.GSUB
    │   │   │       └── scripttable.txt
    │   │   └── mti_test.py
    │   ├── otlLib
    │   │   ├── builder_test.py
    │   │   ├── data
    │   │   │   ├── gpos_91.ttx
    │   │   │   ├── gsub_51.ttx
    │   │   │   ├── gsub_52.ttx
    │   │   │   └── gsub_71.ttx
    │   │   ├── __init__.py
    │   │   ├── maxContextCalc_test.py
    │   │   ├── mock_builder_test.py
    │   │   └── optimize_test.py
    │   ├── pens
    │   │   ├── areaPen_test.py
    │   │   ├── basePen_test.py
    │   │   ├── boundsPen_test.py
    │   │   ├── cocoaPen_test.py
    │   │   ├── cu2quPen_test.py
    │   │   ├── data
    │   │   │   ├── cubic
    │   │   │   │   ├── A_acute.glif
    │   │   │   │   ├── acute.glif
    │   │   │   │   ├── a.glif
    │   │   │   │   ├── A_.glif
    │   │   │   │   ├── contents.plist
    │   │   │   │   └── E_acute.glif
    │   │   │   ├── quadratic
    │   │   │   │   ├── acute.glif
    │   │   │   │   ├── a.glif
    │   │   │   │   ├── A_.glif
    │   │   │   │   ├── contents.plist
    │   │   │   │   └── E_acute.glif
    │   │   │   ├── test_even_odd_fill.pgm
    │   │   │   ├── test_non_zero_fill.pgm
    │   │   │   ├── test_rotate.pgm
    │   │   │   └── test_skew.pgm
    │   │   ├── filterPen_test.py
    │   │   ├── freetypePen_test.py
    │   │   ├── hashPointPen_test.py
    │   │   ├── __init__.py
    │   │   ├── perimeterPen_test.py
    │   │   ├── pointInsidePen_test.py
    │   │   ├── pointPen_test.py
    │   │   ├── qu2cuPen_test.py
    │   │   ├── quartzPen_test.py
    │   │   ├── recordingPen_test.py
    │   │   ├── reverseContourPen_test.py
    │   │   ├── roundingPen_test.py
    │   │   ├── t2CharStringPen_test.py
    │   │   ├── ttGlyphPen_test.py
    │   │   └── utils.py
    │   ├── qu2cu
    │   │   ├── data
    │   │   │   └── NotoSansArabic-Regular.quadratic.subset.ttf
    │   │   ├── qu2cu_cli_test.py
    │   │   └── qu2cu_test.py
    │   ├── subset
    │   │   ├── data
    │   │   │   ├── BungeeColor-Regular.ttx
    │   │   │   ├── CmapSubsetTest.subset.ttx
    │   │   │   ├── CmapSubsetTest.ttx
    │   │   │   ├── expect_ankr.ttx
    │   │   │   ├── expect_bsln_0.ttx
    │   │   │   ├── expect_bsln_1.ttx
    │   │   │   ├── expect_bsln_2.ttx
    │   │   │   ├── expect_bsln_3.ttx
    │   │   │   ├── expect_desubroutinize_CFF.ttx
    │   │   │   ├── expect_harfbuzz_repacker.ttx
    │   │   │   ├── expect_HVVAR_retain_gids.ttx
    │   │   │   ├── expect_HVVAR.ttx
    │   │   │   ├── expect_keep_colr.ttx
    │   │   │   ├── expect_keep_gvar_notdef_outline.ttx
    │   │   │   ├── expect_keep_gvar.ttx
    │   │   │   ├── expect_keep_math.ttx
    │   │   │   ├── expect_layout_scripts.ttx
    │   │   │   ├── expect_lcar_0.ttx
    │   │   │   ├── expect_lcar_1.ttx
    │   │   │   ├── expect_math_partial.ttx
    │   │   │   ├── expect_no_hinting_CFF.ttx
    │   │   │   ├── expect_no_hinting_desubroutinize_CFF.ttx
    │   │   │   ├── expect_no_hinting_TTF.ttx
    │   │   │   ├── expect_no_notdef_outline_cid.ttx
    │   │   │   ├── expect_no_notdef_outline_otf.ttx
    │   │   │   ├── expect_no_notdef_outline_ttf.ttx
    │   │   │   ├── expect_notdef_width_cid.ttx
    │   │   │   ├── expect_opbd_0.ttx
    │   │   │   ├── expect_opbd_1.ttx
    │   │   │   ├── expect_prop_0.ttx
    │   │   │   ├── expect_prop_1.ttx
    │   │   │   ├── expect_sbix.ttx
    │   │   │   ├── google_color.ttx
    │   │   │   ├── GPOS_PairPos_Format2_ClassDef1_useClass0.subset.ttx
    │   │   │   ├── GPOS_PairPos_Format2_ClassDef2_useClass0.subset.ttx
    │   │   │   ├── GPOS_PairPos_Format2_PR_2221.ttx
    │   │   │   ├── GPOS_SinglePos_no_value_issue_2312.subset.ttx
    │   │   │   ├── GPOS_SinglePos_no_value_issue_2312.ttx
    │   │   │   ├── harfbuzz_repacker.ttx
    │   │   │   ├── layout_scripts.ttx
    │   │   │   ├── Lobster.subset.otf
    │   │   │   ├── Lobster.subset.ttx
    │   │   │   ├── NotdefWidthCID-Regular.ttx
    │   │   │   ├── NotoSansCJKjp-Regular.subset.ttx
    │   │   │   ├── sbix.ttx
    │   │   │   ├── TestANKR.ttx
    │   │   │   ├── TestBSLN-0.ttx
    │   │   │   ├── TestBSLN-1.ttx
    │   │   │   ├── TestBSLN-2.ttx
    │   │   │   ├── TestBSLN-3.ttx
    │   │   │   ├── TestCID-Regular.ttx
    │   │   │   ├── TestCLR-Regular.ttx
    │   │   │   ├── test_cntrmask_CFF.desub.ttx
    │   │   │   ├── test_cntrmask_CFF.ttx
    │   │   │   ├── TestContextSubstFormat3.ttx
    │   │   │   ├── TestGVAR.ttx
    │   │   │   ├── test_hinted_subrs_CFF.desub.ttx
    │   │   │   ├── test_hinted_subrs_CFF.ttx
    │   │   │   ├── TestHVVAR.ttx
    │   │   │   ├── TestLCAR-0.ttx
    │   │   │   ├── TestLCAR-1.ttx
    │   │   │   ├── test_math_partial.ttx
    │   │   │   ├── TestMATH-Regular.ttx
    │   │   │   ├── TestOPBD-0.ttx
    │   │   │   ├── TestOPBD-1.ttx
    │   │   │   ├── TestOTF-Regular.ttx
    │   │   │   ├── TestPROP.ttx
    │   │   │   ├── TestTTF-Regular_non_BMP_char.ttx
    │   │   │   └── TestTTF-Regular.ttx
    │   │   ├── subset_test.py
    │   │   └── svg_test.py
    │   ├── svgLib
    │   │   └── path
    │   │       ├── __init__.py
    │   │       ├── parser_test.py
    │   │       ├── path_test.py
    │   │       └── shapes_test.py
    │   ├── t1Lib
    │   │   ├── data
    │   │   │   ├── TestT1-ellipsis-hinted.pfa
    │   │   │   ├── TestT1-Regular.lwfn
    │   │   │   ├── TestT1-Regular.pfa
    │   │   │   ├── TestT1-Regular.pfb
    │   │   │   └── TestT1-weird-zeros.pfa
    │   │   └── t1Lib_test.py
    │   ├── tfmLib
    │   │   ├── data
    │   │   │   ├── cmex10.tfm
    │   │   │   ├── cmr10.tfm
    │   │   │   ├── cmsy10.tfm
    │   │   │   └── dummy-space.tfm
    │   │   └── tfmLib_test.py
    │   ├── ttLib
    │   │   ├── data
    │   │   │   ├── bogus_post_format_1.ttf
    │   │   │   ├── dot-cubic.ttf
    │   │   │   ├── I-512upem.ttx
    │   │   │   ├── I.otf
    │   │   │   ├── issue2824.ttf
    │   │   │   ├── I.ttf
    │   │   │   ├── TestOTF-Regular.otx
    │   │   │   ├── Test-Regular.ttf
    │   │   │   ├── TestTTFComplex-Regular.ttx
    │   │   │   ├── TestTTF_normalizeLocation.ttx
    │   │   │   ├── TestTTF-Regular.ttx
    │   │   │   ├── TestVGID-Regular.otf
    │   │   │   ├── TestVGID-Regular.ttx
    │   │   │   ├── test_woff2_metadata.xml
    │   │   │   ├── varc-6868.ttf
    │   │   │   ├── varc-ac00-ac01-500upem.ttx
    │   │   │   ├── varc-ac00-ac01.ttf
    │   │   │   ├── varc-ac01-conditional.ttf
    │   │   │   └── woff2_overlap_offcurve_in.ttx
    │   │   ├── main_test.py
    │   │   ├── removeOverlaps_test.py
    │   │   ├── reorderGlyphs_test.py
    │   │   ├── scaleUpem_test.py
    │   │   ├── sfnt_test.py
    │   │   ├── tables
    │   │   │   ├── _a_n_k_r_test.py
    │   │   │   ├── _a_v_a_r_test.py
    │   │   │   ├── _b_s_l_n_test.py
    │   │   │   ├── C_B_L_C_test.py
    │   │   │   ├── C_F_F__2_test.py
    │   │   │   ├── C_F_F_test.py
    │   │   │   ├── _c_i_d_g_test.py
    │   │   │   ├── _c_m_a_p_test.py
    │   │   │   ├── C_O_L_R_test.py
    │   │   │   ├── C_P_A_L_test.py
    │   │   │   ├── _c_v_a_r_test.py
    │   │   │   ├── data
    │   │   │   │   ├── Amstelvar-avar2.subset.ttf
    │   │   │   │   ├── aots
    │   │   │   │   │   ├── base.otf
    │   │   │   │   │   ├── base.ttx.CFF
    │   │   │   │   │   ├── base.ttx.cmap
    │   │   │   │   │   ├── base.ttx.head
    │   │   │   │   │   ├── base.ttx.hhea
    │   │   │   │   │   ├── base.ttx.hmtx
    │   │   │   │   │   ├── base.ttx.maxp
    │   │   │   │   │   ├── base.ttx.name
    │   │   │   │   │   ├── base.ttx.OS_2
    │   │   │   │   │   ├── base.ttx.post
    │   │   │   │   │   ├── classdef1_font1.otf
    │   │   │   │   │   ├── classdef1_font1.ttx.GSUB
    │   │   │   │   │   ├── classdef1_font2.otf
    │   │   │   │   │   ├── classdef1_font2.ttx.GSUB
    │   │   │   │   │   ├── classdef1_font3.otf
    │   │   │   │   │   ├── classdef1_font3.ttx.GSUB
    │   │   │   │   │   ├── classdef1_font4.otf
    │   │   │   │   │   ├── classdef1_font4.ttx.GSUB
    │   │   │   │   │   ├── classdef2_font1.otf
    │   │   │   │   │   ├── classdef2_font1.ttx.GSUB
    │   │   │   │   │   ├── classdef2_font2.otf
    │   │   │   │   │   ├── classdef2_font2.ttx.GSUB
    │   │   │   │   │   ├── classdef2_font3.otf
    │   │   │   │   │   ├── classdef2_font3.ttx.GSUB
    │   │   │   │   │   ├── classdef2_font4.otf
    │   │   │   │   │   ├── classdef2_font4.ttx.GSUB
    │   │   │   │   │   ├── cmap0_font1.otf
    │   │   │   │   │   ├── cmap0_font1.ttx.cmap
    │   │   │   │   │   ├── cmap10_font1.otf
    │   │   │   │   │   ├── cmap10_font1.ttx.cmap
    │   │   │   │   │   ├── cmap10_font2.otf
    │   │   │   │   │   ├── cmap10_font2.ttx.cmap
    │   │   │   │   │   ├── cmap12_font1.otf
    │   │   │   │   │   ├── cmap12_font1.ttx.cmap
    │   │   │   │   │   ├── cmap14_font1.otf
    │   │   │   │   │   ├── cmap14_font1.ttx.cmap
    │   │   │   │   │   ├── cmap2_font1.otf
    │   │   │   │   │   ├── cmap2_font1.ttx.cmap
    │   │   │   │   │   ├── cmap4_font1.otf
    │   │   │   │   │   ├── cmap4_font1.ttx.cmap
    │   │   │   │   │   ├── cmap4_font2.otf
    │   │   │   │   │   ├── cmap4_font2.ttx.cmap
    │   │   │   │   │   ├── cmap4_font3.otf
    │   │   │   │   │   ├── cmap4_font3.ttx.cmap
    │   │   │   │   │   ├── cmap4_font4.otf
    │   │   │   │   │   ├── cmap4_font4.ttx.cmap
    │   │   │   │   │   ├── cmap6_font1.otf
    │   │   │   │   │   ├── cmap6_font1.ttx.cmap
    │   │   │   │   │   ├── cmap6_font2.otf
    │   │   │   │   │   ├── cmap6_font2.ttx.cmap
    │   │   │   │   │   ├── cmap8_font1.otf
    │   │   │   │   │   ├── cmap8_font1.ttx.cmap
    │   │   │   │   │   ├── cmap_composition_font1.otf
    │   │   │   │   │   ├── cmap_composition_font1.ttx.cmap
    │   │   │   │   │   ├── cmap_subtableselection_font1.otf
    │   │   │   │   │   ├── cmap_subtableselection_font1.ttx.cmap
    │   │   │   │   │   ├── cmap_subtableselection_font2.otf
    │   │   │   │   │   ├── cmap_subtableselection_font2.ttx.cmap
    │   │   │   │   │   ├── cmap_subtableselection_font3.otf
    │   │   │   │   │   ├── cmap_subtableselection_font3.ttx.cmap
    │   │   │   │   │   ├── cmap_subtableselection_font4.otf
    │   │   │   │   │   ├── cmap_subtableselection_font4.ttx.cmap
    │   │   │   │   │   ├── cmap_subtableselection_font5.otf
    │   │   │   │   │   ├── cmap_subtableselection_font5.ttx.cmap
    │   │   │   │   │   ├── gpos1_1_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos1_1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos1_1_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos1_1_simple_f1.otf
    │   │   │   │   │   ├── gpos1_1_simple_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos1_1_simple_f2.otf
    │   │   │   │   │   ├── gpos1_1_simple_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos1_1_simple_f3.otf
    │   │   │   │   │   ├── gpos1_1_simple_f3.ttx.GPOS
    │   │   │   │   │   ├── gpos1_1_simple_f4.otf
    │   │   │   │   │   ├── gpos1_1_simple_f4.ttx.GPOS
    │   │   │   │   │   ├── gpos1_2_font1.otf
    │   │   │   │   │   ├── gpos1_2_font1.ttx.GPOS
    │   │   │   │   │   ├── gpos1_2_font2.otf
    │   │   │   │   │   ├── gpos1_2_font2.ttx.GDEF
    │   │   │   │   │   ├── gpos1_2_font2.ttx.GPOS
    │   │   │   │   │   ├── gpos2_1_font6.otf
    │   │   │   │   │   ├── gpos2_1_font6.ttx.GPOS
    │   │   │   │   │   ├── gpos2_1_font7.otf
    │   │   │   │   │   ├── gpos2_1_font7.ttx.GPOS
    │   │   │   │   │   ├── gpos2_1_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos2_1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos2_1_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos2_1_lookupflag_f2.otf
    │   │   │   │   │   ├── gpos2_1_lookupflag_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos2_1_lookupflag_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos2_1_next_glyph_f1.otf
    │   │   │   │   │   ├── gpos2_1_next_glyph_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos2_1_next_glyph_f2.otf
    │   │   │   │   │   ├── gpos2_1_next_glyph_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos2_1_simple_f1.otf
    │   │   │   │   │   ├── gpos2_1_simple_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos2_2_font1.otf
    │   │   │   │   │   ├── gpos2_2_font1.ttx.GPOS
    │   │   │   │   │   ├── gpos2_2_font2.otf
    │   │   │   │   │   ├── gpos2_2_font2.ttx.GDEF
    │   │   │   │   │   ├── gpos2_2_font2.ttx.GPOS
    │   │   │   │   │   ├── gpos2_2_font3.otf
    │   │   │   │   │   ├── gpos2_2_font3.ttx.GDEF
    │   │   │   │   │   ├── gpos2_2_font3.ttx.GPOS
    │   │   │   │   │   ├── gpos2_2_font4.otf
    │   │   │   │   │   ├── gpos2_2_font4.ttx.GPOS
    │   │   │   │   │   ├── gpos2_2_font5.otf
    │   │   │   │   │   ├── gpos2_2_font5.ttx.GPOS
    │   │   │   │   │   ├── gpos3_font1.otf
    │   │   │   │   │   ├── gpos3_font1.ttx.GPOS
    │   │   │   │   │   ├── gpos3_font2.otf
    │   │   │   │   │   ├── gpos3_font2.ttx.GDEF
    │   │   │   │   │   ├── gpos3_font2.ttx.GPOS
    │   │   │   │   │   ├── gpos3_font3.otf
    │   │   │   │   │   ├── gpos3_font3.ttx.GDEF
    │   │   │   │   │   ├── gpos3_font3.ttx.GPOS
    │   │   │   │   │   ├── gpos4_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos4_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos4_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos4_lookupflag_f2.otf
    │   │   │   │   │   ├── gpos4_lookupflag_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos4_lookupflag_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos4_multiple_anchors_1.otf
    │   │   │   │   │   ├── gpos4_multiple_anchors_1.ttx.GDEF
    │   │   │   │   │   ├── gpos4_multiple_anchors_1.ttx.GPOS
    │   │   │   │   │   ├── gpos4_simple_1.otf
    │   │   │   │   │   ├── gpos4_simple_1.ttx.GDEF
    │   │   │   │   │   ├── gpos4_simple_1.ttx.GPOS
    │   │   │   │   │   ├── gpos5_font1.otf
    │   │   │   │   │   ├── gpos5_font1.ttx.GDEF
    │   │   │   │   │   ├── gpos5_font1.ttx.GPOS
    │   │   │   │   │   ├── gpos5_font1.ttx.GSUB
    │   │   │   │   │   ├── gpos6_font1.otf
    │   │   │   │   │   ├── gpos6_font1.ttx.GDEF
    │   │   │   │   │   ├── gpos6_font1.ttx.GPOS
    │   │   │   │   │   ├── gpos7_1_font1.otf
    │   │   │   │   │   ├── gpos7_1_font1.ttx.GPOS
    │   │   │   │   │   ├── gpos9_font1.otf
    │   │   │   │   │   ├── gpos9_font1.ttx.GPOS
    │   │   │   │   │   ├── gpos9_font2.otf
    │   │   │   │   │   ├── gpos9_font2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_boundary_f1.otf
    │   │   │   │   │   ├── gpos_chaining1_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_boundary_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_boundary_f2.otf
    │   │   │   │   │   ├── gpos_chaining1_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_boundary_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_boundary_f3.otf
    │   │   │   │   │   ├── gpos_chaining1_boundary_f3.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_boundary_f3.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_boundary_f4.otf
    │   │   │   │   │   ├── gpos_chaining1_boundary_f4.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_boundary_f4.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos_chaining1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_multiple_subrules_f1.otf
    │   │   │   │   │   ├── gpos_chaining1_multiple_subrules_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_multiple_subrules_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_multiple_subrules_f2.otf
    │   │   │   │   │   ├── gpos_chaining1_multiple_subrules_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_multiple_subrules_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_next_glyph_f1.otf
    │   │   │   │   │   ├── gpos_chaining1_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_next_glyph_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_simple_f1.otf
    │   │   │   │   │   ├── gpos_chaining1_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_simple_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_simple_f2.otf
    │   │   │   │   │   ├── gpos_chaining1_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_simple_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining1_successive_f1.otf
    │   │   │   │   │   ├── gpos_chaining1_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining1_successive_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_boundary_f1.otf
    │   │   │   │   │   ├── gpos_chaining2_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_boundary_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_boundary_f2.otf
    │   │   │   │   │   ├── gpos_chaining2_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_boundary_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_boundary_f3.otf
    │   │   │   │   │   ├── gpos_chaining2_boundary_f3.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_boundary_f3.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_boundary_f4.otf
    │   │   │   │   │   ├── gpos_chaining2_boundary_f4.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_boundary_f4.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos_chaining2_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_multiple_subrules_f1.otf
    │   │   │   │   │   ├── gpos_chaining2_multiple_subrules_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_multiple_subrules_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_multiple_subrules_f2.otf
    │   │   │   │   │   ├── gpos_chaining2_multiple_subrules_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_multiple_subrules_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_next_glyph_f1.otf
    │   │   │   │   │   ├── gpos_chaining2_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_next_glyph_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_simple_f1.otf
    │   │   │   │   │   ├── gpos_chaining2_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_simple_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_simple_f2.otf
    │   │   │   │   │   ├── gpos_chaining2_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_simple_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining2_successive_f1.otf
    │   │   │   │   │   ├── gpos_chaining2_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining2_successive_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_boundary_f1.otf
    │   │   │   │   │   ├── gpos_chaining3_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_boundary_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_boundary_f2.otf
    │   │   │   │   │   ├── gpos_chaining3_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_boundary_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_boundary_f3.otf
    │   │   │   │   │   ├── gpos_chaining3_boundary_f3.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_boundary_f3.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_boundary_f4.otf
    │   │   │   │   │   ├── gpos_chaining3_boundary_f4.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_boundary_f4.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos_chaining3_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_next_glyph_f1.otf
    │   │   │   │   │   ├── gpos_chaining3_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_next_glyph_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_simple_f1.otf
    │   │   │   │   │   ├── gpos_chaining3_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_simple_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_simple_f2.otf
    │   │   │   │   │   ├── gpos_chaining3_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_simple_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_chaining3_successive_f1.otf
    │   │   │   │   │   ├── gpos_chaining3_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_chaining3_successive_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_boundary_f1.otf
    │   │   │   │   │   ├── gpos_context1_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_boundary_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_boundary_f2.otf
    │   │   │   │   │   ├── gpos_context1_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_boundary_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_expansion_f1.otf
    │   │   │   │   │   ├── gpos_context1_expansion_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_expansion_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos_context1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_lookupflag_f2.otf
    │   │   │   │   │   ├── gpos_context1_lookupflag_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_lookupflag_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_multiple_subrules_f1.otf
    │   │   │   │   │   ├── gpos_context1_multiple_subrules_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_multiple_subrules_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_multiple_subrules_f2.otf
    │   │   │   │   │   ├── gpos_context1_multiple_subrules_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_multiple_subrules_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_next_glyph_f1.otf
    │   │   │   │   │   ├── gpos_context1_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_next_glyph_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_simple_f1.otf
    │   │   │   │   │   ├── gpos_context1_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_simple_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_simple_f2.otf
    │   │   │   │   │   ├── gpos_context1_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_simple_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context1_successive_f1.otf
    │   │   │   │   │   ├── gpos_context1_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context1_successive_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_boundary_f1.otf
    │   │   │   │   │   ├── gpos_context2_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_boundary_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_boundary_f2.otf
    │   │   │   │   │   ├── gpos_context2_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_boundary_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_classes_f1.otf
    │   │   │   │   │   ├── gpos_context2_classes_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_classes_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_classes_f2.otf
    │   │   │   │   │   ├── gpos_context2_classes_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_classes_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_expansion_f1.otf
    │   │   │   │   │   ├── gpos_context2_expansion_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_expansion_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos_context2_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_lookupflag_f2.otf
    │   │   │   │   │   ├── gpos_context2_lookupflag_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_lookupflag_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_multiple_subrules_f1.otf
    │   │   │   │   │   ├── gpos_context2_multiple_subrules_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_multiple_subrules_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_multiple_subrules_f2.otf
    │   │   │   │   │   ├── gpos_context2_multiple_subrules_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_multiple_subrules_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_next_glyph_f1.otf
    │   │   │   │   │   ├── gpos_context2_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_next_glyph_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_simple_f1.otf
    │   │   │   │   │   ├── gpos_context2_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_simple_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_simple_f2.otf
    │   │   │   │   │   ├── gpos_context2_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_simple_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context2_successive_f1.otf
    │   │   │   │   │   ├── gpos_context2_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context2_successive_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context3_boundary_f1.otf
    │   │   │   │   │   ├── gpos_context3_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context3_boundary_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context3_boundary_f2.otf
    │   │   │   │   │   ├── gpos_context3_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context3_boundary_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context3_lookupflag_f1.otf
    │   │   │   │   │   ├── gpos_context3_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context3_lookupflag_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context3_lookupflag_f2.otf
    │   │   │   │   │   ├── gpos_context3_lookupflag_f2.ttx.GDEF
    │   │   │   │   │   ├── gpos_context3_lookupflag_f2.ttx.GPOS
    │   │   │   │   │   ├── gpos_context3_next_glyph_f1.otf
    │   │   │   │   │   ├── gpos_context3_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context3_next_glyph_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context3_simple_f1.otf
    │   │   │   │   │   ├── gpos_context3_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context3_simple_f1.ttx.GPOS
    │   │   │   │   │   ├── gpos_context3_successive_f1.otf
    │   │   │   │   │   ├── gpos_context3_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gpos_context3_successive_f1.ttx.GPOS
    │   │   │   │   │   ├── gsub1_1_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub1_1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub1_1_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub1_1_modulo_f1.otf
    │   │   │   │   │   ├── gsub1_1_modulo_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub1_1_simple_f1.otf
    │   │   │   │   │   ├── gsub1_1_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub1_2_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub1_2_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub1_2_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub1_2_simple_f1.otf
    │   │   │   │   │   ├── gsub1_2_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub2_1_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub2_1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub2_1_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub2_1_multiple_sequences_f1.otf
    │   │   │   │   │   ├── gsub2_1_multiple_sequences_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub2_1_simple_f1.otf
    │   │   │   │   │   ├── gsub2_1_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub3_1_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub3_1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub3_1_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub3_1_multiple_f1.otf
    │   │   │   │   │   ├── gsub3_1_multiple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub3_1_simple_f1.otf
    │   │   │   │   │   ├── gsub3_1_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub4_1_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub4_1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub4_1_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub4_1_multiple_ligatures_f1.otf
    │   │   │   │   │   ├── gsub4_1_multiple_ligatures_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub4_1_multiple_ligatures_f2.otf
    │   │   │   │   │   ├── gsub4_1_multiple_ligatures_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub4_1_multiple_ligsets_f1.otf
    │   │   │   │   │   ├── gsub4_1_multiple_ligsets_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub4_1_simple_f1.otf
    │   │   │   │   │   ├── gsub4_1_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub7_font1.otf
    │   │   │   │   │   ├── gsub7_font1.ttx.GSUB
    │   │   │   │   │   ├── gsub7_font2.otf
    │   │   │   │   │   ├── gsub7_font2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_boundary_f1.otf
    │   │   │   │   │   ├── gsub_chaining1_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_boundary_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_boundary_f2.otf
    │   │   │   │   │   ├── gsub_chaining1_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_boundary_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_boundary_f3.otf
    │   │   │   │   │   ├── gsub_chaining1_boundary_f3.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_boundary_f3.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_boundary_f4.otf
    │   │   │   │   │   ├── gsub_chaining1_boundary_f4.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_boundary_f4.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub_chaining1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_multiple_subrules_f1.otf
    │   │   │   │   │   ├── gsub_chaining1_multiple_subrules_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_multiple_subrules_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_multiple_subrules_f2.otf
    │   │   │   │   │   ├── gsub_chaining1_multiple_subrules_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_multiple_subrules_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_next_glyph_f1.otf
    │   │   │   │   │   ├── gsub_chaining1_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_next_glyph_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_simple_f1.otf
    │   │   │   │   │   ├── gsub_chaining1_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_simple_f2.otf
    │   │   │   │   │   ├── gsub_chaining1_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_simple_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining1_successive_f1.otf
    │   │   │   │   │   ├── gsub_chaining1_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining1_successive_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_boundary_f1.otf
    │   │   │   │   │   ├── gsub_chaining2_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_boundary_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_boundary_f2.otf
    │   │   │   │   │   ├── gsub_chaining2_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_boundary_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_boundary_f3.otf
    │   │   │   │   │   ├── gsub_chaining2_boundary_f3.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_boundary_f3.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_boundary_f4.otf
    │   │   │   │   │   ├── gsub_chaining2_boundary_f4.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_boundary_f4.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub_chaining2_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_multiple_subrules_f1.otf
    │   │   │   │   │   ├── gsub_chaining2_multiple_subrules_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_multiple_subrules_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_multiple_subrules_f2.otf
    │   │   │   │   │   ├── gsub_chaining2_multiple_subrules_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_multiple_subrules_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_next_glyph_f1.otf
    │   │   │   │   │   ├── gsub_chaining2_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_next_glyph_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_simple_f1.otf
    │   │   │   │   │   ├── gsub_chaining2_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_simple_f2.otf
    │   │   │   │   │   ├── gsub_chaining2_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_simple_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining2_successive_f1.otf
    │   │   │   │   │   ├── gsub_chaining2_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining2_successive_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_boundary_f1.otf
    │   │   │   │   │   ├── gsub_chaining3_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_boundary_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_boundary_f2.otf
    │   │   │   │   │   ├── gsub_chaining3_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_boundary_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_boundary_f3.otf
    │   │   │   │   │   ├── gsub_chaining3_boundary_f3.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_boundary_f3.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_boundary_f4.otf
    │   │   │   │   │   ├── gsub_chaining3_boundary_f4.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_boundary_f4.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub_chaining3_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_next_glyph_f1.otf
    │   │   │   │   │   ├── gsub_chaining3_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_next_glyph_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_simple_f1.otf
    │   │   │   │   │   ├── gsub_chaining3_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_simple_f2.otf
    │   │   │   │   │   ├── gsub_chaining3_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_simple_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_chaining3_successive_f1.otf
    │   │   │   │   │   ├── gsub_chaining3_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_chaining3_successive_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_boundary_f1.otf
    │   │   │   │   │   ├── gsub_context1_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_boundary_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_boundary_f2.otf
    │   │   │   │   │   ├── gsub_context1_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_boundary_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_expansion_f1.otf
    │   │   │   │   │   ├── gsub_context1_expansion_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_expansion_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub_context1_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_lookupflag_f2.otf
    │   │   │   │   │   ├── gsub_context1_lookupflag_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_lookupflag_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_multiple_subrules_f1.otf
    │   │   │   │   │   ├── gsub_context1_multiple_subrules_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_multiple_subrules_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_multiple_subrules_f2.otf
    │   │   │   │   │   ├── gsub_context1_multiple_subrules_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_multiple_subrules_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_next_glyph_f1.otf
    │   │   │   │   │   ├── gsub_context1_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_next_glyph_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_simple_f1.otf
    │   │   │   │   │   ├── gsub_context1_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_simple_f2.otf
    │   │   │   │   │   ├── gsub_context1_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_simple_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context1_successive_f1.otf
    │   │   │   │   │   ├── gsub_context1_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context1_successive_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_boundary_f1.otf
    │   │   │   │   │   ├── gsub_context2_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_boundary_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_boundary_f2.otf
    │   │   │   │   │   ├── gsub_context2_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_boundary_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_classes_f1.otf
    │   │   │   │   │   ├── gsub_context2_classes_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_classes_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_classes_f2.otf
    │   │   │   │   │   ├── gsub_context2_classes_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_classes_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_expansion_f1.otf
    │   │   │   │   │   ├── gsub_context2_expansion_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_expansion_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub_context2_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_lookupflag_f2.otf
    │   │   │   │   │   ├── gsub_context2_lookupflag_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_lookupflag_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_multiple_subrules_f1.otf
    │   │   │   │   │   ├── gsub_context2_multiple_subrules_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_multiple_subrules_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_multiple_subrules_f2.otf
    │   │   │   │   │   ├── gsub_context2_multiple_subrules_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_multiple_subrules_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_next_glyph_f1.otf
    │   │   │   │   │   ├── gsub_context2_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_next_glyph_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_simple_f1.otf
    │   │   │   │   │   ├── gsub_context2_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_simple_f2.otf
    │   │   │   │   │   ├── gsub_context2_simple_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_simple_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context2_successive_f1.otf
    │   │   │   │   │   ├── gsub_context2_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context2_successive_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context3_boundary_f1.otf
    │   │   │   │   │   ├── gsub_context3_boundary_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context3_boundary_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context3_boundary_f2.otf
    │   │   │   │   │   ├── gsub_context3_boundary_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context3_boundary_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context3_lookupflag_f1.otf
    │   │   │   │   │   ├── gsub_context3_lookupflag_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context3_lookupflag_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context3_lookupflag_f2.otf
    │   │   │   │   │   ├── gsub_context3_lookupflag_f2.ttx.GDEF
    │   │   │   │   │   ├── gsub_context3_lookupflag_f2.ttx.GSUB
    │   │   │   │   │   ├── gsub_context3_next_glyph_f1.otf
    │   │   │   │   │   ├── gsub_context3_next_glyph_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context3_next_glyph_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context3_simple_f1.otf
    │   │   │   │   │   ├── gsub_context3_simple_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context3_simple_f1.ttx.GSUB
    │   │   │   │   │   ├── gsub_context3_successive_f1.otf
    │   │   │   │   │   ├── gsub_context3_successive_f1.ttx.GDEF
    │   │   │   │   │   ├── gsub_context3_successive_f1.ttx.GSUB
    │   │   │   │   │   ├── lookupflag_ignore_attach_f1.otf
    │   │   │   │   │   ├── lookupflag_ignore_attach_f1.ttx.GDEF
    │   │   │   │   │   ├── lookupflag_ignore_attach_f1.ttx.GSUB
    │   │   │   │   │   ├── lookupflag_ignore_base_f1.otf
    │   │   │   │   │   ├── lookupflag_ignore_base_f1.ttx.GDEF
    │   │   │   │   │   ├── lookupflag_ignore_base_f1.ttx.GSUB
    │   │   │   │   │   ├── lookupflag_ignore_combination_f1.otf
    │   │   │   │   │   ├── lookupflag_ignore_combination_f1.ttx.GDEF
    │   │   │   │   │   ├── lookupflag_ignore_combination_f1.ttx.GSUB
    │   │   │   │   │   ├── lookupflag_ignore_ligatures_f1.otf
    │   │   │   │   │   ├── lookupflag_ignore_ligatures_f1.ttx.GDEF
    │   │   │   │   │   ├── lookupflag_ignore_ligatures_f1.ttx.GSUB
    │   │   │   │   │   ├── lookupflag_ignore_marks_f1.otf
    │   │   │   │   │   ├── lookupflag_ignore_marks_f1.ttx.GDEF
    │   │   │   │   │   ├── lookupflag_ignore_marks_f1.ttx.GSUB
    │   │   │   │   │   └── README
    │   │   │   │   ├── C_F_F__2.bin
    │   │   │   │   ├── C_F_F__2.ttx
    │   │   │   │   ├── C_F_F_.bin
    │   │   │   │   ├── C_F_F_.ttx
    │   │   │   │   ├── _c_m_a_p_format_14_bw_compat.ttx
    │   │   │   │   ├── _c_m_a_p_format_14.ttx
    │   │   │   │   ├── COLRv1-clip-boxes-cff.ttx
    │   │   │   │   ├── COLRv1-clip-boxes-glyf.ttx
    │   │   │   │   ├── COLRv1-clip-boxes-q100-expected.ttx
    │   │   │   │   ├── COLRv1-clip-boxes-q10-expected.ttx
    │   │   │   │   ├── COLRv1-clip-boxes-q1-expected.ttx
    │   │   │   │   ├── _g_l_y_f_instructions.ttx
    │   │   │   │   ├── _g_l_y_f_outline_flag_bit6.glyf.bin
    │   │   │   │   ├── _g_l_y_f_outline_flag_bit6.head.bin
    │   │   │   │   ├── _g_l_y_f_outline_flag_bit6.loca.bin
    │   │   │   │   ├── _g_l_y_f_outline_flag_bit6.maxp.bin
    │   │   │   │   ├── _g_l_y_f_outline_flag_bit6.ttx
    │   │   │   │   ├── graphite
    │   │   │   │   │   ├── graphite_tests.ttf
    │   │   │   │   │   ├── graphite_tests.ttx.Feat
    │   │   │   │   │   ├── graphite_tests.ttx.Glat
    │   │   │   │   │   ├── graphite_tests.ttx.Glat.setup
    │   │   │   │   │   ├── graphite_tests.ttx.Silf
    │   │   │   │   │   ├── graphite_tests.ttx.Silf.setup
    │   │   │   │   │   └── graphite_tests.ttx.Sill
    │   │   │   │   ├── _h_h_e_a_recalc_empty.ttx
    │   │   │   │   ├── _h_h_e_a_recalc_OTF.ttx
    │   │   │   │   ├── _h_h_e_a_recalc_TTF.ttx
    │   │   │   │   ├── NotoColorEmoji.subset.index_format_3.ttx
    │   │   │   │   ├── NotoSans-VF-cubic.subset.ttf
    │   │   │   │   ├── ttProgram.ttx
    │   │   │   │   ├── _v_h_e_a_recalc_empty.ttx
    │   │   │   │   ├── _v_h_e_a_recalc_OTF.ttx
    │   │   │   │   └── _v_h_e_a_recalc_TTF.ttx
    │   │   │   ├── _f_p_g_m_test.py
    │   │   │   ├── _f_v_a_r_test.py
    │   │   │   ├── _g_c_i_d_test.py
    │   │   │   ├── _g_l_y_f_test.py
    │   │   │   ├── _g_v_a_r_test.py
    │   │   │   ├── _h_h_e_a_test.py
    │   │   │   ├── _h_m_t_x_test.py
    │   │   │   ├── _k_e_r_n_test.py
    │   │   │   ├── _l_c_a_r_test.py
    │   │   │   ├── _l_t_a_g_test.py
    │   │   │   ├── _m_e_t_a_test.py
    │   │   │   ├── _m_o_r_t_test.py
    │   │   │   ├── _m_o_r_x_test.py
    │   │   │   ├── M_V_A_R_test.py
    │   │   │   ├── _n_a_m_e_test.py
    │   │   │   ├── _o_p_b_d_test.py
    │   │   │   ├── O_S_2f_2_test.py
    │   │   │   ├── otBase_test.py
    │   │   │   ├── otConverters_test.py
    │   │   │   ├── otTables_test.py
    │   │   │   ├── _p_r_o_p_test.py
    │   │   │   ├── S_T_A_T_test.py
    │   │   │   ├── S_V_G__test.py
    │   │   │   ├── tables_test.py
    │   │   │   ├── _t_r_a_k_test.py
    │   │   │   ├── T_S_I__0_test.py
    │   │   │   ├── T_S_I__1_test.py
    │   │   │   ├── ttProgram_test.py
    │   │   │   ├── TupleVariation_test.py
    │   │   │   ├── V_A_R_C_test.py
    │   │   │   ├── _v_h_e_a_test.py
    │   │   │   └── _v_m_t_x_test.py
    │   │   ├── ttCollection_test.py
    │   │   ├── ttFont_test.py
    │   │   ├── ttGlyphSet_test.py
    │   │   ├── ttVisitor_test.py
    │   │   └── woff2_test.py
    │   ├── ttx
    │   │   ├── data
    │   │   │   ├── roundtrip_DSIG_split_at_XML_parse_buffer_size.ttx
    │   │   │   ├── TestBOM.ttx
    │   │   │   ├── TestDFONT.dfont
    │   │   │   ├── TestNoSFNT.ttx
    │   │   │   ├── TestNoXML.ttx
    │   │   │   ├── TestOTF.otf
    │   │   │   ├── TestOTF.ttx
    │   │   │   ├── TestTTC.ttc
    │   │   │   ├── TestTTF.ttf
    │   │   │   ├── TestTTF.ttx
    │   │   │   ├── TestWOFF2.woff2
    │   │   │   └── TestWOFF.woff
    │   │   └── ttx_test.py
    │   ├── ufoLib
    │   │   ├── filenames_test.py
    │   │   ├── GLIF1_test.py
    │   │   ├── GLIF2_test.py
    │   │   ├── glifLib_test.py
    │   │   ├── __init__.py
    │   │   ├── testdata
    │   │   │   ├── DemoFont.ufo
    │   │   │   │   ├── fontinfo.plist
    │   │   │   │   ├── glyphs
    │   │   │   │   │   ├── a.glif
    │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   ├── B_.glif
    │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   ├── F__A__B_.glif
    │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   ├── G_.glif
    │   │   │   │   │   ├── O_.glif
    │   │   │   │   │   ├── R_.glif
    │   │   │   │   │   ├── testglyph1.glif
    │   │   │   │   │   └── testglyph1.reversed.glif
    │   │   │   │   ├── lib.plist
    │   │   │   │   └── metainfo.plist
    │   │   │   ├── TestFont1 (UFO1).ufo
    │   │   │   │   ├── fontinfo.plist
    │   │   │   │   ├── glyphs
    │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   ├── B_.glif
    │   │   │   │   │   └── contents.plist
    │   │   │   │   ├── groups.plist
    │   │   │   │   ├── kerning.plist
    │   │   │   │   ├── lib.plist
    │   │   │   │   └── metainfo.plist
    │   │   │   ├── TestFont1 (UFO2).ufo
    │   │   │   │   ├── features.fea
    │   │   │   │   ├── fontinfo.plist
    │   │   │   │   ├── glyphs
    │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   ├── B_.glif
    │   │   │   │   │   └── contents.plist
    │   │   │   │   ├── groups.plist
    │   │   │   │   ├── kerning.plist
    │   │   │   │   ├── lib.plist
    │   │   │   │   └── metainfo.plist
    │   │   │   ├── TestFont1 (UFO3).ufo
    │   │   │   │   ├── data
    │   │   │   │   │   └── com.github.fonttools.ttx
    │   │   │   │   │       └── CUST.ttx
    │   │   │   │   ├── fontinfo.plist
    │   │   │   │   ├── glyphs
    │   │   │   │   │   ├── a.glif
    │   │   │   │   │   ├── b.glif
    │   │   │   │   │   ├── c.glif
    │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   ├── d.glif
    │   │   │   │   │   ├── e.glif
    │   │   │   │   │   ├── f.glif
    │   │   │   │   │   ├── g.glif
    │   │   │   │   │   ├── h.glif
    │   │   │   │   │   ├── i.glif
    │   │   │   │   │   ├── j.glif
    │   │   │   │   │   ├── k.glif
    │   │   │   │   │   ├── l.glif
    │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   └── space.glif
    │   │   │   │   ├── kerning.plist
    │   │   │   │   ├── layercontents.plist
    │   │   │   │   ├── lib.plist
    │   │   │   │   └── metainfo.plist
    │   │   │   ├── TestFont1 (UFO3).ufoz
    │   │   │   └── UFO3-Read Data.ufo
    │   │   │       ├── data
    │   │   │       │   ├── org.unifiedfontobject.directory
    │   │   │       │   │   ├── bar
    │   │   │       │   │   │   └── lol.txt
    │   │   │       │   │   └── foo.txt
    │   │   │       │   └── org.unifiedfontobject.file.txt
    │   │   │       ├── groups.plist
    │   │   │       └── metainfo.plist
    │   │   ├── testSupport.py
    │   │   ├── UFO1_test.py
    │   │   ├── UFO2_test.py
    │   │   ├── UFO3_test.py
    │   │   ├── UFOConversion_test.py
    │   │   ├── ufoLib_test.py
    │   │   └── UFOZ_test.py
    │   ├── unicodedata_test.py
    │   ├── varLib
    │   │   ├── builder_test.py
    │   │   ├── data
    │   │   │   ├── BuildAvar2.designspace
    │   │   │   ├── BuildAvarEmptyAxis.designspace
    │   │   │   ├── BuildAvarIdentityMaps.designspace
    │   │   │   ├── BuildAvarSingleAxis.designspace
    │   │   │   ├── Build.designspace
    │   │   │   ├── BuildGvarCompositeExplicitDelta.designspace
    │   │   │   ├── DropOnCurves.designspace
    │   │   │   ├── FeatureVarsCustomTag.designspace
    │   │   │   ├── FeatureVars.designspace
    │   │   │   ├── FeatureVarsWholeRange.designspace
    │   │   │   ├── FeatureVarsWholeRangeEmpty.designspace
    │   │   │   ├── IncompatibleArrays.designspace
    │   │   │   ├── IncompatibleFeatures.designspace
    │   │   │   ├── IncompatibleLookupTypes.designspace
    │   │   │   ├── InterpolateLayout2.designspace
    │   │   │   ├── InterpolateLayout3.designspace
    │   │   │   ├── InterpolateLayout.designspace
    │   │   │   ├── InterpolateLayout.glyphs
    │   │   │   ├── KerningMerging.designspace
    │   │   │   ├── master_base_test
    │   │   │   │   ├── TestBASE.0.ttx
    │   │   │   │   └── TestBASE.900.ttx
    │   │   │   ├── master_cff2
    │   │   │   │   ├── TestCFF2_Black.ttx
    │   │   │   │   ├── TestCFF2_ExtraLight.ttx
    │   │   │   │   └── TestCFF2_Regular.ttx
    │   │   │   ├── master_cff2_input
    │   │   │   │   ├── TestCFF2_Black.ttx
    │   │   │   │   ├── TestCFF2_ExtraLight.ttx
    │   │   │   │   └── TestCFF2_Regular.ttx
    │   │   │   ├── master_incompatible_arrays
    │   │   │   │   ├── IncompatibleArrays-Bold.ttx
    │   │   │   │   └── IncompatibleArrays-Regular.ttx
    │   │   │   ├── master_incompatible_features
    │   │   │   │   ├── IncompatibleFeatures-Bold.ttx
    │   │   │   │   └── IncompatibleFeatures-Regular.ttx
    │   │   │   ├── master_incompatible_lookup_types
    │   │   │   │   ├── IncompatibleLookupTypes-Bold.ttx
    │   │   │   │   └── IncompatibleLookupTypes-Regular.ttx
    │   │   │   ├── master_kerning_merging
    │   │   │   │   ├── 0.ttx
    │   │   │   │   ├── 1.ttx
    │   │   │   │   └── 2.ttx
    │   │   │   ├── master_non_marking_cff2
    │   │   │   │   ├── TestNonMarkingCFF2_ExtraLight.ttx
    │   │   │   │   └── TestNonMarkingCFF2_Regular.ttx
    │   │   │   ├── master_no_overwrite_stat
    │   │   │   │   ├── Test-CondensedBlack.ttx
    │   │   │   │   ├── Test-CondensedThin.ttx
    │   │   │   │   ├── Test-ExtendedBlack.ttx
    │   │   │   │   └── Test-ExtendedThin.ttx
    │   │   │   ├── master_sparse_cff2
    │   │   │   │   ├── MasterSet_Kanji-w0.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w1000.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w439.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w440.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w599.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w600.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w669.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w670.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w799.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w800.00.ttx
    │   │   │   │   ├── MasterSet_Kanji-w889.00.ttx
    │   │   │   │   └── MasterSet_Kanji-w890.00.ttx
    │   │   │   ├── master_sparse_cff2_empty
    │   │   │   │   ├── SparseCFF-Bold.ttx
    │   │   │   │   ├── SparseCFF-Medium.ttx
    │   │   │   │   └── SparseCFF-Regular.ttx
    │   │   │   ├── master_ttx_drop_oncurves
    │   │   │   │   ├── TestFamily-Master1.ttx
    │   │   │   │   └── TestFamily-Master2.ttx
    │   │   │   ├── master_ttx_getvar_ttf
    │   │   │   │   └── Mutator_Getvar.ttx
    │   │   │   ├── master_ttx_interpolatable_otf
    │   │   │   │   ├── TestFamily2-Master0.ttx
    │   │   │   │   └── TestFamily2-Master1.ttx
    │   │   │   ├── master_ttx_interpolatable_ttf
    │   │   │   │   ├── SparseMasters-Bold.ttx
    │   │   │   │   ├── SparseMasters-Medium.ttx
    │   │   │   │   ├── SparseMasters-Regular.ttx
    │   │   │   │   ├── TestFamily2-Master0.ttx
    │   │   │   │   ├── TestFamily2-Master1.ttx
    │   │   │   │   ├── TestFamily3-Bold.ttx
    │   │   │   │   ├── TestFamily3-CondensedBold.ttx
    │   │   │   │   ├── TestFamily3-CondensedLight.ttx
    │   │   │   │   ├── TestFamily3-CondensedSemiBold.ttx
    │   │   │   │   ├── TestFamily3-Condensed.ttx
    │   │   │   │   ├── TestFamily3-Light.ttx
    │   │   │   │   ├── TestFamily3-Regular.ttx
    │   │   │   │   ├── TestFamily3-SemiBold.ttx
    │   │   │   │   ├── TestFamily4-Italic15.ttx
    │   │   │   │   ├── TestFamily4-Regular.ttx
    │   │   │   │   ├── TestFamily-Master0.ttx
    │   │   │   │   ├── TestFamily-Master1.ttx
    │   │   │   │   ├── TestFamily-Master2.ttx
    │   │   │   │   ├── TestFamily-Master3.ttx
    │   │   │   │   └── TestFamily-Master4.ttx
    │   │   │   ├── master_ttx_varcolr_ttf
    │   │   │   │   ├── TestVariableCOLR-Bold.ttx
    │   │   │   │   └── TestVariableCOLR-Regular.ttx
    │   │   │   ├── master_ttx_varfont_otf
    │   │   │   │   └── TestCFF2VF.ttx
    │   │   │   ├── master_ttx_varfont_ttf
    │   │   │   │   ├── Mutator_IUP.ttx
    │   │   │   │   └── SparseMasters-VF.ttx
    │   │   │   ├── master_ufo
    │   │   │   │   ├── SparseMasters-Bold.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── a.glif
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dotabovecomb.glif
    │   │   │   │   │   │   ├── edotabove.glif
    │   │   │   │   │   │   ├── e.glif
    │   │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   │   └── s.glif
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── SparseMasters-Medium.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── e.glif
    │   │   │   │   │   │   └── _notdef.glif
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── SparseMasters-Regular.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── a.glif
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dotabovecomb.glif
    │   │   │   │   │   │   ├── edotabove.glif
    │   │   │   │   │   │   ├── e.glif
    │   │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   │   └── s.glif
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily2-Master0.ufo
    │   │   │   │   │   ├── features.fea
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── a.alt.glif
    │   │   │   │   │   │   ├── a.glif
    │   │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   │   ├── ampersand.glif
    │   │   │   │   │   │   ├── A_.sc.glif
    │   │   │   │   │   │   ├── atilde.glif
    │   │   │   │   │   │   ├── circledotted.glif
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── d.glif
    │   │   │   │   │   │   ├── dieresisbelowcmb.glif
    │   │   │   │   │   │   ├── dieresiscmb.glif
    │   │   │   │   │   │   ├── f.glif
    │   │   │   │   │   │   ├── f_t.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   │   ├── space.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   ├── tildebelowcmb.glif
    │   │   │   │   │   │   └── tildecmb.glif
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily2-Master1.ufo
    │   │   │   │   │   ├── features.fea
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── a.alt.glif
    │   │   │   │   │   │   ├── a.glif
    │   │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   │   ├── ampersand.glif
    │   │   │   │   │   │   ├── A_.sc.glif
    │   │   │   │   │   │   ├── atilde.glif
    │   │   │   │   │   │   ├── circledotted.glif
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── d.glif
    │   │   │   │   │   │   ├── dieresisbelowcmb.glif
    │   │   │   │   │   │   ├── dieresiscmb.glif
    │   │   │   │   │   │   ├── f.glif
    │   │   │   │   │   │   ├── f_t.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   │   ├── space.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   ├── tildebelowcmb.glif
    │   │   │   │   │   │   └── tildecmb.glif
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily3-Bold.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   │   ├── layerinfo.plist
    │   │   │   │   │   │   ├── l.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   ├── s.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   └── T_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily3-CondensedBold.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   │   ├── layerinfo.plist
    │   │   │   │   │   │   ├── l.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   ├── s.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   └── T_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily3-CondensedLight.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   │   ├── layerinfo.plist
    │   │   │   │   │   │   ├── l.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   ├── s.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   └── T_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily3-CondensedSemiBold.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   │   ├── layerinfo.plist
    │   │   │   │   │   │   ├── l.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   ├── s.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   └── T_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily3-Condensed.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   │   ├── layerinfo.plist
    │   │   │   │   │   │   ├── l.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   ├── s.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   └── T_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily3-Light.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   │   ├── layerinfo.plist
    │   │   │   │   │   │   ├── l.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   ├── s.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   └── T_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily3-Regular.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   │   ├── layerinfo.plist
    │   │   │   │   │   │   ├── l.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   ├── s.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   └── T_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily3-SemiBold.ufo
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── F_.glif
    │   │   │   │   │   │   ├── layerinfo.plist
    │   │   │   │   │   │   ├── l.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   ├── s.glif
    │   │   │   │   │   │   ├── t.glif
    │   │   │   │   │   │   └── T_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily4-Italic15.ufo
    │   │   │   │   │   ├── features.fea
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dieresiscomb.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── N_.glif
    │   │   │   │   │   │   ├── odieresis.glif
    │   │   │   │   │   │   ├── O_dieresis.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   └── O_.glif
    │   │   │   │   │   ├── glyphs.public.background
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dieresiscomb.glif
    │   │   │   │   │   │   ├── N_.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   └── O_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily4-Regular.ufo
    │   │   │   │   │   ├── features.fea
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dieresiscomb.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── N_.glif
    │   │   │   │   │   │   ├── odieresis.glif
    │   │   │   │   │   │   ├── O_dieresis.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   └── O_.glif
    │   │   │   │   │   ├── glyphs.public.background
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dieresiscomb.glif
    │   │   │   │   │   │   ├── n.glif
    │   │   │   │   │   │   ├── N_.glif
    │   │   │   │   │   │   ├── o.glif
    │   │   │   │   │   │   └── O_.glif
    │   │   │   │   │   ├── groups.plist
    │   │   │   │   │   ├── kerning.plist
    │   │   │   │   │   ├── layercontents.plist
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily-Master0.ufo
    │   │   │   │   │   ├── features.fea
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── a.glif
    │   │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dollar.glif
    │   │   │   │   │   │   ├── dollar.nostroke.glif
    │   │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   │   └── space.glif
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily-Master1.ufo
    │   │   │   │   │   ├── features.fea
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── a.glif
    │   │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dollar.glif
    │   │   │   │   │   │   ├── dollar.nostroke.glif
    │   │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   │   └── space.glif
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily-Master2.ufo
    │   │   │   │   │   ├── features.fea
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── a.glif
    │   │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dollar.glif
    │   │   │   │   │   │   ├── dollar.nostroke.glif
    │   │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   │   └── space.glif
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   ├── TestFamily-Master3.ufo
    │   │   │   │   │   ├── features.fea
    │   │   │   │   │   ├── fontinfo.plist
    │   │   │   │   │   ├── glyphs
    │   │   │   │   │   │   ├── a.glif
    │   │   │   │   │   │   ├── A_.glif
    │   │   │   │   │   │   ├── contents.plist
    │   │   │   │   │   │   ├── dollar.glif
    │   │   │   │   │   │   ├── dollar.nostroke.glif
    │   │   │   │   │   │   ├── _notdef.glif
    │   │   │   │   │   │   └── space.glif
    │   │   │   │   │   ├── lib.plist
    │   │   │   │   │   └── metainfo.plist
    │   │   │   │   └── TestFamily-Master4.ufo
    │   │   │   │       ├── features.fea
    │   │   │   │       ├── fontinfo.plist
    │   │   │   │       ├── glyphs
    │   │   │   │       │   ├── a.glif
    │   │   │   │       │   ├── A_.glif
    │   │   │   │       │   ├── contents.plist
    │   │   │   │       │   ├── dollar.glif
    │   │   │   │       │   ├── dollar.nostroke.glif
    │   │   │   │       │   ├── _notdef.glif
    │   │   │   │       │   └── space.glif
    │   │   │   │       ├── lib.plist
    │   │   │   │       └── metainfo.plist
    │   │   │   ├── master_vpal_test
    │   │   │   │   ├── master_vpal_test_0.ttx
    │   │   │   │   └── master_vpal_test_1.ttx
    │   │   │   ├── master_vvar_cff2
    │   │   │   │   ├── TestVVAR.0.ttx
    │   │   │   │   └── TestVVAR.1.ttx
    │   │   │   ├── SingleMaster.designspace
    │   │   │   ├── SparseCFF2.designspace
    │   │   │   ├── SparseMasters.designspace
    │   │   │   ├── SparseMasters.glyphs
    │   │   │   ├── SparseMasters_ufo.designspace
    │   │   │   ├── TestBASE.designspace
    │   │   │   ├── TestCFF2.designspace
    │   │   │   ├── TestCFF2Input.designspace
    │   │   │   ├── TestNonMarkingCFF2.designspace
    │   │   │   ├── TestNoOverwriteSTAT.designspace
    │   │   │   ├── test_results
    │   │   │   │   ├── BuildAvar2.ttx
    │   │   │   │   ├── BuildAvarEmptyAxis.ttx
    │   │   │   │   ├── BuildAvarIdentityMaps.ttx
    │   │   │   │   ├── BuildAvarSingleAxis.ttx
    │   │   │   │   ├── BuildGvarCompositeExplicitDelta.ttx
    │   │   │   │   ├── BuildMain.ttx
    │   │   │   │   ├── BuildTestCFF2.ttx
    │   │   │   │   ├── Build.ttx
    │   │   │   │   ├── DropOnCurves.ttx
    │   │   │   │   ├── FeatureVarsCustomTag.ttx
    │   │   │   │   ├── FeatureVars_rclt.ttx
    │   │   │   │   ├── FeatureVars.ttx
    │   │   │   │   ├── FeatureVarsWholeRange.ttx
    │   │   │   │   ├── InterpolateLayout2.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_1_diff2.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_1_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_1_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_2_class_diff2.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_2_class_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_2_class_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_2_spec_diff2.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_2_spec_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_2_spec_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_3_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_3_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_4_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_4_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_5_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_5_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_6_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_6_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_7_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_7_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_8_diff.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_8_same.ttx
    │   │   │   │   ├── InterpolateLayoutGPOS_size_feat_same.ttx
    │   │   │   │   ├── InterpolateLayoutMain.ttx
    │   │   │   │   ├── InterpolateLayout.ttx
    │   │   │   │   ├── InterpolateTestCFF2VF.ttx
    │   │   │   │   ├── Mutator_Getvar-instance.ttx
    │   │   │   │   ├── Mutator_IUP-instance.ttx
    │   │   │   │   ├── Mutator.ttx
    │   │   │   │   ├── SingleMaster.ttx
    │   │   │   │   ├── SparseCFF2-VF.ttx
    │   │   │   │   ├── SparseMasters.ttx
    │   │   │   │   ├── TestBASE.ttx
    │   │   │   │   ├── TestNonMarkingCFF2.ttx
    │   │   │   │   ├── TestSparseCFF2VF.ttx
    │   │   │   │   ├── TestVariableCOLR-VF.ttx
    │   │   │   │   ├── test_vpal.ttx
    │   │   │   │   └── TestVVAR.ttx
    │   │   │   ├── TestSparseCFF2VF.designspace
    │   │   │   ├── TestVariableCOLR.designspace
    │   │   │   ├── test_vpal.designspace
    │   │   │   ├── TestVVAR.designspace
    │   │   │   └── VarLibLocationTest.designspace
    │   │   ├── featureVars_test.py
    │   │   ├── __init__.py
    │   │   ├── instancer
    │   │   │   ├── conftest.py
    │   │   │   ├── data
    │   │   │   │   ├── CFF2Instancer-VF-1.ttx
    │   │   │   │   ├── CFF2Instancer-VF-2.ttx
    │   │   │   │   ├── CFF2Instancer-VF-3.ttx
    │   │   │   │   ├── PartialInstancerTest2-VF.ttx
    │   │   │   │   ├── PartialInstancerTest3-VF.ttx
    │   │   │   │   ├── PartialInstancerTest4-VF.ttx
    │   │   │   │   ├── PartialInstancerTest-VF.ttx
    │   │   │   │   ├── SinglePos.ttx
    │   │   │   │   ├── STATInstancerTest.ttx
    │   │   │   │   └── test_results
    │   │   │   │       ├── CFF2Instancer-VF-1-instance-400.ttx
    │   │   │   │       ├── CFF2Instancer-VF-2-instance-400.ttx
    │   │   │   │       ├── CFF2Instancer-VF-3-instance-400.ttx
    │   │   │   │       ├── PartialInstancerTest2-VF-instance-100,100.ttx
    │   │   │   │       ├── PartialInstancerTest2-VF-instance-100,62.5.ttx
    │   │   │   │       ├── PartialInstancerTest2-VF-instance-400,100.ttx
    │   │   │   │       ├── PartialInstancerTest2-VF-instance-400,62.5.ttx
    │   │   │   │       ├── PartialInstancerTest2-VF-instance-900,100.ttx
    │   │   │   │       ├── PartialInstancerTest2-VF-instance-900,62.5.ttx
    │   │   │   │       ├── PartialInstancerTest3-VF-instance-400-no-overlap-flags.ttx
    │   │   │   │       ├── PartialInstancerTest3-VF-instance-400-no-overlaps.ttx
    │   │   │   │       ├── PartialInstancerTest3-VF-instance-700-no-overlaps.ttx
    │   │   │   │       └── SinglePos-VF-instance-280,18.ttx
    │   │   │   ├── instancer_test.py
    │   │   │   ├── names_test.py
    │   │   │   └── solver_test.py
    │   │   ├── interpolatable_test.py
    │   │   ├── interpolate_layout_test.py
    │   │   ├── iup_test.py
    │   │   ├── merger_test.py
    │   │   ├── models_test.py
    │   │   ├── mutator_test.py
    │   │   ├── stat_test.py
    │   │   ├── varLib_test.py
    │   │   └── varStore_test.py
    │   └── voltLib
    │       ├── data
    │       │   ├── Empty.ttf
    │       │   ├── NamdhinggoSIL1006.fea
    │       │   ├── NamdhinggoSIL1006.vtp
    │       │   ├── Nutso.fea
    │       │   ├── Nutso.ttf
    │       │   └── Nutso.vtp
    │       ├── lexer_test.py
    │       ├── parser_test.py
    │       └── volttofea_test.py
    └── tox.ini

198 directories, 2468 files

实例下载地址

Python中操作字体文件的库(fonttools)源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警