diff --git a/CHANGELOG.md b/CHANGELOG.md index 5df4bee617..082953331d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,163 +1,34 @@ ## Modifications since last major version -### 27.3.5 - -* Add italic form of CYRILLIC SMALL LETTER THREE-LEGGED TE (`U+1C85`). -* Add top-right serif to fully serifed form for CYRILLIC SMALL LETTER TALL TE (`U+1C84`). -* Fix serifs of GREEK LETTER DIGAMMA (`U+03DC`) under `ss12`. -* Improve crossbar position of GREEK SMALL LETTER DIGAMMA (`U+03DD`) and add a middle serif under slab. -* Refine Greek Capital Sho (U+03F7) glyph (#2079). -* \[Experimental\] Add a font feature for texture control (#2081). - - Currently only available through custom builds with `build-texture-feature = true`. -* Make SYMBOL FOR DELETE FORM TWO (`U+2425`) narrow by default, align with other Control Pictures characters (#2084). -* Make APL FUNCTIONAL SYMBOL CIRCLE STAR (`U+235F`) always be five-pointed and upright, to align its pentagram history (#2083). - - -### 27.3.4 - -* Disunify anonymous untagged variant selectors for Cyrillic Capital Yeri/Yery for consistency in style-driven configurations. -* Make LATIN CAPITAL LETTER Y WITH LOOP (`U+1EFE`) follow variants of capital `Y` (`cv24`) for a more balanced slab-italic form like that of Cyrillic Capital U. -* Remove `base-serifed`-only variants for CYRILLIC SMALL LETTER STRAIGHT U (`U+04AF`, `U+04B1`). -* Make Etoile use `flat-bottom-serifed` for `M` and Cyrillic Lower Em (`cv13`, `cv74`). - - -### 27.3.3 - -* Make `cv96` take effect on math asterisk operators (#2066). -* Fix serifs of italic small Yat in Etoile (#2067). -* Add characters: - - LEFTWARDS HARPOON WITH BARB UP TO BAR (`U+2952`) .. DOWNWARDS HARPOON WITH BARB LEFT FROM BAR (`U+2961`). - - -### 27.3.2 - -* Fix overlapping serifs of italic Yat (#2061). -* Fix width of VERY MUCH GREATER-THAN (`U+22D9`). -* Remove duplicate variants for `U+0181`, `U+018A`, `U+01A4`, and `U+2C64`. -* Remove asymmetric variants for small capital `B` (`U+0299`, `U+1D03`) and Cyrillic Lower Ve (`U+0432`). - - -### 27.3.1 - -* Fix application of `cv39` on italic Cyrillic Yat. -* Fix mark placement for `U+024F`. -* Fix overlay placement of Tugrik Sign (U+20AE) under Etoile (#2060). - - -### 27.3.0 - -* Make the tailed variants of `i` and `l` use the fully-tailed shape even when upright, as is consistent with `t = bent-hook` (#1692). - - The old, slightly-curly variants for `i`, `l`, iota (`ι`) and tau (`τ`) are moved to `semi-tailed` variants. - - Corresponded SSes are changed to keep the shape identical to the old version. -* Make Cyrillic Yat to follow Yeri variants. Italic Yat will also respond to variants of `n` (#2047). -* Add short-tailed lowercase tau (`τ`) (#2050). -* Fix tailed variants for `U+02A0`. -* Stylistic set fixes: - * Fix `cv44` and `cv99` for `ss13`. - * Fix `cv48` and `cv54` for `ss17`. - * Fix `cv51` for Etoile. - * Fix `cv52` for `ss15` and Etoile. - * Fix `cv58` for `ss15`. - * Fix `cv59` for `ss07`. - * Fix `cv61` for `ss15` and `ss17`. - * Fix `cv66` for `ss01`, `ss06`, and `ss15`. - * Fix `vsAF` for `ss11`. - * Fix `vsAL` for `ss09` and `ss18`. - - -### 27.2.1 - -* Refine shape of flat `5` (#2030). -* Fix `ss02`, `ss04`, `ss06`, `ss13`, `ss17`'s application on `i` and `j` (#2033). -* Add tailed lower lambda (#2036). -* Add Chancery and Semi-Chancery variants for lowercase `x` and Greek Chi (#2037). -* Add `arrow-lr` ligation group for C-like's spaceship operators (#2041). -* Add raised cap-height cent sign (`¢`) variants to `VSAM` (#2044). -* Fix `cv02`, `cv04`, `cv05`, `cv06`, `cv11`, `cv12`, `cv15`, `cv17`, `cv18`, `cv25`, `cv28`, `cv43`, `cv70`, `cv71`, `cv81`, and `cv82` for `ss17` under slab. - - -### 27.2.0 - -* Add characters - - TELEPHONE RECORDER (`U+2315`) (#2020). - - COUNTERSINK (`U+2335`) (#2020). - - BROKEN CIRCLE WITH NORTHWEST ARROW (`U+238B`) (#2020). - - TRIPLE PLUS (`U+29FB`) (#2020). -* Correction of letter assignments for stylistic styles: - - Fix `cv10` and `cv30` for `ss14`. - - Fix `cv12`, `cv36`, and `cv82` for `ss16`. - - Fix `cv22`, `cv31`, `cv47`, and `cv91` for `ss07`. - - Fix `cv26` for `ss07`, `ss14`, and `ss15`. - - Fix `cv28`, `cv43`, and `cv70` for `ss01`, `ss04`, `ss05`, `ss06`, `ss07`, `ss13`, and `ss16`. - - Fix `cv55` for `ss03`, `ss09`, `cv12`, and `ss14`. - - Fix `cv53` and `cv84` for `ss10`. - - Fix `cv58` for `ss06` and `ss10`. - - Fix `cv59` for `ss09` and `ss18`. - - Fix `cv61` for `ss08` and `ss20`. - - Fix `cv62` for `ss01`. - - Fix `cv63` for `ss02`, `ss05`, and `ss12`. - - Fix `cv68` for `ss03`. - - Fix `cv72` for `ss03`, `ss05`, `ss06`, `cv07`, and `ss13`. - - Fix `cv77` for `ss03`, `ss04`, `ss06`, `ss07`, `ss08`, `ss12`, `ss13`, and `ss18`. - - Fix `cv79` and `cv80` for `ss01`, `ss02`, `ss04`, `ss05`, `ss06`, `ss07`, `ss09`, `ss12`, `ss13`, `ss14`, `ss16`, `ss18`, and Aile. - - Fix `cv88` for `ss18`. - - Fix `vsAA` and `vsAM` for `ss06`. - - Fix `vsAG` for `ss03` and Etoile. - - -### 27.1.0 - -* \[**Breaking**\] Change of variant names: - - `five`.`vertical-upper-left-bar` → `five`.`upright-arched` - - `five`.`oblique-upper-left-bar` → `five`.`oblique-arched` -* Add characters: - - CYRILLIC CAPITAL LETTER DCHE (`U+052C`) (#1897). - - CYRILLIC SMALL LETTER DCHE (`U+052D`) (#1897). -* Add separate variant selector `VXAA` for Cyrillic Lower Er (`р`) (#2006). -* Add separate variant selector `VXAB` for Cyrillic Lower U (`у`) (#2006). -* Add flat middle stroke variant for `5` (#1995). -* Fix variants for Serbian Cyrillic Lower Pe (`п`). - - -### 27.0.2 - -* Add Characters - - LATIN LETTER SMALL CAPITAL R WITH RIGHT LEG (`U+AB46`). -* Add variants for Cyrillic lower Ef (`ф`) with a split bowl (#1992). -* Add Bulgarian local variants for Cyrillic Ef (`Ф`,`ф`). -* Fix serifs in `U+01A6`. -* Improve serifs of Turn M (`U+019C`, `U+026F`) under quasi-proportional. -* Make Turn h (`U+0265`) and Turn M with Long Leg (`U+0270`) follow serif variants of `u`. -* Optimize geometry for `U+A65A` and `U+A65B` under extended width. -* Fix assignment of `8` for `ss14` (#1999). - - -### 27.0.1 - -* Add Characters - - VERY MUCH LESS-THAN (`U+22D8`) (#1990). - - VERY MUCH GREATER-THAN (`U+22D9`) (#1990). - - -### 27.0.0 - -* \[**Breaking**\] Variants for `π`, `τ` and `«` are inserted into the main tag sequence. As a consequence, variant features after them have the tags changed. -* \[**Breaking**\] Reordered variants of Eszet. -* \[**Breaking**\] Change of variant names: - - `upper-r`.`straight-motion-serifed` → `upper-r`.`straight-top-left-serifed` - - `upper-r`.`curly-motion-serifed` → `upper-r`.`curly-top-left-serifed` - - `upper-r`.`standing-motion-serifed` → `upper-r`.`standing-top-left-serifed` - - `upper-r`.`straight-open-motion-serifed` → `upper-r`.`straight-open-top-left-serifed` - - `upper-r`.`curly-open-motion-serifed` → `upper-r`.`curly-open-top-left-serifed` - - `upper-r`.`standing-open-motion-serifed` → `upper-r`.`standing-open-top-left-serifed` -* Add characters: - - COMBINING RING OVERLAY (`U+20D8`). -* Add bottom-right and top-left bottom-right serifed variants of `R`. -* Add bottom-left motion serifed variants of Cyrillic Ya (`Я`,`я`). -* Add cursive variants for Cyrillic Capital/Small Zhe (`Ж`,`ж`) (#1762). -* Allow R Rotunda (`U+A75A`, `U+A75B`) and Indian Rupee Sign (`U+20B9`) to have a bottom-right serif. -* Add OpenType `zero` feature (#1966). -* Fix broken geometry of `U+AB3A` under condensed width. -* Improve bowl shape of Latin Phi (`U+0278`). -* Fix dot radius of COMBINING THREE DOTS ABOVE (`U+20DB`), COMBINING FOUR DOTS ABOVE (`U+20DC`), and COMBINING TRIPLE UNDERDOT (`U+20D8`). +### 28.0.0-alpha.1 + +* \[**BREAKING**\] The filenames and package filenames are changed. + - They will now use PascalCase instead of kebab-case. + - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. +* \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. + - `no-cv-ss` → `noCvSs` + - `no-ligation` → `noLigation` + - `export-glyph-names` → `exportGlyphNames` + - `build-texture-feature` → `buildTextureFeature` + - `metric-override` → `metricOverride` + - `compatibility-ligatures` → `compatibilityLigatures` + - `exclude-chars` → `excludeChars` + - `webfont-formats` → `webfontFormats` +* \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. +* \[**BREAKING**\] Reorder of glyph variants: + - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. +* \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. + - Various other glyph variant tags are also changed to reflect this insertion. +* Add Characters: + - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). + - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). + - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). + - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). + - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). + - RAISED SQUARE (`U+2E0B`). + - HYPODIASTOLE (`U+2E12`). + - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). +* Add hook-inward-serifed variants for `a` (#2085). +* Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. +* Remove earless-corner variants for `U+027E`. diff --git a/build-plans.toml b/build-plans.toml index f545dbe5fb..52e81a9c96 100644 --- a/build-plans.toml +++ b/build-plans.toml @@ -4,684 +4,684 @@ optimizeWithTtx = false # Building plans # Sans -[buildPlans.iosevka] +[buildPlans.Iosevka] family = "Iosevka" desc = "Default" buildCharMap = true snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true -[buildPlans.iosevka-term] +[buildPlans.IosevkaTerm] family = "Iosevka Term" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true -[buildPlans.iosevka-fixed] +[buildPlans.IosevkaFixed] family = "Iosevka Fixed" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true # Slab -[buildPlans.iosevka-slab] +[buildPlans.IosevkaSlab] family = "Iosevka Slab" desc = "Slab-serif" serifs = "slab" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true -[buildPlans.iosevka-term-slab] +[buildPlans.IosevkaTermSlab] family = "Iosevka Term Slab" serifs = "slab" spacing = "term" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true -[buildPlans.iosevka-fixed-slab] +[buildPlans.IosevkaFixedSlab] family = "Iosevka Fixed Slab" serifs = "slab" spacing = "fixed" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1} -export-glyph-names = true +exportGlyphNames = true # Curly -[buildPlans.iosevka-curly] +[buildPlans.IosevkaCurly] family = "Iosevka Curly" desc = "Curly Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss20" = 1} -export-glyph-names = true -[buildPlans.iosevka-curly.variants] +exportGlyphNames = true +[buildPlans.IosevkaCurly.variants] inherits = "ss20" -[buildPlans.iosevka-term-curly] +[buildPlans.IosevkaTermCurly] family = "Iosevka Term Curly" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true -[buildPlans.iosevka-term-curly.variants] +exportGlyphNames = true +[buildPlans.IosevkaTermCurly.variants] inherits = "ss20" -[buildPlans.iosevka-fixed-curly] +[buildPlans.IosevkaFixedCurly] family = "Iosevka Fixed Curly" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true -[buildPlans.iosevka-fixed-curly.variants] +exportGlyphNames = true +[buildPlans.IosevkaFixedCurly.variants] inherits = "ss20" # Curly Slab -[buildPlans.iosevka-curly-slab] +[buildPlans.IosevkaCurlySlab] family = "Iosevka Curly Slab" desc = "Curly Style, Slab-serif" serifs = "slab" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"ss20" = 1} -export-glyph-names = true -[buildPlans.iosevka-curly-slab.variants] +exportGlyphNames = true +[buildPlans.IosevkaCurlySlab.variants] inherits = "ss20" -[buildPlans.iosevka-term-curly-slab] +[buildPlans.IosevkaTermCurlySlab] family = "Iosevka Term Curly Slab" serifs = "slab" spacing = "term" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true -[buildPlans.iosevka-term-curly-slab.variants] +exportGlyphNames = true +[buildPlans.IosevkaTermCurlySlab.variants] inherits = "ss20" -[buildPlans.iosevka-fixed-curly-slab] +[buildPlans.IosevkaFixedCurlySlab] family = "Iosevka Fixed Curly Slab" serifs = "slab" spacing = "fixed" snapshotFamily = 'Iosevka Slab' snapshotFeature = {"NWID" = 1, "ss20" = 1} -export-glyph-names = true -[buildPlans.iosevka-fixed-curly-slab.variants] +exportGlyphNames = true +[buildPlans.IosevkaFixedCurlySlab.variants] inherits = "ss20" ################################################################################################### # SSxx -[buildPlans.iosevka-ss01] +[buildPlans.IosevkaSS01] family = "Iosevka SS01" desc = "Andale Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss01" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss01.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS01.variants] inherits = "ss01" -[buildPlans.iosevka-term-ss01] +[buildPlans.IosevkaTermSS01] family = "Iosevka Term SS01" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss01" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss01.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS01.variants] inherits = "ss01" -[buildPlans.iosevka-fixed-ss01] +[buildPlans.IosevkaFixedSS01] family = "Iosevka Fixed SS01" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss01" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss01.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS01.variants] inherits = "ss01" -[buildPlans.iosevka-ss02] +[buildPlans.IosevkaSS02] family = "Iosevka SS02" desc = "Anonymous Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss02" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss02.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS02.variants] inherits = "ss02" -[buildPlans.iosevka-term-ss02] +[buildPlans.IosevkaTermSS02] family = "Iosevka Term SS02" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss02" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss02.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS02.variants] inherits = "ss02" -[buildPlans.iosevka-fixed-ss02] +[buildPlans.IosevkaFixedSS02] family = "Iosevka Fixed SS02" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss02" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss02.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS02.variants] inherits = "ss02" -[buildPlans.iosevka-ss03] +[buildPlans.IosevkaSS03] family = "Iosevka SS03" desc = "Consolas Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss03" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss03.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS03.variants] inherits = "ss03" -[buildPlans.iosevka-term-ss03] +[buildPlans.IosevkaTermSS03] family = "Iosevka Term SS03" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss03" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss03.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS03.variants] inherits = "ss03" -[buildPlans.iosevka-fixed-ss03] +[buildPlans.IosevkaFixedSS03] family = "Iosevka Fixed SS03" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss03" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss03.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS03.variants] inherits = "ss03" -[buildPlans.iosevka-ss04] +[buildPlans.IosevkaSS04] family = "Iosevka SS04" desc = "Menlo Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss04" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss04.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS04.variants] inherits = "ss04" -[buildPlans.iosevka-term-ss04] +[buildPlans.IosevkaTermSS04] family = "Iosevka Term SS04" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss04" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss04.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS04.variants] inherits = "ss04" -[buildPlans.iosevka-fixed-ss04] +[buildPlans.IosevkaFixedSS04] family = "Iosevka Fixed SS04" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss04" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss04.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS04.variants] inherits = "ss04" -[buildPlans.iosevka-ss05] +[buildPlans.IosevkaSS05] family = "Iosevka SS05" desc = "Fira Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss05" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss05.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS05.variants] inherits = "ss05" -[buildPlans.iosevka-term-ss05] +[buildPlans.IosevkaTermSS05] family = "Iosevka Term SS05" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss05" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss05.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS05.variants] inherits = "ss05" -[buildPlans.iosevka-fixed-ss05] +[buildPlans.IosevkaFixedSS05] family = "Iosevka Fixed SS05" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss05" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss05.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS05.variants] inherits = "ss05" -[buildPlans.iosevka-ss06] +[buildPlans.IosevkaSS06] family = "Iosevka SS06" desc = "Liberation Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss06" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss06.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS06.variants] inherits = "ss06" -[buildPlans.iosevka-term-ss06] +[buildPlans.IosevkaTermSS06] family = "Iosevka Term SS06" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss06" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss06.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS06.variants] inherits = "ss06" -[buildPlans.iosevka-fixed-ss06] +[buildPlans.IosevkaFixedSS06] family = "Iosevka Fixed SS06" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss06" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss06.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS06.variants] inherits = "ss06" -[buildPlans.iosevka-ss07] +[buildPlans.IosevkaSS07] family = "Iosevka SS07" desc = "Monaco Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss07" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss07.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS07.variants] inherits = "ss07" -[buildPlans.iosevka-term-ss07] +[buildPlans.IosevkaTermSS07] family = "Iosevka Term SS07" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss07" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss07.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS07.variants] inherits = "ss07" -[buildPlans.iosevka-fixed-ss07] +[buildPlans.IosevkaFixedSS07] family = "Iosevka Fixed SS07" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss07" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss07.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS07.variants] inherits = "ss07" -[buildPlans.iosevka-ss08] +[buildPlans.IosevkaSS08] family = "Iosevka SS08" desc = "Pragmata Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss08" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss08.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS08.variants] inherits = "ss08" -[buildPlans.iosevka-term-ss08] +[buildPlans.IosevkaTermSS08] family = "Iosevka Term SS08" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss08" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss08.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS08.variants] inherits = "ss08" -[buildPlans.iosevka-fixed-ss08] +[buildPlans.IosevkaFixedSS08] family = "Iosevka Fixed SS08" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss08" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss08.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS08.variants] inherits = "ss08" -[buildPlans.iosevka-ss09] +[buildPlans.IosevkaSS09] family = "Iosevka SS09" desc = "Source Code Pro Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss09" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss09.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS09.variants] inherits = "ss09" -[buildPlans.iosevka-term-ss09] +[buildPlans.IosevkaTermSS09] family = "Iosevka Term SS09" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss09" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss09.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS09.variants] inherits = "ss09" -[buildPlans.iosevka-fixed-ss09] +[buildPlans.IosevkaFixedSS09] family = "Iosevka Fixed SS09" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss09" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss09.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS09.variants] inherits = "ss09" -[buildPlans.iosevka-ss10] +[buildPlans.IosevkaSS10] family = "Iosevka SS10" desc = "Envy Code R Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss10" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss10.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS10.variants] inherits = "ss10" -[buildPlans.iosevka-term-ss10] +[buildPlans.IosevkaTermSS10] family = "Iosevka Term SS10" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss10" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss10.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS10.variants] inherits = "ss10" -[buildPlans.iosevka-fixed-ss10] +[buildPlans.IosevkaFixedSS10] family = "Iosevka Fixed SS10" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss10" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss10.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS10.variants] inherits = "ss10" -[buildPlans.iosevka-ss11] +[buildPlans.IosevkaSS11] family = "Iosevka SS11" desc = "X Windows Fixed Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss11" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss11.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS11.variants] inherits = "ss11" -[buildPlans.iosevka-term-ss11] +[buildPlans.IosevkaTermSS11] family = "Iosevka Term SS11" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss11" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss11.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS11.variants] inherits = "ss11" -[buildPlans.iosevka-fixed-ss11] +[buildPlans.IosevkaFixedSS11] family = "Iosevka Fixed SS11" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss11" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss11.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS11.variants] inherits = "ss11" -[buildPlans.iosevka-ss12] +[buildPlans.IosevkaSS12] family = "Iosevka SS12" desc = "Ubuntu Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss12" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss12.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS12.variants] inherits = "ss12" -[buildPlans.iosevka-term-ss12] +[buildPlans.IosevkaTermSS12] family = "Iosevka Term SS12" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss12" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss12.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS12.variants] inherits = "ss12" -[buildPlans.iosevka-fixed-ss12] +[buildPlans.IosevkaFixedSS12] family = "Iosevka Fixed SS12" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss12" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss12.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS12.variants] inherits = "ss12" -[buildPlans.iosevka-ss13] +[buildPlans.IosevkaSS13] family = "Iosevka SS13" desc = "Lucida Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss13" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss13.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS13.variants] inherits = "ss13" -[buildPlans.iosevka-term-ss13] +[buildPlans.IosevkaTermSS13] family = "Iosevka Term SS13" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss13" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss13.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS13.variants] inherits = "ss13" -[buildPlans.iosevka-fixed-ss13] +[buildPlans.IosevkaFixedSS13] family = "Iosevka Fixed SS13" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss13" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss13.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS13.variants] inherits = "ss13" -[buildPlans.iosevka-ss14] +[buildPlans.IosevkaSS14] family = "Iosevka SS14" desc = "JetBrains Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss14" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss14.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS14.variants] inherits = "ss14" -[buildPlans.iosevka-term-ss14] +[buildPlans.IosevkaTermSS14] family = "Iosevka Term SS14" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss14" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss14.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS14.variants] inherits = "ss14" -[buildPlans.iosevka-fixed-ss14] +[buildPlans.IosevkaFixedSS14] family = "Iosevka Fixed SS14" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss14" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss14.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS14.variants] inherits = "ss14" -[buildPlans.iosevka-ss15] +[buildPlans.IosevkaSS15] family = "Iosevka SS15" desc = "IBM Plex Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss15" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss15.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS15.variants] inherits = "ss15" -[buildPlans.iosevka-term-ss15] +[buildPlans.IosevkaTermSS15] family = "Iosevka Term SS15" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss15" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss15.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS15.variants] inherits = "ss15" -[buildPlans.iosevka-fixed-ss15] +[buildPlans.IosevkaFixedSS15] family = "Iosevka Fixed SS15" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss15" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss15.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS15.variants] inherits = "ss15" -[buildPlans.iosevka-ss16] +[buildPlans.IosevkaSS16] family = "Iosevka SS16" desc = "PT Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss16" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss16.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS16.variants] inherits = "ss16" -[buildPlans.iosevka-term-ss16] +[buildPlans.IosevkaTermSS16] family = "Iosevka Term SS16" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss16" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss16.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS16.variants] inherits = "ss16" -[buildPlans.iosevka-fixed-ss16] +[buildPlans.IosevkaFixedSS16] family = "Iosevka Fixed SS16" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss16" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss16.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS16.variants] inherits = "ss16" -[buildPlans.iosevka-ss17] +[buildPlans.IosevkaSS17] family = "Iosevka SS17" desc = "Recursive Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss17" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss17.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS17.variants] inherits = "ss17" -[buildPlans.iosevka-term-ss17] +[buildPlans.IosevkaTermSS17] family = "Iosevka Term SS17" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss17" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss17.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS17.variants] inherits = "ss17" -[buildPlans.iosevka-fixed-ss17] +[buildPlans.IosevkaFixedSS17] family = "Iosevka Fixed SS17" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss17" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss17.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS17.variants] inherits = "ss17" -[buildPlans.iosevka-ss18] +[buildPlans.IosevkaSS18] family = "Iosevka SS18" desc = "Input Mono Style" snapshotFamily = 'Iosevka' snapshotFeature = {"ss18" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-ss18.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaSS18.variants] inherits = "ss18" -[buildPlans.iosevka-term-ss18] +[buildPlans.IosevkaTermSS18] family = "Iosevka Term SS18" spacing = "term" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss18" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-term-ss18.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaTermSS18.variants] inherits = "ss18" -[buildPlans.iosevka-fixed-ss18] +[buildPlans.IosevkaFixedSS18] family = "Iosevka Fixed SS18" spacing = "fixed" snapshotFamily = 'Iosevka' snapshotFeature = {"NWID" = 1, "ss18" = 1} -export-glyph-names = true -no-cv-ss = true -[buildPlans.iosevka-fixed-ss18.variants] +exportGlyphNames = true +noCvSs = true +[buildPlans.IosevkaFixedSS18.variants] inherits = "ss18" ################################################################################################### # Proportional families -[buildPlans.iosevka-aile] +[buildPlans.IosevkaAile] family = "Iosevka Aile" desc = "Sans-serif" spacing = "quasi-proportional" snapshotFamily = 'Iosevka Aile' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true -[buildPlans.iosevka-aile.variants.design] +[buildPlans.IosevkaAile.variants.design] capital-i = "serifless" capital-j = "serifless" capital-k = "straight-serifless" @@ -719,7 +719,7 @@ percent = "rings-continuous-slash" micro-sign = "toothed-serifless" # Letterform control for U+1D670 ... U+1D6A3 -[buildPlans.iosevka-aile.derivingVariants.mathtt.design] +[buildPlans.IosevkaAile.derivingVariants.mathtt.design] capital-i = "serifed" capital-j = "serifless" capital-k = "straight-serifless" @@ -756,23 +756,23 @@ at = "fourfold" percent = "rings-continuous-slash" micro-sign = "toothed-serifless" -[buildPlans.iosevka-aile.widths.normal] +[buildPlans.IosevkaAile.widths.Normal] shape = 600 menu = 5 css = "normal" -[buildPlans.iosevka-etoile] +[buildPlans.IosevkaEtoile] family = "Iosevka Etoile" desc = "Slab-serif" spacing = "quasi-proportional" serifs = 'slab' snapshotFamily = 'Iosevka Etoile' snapshotFeature = {"NWID" = 0} -export-glyph-names = true +exportGlyphNames = true -[buildPlans.iosevka-etoile.variants.design] +[buildPlans.IosevkaEtoile.variants.design] capital-m = "flat-bottom-serifed" capital-w = "straight-flat-top-serifed" f = "flat-hook-serifed" @@ -789,7 +789,7 @@ cyrl-em = "flat-bottom-serifed" at = "fourfold" percent = "rings-continuous-slash" -[buildPlans.iosevka-etoile.variants.italic] +[buildPlans.IosevkaEtoile.variants.italic] f = "flat-hook-tailed" i = "serifed-flat-tailed" l = "serifed-flat-tailed" @@ -797,75 +797,75 @@ w = "straight-flat-top-motion-serifed" long-s = "flat-hook-tailed" eszet = "longs-s-lig-tailed-serifless" -[buildPlans.iosevka-etoile.widths.normal] +[buildPlans.IosevkaEtoile.widths.Normal] shape = 600 menu = 5 css = "normal" -[buildPlans.iosevka-QP] +[buildPlans.IosevkaQp] family = "Iosevka QP" desc = "Customizer Preview Only Quasi-proportional Sans" spacing = "quasi-proportional" -export-glyph-names = false +exportGlyphNames = false -[buildPlans.iosevka-QP.weights.regular] +[buildPlans.IosevkaQp.weights.regular] shape = 400 menu = 400 css = 400 -[buildPlans.iosevka-QP.weights.bold] +[buildPlans.IosevkaQp.weights.bold] shape = 700 menu = 700 css = 700 -[buildPlans.iosevka-QP-slab] +[buildPlans.IosevkaQpSlab] family = "Iosevka QP Slab" desc = "Customizer Preview Only Quasi-proportional Slab" serifs = 'slab' spacing = "quasi-proportional" -export-glyph-names = false +exportGlyphNames = false -[buildPlans.iosevka-QP-slab.weights.regular] +[buildPlans.IosevkaQpSlab.weights.regular] shape = 400 menu = 400 css = 400 -[buildPlans.iosevka-QP-slab.weights.bold] +[buildPlans.IosevkaQpSlab.weights.bold] shape = 700 menu = 700 css = 700 -[buildPlans.iosevka-QPE] +[buildPlans.IosevkaQpe] family = "Iosevka QPE" desc = "Customizer Preview Only Quasi-proportional-extension-only Sans" spacing = "quasi-proportional-extension-only" -export-glyph-names = false +exportGlyphNames = false -[buildPlans.iosevka-QPE.weights.regular] +[buildPlans.IosevkaQpe.weights.regular] shape = 400 menu = 400 css = 400 -[buildPlans.iosevka-QPE.weights.bold] +[buildPlans.IosevkaQpe.weights.bold] shape = 700 menu = 700 css = 700 -[buildPlans.iosevka-QPE-slab] +[buildPlans.IosevkaQpeSlab] family = "Iosevka QPE Slab" desc = "Customizer Preview Only Quasi-proportional-extension-only Slab" serifs = 'slab' spacing = "quasi-proportional-extension-only" -export-glyph-names = false +exportGlyphNames = false -[buildPlans.iosevka-QPE-slab.weights.regular] +[buildPlans.IosevkaQpeSlab.weights.regular] shape = 400 menu = 400 css = 400 -[buildPlans.iosevka-QPE-slab.weights.bold] +[buildPlans.IosevkaQpeSlab.weights.bold] shape = 700 menu = 700 css = 700 @@ -873,189 +873,189 @@ css = 700 ################################################################################################### # Collect plans -[collectPlans.iosevka] +[collectPlans.Iosevka] release = true from = [ - "iosevka", - "iosevka-term", - "iosevka-fixed" + "Iosevka", + "IosevkaTerm", + "IosevkaFixed" ] -[collectPlans.iosevka-slab] +[collectPlans.IosevkaSlab] release = true from = [ - "iosevka-slab", - "iosevka-term-slab", - "iosevka-fixed-slab" + "IosevkaSlab", + "IosevkaTermSlab", + "IosevkaFixedSlab" ] -[collectPlans.iosevka-curly] +[collectPlans.IosevkaCurly] release = true from = [ - "iosevka-curly", - "iosevka-term-curly", - "iosevka-fixed-curly" + "IosevkaCurly", + "IosevkaTermCurly", + "IosevkaFixedCurly" ] -[collectPlans.iosevka-curly-slab] +[collectPlans.IosevkaCurlySlab] release = true from = [ - "iosevka-curly-slab", - "iosevka-term-curly-slab", - "iosevka-fixed-curly-slab" + "IosevkaCurlySlab", + "IosevkaTermCurlySlab", + "IosevkaFixedCurlySlab" ] -[collectPlans.iosevka-ss01] +[collectPlans.IosevkaSS01] release = true from = [ - "iosevka-ss01", - "iosevka-term-ss01", - "iosevka-fixed-ss01" + "IosevkaSS01", + "IosevkaTermSS01", + "IosevkaFixedSS01" ] -[collectPlans.iosevka-ss02] +[collectPlans.IosevkaSS02] release = true from = [ - "iosevka-ss02", - "iosevka-term-ss02", - "iosevka-fixed-ss02" + "IosevkaSS02", + "IosevkaTermSS02", + "IosevkaFixedSS02" ] -[collectPlans.iosevka-ss03] +[collectPlans.IosevkaSS03] release = true from = [ - "iosevka-ss03", - "iosevka-term-ss03", - "iosevka-fixed-ss03" + "IosevkaSS03", + "IosevkaTermSS03", + "IosevkaFixedSS03" ] -[collectPlans.iosevka-ss04] +[collectPlans.IosevkaSS04] release = true from = [ - "iosevka-ss04", - "iosevka-term-ss04", - "iosevka-fixed-ss04" + "IosevkaSS04", + "IosevkaTermSS04", + "IosevkaFixedSS04" ] -[collectPlans.iosevka-ss05] +[collectPlans.IosevkaSS05] release = true from = [ - "iosevka-ss05", - "iosevka-term-ss05", - "iosevka-fixed-ss05" + "IosevkaSS05", + "IosevkaTermSS05", + "IosevkaFixedSS05" ] -[collectPlans.iosevka-ss06] +[collectPlans.IosevkaSS06] release = true from = [ - "iosevka-ss06", - "iosevka-term-ss06", - "iosevka-fixed-ss06" + "IosevkaSS06", + "IosevkaTermSS06", + "IosevkaFixedSS06" ] -[collectPlans.iosevka-ss07] +[collectPlans.IosevkaSS07] release = true from = [ - "iosevka-ss07", - "iosevka-term-ss07", - "iosevka-fixed-ss07" + "IosevkaSS07", + "IosevkaTermSS07", + "IosevkaFixedSS07" ] -[collectPlans.iosevka-ss08] +[collectPlans.IosevkaSS08] release = true from = [ - "iosevka-ss08", - "iosevka-term-ss08", - "iosevka-fixed-ss08" + "IosevkaSS08", + "IosevkaTermSS08", + "IosevkaFixedSS08" ] -[collectPlans.iosevka-ss09] +[collectPlans.IosevkaSS09] release = true from = [ - "iosevka-ss09", - "iosevka-term-ss09", - "iosevka-fixed-ss09" + "IosevkaSS09", + "IosevkaTermSS09", + "IosevkaFixedSS09" ] -[collectPlans.iosevka-ss10] +[collectPlans.IosevkaSS10] release = true from = [ - "iosevka-ss10", - "iosevka-term-ss10", - "iosevka-fixed-ss10" + "IosevkaSS10", + "IosevkaTermSS10", + "IosevkaFixedSS10" ] -[collectPlans.iosevka-ss11] +[collectPlans.IosevkaSS11] release = true from = [ - "iosevka-ss11", - "iosevka-term-ss11", - "iosevka-fixed-ss11" + "IosevkaSS11", + "IosevkaTermSS11", + "IosevkaFixedSS11" ] -[collectPlans.iosevka-ss12] +[collectPlans.IosevkaSS12] release = true from = [ - "iosevka-ss12", - "iosevka-term-ss12", - "iosevka-fixed-ss12" + "IosevkaSS12", + "IosevkaTermSS12", + "IosevkaFixedSS12" ] -[collectPlans.iosevka-ss13] +[collectPlans.IosevkaSS13] release = true from = [ - "iosevka-ss13", - "iosevka-term-ss13", - "iosevka-fixed-ss13" + "IosevkaSS13", + "IosevkaTermSS13", + "IosevkaFixedSS13" ] -[collectPlans.iosevka-ss14] +[collectPlans.IosevkaSS14] release = true from = [ - "iosevka-ss14", - "iosevka-term-ss14", - "iosevka-fixed-ss14" + "IosevkaSS14", + "IosevkaTermSS14", + "IosevkaFixedSS14" ] -[collectPlans.iosevka-ss15] +[collectPlans.IosevkaSS15] release = true from = [ - "iosevka-ss15", - "iosevka-term-ss15", - "iosevka-fixed-ss15" + "IosevkaSS15", + "IosevkaTermSS15", + "IosevkaFixedSS15" ] -[collectPlans.iosevka-ss16] +[collectPlans.IosevkaSS16] release = true from = [ - "iosevka-ss16", - "iosevka-term-ss16", - "iosevka-fixed-ss16" + "IosevkaSS16", + "IosevkaTermSS16", + "IosevkaFixedSS16" ] -[collectPlans.iosevka-ss17] +[collectPlans.IosevkaSS17] release = true from = [ - "iosevka-ss17", - "iosevka-term-ss17", - "iosevka-fixed-ss17" + "IosevkaSS17", + "IosevkaTermSS17", + "IosevkaFixedSS17" ] -[collectPlans.iosevka-ss18] +[collectPlans.IosevkaSS18] release = true from = [ - "iosevka-ss18", - "iosevka-term-ss18", - "iosevka-fixed-ss18" + "IosevkaSS18", + "IosevkaTermSS18", + "IosevkaFixedSS18" ] -[collectPlans.iosevka-aile] +[collectPlans.IosevkaAile] release = true -from = ["iosevka-aile"] +from = ["IosevkaAile"] -[collectPlans.iosevka-etoile] +[collectPlans.IosevkaEtoile] release = true -from = ["iosevka-etoile"] +from = ["IosevkaEtoile"] ################################################################################################### # Weight mappings (style => shape weight, menu weight, CSS weight) @@ -1065,65 +1065,65 @@ from = ["iosevka-etoile"] # IMPORTANT : Currently "menu" property only support 100, 200, 300, 350, 400, 450, 500, 600, 700, # 800, 900, and "shape" properly only supports number between 100 and 900 (inclusive). -[weights.thin] +[weights.Thin] shape = 100 menu = 100 css = 100 -[weights.extralight] +[weights.ExtraLight] shape = 200 menu = 200 css = 200 -[weights.light] +[weights.Light] shape = 300 menu = 300 css = 300 -[weights.regular] +[weights.Regular] shape = 400 menu = 400 css = 400 -[weights.medium] +[weights.Medium] shape = 500 menu = 500 css = 500 -[weights.semibold] +[weights.SemiBold] shape = 600 menu = 600 css = 600 -[weights.bold] +[weights.Bold] shape = 700 menu = 700 css = 700 -[weights.extrabold] +[weights.ExtraBold] shape = 800 menu = 800 css = 800 -[weights.heavy] +[weights.Heavy] shape = 900 menu = 900 css = 900 # slope mappings (style => slope angle, shape slope grade, menu slope, CSS slope) -[slopes.upright] +[slopes.Upright] angle = 0 shape = "upright" menu = "upright" css = "normal" -[slopes.oblique] +[slopes.Oblique] angle = 9.4 shape = "oblique" menu = "oblique" css = "oblique" -[slopes.italic] +[slopes.Italic] angle = 9.4 shape = "italic" menu = "italic" @@ -1137,12 +1137,12 @@ css = "italic" # IMPORTANT : Currently "shape" property only support 3 ... 9 # and "menu" only support 1 ... 9 -[widths.normal] +[widths.Normal] shape = 500 menu = 5 css = "normal" -[widths.extended] +[widths.Extended] shape = 600 menu = 7 css = "expanded" diff --git a/changes/28.0.0-alpha.1.md b/changes/28.0.0-alpha.1.md new file mode 100644 index 0000000000..96dcc366fe --- /dev/null +++ b/changes/28.0.0-alpha.1.md @@ -0,0 +1,29 @@ +* \[**BREAKING**\] The filenames and package filenames are changed. + - They will now use PascalCase instead of kebab-case. + - To package manager maintainers: Please upgrade your script to make it capable to download and install the fonts under new names, and properly uninstall the fonts under old names. +* \[**BREAKING**\] Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure. + - `no-cv-ss` → `noCvSs` + - `no-ligation` → `noLigation` + - `export-glyph-names` → `exportGlyphNames` + - `build-texture-feature` → `buildTextureFeature` + - `metric-override` → `metricOverride` + - `compatibility-ligatures` → `compatibilityLigatures` + - `exclude-chars` → `excludeChars` + - `webfont-formats` → `webfontFormats` +* \[**BREAKING**\] The "SGr" TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages. +* \[**BREAKING**\] Reorder of glyph variants: + - Influenced characters: `M`, `R`, `f`, `t`, `x`, Long S (`ſ`), Lower Lambda (`λ`), Lower Tau (`τ`), Lower Chi (`χ`), Cyrillic Lower Em (`м`), Cyrillic Lower Ef (`ф`), Cyrillic Ya (`Я`, `я`), `5`. +* \[**BREAKING**\] Tags for variant features for Cyrillic lowercase Er and U are changed to `cv76` and `cv78`. + - Various other glyph variant tags are also changed to reflect this insertion. +* Add Characters: + - CYRILLIC CAPITAL LETTER LHA (`U+0514`) ... CYRILLIC SMALL LETTER YAE (`U+0519`) (#2018). + - GEORGIAN PARAGRAPH SEPARATOR (`U+10FB`). + - COMBINING BREVE-MACRON (`U+1DCB`) ... COMBINING MACRON-BREVE (`U+1DCC`) (#1880). + - COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVE (`U+1DD3`). + - LINE SEPARATOR (`U+2028`) ... PARAGRAPH SEPARATOR (`U+2029`). + - RAISED SQUARE (`U+2E0B`). + - HYPODIASTOLE (`U+2E12`). + - TWO DOTS OVER ONE DOT PUNCTUATION (`U+2E2A`) ... FIVE DOT MARK (`U+2E2D`). +* Add hook-inward-serifed variants for `a` (#2085). +* Remove earless-rounded variants for `U+01A5`, `U+0256`, `U+02A0`, and `U+1D91`. +* Remove earless-corner variants for `U+027E`. diff --git a/changes/27.0.0.md b/changes/archives/27.x/27.0.0.md similarity index 100% rename from changes/27.0.0.md rename to changes/archives/27.x/27.0.0.md diff --git a/changes/27.0.1.md b/changes/archives/27.x/27.0.1.md similarity index 100% rename from changes/27.0.1.md rename to changes/archives/27.x/27.0.1.md diff --git a/changes/27.0.2.md b/changes/archives/27.x/27.0.2.md similarity index 100% rename from changes/27.0.2.md rename to changes/archives/27.x/27.0.2.md diff --git a/changes/27.1.0.md b/changes/archives/27.x/27.1.0.md similarity index 100% rename from changes/27.1.0.md rename to changes/archives/27.x/27.1.0.md diff --git a/changes/27.2.0.md b/changes/archives/27.x/27.2.0.md similarity index 100% rename from changes/27.2.0.md rename to changes/archives/27.x/27.2.0.md diff --git a/changes/27.2.1.md b/changes/archives/27.x/27.2.1.md similarity index 100% rename from changes/27.2.1.md rename to changes/archives/27.x/27.2.1.md diff --git a/changes/27.3.0.md b/changes/archives/27.x/27.3.0.md similarity index 100% rename from changes/27.3.0.md rename to changes/archives/27.x/27.3.0.md diff --git a/changes/27.3.1.md b/changes/archives/27.x/27.3.1.md similarity index 100% rename from changes/27.3.1.md rename to changes/archives/27.x/27.3.1.md diff --git a/changes/27.3.2.md b/changes/archives/27.x/27.3.2.md similarity index 100% rename from changes/27.3.2.md rename to changes/archives/27.x/27.3.2.md diff --git a/changes/27.3.3.md b/changes/archives/27.x/27.3.3.md similarity index 100% rename from changes/27.3.3.md rename to changes/archives/27.x/27.3.3.md diff --git a/changes/27.3.4.md b/changes/archives/27.x/27.3.4.md similarity index 100% rename from changes/27.3.4.md rename to changes/archives/27.x/27.3.4.md diff --git a/changes/27.3.5.md b/changes/archives/27.x/27.3.5.md similarity index 88% rename from changes/27.3.5.md rename to changes/archives/27.x/27.3.5.md index 4b01ab5b2f..02001afe2a 100644 --- a/changes/27.3.5.md +++ b/changes/archives/27.x/27.3.5.md @@ -4,6 +4,6 @@ * Improve crossbar position of GREEK SMALL LETTER DIGAMMA (`U+03DD`) and add a middle serif under slab. * Refine Greek Capital Sho (U+03F7) glyph (#2079). * \[Experimental\] Add a font feature for texture control (#2081). - - Currently only available through custom builds with `build-texture-feature = true`. + - Currently only available through custom builds with `buildTextureFeature = true`. * Make SYMBOL FOR DELETE FORM TWO (`U+2425`) narrow by default, align with other Control Pictures characters (#2084). * Make APL FUNCTIONAL SYMBOL CIRCLE STAR (`U+235F`) always be five-pointed and upright, to align its pentagram history (#2083). diff --git a/changes/archives/3.x/3.0.0.md b/changes/archives/3.x/3.0.0.md index 4a7b1d2126..4ed3a9989b 100644 --- a/changes/archives/3.x/3.0.0.md +++ b/changes/archives/3.x/3.0.0.md @@ -38,7 +38,7 @@ * Add reverse-slashed zero (#438). * Add U+1F8B0 and U+1F8B1 (#459). * Fixed broken shape around `srtail`, `Sswash` and `sswash`. - * Fix `no-cv-ss` building (#460). + * Fix `noCvSs` building (#460). * Retrocomputing symbols are now defaults to half-width. * Made variant selectors work for turned letters. * Make `ligset-dlig` usable from custom build (#463). diff --git a/changes/archives/9.x/9.0.0.md b/changes/archives/9.x/9.0.0.md index 6efa481371..8a1805de63 100644 --- a/changes/archives/9.x/9.0.0.md +++ b/changes/archives/9.x/9.0.0.md @@ -1,4 +1,4 @@ - * \[**Breaking**\]: Add support for expression-style metric override. The old `[metric-override.multiplies]` and `[metric-override.adds]` are no longer supported (#1181). + * \[**Breaking**\]: Add support for expression-style metric override. The old `[metricOverride.multiplies]` and `[metricOverride.adds]` are no longer supported (#1181). * Fix motion-serifed N's broken shape (#1170). * Fix bar-serif overlapping in Latin Small H-bar (`U+0127`) and Cyrillic Small Dje (`U+0452`) in Sans subfamily's with-serif variants (#1171). * Add flat-boundary brace shape (#1172). @@ -6,4 +6,4 @@ * Make dot size, period size and accent size / placement configurable (#1169, #1176). * Make variants of `0` apply to APL Functional Symbol Zilde (`U+236C`) and Circled Zero with Slash (`U+1F10D`) (#1178). * Add enclosed sans-serif digits. - * Fix italic derived letters regression in 8.0. \ No newline at end of file + * Fix italic derived letters regression in 8.0. diff --git a/doc/PACKAGE-LIST.md b/doc/PACKAGE-LIST.md index 83f7090694..1e67d095dc 100644 --- a/doc/PACKAGE-LIST.md +++ b/doc/PACKAGE-LIST.md @@ -1,4 +1,4 @@ -# Package list of Release 27.3.5 +# Package list of Release 28.0.0-alpha.1 ## Prebuilt Packages Iosevka provides a large variety of variants. Prebuilt variants are listed below. For all Monospace variants' packages, it will contain three _spacing variants_. You can either download the package containing all the spacing variants (recommended), or cherry-pick the variant with specific spacing. @@ -19,145 +19,145 @@ Iosevka provides various packaging formats, here is the list of them: - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 IosevkaMonospace, DefaultSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ IosevkaDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka TermTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka FixedFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SlabMonospace, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka CurlyMonospace, Curly StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka CurlyDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term CurlyTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed CurlyFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka Curly SlabMonospace, Curly Style, Slab-serifSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka Curly SlabDefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term Curly SlabTerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed Curly SlabFixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS01Monospace, Andale Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS01DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS01TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS01FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS02Monospace, Anonymous Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS02DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS02TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS02FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS03Monospace, Consolas StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS03DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS03TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS03FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS04Monospace, Menlo StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS04DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS04TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS04FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS05Monospace, Fira Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS05DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS05TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS05FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS06Monospace, Liberation Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS06DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS06TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS06FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS07Monospace, Monaco StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS07DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS07TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS07FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS08Monospace, Pragmata Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS08DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS08TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS08FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS09Monospace, Source Code Pro StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS09DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS09TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS09FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS10Monospace, Envy Code R StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS10DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS10TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS10FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS11Monospace, X Windows Fixed StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS11DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS11TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS11FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS12Monospace, Ubuntu Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS12DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS12TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS12FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS13Monospace, Lucida StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS13DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS13TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS13FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS14Monospace, JetBrains Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS14DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS14TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS14FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS15Monospace, IBM Plex Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS15DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS15TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS15FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS16Monospace, PT Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS16DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS16TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS16FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS17Monospace, Recursive Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS17DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS17TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS17FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka SS18Monospace, Input Mono StyleSuper TTCTTC 
  └ Sub-packagesSpacingLigaturesDownloads
    ├ Iosevka SS18DefaultYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    ├ Iosevka Term SS18TerminalYesSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
    └ Iosevka Fixed SS18FixedNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka AileQuasi-proportional, Sans-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka AileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
📦 Iosevka EtoileQuasi-proportional, Slab-serif 
  └ Sub-packagesSpacingLigaturesDownloads
    └ Iosevka EtoileDefaultNoSuper TTCTTCTTF (Unhinted)WebFont (Unhinted)
diff --git a/doc/character-variants.md b/doc/character-variants.md index 890b98db04..a0dad70325 100644 --- a/doc/character-variants.md +++ b/doc/character-variants.md @@ -323,12 +323,12 @@ - - - + + + @@ -419,13 +419,13 @@ + + + + + - - - - - 1 @@ -442,18 +442,18 @@ 12 - - - - - - - - + + + + + + + + 13 @@ -470,7 +470,7 @@ 24 - + @@ -740,13 +740,13 @@ + + + + + - - - - - 1 @@ -763,14 +763,24 @@ 12 + + + + + - + 13 14 - +15 +16 +17 +18 +19 + cv27 @@ -850,16 +860,16 @@ cv31 - - - - - - + + + + + + 1 @@ -876,12 +886,12 @@ 12 - - + + + + - - @@ -1400,17 +1410,17 @@ cv44 - - - - - - - + + + + + - - + + + + 1 @@ -1427,17 +1437,17 @@ 12 - - - - - - + + - - - + + + + + + + @@ -1716,12 +1726,12 @@ - - - - - - + + + + + + 1 @@ -1738,18 +1748,18 @@ 12 - - - + + + + + + + + + - - - - - - 13 @@ -1766,9 +1776,9 @@ 24 - - - + + + @@ -2024,9 +2034,9 @@ cv61 + - @@ -2103,11 +2113,11 @@ cv65 + - @@ -2330,12 +2340,12 @@ - - - + + + @@ -2376,7 +2386,7 @@ -VXAA +cv76 @@ -2397,7 +2407,7 @@ -cv76 +cv77 @@ -2444,7 +2454,7 @@ -VXAB +cv78 @@ -2491,15 +2501,15 @@ -cv77 +cv79 - + - + @@ -2514,7 +2524,7 @@ -cv78 +cv80 @@ -2525,7 +2535,7 @@ -cv79 +cv81 @@ -2538,7 +2548,7 @@ -cv80 +cv82 @@ -2557,19 +2567,19 @@ -cv81 +cv83 - - - - - - + + + + + + 1 @@ -2586,9 +2596,9 @@ 12 - - - + + + @@ -2604,19 +2614,19 @@ -cv82 +cv84 - - - - - - + + + + + + 1 @@ -2633,18 +2643,18 @@ 12 - - - - - - - - - - - - + + + + + + + + + + + + 13 @@ -2661,12 +2671,12 @@ 24 - - - - - - + + + + + + @@ -2689,7 +2699,7 @@ 36 -cv83 +cv85 @@ -2820,7 +2830,7 @@ -cv84 +cv86 @@ -2845,7 +2855,7 @@ -cv85 +cv87 @@ -2856,7 +2866,7 @@ -cv86 +cv88 @@ -2867,7 +2877,7 @@ -cv87 +cv89 @@ -2886,10 +2896,10 @@ -cv88 +cv90 - + @@ -2901,7 +2911,7 @@ -cv89 +cv91 @@ -2914,7 +2924,7 @@ -cv90 +cv92 @@ -2943,7 +2953,7 @@ 12 -cv91 +cv93 @@ -2956,7 +2966,7 @@ -cv92 +cv94 @@ -2969,7 +2979,7 @@ -cv93 +cv95 @@ -2980,7 +2990,7 @@ -cv94 +cv96 @@ -2989,7 +2999,7 @@ 2 -cv95 +cv97 @@ -3000,7 +3010,7 @@ -cv96 +cv98 @@ -3029,7 +3039,7 @@ 12 -cv97 +cv99 @@ -3042,7 +3052,7 @@ -cv98 +VSAA @@ -3055,7 +3065,31 @@ -cv99 +VSAB + + + + + + +1 +2 +3 + + + +VSAC + + + + + +1 +2 + + + +VSAD @@ -3068,7 +3102,7 @@ -VSAA +VSAE @@ -3081,7 +3115,7 @@ -VSAB +VSAF @@ -3092,7 +3126,7 @@ -VSAC +VSAG @@ -3115,7 +3149,7 @@ -VSAD +VSAH @@ -3138,7 +3172,7 @@ -VSAE +VSAI @@ -3163,7 +3197,7 @@ -VSAF +VSAJ @@ -3182,7 +3216,26 @@ -VSAG +VSAK + + + + + + + + + +1 +2 +3 +4 +5 +6 + + + +VSAL @@ -3197,7 +3250,7 @@ -VSAH +VSAM @@ -3208,31 +3261,7 @@ -VSAI - - - - - -1 -2 - - - -VSAJ - - - - - - -1 -2 -3 - - - -VSAK +VSAN @@ -3245,7 +3274,7 @@ -VSAL +VSAO @@ -3256,26 +3285,7 @@ -VSAM - - - - - - - - - -1 -2 -3 -4 -5 -6 - - - -VSAN +VSAP @@ -3286,7 +3296,7 @@ -VSAO +VSAQ diff --git a/doc/custom-build.md b/doc/custom-build.md index 9eeb2969a7..534209d4c1 100644 --- a/doc/custom-build.md +++ b/doc/custom-build.md @@ -63,7 +63,7 @@ To create a custom build, you need: ### Configuring Custom Build -Configuration of build plans are organized under `[buildPlans.]` sections in the `private-build-plans.toml`. You can use [the Customizer](https://be5invis.github.io/Iosevka/customizer) to create the build plan, and/or manually edit them, following the instructions below. +Configuration of build plans are organized under `[buildPlans.]` sections in the `private-build-plans.toml`. You can use [the Customizer](https://be5invis.github.io/Iosevka/customizer) to create the build plan, and/or manually edit them, following the instructions below. It is recommended to use PascalCase in the plan names. Inside the plan, top-level properties include: @@ -85,12 +85,21 @@ Inside the plan, top-level properties include: * `serifs`: Optional, String, configures style of serifs. - When set to `slab`, the font will be converted into slab-serif. - Otherwise the font will be sans-serif. -* `no-cv-ss`: Optional, Boolean, disables `cv##` and `ss##` OpenType features. -* `no-ligation`: Optional, Boolean, disables ligations. -* `export-glyph-names`: Optional, Boolean, whether to export glyph names into the fonts. Setting this to `true` will increase file footprint, however this is necessary for ligature support in [Kitty](https://sw.kovidgoyal.net/kitty/). -* `webfont-formats`: Optional, Array of String. Controls the formats needed to be exported into the webfont CSS. Valid options are `'ttf'` and `'woff2'`, or including both. - -Build plan could have 5 optional subsections: `ligations`, `variants`, `weights`, `widths` and `slopes`. +* `noCvSs`: Optional, Boolean, disables `cv##` and `ss##` OpenType features. +* `noLigation`: Optional, Boolean, disables ligations. +* `exportGlyphNames`: Optional, Boolean, whether to export glyph names into the fonts. Setting this to `true` will increase file footprint, however this is necessary for ligature support in [Kitty](https://sw.kovidgoyal.net/kitty/). +* `webfontFormats`: Optional, Array of String. Controls the formats needed to be exported into the webfont CSS. Valid options are `'ttf'` and `'woff2'`, or including both. +* `buildTextureFeature`: Optional, Boolean, whether to build the `TXTR` feature for cross-letter texture adjustments. Defaults to false. + +Build plan could have 8 optional subsections: +* `ligations` +* `variants` +* `weights` +* `widths` +* `slopes` +* `compatibilityLigatures` +* `excludeChars` +* `metricOverride` #### Configuring Ligations @@ -269,7 +278,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `L`:
capital-l = 'serifless', cv12 = 1
Serifless L (default for Sans)
capital-l = 'motion-serifed', cv12 = 2
Standard L with motion serif at bottom right
capital-l = 'serifed', cv12 = 3
L with serifs (default for Slab)
- Styles for `M`: -
capital-m = 'hanging-serifless', cv13 = 1
M with middle being hanging off baseline; without serifs (default for Sans)
capital-m = 'hanging-motion-serifed', cv13 = 2
M with middle being hanging off baseline, and motion serifs
capital-m = 'hanging-serifed', cv13 = 3
M with middle being hanging off baseline, and serifs (default for Slab)
capital-m = 'slanted-sides-hanging-serifless', cv13 = 4
M with slanted sides, and middle being hanging off baseline; without serifs
capital-m = 'slanted-sides-hanging-motion-serifed', cv13 = 5
M with slanted sides, middle being hanging off baseline, and motion serifs
capital-m = 'slanted-sides-hanging-serifed', cv13 = 6
M with slanted sides, middle being hanging off baseline, and serifs
capital-m = 'flat-bottom-serifless', cv13 = 7
M with middle aligned to baseline; without serifs
capital-m = 'flat-bottom-motion-serifed', cv13 = 8
M with middle aligned to baseline, and motion serifs
capital-m = 'flat-bottom-serifed', cv13 = 9
M with middle aligned to baseline, and serifs
capital-m = 'slanted-sides-flat-bottom-serifless', cv13 = 10
M with slanted sides, and middle aligned to baseline; without serifs
capital-m = 'slanted-sides-flat-bottom-motion-serifed', cv13 = 11
M with slanted sides, middle aligned to baseline, and motion serifs
capital-m = 'slanted-sides-flat-bottom-serifed', cv13 = 12
M with slanted sides, middle aligned to baseline, and serifs
+
capital-m = 'hanging-serifless', cv13 = 1
M with middle being hanging off baseline; without serifs (default for Sans)
capital-m = 'hanging-motion-serifed', cv13 = 2
M with middle being hanging off baseline, and motion serifs
capital-m = 'hanging-serifed', cv13 = 3
M with middle being hanging off baseline, and serifs (default for Slab)
capital-m = 'flat-bottom-serifless', cv13 = 4
M with middle aligned to baseline; without serifs
capital-m = 'flat-bottom-motion-serifed', cv13 = 5
M with middle aligned to baseline, and motion serifs
capital-m = 'flat-bottom-serifed', cv13 = 6
M with middle aligned to baseline, and serifs
capital-m = 'slanted-sides-hanging-serifless', cv13 = 7
M with slanted sides, and middle being hanging off baseline; without serifs
capital-m = 'slanted-sides-hanging-motion-serifed', cv13 = 8
M with slanted sides, middle being hanging off baseline, and motion serifs
capital-m = 'slanted-sides-hanging-serifed', cv13 = 9
M with slanted sides, middle being hanging off baseline, and serifs
capital-m = 'slanted-sides-flat-bottom-serifless', cv13 = 10
M with slanted sides, and middle aligned to baseline; without serifs
capital-m = 'slanted-sides-flat-bottom-motion-serifed', cv13 = 11
M with slanted sides, middle aligned to baseline, and motion serifs
capital-m = 'slanted-sides-flat-bottom-serifed', cv13 = 12
M with slanted sides, middle aligned to baseline, and serifs
- Styles for `N`:
capital-n = 'standard-serifless', cv14 = 1
N with standard shape; without serifs (default for Sans)
capital-n = 'standard-motion-serifed', cv14 = 2
N with standard shape, and motion serifs
capital-n = 'standard-serifed', cv14 = 3
N with standard shape, and serifs (default for Slab)
capital-n = 'asymmetric-serifless', cv14 = 4
N with asymmetric shape; without serifs
capital-n = 'asymmetric-motion-serifed', cv14 = 5
N with asymmetric shape, and motion serifs
capital-n = 'asymmetric-serifed', cv14 = 6
N with asymmetric shape, and serifs
- Styles for `P`: @@ -277,7 +286,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `Q`:
capital-q = 'curly-tailed', cv16 = 1
Q with a curly tail (default)
capital-q = 'crossing-curly-tailed', cv16 = 2
Q with a curly tail crossing the ring
capital-q = 'straight', cv16 = 3
Q with a straight tail like in the old versions
capital-q = 'crossing', cv16 = 4
Q with a tail crossing the ring
capital-q = 'crossing-baseline', cv16 = 5
Q with a tail above baseline crossing the ring
capital-q = 'vertical-crossing', cv16 = 6
Q with a vertical tail crossing the ring
capital-q = 'horizontal-tailed', cv16 = 7
Q with a horizontal tail, like Univers
capital-q = 'detached-tailed', cv16 = 8
Q with a oblique tail detached
capital-q = 'detached-bend-tailed', cv16 = 9
Q with a bend tail detached
capital-q = 'open-swash', cv16 = 10
Q with open contour and swash-y shape
- Styles for `R`: -
capital-r = 'straight-serifless', cv17 = 1
R with straight leg; without serifs (default for Sans)
capital-r = 'straight-top-left-serifed', cv17 = 2
R with straight leg, and serifs at top-left
capital-r = 'straight-bottom-right-serifed', cv17 = 3
R with straight leg, and serifs at bottom-right
capital-r = 'straight-top-left-and-bottom-right-serifed', cv17 = 4
R with straight leg, and serifs at bottom-right
capital-r = 'straight-serifed', cv17 = 5
R with straight leg, and serifs (default for Slab)
capital-r = 'curly-serifless', cv17 = 6
R with curly leg; without serifs
capital-r = 'curly-top-left-serifed', cv17 = 7
R with curly leg, and serifs at top-left
capital-r = 'curly-bottom-right-serifed', cv17 = 8
R with curly leg, and serifs at bottom-right
capital-r = 'curly-top-left-and-bottom-right-serifed', cv17 = 9
R with curly leg, and serifs at bottom-right
capital-r = 'curly-serifed', cv17 = 10
R with curly leg, and serifs
capital-r = 'standing-serifless', cv17 = 11
R with standing leg (like Helvetica); without serifs
capital-r = 'standing-top-left-serifed', cv17 = 12
R with standing leg (like Helvetica), and serifs at top-left
capital-r = 'standing-bottom-right-serifed', cv17 = 13
R with standing leg (like Helvetica), and serifs at bottom-right
capital-r = 'standing-top-left-and-bottom-right-serifed', cv17 = 14
R with standing leg (like Helvetica), and serifs at bottom-right
capital-r = 'standing-serifed', cv17 = 15
R with standing leg (like Helvetica), and serifs
capital-r = 'straight-open-serifless', cv17 = 16
R with straight leg, and open contour; without serifs
capital-r = 'straight-open-top-left-serifed', cv17 = 17
R with straight leg, open contour, and serifs at top-left
capital-r = 'straight-open-bottom-right-serifed', cv17 = 18
R with straight leg, open contour, and serifs at bottom-right
capital-r = 'straight-open-top-left-and-bottom-right-serifed', cv17 = 19
R with straight leg, open contour, and serifs at bottom-right
capital-r = 'straight-open-serifed', cv17 = 20
R with straight leg, open contour, and serifs
capital-r = 'curly-open-serifless', cv17 = 21
R with curly leg, and open contour; without serifs
capital-r = 'curly-open-top-left-serifed', cv17 = 22
R with curly leg, open contour, and serifs at top-left
capital-r = 'curly-open-bottom-right-serifed', cv17 = 23
R with curly leg, open contour, and serifs at bottom-right
capital-r = 'curly-open-top-left-and-bottom-right-serifed', cv17 = 24
R with curly leg, open contour, and serifs at bottom-right
capital-r = 'curly-open-serifed', cv17 = 25
R with curly leg, open contour, and serifs
capital-r = 'standing-open-serifless', cv17 = 26
R with standing leg (like Helvetica), and open contour; without serifs
capital-r = 'standing-open-top-left-serifed', cv17 = 27
R with standing leg (like Helvetica), open contour, and serifs at top-left
capital-r = 'standing-open-bottom-right-serifed', cv17 = 28
R with standing leg (like Helvetica), open contour, and serifs at bottom-right
capital-r = 'standing-open-top-left-and-bottom-right-serifed', cv17 = 29
R with standing leg (like Helvetica), open contour, and serifs at bottom-right
capital-r = 'standing-open-serifed', cv17 = 30
R with standing leg (like Helvetica), open contour, and serifs
+
capital-r = 'straight-serifless', cv17 = 1
R with straight leg; without serifs (default for Sans)
capital-r = 'straight-top-left-serifed', cv17 = 2
R with straight leg, and serifs at top-left
capital-r = 'straight-bottom-right-serifed', cv17 = 3
R with straight leg, and serifs at bottom-right
capital-r = 'straight-top-left-and-bottom-right-serifed', cv17 = 4
R with straight leg, and serifs at bottom-right
capital-r = 'straight-serifed', cv17 = 5
R with straight leg, and serifs (default for Slab)
capital-r = 'straight-open-serifless', cv17 = 6
R with straight leg, and open contour; without serifs
capital-r = 'straight-open-top-left-serifed', cv17 = 7
R with straight leg, open contour, and serifs at top-left
capital-r = 'straight-open-bottom-right-serifed', cv17 = 8
R with straight leg, open contour, and serifs at bottom-right
capital-r = 'straight-open-top-left-and-bottom-right-serifed', cv17 = 9
R with straight leg, open contour, and serifs at bottom-right
capital-r = 'straight-open-serifed', cv17 = 10
R with straight leg, open contour, and serifs
capital-r = 'curly-serifless', cv17 = 11
R with curly leg; without serifs
capital-r = 'curly-top-left-serifed', cv17 = 12
R with curly leg, and serifs at top-left
capital-r = 'curly-bottom-right-serifed', cv17 = 13
R with curly leg, and serifs at bottom-right
capital-r = 'curly-top-left-and-bottom-right-serifed', cv17 = 14
R with curly leg, and serifs at bottom-right
capital-r = 'curly-serifed', cv17 = 15
R with curly leg, and serifs
capital-r = 'curly-open-serifless', cv17 = 16
R with curly leg, and open contour; without serifs
capital-r = 'curly-open-top-left-serifed', cv17 = 17
R with curly leg, open contour, and serifs at top-left
capital-r = 'curly-open-bottom-right-serifed', cv17 = 18
R with curly leg, open contour, and serifs at bottom-right
capital-r = 'curly-open-top-left-and-bottom-right-serifed', cv17 = 19
R with curly leg, open contour, and serifs at bottom-right
capital-r = 'curly-open-serifed', cv17 = 20
R with curly leg, open contour, and serifs
capital-r = 'standing-serifless', cv17 = 21
R with standing leg (like Helvetica); without serifs
capital-r = 'standing-top-left-serifed', cv17 = 22
R with standing leg (like Helvetica), and serifs at top-left
capital-r = 'standing-bottom-right-serifed', cv17 = 23
R with standing leg (like Helvetica), and serifs at bottom-right
capital-r = 'standing-top-left-and-bottom-right-serifed', cv17 = 24
R with standing leg (like Helvetica), and serifs at bottom-right
capital-r = 'standing-serifed', cv17 = 25
R with standing leg (like Helvetica), and serifs
capital-r = 'standing-open-serifless', cv17 = 26
R with standing leg (like Helvetica), and open contour; without serifs
capital-r = 'standing-open-top-left-serifed', cv17 = 27
R with standing leg (like Helvetica), open contour, and serifs at top-left
capital-r = 'standing-open-bottom-right-serifed', cv17 = 28
R with standing leg (like Helvetica), open contour, and serifs at bottom-right
capital-r = 'standing-open-top-left-and-bottom-right-serifed', cv17 = 29
R with standing leg (like Helvetica), open contour, and serifs at bottom-right
capital-r = 'standing-open-serifed', cv17 = 30
R with standing leg (like Helvetica), open contour, and serifs
- Styles for `S`:
capital-s = 'serifless', cv18 = 1
Serifless S (default for Sans)
capital-s = 'unilateral-serifed', cv18 = 2
S with single serif at top
capital-s = 'bilateral-serifed', cv18 = 3
S with serifs at both end (default for Slab)
capital-s = 'unilateral-inward-serifed', cv18 = 4
S with single inward serif at top
capital-s = 'bilateral-inward-serifed', cv18 = 5
S with inward serifs at both end
- Styles for `T`: @@ -295,7 +304,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `Z`:
capital-z = 'straight-serifless', cv25 = 1
Z with straight body shape; without serifs (default for Sans)
capital-z = 'straight-serifless-with-crossbar', cv25 = 2
Z with straight body shape, and a diagonal crossbar; without serifs
capital-z = 'straight-serifless-with-horizontal-crossbar', cv25 = 3
Z with straight body shape, and a horizontal crossbar; without serifs
capital-z = 'straight-serifed', cv25 = 4
Z with straight body shape, and serifs (default for Slab)
capital-z = 'straight-serifed-with-crossbar', cv25 = 5
Z with straight body shape, serifs, and a diagonal crossbar
capital-z = 'straight-serifed-with-horizontal-crossbar', cv25 = 6
Z with straight body shape, serifs, and a horizontal crossbar
capital-z = 'straight-bottom-serifed', cv25 = 7
Z with straight body shape, and serifs at bottom
capital-z = 'straight-bottom-serifed-with-crossbar', cv25 = 8
Z with straight body shape, serifs at bottom, and a diagonal crossbar
capital-z = 'straight-bottom-serifed-with-horizontal-crossbar', cv25 = 9
Z with straight body shape, serifs at bottom, and a horizontal crossbar
capital-z = 'straight-top-serifed', cv25 = 10
Z with straight body shape, and serifs at top
capital-z = 'straight-top-serifed-with-crossbar', cv25 = 11
Z with straight body shape, serifs at top, and a diagonal crossbar
capital-z = 'straight-top-serifed-with-horizontal-crossbar', cv25 = 12
Z with straight body shape, serifs at top, and a horizontal crossbar
capital-z = 'curly-serifless', cv25 = 13
Z with curly body shape; without serifs
capital-z = 'curly-serifless-with-crossbar', cv25 = 14
Z with curly body shape, and a diagonal crossbar; without serifs
capital-z = 'curly-serifless-with-horizontal-crossbar', cv25 = 15
Z with curly body shape, and a horizontal crossbar; without serifs
capital-z = 'curly-serifed', cv25 = 16
Z with curly body shape, and serifs
capital-z = 'curly-serifed-with-crossbar', cv25 = 17
Z with curly body shape, serifs, and a diagonal crossbar
capital-z = 'curly-serifed-with-horizontal-crossbar', cv25 = 18
Z with curly body shape, serifs, and a horizontal crossbar
capital-z = 'curly-bottom-serifed', cv25 = 19
Z with curly body shape, and serifs at bottom
capital-z = 'curly-bottom-serifed-with-crossbar', cv25 = 20
Z with curly body shape, serifs at bottom, and a diagonal crossbar
capital-z = 'curly-bottom-serifed-with-horizontal-crossbar', cv25 = 21
Z with curly body shape, serifs at bottom, and a horizontal crossbar
capital-z = 'curly-top-serifed', cv25 = 22
Z with curly body shape, and serifs at top
capital-z = 'curly-top-serifed-with-crossbar', cv25 = 23
Z with curly body shape, serifs at top, and a diagonal crossbar
capital-z = 'curly-top-serifed-with-horizontal-crossbar', cv25 = 24
Z with curly body shape, serifs at top, and a horizontal crossbar
capital-z = 'cursive', cv25 = 25
Z with cursive body shape
capital-z = 'cursive-with-crossbar', cv25 = 26
Z with cursive body shape, and a diagonal crossbar
capital-z = 'cursive-with-horizontal-crossbar', cv25 = 27
Z with cursive body shape, and a horizontal crossbar
- Styles for `a`: -
a = 'double-storey-serifless', cv26 = 1
a with double-storey body; without serif at terminal (default for Sans Upright)
a = 'double-storey-tailed', cv26 = 2
a with double-storey body, and curly tail
a = 'double-storey-toothless-corner', cv26 = 3
a with double-storey body, and toothless (cornered bottom-right)
a = 'double-storey-toothless-rounded', cv26 = 4
a with double-storey body, and toothless (rounded bottom-right)
a = 'double-storey-serifed', cv26 = 5
a with double-storey body, and serif at terminal (default for Slab Upright)
a = 'single-storey-serifless', cv26 = 6
a with single-storey body; without serif at terminal
a = 'single-storey-tailed', cv26 = 7
a with single-storey body, and curly tail (default for Italic)
a = 'single-storey-serifed', cv26 = 8
a with single-storey body, and serif at terminal
a = 'single-storey-earless-corner-serifless', cv26 = 9
a with single-storey body, and earless (cornered top-right); without serif at terminal
a = 'single-storey-earless-corner-tailed', cv26 = 10
a with single-storey body, earless (cornered top-right), and curly tail
a = 'single-storey-earless-corner-serifed', cv26 = 11
a with single-storey body, earless (cornered top-right), and serif at terminal
a = 'single-storey-earless-rounded-serifless', cv26 = 12
a with single-storey body, and earless (rounded top-right); without serif at terminal
a = 'single-storey-earless-rounded-tailed', cv26 = 13
a with single-storey body, earless (rounded top-right), and curly tail
a = 'single-storey-earless-rounded-serifed', cv26 = 14
a with single-storey body, earless (rounded top-right), and serif at terminal
+
a = 'double-storey-serifless', cv26 = 1
a with double-storey body, and serifless hook; without serif at terminal (default for Sans Upright)
a = 'double-storey-tailed', cv26 = 2
a with double-storey body, serifless hook, and curly tail
a = 'double-storey-toothless-corner', cv26 = 3
a with double-storey body, serifless hook, and toothless (cornered bottom-right)
a = 'double-storey-toothless-rounded', cv26 = 4
a with double-storey body, serifless hook, and toothless (rounded bottom-right)
a = 'double-storey-serifed', cv26 = 5
a with double-storey body, serifless hook, and serif at terminal (default for Slab Upright)
a = 'double-storey-hook-inward-serifed-serifless', cv26 = 6
a with double-storey body, and serifed hook; without serif at terminal
a = 'double-storey-hook-inward-serifed-tailed', cv26 = 7
a with double-storey body, serifed hook, and curly tail
a = 'double-storey-hook-inward-serifed-toothless-corner', cv26 = 8
a with double-storey body, serifed hook, and toothless (cornered bottom-right)
a = 'double-storey-hook-inward-serifed-toothless-rounded', cv26 = 9
a with double-storey body, serifed hook, and toothless (rounded bottom-right)
a = 'double-storey-hook-inward-serifed-serifed', cv26 = 10
a with double-storey body, serifed hook, and serif at terminal
a = 'single-storey-serifless', cv26 = 11
a with single-storey body; without serif at terminal
a = 'single-storey-tailed', cv26 = 12
a with single-storey body, and curly tail (default for Italic)
a = 'single-storey-serifed', cv26 = 13
a with single-storey body, and serif at terminal
a = 'single-storey-earless-corner-serifless', cv26 = 14
a with single-storey body, and earless (cornered top-right); without serif at terminal
a = 'single-storey-earless-corner-tailed', cv26 = 15
a with single-storey body, earless (cornered top-right), and curly tail
a = 'single-storey-earless-corner-serifed', cv26 = 16
a with single-storey body, earless (cornered top-right), and serif at terminal
a = 'single-storey-earless-rounded-serifless', cv26 = 17
a with single-storey body, and earless (rounded top-right); without serif at terminal
a = 'single-storey-earless-rounded-tailed', cv26 = 18
a with single-storey body, earless (rounded top-right), and curly tail
a = 'single-storey-earless-rounded-serifed', cv26 = 19
a with single-storey body, earless (rounded top-right), and serif at terminal
- Styles for `b`:
b = 'toothed-serifless', cv27 = 1
b with toothed shape; without serifs (default for Sans)
b = 'toothed-motion-serifed', cv27 = 2
b with toothed shape, and motion serifs
b = 'toothed-serifed', cv27 = 3
b with toothed shape, and serifs (default for Slab)
b = 'toothless-corner-serifless', cv27 = 4
b with toothless (cornered) shape; without serifs
b = 'toothless-corner-serifed', cv27 = 5
b with toothless (cornered) shape, and serifs
b = 'toothless-rounded-serifless', cv27 = 6
b with toothless (rounded) shape; without serifs
b = 'toothless-rounded-serifed', cv27 = 7
b with toothless (rounded) shape, and serifs
- Styles for `c`: @@ -305,7 +314,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `e`:
e = 'flat-crossbar', cv30 = 1
e with flat crossbar (default for Upright)
e = 'rounded', cv30 = 2
e with more rounded shape (default for Italic)
- Styles for `f`: -
f = 'serifless', cv31 = 1
f without bottom serif, hook or extension (default for Sans Upright)
f = 'serifless-crossbar-at-x-height', cv31 = 2
f without bottom serif, hook or extension; with crossbar at X-height
f = 'flat-hook-serifless', cv31 = 3
f without bottom serif, hook or extension; with flat top hook
f = 'flat-hook-serifless-crossbar-at-x-height', cv31 = 4
f without bottom serif, hook or extension; with flat top hook, and crossbar at X-height
f = 'serifed', cv31 = 5
f with bottom serif (default for Slab Upright)
f = 'serifed-crossbar-at-x-height', cv31 = 6
f with bottom serif, and crossbar at X-height
f = 'flat-hook-serifed', cv31 = 7
f with flat top hook, and bottom serif
f = 'flat-hook-serifed-crossbar-at-x-height', cv31 = 8
f with flat top hook, bottom serif, and crossbar at X-height
f = 'extended', cv31 = 9
f with descending extension
f = 'extended-crossbar-at-x-height', cv31 = 10
f with descending extension, and crossbar at X-height
f = 'flat-hook-extended', cv31 = 11
f with flat top hook, and descending extension
f = 'flat-hook-extended-crossbar-at-x-height', cv31 = 12
f with flat top hook, descending extension, and crossbar at X-height
f = 'tailed', cv31 = 13
f with descending bottom hook
f = 'tailed-crossbar-at-x-height', cv31 = 14
f with descending bottom hook, and crossbar at X-height
f = 'flat-hook-tailed', cv31 = 15
f with flat top hook, and descending bottom hook (default for Italic)
f = 'flat-hook-tailed-crossbar-at-x-height', cv31 = 16
f with flat top hook, descending bottom hook, and crossbar at X-height
f = 'diagonal-tailed', cv31 = 17
f with diagonal tail
f = 'diagonal-tailed-crossbar-at-x-height', cv31 = 18
f with diagonal tail, and crossbar at X-height
f = 'flat-hook-diagonal-tailed', cv31 = 19
f with flat top hook, and diagonal tail
f = 'flat-hook-diagonal-tailed-crossbar-at-x-height', cv31 = 20
f with flat top hook, diagonal tail, and crossbar at X-height
+
f = 'serifless', cv31 = 1
f without bottom serif, hook or extension (default for Sans Upright)
f = 'serifless-crossbar-at-x-height', cv31 = 2
f without bottom serif, hook or extension; with crossbar at X-height
f = 'serifed', cv31 = 3
f with bottom serif (default for Slab Upright)
f = 'serifed-crossbar-at-x-height', cv31 = 4
f with bottom serif, and crossbar at X-height
f = 'extended', cv31 = 5
f with descending extension
f = 'extended-crossbar-at-x-height', cv31 = 6
f with descending extension, and crossbar at X-height
f = 'tailed', cv31 = 7
f with descending bottom hook
f = 'tailed-crossbar-at-x-height', cv31 = 8
f with descending bottom hook, and crossbar at X-height
f = 'diagonal-tailed', cv31 = 9
f with diagonal tail
f = 'diagonal-tailed-crossbar-at-x-height', cv31 = 10
f with diagonal tail, and crossbar at X-height
f = 'flat-hook-serifless', cv31 = 11
f with flat top hook; without bottom serif, hook or extension
f = 'flat-hook-serifless-crossbar-at-x-height', cv31 = 12
f with flat top hook, and crossbar at X-height; without bottom serif, hook or extension
f = 'flat-hook-serifed', cv31 = 13
f with flat top hook, and bottom serif
f = 'flat-hook-serifed-crossbar-at-x-height', cv31 = 14
f with flat top hook, bottom serif, and crossbar at X-height
f = 'flat-hook-extended', cv31 = 15
f with flat top hook, and descending extension
f = 'flat-hook-extended-crossbar-at-x-height', cv31 = 16
f with flat top hook, descending extension, and crossbar at X-height
f = 'flat-hook-tailed', cv31 = 17
f with flat top hook, and descending bottom hook (default for Italic)
f = 'flat-hook-tailed-crossbar-at-x-height', cv31 = 18
f with flat top hook, descending bottom hook, and crossbar at X-height
f = 'flat-hook-diagonal-tailed', cv31 = 19
f with flat top hook, and diagonal tail
f = 'flat-hook-diagonal-tailed-crossbar-at-x-height', cv31 = 20
f with flat top hook, diagonal tail, and crossbar at X-height
- Styles for `g`:
g = 'double-storey', cv32 = 1
g with double-storey shape
g = 'double-storey-open', cv32 = 2
g with double-storey shape, and open contour
g = 'single-storey-serifless', cv32 = 3
g with single-storey shape (default for Sans)
g = 'single-storey-serifed', cv32 = 4
g with single-storey shape, and top-right serif (default for Slab)
g = 'single-storey-earless-corner', cv32 = 5
g with single-storey shape, and earless (cornered top-right)
g = 'single-storey-earless-rounded', cv32 = 6
g with single-storey shape, and earless (rounded top-right)
g = 'single-storey-flat-hook-serifless', cv32 = 7
g with single-storey shape, and flat bottom hook
g = 'single-storey-flat-hook-serifed', cv32 = 8
g with single-storey shape, flat bottom hook, and top-right serif
g = 'single-storey-flat-hook-earless-corner', cv32 = 9
g with single-storey shape, flat bottom hook, and earless (cornered top-right)
g = 'single-storey-flat-hook-earless-rounded', cv32 = 10
g with single-storey shape, flat bottom hook, and earless (rounded top-right)
- Styles for `h`: @@ -331,7 +340,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `s`:
s = 'serifless', cv43 = 1
Serifless s (default for Sans)
s = 'unilateral-serifed', cv43 = 2
s with single serif at top
s = 'bilateral-serifed', cv43 = 3
s with serifs at both end (default for Slab Upright)
s = 'unilateral-inward-serifed', cv43 = 4
s with single inward serif at top
s = 'bilateral-inward-serifed', cv43 = 5
s with inward serifs at both end (default for Slab Italic)
- Styles for `t`: -
t = 'bent-hook', cv44 = 1
t with bent hook, and crossbar at both sides of the vertical stem (default)
t = 'flat-hook', cv44 = 2
t with flat hook, and crossbar at both sides of the vertical stem
t = 'diagonal-tailed', cv44 = 3
t with diagonal tail, and crossbar at both sides of the vertical stem
t = 'hookless', cv44 = 4
t with crossbar at both sides of the vertical stem; without hook or tail
t = 'bent-hook-asymmetric', cv44 = 5
t with bent hook, and crossbar at only right side of the vertical stem
t = 'flat-hook-asymmetric', cv44 = 6
t with flat hook, and crossbar at only right side of the vertical stem
t = 'diagonal-tailed-asymmetric', cv44 = 7
t with diagonal tail, and crossbar at only right side of the vertical stem
t = 'hookless-asymmetric', cv44 = 8
t with crossbar at only right side of the vertical stem; without hook or tail
t = 'bent-hook-short-neck', cv44 = 9
t with bent hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'flat-hook-short-neck', cv44 = 10
t with flat hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'diagonal-tailed-short-neck', cv44 = 11
t with diagonal tail, crossbar at both sides of the vertical stem, and a shorter neck
t = 'hookless-short-neck', cv44 = 12
t with crossbar at both sides of the vertical stem, and a shorter neck; without hook or tail
t = 'bent-hook-asymmetric-short-neck', cv44 = 13
t with bent hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'flat-hook-asymmetric-short-neck', cv44 = 14
t with flat hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'diagonal-tailed-asymmetric-short-neck', cv44 = 15
t with diagonal tail, crossbar at only right side of the vertical stem, and a shorter neck
t = 'hookless-asymmetric-short-neck', cv44 = 16
t with crossbar at only right side of the vertical stem, and a shorter neck; without hook or tail
t = 'bent-hook-short-neck2', cv44 = 17
t with bent hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'flat-hook-short-neck2', cv44 = 18
t with flat hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'diagonal-tailed-short-neck2', cv44 = 19
t with diagonal tail, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'hookless-short-neck2', cv44 = 20
t with crossbar at both sides of the vertical stem, and a more shorter neck; without hook or tail
t = 'bent-hook-asymmetric-short-neck2', cv44 = 21
t with bent hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'flat-hook-asymmetric-short-neck2', cv44 = 22
t with flat hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'diagonal-tailed-asymmetric-short-neck2', cv44 = 23
t with diagonal tail, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'hookless-asymmetric-short-neck2', cv44 = 24
t with crossbar at only right side of the vertical stem, and a more shorter neck; without hook or tail
+
t = 'bent-hook', cv44 = 1
t with bent hook, and crossbar at both sides of the vertical stem (default)
t = 'bent-hook-short-neck', cv44 = 2
t with bent hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'bent-hook-short-neck2', cv44 = 3
t with bent hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'bent-hook-asymmetric', cv44 = 4
t with bent hook, and crossbar at only right side of the vertical stem
t = 'bent-hook-asymmetric-short-neck', cv44 = 5
t with bent hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'bent-hook-asymmetric-short-neck2', cv44 = 6
t with bent hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'flat-hook', cv44 = 7
t with flat hook, and crossbar at both sides of the vertical stem
t = 'flat-hook-short-neck', cv44 = 8
t with flat hook, crossbar at both sides of the vertical stem, and a shorter neck
t = 'flat-hook-short-neck2', cv44 = 9
t with flat hook, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'flat-hook-asymmetric', cv44 = 10
t with flat hook, and crossbar at only right side of the vertical stem
t = 'flat-hook-asymmetric-short-neck', cv44 = 11
t with flat hook, crossbar at only right side of the vertical stem, and a shorter neck
t = 'flat-hook-asymmetric-short-neck2', cv44 = 12
t with flat hook, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'diagonal-tailed', cv44 = 13
t with diagonal tail, and crossbar at both sides of the vertical stem
t = 'diagonal-tailed-short-neck', cv44 = 14
t with diagonal tail, crossbar at both sides of the vertical stem, and a shorter neck
t = 'diagonal-tailed-short-neck2', cv44 = 15
t with diagonal tail, crossbar at both sides of the vertical stem, and a more shorter neck
t = 'diagonal-tailed-asymmetric', cv44 = 16
t with diagonal tail, and crossbar at only right side of the vertical stem
t = 'diagonal-tailed-asymmetric-short-neck', cv44 = 17
t with diagonal tail, crossbar at only right side of the vertical stem, and a shorter neck
t = 'diagonal-tailed-asymmetric-short-neck2', cv44 = 18
t with diagonal tail, crossbar at only right side of the vertical stem, and a more shorter neck
t = 'hookless', cv44 = 19
t without hook or tail; with crossbar at both sides of the vertical stem
t = 'hookless-short-neck', cv44 = 20
t without hook or tail; with crossbar at both sides of the vertical stem, and a shorter neck
t = 'hookless-short-neck2', cv44 = 21
t without hook or tail; with crossbar at both sides of the vertical stem, and a more shorter neck
t = 'hookless-asymmetric', cv44 = 22
t without hook or tail; with crossbar at only right side of the vertical stem
t = 'hookless-asymmetric-short-neck', cv44 = 23
t without hook or tail; with crossbar at only right side of the vertical stem, and a shorter neck
t = 'hookless-asymmetric-short-neck2', cv44 = 24
t without hook or tail; with crossbar at only right side of the vertical stem, and a more shorter neck
- Styles for `u`:
u = 'toothed-serifless', cv45 = 1
u with toothed shape; without serifs (default for Sans Upright)
u = 'toothed-motion-serifed', cv45 = 2
u with toothed shape, and motion serifs at top-left and bottom-right
u = 'toothed-bottom-right-serifed', cv45 = 3
u with toothed shape, and motion serifs at left side
u = 'toothed-serifed', cv45 = 4
u with toothed shape, and serifs (default for Slab Upright)
u = 'tailed-serifless', cv45 = 5
u with tailed shape; without serifs (default for Sans Italic)
u = 'tailed-motion-serifed', cv45 = 6
u with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
u = 'tailed-serifed', cv45 = 7
u with tailed shape, and serifs
u = 'toothless-corner-serifless', cv45 = 8
u with toothless (corner bottom-right) shape; without serifs
u = 'toothless-corner-motion-serifed', cv45 = 9
u with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
u = 'toothless-corner-serifed', cv45 = 10
u with toothless (corner bottom-right) shape, and serifs
u = 'toothless-rounded-serifless', cv45 = 11
u with toothless (rounded) shape; without serifs
u = 'toothless-rounded-motion-serifed', cv45 = 12
u with toothless (rounded) shape, and motion serifs at top-left and bottom-right
u = 'toothless-rounded-serifed', cv45 = 13
u with toothless (rounded) shape, and serifs
- Styles for `v`: @@ -345,7 +354,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `z`:
z = 'straight-serifless', cv50 = 1
z with straight body shape; without serifs (default for Sans)
z = 'straight-serifless-with-crossbar', cv50 = 2
z with straight body shape, and a diagonal crossbar; without serifs
z = 'straight-serifless-with-horizontal-crossbar', cv50 = 3
z with straight body shape, and a horizontal crossbar; without serifs
z = 'straight-serifed', cv50 = 4
z with straight body shape, and serifs (default for Slab Upright)
z = 'straight-serifed-with-crossbar', cv50 = 5
z with straight body shape, serifs, and a diagonal crossbar
z = 'straight-serifed-with-horizontal-crossbar', cv50 = 6
z with straight body shape, serifs, and a horizontal crossbar
z = 'straight-bottom-serifed', cv50 = 7
z with straight body shape, and serifs at bottom
z = 'straight-bottom-serifed-with-crossbar', cv50 = 8
z with straight body shape, serifs at bottom, and a diagonal crossbar
z = 'straight-bottom-serifed-with-horizontal-crossbar', cv50 = 9
z with straight body shape, serifs at bottom, and a horizontal crossbar
z = 'straight-top-serifed', cv50 = 10
z with straight body shape, and serifs at top
z = 'straight-top-serifed-with-crossbar', cv50 = 11
z with straight body shape, serifs at top, and a diagonal crossbar
z = 'straight-top-serifed-with-horizontal-crossbar', cv50 = 12
z with straight body shape, serifs at top, and a horizontal crossbar
z = 'curly-serifless', cv50 = 13
z with curly body shape; without serifs
z = 'curly-serifless-with-crossbar', cv50 = 14
z with curly body shape, and a diagonal crossbar; without serifs
z = 'curly-serifless-with-horizontal-crossbar', cv50 = 15
z with curly body shape, and a horizontal crossbar; without serifs
z = 'curly-serifed', cv50 = 16
z with curly body shape, and serifs
z = 'curly-serifed-with-crossbar', cv50 = 17
z with curly body shape, serifs, and a diagonal crossbar
z = 'curly-serifed-with-horizontal-crossbar', cv50 = 18
z with curly body shape, serifs, and a horizontal crossbar
z = 'curly-bottom-serifed', cv50 = 19
z with curly body shape, and serifs at bottom
z = 'curly-bottom-serifed-with-crossbar', cv50 = 20
z with curly body shape, serifs at bottom, and a diagonal crossbar
z = 'curly-bottom-serifed-with-horizontal-crossbar', cv50 = 21
z with curly body shape, serifs at bottom, and a horizontal crossbar
z = 'curly-top-serifed', cv50 = 22
z with curly body shape, and serifs at top
z = 'curly-top-serifed-with-crossbar', cv50 = 23
z with curly body shape, serifs at top, and a diagonal crossbar
z = 'curly-top-serifed-with-horizontal-crossbar', cv50 = 24
z with curly body shape, serifs at top, and a horizontal crossbar
z = 'cursive', cv50 = 25
z with cursive body shape (default for Slab Italic)
z = 'cursive-with-crossbar', cv50 = 26
z with cursive body shape, and a diagonal crossbar
z = 'cursive-with-horizontal-crossbar', cv50 = 27
z with cursive body shape, and a horizontal crossbar
- Styles for `ſ` (Long-S): -
long-s = 'bent-hook-serifless', cv51 = 1
Long S (ſ) with bending top hook; without serifs (default for Sans Upright)
long-s = 'bent-hook-middle-serifed', cv51 = 2
Long S (ſ) with bending top hook, and middle serif
long-s = 'bent-hook-middle-serifed-xh', cv51 = 3
Long S (ſ) with bending top hook, and middle serif at x-height
long-s = 'bent-hook-bottom-serifed', cv51 = 4
Long S (ſ) with bending top hook, and bottom serif (default for Slab Upright)
long-s = 'bent-hook-double-serifed', cv51 = 5
Long S (ſ) with bending top hook, and bottom and middle serifs
long-s = 'bent-hook-double-serifed-xh', cv51 = 6
Long S (ſ) with bending top hook, and bottom and middle serifs at x-height
long-s = 'flat-hook-serifless', cv51 = 7
Long S (ſ) with flat top hook; without serifs
long-s = 'flat-hook-middle-serifed', cv51 = 8
Long S (ſ) with flat top hook, and middle serif
long-s = 'flat-hook-middle-serifed-xh', cv51 = 9
Long S (ſ) with flat top hook, and middle serif at x-height
long-s = 'flat-hook-bottom-serifed', cv51 = 10
Long S (ſ) with flat top hook, and bottom serif
long-s = 'flat-hook-double-serifed', cv51 = 11
Long S (ſ) with flat top hook, and bottom and middle serifs
long-s = 'flat-hook-double-serifed-xh', cv51 = 12
Long S (ſ) with flat top hook, and bottom and middle serifs at x-height
long-s = 'bent-hook-descending', cv51 = 13
Long S (ſ) with bending top hook, and terminal descends baseline; without serifs
long-s = 'bent-hook-descending-middle-serifed', cv51 = 14
Long S (ſ) with bending top hook, terminal descends baseline, and middle serif
long-s = 'bent-hook-descending-middle-serifed-xh', cv51 = 15
Long S (ſ) with bending top hook, terminal descends baseline, and middle serif at x-height
long-s = 'flat-hook-descending', cv51 = 16
Long S (ſ) with flat top hook, and terminal descends baseline; without serifs
long-s = 'flat-hook-descending-middle-serifed', cv51 = 17
Long S (ſ) with flat top hook, terminal descends baseline, and middle serif
long-s = 'flat-hook-descending-middle-serifed-xh', cv51 = 18
Long S (ſ) with flat top hook, terminal descends baseline, and middle serif at x-height
long-s = 'bent-hook-tailed', cv51 = 19
Long S (ſ) with bending top hook, and terminal has a tail; without serifs
long-s = 'bent-hook-tailed-middle-serifed', cv51 = 20
Long S (ſ) with bending top hook, terminal has a tail, and middle serif
long-s = 'bent-hook-tailed-middle-serifed-xh', cv51 = 21
Long S (ſ) with bending top hook, terminal has a tail, and middle serif at x-height
long-s = 'flat-hook-tailed', cv51 = 22
Long S (ſ) with flat top hook, and terminal has a tail; without serifs (default for Italic)
long-s = 'flat-hook-tailed-middle-serifed', cv51 = 23
Long S (ſ) with flat top hook, terminal has a tail, and middle serif
long-s = 'flat-hook-tailed-middle-serifed-xh', cv51 = 24
Long S (ſ) with flat top hook, terminal has a tail, and middle serif at x-height
long-s = 'bent-hook-diagonal-tailed', cv51 = 25
Long S (ſ) with bending top hook, and terminal has a diagonal tail; without serifs
long-s = 'bent-hook-diagonal-tailed-middle-serifed', cv51 = 26
Long S (ſ) with bending top hook, terminal has a diagonal tail, and middle serif
long-s = 'bent-hook-diagonal-tailed-middle-serifed-xh', cv51 = 27
Long S (ſ) with bending top hook, terminal has a diagonal tail, and middle serif at x-height
long-s = 'flat-hook-diagonal-tailed', cv51 = 28
Long S (ſ) with flat top hook, and terminal has a diagonal tail; without serifs
long-s = 'flat-hook-diagonal-tailed-middle-serifed', cv51 = 29
Long S (ſ) with flat top hook, terminal has a diagonal tail, and middle serif
long-s = 'flat-hook-diagonal-tailed-middle-serifed-xh', cv51 = 30
Long S (ſ) with flat top hook, terminal has a diagonal tail, and middle serif at x-height
+
long-s = 'bent-hook-serifless', cv51 = 1
Long S (ſ) with bending top hook; without serifs (default for Sans Upright)
long-s = 'bent-hook-middle-serifed', cv51 = 2
Long S (ſ) with bending top hook, and middle serif
long-s = 'bent-hook-middle-serifed-xh', cv51 = 3
Long S (ſ) with bending top hook, and middle serif at x-height
long-s = 'bent-hook-bottom-serifed', cv51 = 4
Long S (ſ) with bending top hook, and bottom serif (default for Slab Upright)
long-s = 'bent-hook-double-serifed', cv51 = 5
Long S (ſ) with bending top hook, and bottom and middle serifs
long-s = 'bent-hook-double-serifed-xh', cv51 = 6
Long S (ſ) with bending top hook, and bottom and middle serifs at x-height
long-s = 'bent-hook-descending', cv51 = 7
Long S (ſ) with bending top hook, and terminal descends baseline; without serifs
long-s = 'bent-hook-descending-middle-serifed', cv51 = 8
Long S (ſ) with bending top hook, terminal descends baseline, and middle serif
long-s = 'bent-hook-descending-middle-serifed-xh', cv51 = 9
Long S (ſ) with bending top hook, terminal descends baseline, and middle serif at x-height
long-s = 'bent-hook-tailed', cv51 = 10
Long S (ſ) with bending top hook, and terminal has a tail; without serifs
long-s = 'bent-hook-tailed-middle-serifed', cv51 = 11
Long S (ſ) with bending top hook, terminal has a tail, and middle serif
long-s = 'bent-hook-tailed-middle-serifed-xh', cv51 = 12
Long S (ſ) with bending top hook, terminal has a tail, and middle serif at x-height
long-s = 'bent-hook-diagonal-tailed', cv51 = 13
Long S (ſ) with bending top hook, and terminal has a diagonal tail; without serifs
long-s = 'bent-hook-diagonal-tailed-middle-serifed', cv51 = 14
Long S (ſ) with bending top hook, terminal has a diagonal tail, and middle serif
long-s = 'bent-hook-diagonal-tailed-middle-serifed-xh', cv51 = 15
Long S (ſ) with bending top hook, terminal has a diagonal tail, and middle serif at x-height
long-s = 'flat-hook-serifless', cv51 = 16
Long S (ſ) with flat top hook; without serifs
long-s = 'flat-hook-middle-serifed', cv51 = 17
Long S (ſ) with flat top hook, and middle serif
long-s = 'flat-hook-middle-serifed-xh', cv51 = 18
Long S (ſ) with flat top hook, and middle serif at x-height
long-s = 'flat-hook-bottom-serifed', cv51 = 19
Long S (ſ) with flat top hook, and bottom serif
long-s = 'flat-hook-double-serifed', cv51 = 20
Long S (ſ) with flat top hook, and bottom and middle serifs
long-s = 'flat-hook-double-serifed-xh', cv51 = 21
Long S (ſ) with flat top hook, and bottom and middle serifs at x-height
long-s = 'flat-hook-descending', cv51 = 22
Long S (ſ) with flat top hook, and terminal descends baseline; without serifs
long-s = 'flat-hook-descending-middle-serifed', cv51 = 23
Long S (ſ) with flat top hook, terminal descends baseline, and middle serif
long-s = 'flat-hook-descending-middle-serifed-xh', cv51 = 24
Long S (ſ) with flat top hook, terminal descends baseline, and middle serif at x-height
long-s = 'flat-hook-tailed', cv51 = 25
Long S (ſ) with flat top hook, and terminal has a tail; without serifs (default for Italic)
long-s = 'flat-hook-tailed-middle-serifed', cv51 = 26
Long S (ſ) with flat top hook, terminal has a tail, and middle serif
long-s = 'flat-hook-tailed-middle-serifed-xh', cv51 = 27
Long S (ſ) with flat top hook, terminal has a tail, and middle serif at x-height
long-s = 'flat-hook-diagonal-tailed', cv51 = 28
Long S (ſ) with flat top hook, and terminal has a diagonal tail; without serifs
long-s = 'flat-hook-diagonal-tailed-middle-serifed', cv51 = 29
Long S (ſ) with flat top hook, terminal has a diagonal tail, and middle serif
long-s = 'flat-hook-diagonal-tailed-middle-serifed-xh', cv51 = 30
Long S (ſ) with flat top hook, terminal has a diagonal tail, and middle serif at x-height
- Styles for `ß` (Eszet):
eszet = 'traditional-serifless', cv52 = 1
Eszet (ß) with traditional, Fraktur-like shape
eszet = 'traditional-middle-serifed', cv52 = 2
Eszet (ß) with traditional, Fraktur-like shape, and serif at middle
eszet = 'traditional-bottom-serifed', cv52 = 3
Eszet (ß) with traditional, Fraktur-like shape, and serif at bottom
eszet = 'traditional-dual-serifed', cv52 = 4
Eszet (ß) with traditional, Fraktur-like shape, and serif at middle and bottom
eszet = 'traditional-descending-serifless', cv52 = 5
Eszet (ß) with traditional, Fraktur-like shape, and terminal descends baseline
eszet = 'traditional-descending-middle-serifed', cv52 = 6
Eszet (ß) with traditional, Fraktur-like shape, terminal descends baseline, and serif at middle
eszet = 'traditional-tailed-serifless', cv52 = 7
Eszet (ß) with traditional, Fraktur-like shape, and terminal containing tail
eszet = 'traditional-tailed-middle-serifed', cv52 = 8
Eszet (ß) with traditional, Fraktur-like shape, terminal containing tail, and serif at middle
eszet = 'traditional-flat-hook-serifless', cv52 = 9
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook)
eszet = 'traditional-flat-hook-middle-serifed', cv52 = 10
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and serif at middle
eszet = 'traditional-flat-hook-bottom-serifed', cv52 = 11
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and serif at bottom
eszet = 'traditional-flat-hook-dual-serifed', cv52 = 12
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and serif at middle and bottom
eszet = 'traditional-flat-hook-descending-serifless', cv52 = 13
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and terminal descends baseline
eszet = 'traditional-flat-hook-descending-middle-serifed', cv52 = 14
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), terminal descends baseline, and serif at middle
eszet = 'traditional-flat-hook-tailed-serifless', cv52 = 15
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), and terminal containing tail
eszet = 'traditional-flat-hook-tailed-middle-serifed', cv52 = 16
Eszet (ß) with traditional Fraktur-like shape (containing a flat top hook), terminal containing tail, and serif at middle
eszet = 'sulzbacher-serifless', cv52 = 17
Eszet (ß) with more modern, beta-like shape (default for Sans Upright)
eszet = 'sulzbacher-middle-serifed', cv52 = 18
Eszet (ß) with more modern, beta-like shape, and serif at middle
eszet = 'sulzbacher-middle-serifed-xh', cv52 = 19
Eszet (ß) with more modern, beta-like shape, and serif at middle at x-height
eszet = 'sulzbacher-bottom-serifed', cv52 = 20
Eszet (ß) with more modern, beta-like shape, and serif at bottom (default for Slab Upright)
eszet = 'sulzbacher-dual-serifed', cv52 = 21
Eszet (ß) with more modern, beta-like shape, and serif at middle and bottom
eszet = 'sulzbacher-dual-serifed-xh', cv52 = 22
Eszet (ß) with more modern, beta-like shape, and serif at middle (x-height) and bottom
eszet = 'sulzbacher-descending-serifless', cv52 = 23
Eszet (ß) with more modern, beta-like shape, and terminal descends baseline
eszet = 'sulzbacher-descending-middle-serifed', cv52 = 24
Eszet (ß) with more modern, beta-like shape, terminal descends baseline, and serif at middle
eszet = 'sulzbacher-descending-middle-serifed-xh', cv52 = 25
Eszet (ß) with more modern, beta-like shape, terminal descends baseline, and serif at middle at x-height
eszet = 'sulzbacher-tailed-serifless', cv52 = 26
Eszet (ß) with more modern, beta-like shape, and terminal containing tail (default for Italic)
eszet = 'sulzbacher-tailed-middle-serifed', cv52 = 27
Eszet (ß) with more modern, beta-like shape, terminal containing tail, and serif at middle
eszet = 'sulzbacher-tailed-middle-serifed-xh', cv52 = 28
Eszet (ß) with more modern, beta-like shape, terminal containing tail, and serif at middle at x-height
eszet = 'longs-s-lig-serifless', cv52 = 29
Eszet (ß) with ligature of long-S (ſ) and s
eszet = 'longs-s-lig-middle-serifed', cv52 = 30
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle
eszet = 'longs-s-lig-middle-serifed-xh', cv52 = 31
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle at x-height
eszet = 'longs-s-lig-bottom-serifed', cv52 = 32
Eszet (ß) with ligature of long-S (ſ) and s, and serif at bottom
eszet = 'longs-s-lig-dual-serifed', cv52 = 33
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle and bottom
eszet = 'longs-s-lig-dual-serifed-xh', cv52 = 34
Eszet (ß) with ligature of long-S (ſ) and s, and serif at middle (x-height) and bottom
eszet = 'longs-s-lig-descending-serifless', cv52 = 35
Eszet (ß) with ligature of long-S (ſ) and s, and terminal descends baseline
eszet = 'longs-s-lig-descending-middle-serifed', cv52 = 36
Eszet (ß) with ligature of long-S (ſ) and s, terminal descends baseline, and serif at middle
eszet = 'longs-s-lig-descending-middle-serifed-xh', cv52 = 37
Eszet (ß) with ligature of long-S (ſ) and s, terminal descends baseline, and serif at middle at x-height
eszet = 'longs-s-lig-tailed-serifless', cv52 = 38
Eszet (ß) with ligature of long-S (ſ) and s, and terminal containing tail
eszet = 'longs-s-lig-tailed-middle-serifed', cv52 = 39
Eszet (ß) with ligature of long-S (ſ) and s, terminal containing tail, and serif at middle
eszet = 'longs-s-lig-tailed-middle-serifed-xh', cv52 = 40
Eszet (ß) with ligature of long-S (ſ) and s, terminal containing tail, and serif at middle at x-height
- Styles for `ð` (Lowercase Eth (`ð`)): @@ -365,7 +374,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `Λ` (Greek capital Lambda (`Λ`)):
capital-lambda = 'straight-serifless', cv60 = 1
Greek capital Lambda (Λ) with straight shape; without serifs (default for Sans)
capital-lambda = 'straight-top-serifed', cv60 = 2
Greek capital Lambda (Λ) with straight shape, and serifs at top
capital-lambda = 'straight-base-serifed', cv60 = 3
Greek capital Lambda (Λ) with straight shape, and serifs at base (default for Slab)
capital-lambda = 'straight-tri-serifed', cv60 = 4
Greek capital Lambda (Λ) with straight shape, and serifs at both top and base
capital-lambda = 'curly-serifless', cv60 = 5
Greek capital Lambda (Λ) with curly shape; without serifs
capital-lambda = 'curly-top-serifed', cv60 = 6
Greek capital Lambda (Λ) with curly shape, and serifs at top
capital-lambda = 'curly-base-serifed', cv60 = 7
Greek capital Lambda (Λ) with curly shape, and serifs at base
capital-lambda = 'curly-tri-serifed', cv60 = 8
Greek capital Lambda (Λ) with curly shape, and serifs at both top and base
- Styles for `λ` (Greek small Lambda): -
lower-lambda = 'straight', cv61 = 1
More-straight Greek small Lambda (λ) (default for Sans Upright, Sans Italic, Slab Italic)
lower-lambda = 'straight-turn', cv61 = 2
Greek small Lambda (λ) with straight upper and a tail turns leftward (default for Slab Upright)
lower-lambda = 'curly', cv61 = 3
More curly Greek small Lambda (λ), like Iosevka 2.x
lower-lambda = 'curly-turn', cv61 = 4
More curly Greek small Lambda (λ), like Iosevka 2.x, with a tail turns leftward
lower-lambda = 'tailed-turn', cv61 = 5
More curly Greek small Lambda (λ), with a tail turns leftward at top and a tail turns right at bottom-right
lower-lambda = 'curly-tailed-turn', cv61 = 6
More curly Greek small Lambda (λ), with a tail turns leftward at top, a tail turns right at bottom-right, and curly bottom-left leg
+
lower-lambda = 'straight', cv61 = 1
More-straight Greek small Lambda (λ) (default for Sans Upright, Sans Italic, Slab Italic)
lower-lambda = 'straight-turn', cv61 = 2
Greek small Lambda (λ) with straight upper and a tail turns leftward (default for Slab Upright)
lower-lambda = 'tailed-turn', cv61 = 3
More curly Greek small Lambda (λ), with a tail turns leftward at top and a tail turns right at bottom-right
lower-lambda = 'curly', cv61 = 4
More curly Greek small Lambda (λ), like Iosevka 2.x
lower-lambda = 'curly-turn', cv61 = 5
More curly Greek small Lambda (λ), like Iosevka 2.x, with a tail turns leftward
lower-lambda = 'curly-tailed-turn', cv61 = 6
More curly Greek small Lambda (λ), with a tail turns leftward at top, a tail turns right at bottom-right, and curly bottom-left leg
- Styles for `μ` (Greek small Mu):
lower-mu = 'toothed-serifless', cv62 = 1
Greek small Mu (μ) with toothed shape; without serifs
lower-mu = 'toothed-motion-serifed', cv62 = 2
Greek small Mu (μ) with toothed shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothed-bottom-right-serifed', cv62 = 3
Greek small Mu (μ) with toothed shape, and serif at bottom-right
lower-mu = 'toothed-serifed', cv62 = 4
Greek small Mu (μ) with toothed shape, and serifs
lower-mu = 'tailed-serifless', cv62 = 5
Greek small Mu (μ) with tailed shape; without serifs (default for Sans)
lower-mu = 'tailed-motion-serifed', cv62 = 6
Greek small Mu (μ) with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
lower-mu = 'tailed-serifed', cv62 = 7
Greek small Mu (μ) with tailed shape, and serifs (default for Slab Upright)
lower-mu = 'toothless-corner-serifless', cv62 = 8
Greek small Mu (μ) with toothless (corner bottom-right) shape; without serifs
lower-mu = 'toothless-corner-motion-serifed', cv62 = 9
Greek small Mu (μ) with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothless-corner-serifed', cv62 = 10
Greek small Mu (μ) with toothless (corner bottom-right) shape, and serifs
lower-mu = 'toothless-rounded-serifless', cv62 = 11
Greek small Mu (μ) with toothless (rounded) shape; without serifs
lower-mu = 'toothless-rounded-motion-serifed', cv62 = 12
Greek small Mu (μ) with toothless (rounded) shape, and motion serifs at top-left and bottom-right
lower-mu = 'toothless-rounded-serifed', cv62 = 13
Greek small Mu (μ) with toothless (rounded) shape, and serifs
- Styles for `ξ` (Greek lower Xi): @@ -373,7 +382,7 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `π` (Greek lower Pi):
lower-pi = 'tailless', cv64 = 1
Greek lower Pi (π) with a tailless shape
lower-pi = 'tailed', cv64 = 2
Greek lower Pi (π) with a tailed shape (default)
lower-pi = 'small-capital', cv64 = 3
Greek lower Pi (π) with a small-capital shape
- Styles for `τ` (Greek lower Tau): -
lower-tau = 'tailless', cv65 = 1
Greek lower Tau (τ) with a tailless shape
lower-tau = 'tailed', cv65 = 2
Greek lower Tau (τ) with curly tail
lower-tau = 'flat-tailed', cv65 = 3
Greek lower Tau (τ) with a flat tail (default)
lower-tau = 'diagonal-tailed', cv65 = 4
Greek lower Tau (τ) with a diagonal tail
lower-tau = 'semi-tailed', cv65 = 5
Greek lower Tau (τ) with a slightly curly tail
lower-tau = 'short-tailed', cv65 = 6
Greek lower Tau (τ) with a very short tail
+
lower-tau = 'tailless', cv65 = 1
Greek lower Tau (τ) with a tailless shape
lower-tau = 'short-tailed', cv65 = 2
Greek lower Tau (τ) with a very short tail
lower-tau = 'tailed', cv65 = 3
Greek lower Tau (τ) with curly tail
lower-tau = 'flat-tailed', cv65 = 4
Greek lower Tau (τ) with a flat tail (default)
lower-tau = 'diagonal-tailed', cv65 = 5
Greek lower Tau (τ) with a diagonal tail
lower-tau = 'semi-tailed', cv65 = 6
Greek lower Tau (τ) with a slightly curly tail
- Styles for `χ` (Greek lower Chi):
lower-chi = 'straight-serifless', cv66 = 1
Greek lower Chi (χ) with straight shape; without serifs (default for Sans)
lower-chi = 'straight-motion-serifed', cv66 = 2
Greek lower Chi (χ) with straight shape, and motion serifs
lower-chi = 'straight-serifed', cv66 = 3
Greek lower Chi (χ) with straight shape, and serifs (default for Slab)
lower-chi = 'curly-serifless', cv66 = 4
Greek lower Chi (χ) with curly shape; without serifs
lower-chi = 'curly-motion-serifed', cv66 = 5
Greek lower Chi (χ) with curly shape, and motion serifs
lower-chi = 'curly-serifed', cv66 = 6
Greek lower Chi (χ) with curly shape, and serifs
lower-chi = 'semi-chancery-straight', cv66 = 7
Greek lower Chi (χ) with Semi-chancery shape with straight counter-leg
lower-chi = 'semi-chancery-curly', cv66 = 8
Greek lower Chi (χ) with Semi-chancery shape with curly counter-leg
lower-chi = 'chancery', cv66 = 9
Greek lower Chi (χ) with Chancery shape
- Styles for `Ж` (Cyrillic Capital Zhe): @@ -391,91 +400,91 @@ Subsection `variants` is used to configure character variants in the font. Prope - Styles for `л` (Cyrillic Lower El):
cyrl-el = 'straight', cv73 = 1
Cyrillic Lower El (л) with standard shape (default)
cyrl-el = 'tailed', cv73 = 2
Cyrillic Lower El (л) with tail shape
- Styles for `м` (Cyrillic Lower Em): -
cyrl-em = 'hanging-serifless', cv74 = 1
Cyrillic Lower Em (м) with middle being hanging off baseline; without serifs (default for Sans)
cyrl-em = 'hanging-motion-serifed', cv74 = 2
Cyrillic Lower Em (м) with middle being hanging off baseline, and motion serifs
cyrl-em = 'hanging-serifed', cv74 = 3
Cyrillic Lower Em (м) with middle being hanging off baseline, and serifs (default for Slab)
cyrl-em = 'slanted-sides-hanging-serifless', cv74 = 4
Cyrillic Lower Em (м) with slanted sides, and middle being hanging off baseline; without serifs
cyrl-em = 'slanted-sides-hanging-motion-serifed', cv74 = 5
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and motion serifs
cyrl-em = 'slanted-sides-hanging-serifed', cv74 = 6
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and serifs
cyrl-em = 'flat-bottom-serifless', cv74 = 7
Cyrillic Lower Em (м) with middle aligned to baseline; without serifs
cyrl-em = 'flat-bottom-motion-serifed', cv74 = 8
Cyrillic Lower Em (м) with middle aligned to baseline, and motion serifs
cyrl-em = 'flat-bottom-serifed', cv74 = 9
Cyrillic Lower Em (м) with middle aligned to baseline, and serifs
cyrl-em = 'slanted-sides-flat-bottom-serifless', cv74 = 10
Cyrillic Lower Em (м) with slanted sides, and middle aligned to baseline; without serifs
cyrl-em = 'slanted-sides-flat-bottom-motion-serifed', cv74 = 11
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and motion serifs
cyrl-em = 'slanted-sides-flat-bottom-serifed', cv74 = 12
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and serifs
+
cyrl-em = 'hanging-serifless', cv74 = 1
Cyrillic Lower Em (м) with middle being hanging off baseline; without serifs (default for Sans)
cyrl-em = 'hanging-motion-serifed', cv74 = 2
Cyrillic Lower Em (м) with middle being hanging off baseline, and motion serifs
cyrl-em = 'hanging-serifed', cv74 = 3
Cyrillic Lower Em (м) with middle being hanging off baseline, and serifs (default for Slab)
cyrl-em = 'flat-bottom-serifless', cv74 = 4
Cyrillic Lower Em (м) with middle aligned to baseline; without serifs
cyrl-em = 'flat-bottom-motion-serifed', cv74 = 5
Cyrillic Lower Em (м) with middle aligned to baseline, and motion serifs
cyrl-em = 'flat-bottom-serifed', cv74 = 6
Cyrillic Lower Em (м) with middle aligned to baseline, and serifs
cyrl-em = 'slanted-sides-hanging-serifless', cv74 = 7
Cyrillic Lower Em (м) with slanted sides, and middle being hanging off baseline; without serifs
cyrl-em = 'slanted-sides-hanging-motion-serifed', cv74 = 8
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and motion serifs
cyrl-em = 'slanted-sides-hanging-serifed', cv74 = 9
Cyrillic Lower Em (м) with slanted sides, middle being hanging off baseline, and serifs
cyrl-em = 'slanted-sides-flat-bottom-serifless', cv74 = 10
Cyrillic Lower Em (м) with slanted sides, and middle aligned to baseline; without serifs
cyrl-em = 'slanted-sides-flat-bottom-motion-serifed', cv74 = 11
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and motion serifs
cyrl-em = 'slanted-sides-flat-bottom-serifed', cv74 = 12
Cyrillic Lower Em (м) with slanted sides, middle aligned to baseline, and serifs
- Styles for `н` (Cyrillic Lower En):
cyrl-en = 'serifless', cv75 = 1
Cyrillic Lower En (н) without serifs (default for Sans)
cyrl-en = 'top-left-serifed', cv75 = 2
Cyrillic Lower En (н) with serifs at top left
cyrl-en = 'top-left-bottom-right-serifed', cv75 = 3
Cyrillic Lower En (н) with serifs at top left and bottom right (default for Slab Italic)
cyrl-en = 'serifed', cv75 = 4
Cyrillic Lower En (н) with serifs (default for Slab Upright)
cyrl-en = 'tailed-serifless', cv75 = 5
Cyrillic Lower En (н) with tail; without serifs
cyrl-en = 'tailed-top-left-serifed', cv75 = 6
Cyrillic Lower En (н) with tail, and serifs at top left
cyrl-en = 'tailed-serifed', cv75 = 7
Cyrillic Lower En (н) with tail, and serifs
- Styles for `р` (Cyrillic Lower Er): -
cyrl-er = 'eared-serifless', VXAA = 1
Cyrillic Lower Er (р) with eared shape; without serifs (default for Sans)
cyrl-er = 'eared-motion-serifed', VXAA = 2
Cyrillic Lower Er (р) with eared shape, and motion serifs
cyrl-er = 'eared-serifed', VXAA = 3
Cyrillic Lower Er (р) with eared shape, and serifs (default for Slab)
cyrl-er = 'earless-corner-serifless', VXAA = 4
Cyrillic Lower Er (р) with earless (cornered) shape; without serifs
cyrl-er = 'earless-corner-serifed', VXAA = 5
Cyrillic Lower Er (р) with earless (cornered) shape, and serifs
cyrl-er = 'earless-rounded-serifless', VXAA = 6
Cyrillic Lower Er (р) with earless (rounded) shape; without serifs
cyrl-er = 'earless-rounded-serifed', VXAA = 7
Cyrillic Lower Er (р) with earless (rounded) shape, and serifs
+
cyrl-er = 'eared-serifless', cv76 = 1
Cyrillic Lower Er (р) with eared shape; without serifs (default for Sans)
cyrl-er = 'eared-motion-serifed', cv76 = 2
Cyrillic Lower Er (р) with eared shape, and motion serifs
cyrl-er = 'eared-serifed', cv76 = 3
Cyrillic Lower Er (р) with eared shape, and serifs (default for Slab)
cyrl-er = 'earless-corner-serifless', cv76 = 4
Cyrillic Lower Er (р) with earless (cornered) shape; without serifs
cyrl-er = 'earless-corner-serifed', cv76 = 5
Cyrillic Lower Er (р) with earless (cornered) shape, and serifs
cyrl-er = 'earless-rounded-serifless', cv76 = 6
Cyrillic Lower Er (р) with earless (rounded) shape; without serifs
cyrl-er = 'earless-rounded-serifed', cv76 = 7
Cyrillic Lower Er (р) with earless (rounded) shape, and serifs
- Styles for `У` (Cyrillic Capital U): -
cyrl-capital-u = 'straight-serifless', cv76 = 1
Cyrillic Capital U (У) with straight shape; without serifs (default for Sans)
cyrl-capital-u = 'straight-motion-serifed', cv76 = 2
Cyrillic Capital U (У) with straight shape, and motion serifs
cyrl-capital-u = 'straight-serifed', cv76 = 3
Cyrillic Capital U (У) with straight shape, and serifs
cyrl-capital-u = 'straight-turn-serifless', cv76 = 4
Cyrillic Capital U (У) with straight shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'straight-turn-motion-serifed', cv76 = 5
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'straight-turn-serifed', cv76 = 6
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and serifs (default for Slab)
cyrl-capital-u = 'curly-serifless', cv76 = 7
Cyrillic Capital U (У) with curly shape; without serifs
cyrl-capital-u = 'curly-motion-serifed', cv76 = 8
Cyrillic Capital U (У) with curly shape, and motion serifs
cyrl-capital-u = 'curly-serifed', cv76 = 9
Cyrillic Capital U (У) with curly shape, and serifs
cyrl-capital-u = 'curly-turn-serifless', cv76 = 10
Cyrillic Capital U (У) with curly shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'curly-turn-motion-serifed', cv76 = 11
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'curly-turn-serifed', cv76 = 12
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and serifs
cyrl-capital-u = 'cursive-serifless', cv76 = 13
Cyrillic Capital U (У) with cursive shape; without serifs
cyrl-capital-u = 'cursive-motion-serifed', cv76 = 14
Cyrillic Capital U (У) with cursive shape, and motion serifs
cyrl-capital-u = 'cursive-serifed', cv76 = 15
Cyrillic Capital U (У) with cursive shape, and serifs
cyrl-capital-u = 'cursive-flat-hook-serifless', cv76 = 16
Cyrillic Capital U (У) with cursive shape, and a flat terminal hook; without serifs
cyrl-capital-u = 'cursive-flat-hook-motion-serifed', cv76 = 17
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and motion serifs
cyrl-capital-u = 'cursive-flat-hook-serifed', cv76 = 18
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and serifs
+
cyrl-capital-u = 'straight-serifless', cv77 = 1
Cyrillic Capital U (У) with straight shape; without serifs (default for Sans)
cyrl-capital-u = 'straight-motion-serifed', cv77 = 2
Cyrillic Capital U (У) with straight shape, and motion serifs
cyrl-capital-u = 'straight-serifed', cv77 = 3
Cyrillic Capital U (У) with straight shape, and serifs
cyrl-capital-u = 'straight-turn-serifless', cv77 = 4
Cyrillic Capital U (У) with straight shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'straight-turn-motion-serifed', cv77 = 5
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'straight-turn-serifed', cv77 = 6
Cyrillic Capital U (У) with straight shape, a tail turns leftward, and serifs (default for Slab)
cyrl-capital-u = 'curly-serifless', cv77 = 7
Cyrillic Capital U (У) with curly shape; without serifs
cyrl-capital-u = 'curly-motion-serifed', cv77 = 8
Cyrillic Capital U (У) with curly shape, and motion serifs
cyrl-capital-u = 'curly-serifed', cv77 = 9
Cyrillic Capital U (У) with curly shape, and serifs
cyrl-capital-u = 'curly-turn-serifless', cv77 = 10
Cyrillic Capital U (У) with curly shape, and a tail turns leftward; without serifs
cyrl-capital-u = 'curly-turn-motion-serifed', cv77 = 11
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and motion serifs
cyrl-capital-u = 'curly-turn-serifed', cv77 = 12
Cyrillic Capital U (У) with curly shape, a tail turns leftward, and serifs
cyrl-capital-u = 'cursive-serifless', cv77 = 13
Cyrillic Capital U (У) with cursive shape; without serifs
cyrl-capital-u = 'cursive-motion-serifed', cv77 = 14
Cyrillic Capital U (У) with cursive shape, and motion serifs
cyrl-capital-u = 'cursive-serifed', cv77 = 15
Cyrillic Capital U (У) with cursive shape, and serifs
cyrl-capital-u = 'cursive-flat-hook-serifless', cv77 = 16
Cyrillic Capital U (У) with cursive shape, and a flat terminal hook; without serifs
cyrl-capital-u = 'cursive-flat-hook-motion-serifed', cv77 = 17
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and motion serifs
cyrl-capital-u = 'cursive-flat-hook-serifed', cv77 = 18
Cyrillic Capital U (У) with cursive shape, a flat terminal hook, and serifs
- Styles for `у` (Cyrillic Lower U): -
cyrl-u = 'straight-serifless', VXAB = 1
Cyrillic Lower U (у) with straight shape; without serifs (default for Sans Upright)
cyrl-u = 'straight-motion-serifed', VXAB = 2
Cyrillic Lower U (у) with straight shape, and motion serifs
cyrl-u = 'straight-serifed', VXAB = 3
Cyrillic Lower U (у) with straight shape, and serifs
cyrl-u = 'straight-turn-serifless', VXAB = 4
Cyrillic Lower U (у) with straight shape, and a tail turns leftward; without serifs
cyrl-u = 'straight-turn-motion-serifed', VXAB = 5
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and motion serifs
cyrl-u = 'straight-turn-serifed', VXAB = 6
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and serifs (default for Slab Upright)
cyrl-u = 'curly-serifless', VXAB = 7
Cyrillic Lower U (у) with curly shape; without serifs
cyrl-u = 'curly-motion-serifed', VXAB = 8
Cyrillic Lower U (у) with curly shape, and motion serifs
cyrl-u = 'curly-serifed', VXAB = 9
Cyrillic Lower U (у) with curly shape, and serifs
cyrl-u = 'curly-turn-serifless', VXAB = 10
Cyrillic Lower U (у) with curly shape, and a tail turns leftward; without serifs
cyrl-u = 'curly-turn-motion-serifed', VXAB = 11
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and motion serifs
cyrl-u = 'curly-turn-serifed', VXAB = 12
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and serifs
cyrl-u = 'cursive-serifless', VXAB = 13
Cyrillic Lower U (у) with cursive shape; without serifs (default for Sans Italic)
cyrl-u = 'cursive-motion-serifed', VXAB = 14
Cyrillic Lower U (у) with cursive shape, and motion serifs (default for Slab Italic)
cyrl-u = 'cursive-serifed', VXAB = 15
Cyrillic Lower U (у) with cursive shape, and serifs
cyrl-u = 'cursive-flat-hook-serifless', VXAB = 16
Cyrillic Lower U (у) with cursive shape, and a flat terminal hook; without serifs
cyrl-u = 'cursive-flat-hook-motion-serifed', VXAB = 17
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and motion serifs
cyrl-u = 'cursive-flat-hook-serifed', VXAB = 18
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and serifs
+
cyrl-u = 'straight-serifless', cv78 = 1
Cyrillic Lower U (у) with straight shape; without serifs (default for Sans Upright)
cyrl-u = 'straight-motion-serifed', cv78 = 2
Cyrillic Lower U (у) with straight shape, and motion serifs
cyrl-u = 'straight-serifed', cv78 = 3
Cyrillic Lower U (у) with straight shape, and serifs
cyrl-u = 'straight-turn-serifless', cv78 = 4
Cyrillic Lower U (у) with straight shape, and a tail turns leftward; without serifs
cyrl-u = 'straight-turn-motion-serifed', cv78 = 5
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and motion serifs
cyrl-u = 'straight-turn-serifed', cv78 = 6
Cyrillic Lower U (у) with straight shape, a tail turns leftward, and serifs (default for Slab Upright)
cyrl-u = 'curly-serifless', cv78 = 7
Cyrillic Lower U (у) with curly shape; without serifs
cyrl-u = 'curly-motion-serifed', cv78 = 8
Cyrillic Lower U (у) with curly shape, and motion serifs
cyrl-u = 'curly-serifed', cv78 = 9
Cyrillic Lower U (у) with curly shape, and serifs
cyrl-u = 'curly-turn-serifless', cv78 = 10
Cyrillic Lower U (у) with curly shape, and a tail turns leftward; without serifs
cyrl-u = 'curly-turn-motion-serifed', cv78 = 11
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and motion serifs
cyrl-u = 'curly-turn-serifed', cv78 = 12
Cyrillic Lower U (у) with curly shape, a tail turns leftward, and serifs
cyrl-u = 'cursive-serifless', cv78 = 13
Cyrillic Lower U (у) with cursive shape; without serifs (default for Sans Italic)
cyrl-u = 'cursive-motion-serifed', cv78 = 14
Cyrillic Lower U (у) with cursive shape, and motion serifs (default for Slab Italic)
cyrl-u = 'cursive-serifed', cv78 = 15
Cyrillic Lower U (у) with cursive shape, and serifs
cyrl-u = 'cursive-flat-hook-serifless', cv78 = 16
Cyrillic Lower U (у) with cursive shape, and a flat terminal hook; without serifs
cyrl-u = 'cursive-flat-hook-motion-serifed', cv78 = 17
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and motion serifs
cyrl-u = 'cursive-flat-hook-serifed', cv78 = 18
Cyrillic Lower U (у) with cursive shape, a flat terminal hook, and serifs
- Styles for `ф` (Cyrillic Lower Ef): -
cyrl-ef = 'serifless', cv77 = 1
Cyrillic Lower Ef (ф) with straight bar; without serifs (default for Sans Upright)
cyrl-ef = 'cursive', cv77 = 2
Cyrillic Lower Ef (ф) with cursive bar (default for Italic)
cyrl-ef = 'top-serifed', cv77 = 3
Cyrillic Lower Ef (ф) with straight bar, and serif at top
cyrl-ef = 'serifed', cv77 = 4
Cyrillic Lower Ef (ф) with straight bar, and serifs at top and bottom (default for Slab Upright)
cyrl-ef = 'split-serifless', cv77 = 5
Cyrillic Lower Ef (ф) with split bowl, and straight bar; without serifs
cyrl-ef = 'split-cursive', cv77 = 6
Cyrillic Lower Ef (ф) with split bowl, and cursive bar
cyrl-ef = 'split-top-serifed', cv77 = 7
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serif at top
cyrl-ef = 'split-serifed', cv77 = 8
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serifs at top and bottom
+
cyrl-ef = 'serifless', cv79 = 1
Cyrillic Lower Ef (ф) with straight bar; without serifs (default for Sans Upright)
cyrl-ef = 'top-serifed', cv79 = 2
Cyrillic Lower Ef (ф) with straight bar, and serif at top
cyrl-ef = 'serifed', cv79 = 3
Cyrillic Lower Ef (ф) with straight bar, and serifs at top and bottom (default for Slab Upright)
cyrl-ef = 'cursive', cv79 = 4
Cyrillic Lower Ef (ф) with cursive bar (default for Italic)
cyrl-ef = 'split-serifless', cv79 = 5
Cyrillic Lower Ef (ф) with split bowl, and straight bar; without serifs
cyrl-ef = 'split-top-serifed', cv79 = 6
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serif at top
cyrl-ef = 'split-serifed', cv79 = 7
Cyrillic Lower Ef (ф) with split bowl, straight bar, and serifs at top and bottom
cyrl-ef = 'split-cursive', cv79 = 8
Cyrillic Lower Ef (ф) with split bowl, and cursive bar
- Styles for `ч` (Cyrillic Lower Che): -
cyrl-che = 'standard', cv78 = 1
Cyrillic Lower Che (ч) with standard shape (default)
cyrl-che = 'tailed', cv78 = 2
Cyrillic Lower Che (ч) with tail
+
cyrl-che = 'standard', cv80 = 1
Cyrillic Lower Che (ч) with standard shape (default)
cyrl-che = 'tailed', cv80 = 2
Cyrillic Lower Che (ч) with tail
- Styles for `ь` (Cyrillic Lower Yeri and related letters): -
cyrl-yeri = 'corner', cv79 = 1
Cyrillic Lower Yeri (ь) with corner at bottom left (default for Upright)
cyrl-yeri = 'round', cv79 = 2
Cyrillic Lower Yeri (ь) with rounded shape (default for Sans Italic)
cyrl-yeri = 'cursive', cv79 = 3
Cyrillic Lower Yeri (ь) with cursive shape (default for Slab Italic)
+
cyrl-yeri = 'corner', cv81 = 1
Cyrillic Lower Yeri (ь) with corner at bottom left (default for Upright)
cyrl-yeri = 'round', cv81 = 2
Cyrillic Lower Yeri (ь) with rounded shape (default for Sans Italic)
cyrl-yeri = 'cursive', cv81 = 3
Cyrillic Lower Yeri (ь) with cursive shape (default for Slab Italic)
- Styles for `ы` (Cyrillic Lower Yery): -
cyrl-yery = 'corner', cv80 = 1
Cyrillic Lower Yery (ы) with corner at bottom left (default for Upright)
cyrl-yery = 'corner-tailed', cv80 = 2
Cyrillic Lower Yery (ы) with corner at bottom left and tail
cyrl-yery = 'round', cv80 = 3
Cyrillic Lower Yery (ы) with rounded shape (default for Sans Italic)
cyrl-yery = 'round-tailed', cv80 = 4
Cyrillic Lower Yery (ы) with rounded shape and tail
cyrl-yery = 'cursive', cv80 = 5
Cyrillic Lower Yery (ы) with cursive shape (default for Slab Italic)
cyrl-yery = 'cursive-tailed', cv80 = 6
Cyrillic Lower Yery (ы) with cursive shape and tail
+
cyrl-yery = 'corner', cv82 = 1
Cyrillic Lower Yery (ы) with corner at bottom left (default for Upright)
cyrl-yery = 'corner-tailed', cv82 = 2
Cyrillic Lower Yery (ы) with corner at bottom left and tail
cyrl-yery = 'round', cv82 = 3
Cyrillic Lower Yery (ы) with rounded shape (default for Sans Italic)
cyrl-yery = 'round-tailed', cv82 = 4
Cyrillic Lower Yery (ы) with rounded shape and tail
cyrl-yery = 'cursive', cv82 = 5
Cyrillic Lower Yery (ы) with cursive shape (default for Slab Italic)
cyrl-yery = 'cursive-tailed', cv82 = 6
Cyrillic Lower Yery (ы) with cursive shape and tail
- Styles for `Я` (Cyrillic Capital Ya): -
cyrl-capital-ya = 'straight-serifless', cv81 = 1
Cyrillic Capital Ya (Я) with straight leg; without serifs (default for Sans)
cyrl-capital-ya = 'straight-motion-serifed', cv81 = 2
Cyrillic Capital Ya (Я) with straight leg, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-serifed', cv81 = 3
Cyrillic Capital Ya (Я) with straight leg, and serifs (default for Slab)
cyrl-capital-ya = 'curly-serifless', cv81 = 4
Cyrillic Capital Ya (Я) with curly leg; without serifs
cyrl-capital-ya = 'curly-motion-serifed', cv81 = 5
Cyrillic Capital Ya (Я) with curly leg, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-serifed', cv81 = 6
Cyrillic Capital Ya (Я) with curly leg, and serifs
cyrl-capital-ya = 'standing-serifless', cv81 = 7
Cyrillic Capital Ya (Я) with standing leg (like Helvetica); without serifs
cyrl-capital-ya = 'standing-motion-serifed', cv81 = 8
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-capital-ya = 'standing-serifed', cv81 = 9
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and serifs
cyrl-capital-ya = 'straight-open-serifless', cv81 = 10
Cyrillic Capital Ya (Я) with straight leg, and open contour; without serifs
cyrl-capital-ya = 'straight-open-motion-serifed', cv81 = 11
Cyrillic Capital Ya (Я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-open-serifed', cv81 = 12
Cyrillic Capital Ya (Я) with straight leg, open contour, and serifs
cyrl-capital-ya = 'curly-open-serifless', cv81 = 13
Cyrillic Capital Ya (Я) with curly leg, and open contour; without serifs
cyrl-capital-ya = 'curly-open-motion-serifed', cv81 = 14
Cyrillic Capital Ya (Я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-open-serifed', cv81 = 15
Cyrillic Capital Ya (Я) with curly leg, open contour, and serifs
cyrl-capital-ya = 'standing-open-serifless', cv81 = 16
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-capital-ya = 'standing-open-motion-serifed', cv81 = 17
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'standing-open-serifed', cv81 = 18
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and serifs
+
cyrl-capital-ya = 'straight-serifless', cv83 = 1
Cyrillic Capital Ya (Я) with straight leg; without serifs (default for Sans)
cyrl-capital-ya = 'straight-motion-serifed', cv83 = 2
Cyrillic Capital Ya (Я) with straight leg, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-serifed', cv83 = 3
Cyrillic Capital Ya (Я) with straight leg, and serifs (default for Slab)
cyrl-capital-ya = 'straight-open-serifless', cv83 = 4
Cyrillic Capital Ya (Я) with straight leg, and open contour; without serifs
cyrl-capital-ya = 'straight-open-motion-serifed', cv83 = 5
Cyrillic Capital Ya (Я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'straight-open-serifed', cv83 = 6
Cyrillic Capital Ya (Я) with straight leg, open contour, and serifs
cyrl-capital-ya = 'curly-serifless', cv83 = 7
Cyrillic Capital Ya (Я) with curly leg; without serifs
cyrl-capital-ya = 'curly-motion-serifed', cv83 = 8
Cyrillic Capital Ya (Я) with curly leg, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-serifed', cv83 = 9
Cyrillic Capital Ya (Я) with curly leg, and serifs
cyrl-capital-ya = 'curly-open-serifless', cv83 = 10
Cyrillic Capital Ya (Я) with curly leg, and open contour; without serifs
cyrl-capital-ya = 'curly-open-motion-serifed', cv83 = 11
Cyrillic Capital Ya (Я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'curly-open-serifed', cv83 = 12
Cyrillic Capital Ya (Я) with curly leg, open contour, and serifs
cyrl-capital-ya = 'standing-serifless', cv83 = 13
Cyrillic Capital Ya (Я) with standing leg (like Helvetica); without serifs
cyrl-capital-ya = 'standing-motion-serifed', cv83 = 14
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-capital-ya = 'standing-serifed', cv83 = 15
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and serifs
cyrl-capital-ya = 'standing-open-serifless', cv83 = 16
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-capital-ya = 'standing-open-motion-serifed', cv83 = 17
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-capital-ya = 'standing-open-serifed', cv83 = 18
Cyrillic Capital Ya (Я) with standing leg (like Helvetica), open contour, and serifs
- Styles for `я` (Cyrillic Lower Ya): -
cyrl-ya = 'straight-serifless', cv82 = 1
Cyrillic Lower Ya (я) with straight leg; without serifs (default for Sans)
cyrl-ya = 'straight-motion-serifed', cv82 = 2
Cyrillic Lower Ya (я) with straight leg, and motion serifs at bottom-left
cyrl-ya = 'straight-serifed', cv82 = 3
Cyrillic Lower Ya (я) with straight leg, and serifs (default for Slab)
cyrl-ya = 'straight-tailed-serifless', cv82 = 4
Cyrillic Lower Ya (я) with straight leg, and tail; without serifs
cyrl-ya = 'straight-tailed-motion-serifed', cv82 = 5
Cyrillic Lower Ya (я) with straight leg, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-tailed-serifed', cv82 = 6
Cyrillic Lower Ya (я) with straight leg, tail, and serifs
cyrl-ya = 'curly-serifless', cv82 = 7
Cyrillic Lower Ya (я) with curly leg; without serifs
cyrl-ya = 'curly-motion-serifed', cv82 = 8
Cyrillic Lower Ya (я) with curly leg, and motion serifs at bottom-left
cyrl-ya = 'curly-serifed', cv82 = 9
Cyrillic Lower Ya (я) with curly leg, and serifs
cyrl-ya = 'curly-tailed-serifless', cv82 = 10
Cyrillic Lower Ya (я) with curly leg, and tail; without serifs
cyrl-ya = 'curly-tailed-motion-serifed', cv82 = 11
Cyrillic Lower Ya (я) with curly leg, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-tailed-serifed', cv82 = 12
Cyrillic Lower Ya (я) with curly leg, tail, and serifs
cyrl-ya = 'standing-serifless', cv82 = 13
Cyrillic Lower Ya (я) with standing leg (like Helvetica); without serifs
cyrl-ya = 'standing-motion-serifed', cv82 = 14
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-ya = 'standing-serifed', cv82 = 15
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and serifs
cyrl-ya = 'standing-tailed-serifless', cv82 = 16
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and tail; without serifs
cyrl-ya = 'standing-tailed-motion-serifed', cv82 = 17
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and motion serifs at bottom-left
cyrl-ya = 'standing-tailed-serifed', cv82 = 18
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and serifs
cyrl-ya = 'straight-open-serifless', cv82 = 19
Cyrillic Lower Ya (я) with straight leg, and open contour; without serifs
cyrl-ya = 'straight-open-motion-serifed', cv82 = 20
Cyrillic Lower Ya (я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'straight-open-serifed', cv82 = 21
Cyrillic Lower Ya (я) with straight leg, open contour, and serifs
cyrl-ya = 'straight-open-tailed-serifless', cv82 = 22
Cyrillic Lower Ya (я) with straight leg, open contour, and tail; without serifs
cyrl-ya = 'straight-open-tailed-motion-serifed', cv82 = 23
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-open-tailed-serifed', cv82 = 24
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and serifs
cyrl-ya = 'curly-open-serifless', cv82 = 25
Cyrillic Lower Ya (я) with curly leg, and open contour; without serifs
cyrl-ya = 'curly-open-motion-serifed', cv82 = 26
Cyrillic Lower Ya (я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'curly-open-serifed', cv82 = 27
Cyrillic Lower Ya (я) with curly leg, open contour, and serifs
cyrl-ya = 'curly-open-tailed-serifless', cv82 = 28
Cyrillic Lower Ya (я) with curly leg, open contour, and tail; without serifs
cyrl-ya = 'curly-open-tailed-motion-serifed', cv82 = 29
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-open-tailed-serifed', cv82 = 30
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and serifs
cyrl-ya = 'standing-open-serifless', cv82 = 31
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-ya = 'standing-open-motion-serifed', cv82 = 32
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-ya = 'standing-open-serifed', cv82 = 33
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and serifs
cyrl-ya = 'standing-open-tailed-serifless', cv82 = 34
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and tail; without serifs
cyrl-ya = 'standing-open-tailed-motion-serifed', cv82 = 35
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'standing-open-tailed-serifed', cv82 = 36
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and serifs
+
cyrl-ya = 'straight-serifless', cv84 = 1
Cyrillic Lower Ya (я) with straight leg; without serifs (default for Sans)
cyrl-ya = 'straight-motion-serifed', cv84 = 2
Cyrillic Lower Ya (я) with straight leg, and motion serifs at bottom-left
cyrl-ya = 'straight-serifed', cv84 = 3
Cyrillic Lower Ya (я) with straight leg, and serifs (default for Slab)
cyrl-ya = 'straight-tailed-serifless', cv84 = 4
Cyrillic Lower Ya (я) with straight leg, and tail; without serifs
cyrl-ya = 'straight-tailed-motion-serifed', cv84 = 5
Cyrillic Lower Ya (я) with straight leg, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-tailed-serifed', cv84 = 6
Cyrillic Lower Ya (я) with straight leg, tail, and serifs
cyrl-ya = 'straight-open-serifless', cv84 = 7
Cyrillic Lower Ya (я) with straight leg, and open contour; without serifs
cyrl-ya = 'straight-open-motion-serifed', cv84 = 8
Cyrillic Lower Ya (я) with straight leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'straight-open-serifed', cv84 = 9
Cyrillic Lower Ya (я) with straight leg, open contour, and serifs
cyrl-ya = 'straight-open-tailed-serifless', cv84 = 10
Cyrillic Lower Ya (я) with straight leg, open contour, and tail; without serifs
cyrl-ya = 'straight-open-tailed-motion-serifed', cv84 = 11
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'straight-open-tailed-serifed', cv84 = 12
Cyrillic Lower Ya (я) with straight leg, open contour, tail, and serifs
cyrl-ya = 'curly-serifless', cv84 = 13
Cyrillic Lower Ya (я) with curly leg; without serifs
cyrl-ya = 'curly-motion-serifed', cv84 = 14
Cyrillic Lower Ya (я) with curly leg, and motion serifs at bottom-left
cyrl-ya = 'curly-serifed', cv84 = 15
Cyrillic Lower Ya (я) with curly leg, and serifs
cyrl-ya = 'curly-tailed-serifless', cv84 = 16
Cyrillic Lower Ya (я) with curly leg, and tail; without serifs
cyrl-ya = 'curly-tailed-motion-serifed', cv84 = 17
Cyrillic Lower Ya (я) with curly leg, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-tailed-serifed', cv84 = 18
Cyrillic Lower Ya (я) with curly leg, tail, and serifs
cyrl-ya = 'curly-open-serifless', cv84 = 19
Cyrillic Lower Ya (я) with curly leg, and open contour; without serifs
cyrl-ya = 'curly-open-motion-serifed', cv84 = 20
Cyrillic Lower Ya (я) with curly leg, open contour, and motion serifs at bottom-left
cyrl-ya = 'curly-open-serifed', cv84 = 21
Cyrillic Lower Ya (я) with curly leg, open contour, and serifs
cyrl-ya = 'curly-open-tailed-serifless', cv84 = 22
Cyrillic Lower Ya (я) with curly leg, open contour, and tail; without serifs
cyrl-ya = 'curly-open-tailed-motion-serifed', cv84 = 23
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'curly-open-tailed-serifed', cv84 = 24
Cyrillic Lower Ya (я) with curly leg, open contour, tail, and serifs
cyrl-ya = 'standing-serifless', cv84 = 25
Cyrillic Lower Ya (я) with standing leg (like Helvetica); without serifs
cyrl-ya = 'standing-motion-serifed', cv84 = 26
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and motion serifs at bottom-left
cyrl-ya = 'standing-serifed', cv84 = 27
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and serifs
cyrl-ya = 'standing-tailed-serifless', cv84 = 28
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and tail; without serifs
cyrl-ya = 'standing-tailed-motion-serifed', cv84 = 29
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and motion serifs at bottom-left
cyrl-ya = 'standing-tailed-serifed', cv84 = 30
Cyrillic Lower Ya (я) with standing leg (like Helvetica), tail, and serifs
cyrl-ya = 'standing-open-serifless', cv84 = 31
Cyrillic Lower Ya (я) with standing leg (like Helvetica), and open contour; without serifs
cyrl-ya = 'standing-open-motion-serifed', cv84 = 32
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and motion serifs at bottom-left
cyrl-ya = 'standing-open-serifed', cv84 = 33
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and serifs
cyrl-ya = 'standing-open-tailed-serifless', cv84 = 34
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, and tail; without serifs
cyrl-ya = 'standing-open-tailed-motion-serifed', cv84 = 35
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and motion serifs at bottom-left
cyrl-ya = 'standing-open-tailed-serifed', cv84 = 36
Cyrillic Lower Ya (я) with standing leg (like Helvetica), open contour, tail, and serifs
- Styles for `0`: -
zero = 'unslashed', cv83 = 1
Zero (0) with standard body shape; without slash
zero = 'slashed', cv83 = 2
Zero (0) with standard body shape, and slash (default)
zero = 'reverse-slashed', cv83 = 3
Zero (0) with standard body shape, and revese slash
zero = 'tall-slashed', cv83 = 4
Zero (0) with standard body shape, and tall slash
zero = 'tall-reverse-slashed', cv83 = 5
Zero (0) with standard body shape, and tall reverse slash
zero = 'dotted', cv83 = 6
Zero (0) with standard body shape, and center dot
zero = 'long-dotted', cv83 = 7
Zero (0) with standard body shape, and long center dot
zero = 'slashed-split', cv83 = 8
Zero (0) with standard body shape, and slash separated from the outline
zero = 'reverse-slashed-split', cv83 = 9
Zero (0) with standard body shape, and reverse slash separated from the outline
zero = 'broken-slash', cv83 = 10
Zero (0) with standard body shape, and slash broken in the middle (like in Fixedsys)
zero = 'broken-reverse-slash', cv83 = 11
Zero (0) with standard body shape, and reverse slash broken in the middle
zero = 'broken-vertical-bar', cv83 = 12
Zero (0) with standard body shape, and vertical bar broken in the middle
zero = 'slashed-cutout', cv83 = 13
Zero (0) with standard body shape, and a slash cutout
zero = 'reverse-slashed-cutout', cv83 = 14
Zero (0) with standard body shape, and a reverse-slash cutout
zero = 'tall-slashed-cutout', cv83 = 15
Zero (0) with standard body shape, and a taller slash cutout
zero = 'tall-reverse-slashed-cutout', cv83 = 16
Zero (0) with standard body shape, and a taller reverse-slash cutout
zero = 'vertical-bar-cutout', cv83 = 17
Zero (0) with standard body shape, and a vertical bar cutout
zero = 'top-right-cutout', cv83 = 18
Zero (0) with standard body shape, and the top-right bit cutout
zero = 'oval-unslashed', cv83 = 19
Zero (0) with oval body shape; without slash
zero = 'oval-slashed', cv83 = 20
Zero (0) with oval body shape, and slash
zero = 'oval-reverse-slashed', cv83 = 21
Zero (0) with oval body shape, and revese slash
zero = 'oval-tall-slashed', cv83 = 22
Zero (0) with oval body shape, and tall slash
zero = 'oval-tall-reverse-slashed', cv83 = 23
Zero (0) with oval body shape, and tall reverse slash
zero = 'oval-dotted', cv83 = 24
Zero (0) with oval body shape, and center dot
zero = 'oval-long-dotted', cv83 = 25
Zero (0) with oval body shape, and long center dot
zero = 'oval-slashed-split', cv83 = 26
Zero (0) with oval body shape, and slash separated from the outline
zero = 'oval-reverse-slashed-split', cv83 = 27
Zero (0) with oval body shape, and reverse slash separated from the outline
zero = 'oval-broken-slash', cv83 = 28
Zero (0) with oval body shape, and slash broken in the middle (like in Fixedsys)
zero = 'oval-broken-reverse-slash', cv83 = 29
Zero (0) with oval body shape, and reverse slash broken in the middle
zero = 'oval-broken-vertical-bar', cv83 = 30
Zero (0) with oval body shape, and vertical bar broken in the middle
zero = 'oval-slashed-cutout', cv83 = 31
Zero (0) with oval body shape, and a slash cutout
zero = 'oval-reverse-slashed-cutout', cv83 = 32
Zero (0) with oval body shape, and a reverse-slash cutout
zero = 'oval-tall-slashed-cutout', cv83 = 33
Zero (0) with oval body shape, and a taller slash cutout
zero = 'oval-tall-reverse-slashed-cutout', cv83 = 34
Zero (0) with oval body shape, and a taller reverse-slash cutout
zero = 'oval-vertical-bar-cutout', cv83 = 35
Zero (0) with oval body shape, and a vertical bar cutout
zero = 'oval-top-right-cutout', cv83 = 36
Zero (0) with oval body shape, and the top-right bit cutout
zero = 'diamond-unslashed', cv83 = 37
Zero (0) with diamond body shape; without slash
zero = 'diamond-slashed', cv83 = 38
Zero (0) with diamond body shape, and slash
zero = 'diamond-reverse-slashed', cv83 = 39
Zero (0) with diamond body shape, and revese slash
zero = 'diamond-tall-slashed', cv83 = 40
Zero (0) with diamond body shape, and tall slash
zero = 'diamond-tall-reverse-slashed', cv83 = 41
Zero (0) with diamond body shape, and tall reverse slash
zero = 'diamond-dotted', cv83 = 42
Zero (0) with diamond body shape, and center dot
zero = 'diamond-long-dotted', cv83 = 43
Zero (0) with diamond body shape, and long center dot
zero = 'diamond-slashed-split', cv83 = 44
Zero (0) with diamond body shape, and slash separated from the outline
zero = 'diamond-reverse-slashed-split', cv83 = 45
Zero (0) with diamond body shape, and reverse slash separated from the outline
zero = 'diamond-broken-slash', cv83 = 46
Zero (0) with diamond body shape, and slash broken in the middle (like in Fixedsys)
zero = 'diamond-broken-reverse-slash', cv83 = 47
Zero (0) with diamond body shape, and reverse slash broken in the middle
zero = 'diamond-broken-vertical-bar', cv83 = 48
Zero (0) with diamond body shape, and vertical bar broken in the middle
zero = 'diamond-slashed-cutout', cv83 = 49
Zero (0) with diamond body shape, and a slash cutout
zero = 'diamond-reverse-slashed-cutout', cv83 = 50
Zero (0) with diamond body shape, and a reverse-slash cutout
zero = 'diamond-tall-slashed-cutout', cv83 = 51
Zero (0) with diamond body shape, and a taller slash cutout
zero = 'diamond-tall-reverse-slashed-cutout', cv83 = 52
Zero (0) with diamond body shape, and a taller reverse-slash cutout
zero = 'diamond-vertical-bar-cutout', cv83 = 53
Zero (0) with diamond body shape, and a vertical bar cutout
zero = 'diamond-top-right-cutout', cv83 = 54
Zero (0) with diamond body shape, and the top-right bit cutout
+
zero = 'unslashed', cv85 = 1
Zero (0) with standard body shape; without slash
zero = 'slashed', cv85 = 2
Zero (0) with standard body shape, and slash (default)
zero = 'reverse-slashed', cv85 = 3
Zero (0) with standard body shape, and revese slash
zero = 'tall-slashed', cv85 = 4
Zero (0) with standard body shape, and tall slash
zero = 'tall-reverse-slashed', cv85 = 5
Zero (0) with standard body shape, and tall reverse slash
zero = 'dotted', cv85 = 6
Zero (0) with standard body shape, and center dot
zero = 'long-dotted', cv85 = 7
Zero (0) with standard body shape, and long center dot
zero = 'slashed-split', cv85 = 8
Zero (0) with standard body shape, and slash separated from the outline
zero = 'reverse-slashed-split', cv85 = 9
Zero (0) with standard body shape, and reverse slash separated from the outline
zero = 'broken-slash', cv85 = 10
Zero (0) with standard body shape, and slash broken in the middle (like in Fixedsys)
zero = 'broken-reverse-slash', cv85 = 11
Zero (0) with standard body shape, and reverse slash broken in the middle
zero = 'broken-vertical-bar', cv85 = 12
Zero (0) with standard body shape, and vertical bar broken in the middle
zero = 'slashed-cutout', cv85 = 13
Zero (0) with standard body shape, and a slash cutout
zero = 'reverse-slashed-cutout', cv85 = 14
Zero (0) with standard body shape, and a reverse-slash cutout
zero = 'tall-slashed-cutout', cv85 = 15
Zero (0) with standard body shape, and a taller slash cutout
zero = 'tall-reverse-slashed-cutout', cv85 = 16
Zero (0) with standard body shape, and a taller reverse-slash cutout
zero = 'vertical-bar-cutout', cv85 = 17
Zero (0) with standard body shape, and a vertical bar cutout
zero = 'top-right-cutout', cv85 = 18
Zero (0) with standard body shape, and the top-right bit cutout
zero = 'oval-unslashed', cv85 = 19
Zero (0) with oval body shape; without slash
zero = 'oval-slashed', cv85 = 20
Zero (0) with oval body shape, and slash
zero = 'oval-reverse-slashed', cv85 = 21
Zero (0) with oval body shape, and revese slash
zero = 'oval-tall-slashed', cv85 = 22
Zero (0) with oval body shape, and tall slash
zero = 'oval-tall-reverse-slashed', cv85 = 23
Zero (0) with oval body shape, and tall reverse slash
zero = 'oval-dotted', cv85 = 24
Zero (0) with oval body shape, and center dot
zero = 'oval-long-dotted', cv85 = 25
Zero (0) with oval body shape, and long center dot
zero = 'oval-slashed-split', cv85 = 26
Zero (0) with oval body shape, and slash separated from the outline
zero = 'oval-reverse-slashed-split', cv85 = 27
Zero (0) with oval body shape, and reverse slash separated from the outline
zero = 'oval-broken-slash', cv85 = 28
Zero (0) with oval body shape, and slash broken in the middle (like in Fixedsys)
zero = 'oval-broken-reverse-slash', cv85 = 29
Zero (0) with oval body shape, and reverse slash broken in the middle
zero = 'oval-broken-vertical-bar', cv85 = 30
Zero (0) with oval body shape, and vertical bar broken in the middle
zero = 'oval-slashed-cutout', cv85 = 31
Zero (0) with oval body shape, and a slash cutout
zero = 'oval-reverse-slashed-cutout', cv85 = 32
Zero (0) with oval body shape, and a reverse-slash cutout
zero = 'oval-tall-slashed-cutout', cv85 = 33
Zero (0) with oval body shape, and a taller slash cutout
zero = 'oval-tall-reverse-slashed-cutout', cv85 = 34
Zero (0) with oval body shape, and a taller reverse-slash cutout
zero = 'oval-vertical-bar-cutout', cv85 = 35
Zero (0) with oval body shape, and a vertical bar cutout
zero = 'oval-top-right-cutout', cv85 = 36
Zero (0) with oval body shape, and the top-right bit cutout
zero = 'diamond-unslashed', cv85 = 37
Zero (0) with diamond body shape; without slash
zero = 'diamond-slashed', cv85 = 38
Zero (0) with diamond body shape, and slash
zero = 'diamond-reverse-slashed', cv85 = 39
Zero (0) with diamond body shape, and revese slash
zero = 'diamond-tall-slashed', cv85 = 40
Zero (0) with diamond body shape, and tall slash
zero = 'diamond-tall-reverse-slashed', cv85 = 41
Zero (0) with diamond body shape, and tall reverse slash
zero = 'diamond-dotted', cv85 = 42
Zero (0) with diamond body shape, and center dot
zero = 'diamond-long-dotted', cv85 = 43
Zero (0) with diamond body shape, and long center dot
zero = 'diamond-slashed-split', cv85 = 44
Zero (0) with diamond body shape, and slash separated from the outline
zero = 'diamond-reverse-slashed-split', cv85 = 45
Zero (0) with diamond body shape, and reverse slash separated from the outline
zero = 'diamond-broken-slash', cv85 = 46
Zero (0) with diamond body shape, and slash broken in the middle (like in Fixedsys)
zero = 'diamond-broken-reverse-slash', cv85 = 47
Zero (0) with diamond body shape, and reverse slash broken in the middle
zero = 'diamond-broken-vertical-bar', cv85 = 48
Zero (0) with diamond body shape, and vertical bar broken in the middle
zero = 'diamond-slashed-cutout', cv85 = 49
Zero (0) with diamond body shape, and a slash cutout
zero = 'diamond-reverse-slashed-cutout', cv85 = 50
Zero (0) with diamond body shape, and a reverse-slash cutout
zero = 'diamond-tall-slashed-cutout', cv85 = 51
Zero (0) with diamond body shape, and a taller slash cutout
zero = 'diamond-tall-reverse-slashed-cutout', cv85 = 52
Zero (0) with diamond body shape, and a taller reverse-slash cutout
zero = 'diamond-vertical-bar-cutout', cv85 = 53
Zero (0) with diamond body shape, and a vertical bar cutout
zero = 'diamond-top-right-cutout', cv85 = 54
Zero (0) with diamond body shape, and the top-right bit cutout
- Styles for `1`: -
one = 'line', cv84 = 1
1 drawn just like a straight line
one = 'no-base', cv84 = 2
1 without bottom serif (default for Sans)
one = 'base', cv84 = 3
1 with bottom serif (default for Slab)
one = 'no-base-long-top-serif', cv84 = 4
1 without bottom serif and with a long top serif
one = 'base-long-top-serif', cv84 = 5
1 with bottom serif and a long top serif
one = 'no-base-flat-top-serif', cv84 = 6
1 without bottom serif and with a flat top serif
one = 'base-flat-top-serif', cv84 = 7
1 with bottom serif and a flat top serif
one = 'no-base-top-cut', cv84 = 8
1 without bottom serif and with a diagonal cut at top
one = 'base-top-cut', cv84 = 9
1 with bottom serif and a diagonal cut at top
+
one = 'line', cv86 = 1
1 drawn just like a straight line
one = 'no-base', cv86 = 2
1 without bottom serif (default for Sans)
one = 'base', cv86 = 3
1 with bottom serif (default for Slab)
one = 'no-base-long-top-serif', cv86 = 4
1 without bottom serif and with a long top serif
one = 'base-long-top-serif', cv86 = 5
1 with bottom serif and a long top serif
one = 'no-base-flat-top-serif', cv86 = 6
1 without bottom serif and with a flat top serif
one = 'base-flat-top-serif', cv86 = 7
1 with bottom serif and a flat top serif
one = 'no-base-top-cut', cv86 = 8
1 without bottom serif and with a diagonal cut at top
one = 'base-top-cut', cv86 = 9
1 with bottom serif and a diagonal cut at top
- Styles for `2`: -
two = 'straight-neck', cv85 = 1
2 with straight neck
two = 'curly-neck', cv85 = 2
2 with curly neck (default)
+
two = 'straight-neck', cv87 = 1
2 with straight neck
two = 'curly-neck', cv87 = 2
2 with curly neck (default)
- Styles for `3`: -
three = 'flat-top', cv86 = 1
Flat top 3 (Like Museo Sans / Montserrat)
three = 'two-arcs', cv86 = 2
Arched top 3 (default)
+
three = 'flat-top', cv88 = 1
Flat top 3 (Like Museo Sans / Montserrat)
three = 'two-arcs', cv88 = 2
Arched top 3 (default)
- Styles for `4`: -
four = 'closed', cv87 = 1
4 with closed contour
four = 'closed-non-crossing', cv87 = 2
4 with closed contour but the horizontal bar does not overflow the vertical bar
four = 'semi-open', cv87 = 3
4 with semi-open contour (default)
four = 'semi-open-non-crossing', cv87 = 4
4 with semi-open contour but the horizontal bar does not overflow the vertical bar
four = 'open', cv87 = 5
4 with open contour
four = 'open-non-crossing', cv87 = 6
4 with open contour but the horizontal bar does not overflow the vertical bar
+
four = 'closed', cv89 = 1
4 with closed contour
four = 'closed-non-crossing', cv89 = 2
4 with closed contour but the horizontal bar does not overflow the vertical bar
four = 'semi-open', cv89 = 3
4 with semi-open contour (default)
four = 'semi-open-non-crossing', cv89 = 4
4 with semi-open contour but the horizontal bar does not overflow the vertical bar
four = 'open', cv89 = 5
4 with open contour
four = 'open-non-crossing', cv89 = 6
4 with open contour but the horizontal bar does not overflow the vertical bar
- Styles for `5`: -
five = 'upright-arched', cv88 = 1
5 with upright upper-left bar, and arched middle part (default)
five = 'oblique-arched', cv88 = 2
5 with arched middle part
five = 'upright-flat', cv88 = 3
5 with upright upper-left bar, and flat middle part
five = 'oblique-flat', cv88 = 4
5 with flat middle part
+
five = 'upright-arched', cv90 = 1
5 with upright upper-left bar, and arched middle part (default)
five = 'upright-flat', cv90 = 2
5 with upright upper-left bar, and flat middle part
five = 'oblique-arched', cv90 = 3
5 with arched middle part
five = 'oblique-flat', cv90 = 4
5 with flat middle part
- Styles for `6`: -
six = 'closed-contour', cv89 = 1
6 with a more closed contour
six = 'open-contour', cv89 = 2
6 with a more open contour
six = 'straight-bar', cv89 = 3
6 with a straight bar (default)
+
six = 'closed-contour', cv91 = 1
6 with a more closed contour
six = 'open-contour', cv91 = 2
6 with a more open contour
six = 'straight-bar', cv91 = 3
6 with a straight bar (default)
- Styles for `7`: -
seven = 'straight-serifless', cv90 = 1
7 with straight stem; without serifs (default for Sans)
seven = 'straight-serifless-crossbar', cv90 = 2
7 with straight stem, and crossbar; without serifs
seven = 'straight-serifed', cv90 = 3
7 with straight stem, and serifs (default for Slab)
seven = 'straight-serifed-crossbar', cv90 = 4
7 with straight stem, serifs, and crossbar
seven = 'bend-serifless', cv90 = 5
7 with bend stem; without serifs
seven = 'bend-serifless-crossbar', cv90 = 6
7 with bend stem, and crossbar; without serifs
seven = 'bend-serifed', cv90 = 7
7 with bend stem, and serifs
seven = 'bend-serifed-crossbar', cv90 = 8
7 with bend stem, serifs, and crossbar
seven = 'curly-serifless', cv90 = 9
7 with curly stem; without serifs
seven = 'curly-serifless-crossbar', cv90 = 10
7 with curly stem, and crossbar; without serifs
seven = 'curly-serifed', cv90 = 11
7 with curly stem, and serifs
seven = 'curly-serifed-crossbar', cv90 = 12
7 with curly stem, serifs, and crossbar
+
seven = 'straight-serifless', cv92 = 1
7 with straight stem; without serifs (default for Sans)
seven = 'straight-serifless-crossbar', cv92 = 2
7 with straight stem, and crossbar; without serifs
seven = 'straight-serifed', cv92 = 3
7 with straight stem, and serifs (default for Slab)
seven = 'straight-serifed-crossbar', cv92 = 4
7 with straight stem, serifs, and crossbar
seven = 'bend-serifless', cv92 = 5
7 with bend stem; without serifs
seven = 'bend-serifless-crossbar', cv92 = 6
7 with bend stem, and crossbar; without serifs
seven = 'bend-serifed', cv92 = 7
7 with bend stem, and serifs
seven = 'bend-serifed-crossbar', cv92 = 8
7 with bend stem, serifs, and crossbar
seven = 'curly-serifless', cv92 = 9
7 with curly stem; without serifs
seven = 'curly-serifless-crossbar', cv92 = 10
7 with curly stem, and crossbar; without serifs
seven = 'curly-serifed', cv92 = 11
7 with curly stem, and serifs
seven = 'curly-serifed-crossbar', cv92 = 12
7 with curly stem, serifs, and crossbar
- Styles for `8`: -
eight = 'crossing', cv91 = 1
8 with crossing middle part (default)
eight = 'two-circles', cv91 = 2
8 looks like two circles joined together
eight = 'crossing-asymmetric', cv91 = 3
8 looks asymmetric crossing middle part
+
eight = 'crossing', cv93 = 1
8 with crossing middle part (default)
eight = 'two-circles', cv93 = 2
8 looks like two circles joined together
eight = 'crossing-asymmetric', cv93 = 3
8 looks asymmetric crossing middle part
- Styles for `9`: -
nine = 'closed-contour', cv92 = 1
9 with a more closed contour
nine = 'open-contour', cv92 = 2
9 with a more open contour
nine = 'straight-bar', cv92 = 3
9 with a straight bar (default)
+
nine = 'closed-contour', cv94 = 1
9 with a more closed contour
nine = 'open-contour', cv94 = 2
9 with a more open contour
nine = 'straight-bar', cv94 = 3
9 with a straight bar (default)
- Styles for `öẋ`, `ij` (Dot and Comma shape in diacritics): -
diacritic-dot = 'round', cv93 = 1
Dots and Commas in diacritics are round (default)
diacritic-dot = 'square', cv93 = 2
Dots and Commas in diacritics are square
+
diacritic-dot = 'round', cv95 = 1
Dots and Commas in diacritics are round (default)
diacritic-dot = 'square', cv95 = 2
Dots and Commas in diacritics are square
- Styles for `.,`, `:;` (Dot and Comma shape in punctuations and symbols): -
punctuation-dot = 'round', cv94 = 1
Small punctuations (like ., ,) use round dots (default)
punctuation-dot = 'square', cv94 = 2
Small punctuations (like ., ,) use square dots
+
punctuation-dot = 'round', cv96 = 1
Small punctuations (like ., ,) use round dots (default)
punctuation-dot = 'square', cv96 = 2
Small punctuations (like ., ,) use square dots
- Styles for `~`: -
tilde = 'high', cv95 = 1
Higher tilde ~
tilde = 'low', cv95 = 2
Lower tilde ~ (default)
+
tilde = 'high', cv97 = 1
Higher tilde ~
tilde = 'low', cv97 = 2
Lower tilde ~ (default)
- Styles for `*`: -
asterisk = 'penta-high', cv96 = 1
Asterisk (*) with five-pointed shape, and high position (default)
asterisk = 'penta-mid', cv96 = 2
Asterisk (*) with five-pointed shape, and medium position
asterisk = 'penta-low', cv96 = 3
Asterisk (*) with five-pointed shape, and low position
asterisk = 'turn-penta-high', cv96 = 4
Asterisk (*) with turned five-pointed shape, and high position
asterisk = 'turn-penta-mid', cv96 = 5
Asterisk (*) with turned five-pointed shape, and medium position
asterisk = 'turn-penta-low', cv96 = 6
Asterisk (*) with turned five-pointed shape, and low position
asterisk = 'hex-high', cv96 = 7
Asterisk (*) with six-pointed shape, and high position
asterisk = 'hex-mid', cv96 = 8
Asterisk (*) with six-pointed shape, and medium position
asterisk = 'hex-low', cv96 = 9
Asterisk (*) with six-pointed shape, and low position
asterisk = 'turn-hex-high', cv96 = 10
Asterisk (*) with turned six-pointed shape, and high position
asterisk = 'turn-hex-mid', cv96 = 11
Asterisk (*) with turned six-pointed shape, and medium position
asterisk = 'turn-hex-low', cv96 = 12
Asterisk (*) with turned six-pointed shape, and low position
+
asterisk = 'penta-high', cv98 = 1
Asterisk (*) with five-pointed shape, and high position (default)
asterisk = 'penta-mid', cv98 = 2
Asterisk (*) with five-pointed shape, and medium position
asterisk = 'penta-low', cv98 = 3
Asterisk (*) with five-pointed shape, and low position
asterisk = 'turn-penta-high', cv98 = 4
Asterisk (*) with turned five-pointed shape, and high position
asterisk = 'turn-penta-mid', cv98 = 5
Asterisk (*) with turned five-pointed shape, and medium position
asterisk = 'turn-penta-low', cv98 = 6
Asterisk (*) with turned five-pointed shape, and low position
asterisk = 'hex-high', cv98 = 7
Asterisk (*) with six-pointed shape, and high position
asterisk = 'hex-mid', cv98 = 8
Asterisk (*) with six-pointed shape, and medium position
asterisk = 'hex-low', cv98 = 9
Asterisk (*) with six-pointed shape, and low position
asterisk = 'turn-hex-high', cv98 = 10
Asterisk (*) with turned six-pointed shape, and high position
asterisk = 'turn-hex-mid', cv98 = 11
Asterisk (*) with turned six-pointed shape, and medium position
asterisk = 'turn-hex-low', cv98 = 12
Asterisk (*) with turned six-pointed shape, and low position
- Styles for `_`: -
underscore = 'above-baseline', cv97 = 1
Extra-high _, placed right below baseline
underscore = 'high', cv97 = 2
Higher underscore _, placed right below baseline (default)
underscore = 'low', cv97 = 3
Lower underscore _, placed right above descender line
+
underscore = 'above-baseline', cv99 = 1
Extra-high _, placed right above baseline
underscore = 'high', cv99 = 2
Higher underscore _, placed right below baseline (default)
underscore = 'low', cv99 = 3
Lower underscore _, placed right above descender line
- Styles for `^`: -
caret = 'high', cv98 = 1
Higher circumflex ^
caret = 'medium', cv98 = 2
Lower circumflex ^ (default)
caret = 'low', cv98 = 3
Lower circumflex ^
+
caret = 'high', VSAA = 1
Higher circumflex ^
caret = 'medium', VSAA = 2
Lower circumflex ^ (default)
caret = 'low', VSAA = 3
Lower circumflex ^
+ - Styles for `` ` ``: +
ascii-grave = 'straight', VSAB = 1
Show ASCII grave (`) as short diagonal straight bar. (default)
ascii-grave = 'raised-inverse-comma', VSAB = 2
Show ASCII grave (`) as raised comma.
ascii-grave = 'raised-turn-comma', VSAB = 3
Show ASCII grave (`) as raised turned comma, identical to curly open single quote symbols (U+2018).
+ - Styles for `'`: +
ascii-single-quote = 'straight', VSAC = 1
Show ASCII quote (") as short vertical straight bar. (default)
ascii-single-quote = 'raised-comma', VSAC = 2
Show ASCII quote (") as raised comma.
- Styles for `(`, `)`: -
paren = 'normal', cv99 = 1
Parenthesis with normal contour (default)
paren = 'large-contour', cv99 = 2
Parenthesis with larger contour, like that in Monaco
paren = 'flat-arc', cv99 = 3
Parenthesis with flat arc, like that in JetBrains Mono
+
paren = 'normal', VSAD = 1
Parenthesis with normal contour (default)
paren = 'large-contour', VSAD = 2
Parenthesis with larger contour, like that in Monaco
paren = 'flat-arc', VSAD = 3
Parenthesis with flat arc, like that in JetBrains Mono
- Styles for `{`, `}`: -
brace = 'straight', VSAA = 1
More straight braces
brace = 'curly', VSAA = 2
More curly braces (default)
brace = 'curly-flat-boundary', VSAA = 3
Curly braces with flat boundary shape
+
brace = 'straight', VSAE = 1
More straight braces
brace = 'curly', VSAE = 2
More curly braces (default)
brace = 'curly-flat-boundary', VSAE = 3
Curly braces with flat boundary shape
- Styles for `«`, `»` (Guillemets): -
guillemet = 'straight', VSAB = 1
Straight Guillemets (« »)
guillemet = 'curly', VSAB = 2
Curly Guillemets (« ») (default)
+
guillemet = 'straight', VSAF = 1
Straight Guillemets (« »)
guillemet = 'curly', VSAF = 2
Curly Guillemets (« ») (default)
- Styles for `#`: -
number-sign = 'upright', VSAC = 1
Number sign with vertical bars (default)
number-sign = 'slanted', VSAC = 2
Number sign with slanted bars
number-sign = 'upright-open', VSAC = 3
Number sign with vertical bars and open inner
number-sign = 'slanted-open', VSAC = 4
Number sign with slanted bars and open inner
number-sign = 'upright-tall', VSAC = 5
Number sign with vertical bars and taller than digits
number-sign = 'slanted-tall', VSAC = 6
Number sign with slanted bars and taller than digits
number-sign = 'upright-open-tall', VSAC = 7
Number sign with vertical bars, open inner, and taller than digits
number-sign = 'slanted-open-tall', VSAC = 8
Number sign with slanted bars, open inner, and taller than digits
+
number-sign = 'upright', VSAG = 1
Number sign with vertical bars (default)
number-sign = 'slanted', VSAG = 2
Number sign with slanted bars
number-sign = 'upright-open', VSAG = 3
Number sign with vertical bars and open inner
number-sign = 'slanted-open', VSAG = 4
Number sign with slanted bars and open inner
number-sign = 'upright-tall', VSAG = 5
Number sign with vertical bars and taller than digits
number-sign = 'slanted-tall', VSAG = 6
Number sign with slanted bars and taller than digits
number-sign = 'upright-open-tall', VSAG = 7
Number sign with vertical bars, open inner, and taller than digits
number-sign = 'slanted-open-tall', VSAG = 8
Number sign with slanted bars, open inner, and taller than digits
- Styles for `&`: -
ampersand = 'closed', VSAD = 1
Ampersand (&) with a closed contour (default)
ampersand = 'upper-open', VSAD = 2
Ampersand (&) with an open contour at upper half
ampersand = 'lower-open', VSAD = 3
Ampersand (&) with an open contour at lower half
ampersand = 'flat-top', VSAD = 4
Ampersand (&) drawn with a flat top
ampersand = 'et-toothed', VSAD = 5
Ampersand (&) drawn like a ligature of Ɛ and t with tooth
ampersand = 'et-toothless-corner', VSAD = 6
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (corner)
ampersand = 'et-toothless-rounded', VSAD = 7
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (rounded)
ampersand = 'et-tailed', VSAD = 8
Ampersand (&) drawn like a ligature of Ɛ and t with tail
+
ampersand = 'closed', VSAH = 1
Ampersand (&) with a closed contour (default)
ampersand = 'upper-open', VSAH = 2
Ampersand (&) with an open contour at upper half
ampersand = 'lower-open', VSAH = 3
Ampersand (&) with an open contour at lower half
ampersand = 'flat-top', VSAH = 4
Ampersand (&) drawn with a flat top
ampersand = 'et-toothed', VSAH = 5
Ampersand (&) drawn like a ligature of Ɛ and t with tooth
ampersand = 'et-toothless-corner', VSAH = 6
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (corner)
ampersand = 'et-toothless-rounded', VSAH = 7
Ampersand (&) drawn like a ligature of Ɛ and t without tooth (rounded)
ampersand = 'et-tailed', VSAH = 8
Ampersand (&) drawn like a ligature of Ɛ and t with tail
- Styles for `@`: -
at = 'threefold', VSAE = 1
At symbol (@) with three-fold body (default)
at = 'threefold-tall', VSAE = 2
At symbol (@) with three-fold body, and tall height
at = 'threefold-solid-inner', VSAE = 3
At symbol (@) with three-fold body, and solid inner
at = 'threefold-solid-inner-tall', VSAE = 4
At symbol (@) with three-fold body, solid inner, and tall height
at = 'fourfold', VSAE = 5
At symbol (@) with four-fold body
at = 'fourfold-tall', VSAE = 6
At symbol (@) with four-fold body, and tall height
at = 'fourfold-solid-inner', VSAE = 7
At symbol (@) with four-fold body, and solid inner
at = 'fourfold-solid-inner-tall', VSAE = 8
At symbol (@) with four-fold body, solid inner, and tall height
at = 'compact', VSAE = 9
At symbol (@) with compact body
+
at = 'threefold', VSAI = 1
At symbol (@) with three-fold body (default)
at = 'threefold-tall', VSAI = 2
At symbol (@) with three-fold body, and tall height
at = 'threefold-solid-inner', VSAI = 3
At symbol (@) with three-fold body, and solid inner
at = 'threefold-solid-inner-tall', VSAI = 4
At symbol (@) with three-fold body, solid inner, and tall height
at = 'fourfold', VSAI = 5
At symbol (@) with four-fold body
at = 'fourfold-tall', VSAI = 6
At symbol (@) with four-fold body, and tall height
at = 'fourfold-solid-inner', VSAI = 7
At symbol (@) with four-fold body, and solid inner
at = 'fourfold-solid-inner-tall', VSAI = 8
At symbol (@) with four-fold body, solid inner, and tall height
at = 'compact', VSAI = 9
At symbol (@) with compact body
- Styles for `$`: -
dollar = 'open', VSAF = 1
Dollar symbol with open contour
dollar = 'through', VSAF = 2
Dollar symbol with strike-through vertical bar (default)
dollar = 'interrupted', VSAF = 3
Dollar symbol with interrupted strike-through vertical bar
dollar = 'open-cap', VSAF = 4
Dollar symbol with open contour, sized not exceeding baseline and ascender
dollar = 'through-cap', VSAF = 5
Dollar symbol with strike-through vertical bar, sized not exceeding baseline and ascender
dollar = 'interrupted-cap', VSAF = 6
Dollar symbol with interrupted strike-through vertical bar, sized not exceeding baseline and ascender
+
dollar = 'open', VSAJ = 1
Dollar symbol with open contour
dollar = 'through', VSAJ = 2
Dollar symbol with strike-through vertical bar (default)
dollar = 'interrupted', VSAJ = 3
Dollar symbol with interrupted strike-through vertical bar
dollar = 'open-cap', VSAJ = 4
Dollar symbol with open contour, sized not exceeding baseline and ascender
dollar = 'through-cap', VSAJ = 5
Dollar symbol with strike-through vertical bar, sized not exceeding baseline and ascender
dollar = 'interrupted-cap', VSAJ = 6
Dollar symbol with interrupted strike-through vertical bar, sized not exceeding baseline and ascender
+ - Styles for `¢`: +
cent = 'open', VSAK = 1
Cent sign (¢) with open contour
cent = 'through', VSAK = 2
Cent sign (¢) with vertical bar all through the c part (default)
cent = 'bar-interrupted', VSAK = 3
Cent sign (¢) with vertical bar breaks at center
cent = 'open-cap', VSAK = 4
Cent sign (¢) with open contour, sized not exceeding baseline and ascender
cent = 'through-cap', VSAK = 5
Cent sign (¢) with vertical bar all through the c part, sized not exceeding baseline and ascender
cent = 'bar-interrupted-cap', VSAK = 6
Cent sign (¢) with vertical bar breaks at center, sized not exceeding baseline and ascender
- Styles for `%`: -
percent = 'dots', VSAG = 1
Percent % with rectangular dots
percent = 'rings-segmented-slash', VSAG = 2
Percent % with rings and segmented slash (default)
percent = 'rings-continuous-slash', VSAG = 3
Percent % with rings and continuous bar
percent = 'rings-continuous-slash-also-connected', VSAG = 4
Percent % with rings and continuous bar and the slash in % is also connected to the top-left ring
+
percent = 'dots', VSAL = 1
Percent % with rectangular dots
percent = 'rings-segmented-slash', VSAL = 2
Percent % with rings and segmented slash (default)
percent = 'rings-continuous-slash', VSAL = 3
Percent % with rings and continuous bar
percent = 'rings-continuous-slash-also-connected', VSAL = 4
Percent % with rings and continuous bar and the slash in % is also connected to the top-left ring
- Styles for `|`, `¦`: -
bar = 'natural-slope', VSAH = 1
Bar punctuations (|) has a natural slope under italics and oblique (default)
bar = 'force-upright', VSAH = 2
Bar punctuations (|) is forced upright under italics and oblique
- - Styles for `'`: -
ascii-single-quote = 'straight', VSAI = 1
Show ASCII quote (") as short vertical straight bar. (default)
ascii-single-quote = 'raised-comma', VSAI = 2
Show ASCII quote (") as raised comma.
- - Styles for `` ` ``: -
ascii-grave = 'straight', VSAJ = 1
Show ASCII grave (`) as short diagonal straight bar. (default)
ascii-grave = 'raised-inverse-comma', VSAJ = 2
Show ASCII grave (`) as raised comma.
ascii-grave = 'raised-turn-comma', VSAJ = 3
Show ASCII grave (`) as raised turned comma, identical to curly open single quote symbols (U+2018).
+
bar = 'natural-slope', VSAM = 1
Bar punctuations (|) has a natural slope under italics and oblique (default)
bar = 'force-upright', VSAM = 2
Bar punctuations (|) is forced upright under italics and oblique
- Styles for `?`: -
question = 'smooth', VSAK = 1
Smooth question mark (?) (default)
question = 'corner', VSAK = 2
Question mark (?) with a corner at middle
question = 'corner-flat-hooked', VSAK = 3
Question mark (?) with a corner at middle and flat hook
+
question = 'smooth', VSAN = 1
Smooth question mark (?) (default)
question = 'corner', VSAN = 2
Question mark (?) with a corner at middle
question = 'corner-flat-hooked', VSAN = 3
Question mark (?) with a corner at middle and flat hook
- Styles for `¶`: -
pilcrow = 'high', VSAL = 1
Higher pilcrow sign (default)
pilcrow = 'low', VSAL = 2
Lower pilcrow sign
- - Styles for `¢`: -
cent = 'open', VSAM = 1
Cent sign (¢) with open contour
cent = 'through', VSAM = 2
Cent sign (¢) with vertical bar all through the c part (default)
cent = 'bar-interrupted', VSAM = 3
Cent sign (¢) with vertical bar breaks at center
cent = 'open-cap', VSAM = 4
Cent sign (¢) with open contour, sized not exceeding baseline and ascender
cent = 'through-cap', VSAM = 5
Cent sign (¢) with vertical bar all through the c part, sized not exceeding baseline and ascender
cent = 'bar-interrupted-cap', VSAM = 6
Cent sign (¢) with vertical bar breaks at center, sized not exceeding baseline and ascender
+
pilcrow = 'high', VSAO = 1
Higher pilcrow sign (default)
pilcrow = 'low', VSAO = 2
Lower pilcrow sign
- Styles for `∂` (Partial derivative symbol): -
partial-derivative = 'straight-bar', VSAN = 1
The upper bar of the partial derivative symbol is straight
partial-derivative = 'curly-bar', VSAN = 2
The upper bar of the partial derivative symbol is curly (default)
+
partial-derivative = 'straight-bar', VSAP = 1
The upper bar of the partial derivative symbol is straight
partial-derivative = 'curly-bar', VSAP = 2
The upper bar of the partial derivative symbol is curly (default)
- Styles for `µ` (Micro sign): -
micro-sign = 'toothed-serifless', VSAO = 1
Micro Sign (µ) with toothed shape; without serifs (default for Sans Upright)
micro-sign = 'toothed-motion-serifed', VSAO = 2
Micro Sign (µ) with toothed shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothed-bottom-right-serifed', VSAO = 3
Micro Sign (µ) with toothed shape, and serif at bottom-right
micro-sign = 'toothed-serifed', VSAO = 4
Micro Sign (µ) with toothed shape, and serifs (default for Slab Upright)
micro-sign = 'tailed-serifless', VSAO = 5
Micro Sign (µ) with tailed shape; without serifs (default for Sans Italic)
micro-sign = 'tailed-motion-serifed', VSAO = 6
Micro Sign (µ) with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
micro-sign = 'tailed-serifed', VSAO = 7
Micro Sign (µ) with tailed shape, and serifs
micro-sign = 'toothless-corner-serifless', VSAO = 8
Micro Sign (µ) with toothless (corner bottom-right) shape; without serifs
micro-sign = 'toothless-corner-motion-serifed', VSAO = 9
Micro Sign (µ) with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-corner-serifed', VSAO = 10
Micro Sign (µ) with toothless (corner bottom-right) shape, and serifs
micro-sign = 'toothless-rounded-serifless', VSAO = 11
Micro Sign (µ) with toothless (rounded) shape; without serifs
micro-sign = 'toothless-rounded-motion-serifed', VSAO = 12
Micro Sign (µ) with toothless (rounded) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-rounded-serifed', VSAO = 13
Micro Sign (µ) with toothless (rounded) shape, and serifs
+
micro-sign = 'toothed-serifless', VSAQ = 1
Micro Sign (µ) with toothed shape; without serifs (default for Sans Upright)
micro-sign = 'toothed-motion-serifed', VSAQ = 2
Micro Sign (µ) with toothed shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothed-bottom-right-serifed', VSAQ = 3
Micro Sign (µ) with toothed shape, and serif at bottom-right
micro-sign = 'toothed-serifed', VSAQ = 4
Micro Sign (µ) with toothed shape, and serifs (default for Slab Upright)
micro-sign = 'tailed-serifless', VSAQ = 5
Micro Sign (µ) with tailed shape; without serifs (default for Sans Italic)
micro-sign = 'tailed-motion-serifed', VSAQ = 6
Micro Sign (µ) with tailed shape, and motion serifs at top-left and bottom-right (default for Slab Italic)
micro-sign = 'tailed-serifed', VSAQ = 7
Micro Sign (µ) with tailed shape, and serifs
micro-sign = 'toothless-corner-serifless', VSAQ = 8
Micro Sign (µ) with toothless (corner bottom-right) shape; without serifs
micro-sign = 'toothless-corner-motion-serifed', VSAQ = 9
Micro Sign (µ) with toothless (corner bottom-right) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-corner-serifed', VSAQ = 10
Micro Sign (µ) with toothless (corner bottom-right) shape, and serifs
micro-sign = 'toothless-rounded-serifless', VSAQ = 11
Micro Sign (µ) with toothless (rounded) shape; without serifs
micro-sign = 'toothless-rounded-motion-serifed', VSAQ = 12
Micro Sign (µ) with toothless (rounded) shape, and motion serifs at top-left and bottom-right
micro-sign = 'toothless-rounded-serifed', VSAQ = 13
Micro Sign (µ) with toothless (rounded) shape, and serifs
- Styles for `<=`, `>=` (Less-equal and Greater-equal ligations):
lig-ltgteq = 'flat', VLAA = 1
The lower bar of <= and >= ligation is flat (default)
lig-ltgteq = 'slanted', VLAA = 2
The lower bar of <= and >= ligation is slanted
- Styles for `!=` (Not-equal ligations): @@ -493,30 +502,34 @@ Subsection `variants` is used to configure character variants in the font. Prope #### Configuring Weights, Widths and Slopes -Subsection `weights` is used to change the weight grades that the custom family needs. It is a dictionary of either strings formatted in `default.` format, meaning reusing a default weight grade, or sub-objects with properties: +Subsection `weights` is used to change the weight grades that the custom family needs. It is a dictionary from the filename suffix (in PascalCase) to either... -* `shape`: Number, configures the weight grade of the glyphs' shapes. -* `menu`: Integer, configures the weight grade used when naming fonts. -* `css`: Integer, configures the weight grade used in web font CSS. + * A string formatted in `default.` format, meaning reusing a default weight grade; + * Or, a sub-object with properties: + * `shape`: Number, configures the weight grade of the glyphs' shapes. + * `menu`: Integer, configures the weight grade used when naming fonts. + * `css`: Integer, configures the weight grade used in web font CSS. -Subsection `widths` is used to change the width grades that the custom family needs. It is a dictionary of either strings formatted in `default.` format, meaning reusing a default width grade, or sub-objects with properties: +Subsection `widths` is used to change the width grades that the custom family needs. It is a dictionary from the filename suffix (in PascalCase) to either... -* `shape`: Number, configures the width of the glyphs' shapes, measured in 1/1000 em. -* `menu`: Integer, configures the width grade used when naming fonts. The valid values are `1` to `9`, inclusive. -* `css`: String, configures the [font-stretch](https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch) value used in web font CSS. + * A string formatted in `default.` format, meaning reusing a default width grade; + * Or, a sub-object with properties: + * `shape`: Number, configures the width of the glyphs' shapes, measured in 1/1000 em. + * `menu`: Integer, configures the width grade used when naming fonts. The valid values are from `1` to `9`, inclusive. + * `css`: String, configures the [font-stretch](https://developer.mozilla.org/en-US/docs/Web/CSS/font-stretch) value used in web font CSS. -Subsection `slopes` is used to change the slope angles and grades that the custom family needs. It is a dictionary of either strings formatted in `default.` format, meaning reusing a default slope grade, or sub-objects with properties: +Subsection `slopes` is used to change the slope angles and grades that the custom family needs. It is a dictionary from the filename suffix (in PascalCase) to either... -* `angle`: Number, configures the slope angle in degrees. The valid vales are `0` to `15`, inclusive. -* `shape`: String from `upright`, `italic` or `oblique`. Configures the slope used for variant selection. -* `menu`: String from `upright`, `italic` or `oblique`. Configures the slope grade used when naming fonts. -* `css`: String from `normal`, `italic` or `oblique`. Configures the [CSS font-style](https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-style) value. - -Subsection `slopes` is a simple string-to-string dictionary maps slopes (`upright`, `italic` or `oblique`) to [CSS font-style](https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-style) values, represented in string. + * A string formatted in `default.` format, meaning reusing a default slope grade; + * Or, a sub-object with properties: + * `angle`: Number, configures the slope angle in degrees. The valid vales are from `0` to `15`, inclusive. + * `shape`: String from `upright`, `italic` or `oblique`. Configures the slope used for variant selection. + * `menu`: String from `upright`, `italic` or `oblique`. Configures the slope grade used when naming fonts. + * `css`: String from `normal`, `italic` or `oblique`. Configures the [CSS font-style](https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-style) value. #### Compatibility Ligatures -Certain software, notably Emacs, relies on pre-encoded ligatures instead of OpenType to provide ligations. Iosevka could be configured with additional subsection `compatibility-ligatures`, being an array of records with following fields: +Certain software, notably Emacs, relies on pre-encoded ligatures instead of OpenType to provide ligations. Iosevka could be configured with additional subsection `compatibilityLigatures`, being an array of records with following fields: * `unicode`: The PUA code point being assigned to. * `featureTag`: The feature tag to compute ligations. @@ -525,15 +538,24 @@ Certain software, notably Emacs, relies on pre-encoded ligatures instead of Open A sample of compatibility ligature config is: ```toml -[[buildPlans.iosevka-custom.compatibility-ligatures]] +[[buildPlans.IosevkaCustom.compatibilityLigatures]] unicode = 57600 # 0xE100 featureTag = 'calt' sequence = '<*>' ``` +#### Excluding Characters + +Use the `excludeChars` configuration to exclude character ranges from the font. + +```toml +[buildPlans.iosevkaCustom.excludeChars] +ranges = [[10003, 10008]] +``` + #### Metric Override -Subsection `metric-override` provides ability to override certain metric values, if you *reallly* want to. Adding this section is **strongly discouraged** as it may introduce broken geometry or broken shapes. +Subsection `metricOverride` provides ability to override certain metric values, if you *reallly* want to. Adding this section is **strongly discouraged** as it may introduce broken geometry or broken shapes. | Property | Unit | Default Value | Meaning | |----------|------|---------|----------| @@ -592,7 +614,7 @@ Valid functions include: For example, the following configuration: ```toml -[buildPlans.iosevka-custom.metric-override] +[buildPlans.IosevkaCustom.metricOverride] leading = 1500 sb = 'default_sb * 1.0625 + 15' dotSize = 'blend(weight, [100, 50], [400, 125], [900, 180])' @@ -614,12 +636,12 @@ It is possible to create a customized TTC build by using the following method: 1. Add a collect plan into `private-build-plans.toml`, with a `from` field containing all the TTF groups it needs: ```toml - [collectPlans.iosevka-custom] - from = ["iosevka-custom1", "iosevka-custom-2"] + [collectPlans.IosevkaCustom] + from = ["IosevkaCustom1", "IosevkaCustom2"] ``` 2. Run build with the following command: - - `npm run build -- ttc::iosevka-custom`: Create TTCs from collection `iosevka-custom`; The file will be saved into `dist/.ttc`. - - `npm run build -- super-ttc::iosevka-custom`: Create a single-file TTC from collection `iosevka-custom`; The file will be saved into `dist/.super-ttc`. + - `npm run build -- ttc::IosevkaCustom`: Create TTCs from collection `IosevkaCustom`; The file will be saved into `dist/.ttc`. + - `npm run build -- super-ttc::IosevkaCustom`: Create a single-file TTC from collection `IosevkaCustom`; The file will be saved into `dist/.super-ttc`. ### Baking other OpenType features diff --git a/doc/cv-influences.md b/doc/cv-influences.md index d4a920bbd1..5cb6472cd1 100644 --- a/doc/cv-influences.md +++ b/doc/cv-influences.md @@ -21,7 +21,7 @@ - `cv05`: - E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) + E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), Ԙ (`U+0518`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) - `cv06`: @@ -61,7 +61,7 @@ - `cv15`: - P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv16`: @@ -93,7 +93,7 @@ - `cv23`: - X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) + X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ԕ (`U+0514`), Ԗ (`U+0516`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) - `cv24`: @@ -105,7 +105,7 @@ - `cv26`: - a (`U+0061`), ª (`U+00AA`), à (`U+00E0`), á (`U+00E1`), â (`U+00E2`), ã (`U+00E3`), ä (`U+00E4`), å (`U+00E5`), ā (`U+0101`), ă (`U+0103`), ą (`U+0105`), ǎ (`U+01CE`), ǟ (`U+01DF`), ǡ (`U+01E1`), ǻ (`U+01FB`), ȁ (`U+0201`), ȃ (`U+0203`), ȧ (`U+0227`), ɐ (`U+0250`), ɑ (`U+0251`), ɒ (`U+0252`), ͣ (`U+0363`), а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ᵃ (`U+1D43`), ᵄ (`U+1D44`), ᵅ (`U+1D45`), ᶏ (`U+1D8F`), ᶛ (`U+1D9B`), ᷧ (`U+1DE7`), ᷲ (`U+1DF2`), ḁ (`U+1E01`), ẚ (`U+1E9A`), ạ (`U+1EA1`), ả (`U+1EA3`), ấ (`U+1EA5`), ầ (`U+1EA7`), ẩ (`U+1EA9`), ẫ (`U+1EAB`), ậ (`U+1EAD`), ắ (`U+1EAF`), ằ (`U+1EB1`), ẳ (`U+1EB3`), ẵ (`U+1EB5`), ặ (`U+1EB7`), ₐ (`U+2090`), ℀ (`U+2100`), ℁ (`U+2101`), ⒜ (`U+249C`), ⓐ (`U+24D0`), ⱥ (`U+2C65`), Ɑ (`U+2C6D`), Ɒ (`U+2C70`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), ꜳ (`U+A733`), Ꞛ (`U+A79A`), ꞛ (`U+A79B`), ꞻ (`U+A7BB`), ꬰ (`U+AB30`), ꭤ (`U+AB64`), 𝐚 (`U+1D41A`), 𝑎 (`U+1D44E`), 𝒂 (`U+1D482`), 𝖺 (`U+1D5BA`), 𝗮 (`U+1D5EE`), 𝘢 (`U+1D622`), 𝙖 (`U+1D656`), 𝚊 (`U+1D68A`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) + a (`U+0061`), ª (`U+00AA`), à (`U+00E0`), á (`U+00E1`), â (`U+00E2`), ã (`U+00E3`), ä (`U+00E4`), å (`U+00E5`), æ (`U+00E6`), ā (`U+0101`), ă (`U+0103`), ą (`U+0105`), ǎ (`U+01CE`), ǟ (`U+01DF`), ǡ (`U+01E1`), ǣ (`U+01E3`), ǻ (`U+01FB`), ǽ (`U+01FD`), ȁ (`U+0201`), ȃ (`U+0203`), ȧ (`U+0227`), ɐ (`U+0250`), ɑ (`U+0251`), ɒ (`U+0252`), ͣ (`U+0363`), а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ӕ (`U+04D5`), ᴂ (`U+1D02`), ᵃ (`U+1D43`), ᵄ (`U+1D44`), ᵅ (`U+1D45`), ᵆ (`U+1D46`), ᶏ (`U+1D8F`), ᶛ (`U+1D9B`), ᷔ (`U+1DD4`), ᷕ (`U+1DD5`), ᷧ (`U+1DE7`), ᷲ (`U+1DF2`), ḁ (`U+1E01`), ẚ (`U+1E9A`), ạ (`U+1EA1`), ả (`U+1EA3`), ấ (`U+1EA5`), ầ (`U+1EA7`), ẩ (`U+1EA9`), ẫ (`U+1EAB`), ậ (`U+1EAD`), ắ (`U+1EAF`), ằ (`U+1EB1`), ẳ (`U+1EB3`), ẵ (`U+1EB5`), ặ (`U+1EB7`), ₐ (`U+2090`), ℀ (`U+2100`), ℁ (`U+2101`), ⒜ (`U+249C`), ⓐ (`U+24D0`), ⱥ (`U+2C65`), Ɑ (`U+2C6D`), Ɒ (`U+2C70`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), ꜳ (`U+A733`), ꜵ (`U+A735`), Ꞛ (`U+A79A`), ꞛ (`U+A79B`), ꞻ (`U+A7BB`), ꬰ (`U+AB30`), ꬱ (`U+AB31`), ꭤ (`U+AB64`), 𐞃 (`U+10783`), 𝐚 (`U+1D41A`), 𝑎 (`U+1D44E`), 𝒂 (`U+1D482`), 𝖺 (`U+1D5BA`), 𝗮 (`U+1D5EE`), 𝘢 (`U+1D622`), 𝙖 (`U+1D656`), 𝚊 (`U+1D68A`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) - `cv27`: @@ -121,7 +121,7 @@ - `cv30`: - e (`U+0065`), æ (`U+00E6`), è (`U+00E8`), é (`U+00E9`), ê (`U+00EA`), ë (`U+00EB`), ē (`U+0113`), ĕ (`U+0115`), ė (`U+0117`), ę (`U+0119`), ě (`U+011B`), œ (`U+0153`), Ə (`U+018F`), ǝ (`U+01DD`), ǣ (`U+01E3`), ǽ (`U+01FD`), ȅ (`U+0205`), ȇ (`U+0207`), ȩ (`U+0229`), ɇ (`U+0247`), ɘ (`U+0258`), ə (`U+0259`), ɚ (`U+025A`), ͤ (`U+0364`), е (`U+0435`), ѐ (`U+0450`), ё (`U+0451`), Ҽ (`U+04BC`), ҽ (`U+04BD`), Ҿ (`U+04BE`), ҿ (`U+04BF`), ӕ (`U+04D5`), ӗ (`U+04D7`), Ә (`U+04D8`), ә (`U+04D9`), Ӛ (`U+04DA`), ӛ (`U+04DB`), ᴂ (`U+1D02`), ᴔ (`U+1D14`), ᵆ (`U+1D46`), ᵉ (`U+1D49`), ᵊ (`U+1D4A`), ᵫ (`U+1D6B`), ᶒ (`U+1D92`), ᶕ (`U+1D95`), ᷔ (`U+1DD4`), ᷪ (`U+1DEA`), ḕ (`U+1E15`), ḗ (`U+1E17`), ḙ (`U+1E19`), ḛ (`U+1E1B`), ḝ (`U+1E1D`), ẹ (`U+1EB9`), ẻ (`U+1EBB`), ẽ (`U+1EBD`), ế (`U+1EBF`), ề (`U+1EC1`), ể (`U+1EC3`), ễ (`U+1EC5`), ệ (`U+1EC7`), ₑ (`U+2091`), ₔ (`U+2094`), ≝ (`U+225D`), ⒠ (`U+24A0`), ⓔ (`U+24D4`), ⱸ (`U+2C78`), ⷷ (`U+2DF7`), ꟹ (`U+A7F9`), ꬱ (`U+AB31`), ꬳ (`U+AB33`), ꭀ (`U+AB40`), ꭁ (`U+AB41`), ꭂ (`U+AB42`), ꭡ (`U+AB61`), ꭢ (`U+AB62`), 𐞃 (`U+10783`), 𐞎 (`U+1078E`), 𝐞 (`U+1D41E`), 𝑒 (`U+1D452`), 𝒆 (`U+1D486`), 𝖾 (`U+1D5BE`), 𝗲 (`U+1D5F2`), 𝘦 (`U+1D626`), 𝙚 (`U+1D65A`), 𝚎 (`U+1D68E`), 𞀵 (`U+1E035`), 𞁋 (`U+1E04B`), 𞁖 (`U+1E056`) + e (`U+0065`), æ (`U+00E6`), è (`U+00E8`), é (`U+00E9`), ê (`U+00EA`), ë (`U+00EB`), ē (`U+0113`), ĕ (`U+0115`), ė (`U+0117`), ę (`U+0119`), ě (`U+011B`), œ (`U+0153`), Ə (`U+018F`), ǝ (`U+01DD`), ǣ (`U+01E3`), ǽ (`U+01FD`), ȅ (`U+0205`), ȇ (`U+0207`), ȩ (`U+0229`), ɇ (`U+0247`), ɘ (`U+0258`), ə (`U+0259`), ɚ (`U+025A`), ͤ (`U+0364`), е (`U+0435`), ѐ (`U+0450`), ё (`U+0451`), Ҽ (`U+04BC`), ҽ (`U+04BD`), Ҿ (`U+04BE`), ҿ (`U+04BF`), ӕ (`U+04D5`), ӗ (`U+04D7`), Ә (`U+04D8`), ә (`U+04D9`), Ӛ (`U+04DA`), ӛ (`U+04DB`), ԙ (`U+0519`), ᴂ (`U+1D02`), ᴔ (`U+1D14`), ᵆ (`U+1D46`), ᵉ (`U+1D49`), ᵊ (`U+1D4A`), ᵫ (`U+1D6B`), ᶒ (`U+1D92`), ᶕ (`U+1D95`), ᷔ (`U+1DD4`), ᷪ (`U+1DEA`), ḕ (`U+1E15`), ḗ (`U+1E17`), ḙ (`U+1E19`), ḛ (`U+1E1B`), ḝ (`U+1E1D`), ẹ (`U+1EB9`), ẻ (`U+1EBB`), ẽ (`U+1EBD`), ế (`U+1EBF`), ề (`U+1EC1`), ể (`U+1EC3`), ễ (`U+1EC5`), ệ (`U+1EC7`), ₑ (`U+2091`), ₔ (`U+2094`), ≝ (`U+225D`), ⒠ (`U+24A0`), ⓔ (`U+24D4`), ⱸ (`U+2C78`), ⷷ (`U+2DF7`), ꟹ (`U+A7F9`), ꬱ (`U+AB31`), ꬳ (`U+AB33`), ꭀ (`U+AB40`), ꭁ (`U+AB41`), ꭂ (`U+AB42`), ꭡ (`U+AB61`), ꭢ (`U+AB62`), 𐞃 (`U+10783`), 𐞎 (`U+1078E`), 𝐞 (`U+1D41E`), 𝑒 (`U+1D452`), 𝒆 (`U+1D486`), 𝖾 (`U+1D5BE`), 𝗲 (`U+1D5F2`), 𝘦 (`U+1D626`), 𝙚 (`U+1D65A`), 𝚎 (`U+1D68E`), 𞀵 (`U+1E035`), 𞁋 (`U+1E04B`), 𞁖 (`U+1E056`) - `cv31`: @@ -193,7 +193,7 @@ - `cv48`: - x (`U+0078`), ˣ (`U+02E3`), ͯ (`U+036F`), х (`U+0445`), ҳ (`U+04B3`), ӽ (`U+04FD`), ӿ (`U+04FF`), ᶍ (`U+1D8D`), ẋ (`U+1E8B`), ẍ (`U+1E8D`), ₓ (`U+2093`), ⅸ (`U+2178`), ⅹ (`U+2179`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⒳ (`U+24B3`), ⓧ (`U+24E7`), ⷯ (`U+2DEF`), ꭓ (`U+AB53`), 𝐱 (`U+1D431`), 𝑥 (`U+1D465`), 𝒙 (`U+1D499`), 𝗑 (`U+1D5D1`), 𝘅 (`U+1D605`), 𝘹 (`U+1D639`), 𝙭 (`U+1D66D`), 𝚡 (`U+1D6A1`), 𞁃 (`U+1E043`), 𞁡 (`U+1E061`) + x (`U+0078`), ˣ (`U+02E3`), ͯ (`U+036F`), х (`U+0445`), ҳ (`U+04B3`), ӽ (`U+04FD`), ӿ (`U+04FF`), ԕ (`U+0515`), ԗ (`U+0517`), ᶍ (`U+1D8D`), ẋ (`U+1E8B`), ẍ (`U+1E8D`), ₓ (`U+2093`), ⅸ (`U+2178`), ⅹ (`U+2179`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⒳ (`U+24B3`), ⓧ (`U+24E7`), ⷯ (`U+2DEF`), ꭓ (`U+AB53`), 𝐱 (`U+1D431`), 𝑥 (`U+1D465`), 𝒙 (`U+1D499`), 𝗑 (`U+1D5D1`), 𝘅 (`U+1D605`), 𝘹 (`U+1D639`), 𝙭 (`U+1D66D`), 𝚡 (`U+1D6A1`), 𞁃 (`U+1E043`), 𞁡 (`U+1E061`) - `cv49`: @@ -305,163 +305,163 @@ - `cv76`: - Ў (`U+040E`), У (`U+0423`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) + р (`U+0440`), ҏ (`U+048F`), ԗ (`U+0517`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) - `cv77`: - ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) + Ў (`U+040E`), У (`U+0423`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) - `cv78`: - ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ⷱ (`U+2DF1`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) + у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁟 (`U+1E05F`) - `cv79`: - ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) - `cv80`: - ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) + ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ⷱ (`U+2DF1`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) - `cv81`: - Я (`U+042F`) + ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) - `cv82`: - я (`U+044F`) + ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) - `cv83`: - 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + Я (`U+042F`), Ԙ (`U+0518`) - `cv84`: - 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) + я (`U+044F`), ԙ (`U+0519`) - `cv85`: - 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) + 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv86`: - 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) + 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) - `cv87`: - 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) + 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) - `cv88`: - 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) + 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) - `cv89`: - 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) + 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) - `cv90`: - 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) + 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) - `cv91`: - 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) + 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) - `cv92`: - 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) + 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) - `cv93`: - i (`U+0069`), j (`U+006A`), ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), į (`U+012F`), İ (`U+0130`), ij (`U+0133`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Lj (`U+01C8`), lj (`U+01C9`), Nj (`U+01CB`), nj (`U+01CC`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ɉ (`U+0249`), ɨ (`U+0268`), ʘ (`U+0298`), ʝ (`U+029D`), ʲ (`U+02B2`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͥ (`U+0365`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), ϳ (`U+03F3`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), і (`U+0456`), ї (`U+0457`), ј (`U+0458`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴉ (`U+1D09`), ᴞ (`U+1D1E`), ᵎ (`U+1D4E`), ᵢ (`U+1D62`), ᶖ (`U+1D96`), ᶤ (`U+1DA4`), ᶨ (`U+1DA8`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), ḭ (`U+1E2D`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⁱ (`U+2071`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⅰ (`U+2170`), ⅱ (`U+2171`), ⅲ (`U+2172`), ⅳ (`U+2173`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⅸ (`U+2178`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⒤ (`U+24A4`), ⒥ (`U+24A5`), ⓘ (`U+24D8`), ⓙ (`U+24D9`), ⱼ (`U+2C7C`), ⸚ (`U+2E1A`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`), 𝐢 (`U+1D422`), 𝐣 (`U+1D423`), 𝑖 (`U+1D456`), 𝑗 (`U+1D457`), 𝒊 (`U+1D48A`), 𝒋 (`U+1D48B`), 𝗂 (`U+1D5C2`), 𝗃 (`U+1D5C3`), 𝗶 (`U+1D5F6`), 𝗷 (`U+1D5F7`), 𝘪 (`U+1D62A`), 𝘫 (`U+1D62B`), 𝙞 (`U+1D65E`), 𝙟 (`U+1D65F`), 𝚒 (`U+1D692`), 𝚓 (`U+1D693`), 𞁌 (`U+1E04C`), 𞁍 (`U+1E04D`), 𞁨 (`U+1E068`), 𞂏 (`U+1E08F`) + 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) - `cv94`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) - `cv95`: - ~ (`U+007E`) + i (`U+0069`), j (`U+006A`), ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), į (`U+012F`), İ (`U+0130`), ij (`U+0133`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Lj (`U+01C8`), lj (`U+01C9`), Nj (`U+01CB`), nj (`U+01CC`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ɉ (`U+0249`), ɨ (`U+0268`), ʘ (`U+0298`), ʝ (`U+029D`), ʲ (`U+02B2`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͥ (`U+0365`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), ϳ (`U+03F3`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), і (`U+0456`), ї (`U+0457`), ј (`U+0458`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴉ (`U+1D09`), ᴞ (`U+1D1E`), ᵎ (`U+1D4E`), ᵢ (`U+1D62`), ᶖ (`U+1D96`), ᶤ (`U+1DA4`), ᶨ (`U+1DA8`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), ḭ (`U+1E2D`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⁱ (`U+2071`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⅰ (`U+2170`), ⅱ (`U+2171`), ⅲ (`U+2172`), ⅳ (`U+2173`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⅸ (`U+2178`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⒤ (`U+24A4`), ⒥ (`U+24A5`), ⓘ (`U+24D8`), ⓙ (`U+24D9`), ⱼ (`U+2C7C`), ⸚ (`U+2E1A`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`), 𝐢 (`U+1D422`), 𝐣 (`U+1D423`), 𝑖 (`U+1D456`), 𝑗 (`U+1D457`), 𝒊 (`U+1D48A`), 𝒋 (`U+1D48B`), 𝗂 (`U+1D5C2`), 𝗃 (`U+1D5C3`), 𝗶 (`U+1D5F6`), 𝗷 (`U+1D5F7`), 𝘪 (`U+1D62A`), 𝘫 (`U+1D62B`), 𝙞 (`U+1D65E`), 𝙟 (`U+1D65F`), 𝚒 (`U+1D692`), 𝚓 (`U+1D693`), 𞁌 (`U+1E04C`), 𞁍 (`U+1E04D`), 𞁨 (`U+1E068`), 𞂏 (`U+1E08F`) - `cv96`: - \* (`U+002A`), ͙ (`U+0359`), ⁂ (`U+2042`), ⁎ (`U+204E`), ⁑ (`U+2051`), ⁕ (`U+2055`), ⃰ (`U+20F0`), ∗ (`U+2217`), ⊛ (`U+229B`), ⧆ (`U+29C6`), ⩮ (`U+2A6E`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `cv97`: - \_ (`U+005F`), ‗ (`U+2017`), ⍽ (`U+237D`), ␣ (`U+2423`) + ~ (`U+007E`) - `cv98`: - ^ (`U+005E`) + \* (`U+002A`), ͙ (`U+0359`), ⁂ (`U+2042`), ⁎ (`U+204E`), ⁑ (`U+2051`), ⁕ (`U+2055`), ⃰ (`U+20F0`), ∗ (`U+2217`), ⊛ (`U+229B`), ⧆ (`U+29C6`), ⩮ (`U+2A6E`) - `cv99`: - \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) + \_ (`U+005F`), ‗ (`U+2017`), ⍽ (`U+237D`), ␣ (`U+2423`) - `VSAA`: - \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) + ^ (`U+005E`) - `VSAB`: - « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) + \` (`U+0060`) - `VSAC`: - \# (`U+0023`), ᫆ (`U+1AC6`) + ' (`U+0027`) - `VSAD`: - & (`U+0026`), ⅋ (`U+214B`) + \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) - `VSAE`: - @ (`U+0040`) + \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) - `VSAF`: - $ (`U+0024`), 🄏 (`U+1F10F`) + « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) - `VSAG`: - % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) + \# (`U+0023`), ᫆ (`U+1AC6`) + +- `VSAH`: + + & (`U+0026`), ⅋ (`U+214B`) - `VSAI`: - ' (`U+0027`) + @ (`U+0040`) - `VSAJ`: - \` (`U+0060`) + $ (`U+0024`), 🄏 (`U+1F10F`) - `VSAK`: - ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) + ¢ (`U+00A2`) - `VSAL`: - ¶ (`U+00B6`), ⁋ (`U+204B`) - -- `VSAM`: - - ¢ (`U+00A2`) + % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) - `VSAN`: - ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) + ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) - `VSAO`: - µ (`U+00B5`) + ¶ (`U+00B6`), ⁋ (`U+204B`) -- `VXAA`: +- `VSAP`: - р (`U+0440`), ҏ (`U+048F`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) -- `VXAB`: +- `VSAQ`: - у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁟 (`U+1E05F`) + µ (`U+00B5`) ### Italic CV influences @@ -484,7 +484,7 @@ - `cv05`: - E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) + E (`U+0045`), Æ (`U+00C6`), È (`U+00C8`), É (`U+00C9`), Ê (`U+00CA`), Ë (`U+00CB`), Ē (`U+0112`), Ĕ (`U+0114`), Ė (`U+0116`), Ę (`U+0118`), Ě (`U+011A`), Œ (`U+0152`), Ǝ (`U+018E`), Ǣ (`U+01E2`), Ǽ (`U+01FC`), Ȅ (`U+0204`), Ȇ (`U+0206`), Ȩ (`U+0228`), Ɇ (`U+0246`), ɶ (`U+0276`), Έ (`U+0388`), Ε (`U+0395`), Ѐ (`U+0400`), Ё (`U+0401`), Е (`U+0415`), Ӕ (`U+04D4`), Ӗ (`U+04D6`), Ԙ (`U+0518`), ᴁ (`U+1D01`), ᴇ (`U+1D07`), ᴭ (`U+1D2D`), ᴱ (`U+1D31`), ᴲ (`U+1D32`), Ḕ (`U+1E14`), Ḗ (`U+1E16`), Ḙ (`U+1E18`), Ḛ (`U+1E1A`), Ḝ (`U+1E1C`), Ẹ (`U+1EB8`), Ẻ (`U+1EBA`), Ẽ (`U+1EBC`), Ế (`U+1EBE`), Ề (`U+1EC0`), Ể (`U+1EC2`), Ễ (`U+1EC4`), Ệ (`U+1EC6`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), Ὲ (`U+1FC8`), Έ (`U+1FC9`), ℡ (`U+2121`), ␃ (`U+2403`), ␄ (`U+2404`), ␅ (`U+2405`), ␇ (`U+2407`), ␐ (`U+2410`), ␗ (`U+2417`), ␙ (`U+2419`), ␛ (`U+241B`), ␡ (`U+2421`), Ⓔ (`U+24BA`), ⱻ (`U+2C7B`), 𐞣 (`U+107A3`), 𝐄 (`U+1D404`), 𝐸 (`U+1D438`), 𝑬 (`U+1D46C`), 𝖤 (`U+1D5A4`), 𝗘 (`U+1D5D8`), 𝘌 (`U+1D60C`), 𝙀 (`U+1D640`), 𝙴 (`U+1D674`), 𝚬 (`U+1D6AC`), 𝛦 (`U+1D6E6`), 𝜠 (`U+1D720`), 𝝚 (`U+1D75A`), 𝞔 (`U+1D794`), 🄔 (`U+1F114`), 🄴 (`U+1F134`), 🅔 (`U+1F154`), 🅴 (`U+1F174`), 🆓 (`U+1F193`), 🆕 (`U+1F195`), 🆨 (`U+1F1A8`), 🆩 (`U+1F1A9`) - `cv06`: @@ -524,7 +524,7 @@ - `cv15`: - P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + P (`U+0050`), Ƥ (`U+01A4`), Ρ (`U+03A1`), Р (`U+0420`), Ҏ (`U+048E`), Ԗ (`U+0516`), ᴘ (`U+1D18`), ᴩ (`U+1D29`), ᴾ (`U+1D3E`), Ṕ (`U+1E54`), Ṗ (`U+1E56`), Ῥ (`U+1FEC`), ₧ (`U+20A7`), ₱ (`U+20B1`), ₽ (`U+20BD`), ℗ (`U+2117`), ␠ (`U+2420`), Ⓟ (`U+24C5`), Ᵽ (`U+2C63`), ꟼ (`U+A7FC`), 𝐏 (`U+1D40F`), 𝑃 (`U+1D443`), 𝑷 (`U+1D477`), 𝖯 (`U+1D5AF`), 𝗣 (`U+1D5E3`), 𝘗 (`U+1D617`), 𝙋 (`U+1D64B`), 𝙿 (`U+1D67F`), 𝚸 (`U+1D6B8`), 𝛲 (`U+1D6F2`), 𝜬 (`U+1D72C`), 𝝦 (`U+1D766`), 𝞠 (`U+1D7A0`), 🄟 (`U+1F11F`), 🄿 (`U+1F13F`), 🅎 (`U+1F14E`), 🅟 (`U+1F15F`), 🅿 (`U+1F17F`), 🆌 (`U+1F18C`), 🆙 (`U+1F199`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv16`: @@ -556,7 +556,7 @@ - `cv23`: - X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) + X (`U+0058`), Χ (`U+03A7`), Х (`U+0425`), Ҳ (`U+04B2`), Ӽ (`U+04FC`), Ӿ (`U+04FE`), Ԕ (`U+0514`), Ԗ (`U+0516`), Ẋ (`U+1E8A`), Ẍ (`U+1E8C`), ℻ (`U+213B`), Ⅸ (`U+2168`), Ⅹ (`U+2169`), Ⅺ (`U+216A`), Ⅻ (`U+216B`), ␂ (`U+2402`), ␃ (`U+2403`), Ⓧ (`U+24CD`), Ꭓ (`U+A7B3`), 𝐗 (`U+1D417`), 𝑋 (`U+1D44B`), 𝑿 (`U+1D47F`), 𝖷 (`U+1D5B7`), 𝗫 (`U+1D5EB`), 𝘟 (`U+1D61F`), 𝙓 (`U+1D653`), 𝚇 (`U+1D687`), 𝚾 (`U+1D6BE`), 𝛸 (`U+1D6F8`), 𝜲 (`U+1D732`), 𝝬 (`U+1D76C`), 𝞦 (`U+1D7A6`), 🄧 (`U+1F127`), 🅇 (`U+1F147`), 🅧 (`U+1F167`), 🆇 (`U+1F187`) - `cv24`: @@ -568,7 +568,7 @@ - `cv26`: - a (`U+0061`), ª (`U+00AA`), à (`U+00E0`), á (`U+00E1`), â (`U+00E2`), ã (`U+00E3`), ä (`U+00E4`), å (`U+00E5`), ā (`U+0101`), ă (`U+0103`), ą (`U+0105`), ǎ (`U+01CE`), ǟ (`U+01DF`), ǡ (`U+01E1`), ǻ (`U+01FB`), ȁ (`U+0201`), ȃ (`U+0203`), ȧ (`U+0227`), ɐ (`U+0250`), ɑ (`U+0251`), ɒ (`U+0252`), ͣ (`U+0363`), а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ᵃ (`U+1D43`), ᵄ (`U+1D44`), ᵅ (`U+1D45`), ᶏ (`U+1D8F`), ᶛ (`U+1D9B`), ᷧ (`U+1DE7`), ᷲ (`U+1DF2`), ḁ (`U+1E01`), ẚ (`U+1E9A`), ạ (`U+1EA1`), ả (`U+1EA3`), ấ (`U+1EA5`), ầ (`U+1EA7`), ẩ (`U+1EA9`), ẫ (`U+1EAB`), ậ (`U+1EAD`), ắ (`U+1EAF`), ằ (`U+1EB1`), ẳ (`U+1EB3`), ẵ (`U+1EB5`), ặ (`U+1EB7`), ₐ (`U+2090`), ℀ (`U+2100`), ℁ (`U+2101`), ⒜ (`U+249C`), ⓐ (`U+24D0`), ⱥ (`U+2C65`), Ɑ (`U+2C6D`), Ɒ (`U+2C70`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), ꜳ (`U+A733`), Ꞛ (`U+A79A`), ꞛ (`U+A79B`), ꞻ (`U+A7BB`), ꬰ (`U+AB30`), ꭤ (`U+AB64`), 𝐚 (`U+1D41A`), 𝑎 (`U+1D44E`), 𝒂 (`U+1D482`), 𝖺 (`U+1D5BA`), 𝗮 (`U+1D5EE`), 𝘢 (`U+1D622`), 𝙖 (`U+1D656`), 𝚊 (`U+1D68A`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) + a (`U+0061`), ª (`U+00AA`), à (`U+00E0`), á (`U+00E1`), â (`U+00E2`), ã (`U+00E3`), ä (`U+00E4`), å (`U+00E5`), æ (`U+00E6`), ā (`U+0101`), ă (`U+0103`), ą (`U+0105`), ǎ (`U+01CE`), ǟ (`U+01DF`), ǡ (`U+01E1`), ǣ (`U+01E3`), ǻ (`U+01FB`), ǽ (`U+01FD`), ȁ (`U+0201`), ȃ (`U+0203`), ȧ (`U+0227`), ɐ (`U+0250`), ɑ (`U+0251`), ɒ (`U+0252`), ͣ (`U+0363`), а (`U+0430`), ӑ (`U+04D1`), ӓ (`U+04D3`), ӕ (`U+04D5`), ᴂ (`U+1D02`), ᵃ (`U+1D43`), ᵄ (`U+1D44`), ᵅ (`U+1D45`), ᵆ (`U+1D46`), ᶏ (`U+1D8F`), ᶛ (`U+1D9B`), ᷔ (`U+1DD4`), ᷕ (`U+1DD5`), ᷧ (`U+1DE7`), ᷲ (`U+1DF2`), ḁ (`U+1E01`), ẚ (`U+1E9A`), ạ (`U+1EA1`), ả (`U+1EA3`), ấ (`U+1EA5`), ầ (`U+1EA7`), ẩ (`U+1EA9`), ẫ (`U+1EAB`), ậ (`U+1EAD`), ắ (`U+1EAF`), ằ (`U+1EB1`), ẳ (`U+1EB3`), ẵ (`U+1EB5`), ặ (`U+1EB7`), ₐ (`U+2090`), ℀ (`U+2100`), ℁ (`U+2101`), ⒜ (`U+249C`), ⓐ (`U+24D0`), ⱥ (`U+2C65`), Ɑ (`U+2C6D`), Ɒ (`U+2C70`), ⷶ (`U+2DF6`), ⷼ (`U+2DFC`), ꙗ (`U+A657`), ꜳ (`U+A733`), ꜵ (`U+A735`), Ꞛ (`U+A79A`), ꞛ (`U+A79B`), ꞻ (`U+A7BB`), ꬰ (`U+AB30`), ꬱ (`U+AB31`), ꭤ (`U+AB64`), 𐞃 (`U+10783`), 𝐚 (`U+1D41A`), 𝑎 (`U+1D44E`), 𝒂 (`U+1D482`), 𝖺 (`U+1D5BA`), 𝗮 (`U+1D5EE`), 𝘢 (`U+1D622`), 𝙖 (`U+1D656`), 𝚊 (`U+1D68A`), 𞀰 (`U+1E030`), 𞁑 (`U+1E051`) - `cv27`: @@ -584,7 +584,7 @@ - `cv30`: - e (`U+0065`), æ (`U+00E6`), è (`U+00E8`), é (`U+00E9`), ê (`U+00EA`), ë (`U+00EB`), ē (`U+0113`), ĕ (`U+0115`), ė (`U+0117`), ę (`U+0119`), ě (`U+011B`), œ (`U+0153`), Ə (`U+018F`), ǝ (`U+01DD`), ǣ (`U+01E3`), ǽ (`U+01FD`), ȅ (`U+0205`), ȇ (`U+0207`), ȩ (`U+0229`), ɇ (`U+0247`), ɘ (`U+0258`), ə (`U+0259`), ɚ (`U+025A`), ͤ (`U+0364`), е (`U+0435`), ѐ (`U+0450`), ё (`U+0451`), Ҽ (`U+04BC`), ҽ (`U+04BD`), Ҿ (`U+04BE`), ҿ (`U+04BF`), ӕ (`U+04D5`), ӗ (`U+04D7`), Ә (`U+04D8`), ә (`U+04D9`), Ӛ (`U+04DA`), ӛ (`U+04DB`), ᴂ (`U+1D02`), ᴔ (`U+1D14`), ᵆ (`U+1D46`), ᵉ (`U+1D49`), ᵊ (`U+1D4A`), ᵫ (`U+1D6B`), ᶒ (`U+1D92`), ᶕ (`U+1D95`), ᷔ (`U+1DD4`), ᷪ (`U+1DEA`), ḕ (`U+1E15`), ḗ (`U+1E17`), ḙ (`U+1E19`), ḛ (`U+1E1B`), ḝ (`U+1E1D`), ẹ (`U+1EB9`), ẻ (`U+1EBB`), ẽ (`U+1EBD`), ế (`U+1EBF`), ề (`U+1EC1`), ể (`U+1EC3`), ễ (`U+1EC5`), ệ (`U+1EC7`), ₑ (`U+2091`), ₔ (`U+2094`), ≝ (`U+225D`), ⒠ (`U+24A0`), ⓔ (`U+24D4`), ⱸ (`U+2C78`), ⷷ (`U+2DF7`), ꟹ (`U+A7F9`), ꬱ (`U+AB31`), ꬳ (`U+AB33`), ꭀ (`U+AB40`), ꭁ (`U+AB41`), ꭂ (`U+AB42`), ꭡ (`U+AB61`), ꭢ (`U+AB62`), 𐞃 (`U+10783`), 𐞎 (`U+1078E`), 𝐞 (`U+1D41E`), 𝑒 (`U+1D452`), 𝒆 (`U+1D486`), 𝖾 (`U+1D5BE`), 𝗲 (`U+1D5F2`), 𝘦 (`U+1D626`), 𝙚 (`U+1D65A`), 𝚎 (`U+1D68E`), 𞀵 (`U+1E035`), 𞁋 (`U+1E04B`), 𞁖 (`U+1E056`) + e (`U+0065`), æ (`U+00E6`), è (`U+00E8`), é (`U+00E9`), ê (`U+00EA`), ë (`U+00EB`), ē (`U+0113`), ĕ (`U+0115`), ė (`U+0117`), ę (`U+0119`), ě (`U+011B`), œ (`U+0153`), Ə (`U+018F`), ǝ (`U+01DD`), ǣ (`U+01E3`), ǽ (`U+01FD`), ȅ (`U+0205`), ȇ (`U+0207`), ȩ (`U+0229`), ɇ (`U+0247`), ɘ (`U+0258`), ə (`U+0259`), ɚ (`U+025A`), ͤ (`U+0364`), е (`U+0435`), ѐ (`U+0450`), ё (`U+0451`), Ҽ (`U+04BC`), ҽ (`U+04BD`), Ҿ (`U+04BE`), ҿ (`U+04BF`), ӕ (`U+04D5`), ӗ (`U+04D7`), Ә (`U+04D8`), ә (`U+04D9`), Ӛ (`U+04DA`), ӛ (`U+04DB`), ԙ (`U+0519`), ᴂ (`U+1D02`), ᴔ (`U+1D14`), ᵆ (`U+1D46`), ᵉ (`U+1D49`), ᵊ (`U+1D4A`), ᵫ (`U+1D6B`), ᶒ (`U+1D92`), ᶕ (`U+1D95`), ᷔ (`U+1DD4`), ᷪ (`U+1DEA`), ḕ (`U+1E15`), ḗ (`U+1E17`), ḙ (`U+1E19`), ḛ (`U+1E1B`), ḝ (`U+1E1D`), ẹ (`U+1EB9`), ẻ (`U+1EBB`), ẽ (`U+1EBD`), ế (`U+1EBF`), ề (`U+1EC1`), ể (`U+1EC3`), ễ (`U+1EC5`), ệ (`U+1EC7`), ₑ (`U+2091`), ₔ (`U+2094`), ≝ (`U+225D`), ⒠ (`U+24A0`), ⓔ (`U+24D4`), ⱸ (`U+2C78`), ⷷ (`U+2DF7`), ꟹ (`U+A7F9`), ꬱ (`U+AB31`), ꬳ (`U+AB33`), ꭀ (`U+AB40`), ꭁ (`U+AB41`), ꭂ (`U+AB42`), ꭡ (`U+AB61`), ꭢ (`U+AB62`), 𐞃 (`U+10783`), 𐞎 (`U+1078E`), 𝐞 (`U+1D41E`), 𝑒 (`U+1D452`), 𝒆 (`U+1D486`), 𝖾 (`U+1D5BE`), 𝗲 (`U+1D5F2`), 𝘦 (`U+1D626`), 𝙚 (`U+1D65A`), 𝚎 (`U+1D68E`), 𞀵 (`U+1E035`), 𞁋 (`U+1E04B`), 𞁖 (`U+1E056`) - `cv31`: @@ -656,7 +656,7 @@ - `cv48`: - x (`U+0078`), ˣ (`U+02E3`), ͯ (`U+036F`), х (`U+0445`), ҳ (`U+04B3`), ӽ (`U+04FD`), ӿ (`U+04FF`), ᶍ (`U+1D8D`), ẋ (`U+1E8B`), ẍ (`U+1E8D`), ₓ (`U+2093`), ⅸ (`U+2178`), ⅹ (`U+2179`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⒳ (`U+24B3`), ⓧ (`U+24E7`), ⷯ (`U+2DEF`), ꭓ (`U+AB53`), 𝐱 (`U+1D431`), 𝑥 (`U+1D465`), 𝒙 (`U+1D499`), 𝗑 (`U+1D5D1`), 𝘅 (`U+1D605`), 𝘹 (`U+1D639`), 𝙭 (`U+1D66D`), 𝚡 (`U+1D6A1`), 𞁃 (`U+1E043`), 𞁡 (`U+1E061`) + x (`U+0078`), ˣ (`U+02E3`), ͯ (`U+036F`), х (`U+0445`), ҳ (`U+04B3`), ӽ (`U+04FD`), ӿ (`U+04FF`), ԕ (`U+0515`), ԗ (`U+0517`), ᶍ (`U+1D8D`), ẋ (`U+1E8B`), ẍ (`U+1E8D`), ₓ (`U+2093`), ⅸ (`U+2178`), ⅹ (`U+2179`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⒳ (`U+24B3`), ⓧ (`U+24E7`), ⷯ (`U+2DEF`), ꭓ (`U+AB53`), 𝐱 (`U+1D431`), 𝑥 (`U+1D465`), 𝒙 (`U+1D499`), 𝗑 (`U+1D5D1`), 𝘅 (`U+1D605`), 𝘹 (`U+1D639`), 𝙭 (`U+1D66D`), 𝚡 (`U+1D6A1`), 𞁃 (`U+1E043`), 𞁡 (`U+1E061`) - `cv49`: @@ -768,167 +768,167 @@ - `cv76`: - Ў (`U+040E`), У (`U+0423`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) + р (`U+0440`), ҏ (`U+048F`), ԗ (`U+0517`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) - `cv77`: - ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) + Ў (`U+040E`), У (`U+0423`), Ӯ (`U+04EE`), Ӱ (`U+04F0`), Ӳ (`U+04F2`) - `cv78`: - ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ԭ (`U+052D`), ⷱ (`U+2DF1`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) + у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁟 (`U+1E05F`) - `cv79`: - ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) + ф (`U+0444`), ꚞ (`U+A69E`), 𞁂 (`U+1E042`), 𞁠 (`U+1E060`) - `cv80`: - ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) + ч (`U+0447`), ҹ (`U+04B9`), ӵ (`U+04F5`), ԭ (`U+052D`), ⷱ (`U+2DF1`), 𞁅 (`U+1E045`), 𞁣 (`U+1E063`) - `cv81`: - Я (`U+042F`) + ƅ (`U+0185`), ъ (`U+044A`), ь (`U+044C`), љ (`U+0459`), њ (`U+045A`), ѣ (`U+0463`), ҍ (`U+048D`), ᲆ (`U+1C86`), ᲇ (`U+1C87`), ⷺ (`U+2DFA`), ꙏ (`U+A64F`), ꙓ (`U+A653`), ꙸ (`U+A678`), ꙺ (`U+A67A`), ꚜ (`U+A69C`), ꚝ (`U+A69D`), ꭠ (`U+AB60`), 𞁥 (`U+1E065`) - `cv82`: - я (`U+044F`) + ы (`U+044B`), ӹ (`U+04F9`), ꙑ (`U+A651`), ꙹ (`U+A679`), 𞁇 (`U+1E047`), 𞁦 (`U+1E066`), 𞁬 (`U+1E06C`) - `cv83`: - 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) + Я (`U+042F`), Ԙ (`U+0518`) - `cv84`: - 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) + я (`U+044F`), ԙ (`U+0519`) - `cv85`: - 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) + 0 (`U+0030`), ⁰ (`U+2070`), ₀ (`U+2080`), ⅒ (`U+2152`), ↉ (`U+2189`), ⍬ (`U+236C`), ⏨ (`U+23E8`), ⑩ (`U+2469`), ⑳ (`U+2473`), ⑽ (`U+247D`), ⒇ (`U+2487`), ⒑ (`U+2491`), ⒛ (`U+249B`), ⓪ (`U+24EA`), ⓴ (`U+24F4`), ⓾ (`U+24FE`), ⓿ (`U+24FF`), ❿ (`U+277F`), ➉ (`U+2789`), ➓ (`U+2793`), ㉚ (`U+325A`), ㊵ (`U+32B5`), ㊿ (`U+32BF`), 𝟎 (`U+1D7CE`), 𝟢 (`U+1D7E2`), 𝟬 (`U+1D7EC`), 𝟶 (`U+1D7F6`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄋 (`U+1F10B`), 🄌 (`U+1F10C`), 🄍 (`U+1F10D`), 🆣 (`U+1F1A3`), 🆤 (`U+1F1A4`) - `cv86`: - 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) + 1 (`U+0031`), ¹ (`U+00B9`), ¼ (`U+00BC`), ½ (`U+00BD`), ₁ (`U+2081`), ⅐ (`U+2150`), ⅑ (`U+2151`), ⅒ (`U+2152`), ⅓ (`U+2153`), ⅕ (`U+2155`), ⅙ (`U+2159`), ⅛ (`U+215B`), ⏨ (`U+23E8`), ␑ (`U+2411`), ① (`U+2460`), ⑩ (`U+2469`), ⑪ (`U+246A`), ⑫ (`U+246B`), ⑬ (`U+246C`), ⑭ (`U+246D`), ⑮ (`U+246E`), ⑯ (`U+246F`), ⑰ (`U+2470`), ⑱ (`U+2471`), ⑲ (`U+2472`), ⑴ (`U+2474`), ⑽ (`U+247D`), ⑾ (`U+247E`), ⑿ (`U+247F`), ⒀ (`U+2480`), ⒁ (`U+2481`), ⒂ (`U+2482`), ⒃ (`U+2483`), ⒄ (`U+2484`), ⒅ (`U+2485`), ⒆ (`U+2486`), ⒈ (`U+2488`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⓫ (`U+24EB`), ⓬ (`U+24EC`), ⓭ (`U+24ED`), ⓮ (`U+24EE`), ⓯ (`U+24EF`), ⓰ (`U+24F0`), ⓱ (`U+24F1`), ⓲ (`U+24F2`), ⓳ (`U+24F3`), ⓵ (`U+24F5`), ⓾ (`U+24FE`), ❶ (`U+2776`), ❿ (`U+277F`), ➀ (`U+2780`), ➉ (`U+2789`), ➊ (`U+278A`), ➓ (`U+2793`), ㉑ (`U+3251`), ㉛ (`U+325B`), ㊶ (`U+32B6`), 𝟏 (`U+1D7CF`), 𝟣 (`U+1D7E3`), 𝟭 (`U+1D7ED`), 𝟷 (`U+1D7F7`), 🄂 (`U+1F102`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆤 (`U+1F1A4`) - `cv87`: - 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) + 2 (`U+0032`), ² (`U+00B2`), ½ (`U+00BD`), ƻ (`U+01BB`), ₂ (`U+2082`), ⅔ (`U+2154`), ⅖ (`U+2156`), ↊ (`U+218A`), ␒ (`U+2412`), ② (`U+2461`), ⑫ (`U+246B`), ⑳ (`U+2473`), ⑵ (`U+2475`), ⑿ (`U+247F`), ⒇ (`U+2487`), ⒉ (`U+2489`), ⒓ (`U+2493`), ⒛ (`U+249B`), ⓬ (`U+24EC`), ⓴ (`U+24F4`), ⓶ (`U+24F6`), ❷ (`U+2777`), ➁ (`U+2781`), ➋ (`U+278B`), ㉑ (`U+3251`), ㉒ (`U+3252`), ㉓ (`U+3253`), ㉔ (`U+3254`), ㉕ (`U+3255`), ㉖ (`U+3256`), ㉗ (`U+3257`), ㉘ (`U+3258`), ㉙ (`U+3259`), ㉜ (`U+325C`), ㊷ (`U+32B7`), 𝟐 (`U+1D7D0`), 𝟤 (`U+1D7E4`), 𝟮 (`U+1D7EE`), 𝟸 (`U+1D7F8`), 🄃 (`U+1F103`), 🆜 (`U+1F19C`), 🆝 (`U+1F19D`), 🆢 (`U+1F1A2`), 🆤 (`U+1F1A4`) - `cv88`: - 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) + 3 (`U+0033`), ³ (`U+00B3`), ¾ (`U+00BE`), ₃ (`U+2083`), ⅓ (`U+2153`), ⅔ (`U+2154`), ⅗ (`U+2157`), ⅜ (`U+215C`), ↉ (`U+2189`), ↋ (`U+218B`), ∛ (`U+221B`), ␓ (`U+2413`), ③ (`U+2462`), ⑬ (`U+246C`), ⑶ (`U+2476`), ⒀ (`U+2480`), ⒊ (`U+248A`), ⒔ (`U+2494`), ⓭ (`U+24ED`), ⓷ (`U+24F7`), ❸ (`U+2778`), ➂ (`U+2782`), ➌ (`U+278C`), ㉓ (`U+3253`), ㉚ (`U+325A`), ㉛ (`U+325B`), ㉜ (`U+325C`), ㉝ (`U+325D`), ㉞ (`U+325E`), ㉟ (`U+325F`), ㊱ (`U+32B1`), ㊲ (`U+32B2`), ㊳ (`U+32B3`), ㊴ (`U+32B4`), ㊸ (`U+32B8`), 𝟑 (`U+1D7D1`), 𝟥 (`U+1D7E5`), 𝟯 (`U+1D7EF`), 𝟹 (`U+1D7F9`), 🄄 (`U+1F104`), 🆛 (`U+1F19B`) - `cv89`: - 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) + 4 (`U+0034`), ¼ (`U+00BC`), ¾ (`U+00BE`), ⁴ (`U+2074`), ₄ (`U+2084`), ⅘ (`U+2158`), ∜ (`U+221C`), ␔ (`U+2414`), ④ (`U+2463`), ⑭ (`U+246D`), ⑷ (`U+2477`), ⒁ (`U+2481`), ⒋ (`U+248B`), ⒕ (`U+2495`), ⓮ (`U+24EE`), ⓸ (`U+24F8`), ❹ (`U+2779`), ➃ (`U+2783`), ➍ (`U+278D`), ㉔ (`U+3254`), ㉞ (`U+325E`), ㊵ (`U+32B5`), ㊶ (`U+32B6`), ㊷ (`U+32B7`), ㊸ (`U+32B8`), ㊹ (`U+32B9`), ㊺ (`U+32BA`), ㊻ (`U+32BB`), ㊼ (`U+32BC`), ㊽ (`U+32BD`), ㊾ (`U+32BE`), 𝟒 (`U+1D7D2`), 𝟦 (`U+1D7E6`), 𝟰 (`U+1D7F0`), 𝟺 (`U+1D7FA`), 🄅 (`U+1F105`), 🆞 (`U+1F19E`) - `cv90`: - 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) + 5 (`U+0035`), Ƽ (`U+01BC`), ƽ (`U+01BD`), ⁵ (`U+2075`), ₅ (`U+2085`), ⅕ (`U+2155`), ⅖ (`U+2156`), ⅗ (`U+2157`), ⅘ (`U+2158`), ⅚ (`U+215A`), ⅝ (`U+215D`), ⑤ (`U+2464`), ⑮ (`U+246E`), ⑸ (`U+2478`), ⒂ (`U+2482`), ⒌ (`U+248C`), ⒖ (`U+2496`), ⓯ (`U+24EF`), ⓹ (`U+24F9`), ❺ (`U+277A`), ➄ (`U+2784`), ➎ (`U+278E`), ㉕ (`U+3255`), ㉟ (`U+325F`), ㊺ (`U+32BA`), ㊿ (`U+32BF`), 𝟓 (`U+1D7D3`), 𝟧 (`U+1D7E7`), 𝟱 (`U+1D7F1`), 𝟻 (`U+1D7FB`), 🄆 (`U+1F106`), 🆠 (`U+1F1A0`) - `cv91`: - 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) + 6 (`U+0036`), ⁶ (`U+2076`), ₆ (`U+2086`), ⅙ (`U+2159`), ⅚ (`U+215A`), ⑥ (`U+2465`), ⑯ (`U+246F`), ⑹ (`U+2479`), ⒃ (`U+2483`), ⒍ (`U+248D`), ⒗ (`U+2497`), ⓰ (`U+24F0`), ⓺ (`U+24FA`), ❻ (`U+277B`), ➅ (`U+2785`), ➏ (`U+278F`), ㉖ (`U+3256`), ㊱ (`U+32B1`), ㊻ (`U+32BB`), 𝟔 (`U+1D7D4`), 𝟨 (`U+1D7E8`), 𝟲 (`U+1D7F2`), 𝟼 (`U+1D7FC`), 🄇 (`U+1F107`), 🆣 (`U+1F1A3`) - `cv92`: - 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) + 7 (`U+0037`), ⁷ (`U+2077`), ₇ (`U+2087`), ⅐ (`U+2150`), ⅞ (`U+215E`), ⑦ (`U+2466`), ⑰ (`U+2470`), ⑺ (`U+247A`), ⒄ (`U+2484`), ⒎ (`U+248E`), ⒘ (`U+2498`), ⓱ (`U+24F1`), ⓻ (`U+24FB`), ❼ (`U+277C`), ➆ (`U+2786`), ➐ (`U+2790`), ㉗ (`U+3257`), ㊲ (`U+32B2`), ㊼ (`U+32BC`), 𝟕 (`U+1D7D5`), 𝟩 (`U+1D7E9`), 𝟳 (`U+1D7F3`), 𝟽 (`U+1D7FD`), 🄈 (`U+1F108`), 🆡 (`U+1F1A1`) - `cv93`: - i (`U+0069`), j (`U+006A`), ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), į (`U+012F`), İ (`U+0130`), ij (`U+0133`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Lj (`U+01C8`), lj (`U+01C9`), Nj (`U+01CB`), nj (`U+01CC`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ɉ (`U+0249`), ɨ (`U+0268`), ʘ (`U+0298`), ʝ (`U+029D`), ʲ (`U+02B2`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͥ (`U+0365`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), ϳ (`U+03F3`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), і (`U+0456`), ї (`U+0457`), ј (`U+0458`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴉ (`U+1D09`), ᴞ (`U+1D1E`), ᵎ (`U+1D4E`), ᵢ (`U+1D62`), ᶖ (`U+1D96`), ᶤ (`U+1DA4`), ᶨ (`U+1DA8`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), ḭ (`U+1E2D`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⁱ (`U+2071`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⅰ (`U+2170`), ⅱ (`U+2171`), ⅲ (`U+2172`), ⅳ (`U+2173`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⅸ (`U+2178`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⒤ (`U+24A4`), ⒥ (`U+24A5`), ⓘ (`U+24D8`), ⓙ (`U+24D9`), ⱼ (`U+2C7C`), ⸚ (`U+2E1A`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`), 𝐢 (`U+1D422`), 𝐣 (`U+1D423`), 𝑖 (`U+1D456`), 𝑗 (`U+1D457`), 𝒊 (`U+1D48A`), 𝒋 (`U+1D48B`), 𝗂 (`U+1D5C2`), 𝗃 (`U+1D5C3`), 𝗶 (`U+1D5F6`), 𝗷 (`U+1D5F7`), 𝘪 (`U+1D62A`), 𝘫 (`U+1D62B`), 𝙞 (`U+1D65E`), 𝙟 (`U+1D65F`), 𝚒 (`U+1D692`), 𝚓 (`U+1D693`), 𞁌 (`U+1E04C`), 𞁍 (`U+1E04D`), 𞁨 (`U+1E068`), 𞂏 (`U+1E08F`) + 8 (`U+0038`), ⁸ (`U+2078`), ₈ (`U+2088`), ⅛ (`U+215B`), ⅜ (`U+215C`), ⅝ (`U+215D`), ⅞ (`U+215E`), ⑧ (`U+2467`), ⑱ (`U+2471`), ⑻ (`U+247B`), ⒅ (`U+2485`), ⒏ (`U+248F`), ⒙ (`U+2499`), ⓲ (`U+24F2`), ⓼ (`U+24FC`), ❽ (`U+277D`), ➇ (`U+2787`), ➑ (`U+2791`), ㉘ (`U+3258`), ㊳ (`U+32B3`), ㊽ (`U+32BD`), 𝟖 (`U+1D7D6`), 𝟪 (`U+1D7EA`), 𝟴 (`U+1D7F4`), 𝟾 (`U+1D7FE`), 🄉 (`U+1F109`), 🆟 (`U+1F19F`) - `cv94`: - \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) + 9 (`U+0039`), ⁹ (`U+2079`), ₉ (`U+2089`), ⅑ (`U+2151`), ⑨ (`U+2468`), ⑲ (`U+2472`), ⑼ (`U+247C`), ⒆ (`U+2486`), ⒐ (`U+2490`), ⒚ (`U+249A`), ⓳ (`U+24F3`), ⓽ (`U+24FD`), ❾ (`U+277E`), ➈ (`U+2788`), ➒ (`U+2792`), ㉙ (`U+3259`), ㊴ (`U+32B4`), ㊾ (`U+32BE`), 𝟗 (`U+1D7D7`), 𝟫 (`U+1D7EB`), 𝟵 (`U+1D7F5`), 𝟿 (`U+1D7FF`), 🄊 (`U+1F10A`) - `cv95`: - ~ (`U+007E`) + i (`U+0069`), j (`U+006A`), ¨ (`U+00A8`), Ä (`U+00C4`), Ë (`U+00CB`), Ï (`U+00CF`), Ö (`U+00D6`), Ü (`U+00DC`), ä (`U+00E4`), ë (`U+00EB`), ï (`U+00EF`), ö (`U+00F6`), ü (`U+00FC`), ÿ (`U+00FF`), Ċ (`U+010A`), ċ (`U+010B`), ď (`U+010F`), Ė (`U+0116`), ė (`U+0117`), Ġ (`U+0120`), ġ (`U+0121`), Ģ (`U+0122`), ģ (`U+0123`), į (`U+012F`), İ (`U+0130`), ij (`U+0133`), Ķ (`U+0136`), ķ (`U+0137`), Ļ (`U+013B`), ļ (`U+013C`), Ľ (`U+013D`), ľ (`U+013E`), Ņ (`U+0145`), ņ (`U+0146`), Ŗ (`U+0156`), ŗ (`U+0157`), ť (`U+0165`), Ÿ (`U+0178`), Ż (`U+017B`), ż (`U+017C`), Ơ (`U+01A0`), ơ (`U+01A1`), Ư (`U+01AF`), ư (`U+01B0`), Lj (`U+01C8`), lj (`U+01C9`), Nj (`U+01CB`), nj (`U+01CC`), Ǖ (`U+01D5`), ǖ (`U+01D6`), Ǘ (`U+01D7`), ǘ (`U+01D8`), Ǚ (`U+01D9`), ǚ (`U+01DA`), Ǜ (`U+01DB`), ǜ (`U+01DC`), Ǟ (`U+01DE`), ǟ (`U+01DF`), Ǡ (`U+01E0`), ǡ (`U+01E1`), Ș (`U+0218`), ș (`U+0219`), Ț (`U+021A`), ț (`U+021B`), Ȧ (`U+0226`), ȧ (`U+0227`), Ȫ (`U+022A`), ȫ (`U+022B`), Ȯ (`U+022E`), ȯ (`U+022F`), Ȱ (`U+0230`), ȱ (`U+0231`), ɉ (`U+0249`), ɨ (`U+0268`), ʘ (`U+0298`), ʝ (`U+029D`), ʲ (`U+02B2`), ˙ (`U+02D9`), ̇ (`U+0307`), ̈ (`U+0308`), ̐ (`U+0310`), ̒ (`U+0312`), ̓ (`U+0313`), ̔ (`U+0314`), ̕ (`U+0315`), ̛ (`U+031B`), ̣ (`U+0323`), ̤ (`U+0324`), ̦ (`U+0326`), ̓ (`U+0343`), ̈́ (`U+0344`), ͋ (`U+034B`), ͒ (`U+0352`), ͘ (`U+0358`), ͥ (`U+0365`), ͼ (`U+037C`), ͽ (`U+037D`), ΅ (`U+0385`), ΐ (`U+0390`), Ϊ (`U+03AA`), Ϋ (`U+03AB`), ΰ (`U+03B0`), ϊ (`U+03CA`), ϋ (`U+03CB`), ϔ (`U+03D4`), ϳ (`U+03F3`), Ͼ (`U+03FE`), Ͽ (`U+03FF`), Ё (`U+0401`), Ї (`U+0407`), ё (`U+0451`), і (`U+0456`), ї (`U+0457`), ј (`U+0458`), Ѽ (`U+047C`), ѽ (`U+047D`), ҅ (`U+0485`), ҆ (`U+0486`), Ӓ (`U+04D2`), ӓ (`U+04D3`), Ӛ (`U+04DA`), ӛ (`U+04DB`), Ӝ (`U+04DC`), ӝ (`U+04DD`), Ӟ (`U+04DE`), ӟ (`U+04DF`), Ӥ (`U+04E4`), ӥ (`U+04E5`), Ӧ (`U+04E6`), ӧ (`U+04E7`), Ӫ (`U+04EA`), ӫ (`U+04EB`), Ӭ (`U+04EC`), ӭ (`U+04ED`), Ӱ (`U+04F0`), ӱ (`U+04F1`), Ӵ (`U+04F4`), ӵ (`U+04F5`), Ӹ (`U+04F8`), ӹ (`U+04F9`), ᪱ (`U+1AB1`), ᪴ (`U+1AB4`), ᴉ (`U+1D09`), ᴞ (`U+1D1E`), ᵎ (`U+1D4E`), ᵢ (`U+1D62`), ᶖ (`U+1D96`), ᶤ (`U+1DA4`), ᶨ (`U+1DA8`), ᷲ (`U+1DF2`), ᷳ (`U+1DF3`), ᷴ (`U+1DF4`), ᷸ (`U+1DF8`), ᷺ (`U+1DFA`), Ḃ (`U+1E02`), ḃ (`U+1E03`), Ḅ (`U+1E04`), ḅ (`U+1E05`), Ḋ (`U+1E0A`), ḋ (`U+1E0B`), Ḍ (`U+1E0C`), ḍ (`U+1E0D`), Ḑ (`U+1E10`), ḑ (`U+1E11`), Ḟ (`U+1E1E`), ḟ (`U+1E1F`), Ḣ (`U+1E22`), ḣ (`U+1E23`), Ḥ (`U+1E24`), ḥ (`U+1E25`), Ḧ (`U+1E26`), ḧ (`U+1E27`), ḭ (`U+1E2D`), Ḯ (`U+1E2E`), ḯ (`U+1E2F`), Ḳ (`U+1E32`), ḳ (`U+1E33`), Ḷ (`U+1E36`), ḷ (`U+1E37`), Ḹ (`U+1E38`), ḹ (`U+1E39`), Ṁ (`U+1E40`), ṁ (`U+1E41`), Ṃ (`U+1E42`), ṃ (`U+1E43`), Ṅ (`U+1E44`), ṅ (`U+1E45`), Ṇ (`U+1E46`), ṇ (`U+1E47`), Ṏ (`U+1E4E`), ṏ (`U+1E4F`), Ṗ (`U+1E56`), ṗ (`U+1E57`), Ṙ (`U+1E58`), ṙ (`U+1E59`), Ṛ (`U+1E5A`), ṛ (`U+1E5B`), Ṝ (`U+1E5C`), ṝ (`U+1E5D`), Ṡ (`U+1E60`), ṡ (`U+1E61`), Ṣ (`U+1E62`), ṣ (`U+1E63`), Ṥ (`U+1E64`), ṥ (`U+1E65`), Ṧ (`U+1E66`), ṧ (`U+1E67`), Ṩ (`U+1E68`), ṩ (`U+1E69`), Ṫ (`U+1E6A`), ṫ (`U+1E6B`), Ṭ (`U+1E6C`), ṭ (`U+1E6D`), Ṳ (`U+1E72`), ṳ (`U+1E73`), Ṻ (`U+1E7A`), ṻ (`U+1E7B`), Ṿ (`U+1E7E`), ṿ (`U+1E7F`), Ẅ (`U+1E84`), ẅ (`U+1E85`), Ẇ (`U+1E86`), ẇ (`U+1E87`), Ẉ (`U+1E88`), ẉ (`U+1E89`), Ẋ (`U+1E8A`), ẋ (`U+1E8B`), Ẍ (`U+1E8C`), ẍ (`U+1E8D`), Ẏ (`U+1E8E`), ẏ (`U+1E8F`), Ẓ (`U+1E92`), ẓ (`U+1E93`), ẗ (`U+1E97`), ẛ (`U+1E9B`), Ạ (`U+1EA0`), ạ (`U+1EA1`), Ậ (`U+1EAC`), ậ (`U+1EAD`), Ặ (`U+1EB6`), ặ (`U+1EB7`), Ẹ (`U+1EB8`), ẹ (`U+1EB9`), Ệ (`U+1EC6`), ệ (`U+1EC7`), Ị (`U+1ECA`), ị (`U+1ECB`), Ọ (`U+1ECC`), ọ (`U+1ECD`), Ộ (`U+1ED8`), ộ (`U+1ED9`), Ớ (`U+1EDA`), ớ (`U+1EDB`), Ờ (`U+1EDC`), ờ (`U+1EDD`), Ở (`U+1EDE`), ở (`U+1EDF`), Ỡ (`U+1EE0`), ỡ (`U+1EE1`), Ợ (`U+1EE2`), ợ (`U+1EE3`), Ụ (`U+1EE4`), ụ (`U+1EE5`), Ứ (`U+1EE8`), ứ (`U+1EE9`), Ừ (`U+1EEA`), ừ (`U+1EEB`), Ử (`U+1EEC`), ử (`U+1EED`), Ữ (`U+1EEE`), ữ (`U+1EEF`), Ự (`U+1EF0`), ự (`U+1EF1`), Ỵ (`U+1EF4`), ỵ (`U+1EF5`), ἀ (`U+1F00`), ἁ (`U+1F01`), ἂ (`U+1F02`), ἃ (`U+1F03`), ἄ (`U+1F04`), ἅ (`U+1F05`), ἆ (`U+1F06`), ἇ (`U+1F07`), Ἀ (`U+1F08`), Ἁ (`U+1F09`), Ἂ (`U+1F0A`), Ἃ (`U+1F0B`), Ἄ (`U+1F0C`), Ἅ (`U+1F0D`), Ἆ (`U+1F0E`), Ἇ (`U+1F0F`), ἐ (`U+1F10`), ἑ (`U+1F11`), ἒ (`U+1F12`), ἓ (`U+1F13`), ἔ (`U+1F14`), ἕ (`U+1F15`), Ἐ (`U+1F18`), Ἑ (`U+1F19`), Ἒ (`U+1F1A`), Ἓ (`U+1F1B`), Ἔ (`U+1F1C`), Ἕ (`U+1F1D`), ἠ (`U+1F20`), ἡ (`U+1F21`), ἢ (`U+1F22`), ἣ (`U+1F23`), ἤ (`U+1F24`), ἥ (`U+1F25`), ἦ (`U+1F26`), ἧ (`U+1F27`), Ἠ (`U+1F28`), Ἡ (`U+1F29`), Ἢ (`U+1F2A`), Ἣ (`U+1F2B`), Ἤ (`U+1F2C`), Ἥ (`U+1F2D`), Ἦ (`U+1F2E`), Ἧ (`U+1F2F`), ἰ (`U+1F30`), ἱ (`U+1F31`), ἲ (`U+1F32`), ἳ (`U+1F33`), ἴ (`U+1F34`), ἵ (`U+1F35`), ἶ (`U+1F36`), ἷ (`U+1F37`), Ἰ (`U+1F38`), Ἱ (`U+1F39`), Ἲ (`U+1F3A`), Ἳ (`U+1F3B`), Ἴ (`U+1F3C`), Ἵ (`U+1F3D`), Ἶ (`U+1F3E`), Ἷ (`U+1F3F`), ὀ (`U+1F40`), ὁ (`U+1F41`), ὂ (`U+1F42`), ὃ (`U+1F43`), ὄ (`U+1F44`), ὅ (`U+1F45`), Ὀ (`U+1F48`), Ὁ (`U+1F49`), Ὂ (`U+1F4A`), Ὃ (`U+1F4B`), Ὄ (`U+1F4C`), Ὅ (`U+1F4D`), ὐ (`U+1F50`), ὑ (`U+1F51`), ὒ (`U+1F52`), ὓ (`U+1F53`), ὔ (`U+1F54`), ὕ (`U+1F55`), ὖ (`U+1F56`), ὗ (`U+1F57`), Ὑ (`U+1F59`), Ὓ (`U+1F5B`), Ὕ (`U+1F5D`), Ὗ (`U+1F5F`), ὠ (`U+1F60`), ὡ (`U+1F61`), ὢ (`U+1F62`), ὣ (`U+1F63`), ὤ (`U+1F64`), ὥ (`U+1F65`), ὦ (`U+1F66`), ὧ (`U+1F67`), Ὠ (`U+1F68`), Ὡ (`U+1F69`), Ὢ (`U+1F6A`), Ὣ (`U+1F6B`), Ὤ (`U+1F6C`), Ὥ (`U+1F6D`), Ὦ (`U+1F6E`), Ὧ (`U+1F6F`), ᾀ (`U+1F80`), ᾁ (`U+1F81`), ᾂ (`U+1F82`), ᾃ (`U+1F83`), ᾄ (`U+1F84`), ᾅ (`U+1F85`), ᾆ (`U+1F86`), ᾇ (`U+1F87`), ᾈ (`U+1F88`), ᾉ (`U+1F89`), ᾊ (`U+1F8A`), ᾋ (`U+1F8B`), ᾌ (`U+1F8C`), ᾍ (`U+1F8D`), ᾎ (`U+1F8E`), ᾏ (`U+1F8F`), ᾐ (`U+1F90`), ᾑ (`U+1F91`), ᾒ (`U+1F92`), ᾓ (`U+1F93`), ᾔ (`U+1F94`), ᾕ (`U+1F95`), ᾖ (`U+1F96`), ᾗ (`U+1F97`), ᾘ (`U+1F98`), ᾙ (`U+1F99`), ᾚ (`U+1F9A`), ᾛ (`U+1F9B`), ᾜ (`U+1F9C`), ᾝ (`U+1F9D`), ᾞ (`U+1F9E`), ᾟ (`U+1F9F`), ᾠ (`U+1FA0`), ᾡ (`U+1FA1`), ᾢ (`U+1FA2`), ᾣ (`U+1FA3`), ᾤ (`U+1FA4`), ᾥ (`U+1FA5`), ᾦ (`U+1FA6`), ᾧ (`U+1FA7`), ᾨ (`U+1FA8`), ᾩ (`U+1FA9`), ᾪ (`U+1FAA`), ᾫ (`U+1FAB`), ᾬ (`U+1FAC`), ᾭ (`U+1FAD`), ᾮ (`U+1FAE`), ᾯ (`U+1FAF`), ᾽ (`U+1FBD`), ᾿ (`U+1FBF`), ῁ (`U+1FC1`), ῍ (`U+1FCD`), ῎ (`U+1FCE`), ῏ (`U+1FCF`), ῒ (`U+1FD2`), ΐ (`U+1FD3`), ῗ (`U+1FD7`), ῝ (`U+1FDD`), ῞ (`U+1FDE`), ῟ (`U+1FDF`), ῢ (`U+1FE2`), ΰ (`U+1FE3`), ῤ (`U+1FE4`), ῥ (`U+1FE5`), ῧ (`U+1FE7`), Ῥ (`U+1FEC`), ῭ (`U+1FED`), ΅ (`U+1FEE`), ῾ (`U+1FFE`), ⁱ (`U+2071`), ⃛ (`U+20DB`), ⃜ (`U+20DC`), ⃨ (`U+20E8`), ⅰ (`U+2170`), ⅱ (`U+2171`), ⅲ (`U+2172`), ⅳ (`U+2173`), ⅵ (`U+2175`), ⅶ (`U+2176`), ⅷ (`U+2177`), ⅸ (`U+2178`), ⅺ (`U+217A`), ⅻ (`U+217B`), ⍡ (`U+2361`), ⍢ (`U+2362`), ⍣ (`U+2363`), ⍤ (`U+2364`), ⍥ (`U+2365`), ⍨ (`U+2368`), ⍩ (`U+2369`), ⒤ (`U+24A4`), ⒥ (`U+24A5`), ⓘ (`U+24D8`), ⓙ (`U+24D9`), ⱼ (`U+2C7C`), ⸚ (`U+2E1A`), Ꙩ (`U+A668`), ꙩ (`U+A669`), Ꙫ (`U+A66A`), ꙫ (`U+A66B`), Ꙭ (`U+A66C`), ꙭ (`U+A66D`), ꙮ (`U+A66E`), ꙶ (`U+A676`), Ꜿ (`U+A73E`), ꜿ (`U+A73F`), 𐞵 (`U+107B5`), 𝐢 (`U+1D422`), 𝐣 (`U+1D423`), 𝑖 (`U+1D456`), 𝑗 (`U+1D457`), 𝒊 (`U+1D48A`), 𝒋 (`U+1D48B`), 𝗂 (`U+1D5C2`), 𝗃 (`U+1D5C3`), 𝗶 (`U+1D5F6`), 𝗷 (`U+1D5F7`), 𝘪 (`U+1D62A`), 𝘫 (`U+1D62B`), 𝙞 (`U+1D65E`), 𝙟 (`U+1D65F`), 𝚒 (`U+1D692`), 𝚓 (`U+1D693`), 𞁌 (`U+1E04C`), 𞁍 (`U+1E04D`), 𞁨 (`U+1E068`), 𞂏 (`U+1E08F`) - `cv96`: - \* (`U+002A`), ͙ (`U+0359`), ⁂ (`U+2042`), ⁎ (`U+204E`), ⁑ (`U+2051`), ⁕ (`U+2055`), ⃰ (`U+20F0`), ∗ (`U+2217`), ⊛ (`U+229B`), ⧆ (`U+29C6`), ⩮ (`U+2A6E`) + \! (`U+0021`), ' (`U+0027`), , (`U+002C`), \. (`U+002E`), : (`U+003A`), ; (`U+003B`), ? (`U+003F`), \` (`U+0060`), ¡ (`U+00A1`), · (`U+00B7`), ¿ (`U+00BF`), ÷ (`U+00F7`), Ŀ (`U+013F`), ŀ (`U+0140`), ʼn (`U+0149`), ǃ (`U+01C3`), ʻ (`U+02BB`), ʼ (`U+02BC`), ʽ (`U+02BD`), ˮ (`U+02EE`), ˸ (`U+02F8`), ; (`U+037E`), · (`U+0387`), ჻ (`U+10FB`), ‘ (`U+2018`), ’ (`U+2019`), ‚ (`U+201A`), ‛ (`U+201B`), “ (`U+201C`), ” (`U+201D`), „ (`U+201E`), ‟ (`U+201F`), ․ (`U+2024`), ‥ (`U+2025`), … (`U+2026`), ‧ (`U+2027`), ※ (`U+203B`), ‼ (`U+203C`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ⁏ (`U+204F`), ⁒ (`U+2052`), ⁖ (`U+2056`), ⁘ (`U+2058`), ⁙ (`U+2059`), ⁚ (`U+205A`), ⁛ (`U+205B`), ⁜ (`U+205C`), ⁝ (`U+205D`), ⁞ (`U+205E`), ∔ (`U+2214`), ∴ (`U+2234`), ∵ (`U+2235`), ∶ (`U+2236`), ∷ (`U+2237`), ∸ (`U+2238`), ∹ (`U+2239`), ∺ (`U+223A`), ∻ (`U+223B`), ≐ (`U+2250`), ≑ (`U+2251`), ≒ (`U+2252`), ≓ (`U+2253`), ≔ (`U+2254`), ≕ (`U+2255`), ≟ (`U+225F`), ⊍ (`U+228D`), ⊙ (`U+2299`), ⊡ (`U+22A1`), ⋅ (`U+22C5`), ⋇ (`U+22C7`), ⋖ (`U+22D6`), ⋗ (`U+22D7`), ⋮ (`U+22EE`), ⋯ (`U+22EF`), ⋰ (`U+22F0`), ⋱ (`U+22F1`), ⋵ (`U+22F5`), ⌹ (`U+2339`), ⍠ (`U+2360`), ⍪ (`U+236A`), ⍮ (`U+236E`), ⍰ (`U+2370`), ␦ (`U+2426`), ⒈ (`U+2488`), ⒉ (`U+2489`), ⒊ (`U+248A`), ⒋ (`U+248B`), ⒌ (`U+248C`), ⒍ (`U+248D`), ⒎ (`U+248E`), ⒏ (`U+248F`), ⒐ (`U+2490`), ⒑ (`U+2491`), ⒒ (`U+2492`), ⒓ (`U+2493`), ⒔ (`U+2494`), ⒕ (`U+2495`), ⒖ (`U+2496`), ⒗ (`U+2497`), ⒘ (`U+2498`), ⒙ (`U+2499`), ⒚ (`U+249A`), ⒛ (`U+249B`), ⦙ (`U+2999`), ⦼ (`U+29BC`), ⧴ (`U+29F4`), ⨀ (`U+2A00`), ⨒ (`U+2A12`), ⨓ (`U+2A13`), ⨔ (`U+2A14`), ⨕ (`U+2A15`), ⨥ (`U+2A25`), ⨪ (`U+2A2A`), ⨫ (`U+2A2B`), ⨬ (`U+2A2C`), ⨰ (`U+2A30`), ⨸ (`U+2A38`), ⩀ (`U+2A40`), ⩦ (`U+2A66`), ⩧ (`U+2A67`), ⩪ (`U+2A6A`), ⩫ (`U+2A6B`), ⩭ (`U+2A6D`), ⩿ (`U+2A7F`), ⪀ (`U+2A80`), ⪗ (`U+2A97`), ⪘ (`U+2A98`), ⫶ (`U+2AF6`), ⸘ (`U+2E18`), ⸞ (`U+2E1E`), ⸟ (`U+2E1F`), ⸪ (`U+2E2A`), ⸫ (`U+2E2B`), ⸬ (`U+2E2C`), ⸭ (`U+2E2D`), ⸮ (`U+2E2E`), ⸱ (`U+2E31`), ⸲ (`U+2E32`), ⸳ (`U+2E33`), ⸴ (`U+2E34`), ⸵ (`U+2E35`), ⹁ (`U+2E41`), ⹂ (`U+2E42`), ꜝ (`U+A71D`), ꜞ (`U+A71E`), ꜟ (`U+A71F`), ꞉ (`U+A789`), ꞏ (`U+A78F`), � (`U+FFFD`), 𐞹 (`U+107B9`), 𝼊 (`U+1DF0A`), 🄀 (`U+1F100`), 🄁 (`U+1F101`), 🄂 (`U+1F102`), 🄃 (`U+1F103`), 🄄 (`U+1F104`), 🄅 (`U+1F105`), 🄆 (`U+1F106`), 🄇 (`U+1F107`), 🄈 (`U+1F108`), 🄉 (`U+1F109`), 🄊 (`U+1F10A`), 🆙 (`U+1F199`), 🆠 (`U+1F1A0`), 🆡 (`U+1F1A1`), 🆢 (`U+1F1A2`), 🯄 (`U+1FBC4`) - `cv97`: - \_ (`U+005F`), ‗ (`U+2017`), ⍽ (`U+237D`), ␣ (`U+2423`) + ~ (`U+007E`) - `cv98`: - ^ (`U+005E`) + \* (`U+002A`), ͙ (`U+0359`), ⁂ (`U+2042`), ⁎ (`U+204E`), ⁑ (`U+2051`), ⁕ (`U+2055`), ⃰ (`U+20F0`), ∗ (`U+2217`), ⊛ (`U+229B`), ⧆ (`U+29C6`), ⩮ (`U+2A6E`) - `cv99`: - \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) + \_ (`U+005F`), ‗ (`U+2017`), ⍽ (`U+237D`), ␣ (`U+2423`) - `VSAA`: - \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) + ^ (`U+005E`) - `VSAB`: - « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) + \` (`U+0060`) - `VSAC`: - \# (`U+0023`), ᫆ (`U+1AC6`) + ' (`U+0027`) - `VSAD`: - & (`U+0026`), ⅋ (`U+214B`) + \( (`U+0028`), \) (`U+0029`), ⁽ (`U+207D`), ⁾ (`U+207E`), ₍ (`U+208D`), ₎ (`U+208E`), ⸨ (`U+2E28`), ⸩ (`U+2E29`) - `VSAE`: - @ (`U+0040`) + \{ (`U+007B`), \} (`U+007D`), ⦃ (`U+2983`), ⦄ (`U+2984`) - `VSAF`: - $ (`U+0024`), 🄏 (`U+1F10F`) + « (`U+00AB`), » (`U+00BB`), ‹ (`U+2039`), › (`U+203A`) - `VSAG`: - % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) + \# (`U+0023`), ᫆ (`U+1AC6`) - `VSAH`: - | (`U+007C`), ¦ (`U+00A6`), ‖ (`U+2016`), ⫼ (`U+2AFC`) + & (`U+0026`), ⅋ (`U+214B`) - `VSAI`: - ' (`U+0027`) + @ (`U+0040`) - `VSAJ`: - \` (`U+0060`) + $ (`U+0024`), 🄏 (`U+1F10F`) - `VSAK`: - ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) + ¢ (`U+00A2`) - `VSAL`: - ¶ (`U+00B6`), ⁋ (`U+204B`) + % (`U+0025`), ‰ (`U+2030`), ‱ (`U+2031`) - `VSAM`: - ¢ (`U+00A2`) + | (`U+007C`), ¦ (`U+00A6`), ‖ (`U+2016`), ⫼ (`U+2AFC`) - `VSAN`: - ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) + ? (`U+003F`), ¿ (`U+00BF`), ‽ (`U+203D`), ⁇ (`U+2047`), ⁈ (`U+2048`), ⁉ (`U+2049`), ≟ (`U+225F`), ⍰ (`U+2370`), ␦ (`U+2426`), ⸘ (`U+2E18`), ⸮ (`U+2E2E`), � (`U+FFFD`), 🯄 (`U+1FBC4`) - `VSAO`: - µ (`U+00B5`) + ¶ (`U+00B6`), ⁋ (`U+204B`) -- `VXAA`: +- `VSAP`: - р (`U+0440`), ҏ (`U+048F`), ⷬ (`U+2DEC`), 𞀾 (`U+1E03E`) + ∂ (`U+2202`), 𝛛 (`U+1D6DB`), 𝜕 (`U+1D715`), 𝝏 (`U+1D74F`), 𝞉 (`U+1D789`), 𝟃 (`U+1D7C3`) -- `VXAB`: +- `VSAQ`: - у (`U+0443`), ў (`U+045E`), Ѹ (`U+0478`), ѹ (`U+0479`), ӯ (`U+04EF`), ӱ (`U+04F1`), ӳ (`U+04F3`), ꙷ (`U+A677`), 𞁁 (`U+1E041`), 𞁟 (`U+1E05F`) + µ (`U+00B5`) diff --git a/doc/packages-sha.txt b/doc/packages-sha.txt index 68b5a1384a..d4db981e96 100644 --- a/doc/packages-sha.txt +++ b/doc/packages-sha.txt @@ -1,456 +1,452 @@ -e385e21e8ca96e4dfd412d1a117f278a173637e9e63083e1cd560b6323fa89cb undefined -8404c941d3fac293355b65c23a6bee8be499a468d660c163f2dfea70d1e2da49 undefined -b12da78e9d6f272b1fc23cd6ee8de5d1103f11a322cd5432cfcf3e30b5c03920 undefined -06e4ac5cf44c8228fc491b352fbe41dc74ecf9ae574b089edbeccb14f99c2af5 undefined -8f77f1a17bde3de6b4a39f0bf0622c533ea554c6f19821052b391a26393a3207 undefined -9cfce3ccf22dfe978848c42addc76397098a868512ceb77ef60637fdcf694cb0 undefined -361f48d641c02318b70ce4e1f93fb743b9d4b3379498837f1b5f75394948dc81 undefined -47f7a127a8b9525c2a3b1729649c53acb29c0ce5ee05093c27594ef6c64a8ca1 undefined -9566205a0378b1242e5c5dfb5e3559a59e95514261863d9e0373a28a96a035a5 undefined -bbbb829c8cbe50478e027cd7529e8abb0e5a246fa1e02a8635503df2648acb95 undefined -66bc860b6aafa4ab06880665927bd8772649401b8235c39a109b6ef966827d0b undefined -fb348a23e3371573e6285c939e88876219847c7824880f38dcf9fe430884bf83 undefined -47a8874c34131dfaee19643168cb841234df0c8e71c91aaaa74fe8b078eb8ab5 undefined -401727c2b4007547a358c7f09f51a1a36236ed55c42f6f5d0c476ac07cb92188 undefined -65ee2d4423cd38a5ceb87d2f40fe6ff7d7bf1a3bfa975444a48e017105f63b51 undefined -9fdfdacbd05940e55b9fda334002f501fea3b0e5daf72b6ec9fd94301eab6755 undefined -38ccb2b79cc42c97f4e91e2013edfccd0606670cf55b909e1a602d0fb3bf0ce5 undefined -03cb2db581cb96ec09a727e76080101c2aefd20c3d6a5a4889a7122342c952a5 undefined -f75729d1feb674a58e1f448b3056b22ab04fc1e88f2184bd72267f58b0922d38 undefined -ab140439642afb85053f79d124a2e5ad9fa95647697c37f9f22e6aea6af0a4d9 undefined -38c4d2f7e30e2f02fc43860a7b9a19af9a5e7a778c5a4fd2aa6414ef90258ad6 undefined -efbeee7ad53e0e92dab60c1246a71c5f82fc9ad2f7b0aa3b76b85dea356e8749 undefined -0763df0e0558a6c4be153016869998573c800237d558f9a6eb3b24376bb023cf undefined -49b416e4f14d5da0597e00d53efdc380dedadf791d229c0a23bb0c29280fc969 undefined -24da413663310eac37f9d8e5a51e10794d9ed7757b7896735cfaabcc433e73fa undefined -ea7c01de5ece31a645f277dbaba38b7e2a15b08ea99318810395296fddddbc77 undefined -1228bf4e1246170b2cd941aa36138065df5367e0ede644987f5dc5c68aab1226 undefined -c2989df0ec9aff9c17e089fa86ae99dad327c763c02fbdbe12afeb6a7d7e69db undefined -8d15f7885d08f70672ebeff96a0c490596fcbf5eb564402301ce190a32229af2 undefined -a92e9caac22b2a285eabd1bf1c92d058056296f79c696d25382c4fa19716d239 undefined -af0a793e7e849c920adb6285831f43333a6de64fbe633267ab07838ea8626b96 undefined -03a6d457e361ef8f7ce425da9ce3efd3866cd018ed736447e479a60af44bb1b6 undefined -f55cf5510fd645510e2240aaf9d428a032db040bf4c77c02884c52ee7c79e8f5 undefined -cfd9b295573d29a49bda4dc4e8c46ed66a9dd172ee1210e29cabfe807823d3ae undefined -cc345dfc3756bd34b3a0d458ad06d175a4e5ad6a44cfe059fe955bbba50ef922 undefined -57a2843b5f9cf35d19f4c6ea6f9b78054c0d4f57244a516d6942b04c4f82703d undefined -38c572df1b3985d80db1630985e8e90acc0d09348f705a6b8d42ef45f70f095c undefined -729b953108ba5db27f9246b3f305434595099a4da16d2d2d67753663d94a8362 undefined -30a67db499099ce0936a3e95d84fd1af9ae8d139303dfdb4e34f905649375d12 undefined -2255db3b3429df0a91a6f478e7447357a2f7bbfc8d55aad231aa8704857e7e74 undefined -b4ec912aa01834e5f85086f117b1b6ce37b35944c61c5f86b704f9a1d0871de7 undefined -9415a8d166ec916311d226ce9e0eab03b8fab7ca7667721f67614834c511b657 undefined -cac67ac6540c8e5f9b462edee095643e3ca4afc5f90aab37538c711dbe3a54fe undefined -c70a7296986e826c0b80df19a0c57c95f06584e83476bcbaac9247620aeb5775 undefined -6df038af3dcc4b2e769c9acd99e9eff89e433d1edd294c2a05ba35e585a62a95 undefined -fe731642e77885fc6c0a80f8bb9f9fffe6e722dd23dcb8f9421fbdbde2d7e887 undefined -e12e0e1105d8ad5be4dd96b46d61e645bfc94422586b89387bda1877f9604499 undefined -a8e4f0efaa70a225406b3dbe8f73f7e5123a4e49ac21500b6de06d4fc2d903dd undefined -8078ec7bcbde5fe6ec5370ec696d7e85ce43eae66f307a2044c4886dd8c5e31f undefined -86a9a5c1bec3bf574994b04cb613ca80de87c05380659d92c4fc8cff1d61e450 undefined -aa5f5d2617345b212ccc73a2026985c348b32fa0509b91ff3a411278eb8148e9 undefined -e2aa66cb754965f43df4aba79a7066b6bb2a954c17f3256bc7af7d986f91a529 undefined -4444a2e9c6951fdd83046749add9f6615bffe47e051588ad7c8b710f51244cd2 undefined -8d61a0e436b1210e5a9dd0b6e90c08b3c3788c43d87ebbc95a3cee312bc4f842 undefined -9b3496cd5d4f712518d40e00f47ffc821d11e9f26d2b8476ef06277b5cb542ad undefined -2726cf36edfed882096127467cc1a6800fc0e587fc8cbbbdea89b41ee39d06e5 undefined -58bc731432a0e66bef02eb6170dd9901d282dbd6910e3181674eb33827baf15e undefined -9c0b279367992868efbdd73a487fe5a64c66427ad07f48584f78cd1853e1391f undefined -6f301428b2b1644ed899b474e3b790b66df64fa6fdfbb6e8cbb7f06865704deb undefined -c3f0a973b4a4b5f0a28569b6ffb1087826ea0927ab5cebd1c2d8e707740d0742 undefined -19e516762b5b7df0c4ea48ec76e98c842b6414af3aaa0dba9d0bee1b0a600e4f undefined -b7f808a6cbd537cd11a01ed8838dbcd88cc1e92cd0ab7a0e05d0875695595758 undefined -2bf31fe90092fc6340ccdeed771618e1cbf01ecf66430029af72a8a06aae4251 undefined -f3ecbd51f881c845c9d9149ae54d01ad49243f87c3558685a4a38f712e4c179a undefined -bb7a4ab9d9c57b0646710610e663e933706e334811cc2280fa0ff2aec0c70ae2 undefined -fbfe5a5c6f403ab4947ea427dce24854712939d74a093d4ca93bc51fa54576a8 undefined -9077e6d850ab7d32a056d36b94b09ddfbba9c853ac459ba96fbbb82823bffff4 undefined -a52f4db9c55bc6da2062ede3f417de2ba6efd3f3cf66858e838c028694cc7e8f undefined -c178510c4218367397c4b302131cfc6edb75905e99d32a75a08028e57b7c3851 undefined -722cf3e67df09878b93b0a0cb3b8f45715b5e87cb41e46f6b887db23862a1be1 undefined -54b21dd6b51a13ce3e292de17c5d26b83dc9b781ebfd5ffcdade093bb21717ab undefined -e6e4112078467bd324eba3ddccde1c58e4d5240549f03341087ec8162a1a1e82 undefined -c4e4b80c783e7b2336bfdcd73e7f2a9b27d8595d14b80c890525c3002983030c undefined -b31dd9d65230e1b41d2c1dd549ae2f859c4e1c98275a71c6c11684c6e36c592a undefined -64d26fda2df50a74881bfb050629520de5f3cad643ac7237cb0d6e3bf8aba01f undefined -62110ce4a4dab1ef664cb7bc2da18167b0d063463b3bbea1aa9bad8d36cb9864 undefined -26f9784d23cbc673a78dbbb918933f3cb82f056642beff18f4bf95a3654bc8cd undefined -16c7367b925d05b345cbb3ab3f2d4173794795833a046edcecd1a44cc7f6b302 undefined -adfca16bbf99372a0c7a07835c62b88ebe0d580247565272e85fe2af706c0a7c undefined -5c2ea130dbd8862da52049fe2a9a9b2592e23474cb87455b9a70847cb05ba142 undefined -0375c946f2f1556dc411e9883304ead6cc634273c2756247292a7bbaf4c1e37a undefined -1cbb522820f55afb2f18d0df90ff59b930b171f1710b695105975a33e9dadf64 undefined -dd2da040b2dc487613cb4a17ccbc8a827b538ba0ae11deb4eabc74ff8227a45e undefined -677a1f017beaad4d6fa4653210b0383aa042567032beacdb06ac3e59e0281643 undefined -4f055e7428f5b2f29f394bedc6ed50c022b0565154a26dfbde934c558d9310cb undefined -657ed6efc8cad38a4d1949d800c12dafb86f45de682ab586a94e0feb0aa8d885 undefined -4dd4412c246d63cb6071af8351aab123fea86dd58f8cbcbcb6d593ac6d8ca29d undefined -66627740368ac9b400cd26bfd37d7199f11c01adbc55253ac80a42286e3639d6 undefined -b4179537bec41548e043bf6f18a139cd11b49de16626c26e6cc06f168cfca747 undefined -f552f0bc751f9cd9765f30c6f1ecb264e07d92e8365226d6588fe7c3839a0543 undefined -1175c3fe781c4b84883af1647a4b190c22252b17f3420c45d4e6d5d36b646add undefined -95a40dc0450f897fecb9d929bdfe728ffbb1c133cc5af34c09ea821c70cf5e84 undefined -3152dc4fcf202dba72da601df33e8564f85c0730ec3e2355bd46005a3df96768 undefined -cb61f64e2d6df25c8d8f80a55536dfb606a974ac9f00a45795c477445e4df6ee undefined -e36af04e3daddca54fb08f931f87afabcaf77c6c7e55a1dfa4a0b301ece31c8d undefined -33733ca2b4064a190c2eef4ae29dbf8a07832498d25b4858edf9149f288f9508 undefined -628ecb7fb3fe555fd24287adf5514b40c0c6a658bb7ec970eac6c76ce2bf8d3d undefined -2470b167bd014a8ee85e0f9c44903176d682705e37679c7a23e2656abe0adebe undefined -409ff1b300ba6230b9089ff16d8100e23804dc1af9964e182be37a1f97497c1a undefined -c1fe513e8f78c891df95829ef2f32340129119c0a529c6267177f5bc8545a179 undefined -bfb7d323d5ce433b947fbfe9556a499f054f0041fe162c85ee1aa27e9f1c4004 undefined -792e9a69fd179f30e89253edbf11cdf020d3b9bb677171f6daff639790d15db0 undefined -52b614b32d031addea84155d727035de69c0b8a727033deb07a9045513d50e72 undefined -3966c2b7764275f00bbb0f2ce2c8cb19e07689ed82c5a6e4997033c2c1c2b418 undefined -4f8a18c7b5a917aad9dd86061299d2181573da6faed942e14eb6fdfcc115142e undefined -374c1d81243611fb7208ed6c7bab21ea3e2135d69cc9e578c458919d448c42cd undefined -92af99ff35077e0937f4be1883607f069d5b3e2a5fa51ef0692469a5a523c422 undefined -ce5c8c4e4d210b10698a4ba60655d6281b1be0c4ac909e3fdf63296ab8dbd78c undefined -96ae84f20c50637c7f804bf31e2edc724b20dcd692b306ca7a7d45b703fef671 undefined -2377a34ea6ad923f2dcc53438b4a7c04da973e295cc9edb3df992a3125ec8162 undefined -0bc22b222a148b4019531bc9980ab272e3b612244cf224ced1e0098f28107347 undefined -786d686a39ed8d2c2c35dac380ff2002e6a322e5a2e5ccead291d133aff56245 undefined -2ca47eb7aae7d9959a7ac6c73e2e9c06f41a18f72e10467f9d9e735edab1e07a undefined -9bd0518e29a4aeb1592f26028fe04a996534e5c0845e3ca8615030f84159a03e undefined -07f04ef2d00a4d011dfe6cd3bba24c0797c444ff67d9ae59983f98702c21c279 undefined -b6566b4a265bb8cb54ba1ec6f9c7751ae37044350d683824685773fd5b8106a1 undefined -ed0d3466c76cb67f3e1879fdc4b6d35b61b1dc039a84e93dc6c41cd5dee481ce undefined -b9fc3fa6a8163347bb4b01a85321cd26a6e3fc89554923c721c969df00b7be84 undefined -9c68211506b84345e3b6715bdb8bc515595cfdc7ac365711e10de5d11e3b0f04 undefined -0cc332984251d2bf9b9019b74ea50b31060fac012b662a150e3ae875bc3a66ba undefined -7c20bb24fb778b168b56c88e08b081ba180b7a30a31163a00f101247a649c6bd undefined -825fcebb5bc1cf4cdf84be2684944a8258d06a44840d95c90a098958231a648b undefined -87d6362bef5bac468c9d932f687c340d8f86c4b8aa6f155b518922ab10d99bec undefined -27fda03d0f28475f36a0f1e4ca7d75e2206b5f7f4193de327ceaa63671217f75 undefined -98d36c5470623dbcc1c076570fb3708d2f6d97f0146a5cd78f473ca1ccd3f8f0 undefined -de1bfcc1b452d099e63caee09c24be443b4f5c4b544855c11aec503720898eb8 undefined -270f98d3583a38402b8cce3153cd8c9de511fd14bf0461d10fb385b8fe0006a3 undefined -047d7fe1005da3e018f86cd5b548d035c9b7a42287c13d7a72014c26d00fba17 undefined -8ad68f8055a57537dc155dfd1c77dc503df560a3e22b03afdcf6de0e50392b03 undefined -58f4ac2cc24d4554b0681d9f8fd07aef1b82c0b8d6a3964e4d6bf609e5b7b2ea undefined -66c9aca9461f67328e31b2caefa9e86cc00d5f8bff2e16ade65d19b3fd250d73 undefined -72f8f71d41b7b3f5e046167be20ff4dbdfb77753cef60a2589bb22ba653d7af5 undefined -7003a2f88437399dfcccf81862b816c0654ef24f64b7ebec26f22ae89c9b5374 undefined -198dde0bb8c7dcb79d693691720d7a99cb352ed252f67baa9b68e5a12f33837c undefined -24666612886c15539ea833c92af4994addda24afd388bfc86dca9785ff6bf262 undefined -8d690014f20fea00d0fbbf0cc6bb9715996d24facdc45a15520ce676a23260c4 undefined -f525058d390af94a75f1906c74ff870dc0d5a0f2f4d45ba04a38d7f1f731ea2b undefined -47bbab26cfba7923d0f8a6176d9723201b521fbe2bc0ad5a514287fdafca5608 undefined -6f021f49fc27ad707b4aedd388f3454d9fe5e52c352b1accc375c79f8b446e08 undefined -1df4b72f55e1d76aafbb13ddbcdb086a33d2f087362c4bf304ff28e8342f6875 undefined -bbfcb2cfb291c8c458e91a313bd82da14727f7f8268bf583d4fd7ada9f826c58 undefined -ccdbe3dbdb920ea76a8a64a5bda6c1172a94211b407039eca237457e2915f34f undefined -07e1cfcd356e4897f3efcf8ffc404dbec37f27dd38461b62d634b4dce71ffbd7 undefined -a44dc45e349aba28e5e7d6f552f887e5d7343a480dbde20d931dbaba350654bb undefined -d85f5349c520f169e5c350c1c6928b687eae9bbb3c679631c3263f8ddd54287c undefined -e455c88f7c33a466ba412ac2c0cf9b5cbfccd8bb6b7531d3a7bd0ce4c5610b74 undefined -910d0a0891c78e14aef6af80888b25be29ea6010d1dace8fde610aa912c3a66c undefined -a48a2528c796254800bae793a7edfb390ca8f06c5b7ba3c477c5327907cf2d5a undefined -81b0280e85847e359e9fa9157001db852cb0bf906bcd3062d14a23d18886174e undefined -cdcb83396359d2c7be000b0245abf47d6f075e80943ef39fc71224b4f118b962 undefined -5acf1981795cc1fedb3e22b4b3b9d388b1be5bf48a3c875df9ad16aa6c152525 undefined -a39ec68bf3a41e06f6aee699db0a78b0a41ace4ca88190ac814d8a2e8b3caefa undefined -379f9bf0d90e0cabbd3230dc6d3cc9eabcfe15e56c92a1960ca6afef50cf073e undefined -c6d276366c9f85493774b0ff226d27cc221518f51f806345a80a3d4afbc8e244 undefined -56fcd8ba78ccbc7aed6858642d07d1ad015cdb9bee8b6210a0ab73595d5a4843 undefined -799b66c1e465ca4834edc76b615b8fc70e7a1d3fc055877cd65dec91260a3a33 undefined -b2482186dfe90e8cfccfb9b9804510594718bf4588f19520efece22bf140e8b9 undefined -67b6de2e175d6580bd368e1227366a66ff046debc2bd3f59cfeee50b322ba8c7 undefined -0e38af36eb8e61888d2b5db09c823d38f6234cdfa789fc38e1f5db47e5940e25 undefined -12f91f008abdd94e21aaa617c567cbc413158c15772d806f8db63f0341c86e45 undefined -e0b6588fd95f8be1c4b57db2d91cf62102ec864e081855463fc677742f3dfd87 undefined -ec13b6e123be8dc4558a058c14908610e2019f3e4eea72b43ab6479d5498aefd undefined -c400c16a55f8e0e651677b3b76e7e99ecda4e7c887a383a78220d5a5089c3924 undefined -d0112be6afbdc5f1c07180c3e70b92b2cf35f3b93275e2fc49fc5089beca1d4f undefined -b377ac652a50569051bd200cf52694aca6018391722c805bf261ffc9f8b120e0 undefined -cf8decd20e947969dd6086cd2d9529ac5466987b085abc37572fe8f3ff2beddf undefined -bae9d99979ec7d5575c6945bf5124b91275b6d1740332f13c5f627341e9f497d undefined -4a4c1c43094d152dff46291010814d7855590dcdd4a08efbc60314b5d9299162 undefined -90bfe8f1fd2d2a3bf71bbb59a000d43ec049f39f9a288ed83c86b6548d22d779 undefined -781a71817ed486d1e7b9a7fce02e01843f0c4fc22441873e91a01913c7de1ead undefined -3cb981e19d4b304ad5408edc60e327097c0628328653d9753730c7c1236bcaf4 undefined -30ea62f0e6c5bb12e7b1d5205de05a456ab4c6f8410ee86cab813917a692e3fc undefined -49e565fb9977df86092eb9cab4f9cc43e698eb801f1723fa86b7a751454702b8 undefined -cc69081d38dbefd835b1a9f02f7e4bb576e60b5180a0988b06cb5617c43c13c4 undefined -f9e2751e13c35a7d1b22e1622c994ecc5b477a2f0841c153d642c18e7348c8e2 undefined -4bec573fa61573e45a017c5e406c3c5254df7a5a07e74ef734da60b259b74109 undefined -31a8df90bf1c7620a14ca90be8a2c86512e7d2498ba7b55a2eb8985b14b1923b undefined -a64e0628960f180403d41ccf0911220653b8973651f6ff0c9484637d4d508ff9 undefined -ad36ab51d1e97afdfdd0e83d619ca856d8e9cdc0bf5f184b55b0c8a2fb2ee1b8 undefined -fcd3bc746c8e4b9c577dbaaab891a5aad9c5d8079c9a67790bbb9fa394155ad0 undefined -d8665674a68ea8c959be686e89548133668d085fbf15a75a1ec3187069bcb3f2 undefined -cc0e8c9a8a0dccaa0bbe6b1903d161dbce6c38bcebd363dec8945c7cd0749d31 undefined -137dbd23789ce058c996ea21907afd4c58ae2aeb2d3dedc8b88b5f945faaa0c2 undefined -260bd1a0ce7be0e77b2f22390420bf0d96c0249090fb3c33136ed8d69fdf8bfa undefined -99b108bb6a20d98a983c3784ecbb7c9175312f478dab3599b5c39ba6b5a18850 undefined -d1bd823c740ac0bafa3b9bb0bbc44e9fce6671ec13efc5f0059de03782bd7264 undefined -ac7f5676560947160a255bdf9850b0513fde7c4c90123795bc74d785cadbccfa undefined -ed60bb9d8f014a284cba53821937640354571e79c5a005feae494696efcd54e7 undefined -2a208698cc318dcfd9f831380fb1f37df9630f61b884429aaa1885bff13a4797 undefined -14463b2782cece3497d507efeefb44c08a66fc4d02173322e1a62bd1e9f5a0af undefined -2f78ab6c09b8d8ef2e0e3b4264ff9a2f5674621f28256079cbe1a1f63265fdba undefined -56c470b7a56d7283fb6f6ab6ece3829d910d6b7163717ed324b5ced956c4a268 undefined -275aed5c3c5a43bb86c6ea6f41a4174f9c18cbcb451ca1c4f8029276a2ae555d undefined -b0e4e76f5e4fb914d757dafd04763aaf37e5b9046fe762d45813fb8743ffe8b7 undefined -0d0c60a370d28e774a64bc0cd1df0570d30b336aa14def706c553680ac96beac undefined -c274f068cc4e7daee8a4fd944325798d5ced54570fd457b9e22aab3458c99b6d undefined -5c364bfb8570311fa94bbfbae41957408c19dc9985ac76f027f0b0f4225332a0 undefined -c9556267ea1c5f3c31a9fc87d1811368c5ab1bdb74128a706a9003d3206faf37 undefined -d0a53296b2387773d34494f83f5faf6289526594d398ef960448e0071761fb92 undefined -093af03c7ca81d4ec9877d32aab481dc3d3d3442d6baa8153482c7469e927268 undefined -6592863a510168ed77559fd9d77e9d74cdf810197f1feaeb08dd06a8659623c3 undefined -5e8267643b2dee564db884dc22f63d52d791b1ab07e279f8eb2cee528955133c undefined -00a5a9dc2f196df2f7296328932b95770607cd5ba2adc5c76870dac56cac0326 undefined -b63ca523a263ad66ef33ae231e356df16eb1cac13096dd1826a9214c506948b7 undefined -245ec774237bbf087562b266cdc712099e7987d079b8879d0ab49dccb090af21 undefined -9ce3044129ffa951443e5baba0279bf75cdf3b00a5e582d9b4c3440a1fd7975f undefined -2d0033bb7914f738c149b1547d87953a3614cf67fbf2998bb70ee4771e477611 undefined -9139237f33a395d9236952a913f768f246397dc4e288a0a5d7430818bfcb2bea undefined -9033b23ff21c78cc36bfa82dfff7cec176301c1a143d297134475dc867a43e99 undefined -66b98eb49bfad7d7b4f3eb7ea93dc2a18a0c9891e9ef68a6d18d5e02149c782a undefined -5f8d82904f27753c12bc7a11fac5f707bf9bc7b62cf04f32400eaa5a6f5d7af5 undefined -ae61872a1eacf7a100fe00971959b7f36ce43efc78f4d05ad80d4d7107414915 undefined -245907a53a6390182f78b771a9830511a40f4f1956a8f155ac3681729693b18d undefined -78770be15e00a452043fcec54bbf4756b53a77513e12365ca436b8a35ef30a52 undefined -43432fa771ed74fecc8c63e56dc8abefc1c1af4621ebedd20c5c364382ace405 undefined -4d8dc8637e52f71573ecc9a8938e7fa21e7fda2910b0d4b36d0c97a838fdd7df undefined -cb47a5debe5abfc8cae5661d1eb20c2c33119be184ea1711977d590632a105c3 undefined -4b8e71c1576903c08481ba169f8cff05b1e4642f571ee7c8d322a392b883a5b4 undefined -01d3e96be1163fcd62cd05f501d1caf141961e0afcee9c56e72f575870ad3f72 undefined -619376037b7d01fdeedee4c3c956212e65f07ddab7f7b55148fea6f2363e4b42 undefined -a2f31353fec97041f89ce85c8740c3e19b362a9d26f2cbadbb1b1c1f35f9e5ab undefined -c470cdb0ddc34cd9d4d5eefb9c92ff428690f1d4c7e57156ac83d1deeb2a3045 undefined -2a44e99917d2525346da3eca4c77746316ad4f97bc1b7040ba033a9dfc45cc84 undefined -0d35ea96962bd7d8161a0592c2009a1aec821d920f40d6d90036ed8953297ec7 undefined -192872824d9b288270be345eb0adc7a9f5b92ebba5483c66fae50c1ccbf55afb undefined -71ef9bb04503f25c96d2d1a6fc2da48b2c7571ba9f094804fa288062f4026d98 undefined -c7b41c7bd8657bea4741859cae911fa323c7671a672b3ced66ab30c3d5dd9550 undefined -5ba46187e72452d5f27dd47ec3681f2dcfb7a3d310f15cc4a831fcddaf61f681 undefined -cd870258750cd38dcdd310ef11c0fb69ecd87289f39bb7e1e5b0882ec62a85f0 undefined -12853c2139e005c3ead07941c30906ea90bd4d389c8e975fc6e28013fe9c961b undefined -463009a4fba0ab6d623ed000329a0c14a0a07f90b571b9637f013d589c421498 undefined -14e4c43cdcc794531ce0978a7d0e11a1c1da9f9d8bdc8d1e916f557f148873e6 undefined -912900233be19e3747adff5453941f70068a9f0c46c4c28be41aa4961316ed65 undefined -b5a6f8293ffcb5f9e42c00569463037f88367ae0729abd4c66b00bf3e600d393 undefined -2e3833c67dc70d166e743c9b8c8dbee8a920e29bfc57b38f67035f57514b285b undefined -2547c4fd8f0820683d0b39a776f307bb6d4acee418eef1ce5bb327facd8fcc3a undefined -b7b4bcf9dea5d901bf17617115a0a8ce2b80a0ce6d5a244073358e907f740529 undefined -53f0a1501c28425fccbfb9eed10cd213c7539e396d0319dd80740d9d25039f60 undefined -da8fa891c11774e7769fcba702feaa7f66102e92861a7a615c2902b992415149 undefined -fb5acce9eb4363a31272f5a5364142d25bb32e4acfc79c5ef0cf0dd0921cc94c undefined -5104bdaa13f296098088165e3e81bbf17742c7e566a3d24c9edba9e9f2e3782d undefined -ec966aa796363108c47e5c364cafbf143499ce512e862040bac351ceb8e10f81 undefined -d684c2845d7d3aaa139e6f350189553a442c2296c0ab348566c1dab6864b1c16 undefined -4d7d969e9d75eaa3b31fde0567163e7b322ebf81fd43332150cd52ceec0b66de undefined -3e9199ef3c66bb1f19de854e3ae3e952c0737ec44577c6e0793001fd5f96f890 undefined -0e090346953cf4197514bf2083166bed7b09d94991a29fce88e679630ab45527 undefined -408c2dd0b5425d1bdbb1a65bb1c01ba7cad4ccac79b4cc21082b2b8b12403299 undefined -7d55d2b4e5419c21320ff5417124206279f9a257696ff353a87d50e25196e84f undefined -62e2dd76ca2517c8bf5a411d1186122a238e61bc26d67f32a70c34d3e7061eb7 undefined -b5c6f4ceee10c9299a13ca8aa213f9ee8e91e380d45cb4ad19b92173f3732bba undefined -fc72103be5121dbff2de480a0d935f1314f02fc3b722fd80a85d6a6be582b657 undefined -f94c67d37796194602c3e315a84a3d39def2a6788bc5bc78531af65a5fa44912 undefined -833b71d1f902d03e9d4b1316df4eba64753f1fbf9273b0715de0682f3dbf0152 undefined -627d9c465bb4d8990d8c91a62c998be0baafa99f1e02febf8391481888a28aa0 undefined -d29512ee6afc22012c9feda6886d9e43dcc7b5c98a9c8c1957c6a7c1bbab20c1 undefined -2e09c1838d2235f4ce86a9613a870f982a5c4214fec6a1e2ddc46c29333c2108 undefined -9b3a178931261ac7efdd711a944e6cd2c4a31ce6c1f6e6c3edbca14e78864e8c undefined -abc4e43c2aa42318aaecde88e1ece00ac922c5a10210958c191247640ecb53af undefined -4cd485e9e776ce295c1f33646a486abe5bb3ae1747a0e424b4de535a704922fe undefined -916b5cd2c7f6380554151f0c10f8fcf42720a3d986577deb3bfb70c739b87aaf undefined -f421da57ad08d32809287cfed61ac6fbeb44204501cb82853b3d7dbcc176ee56 undefined -b464649208c59ab9bc1a42128a2ec2aacfd15a398c67e5763d8fd6f689551aed undefined -f6e402c694bb175237eb0ad382bafc9f763096205e15957035d246b4aac9e146 undefined -7355ffd9e0de822abb349894b4a5bfe901b5bfd03df5bce197616eb5440a1766 undefined -1156232d9837ea8623447d131e7c2392950c632668563e6805d09d462548191b undefined -646ca19cd655d79013cfbec5e2eff5f7ec8886907bf920dadff3eef38a48356f undefined -5df0b97a797d41efd0bd58027bbe73445281bdcd83eb3020534040a5c55a7c84 undefined -33ec84c5e56e81f0b28901a72071e13e9d6a717579092c022923a1156f55434e undefined -e73962e74abd3f3789445662bf73cd764dbad5700b57d10291ce6dabaaf09eaf undefined -80ee544cfd1f98ab8aee553bee0e4be5d1fea5efb00cc98fe1fa9c753fc1a28e undefined -3d066e2557439934162c92e0bce8be18508cf4f72b85f7732eb776d2c60f2633 undefined -2f040999d144a71ce4156a213e2c8a393f70184f47eacc02688f84073d4f2ddc undefined -78debe7afc83eb68b456d8c920d47f0171b24162b2917af99fd3cf6336830f2c undefined -c0de163584166553601e044448b2f5c15e179f6cac8ca1bed812f3f745763f81 undefined -b1941901d5f77d2e0f6110e360c8ca2b4f7ac0bc7d3332b5b618743c29497b57 undefined -bde01022549fb8818a316306b5b60d2e5f677e6b64440d0e67ac3cb4fb3224fb undefined -9b2b06b01729654f6cbfcd53c9507abad666b67af370640971fad02be9704141 undefined -44ed0e83831c274a03ec139e743a25ba52b1e87c5cd86aed1097906f0b5319de undefined -849916436996349108ba073bcd50ff5c715e54eba076ec16c6e6ffb8bd7142da undefined -b3680e9566d079a0fd019cef26cf54e4159eacc5941a12d370c97594a890adec undefined -7d69b213244f9c8ecec2aab524fced2ae4df51687dfe0f76cf3903f7095cfadb undefined -8ba601c30ec96085a340739887a133b6ed9dd0c40b82c32216b9a4aed55ae75c undefined -90ad6983e5b22de24ef7ca7fa69028253b77a14c05da11a9da39bb73e69ca9e6 undefined -f39964b2572d9366bb69b17532cb4d92dcc87f19d9d2a480541637bf1acda039 undefined -d87730236321d4221494e51169295aa3b1e0c05ed211bce1ea1644a57531c7e1 undefined -8203ede15c3bd4c6d1d9ad85b4a56ddf34452afb737a83de0bd922069cf14ad0 undefined -29f7de27ba2951be7e8dc2457e8449c2d84c038f7150213bac16e0ab657a6944 undefined -b73269374468f9d90eb83f42d5e42b91b452596fdde4160e7192483d65993738 undefined -82877bc8029fb957a59a43092ce92dbdee5b6ac2781aade5bb0c3d1f2d859f0b undefined -ec9b585a098985c4c55cc4e3bb01125d2758311a4a1e912aeef95d7ddc05ee47 undefined -3db6f281c4ba7d1803980e8cdebad49293818e33937f3c54073ab3fcbeea7391 undefined -f1b2ce603ae2c821d4a6920795151c71c10781594350b7f2b3e37901647f5bfa undefined -b3b2bb5ad7ea0034a22a8b1c00d077c54129850746b4d6328727ad665d86dbac undefined -f454173f62642f3017d5d0e80d938f5b501644472478e538ae3102e5cd369a07 undefined -7a4243f1a9e20d53dcadaf3f363f1d8d4d55e41b96d219e4b8543b769a0668a2 undefined -10819c159a18418110ee380acd16910333fb391a770abd1a7e1c7370b53cb906 undefined -f4a6558da811dd42ba8667db03f669f4b5c309381ec56c9b6c00935182dea012 undefined -6d20d2afe6cf2ebad99aca5cb3f551db59d3b5c9b419bd6a8b7752a415265860 undefined -d5c8e80c042ed2095581d4d1f626b734ca8c249816e0ecf0001f98ffc9e0eb18 undefined -377a7742d66eefd442785ede5fc5118aeb70665fe100258d8a45d883876fed85 undefined -edfbc02bd8343eb3dd2e64e46a6418304b9ee2bb70992d4b7deb9453b83d4b55 undefined -d6d41ad57ca7b3b13a4534da5ed5fff0b140348be96db17416409f4e71e840a4 undefined -93b49ee8eb36ab5f4441c72a0278a5cd6416ebc8981dae59410faf31e5e6d67d undefined -3a8b92e15be07cb3626baf0aa429a20956f53da66a9755d7e933e6d9d26ec556 undefined -e9589400a35960df1c1bc0c521bc816ecaa8014c9fb028ae75b98c2a13cd5fda undefined -6485c1da5e7d6434fe608fcb88d8683dbc73ecb396cb0f1c83df4f81cc7866c9 undefined -d463f233697595e5544dfbd9d0ec124b3538f78563d0f6cc4adade9d5eac475a undefined -5b49406a7eb8a790fd4fd0148902ae5ea865eabea2b0ca1aea9022b90e666b34 undefined -a82c279636fb2f5069f1d350f630d9c6c35fe821dbaebafbf7bd101483b1617e undefined -4f49be86a82293d022d574e33636164e34b5e2bfac02e928597933bcbd2bcd67 undefined -089ee86d99bbe6819e303e53530be821fa0d1dea1b88871c28116c6bd2d643ca undefined -6db0b5365c86526ad6c01b7ac9bf47de8951166f3f38a951396199d86646d2f8 undefined -662710e2a42708297f0bb4658f4d889e3720b8405f28826458d6de8a73e460ab undefined -761add8865ca238dfab91dd6f33d980ac5e3a2ebd90652a9afcdf73dfa2a8c50 undefined -774ed9ce9f57c5d7cf3a86ca64be41daf82e9d9620c356bc7ffcc4bad50c800b undefined -a4b4b61cf9e9de882cb9b36773f6d9bb6406b9f6460bfb29d8969ae313d0fd4a undefined -493ceb5549198e8c7302322757997f7be25731ceadbd41be780dc28bb280add0 undefined -26b669bd6939831782dbf86575e19960935a72a57fb273cf1066890af770749a undefined -58a38e87ab24ccf6a7b4bb98d21d55c380a47439ab509f95471611dd6e7ba847 undefined -9701f4a57f1c511012bbda71bec18b5135529987bec7b288c170b614cb67a4f6 undefined -a513e31ce441d7f1ac4a17fb5659f9776a726caf7b38dcb1e7aec3a67d2d2518 undefined -1c9c74ece51210ec57d018bc720af75454b3d04e2585e2143831beb3a3b6e22e undefined -f11ad08f058e3ad88b22925f4942ad1994e2d691371aed40b2c84a6f820b4111 undefined -08785a383e248989e6bee738819cee17efe73a992910d75e7903e149f89fe27e undefined -50c25c328663befe7b3d17c5dc616848d1306be2d5c1628b41c86f6fef6996b8 undefined -5200575e092eecc230522afba8d372cfdddb49713e448b97c75975f4e91fd753 undefined -aaaed3e95a3653eb0414f1b14c99f4eb09b6f18077513fa0acf7e1a79399983e undefined -e28c2fd37a1e1660a5279f7ba701ef9bed44cee85dc6d26311c272e11756c42a undefined -654a9aebe36023f68fe9e6d5759a25f66023681cc47472a8eadf86345f22c6a4 undefined -e126579572da7182a76803b97f5d0fac6fd65c49ca14524ab1ef0c4b1b211af1 undefined -b847fb21dfd6657ef3ed6a92b941e810fc73ef418c808486cd17273525920823 undefined -7fd60bb26867d35731c21e2e699fbb3efc44be86f3471b19e6683166d9841faa undefined -54be036373fc377d40b1dc183b6afe69231a769e1d5719426ef7e397cdb777f6 undefined -bb0d17d55803f8a52e186e01f3379615a4a7137126c6c8f98ea7a9a961dafa4d undefined -cab8b55d17860a7e66a01e99acc5d0321b809a99054f03e6acb51305eec1dda6 undefined -96456f55add02cbc6353457b947fbe6f64ef4b5cac4b972cfc30e2b1869ea048 undefined -daa481a0b9a978b09ad099b2e65ee021009dddb328fab35f2618e325bd176bfc undefined -74d156d213b9a456d6f453e20ab454613b6194fcc979993357690a5d09d1bc42 undefined -29d3890cf770d6cf79619f3a7db18304c56520a3f92d3a71dcd854c9c40768e7 undefined -e417240d3989be794427c2ecd215315aab06da52bb1566ca939fe0d4daf0c742 undefined -db6def52d214515373a5e805ad4600aa66dbea787e0ebfc738f4457b2b9df231 undefined -746ac6a62022c28a98f17edc12632c52d63d23e56af250134688a66656050a40 undefined -4b09175922bcfa3394f236b56eb47216821aca8b0532d4b631087fd2b7b9656b undefined -c66c0faa10e3d00d69a0d0d6ffe480981b44b2123dd6f45da3574c13d9396c38 undefined -52306355d05fe635b78b9ae8768febdb19e0c384dcc138f1a4ab5e1a8680d683 undefined -2eb8315f45955a05daa5579f72298457150864c84e376d83be285f181555157c undefined -448bcd8d2b66325c71867d84ae2887e4d00aad3475b27add66808336238269c1 undefined -996b99b9910b134a8c509c8e6706216c21e77707c1d28d7e0413bac9e24e9089 undefined -1db451d59f24f62fc82e4d5f002b05b2439de2fb6962ab32470272f28de8e0d0 undefined -e6861e90897015f296a4baef07d591a575e394b15831ffe3d8c30de81bdbb3e1 undefined -09fbbe36c0c754cc833eff6b7eab35b1ab3dd59fba77ba0d9baf6c04a25ba61e undefined -e40a2aae79ae628aa5e5f1a3750f5d401eb9eacebf94acdfee103ac972628325 undefined -28ca1cf27bf0b77409a693df566d061108a8c960c5b3891ee07c453743b324b7 undefined -50b33f82d302dfc0bf13c76b8af23ebad51cf3d7517dd1ca2013b9cac6f9a900 undefined -e176dbf2919d58205d0ebb629172ba506749068244c1a7606eb9103db320c922 undefined -1dd7ae346a013777bc640dce18192dabd34517429d570634eea23e741fd40ea3 undefined -c6b4e19229af864a5e26a271f8b2c0df7cf4106def362cf8d1ebf16ec339c9fa undefined -0784b3860a57d7e0076f69ab525eff5add9060df461e1be6e9b5ef21eb838068 undefined -8c2dfd59e2d1610d63aaa88d97876b9e9e9e4ded049372ca2f7b8862942c956d undefined -9de1da93e12625e09530793646e8d580b9d4431558273ab0ef3251bbdde565f7 undefined -5cc267bac95a08d21dacfbfb5514e746d92240d30a2d68a6ef79e1809e175778 undefined -f0d8af3eb85ff520a905d615084b92f5bbe423fcc9b32858171162a78492cb59 undefined -5b8f297582173959547615154e6361b791c96a1e3bbdc4cf39f394ee1e220159 undefined -48b0228c4f71f663a44ad507203adb8205a2580bd54adbb70a13c29d6f271097 undefined -758132cddbdd8f3a1eaa5fc11677edc115279d8333e17aadef826eb947e0de0c undefined -b87063d065d5f5aa0eeeecec985747709cf3fc66e86c2b6bb54370825b9d505d undefined -65b5ef11427a066908483d7f94238955c2f2f4a359d2a3f96651f138ebaef2ca undefined -2e6a572db1113f4077ac4fa9b71204b199a05c24fb20dc7e8f21c06d686d9485 undefined -edfe45b1e0f41a767323d4fdac1fc1489b5ea1b05af1702df2aba9a59a89225e undefined -31f710c333325e425abf7f6b907feec884e367e268aa550feefc46a2f48bac8b undefined -f3aca3447b88a392b4645162b9b1888d83e9002b1917d65f6f17cc8b9d54cb01 undefined -800a1e475f3463eb03eb70bc6d0db734e4ecfe10658da4f018628906b37b7666 undefined -4b8d45435ab2b55d1a9477b7236449aab8c63976195098f30095a19cdc66e6b9 undefined -e56fd7c0037dbca189eda3ebcd441f73ab90c9970c66c4ecd2c21ce3d4ebd64b undefined -99b67f9e38a29dcce71e9a38da277fc9d69e2365cea645586b34d308e54110a1 undefined -bd50300e35fff1da63a274a942d95efcbdb48b3eb7b92ebeef1da15975627f90 undefined -00f85e9521d996d3921af168b164dd955081f5fa4e203766363783b2eecee1c8 undefined -568a422c54e59287c871c5a752a381a278739891e2c92f7d039f41459a55b729 undefined -60703a0161992d3c0e121ad3173c2f4db474a902f299d0bce98da6442bdd0d79 undefined -e05ecc163c69e95f21e237ff72c69ba079d465108174d785ad9df13ce93d30e8 undefined -da10ed1d1bb87546c3e4d69c1dd705f04d70eae32289114ed99e2dee7425dbe1 undefined -d8f25809a70a237492ed1d6fddc691a09597da1017c4e552c501d6f39a0b908c undefined -8fa875dd3c1fc76e074316b21959971e212ae0b31783293a4bd1ed68845c7337 undefined -ac60e696b0d899662b8e66c8032b19dce491f19b2a8cf48276aea3e3a55f55b6 undefined -67716e1fedfa3fb655e650615e1fba31da6d3075a7523be111caa67a69f5dd34 undefined -0067e1d804c900e2a563508e24c296abf8cebe36f5e50e5afc1bcc97f9ee3433 undefined -7d5889269d7046183280d4548ae75e80a0adc6be7a4a99f969956bbe9b541e9f undefined -c3be91bf7df6c7b3e8dcb7f5723f624fa5de574faf9cc2a5c7490eb09afd00b8 undefined -b9c3351d3a86f2824ec462c930b51c6e3ffad71b60d485713b84e590be2d099b undefined -61c0277263e52c2b108eb40b40679c12a5f7f3f08d26fa12e31809f0c8762e7c undefined -3e9a28b53e11866cccfba0dfe9b0ae714659e76c0226b70f7259293401801128 undefined -57017e0edb06fc7740cbb26a9afaa534c201ad82533e0dfda274d1ef590df7a0 undefined -75ff1a878e5b6201cf24a452d8f7f0d0228fad1ebbee83592d90dce74221f2ae undefined -96918bf652ce642326fcf3012de7aee3faf1f03cae3d838c76a23afefab9c8e6 undefined -c3f6d0ae114b90b050011a148440f80a3972c5aaf2e636c50ddc8260e9a31eac undefined -22d60fbb0c703a6f6dadba8e21ac6b5a029bebb700980ab94ab564604d216249 undefined -fe00afbfc8341e1657ef864a5277de58d3d63e136f133e6eb0fc99db91a0a88f undefined -5984a4b9cbf6efd473dbf5cb20336e992304ea89c840171c91bd1823bd724f44 undefined -e1d6519946c4336c190e7281928b46b19aa40e6feca16384654e273aa4384b63 undefined -5420221aa9dacb7094007c919158fda53c41bc5506e6becc9de00873923ae7b9 undefined -9e8bbb211ac0a5c593082175585ee98fe54f5b97594c04cd3b7d4e0995ae7ddd undefined -3852080996d9507e9925722d6b12cb9796e2c0b4707c3d086d5a11190d1e3d21 undefined -e9ecfcb839dad543b8f449f0f3127507565409bc547a75848266136d98926735 undefined -a9717f6f121ee7111e2b6dad79e4ccdedb13bf7a284bf043002fe46871a7a456 undefined -81361caddfc891a6449176eb42fa5d7498bb9a70fa78c422fecef1c624f719e5 undefined -90de09c2b8e1ad751cd2d547ed753b2ae3e9dc2860fe0925a7e673d97633543b undefined -ba9242c9295f26515b95adc94693eec50d27541253e35072fb4874f915ebc987 undefined -901e583221420c8777b319817f10e8b1c62d100ad649d097c21bc3b3bcf22ea7 undefined -3d000f0cbe119add0d6c0f1c1eda526302cf995aea232617b060f2ecff1dca41 undefined -3990e0500a011e3f27b3f96ea327302c31754b847bd22078593efc5d3f53e604 undefined -c29f5b4df682969fd38c17e2b7886d0b06abbcc69db0d65dafe338fa4a9d6ddf undefined -939783e574f107c6760679ac380ab035ba69771bba63d80f03e2a12d3d693339 undefined -d276c3d83ecc7452e917787d87d0f499834ce7ebfa0eba10ff3762a24f99b26f undefined -a0018cd168c164e6acfa4adf818af71707f859c5bbd4f91b292bac08c1a58dd1 undefined -61d72489792440076eaf4277c88462e728192578ea0eb012f78491c51345b661 undefined -49ef816592bd4ade1d093c7c33365cfb542ad2af4b3429acde270e9c393b5da6 undefined -c3f74cd79ebf04500ff2289aceaab041359401c348095d599045a2348ba93c4c undefined -b6c94dfd1c2cd52a82168056db24b317ef0aaa43ee67b9fe76447e09a95d9604 undefined -b512b50de35416bba90dee543aea4593eb3fd2569289c613b382ed4396d1339e undefined -53ff3933a394f11546d6086dee6a79a66ccb8ee123a22d77c51689b4401b9e66 undefined -1ee3cb400faa6b32df84f624f72fe5a6253b3a475ed0069bf51ab572750372e2 undefined -7205aa595567d9e8f37b1a1da0ef4977c5f3262f4ffe94f9e42a0f9ea3d72f96 undefined -80a5292b1257fa064901450d01286f0e058dde1f60b3d6478aecff058a3cb29a undefined -38b94d0eaf98c4e0c8f2b35dea068bc8c08088b49715ebca99bf8a9dfef7352e undefined -08e8139f543457d560ce5a0009e8e6bd23da31c9ceabdeb84fbb31533e2de79e undefined -ad9362d0d053014315b82f3254b8699160b6aabf41958d371351ad5e381bdf62 undefined -c16270282b9483f989146c61f5ab5d3df506e83ea64e43267b0308873a77a3bd undefined -6f695b2fa55378d011fe1993719ae8d69f2b50ea0f90f3da35e8fe3f7b89b0d7 undefined -9888daaa86c1a2383d588619616086ed96b51dfd5018ce638eeac61ecff65e58 undefined -fbed56f5baa64b8f2f53fa0e5653bad7b2a3b07b01e3954ec4a8bcb3b0226d6a undefined -7cd6061c2e3697a12b31f06d50d5a3e295dfe077c6670501cadb6ecd08afcaea undefined -9e35c8c11be7e022e1f18c1b48dfbc80f0e7fe87ede1f5f65a277bb24561664d undefined -a3532a28c5f47bead64f397e7e0dbaaa5677ffca3b2eb9547f01d01acc0d28dd undefined -2bf07e318882fbd142b1fcdfe4ebc94f099a72a3b2f83d94c37e60675d0b284b undefined -f1f74621bd946830e1194c90e50796701a330c7f8b94c88d3dbc1f27b5808185 undefined -1772387a0defc0bd3b933fe06599b3fad9c8b69c67e49ab2c1f16cf8827e66a6 undefined -824c5396e534fc3cc78dc9f583d7a0ed418f40068cc0f6d142f08dd207f38642 undefined -9fe30e5dfb1eeab137c26b10688d043906f2e8122fb4d77a9e481725ee0306f8 undefined -8a10e37983a3e146dc1dfc692c2b0b017507d69e05ad69437d8387406f0f3b5b undefined -9ce7761853e9a3568dee89cf2a95576295023d47ef14a68d438fd6d5bfcc21bc undefined -28f0869551e455ff386925a7472a69291b62bf92c981b5aee99e747fce9d4d4d undefined -3c8584c51bb6f121ffa0470068531bdc2c69d19b9c70772f77c638a3e5f6075b undefined -2eba2958911fcb07c2f7a06fd18316e260daf44e729af6f750b5fdf576acbddb undefined -ebf9f483843f408dee5d9636abd7e4a564f7ec753a058ef5aeb482a785abd2d0 undefined -c8f576b21d113f4141d95542eda30283eb042895296c84f55487908e7a986a9e undefined -e97e701719122e480be7b842162447d3cbd83d1da07d2d467bc484f724e263b8 undefined -90ae654a7dbeeabadb31dd377b0c14d71b9bd15ac5df8997ddb0cdde22573f13 undefined -37e8ddf90c20f02a556f49020a08aa325f92ee8fed5abd587178fbe2023c6b8b undefined -5b990420a5e06f076f1f3ed411089bfc054f01c4266d8d60f6515bdcd286ba17 undefined -891e23c0b5648b1fc0db2077f9e53917a9311d7a8ae901fb500c788e6461a3aa undefined -b7a5756a1ba5ecf6ca2b11e14a9bfc7d599fa8d66e9772cc471f320c075fac72 undefined -20c6dca51d31c5584ae058c4f20a8c075e182908b41328f9bce1c892eec7442e undefined -38dd685f2e0a59dd2a36bdaceb18d7cf26e67c0d7d590a2ab0a854d9f4c65b7e undefined -0e50ef4120246b2d0639b6dc83f0259d940cb15d044baa29e8216ab84a8b23c0 undefined -a056e17b76417b1914ae223034165804277144cdf7a362bd745e7acd26c3cab9 undefined -1cb4357e11f06034782e3af81e9f214921184b9cf8dc78fd40285cbfc00d4fe3 undefined +a732e5a8094c52dfde0cbf7bc802383627054b5c7b9b8260117bc4baedecefe4 undefined +a7441bf34977c48e98ca6eaef666b90a6b90774dca94834c16ecffeee1abee7d undefined +ca791120df5f865811febabdc7bec8ff5287887e3e6485fa62d81027174d7cc6 undefined +52d395ed3562a521b4fdaa77989b2762175b7486e4527a3b1f718f01793992e8 undefined +20dc31ebdd751e53319d595a0fa51e0d26399e49cf9ba2145406486ce9f22873 undefined +612df0b10318c24c38e4088f3513839143fe4de96d0e5d93a842a3ad18d5ac27 undefined +7a0b6e7df85e58c5acaefc3df834dc445c882ef18df174b75988e296fd7502d8 undefined +55d2a545b1b023e7247b8f79a566dd3eda2ee16b4764b3f0b9e3b1bfd1b5b95c undefined +3358e0965965de5bdb58b846882b94b80a0e26ae0d15cf8b7818401c56c7e495 undefined +f4edb8c7fe63a16fe26289313c3ce3db7c33e82829d679c454e10ba8383fe83e undefined +3705c808c17cd597cf02cf71959630b23e996a17f4ff59df7dc9189d55948970 undefined +d2d218d8672ea83047fb2f76a507f7a3667e5f97fe232024f3037c0b2f556628 undefined +084559def363a809cec7a29a793e3214369a453a63a9f6da6150382a22444f0d undefined +127ea8c5335b3b12f99aca3ef608a477966ee21f8d66650f4684f01c8749f0a5 undefined +31ceafa0ef2a76c9d9e084317862c88c1061a36983757d67fb6020abd8c65ba1 undefined +1e9fa69e77de70e73ae73368f357d94bbf38e88ffa7464f4600e443b51915acc undefined +aad14c29d65319907e8e7e35c4ae8e938dd2d7c3786da0132486f25f0a29214a undefined +4f276eda21818a3bc9ffb4c16d5cf9233b36828449b9970b8674a07b808ec746 undefined +bb080d0ca88602c349f7f81c459400fb3719139f317380f6d145cdbf21825f7b undefined +09da07a2215f4b00c0cfc1defa3946acbec5476a30d586e2c157882622c85cdc undefined +f9eda1391202e1aba3f9b5b438b0337a34c0c846130d3bd5233140158aa08f25 undefined +efbc4a348300ed13ed8a7f28aaab2d7d646d11e3142456074922b6358b6630b3 undefined +0a1602a558188feb2bde07c2561246cb4c6eadd9ed062819afdb3f9d2ae3fc13 undefined +62604004b277c8c402bbcaacd9c8ebf9e3b0507b0f4dbbfb9fb688a50dffc3b9 undefined +e3c977aced3915167dcc13ffd5dda7d0d144ef27b80ea8e9c29bb5ef18051db0 undefined +c91e3fcb12a2f8a9142cc7748be391d7355e293bab304f1d2b6812e95e2e47ec undefined +bd80016ff94b58db49d0c8e536887864b962597f0dba0096d7899d54b66f6f44 undefined +7e562c7843efda9b59f12425759e4cfb1833978c448d37a9efbdb065ecb31f30 undefined +41f2cdbc32534d87e9d05d19c404102efc963bac1a23907d95f917775d28a1a7 undefined +e4e9f7e2f3e8f95f413d0373abeb8b5ee47d967357863232936542b763ff51e8 undefined +1546be83fa4facdcef6d4a175b135c114657b7fef852ed20a2768871d6f1bece undefined +cefc7a92441c4c0af03bf3d9db6c9414d79a5a7a1d8440dc65ff4cb4d5034378 undefined +74b4d511e68e3a00a62f6fe264105c043bbeb132034025f167dc552a02c191e2 undefined +3d8466133c949a3f4befcecb1400d265e6dd87753fe497d75cf3bfab4733d479 undefined +da901be5b5154f50d7ac2825d54725325bc82cd2faafccb21cdea67d75b69b68 undefined +1c2cf252a4f959d0add05ea4e6cc3a7dd5bab6e553fe28d8ec66005b5a965160 undefined +27f6e91c830f6eeccb0ff37b600f12ff5d16f00c41e8f356519d12bdc52d31a6 undefined +8d4b291b3dd1d24fcacbad313bff8c8cddb9453cfc3852f9f5fb925545579476 undefined +9ab72006a1bc4a99f664509f9ba76c869ccd11e0efb1f8c8a6c36bc9e225c6b2 undefined +f35407265f6e9c51ba99cf995676fa535c0a976a427f2ac988a61126e59e0557 undefined +038f66856c15fae41d4bfb53e9318bb087203ce41390f66b332599ecba70217e undefined +dbcbcb6f992b69040d9b06cf9df2d37b89a5ef33d1b675184a2a8a303eb64282 undefined +342e1bdc504e2e41470c0a51056db6e428313ec788f8e6eda1883a9c36bd2879 undefined +ef90f0ee0cbe800116ce72e80599cbb1a53309b4a69392775f91a6a5ea31a452 undefined +c09c71633ea39a0be35387a3834f7ded3a5396c849f9d3efd6377feb245ec865 undefined +d31f5a3979ab2fb875f5949566dd6283309ccc4ab05d8d1ec4d2bfab7242b06b undefined +9fa11c66cce08ccf01566dd9f283768bbe45b4da1e25121518cbc1fc7a2cfe8f undefined +37e5b92ef722bb5068e9ad2ab61ddaa47bf941a55bbc5d25b11135f98fd046df undefined +52deeff887dfedbbbb559304796e9fd711dcee8649dfbd40640356ef3c116906 undefined +d924dc124df2d7101760c1788df0a3c720c83208e20ba7789f02c8db75cff775 undefined +be5e809f50a457e712bbd6d6488835f091e59e2ddbfac688c508e3991aa6ceec undefined +30b07c33332685dbc34c522e9ab1f057eedfec1fc7302875af92d3848c6ed927 undefined +cc944eb72f111c716bbf3778895982c71a20d1e73cfc1d0778711e1c10d73e48 undefined +304259931c100210fa17333badcc54f58f5cdb69c1eb8047899bccf4cb1b9c19 undefined +ba3443c048484006e9b223e8a955dbb6c3259022a7d7d126ac21ecf468dd0d87 undefined +f4c1420c1330d5ff161d1bdb1717cbfa59b3843071c4372c41d24216fbbb9bec undefined +a12b2d81fbe7274fa509641754ed864a4e51b55b332c556be30af88a6e240023 undefined +1d6d29fbe46afec6e2e5471657e750e6b6fc7a3d417be9d6cf388cc00ca75180 undefined +f912fefbeef8e045cd87d958ccc33d80a5d6f068a88edfd7a4bad0aecb0a1a9d undefined +fdaec37c7683b8cddeb8b2928fa35a8ef8ed754bc917738660068b87f11f8cae undefined +224a14eb8bfdee5df431ec43b7d3d03e2f5ad9f36fd2beb8b3fe8ea759e1baf0 undefined +71bf70ebc77e1ff430d6a228ea8143e599a9380b9067421bc5a9914f85739ebb undefined +4a932d9992c6b5c8e52cbbe7d9374406dd9b3563299b2e904af7bf2f578def52 undefined +107e65cc21d58653287c1bdb60042890cd3d12f0d558f9e30f1eb20e4e8e505b undefined +1bc6e677d6128e4e863abcfe7812ada14a120cc9c8928f8096fa2bc8c46023f6 undefined +8435e2ea60a00a2dca9abec30ae3ef88e8b77a5e4f0db841e7002321b6e36f39 undefined +d88f1d4b8ecb7909c6a24a6946665e02149634557fa6f02f7dd1547dd517218e undefined +74d0bf169e22055508340052daed029002c4a512ca781f536b087611bd8b621e undefined +291355e2844b6d427a3fc508578739c42dee1110a6965cdfc4972c474ff0f5d0 undefined +5525c97cad98eb955280fdcdf33a621fbf396d8f0efbec94de56cd54b7c8d243 undefined +6d6552cd8c7b537cb6cfa672b94639104c1305284bfb2d828f979919bc6b4c96 undefined +71aa2c4346330d42464ba8e46c9c1cdf08f0a5e46cf2995c742ee2a20f650baf undefined +ab94de37e0af1bc23859fe89f303d10165457c27e382d6e0c5aaf0dce8769cdb undefined +9979c2df5af82d11c461538db867eda194ccdd7b458b459750dc811b77d6cd74 undefined +f983aa3e80966c62dd8a7bc596bd2d47983bcc22387f8c6245f305e1070a2f8f undefined +8e3020d08009cb49b11fe27f3fd88e711d7703caa822ed2099a0375d4e1dc0fc undefined +4edd499347210d25478652d5a89b3d837a744d7f3f17f18d54b4ad941b13a4ff undefined +6e2c5597617c206e4274e07cc75fad5cc9d7a7fa373a22ef16c49e7e978e769f undefined +5ad6ec1d57c9d1ca95abd2dde22858e89fbf9854b812742a37a7cf102aa184dc undefined +c3d7dfd89cbfd42385fc9d3c2343fbb34b467adfec4143d21188214367544bf9 undefined +fccf4a02358e79f3979bda04bc3a3f9ea2df3ce9f8358fee39e33e3098fa111a undefined +4c5f7a76fbf86dfb9b92cdb1571977ca10f039dbde6f1d37e5c54bfb96d4f435 undefined +03071d59b3f1440d30a63331a6cc5465d01fa5ab69d44ecb383ad8977a87b1df undefined +aa99bc11d27bd9d3b6c2319b7480f37823fc2a7be9204a8938d0f2aded44631b undefined +d57cd743e80fa82eba65a65b36199bcf84964ca63a77ebee7d561c358f2b88a3 undefined +5c6ca29a1594251590c58179f4b82f9fc5920596524211cf98fba75f150919fd undefined +cc189d31055cc3c7b129798d7f964d9c827dd503e75bbc0f0978794ffe3dd574 undefined +8eb36dfd3421901b694449e96b60a1e140b84b69248a04a50ac0677400e186c0 undefined +e3a7542182e456c7a22ae0fec09fb104a95d03943fed59267b9b2696ed133169 undefined +ef6c35b92effaf9c489420ebbdec857acef63f1024a62b85f7fe82383b281d79 undefined +92cdd04d8eb91f34f3e3a589bec188c3de9c14da08dcc6471039446b91ed7e20 undefined +2e0f4ab53e22984ad6137544c6bcaf03eb701f36be3a1c9c74e93da19f30513d undefined +921c23dcf2cd895564e5ba7591e123ae20e1de2285d2d0ecd496b071bff1f800 undefined +a7700735113041bd42d61aabef0dad7ae2e1af74ab65b3f24f6b4db01be98ff3 undefined +cb4882138c503acd6f90581de175c9df30f1e82453fc3e1c19495fb42e6b45a4 undefined +1ea94e1126bc084b7e72de9bfb1b95ee29edba88703f2079e93011906433218b undefined +d655e206369b32743d1dcfe930c2e82936faea9efed09a5f66728b4b17420886 undefined +3d8cbe16b72b55b4e017c999ae973f9239286965f432589bb54c278a16040220 undefined +4263bc26429cec3e9532b96d8f6b9e61c1a6374bd9bdd4323a3c5336823999be undefined +be3c321eb751d1ad376fd106da9b5d3a5314c11f2ccf22fe4a416fbd5ce43a26 undefined +ce849f13f0e49e6a5965648fc33c29188cf2f2240b53883ed6890e28de04fca2 undefined +8e0abe49da245444f6b45221532b5fe99a5d0d65ea4e27bd69a9bdaaaa66f666 undefined +669849486a5ca7af87071fe4174a285437c9d3122bbf78b92c9e0944f48fab80 undefined +231b2441afd7af537310c7e00aed47a76bf594bd326d908eff0bee5379ff26bb undefined +800322ee55eade53397b854ea0c4e8478480376d70e48c1d608d7eec1b0597a4 undefined +f55bbd13d83a80b232328ad9a860d45d017fc45c6d014e5ecfa38983f2516bb1 undefined +19eb502dea90ab1f5a244e460ae737d415b66acc984eafae1397ec64f1fefc1d undefined +09ec54b2583d40742af369dead69b466e917df60f90831557e5daac23dd7f4fe undefined +7c89c1c0597fb1e097266ca395f668ff1e376744a532dae5aa9eee1a49d30f00 undefined +7fc53e25824bc21b09a032ddf06950b97c8d3f15684b38a13349b4c6a766e62d undefined +f9fb3519bb6f7142e35c787d21b768b89c83ad4d9256723b02562512030e0a3e undefined +d601109ffbf47c9b34e1f68026a7eb6eb315dc6a3fe9b3a358853b8f190a14da undefined +9551105fef34ca4d852ff9059f515d0d02a88468662f824f285af4fc324af5b2 undefined +6a5974693b80937bcebdb9e5ad3370da6334a63cee334cd74656a53015f13f0d undefined +c4b824e1fb8feb07a983c39675e6ad082e8d958bfebf107f84e5eefb19a29501 undefined +f24a6c642a133ea266718485d6480e73bca7facaae7ad67d9a37e0751f2f6626 undefined +eb2a47d7b398b7fbfb0b307901935e2fe2aff52feb46fd8dcf9e9f2437cae0ba undefined +6393606c56c2c17e68a6db1102925886ed368652106706d4a1a1901c7a3eec5c undefined +36064bd042ffcfaa6374928f641ef9188a710a45b86ba9fd896cbcb9e4f79363 undefined +216fbea16053483be841de877d960fe31a72583ab747d1d75edf5f43f8e4bd22 undefined +052a8b64092185c26d7f311a4ce260657ffbac00856feba2d1dff8e7563ca491 undefined +4422411f785f07944e5066bd0771991f56a66e020dba482d259c29b82b1f4925 undefined +927f282197160192428f11681d3a5630aaf9bfb354882fc92151775d60fb977c undefined +f17080b3087cf04aa005700d20009e9cd24cc70aa1b28fb9a147accb40a3fb10 undefined +7163ebbb1a5c69f246bf86634b37d558a01b757c04844536e7db17983d9a6085 undefined +16e923a79661897cda8755d81bb9b68156593bebaf185c5f0f28557000582b7a undefined +797499c94cbfbaf6f8f84500985cd65ebc0ba8c5a654b224ce0166dc3ebf69dc undefined +1c4db0d62cb9b41963ce4a99f2d25d657965ceafec72c8a02d10cb845360032e undefined +f03bde17f4cde52b073bafc22f23c77a6a1b4578742db7ebcf070e64f1a7b2e1 undefined +3a628154e14a7dd9f59adb6b4bb1ee00e44bb1b279b5e0c55ed706d1b388c378 undefined +5123240bc76a1baecd52d6758418eba5b52c9d98c923fa0c740db3c857a2b565 undefined +3c725c39dd7ce289b12be16a41c90dae77f920e2526e5051f8434bfe254758a6 undefined +768a8cf6b3701b934dfe4246029eb7b518c077220feb9dbf744992ed7c0271ff undefined +4ee97dedc89f7c9420a8e63d9b6d0f150004cee1bf6d752c50a0b54ac26f1733 undefined +e035e6469bf97fba1f83fff3b4fe5aa0057bedc357427abf496ba7f85dd53923 undefined +836ee7598cee5875c34087338647c40686d717536b9616f09865049887d20150 undefined +097d3c14b47ff509c0bc6da92294590f7a379bab71142ccc51847ff7e35cc84e undefined +9add1f2bbde642873246cd861ab7ddcc59eaf7343ce5688f158b6755ee70ffe1 undefined +19eadee7c4552dd41badd561a704b613e1d8cf6cdbeb21279978dc61073a7bfe undefined +1f19caf1d693bd52dd3d933bd7d1cb18e591215af5aed8619e0b5a049048122f undefined +1b1efe5119dfbd64c828e312180a00f03ebd49fcee5ddf990eff3830687f508d undefined +404456296327fad8cbf6298c27f4141cabd5c171513e69d8d7e599c881eaab42 undefined +bb9652a2a202ee8f758855aa232bd409c85c1890c9adf19e2bedce3155a91bc0 undefined +bf78aee7fd6bb6817072a3875303792a9b4d4f7e27a31c35f27a41736e98f407 undefined +de12c26939c02ceaa021a0465c148234eb0e42bb6b26db2b9f4c451fd2c5a534 undefined +c54e10bebe7ee99611f22a308f4907b7322560379815ef7ca6198c3e999d0455 undefined +a966c5893eded4f0e406e3df1659f15ae3052c7b5738adc7f5bbc7353433179c undefined +48187ea0893cea6c292090b1af13d749c55dcd44636f25dff329cfbad5b4fbba undefined +60616190b6130d517113c26dc4ebaf0b05b738a1b80822120ba2bc3456c05476 undefined +b1cb700b361fa337b0b5e527e04eda193c3a4656ad4047dad714f111e421faea undefined +ae5dd26d751c433cfff9a47f214423668edeca46a50da2de16626904a7fd987e undefined +9df4c7ceff0a4be3fbd6712ad30996005d2de75d414036e25fd5fc682af5e592 undefined +1afab64c8cb828caa266367b8825d2db3e60de2cea3dc37471561edf459ad12e undefined +6cfde3e103b43ecff6a9bc91445fb56cf581823701c3c2bfd6e786ee5b054fc9 undefined +253928346bba1a035d339146ff967b16d84b55cbef18991c09addd3ed711588b undefined +515a1eb62132e7c0f77e0888c13e93c6c037c399d4faf95e30f4ee9df29277a9 undefined +0c1520a0749f77e88eb4ef47e13d38b7ad55e0d2eddbea7bb3014ffc8e5d95dc undefined +3aaa5c45417ec916674b78ccf915a70e0aff48b78427c6233dff9d53c1648d8e undefined +358052ecd403c7de24b8f6f85fecb5c55927d6d0acc07cbc57a270e8ab260f0a undefined +bdbaa9805ab1f2378b12163bfac029712ed0bdf24a4e81246c2c3706d0b3a52d undefined +23ef309e81de5730be76f3b38a3c6fe7d040ea91f84f8f156b3936880e9bdee8 undefined +f7250d70547ca8c16a3ba645c79826ce0a1974a2ff9777f80852b14ee5a95f54 undefined +68cb95252ca31ab3fcc73c7f3537ed17248c1de041a15b2931e5b24dddf40fcc undefined +5fa05e3d2cee32a6fee8e975a81e71bd6a29b0d75b0cf559fd455cdf123afb35 undefined +9c130aa41ee6057e6339abb510ee9525d468aafe4ee3bd91545df19f853c488d undefined +d3f00542f2e2bccc25485c2eeb8870d85a5be256ac9dc2f35a5771e21d8fd1b5 undefined +2818d22e4e449e88db661f1abc67cb244aa06dcaf56a6a6480367f1190110e5f undefined +b7dc4310a5d999869bc283a00ef4bdd61f8ad931955ca9e5c655fdb76989d3f7 undefined +c47df29efd470e57ab610e7a603ebd296cc26e724e43b35fbc60beeb7c06efff undefined +9ff024a902a4d9493f1fb46fe03ca8e338a100cd78d9e4d6478e5bab7b5808f7 undefined +e27e4017fe2feb0187d0ee744b4f6231faffe5aad42ae511a14b26041b315e7d undefined +29f31f9d442fe52492a2c5f5cd5fe41dab9aa7aee3b60f0cd2f13203c6df2b0c undefined +582748822dd90d5378b1f23cc016b2d4b61ef80f3323b3d775ad91e1f53da580 undefined +aa1ef3551c2eeb3277a0004c8b5d562852dc62fd15a99ffda4d2581d29fbc729 undefined +e6cef79c7f13889b2c639919975e92cf22a6a2cb977795c312e665f427ab27dd undefined +9a1f5dac986dde4e923b71e8878f519f0e3ff611c5f604f174db0f4a59c6d7aa undefined +5f6f90b1a4d7c050368956bcf3d74607bfdcc4c89a7a8287cca64e1bfc38e15a undefined +d484f526f8ab2db674e1ee76a86ec931b9ddbfe5d7531176b72a462499306769 undefined +e8680be2ed1079683d34c6657553d24beeb59f154850c30287e0b102663b503c undefined +c602d9aef5fe20082c827c60092d7c5d1c81f762b18dde5c7c56d09afd9ea4e5 undefined +7bece2f107662a4a0f3af2144ba4bb4fba77b88b686f64e4ac945c73a5c5f01a undefined +98e3cb229de175b26ac6721c1b76a375411a65f4fb564294d5419a4bcf4ee068 undefined +0c08c5814cf6c67908e88482c3fdc2d16ac573f8903fa8ca803bba4030aec8d0 undefined +3381652f55c83a5b42982bd16142be8647810b4df5d72455a4d48134f6a3b3bd undefined +e817b2c804b286918307e5f5e8bbe7fcf65c3e150ba9d3c222d16aa0f69a4cb5 undefined +2683740b9316489b217ada410be8f4f2ff9b1a7dcc6b291c1d6aa4c3695e6734 undefined +e4f6ec31c24d552c17453fde6741bb3933043ec37cb537810f8d5138381b5ce2 undefined +a28627abff05f4223546e4374e41f70c36fae8a664d8e7d877afdc55899a9e01 undefined +51eee4f7dec2090ef78e095e085af1a240070f2f871cbc29257b3aff437ab077 undefined +e7bf0e8e48c36501522f31e29f55dea9cf18021b3e752de8310a24445205bc2f undefined +ed5fb44ed22b3875b3ccc9db7175f5df0eb1982b08a266ed0f17f1714cc726d9 undefined +46b7a9c17563282e9f17525b67e6c1b2dd5b6e5756a6911433aefb490ee52e7c undefined +b73b67ca17a27dc0bc63349710ea144cc528e471047c2386db99fd061f0ff428 undefined +53020c9e2dbcce414a06a5685f72526870238e87077154fded62d214dcdcd840 undefined +73c7ba6ff6b99c5118821628e55db62210b219edf525060eda5da7d618a21878 undefined +a40dabb72512b241470ff799abc8a432b54be2b28c441e4be36ab601b1f8b9b3 undefined +430d775d16140562d66b6d126c12126a3a65ed9ed51531581acef13270e5dd01 undefined +fbdc7307839ba9bc612806826a567fba5df0268f4b236813eeccfad04b8873b9 undefined +2a4b16b895e5aeddb3e4566fbd3369311b94b66135497a25a9b82040057e925e undefined +21dff0af4194b3c1cf971be80b5b315cb3a0fb03e8b0e9b9f31836193f28d860 undefined +4ef5f446c6cff67eba7b9733d0a9621e6fc7563be217ee75ffcfa36474874a5d undefined +01220dc04d0e497a5ccf554c2ebd74aaa5d3b57bec6205d2468c585062039cb4 undefined +206a1f8738ad70a72b8ee9c37d69153e491c394f0c3eabcb8a6246c2b51ec307 undefined +84a8af1bbdb9adc7a8613bce2f45e3fd294aa6978d8f5d0f00db44f0e9ead239 undefined +8dbfb16697e0abb11cd9d9613b7e5a0f1c337e303aa0ced7544c89ddb8295bf5 undefined +20d6badde2cf4c5f1db1cee9d8bedc6cdc00323b6da5a811e618327c22e9b287 undefined +94febf76289f1a16eb11e490206eebc64aa43a6829f510cf53fc77c4e313c19c undefined +b09e9fb5cf091a65e445449cef06f3e9b4e90b3b14a5dd0266f24801a37adfcf undefined +81e16b8779ea7127a2bef3007996dc9e1c15dd40069f9732b1b36b3fb82d91eb undefined +33604f16b7633788c14ed926f6ee072950e8ffc93a6d0809e462b7955c8668c6 undefined +d4bab9560d5fd50ba0ef8833d6a84b7c6ff960017d923fef7337487b96f547bb undefined +6ebf7213b5fe4b368fa62907e346c9462d9739ae01270d231bb5ccf7e86e23fe undefined +4697ed23629e6a0521e6ab19afc6dd83609f5936cecea17251fb9022dab2bb57 undefined +1245528878dcbecef56214e1161d823e74534bca59aec61193067ec0a4dfaf6a undefined +ef31fd47b92e18157fccfd10ac02a9e5e6bcaad5000cb340ecdcb01e6a388760 undefined +51009eaf8c8e9f77a69ba19bd912af9851d14bb823263b59f00f1449a69095ac undefined +2738e8764a71eaa0013df8ff33b5a6c730669aa55ac500f8d7d4aa586d730bb0 undefined +81e649c87a654b730e8858f7188cbe42ba06a83b98b76d175adda4e44d98086d undefined +de85b7dbb34779207a22ea1e1e4a9db052cc4e04c066ec3ef7ad0b452f2231d0 undefined +e85daf9d2991eefee7a2eccab5e571b4bba0a734c5f108fa2d6139afb12db751 undefined +99d8d610a16e979cc41c1c4e6c4819122436095e8fceeb6cb7520a6e6a24a1a9 undefined +715109d8e076ef67dae1ff6c12dac7cfb0092123ac13022b3b98c9fe6634d2af undefined +22795988f34496db21b527ee6c17382f89c7074ad097723e940263cb16e642fa undefined +67a2af219f791ed9527df1ff7d59abf8a9479152049bc65921df56a73d8e6b72 undefined +a185b5496f118a0fd5673f254912b549cfd01be55455745c8fc1fb4fdb5ab310 undefined +1299fceb6023278475ff9b493736aceb55e6500a1bed3f7443ee1e65d9b4672f undefined +eee4013a3306350063725a7d1f1701fe482aa12d1e72af8f19d8dac73e66c3dd undefined +8102b232bbdfbea323c7a5eb6deec9b0046263c2e7ebe8c4a983a262396576e4 undefined +9298e61c4f9db91efe9a464f4a0e604c69b6781972f00f6a56a495a7537e7912 undefined +1d1a1b7cc05c9fb97337344149fe45a1fcb704b5700900e00c3f4205333a8b3f undefined +7b5f35734e1df9eee783f45836ce99bafcd93e1bd7b107d083edbb7464ad2c3e undefined +ce079f35a43dbbaaf0a7f65cf816c22033ec28f1052da822e798eb171fc1f9b5 undefined +f80117fe273aa7bacebbb8034f83e5cf5c77ac34ecc24c035f42c748ae1ff8aa undefined +d413085ffa9557aade8c2d1dc1562bc617875853a154020675a56ab0d69f3d3c undefined +d4bc1d3fc9b656730ddbaf4257e5b988c970f705ee1c85e15cfdf45cda6a3003 undefined +af1c09c90dd51ac90d075be6e7e587bfeb432fe7663e89736e972a59b0371fde undefined +187fd982f682014c905172b250b0d791efe5aaaaeee47d01b404a5ae604874c4 undefined +e32e3bc64759b10a8b6477bf64a8f1262a17b457881135eb9dd1d752615191d3 undefined +2d2b474d4dda52f254d61fd43b3cec53a261a1037e7b13625394ecfb2ad6a44e undefined +2e074f3d4262d058e846c2edeaedb3fcf66dcf98d4bac15fb5c797a3e9a1f122 undefined +e9f92acbcddb551fc533dbd3e3f8c9ce0b497701023eb619e4d48f665cf6e8be undefined +a841e0d092b77e096c3d5c638970b4761612643980559b29dfc8c7e8dcc7aeb3 undefined +4b920f965d7101657a9d30709ceec76c5ad3631aa4ad8a8c4e6fa30d26ed20df undefined +dbc3621145d77fd3b7ddef538a52815248f1ce100d37dbedf022480abe6ade7d undefined +0bb943136d890c93594851d644a79fc9c91338d8bda15b881a36c458faf1fd84 undefined +d4d8b4bf6539eac8c27ad905914db745358dc08a49769a4e4578215486705808 undefined +aa729c85c347aef8263ee1c90e16253d0ff606524fa00ddb29bf126abdfe89a5 undefined +bec9dde5f0a0abf8880bbd25cf60985f61e7d39d0c7377eb46238705c218007d undefined +895cd290d118a5dc8739305d4fca42a9e9c999d012cea06f1133fe44f993603c undefined +42c1f86e444be0f0d1fcfa1c77b7783d09070c15e046fbf63bbd111d710ece13 undefined +03ab64a0a148629c0821d1042d16d793b7e69efe477ff1cd3388490adf366092 undefined +95bcd1b1869a422f98643e2cce857ea344fae392312380af3ce64c7c91ea4068 undefined +e4db027d4fb4f556c22ae7fe07848f2e90c1b12734565db48ceb5616f9c92a35 undefined +820b29ca63865eea282301a2e29bfb719e0d05350ba46ac22ae3d23bc5c6489f undefined +82ceea8e6ec26e7444fa919eafc66f2645e6a133d8f0b89ef3b92b6cefd8219c undefined +020072be9fd39eab719aa10200af8c29d5ed276a33d1cbee0bfbd3730d4f49f3 undefined +354ee3b82703aaa8d49e8f541af9b7217a3fae999cd56d21034d94dade21efbe undefined +805c85d3e2630217ffb84281d4ab987eabb89d4dbf1b08fe6d5d48a3ecf896d8 undefined +6701359f62c89b7bf95592703ef05f7fc8bc2f5156213d22128b8fc89724e4d6 undefined +f1a598c587f3abe6254cee80106bd1dcb3b406a542cacf269cfbedfdf47bc001 undefined +b18a3b7da67a906be816329cda621c3cf7ba29ff9b5d819425161feb5b41b982 undefined +7f3dc86b664f9f57451c23220d25c0ffd58efa94d32b82b00c3a94b2178b382d undefined +8f0b764ab2c4811c91fb5aea359a3182628377a613124d8b0b6cacee9ab8c003 undefined +27ef7ff1c51de31a12a8d9c128873a3145c57cb92035b6b1bdb5e65b75c9e2c4 undefined +22159ed8a3cb9367d9a324d9f08fa029662abfec95faf81b6808d7eb2b470ff7 undefined +85950a1b7eda1d1aa9f9e8796c47e2a8341a6ef0ded0393df052f73d3a1a84a5 undefined +53741b495fdce0bfe3cfb3ded644374ee7d06f39e43d2fb89138c95ee815d41d undefined +cffd3d05f8d14f6ba475d182a147cccc1e7cbcee8a47f28fbae9d77506f713c3 undefined +b6511a084df22d6e168d6d62a6f7a7e6e8666be47c8d54add3b8357011521566 undefined +2e424c02400a8cdf53f91b30cbb1a1736971e2480b0329bb9beb85a8610a2d92 undefined +763a4754b0b496e2c9ee870ac9fa342aecc051ab9487539a40178f0b8befafb7 undefined +c10cde4e83ea3f12d0ce830163c8464fcc08f58d8f78413af85f3842c9c8a8b9 undefined +e4378055b1cf0dd99954cf2e4564b050c5eec0b0b866f7521cffe30c887aef71 undefined +d0f6f45165b51386d3c5499eb75856577963719ef18bd13ebdfee75f61f0d073 undefined +1898b4de818e081c89584c1e2372c6b853a87757cda681ad0458b7d07910d717 undefined +ee805399a402dfb3665f1b9ab2d961eee958e17cb79eab1597e1ef3f45834cb8 undefined +25f9b05158450e97f3bc1f2a7b2f0f341f2bacfcbc40591556f3883c2f2ed0e6 undefined +4b2de7324bf14eb7a2b405a46c7e243927652bde266324739be29269120e895a undefined +03b23302cb1c1d679f225f47d85544dcb904fa11014e8aaa8619f3a17fd24a77 undefined +30e30a9b12a785025037a7ed2610350317bc42d1a426c666e42063acbe5bd3a5 undefined +e8ce02dafc3cb6ef585010b9c144393ddf0cddb8641dc572db0d732afbd701aa undefined +2492b486b34c1f405a644d25a01719264d293e4fc0758c0c5cff8b122b49562c undefined +a1d9a8e2733e71ce66c50798012befc9e0eb09207010b88569b2d3b9dcf49666 undefined +f29381f8354eba67629af549ec6962c15dc67f4402a41ec3b706cb80237e4ce5 undefined +be1ca040be632a4bad390be376441ed4d16d030246afcb94c15d9b5536a626f4 undefined +71b280daade3713cf1eb45974ae5172912476bf5dd61b769739e0f6c6d81bcf5 undefined +1d4074884a98f2d355a97e279cc3179d244889c5e55e4dabf083e77964b8472c undefined +13ccb55a0f0345e0b05dd11a71ba8c88ad726c773f5fc039dd74aaf108477e1e undefined +05518b85917216f66348d9df9432a8e7b1796eef7e10c0fc9f77ba59498441f0 undefined +176b8e9320dd6298b196772754ea3dfe8f8a45f4f4b982d42d41cb1c8ab6d60c undefined +eda152b5ca54fa60f7b39f3a7149d45c1484302b4c1795285cd14613646a6957 undefined +70dab98e79153334346f9621bb084578df8f1a1d7faf5762f54b2f1ccd1e7968 undefined +93d1c26c588343c3d2fec4acafdf06147148f455c0f6fafbf1c1cc92b7465426 undefined +d4955bcf8ee5ba35cb278bf5507cfef49acc211e2d7070e5d565ad94b5f84e0f undefined +f4d998fbeae5dae1833e0c68eab2f237ed31aae6c1a734644c30371a8fbbfaae undefined +d9d83a827bceac12b94ce77995d1bb450e9d1560d303983c15a43970382020a1 undefined +c2b856e46e15ccb13757ddc0beb6fb1c1956e4ba37bf93484f81b8154201cea8 undefined +546e01f0912481781b9799e9e3ef76d7a92d23a6d1765e8ae5061104accbdbc7 undefined +9778c65a8bfe427dd229fb93b671b3d3f9284da573ec5d34ee52ac79496f7b11 undefined +1906440c72d9544e1acbd857d0d961cad95f9985297146d2ce9230bed66e9826 undefined +c49dd35f9f7c24dd676505aa2e82b746546dd6643b8b9afd5fcb871b6eee7c82 undefined +711d9b6b161d502204ccdad2a949b0ce6a6b5701ba331b56e9f7b2bcafef284f undefined +4f386c27fb2f291915679dcd936c307e9e192a839015cd4a165e1bed01a29d99 undefined +4d917ea8f9033fa5ad0d7ac1de2e1bf400920f787f6dcf208012a53ae3034dd0 undefined +dff893282b8541be4e6dba79a7be24a84b69a18454a8a564a0461b0719b0e5ee undefined +b1113a42a01d23253cd656f1b6f7216db67a0a30cbfc9834f2ba427a23c4ef04 undefined +f8a47d90f0dd6c11fce12973ba5951842134a76a32f62792e516d0405ef695f5 undefined +54747868a915174ea85c0fa38382068120cf5823c2c845e30651330fbc034357 undefined +8ec89986ed0ffe2867794fd6be128b9ec8c345c787321fac36c53c42dc756133 undefined +985298a2e346f955b578639ddecaf7cb6ef65e2ef74eef0f31262e8e90a91455 undefined +0a55f1aadd8ea073a7eb735c7f68b6c4ec8513ffdf8920d9db508b7c904e604f undefined +cfd5d46f3434d5fd5693eafae7cb13ce2f6f60cee2d20735a8215d6f7d4723e2 undefined +c54dc220ffeec6121b663e4b228b92d04a09fdafe4e7eacfcf9f832032701439 undefined +5918321641d6a27ab764dd22f015760ead8ea6421daaf745b481fedcd9cf2600 undefined +b515c911b8dfd07b4006a05eed96546233ec445c5d2e927248cce5e7f88717ba undefined +54fd719d53a0f7d9eaad42e47d30f30abc0fc9995915777ace2d606dbaa12175 undefined +e82bd1afb278098bff21932bc3aab5882d707413b74b2f70930a6ef3870fb66b undefined +bcfe6283e7854128948774a33758bf49c94e1ec60ee77ce40151024d51b9d949 undefined +9dcb0aa7e7a497716bf559d6c8c3e9c47ddf430700af4637986077d60449e98f undefined +a914e9e31161b115781549863f6a8c5ffe38071c9bca48edce1be8bb1b8ddc02 undefined +b551e5920bd39b14bb9a4a758245bcae6b8b7c6755f0c10f61bd5c041dce06d5 undefined +06d7f78c19d432ea083d4327b49a653b1316a54a3918d3e461caf59972f693d6 undefined +3efb48bbc753714ea603c9de9bfefb0330862cd4522e6b2d54ccc63c84115805 undefined +c831d075c9ab72901a73594c61b22809f530af288c67f5358c84e56bf9e830c4 undefined +e242893f89d7ddb59d468d6cc4d60b176ce294502c3b73adf60f59408b52caed undefined +642170c58d7df4eca6eb43efd78848843b37dea2a64dcc1be3c3ca5c8f0e82b7 undefined +97aaba7e461943ae6d3336fa3fbad1fc4ff226047c53e1e312ac9128dafa3c5b undefined +8f9bffdb35f9299fef323cbbb5b9f400a02fd9696dec4799e1b212f1cd76ec36 undefined +c247c83f2d27ea20ecbc7bc09b5e7b01e7316707cd95965fcbe6671010b4c6c0 undefined +20b6d9841a992341392eae47abbd5af95f449dc834a0753f1bf39d2a9da2f76f undefined +4eb6fd6b3a06d7feb106edd8675e15a3bc968a110f03168ebb7df655b4ac8824 undefined +a63656791371b0a507b880a9d619f1c1666d00e3e99ff599a644bc28dad4dced undefined +78219ca4ecde6b4bce4cb30826c14e531b4495f8656fd21e7244d3522842dff5 undefined +7d022b2018324cc2dae5788f2b0148a1901a490d3ea058758e329b7152b6407e undefined +70af55d2ae5e68b6e38279fae23f3054c032fcfb294bb6981fc9b677cab3c205 undefined +622b8b7e63a98d6c88d3dd2a6bc633372f0e19f5a133fea445c9f2fb1abecd8d undefined +90249c1d8e618e57efc958a29d6969a9bd4032261c11bbd32d253f6938c55394 undefined +b09c4b55a3738ba63332850f80e917cffc3792da288d8b018515256bb1930780 undefined +586faea5a3b5f208032f95e649dfb0dcb0372d13f4bd0b415053522fcfffe15e undefined +a1ac1cf9fb9793f1e4e942f057273a1a82bbb5d3e48f12d0d670f8438086a7af undefined +23af59c52cf06285fc076b57f21cc0d060ed525e421e91bf9bae6ddd68ed2ed4 undefined +97ac9839a9afc76582456d9881d94001b3dee8df56ecd744d46d9d3e799dcf0e undefined +18d60031bef0da36a6b32042ce9ad5fd2d01c8128a7b9124158ccfad82aa9e63 undefined +27e1ab20a6c824c8bf36266eca93ef952b98fe95121d5aaeeb646c3135223a63 undefined +b2f5a1d477b7e44e6de64db2e8ec525435181faf6d677c09432bd59c8680099b undefined +ba6a4084e782d49b0fc397683271a5820f3b39a846160b6249e29df0fc9c7f23 undefined +1d06ae9e925a9c4520234783fdee5dce3018277d24186b0d18c47cebb426ba3b undefined +258f9a38bd36940ca87487692beffae2bc5ac5b4e3b3594fe792a6a091236d5c undefined +53ee2f3c9c0854f9b63c3b6ee4a894cc7805e229a78b06dc778842365b86b86a undefined +676e2c0bb7aa9d1647151c9cf58119f3e26fe132bbbf9ee2997b31275dd32a0b undefined +7a7d8573ea38173bd0746f65b3631efd63b1e13892e437833197be9a1f95733a undefined +5235d3562dc7a4ea9158e9eee4c357765c452f0c0f6ef6c26d6e7b5d8789f15c undefined +d814c3410ef8284246a4e63390fd6b03dc077f060e0997a4b17903ca00a1a5f8 undefined +081b036840650c1183bc347ee6c159fbf46da7cf0b2b551dc60f8def94af7284 undefined +8e09c785af39853e3569f9caac641368dc240ad783df077ba53dc95ed5e5d669 undefined +d8154f74a6cb5c3afadb4dedf645494b2015863b2dca6c62b7de36909abd62ee undefined +4c50c8f652cce77e8662c4381c71fd249bcd71cbbd2767f82db1338f67fd1514 undefined +7fde26e6cc0196ba900d2a1f789e7c9b9a0505f30f475aa98989288cfe350eb9 undefined +bf1a977621c24f0747565b62d35e8062495ec72c69a93272a3c464b24016ea2d undefined +e35bde7ea7ca6d87121d0ad5e9bc460093d2154308f1be5a468688bdd0caf034 undefined +1a785a85c44bb5eb3871ee0128635f7c65efec78ace4b65d2ff4125a10fef98d undefined +b405840a6e65d686464eac1e55f50a0b9ff4c8109b4aaab4ed8526fdcc43e2cb undefined +5a2b60bdc78e837c5cacdade1a0932668c210af6a69058cd6d6e564ec9e43fcf undefined +a3e1c1087599f55acef67988f0045e653fbfc0af6875f215af76a86988d90e21 undefined +47115faf7e375e66db3f7267b779c20b3a779ec6141d6204a1558a6445f04c80 undefined +b5a1f0b312a0dadc9ed806dbca9c24d052fce3893ebab073b8f91dbb1dd496f5 undefined +65bae4ab44b5d4aacd7616552d0e9288983e2f5717df49fc6a2f845f35682a29 undefined +85fbbec272dc2831f1566d1e39d3b7da712dc457dfd8ad415a0862ddbd25267d undefined +6a6f84b81ee62a261c584c14832f5d6dca9b30734eae18dc0ef7eca63515b285 undefined +00a40dff71b4ca5eb6cb392de77b0d15c9c01fb2b56de8ba205eb9a57d64d99b undefined +585001f0ada20ac3502f5518413f53a82ac5a0187db67f909b8036f7413ce0b0 undefined +021b7019b6e1c02d4309bd91a3da114e4d690d8e1c4a15ef40502add079f61ee undefined +0cc12955e207613c35adcc81166fa81552feff130a8a8458be234985a05d59ef undefined +a0a00991e9b129c9fe99a918fd32dce0644c8919ef9d4833381bb755c7a96fc0 undefined +544929b92d80ef6a3e341ef2aa020c4fee3db275e944ad918dbacfb5936481dd undefined +bf7a94e606decb6250246499ddeada6bc975cd07555d1955d3baa9c3af0a0654 undefined +4a7167b4a66e36f1761065cc8c7cf1bbd7073c911b62f216e4438f5f655d5807 undefined +3cac837477e1a9c4700f06a7cc85f8048d39ef0f98b20251a0f6d16073b03d3f undefined +fbff4b999a29dcac24071d2e4cc6fed5e6c297bfe81ec13d4f074c3c0ace45fe undefined +f81f6afc05ab806da7afe8a4b0ceaacf24617f94ef62f3116c523b1c1844a3af undefined +fe6c7989117aa574a3681f33fcdcc8e0f7743ddd8fb8cda2c29d330be181c78d undefined +ba2383a7d54a4f3177572e8f7c7f37e32df52d16df96fa2c7c00247e0b413674 undefined +dfc578fab7f4c139cbe2ba557242d02ebc621cbbd83a037f3fc9d1ce2d254c98 undefined +111c6533983e1ea91829481199b404d3b85b13a750bdc3cfcd76e29748b11a18 undefined +63483f3f0772f62dd99aef9da7d162e7b2416c9b743ed40db629ba0723da800b undefined +08ba9c1c082af2889ed884ebd5264f006352227edc504fa04b66fbecd94a7d02 undefined +b98bc1c25f74d7a69eeba4687a71b496f26583c0824c0b5cb559fd366212ff66 undefined +99cbcce4aa1bc0f56a0bc2dcc8c2c42ce488e20833e776fbfbac7009d2899f1a undefined +dded8f3ff9d4d2fd92acc1d7a68ae6ad7ac535ee23fc8804145a0f54344c7cf7 undefined +ff86387dd4c784e5381056b3c6feb075f1f6c340788ac100acab6311acf29fcc undefined +6bf77691a1e1d8401f670eadba1e44fe3f5b7abe7fc203ea2dc0503b67f993e9 undefined +6a83317d02faf9ceaf749ca505696328090187ca8349be507c967909cf4424a6 undefined +f0364e91a9e5a0836a80d42aa51591a8c2793f9a0445b9bf736865a7e40c62cf undefined +9b3b066c734ed176191588f33b595168a032121ee4612c183298fcf0be46eb9e undefined +d98a68edee55e9ee47dcaf0ca0a028fba9f10da105aff28415f18ac31d9fb874 undefined +52b6aa0900f5f0471947172f2b8866ea6b09ed0d6ac5d8ef1ab24dd24c271390 undefined +509c18f7d64b0abdc6d1725f4311be5a5e3613913297b7fd76a524b75d436597 undefined +a2989140063114ae9348d66c32f084f0b112b704ac72072f2407ad99c91c05a6 undefined +02fe24c760f5f497569fa410f17304175ae4f06414c6d8dafced72f7352a3148 undefined +dd1002fdc53f5071e9efc214541e95fc20e81a1d514f989df27ae9e7e224efda undefined +e3fc22bc5a14422055e0a41046dbc827d5b1871777d707af543ee064860438d3 undefined +a96573a1c7d2127c9b38ff8f25245883cc57d3e56d2a527ffaef5b6032dcd2c4 undefined +7093fd8252f82f59b830708c1400be47abac4e75ff5da9ee821f6256453d54ff undefined +cc0c8932886952b90a8d37ee0c7add7638d7534178dbb123faf21a8c5690825c undefined +55715d6c7ce8d05b087f592b35e9c25e316c2dc2400a114a7f2edc2f8098dd86 undefined +9a2a8ec805374aa97bfa0a8eb80c2b6a8d933c393cbbccb572bb67efccb5dbfd undefined +b29c7fa9ee6a6a38fd9888903e184a331f3185a1af188fea51a48dd6df0ba54a undefined +c80056bf42472a8aaca44677189534a7cbe8b10461cb7949dc02382db56107c6 undefined +ab7ed32ccd4cb9e9ff4cda80f27a597e2b383e53c42da6156c4cb6e25826b5d6 undefined +862e9e20b8b642229c06b07ceb986c9f919a34576ce9fc28146179eff7dfa424 undefined +38de6bf0861766f6498da9397a99332d1eafd4cfaeb24cfdcd9e27d280f29519 undefined +36dd3e737c6509a64373ce175440ab1169b24fe04bfaaa15ec2ddcd5d88be3d9 undefined +bdef09e7b2adb314dbc8b8fc2431bc6e27d236ddbe32f957d2452e5a4abcd325 undefined +37765125fbc82d30f1b738b4f093f7547eb6a00710e490334e7ddadf54ebc46c undefined +fc4929c353bba27661f08511f5d5e56425c40956b1c5cedc6b5f50b71baa23db undefined +9b651c95eb5b5096d8d461123a4ff851d1b4729927c4dbb5f5923c49a023ccdc undefined +1d064acf208f3f64e91f15073e75d60c1ed14c7ce68580757933ae6e16fc75d3 undefined +818c45d3eaa680c20f230829e5229b978c9495620c56af4b146f89507d7445d3 undefined +09ada3a6fded4fdd0c60db3b5d75c66af5cfd9a1fd2f18416f386a1753c54623 undefined +4d6554346ca4dd00da1a4b7f538162f7f3e9cee9c40ab9e36599ef60c201d7b3 undefined +f73c2284db79dd188cd946518c1bdc708b6a5336b4b14bd502448557b5b1aca7 undefined +0626069c52761dc47234e1e5f677430b7a8a9287ced6ae8293e100df995ecd27 undefined +5ca69eee99b37c89de92472789d4737683429500edfe97b726abded3b226788e undefined +37b759228e226ee095e84fafb5d91650e1eec5d81db9438e0578994d8733ae35 undefined +3ba2b24de7acff56982e61665d179d25e3a9c4884f65e6be7bc7f6c153e28615 undefined +fd256f0f6c49c77df049d1274abbc18643fc0a859ff8527c89d60a01ced1bf39 undefined +55a4e2675526bafbd1ef5fb1470a3b87d7cc41d7de244fa78cb8a972216da5de undefined +f9149b5b1a30e74c31ec66ec2cf343a60ed50fd69e4c90820744a392c66de349 undefined +1511b6694b0be1e6c51637f1bc3672e2d23f25d7e7150a36a5a74b0985f0fdd5 undefined +f45221e883663e7efcecec9e969e27598af0fceefa1e75276ab135739e0984cf undefined +fea35d79c29de7fb0dd5a3edf6913f9cf02eec5023c548b050e11da54d85358b undefined +e6156ae11d8004e99d0ddfc15a90b9920e81c9a442a889bc8c9221cc458f1f6a undefined +ead6de7bef5ec3fdc6bca63fb30670d905782a56693fd8401f570a56365aaedd undefined +db98f06d2d07fa39b09e7b4a897f6a4d32ba1dd8fb84857d31600d6f2f4e1907 undefined +6b63ba83d26dc8bf1810be961c9354057fae8b2f12ce1740b4d0a8d728de882c undefined +9189c4f2f2976b442d7e277b1e1ce422e9a9026cc5371d60c11369cfd7167433 undefined +9d0f064817d3cd034b895f9cfdd47cc404ec6c6b33d6301a9390e29c57d01ff3 undefined +5314512a01417337d00313fb3305c6fcf6a3f158bdd743a0136eba0a3fa256a2 undefined +e10d58a32875adc730207fd8e5daa89005f43ff21e7d2cc4fa56577dfc0ae355 undefined +510da262206490609446e3a6b0846bde6c217dc20a5a5af8d0bc2eec1bc831eb undefined +789029808dcfeef70a81f8a7172851aad6f26c5a9ea4bccc85deb8978c3ba62e undefined +63ddc165f4a223e0052b3483d6c8f1a702f6eb93972d48ddf5e40b3c91bd9496 undefined +847e835651c8e7f5d41df4eb1063460ca1a35ec18ba2404753c4b02be253532f undefined +ac1837c09bd8feb39b2b4bcb758468d5a5b441b8ada7d9e1a159a11e2cf31bc8 undefined +541cd14c6bf2d75638a8e5859cbb435914836ea7803e13a3e6d280e462952646 undefined +5d0aa15bf457637b1c22bf48aa436388d994662784996b6346b422486efaafc9 undefined +b08ab89fd5438fc9b0ac55bf91208530f118190aaf2a491ba388ded3af3bc89a undefined +9e6f5d62c1c6035cc11e93eb1d4beb22e24cff9feec44a05b738d55658c8af9c undefined +b00128d7543e0ee3dd743a372329a1714ebf38d9fed4e03c7ef02675fb18cbef undefined +72bc3391fe3abe82edb0ce8e7095172e76766dcdd8040779b0f3a9a40890fbdd undefined +f9eca978093d4d1d96958a24386f3f20b6e9e7eacac918143d850679d3cc7407 undefined +53263aeb42da51bacd72ee427f844ce76654d5aec3f1d29fe48f7644a439921b undefined diff --git a/font-src/gen/otd-conv/glyph-name.mjs b/font-src/gen/otd-conv/glyph-name.mjs index f125839b26..4b6ac5357a 100644 --- a/font-src/gen/otd-conv/glyph-name.mjs +++ b/font-src/gen/otd-conv/glyph-name.mjs @@ -1,4 +1,4 @@ -import { Joining, AnyCv, TieMark, Nwid, Wwid, VS01 } from "../../support/gr.mjs"; +import { Joining, AnyCv, TieMark, Nwid, Wwid, VS01, CvDecompose } from "../../support/gr.mjs"; const ApplePostNames = new Map([ /* spell-checker: disable */ @@ -267,7 +267,7 @@ export function byCode(gSrc, primaryUnicode, conflictSet) { let preferredName = null; if (primaryUnicode) { preferredName = - ApplePostNames.get(primaryUnicode) || `u${formatCodePointHex(primaryUnicode)}`; + ApplePostNames.get(primaryUnicode) || `uni${formatCodePointHex(primaryUnicode)}`; } if (preferredName && !conflictSet.has(preferredName)) { conflictSet.add(preferredName); @@ -278,30 +278,16 @@ function formatCodePointHex(u) { return u.toString(16).padStart(4, "0").toUpperCase(); } -export function bySpacing(gSrcBase, gOtBase, internalNameMap, conflictSet) { - if (!gOtBase.name) return 0; - let n = 0; - n += nameByPairGr(Nwid, Wwid, "NWID", "WWID", gSrcBase, gOtBase, internalNameMap, conflictSet); - n += nameByPairGr(Wwid, Nwid, "WWID", "NWID", gSrcBase, gOtBase, internalNameMap, conflictSet); - return n; -} +/////////////////////////////////////////////////////////////////////////////////////////////////// -const NamingGr = [TieMark, VS01]; - -export function byGr(gSrcBase, gOtBase, internalNameMap, conflictSet) { +export function bySpacing(gSrcBase, gOtBase, internalNameMap, conflictSet) { if (!gOtBase.name) return 0; let n = 0; - for (const cv of AnyCv.query(gSrcBase)) { - n += nameByGr(cv, gSrcBase, gOtBase, internalNameMap, conflictSet); - } - for (const gr of NamingGr) { - if (gr.get(gSrcBase)) { - n += nameByGr(gr, gSrcBase, gOtBase, internalNameMap, conflictSet); - } - } + n += byPairGrImpl(Nwid, "NWID", "WWID", gSrcBase, gOtBase, internalNameMap, conflictSet); + n += byPairGrImpl(Wwid, "WWID", "NWID", gSrcBase, gOtBase, internalNameMap, conflictSet); return n; } -function nameByPairGr(grCis, grTrans, tagCis, tagTrans, gSrcBase, gOtBase, nm, conflictSet) { +function byPairGrImpl(grCis, tagCis, tagTrans, gSrcBase, gOtBase, nm, conflictSet) { const gnDst = grCis.get(gSrcBase); if (!gnDst) return 0; const gOtDst = nm.get(gnDst); @@ -317,7 +303,48 @@ function nameByPairGr(grCis, grTrans, tagCis, tagTrans, gSrcBase, gOtBase, nm, c } return 0; } -function nameByGr(gr, gSrcBase, gOtBase, internalNameMap, conflictSet) { + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +export function byDecompose(gSrcBase, gOtBase, internalNameMap, conflictSet) { + const parts = CvDecompose.get(gSrcBase); + + if (!parts || !parts.length) return 0; + + let newNamesCount = 0; + for (const [index, gnPart] of parts.entries()) { + const gComponent = internalNameMap.get(gnPart); + + if (!gComponent || gComponent.name) continue; + + const nameT = CvDecompose.amendOtName(gOtBase.name, index); + if (!conflictSet.has(nameT)) { + conflictSet.add(nameT); + gComponent.name = nameT; + newNamesCount++; + } + } + + return newNamesCount; +} + +/////////////////////////////////////////////////////////////////////////////////////////////////// + +const NamingGr = [TieMark, VS01]; +export function byGr(gSrcBase, gOtBase, internalNameMap, conflictSet) { + if (!gOtBase.name) return 0; + let n = 0; + for (const cv of AnyCv.query(gSrcBase)) { + n += nameByGrImpl(cv, gSrcBase, gOtBase, internalNameMap, conflictSet); + } + for (const gr of NamingGr) { + if (gr.get(gSrcBase)) { + n += nameByGrImpl(gr, gSrcBase, gOtBase, internalNameMap, conflictSet); + } + } + return n; +} +function nameByGrImpl(gr, gSrcBase, gOtBase, internalNameMap, conflictSet) { const gnDst = gr.get(gSrcBase); if (!gnDst) return 0; const gOtDst = internalNameMap.get(gnDst); @@ -331,6 +358,8 @@ function nameByGr(gr, gSrcBase, gOtBase, internalNameMap, conflictSet) { return 0; } +/////////////////////////////////////////////////////////////////////////////////////////////////// + export function byBuildOrder(rank, gSrc, gnOrig) { if (!gnOrig) gnOrig = `.g${rank}`; gnOrig = Joining.amendOtName(gnOrig, Joining.get(gSrc)); diff --git a/font-src/gen/otd-conv/glyphs.mjs b/font-src/gen/otd-conv/glyphs.mjs index e3890cf956..b288a2ba7c 100644 --- a/font-src/gen/otd-conv/glyphs.mjs +++ b/font-src/gen/otd-conv/glyphs.mjs @@ -3,7 +3,7 @@ import { Ot } from "ot-builder"; import { Point } from "../../support/geometry/point.mjs"; import * as Gr from "../../support/gr.mjs"; -import { byBuildOrder, byCode, byGr, bySpacing } from "./glyph-name.mjs"; +import * as GlyphName from "./glyph-name.mjs"; function byRank([gna, a], [gnb, b]) { return ( @@ -54,7 +54,6 @@ class MappedGlyphStore { } } fillOtGlyphNames() { - let gid = 0; let conflictSet = new Set(); let rev = new Map(); for (const [u, g] of this.m_primaryUnicodeMapping) rev.set(g, u); @@ -62,29 +61,52 @@ class MappedGlyphStore { ([a], [b]) => a.subRank - b.subRank ); for (const [gSrc, gOt] of glyphsInBuildOrder) gOt.name = undefined; + // Name by Unicode for (const [gSrc, gOt] of glyphsInBuildOrder) { - gOt.name = byCode(gSrc, rev.get(gSrc), conflictSet); + gOt.name = GlyphName.byCode(gSrc, rev.get(gSrc), conflictSet); } + // Name by NWID/WWID let nNewNames = 0; do { nNewNames = 0; for (const [gSrcBase, gOtBase] of glyphsInBuildOrder) { - nNewNames += bySpacing(gSrcBase, gOtBase, this.m_nameMapping, conflictSet); + nNewNames += GlyphName.bySpacing( + gSrcBase, + gOtBase, + this.m_nameMapping, + conflictSet + ); } } while (nNewNames > 0); + + // Name by decompose + do { + nNewNames = 0; + for (const [gSrcBase, gOtBase] of glyphsInBuildOrder) { + nNewNames += GlyphName.byDecompose( + gSrcBase, + gOtBase, + this.m_nameMapping, + conflictSet + ); + } + } while (nNewNames > 0); + // Name by Gr do { nNewNames = 0; for (const [gSrcBase, gOtBase] of glyphsInBuildOrder) { - nNewNames += byGr(gSrcBase, gOtBase, this.m_nameMapping, conflictSet); + nNewNames += GlyphName.byGr(gSrcBase, gOtBase, this.m_nameMapping, conflictSet); } } while (nNewNames > 0); + // Name rest for (const [gSrc, gOt] of glyphsInBuildOrder) { - gOt.name = byBuildOrder(gSrc.subRank, gSrc, gOt.name); + gOt.name = GlyphName.byBuildOrder(gSrc.subRank, gSrc, gOt.name); } + // validate { let gnSet = new Set(); diff --git a/font-src/glyphs/auto-build/transformed.ptl b/font-src/glyphs/auto-build/transformed.ptl index 0a7024da89..a7170f802a 100644 --- a/font-src/glyphs/auto-build/transformed.ptl +++ b/font-src/glyphs/auto-build/transformed.ptl @@ -115,6 +115,11 @@ glyph-block Autobuild-Transformed : begin list 0x2077 'seven.lnum' list 0x2078 'eight.lnum' list 0x2079 'nine.lnum' + list 0x207A 'plus' + list 0x207B 'minus' + list 0x207C 'equal' + list 0x207D 'parenLeft' + list 0x207E 'parenRight' list 0x02B0 'h' list 0x02B1 'hHookTop' list 0x02B2 'j' @@ -179,9 +184,9 @@ glyph-block Autobuild-Transformed : begin list 0x1DA6 'smcpI' list 0x1DA7 'smcpIBarOver' list 0x1DA8 'jCurlyTail' - list 0x1DAB 'smcpL' list 0x1DA9 'lRTail' list 0x1DAA 'lPalatalHook' + list 0x1DAB 'smcpL' list 0x1DAC 'meng' list 0x1DAD 'turnmLeg' list 0x1DAE 'nLTail' @@ -197,11 +202,11 @@ glyph-block Autobuild-Transformed : begin list 0x1DB8 'smcpU' list 0x1DB9 'vHookTop' list 0x1DBA 'turnv' + list 0x1DBB 'z' list 0x1DBC 'zRTailBR' list 0x1DBD 'zCurlyTail' list 0x1DBE 'ezh' list 0x1DBF 'grek/theta' - list 0x1DBB 'z' list 0x1D2C 'A' list 0x1D2E 'B' list 0x1D2F 'BBar' @@ -225,11 +230,7 @@ glyph-block Autobuild-Transformed : begin list 0x1D41 'U' list 0x1D42 'W' list 0x2C7D 'V' - list 0x207A 'plus' - list 0x207B 'minus' - list 0x207C 'equal' - list 0x207D 'parenLeft' - list 0x207E 'parenRight' + list 0x2E0B 'mathBox' list 0xA69C 'cyrl/yer' list 0xA69D 'cyrl/yeri' list 0xA702 'subst' @@ -249,52 +250,52 @@ glyph-block Autobuild-Transformed : begin list 0xAB5D 'lInvLazySOver' list 0xAB5E 'lTildeOver' list 0xAB69 'turnw' - list 0x107AF 'tRTail' + list 0x10780 'smcpAA' + list 0x10781 'triangleColon' + list 0x10782 'halfTriangleColon' + list 0x10783 'ae' + list 0x10784 'smcpB' + list 0x10785 'bHookTop' list 0x1078B 'dHookBottom' - list 0x107A5 'q' + list 0x1078C 'dHookTop' + list 0x1078D 'dHookTopBottom' + list 0x1078E 'eRev' + list 0x1078F 'epsilonRevClosed' + list 0x10791 'ramshorn' list 0x10792 'smcpG' - list 0x107B3 'glottalStopBar' + list 0x10793 'gScriptHookTop' + list 0x10794 'smcpGHookTop' list 0x10795 'hBar' - list 0x10797 'hengHookTop' - list 0x107B0 'vHookRight' - list 0x107A9 'rFlap' - list 0x107A8 'rRTail' - list 0x107BA 'sCurlyTail' - list 0x10784 'smcpB' - list 0x107AA 'smcpR' list 0x10796 'smcpH' - list 0x107B4 'revGlottalStopBar' + list 0x10797 'hengHookTop' + list 0x10798 'dotlessjBarHookTop' list 0x1079B 'lBelt' - list 0x1079E 'lyogh' + list 0x1079C 'smcpLBelt' list 0x1079D 'lBeltRTail' + list 0x1079E 'lyogh' list 0x1079F 'lyoghRTail' - list 0x107A1 'turnyBelt' - list 0x1079C 'smcpLBelt' list 0x107A0 'turny' + list 0x107A1 'turnyBelt' + list 0x107A2 'oSlash' + list 0x107A3 'smcpOE' + list 0x107A4 'closeomega' + list 0x107A5 'q' list 0x107A6 'turnrLongLeg' list 0x107A7 'rTurnLongLetRTail' - list 0x10780 'smcpAA' - list 0x10785 'bHookTop' - list 0x1078C 'dHookTop' - list 0x1078D 'dHookTopBottom' - list 0x10798 'dotlessjBarHookTop' - list 0x10793 'gScriptHookTop' - list 0x10794 'smcpGHookTop' + list 0x107A8 'rRTail' + list 0x107A9 'rFlap' + list 0x107AA 'smcpR' + list 0x107AF 'tRTail' + list 0x107B0 'vHookRight' + list 0x107B2 'smcpY' + list 0x107B3 'glottalStopBar' + list 0x107B4 'revGlottalStopBar' list 0x107B5 'bullEye' list 0x107B6 'dentalclick' + list 0x107B7 'alveolarlateralclick' list 0x107B8 'palatoalveolarclick' list 0x107B9 'retroflexClickHook' - list 0x107B7 'alveolarlateralclick' - list 0x107B2 'smcpY' - list 0x107A4 'closeomega' - list 0x107A2 'oSlash' - list 0x1078E 'eRev' - list 0x10791 'ramshorn' - list 0x1078F 'epsilonRevClosed' - list 0x10783 'ae' - list 0x107A3 'smcpOE' - list 0x10781 'triangleColon' - list 0x10782 'halfTriangleColon' + list 0x107BA 'sCurlyTail' list 0x1E030 'cyrl/a' list 0x1E031 'cyrl/be' list 0x1E032 'cyrl/ve' @@ -396,6 +397,11 @@ glyph-block Autobuild-Transformed : begin list 0x2087 'seven.lnum' list 0x2088 'eight.lnum' list 0x2089 'nine.lnum' + list 0x208A 'plus' + list 0x208B 'minus' + list 0x208C 'equal' + list 0x208D 'parenLeft' + list 0x208E 'parenRight' list 0x2090 'a' list 0x2091 'e' list 0x2092 'o' @@ -419,11 +425,6 @@ glyph-block Autobuild-Transformed : begin list 0x1D69 'grek/phi' list 0x1D6A 'grek/chi' list 0x2C7C 'j' - list 0x208A 'plus' - list 0x208B 'minus' - list 0x208C 'equal' - list 0x208D 'parenLeft' - list 0x208E 'parenRight' list 0xA700 'subst' list 0xA701 'substBarNoRise' list 0xA706 'supst' @@ -509,6 +510,7 @@ glyph-block Autobuild-Transformed : begin list 0x36C 'r' list 0x36E 'v' list 0x36F 'x' + list 0x1DD3 'flattenedOpena' list 0x1DD4 'ae' list 0x1DD5 'ao' list 0x1DDB 'smcpG' @@ -694,7 +696,7 @@ glyph-block Autobuild-Transformed : begin link-relations relSets glyph-block Autobuild-Transformed-Texture : begin - if (!(para.buildTexture && !para.isQuasiProportional)) : return nothing + if (!(para.buildTextureFeature && !para.isQuasiProportional)) : return nothing glyph-block-import CommonShapes glyph-block-import Common-Derivatives @@ -726,7 +728,8 @@ glyph-block Autobuild-Transformed-Texture : begin set-width Width if extL : currentGlyph.applyTransform [Translate (-extL * Width) 0] true - link-relations relSets + # Do NOT need this, as texture variants are applied AFTER cv/ss + # link-relations relSets define ranges : list list 0x41 0x5A diff --git a/font-src/glyphs/common/derivatives.ptl b/font-src/glyphs/common/derivatives.ptl index 37267af79b..ebc6510bfa 100644 --- a/font-src/glyphs/common/derivatives.ptl +++ b/font-src/glyphs/common/derivatives.ptl @@ -71,6 +71,7 @@ glyph-block Common-Derivatives : begin # Build principal local gndSource : Fn gnSources null null + local gSource : query-glyph gndSource linksGnMap.set [keyOfGnList gnSources] gndSource local mesh : getGrMesh gnSources Query query-glyph @@ -82,6 +83,9 @@ glyph-block Common-Derivatives : begin local gnDerivedTo : Fn to gr from linksGnMap.set key gnDerivedTo + local gDerivedTo : query-glyph gnDerivedTo + if (gSource && gDerivedTo) : gSource.dependsOn gDerivedTo + # Link related derivatives foreach { gr from to } [items-of mesh] : begin local gndFrom : linksGnMap.get [keyOfGnList from] diff --git a/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl b/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl index ccbc2a79a9..cfce393f40 100644 --- a/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl +++ b/font-src/glyphs/letter/cyrillic/dzzhe-zhwe.ptl @@ -9,24 +9,25 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin glyph-block-import Common-Derivatives glyph-block-import Letter-Greek-Lower-Epsilon : CyrZe - define [SubDfDim pShift keeps df _o] : begin + glyph-block-export SubDfDimBy4 + define [SubDfDimBy4 pShift keeps df _o] : begin local subDf : df.slice 4 keeps _o local subDfFullShift : (df.rightSB - subDf.rightSB) / (4 - keeps) local shift : pShift * subDfFullShift local sw : AdviceStroke 3.3 [df.slice 4 3 _o].div return : object subDf shift sw - do "d subglyph" + do "de subglyph" glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors glyph-block-import Letter-Cyrillic-De : CyrDeShape CyrDeItalicShapeT define [CyrDzzheDeShape df top] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX local left : if SLAB (subDf.leftSB + 0.5 * SideJut) subDf.leftSB include : CyrDeShape top left subDf.rightSB sw define [CyrDzzheDeItalicShape df] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX include : CyrDeItalicShapeT dispiro subDf sw create-glyph "cyrl/Dzzhe/left" : glyph-proc @@ -62,7 +63,7 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin bilateralInwardSerifed { SLAB-INWARD SLAB-INWARD } define [CyrZhweZeShape slabTop slabBot df top hook] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX local ze : CyrZe slabTop slabBot top 0 subDf.leftSB subDf.rightSB 0.65 hook sw include : ze.Shape include : ze.AutoStartSerifL @@ -84,23 +85,23 @@ glyph-block Letter-Cyrillic-Dzzhe-Zhwe : begin do "zhe subglyphs" glyph-block-import Letter-Cyrillic-Zhe : Zhe define [CyrRightZheShape legShape fSlab fMidSlab df top barLeft] : glyph-proc - local [object subDf shift sw] : SubDfDim 1 3 df OX + local [object subDf shift sw] : SubDfDimBy4 1 3 df OX include : with-transform [ApparentTranslate shift 0] : Zhe.HalfShape legShape fSlab fMidSlab subDf 0 top top include : HBar.m barLeft (shift + subDf.middle) (0.5 * top) sw define [DzzheLeft df] : begin - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX local swInner : sw * [AdviceStroke 2.75] / Stroke return : [mix subDf.leftSB subDf.rightSB : StrokeWidthBlend 0.95 0.96] - [HSwToV : 0.5 * swInner] define [ZhweZheShape legShape fSlab fMidSlab df top hook] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX local ze : CyrZe 0 0 top 0 subDf.leftSB subDf.rightSB 0.65 hook (0.5 * sw) include : difference [CyrRightZheShape legShape fSlab fMidSlab df top subDf.middle] [ze.ShapeMask] glyph-block-import Letter-Cyrillic-De : CyrDeItalicShapeT define [DzzheZheItalicShape legShape fSlab fMidSlab df top] : glyph-proc - local [object subDf sw] : SubDfDim 0 2 df OX + local [object subDf sw] : SubDfDimBy4 0 2 df OX include : difference CyrRightZheShape legShape fSlab fMidSlab df top subDf.middle CyrDeItalicShapeT spiro-outline subDf sw diff --git a/font-src/glyphs/letter/cyrillic/el.ptl b/font-src/glyphs/letter/cyrillic/el.ptl index 43828724d0..a37ed6d922 100644 --- a/font-src/glyphs/letter/cyrillic/el.ptl +++ b/font-src/glyphs/letter/cyrillic/el.ptl @@ -11,9 +11,9 @@ glyph-block Letter-Cyrillic-El : begin glyph-block-import Letter-Shared-Shapes : SerifFrame LegShape RightwardTailedBar glyph-block-import Letter-Shared-Shapes : CyrDescender CyrTailDescender PalatalHook MidHook UpwardHookShape - define BODY-STRAIGHT 0 - define BODY-TAILED 1 - define BODY-NONE 2 + define BODY-NONE 0 + define BODY-STRAIGHT 1 + define BODY-TAILED 2 define SLAB-NONE 0 define SLAB-ALL 1 diff --git a/font-src/glyphs/letter/cyrillic/iotified-a.ptl b/font-src/glyphs/letter/cyrillic/iotified-a.ptl index 7590a0c067..b49268f84b 100644 --- a/font-src/glyphs/letter/cyrillic/iotified-a.ptl +++ b/font-src/glyphs/letter/cyrillic/iotified-a.ptl @@ -126,13 +126,13 @@ glyph-block Letter-Cyrillic-Iotified-A : begin do "iotified a" glyph-block-import Letter-Latin-Lower-A : DoubleStorey DoubleStoreyConfig SingleStorey SingleStoreyConfig - foreach { suffix { body xTrailing } } [Object.entries DoubleStoreyConfig] : do + foreach { suffix { body xTrailing hookStyle } } [Object.entries DoubleStoreyConfig] : do create-glyph "cyrl/aIotified.\(suffix)" : glyph-proc define df : include : DivFrame para.diversityM 3 include : df.markSet.e local { subDf shift } : SubDfAndShift 1 df - include : with-transform [ApparentTranslate shift 0] [body subDf df.mvs] + include : with-transform [ApparentTranslate shift 0] [body subDf hookStyle df.mvs] include : difference Iotified.full df XH [mix df.leftSB df.rightSB (3 / 4)] (XH / 2) diff --git a/font-src/glyphs/letter/latin-ext/egyptological.ptl b/font-src/glyphs/letter/latin-ext/egyptological.ptl index 5f6b67070a..cee126aa27 100644 --- a/font-src/glyphs/letter/latin-ext/egyptological.ptl +++ b/font-src/glyphs/letter/latin-ext/egyptological.ptl @@ -66,7 +66,7 @@ glyph-block Letter-Latin-Egyptological : begin glyph-block-import Mark-Shared-Metrics : markMiddle glyph-block-import Mark-Above : aboveMarkTop aboveMarkBot aboveMarkMid aboveMarkStack - create-glyph 'EgyptologicalYodAbove' 0xE010 : glyph-proc + create-glyph 'EgyptologicalYodAbove' : glyph-proc set-width 0 set-mark-anchor 'above' markMiddle XH markMiddle aboveMarkStack set-base-anchor 'aboveBraceL' markMiddle aboveMarkMid diff --git a/font-src/glyphs/letter/latin-ext/flattened-open-a.ptl b/font-src/glyphs/letter/latin-ext/flattened-open-a.ptl new file mode 100644 index 0000000000..b2a38e06da --- /dev/null +++ b/font-src/glyphs/letter/latin-ext/flattened-open-a.ptl @@ -0,0 +1,27 @@ +$$include '../../../meta/macros.ptl' + +import [mix linreg clamp fallback] from"../../../support/utils.mjs" + + +glyph-module + +glyph-block Letter-Latin-Flattened-Open-A : begin + glyph-block-import CommonShapes + glyph-block-import Common-Derivatives + + create-glyph 'flattenedOpena' : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + + include : dispiro + g4.down.start df.leftSB (0.5 * XH) [widths.center.heading df.mvs Downward] + arcvh + g4.right.mid [mix df.middle df.leftSB 0.5] (0.5 * df.mvs) [heading Rightward] + archv + g4.up.end df.middle (0.5 * XH) [heading Upward] + include : dispiro + g4.down.start df.middle (0.5 * XH) [widths.center.heading df.mvs Downward] + arcvh + g4.right.mid [mix df.middle df.rightSB 0.5] (0.5 * df.mvs) [heading Rightward] + archv + g4.up.end df.rightSB (0.5 * XH) [heading Upward] diff --git a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl index 242f8611a7..471cab1cdc 100644 --- a/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/lower-ae-oe.ptl @@ -8,6 +8,7 @@ glyph-module glyph-block Letter-Latin-Lower-AE-OE : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared-Shapes : nShoulder OBarLeft glyph-block-export SubDfAndShift @@ -17,33 +18,45 @@ glyph-block Letter-Latin-Lower-AE-OE : begin local shift : pShift * subDfFullShift return { subDf shift } + glyph-block-export SubDfAndShiftEx + define [SubDfAndShiftEx p q pShift df _o] : begin + local subDf : df.slice p q _o + local subDfFullShift : df.rightSB - subDf.rightSB + local shift : pShift * subDfFullShift + return { subDf shift } + do "a subglyphs" - define [AAShape pShift df body o] : begin + define [AAShape body hookStyle pShift df o] : begin local { subDf shift } : SubDfAndShift pShift df o - return : with-transform [ApparentTranslate shift 0] [body subDf df.mvs] + return : with-transform [ApparentTranslate shift 0] [body subDf hookStyle df.mvs] glyph-block-import Letter-Latin-Lower-A : DoubleStorey define DoubleStoreyConfig : object - doubleStoreySerifless { DoubleStorey.Serifless } - doubleStoreySerifed { DoubleStorey.Serifed } - doubleStoreyTailed { DoubleStorey.Tailed } - doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner } - doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded } - - create-glyph "ae/a" : glyph-proc - local df : include : DivFrame para.diversityM 3 - include : df.markSet.e - set-base-anchor 'cvDecompose' 0 0 - include : AAShape 0 df DoubleStorey.ToothlessRounded 0 - - foreach { suffix { bodyR } } [Object.entries DoubleStoreyConfig] : do + doubleStoreySerifless { DoubleStorey.Serifless 1 } + doubleStoreySerifed { DoubleStorey.Serifed 1 } + doubleStoreyTailed { DoubleStorey.Tailed 1 } + doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner 1 } + doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded 1 } + doubleStoreyHookInwardSerifedSerifless { DoubleStorey.Serifless 2 } + doubleStoreyHookInwardSerifedSerifed { DoubleStorey.Serifed 2 } + doubleStoreyHookInwardSerifedTailed { DoubleStorey.Tailed 2 } + doubleStoreyHookInwardSerifedToothlessCorner { DoubleStorey.ToothlessCorner 2 } + doubleStoreyHookInwardSerifedToothlessRounded { DoubleStorey.ToothlessRounded 2 } + + foreach { suffix { bodyR hookStyle } } [Object.entries DoubleStoreyConfig] : do + + create-glyph "ae/a.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + set-base-anchor 'cvDecompose' 0 0 + include : AAShape DoubleStorey.ToothlessRounded hookStyle 0 df 0 create-glyph "aa.\(suffix)" : glyph-proc local df : include : DivFrame para.diversityM 3 include : df.markSet.e - local [left] : AAShape 0 df DoubleStorey.ToothlessRounded - local [right] : AAShape 1 df bodyR + local [left] : AAShape DoubleStorey.ToothlessRounded hookStyle 0 df + local [right] : AAShape bodyR hookStyle 1 df include : difference [right] : intersection MaskAbove (XH * OverlayPos * 1.02) union @@ -51,6 +64,7 @@ glyph-block Letter-Latin-Lower-AE-OE : begin with-transform [ApparentTranslate (-0.50 * df.mvs) 0] [left] with-transform [ApparentTranslate (-0.75 * df.mvs) 0] [left] with-transform [ApparentTranslate (-1.00 * df.mvs) 0] [left] + include : difference [left] : intersection MaskBelow (XH * OverlayPos * 1.02) union @@ -185,7 +199,100 @@ glyph-block Letter-Latin-Lower-AE-OE : begin set-base-anchor 'cvDecompose' 0 0 include : EsTeLeftShape df styBot + do "P/R subglyphs" + glyph-block-import Letter-Latin-Upper-P : PShape PBarPosY + glyph-block-import Letter-Latin-Upper-R : RevRShape RConfig RBarPos + + # ya + foreach { suffix { legShape fOpen fTailed {slabs revSlabs doLegSlab} } } [Object.entries RConfig] : begin + local fSlabBot : slabs && slabs !== PShape.SlabMotion + + if [not fTailed] : begin + create-glyph "cyrl/yae/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.e + set-base-anchor 'cvDecompose' 0 0 + + local { subDf } : SubDfAndShift 0 df + local bp : RBarPos XH fSlabBot + + include : RevRShape legShape XH (df -- subDf) (slab -- revSlabs) (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (sw -- df.mvs) + + eject-contour 'strokeR' + eject-contour 'serifRB' + eject-contour 'serifRT' + include : VBar.r subDf.rightSB [PBarPosY XH df.mvs bp] XH df.mvs + + # p + glyph-block-import Letter-Latin-Lower-P : PConfig + foreach { suffix { Body {Serifs doBS} }} [Object.entries PConfig] : do + create-glyph "cyrl/rha/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.p + local { subDf } : SubDfAndShift 0 df + set-base-anchor 'cvDecompose' 0 0 + + include : Body + left -- subDf.leftSB + right -- subDf.rightSB + OX + sw -- df.mvs + include : Serifs subDf XH df.mvs + include : LeaningAnchor.Below.VBar.l SB + + do "X subglyphs" + glyph-block-import Letter-Shared-Shapes : SerifFrame WithSerifOverflowMask + glyph-block-import Letter-Latin-X : XConfig XLetterForm XSerifs + + foreach { suffix {stroke1 stroke2 serifShape fMaskBase} } [Object.entries XConfig] : do + define [halfLetterShape df top bot turn tension] : glyph-proc + local lf : XLetterForm df top bot stroke1 stroke2 turn tension + include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.rightHalf fMaskBase + if serifShape : begin + local sf : SerifFrame.fromDf df top bot + include : match serifShape + [Just XSerifs.Full] : composite-proc sf.rt.full sf.rb.full + [Just XSerifs.BilateralMotion] : composite-proc sf.rb.outer + __ : glyph-proc + + define [LhaRightLetterShape df top bot turn tension] : glyph-proc + local stroke1f : if (stroke1 == 3) 4 stroke1 + local lf : XLetterForm df top bot stroke1f stroke2 turn tension + sw -- df.mvs + swCursiveEnd -- [AdviceStroke 3 df.div] + swCursiveCoEnd -- df.mvs + swCursiveMid -- df.mvs + include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.base fMaskBase + if serifShape : begin + local sf : SerifFrame.fromDf df top bot + include : match serifShape + [Just XSerifs.Full] : composite-proc sf.rt.full sf.lb.full sf.rb.full + [Just XSerifs.BilateralMotion] : composite-proc sf.rb.outer + __ : glyph-proc + + create-glyph "cyrl/rha/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 3 + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + include : halfLetterShape df XH 0 0.1 0.20 + + create-glyph "cyrl/lha/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 3.2 + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + + local { subDf shift } : SubDfAndShiftEx 6 4 1 df + include : with-transform [ApparentTranslate shift 0] : LhaRightLetterShape subDf XH 0 0.1 0.20 + + create-glyph "cyrl/Lha/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 3.2 + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + + local { subDf shift } : SubDfAndShiftEx 6 4 1 df + include : with-transform [ApparentTranslate shift 0] : LhaRightLetterShape subDf CAP 0 0.1 0.28 + do "other subglyphs" + # Te define [EsTeRightShape df doTopSerifs doBottomSerifs] : new-glyph : glyph-proc local subDf : df.sliceFine 3 2 (1/3) # local shift : df.rightSB - subDf.rightSB @@ -215,6 +322,22 @@ glyph-block Letter-Latin-Lower-AE-OE : begin set-mark-anchor 'cvDecompose' 0 0 include : EsTeRightShape df doST doSB + # El + glyph-block-import Letter-Cyrillic-El : CyrElShape + create-glyph 'cyrl/Lha/left' : glyph-proc + local df : include : DivFrame para.diversityM 3.2 + include : df.markSet.capital + local { subDf } : SubDfAndShiftEx 6 3 0 df + set-base-anchor 'cvDecompose' 0 0 + include : CyrElShape subDf.leftSB (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) CAP 0 [if SLAB 4 0] df.mvs + + create-glyph 'cyrl/lha/left' : glyph-proc + local df : include : DivFrame para.diversityM 3.2 + include : df.markSet.e + local { subDf } : SubDfAndShiftEx 6 3 0 df + set-base-anchor 'cvDecompose' 0 0 + include : CyrElShape subDf.leftSB (subDf.rightSB - [HSwToV : 0.5 * df.mvs]) XH 0 [if SLAB 4 0] df.mvs + do "subglyph diacritics" glyph-block-import Mark-Overlay : InnerDot @@ -251,10 +374,16 @@ glyph-block Letter-Latin-Lower-AE-OE : begin select-variant "aa" 0xA733 (follow -- 'a/turnABase') + select-variant "ae/a" select-variant "ae/e" (follow -- 'e') select-variant "aeInvE/right" (follow -- 'e') select-variant "ue/u" select-variant "oeOpenO/left" (follow -- 'c') + select-variant "cyrl/yae/left" + select-variant "cyrl/rha/left" (follow -- 'cyrl/er') + select-variant "cyrl/rha/right" + select-variant "cyrl/Lha/right" (follow -- 'cyrl/Rha/right') + select-variant "cyrl/lha/right" (follow -- 'cyrl/rha/right') derive-composites 'ae' 0xE6 'ae/a' 'ae/e' derive-composites 'oe' 0x153 'oe/o' 'ae/e' @@ -265,6 +394,9 @@ glyph-block Letter-Latin-Lower-AE-OE : begin derive-composites 'oeOpenO' 0xAB62 'oeOpenO/left' 'ae/e' derive-composites 'aeInvE' 0xAB31 'ae/a' 'aeInvE/right' derive-composites 'oeInv' 0xAB40 'oe/o' 'aeInvE/right' + derive-composites 'cyrl/lha' 0x515 'cyrl/lha/left' 'cyrl/lha/right' + derive-composites 'cyrl/Lha' 0x514 'cyrl/Lha/left' 'cyrl/Lha/right' + derive-composites 'cyrl/yae' 0x519 'cyrl/yae/left' 'ae/e' alias 'cyrl/ae' 0x4D5 'ae' alias 'cyrl/oo' 0xA699 'oo' @@ -287,3 +419,20 @@ glyph-block Letter-Latin-Lower-AE-OE : begin select-variant 'cyrl/este/left' (follow -- 'cBottomSerifOnly') select-variant 'cyrl/este/right' (follow -- 'T') derive-composites 'cyrl/este' null 'cyrl/este/left' 'cyrl/este/right' + + glyph-block-export BuildRha + define [BuildRha srcs] : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.p + + local {ra ha} srcs + include : union + refer-glyph ra + difference + refer-glyph ha + with-transform [ApparentTranslate (-0.25 * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate (-0.50 * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate (-0.75 * df.mvs) 0] [refer-glyph ra] + with-transform [ApparentTranslate (-1.00 * df.mvs) 0] [refer-glyph ra] + + derive-multi-part-glyphs 'cyrl/rha' 0x517 { 'cyrl/rha/left' 'cyrl/rha/right' } BuildRha diff --git a/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl b/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl index 19a28a275d..3662802591 100644 --- a/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl +++ b/font-src/glyphs/letter/latin-ext/upper-aa-ao.ptl @@ -1,99 +1,137 @@ $$include '../../../meta/macros.ptl' import [mix linreg clamp fallback] from"../../../support/utils.mjs" -import [bitOr] from"../../../support/util/mask-bit.mjs" +import [maskOffBits] from"../../../support/util/mask-bit.mjs" glyph-module glyph-block Letter-Latin-Upper-AA-AO : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Latin-Upper-F : EFVJutLength - glyph-block-import Letter-Latin-Upper-A : AMaskShape ALetterShape glyph-block-import Letter-Latin-Lower-AE-OE : SubDfAndShift - define [AHalfShape pShift df top fStraightBar slabKind] : begin - local { subDf shift } : SubDfAndShift pShift df - return : with-transform [ApparentTranslate shift 0] - ALetterShape subDf fStraightBar slabKind top df.mvs - - define [AHalfShapeMask pShift df top fStraightBar slabKind] : begin - local { subDf shift } : SubDfAndShift pShift df - return : with-transform [ApparentTranslate shift 0] - AMaskShape subDf fStraightBar top df.mvs - - define SLAB-NONE 0 - define SLAB-TOP 1 - define SLAB-LEFT 2 - define SLAB-RIGHT 4 - - define ALetters : object - AA { 0xA732 'capital' CAP } - smcpAA { null 'e' XH } - - define AConfig : object - straightSerifless { true SLAB-NONE SLAB-NONE } - curlySerifless { false SLAB-NONE SLAB-NONE } - straightTopSerifed { true SLAB-TOP SLAB-TOP } - curlyTopSerifed { false SLAB-TOP SLAB-TOP } - straightBaseSerifed { true SLAB-LEFT SLAB-RIGHT } - curlyBaseSerifed { false SLAB-LEFT SLAB-RIGHT } - straightTriSerifed { true [bitOr SLAB-TOP SLAB-LEFT] [bitOr SLAB-TOP SLAB-RIGHT] } - curlyTriSerifed { false [bitOr SLAB-TOP SLAB-LEFT] [bitOr SLAB-TOP SLAB-RIGHT] } - - foreach { prefix { code mk height } } [Object.entries ALetters] : do - foreach { suffix { fStraightBar skLeft skRight } } [Object.entries AConfig] : do - create-glyph "\(prefix)/Left.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 - include : df.markSet.(mk) - set-base-anchor 'cvDecompose' 0 0 - include : AHalfShape 0 df height fStraightBar skLeft - - create-glyph "\(prefix)/LeftMask.\(suffix)" : glyph-proc - define df : include : DivFrame para.diversityM 3.5 - include : df.markSet.(mk) - set-base-anchor 'cvDecompose' 0 0 - include : AHalfShapeMask 0 df height fStraightBar skLeft - - create-glyph "\(prefix)/Right.\(suffix)" : glyph-proc + do "A glyphs" + glyph-block-import Letter-Latin-Upper-A : AConfig AMaskShape ALetterShape + + define [AHalfShape pShift df top fStraightBar slabKind] : begin + local { subDf shift } : SubDfAndShift pShift df + return : with-transform [ApparentTranslate shift 0] + ALetterShape subDf fStraightBar slabKind top df.mvs + + define [AHalfShapeMask pShift df top fStraightBar slabKind] : begin + local { subDf shift } : SubDfAndShift pShift df + return : with-transform [ApparentTranslate shift 0] + AMaskShape subDf fStraightBar top df.mvs + + define SLAB-NONE 0 + define SLAB-TOP 1 + define SLAB-LEFT 2 + define SLAB-RIGHT 4 + + define ALetters : object + AA { 0xA732 'capital' CAP } + smcpAA { null 'e' XH } + + foreach { prefix { code mk height } } [Object.entries ALetters] : do + foreach { suffix { fStraightBar slabKind } } [Object.entries AConfig] : do + define skLeft : maskOffBits slabKind SLAB-RIGHT + define skRight : maskOffBits slabKind SLAB-LEFT + + create-glyph "\(prefix)/Left.\(suffix)" : glyph-proc + define df : include : DivFrame para.diversityM 3.5 + include : df.markSet.(mk) + set-base-anchor 'cvDecompose' 0 0 + include : AHalfShape 0 df height fStraightBar skLeft + + create-glyph "\(prefix)/LeftMask.\(suffix)" : glyph-proc + define df : include : DivFrame para.diversityM 3.5 + include : df.markSet.(mk) + set-base-anchor 'cvDecompose' 0 0 + include : AHalfShapeMask 0 df height fStraightBar skLeft + + create-glyph "\(prefix)/Right.\(suffix)" : glyph-proc + define df : DivFrame para.diversityM 3.5 + set-width 0 + include : df.markSet.(mk) + set-mark-anchor 'cvDecompose' 0 0 0 0 + include : AHalfShape 1 df height fStraightBar skRight + + create-glyph "\(prefix)/RightMask.\(suffix)" : glyph-proc + define df : DivFrame para.diversityM 3.5 + set-width 0 + include : df.markSet.(mk) + set-mark-anchor 'cvDecompose' 0 0 0 0 + include : AHalfShapeMask 1 df height fStraightBar skRight + + select-variant "\(prefix)/Left" (follow -- 'A') + select-variant "\(prefix)/LeftMask" (follow -- 'A') + select-variant "\(prefix)/Right" (follow -- 'A') + select-variant "\(prefix)/RightMask" (follow -- 'A') + + derive-multi-part-glyphs prefix code + list "\(prefix)/Left" "\(prefix)/LeftMask" "\(prefix)/Right" "\(prefix)/RightMask" + function [srcs gr] : glyph-proc + define df : DivFrame para.diversityM 3.5 + define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] + define { left leftMask right rightMask } srcs + + include [refer-glyph left] AS_BASE ALSO_METRICS + include : difference + refer-glyph right + refer-glyph leftMask + difference + intersection + MaskAbove (height - Stroke) + with-transform [ApparentTranslate topSerifGap 0] [refer-glyph leftMask] + with-transform [ApparentTranslate (OX - 0.1) 0] [refer-glyph rightMask] + + do "AO" + derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} + function [srcs gr] : glyph-proc define df : DivFrame para.diversityM 3.5 - set-width 0 - include : df.markSet.(mk) - set-mark-anchor 'cvDecompose' 0 0 0 0 - include : AHalfShape 1 df height fStraightBar skRight + define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] + define { left leftMask right } srcs + include [refer-glyph left] AS_BASE ALSO_METRICS + include : difference [refer-glyph right] [refer-glyph leftMask] - create-glyph "\(prefix)/RightMask.\(suffix)" : glyph-proc - define df : DivFrame para.diversityM 3.5 - set-width 0 - include : df.markSet.(mk) - set-mark-anchor 'cvDecompose' 0 0 0 0 - include : AHalfShapeMask 1 df height fStraightBar skRight + do "RHA" + glyph-block-import Letter-Shared-Shapes : SerifFrame WithSerifOverflowMask + glyph-block-import Letter-Latin-Upper-P : PShape PConfig + glyph-block-import Letter-Latin-X : XConfig XLetterForm XSerifs + glyph-block-import Letter-Latin-Lower-AE-OE : BuildRha - select-variant "\(prefix)/Left" (follow -- 'A') - select-variant "\(prefix)/LeftMask" (follow -- 'A') - select-variant "\(prefix)/Right" (follow -- 'A') - select-variant "\(prefix)/RightMask" (follow -- 'A') + foreach { suffix { fGap slabs revSlabs } } [Object.entries PConfig] : do + local fMotion : slabs === PShape.SlabMotion + local fSlabBot : slabs && slabs !== PShape.SlabMotion - derive-multi-part-glyphs prefix code - list "\(prefix)/Left" "\(prefix)/LeftMask" "\(prefix)/Right" "\(prefix)/RightMask" - function [srcs gr] : glyph-proc - define df : DivFrame para.diversityM 3.5 - define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] - define { left leftMask right rightMask } srcs + create-glyph "cyrl/Rha/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.capital + set-base-anchor 'cvDecompose' 0 0 + local subDf : df.sliceFine 3 2 0.575 - include [refer-glyph left] AS_BASE ALSO_METRICS include : difference - refer-glyph right - refer-glyph leftMask - difference - intersection - MaskAbove (height - Stroke) - with-transform [ApparentTranslate topSerifGap 0] [refer-glyph leftMask] - with-transform [ApparentTranslate (OX - 0.1) 0] [refer-glyph rightMask] - - derive-multi-part-glyphs 'AO' 0xA734 {"AA/Left" "AA/LeftMask" "OO/right"} : function [srcs gr] : glyph-proc - define df : DivFrame para.diversityM 3.5 - define topSerifGap : Math.max (0.1 * (df.rightSB - df.leftSB)) [AdviceStroke 6] - define { left leftMask right } srcs - include [refer-glyph left] AS_BASE ALSO_METRICS - include : difference [refer-glyph right] [refer-glyph leftMask] + PShape CAP (df -- subDf) (slab -- slabs) + if fGap [PShape.OpenGap (df -- subDf) (top -- CAP) (bot -- [if fSlabBot df.mvs 0])] [glyph-proc] + + foreach { suffix {stroke1 stroke2 serifShape fMaskBase} } [Object.entries XConfig] : do + define [letterShape df top bot turn tension] : glyph-proc + local lf : XLetterForm df top bot stroke1 stroke2 turn tension + include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.rightHalf fMaskBase + if serifShape : begin + local sf : SerifFrame.fromDf df top bot + include : match serifShape + [Just XSerifs.Full] : composite-proc sf.rt.full sf.rb.full + [Just XSerifs.BilateralMotion] : composite-proc sf.rb.outer + __ : glyph-proc + + create-glyph "cyrl/Rha/right.\(suffix)" : glyph-proc + local df : DivFrame para.diversityM 3 + set-width 0 + set-mark-anchor 'cvDecompose' 0 0 + include : letterShape df CAP 0 0.1 0.28 + + select-variant "cyrl/Rha/left" (follow -- 'P') + select-variant "cyrl/Rha/right" + + derive-multi-part-glyphs "cyrl/Rha" 0x516 {'cyrl/Rha/left' 'cyrl/Rha/right'} BuildRha diff --git a/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl b/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl index 92617a6572..6d97f185fd 100644 --- a/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl +++ b/font-src/glyphs/letter/latin-ext/upper-ae-oe.ptl @@ -7,6 +7,7 @@ glyph-module glyph-block Letter-Latin-Upper-AE-OE : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Latin-Upper-F : EFVJutLength define SLAB-A-NONE 0 @@ -39,7 +40,7 @@ glyph-block Letter-Latin-Upper-AE-OE : begin corner df.leftSB 0 [heading Upward] curl df.leftSB (top * 0.1) [heading Upward] quadControls 0 0.3 6 unimportant - corner (eleft - HalfStroke) top [widths.rhs fine] + corner (eleft - HalfStroke) top [widths.rhs fine] corner eleft top corner eleft 0 HBar.t 0 eleft (XH / 2) sw @@ -107,6 +108,27 @@ glyph-block Letter-Latin-Upper-AE-OE : begin include : VSerif.dr df.rightSB top jutTop swVJut include : VSerif.ur df.rightSB 0 jutBot swVJut + do "P/Ya Half" + glyph-block-import Letter-Latin-Upper-P : PShape PBarPosY + glyph-block-import Letter-Latin-Upper-R : RevRShape RConfig RBarPos + + foreach { suffix { legShape fOpen fTailed {slabs revSlabs doLegSlab} } } [Object.entries RConfig] : begin + local fSlabBot : slabs && slabs !== PShape.SlabMotion + + if [not fTailed] : begin + create-glyph "cyrl/Yae/left.\(suffix)" : glyph-proc + local df : include : DivFrame para.diversityM 3 + include : df.markSet.capital + local sw : AESW df CAP + local bp : RBarPos CAP fSlabBot + local subDf : df.sliceFine 3 2 0.5 [HSwToV : 0.25 * sw] + set-base-anchor 'cvDecompose' 0 0 + + include : RevRShape legShape CAP (df -- subDf) (slab -- revSlabs) (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (sw -- sw) + + eject-contour 'strokeR' + eject-contour 'serifRT' + define AConfig : object straightSerifless { true SLAB-A-NONE } curlySerifless { false SLAB-A-NONE } @@ -149,9 +171,11 @@ glyph-block Letter-Latin-Upper-AE-OE : begin select-variant 'AE/EHalf' (follow -- 'AE/EHalf') select-variant 'smcpAE/AHalf' (follow -- 'A') select-variant 'smcpAE/EHalf' (follow -- 'AE/EHalf') + select-variant 'cyrl/Yae/left' derive-composites "AE" 0xC6 'AE/AHalf' 'AE/EHalf' derive-composites "smcpAE" 0x1D01 'smcpAE/AHalf' 'smcpAE/EHalf' + derive-composites "cyrl/Yae" 0x518 'cyrl/Yae/left' 'AE/EHalf' alias 'cyrl/AE' 0x4D4 'AE' define [OEShape top df slabKind] : glyph-proc diff --git a/font-src/glyphs/letter/latin.ptl b/font-src/glyphs/letter/latin.ptl index 3df10461e2..112e6b91c5 100644 --- a/font-src/glyphs/letter/latin.ptl +++ b/font-src/glyphs/letter/latin.ptl @@ -51,6 +51,7 @@ export : define [apply] : begin run-glyph-module "./latin-ext/eszet.mjs" run-glyph-module "./latin-ext/eth.mjs" run-glyph-module "./latin-ext/ezh.mjs" + run-glyph-module "./latin-ext/flattened-open-a.mjs" run-glyph-module "./latin-ext/gha.mjs" # run-glyph-module "./latin-ext/f-ligatures.mjs" run-glyph-module "./latin-ext/glottal-stop.mjs" diff --git a/font-src/glyphs/letter/latin/c.ptl b/font-src/glyphs/letter/latin/c.ptl index 3359764b1c..fe361033f7 100644 --- a/font-src/glyphs/letter/latin/c.ptl +++ b/font-src/glyphs/letter/latin/c.ptl @@ -290,13 +290,6 @@ glyph-block Letter-Latin-C : begin include : VBar.r RightSB Descender [ArcStartSerifDepth Hook] [ArcStartSerifWidth Stroke] if styBot : let [sf : SerifFrame.fromDf [DivFrame 1] CAP Descender] : include sf.rb.full - create-glyph "currency/somSign.\(suffix)" : glyph-proc - include : MarkSet.capital - local height : mix XH CAP (2 / 3) - local lf : CLetterForm [DivFrame 1] sty styBot height (height - XH) - include : lf.full - include : HBar.b SB RightSB 0 markStroke - select-variant 'C' 'C' link-reduced-variant 'C/sansSerif' 'C' MathSansSerif select-variant 'revC' 0x2183 (follow -- 'C') @@ -346,8 +339,6 @@ glyph-block Letter-Latin-C : begin CShapeT spiro-outline 0.1 [DivFrame 1] SLAB-NONE SLAB-NONE XH 0 SmallArchDepthA SmallArchDepthB Hook BBS VBar.l (SB + BBD + OX) 0 CAP BBS - select-variant 'currency/somSign' 0x20C0 (follow -- 'c') - create-glyph 'currency/euroSign/overlay' : union LetterBarOverlay.l SB (CAP * 0.4) LetterBarOverlay.l SB (CAP * 0.6) diff --git a/font-src/glyphs/letter/latin/k.ptl b/font-src/glyphs/letter/latin/k.ptl index ab58b08a56..a8fc718a67 100644 --- a/font-src/glyphs/letter/latin/k.ptl +++ b/font-src/glyphs/letter/latin/k.ptl @@ -13,7 +13,7 @@ glyph-block Letter-Latin-K : begin glyph-block-import Mark-Above : aboveMarkMid glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors LeaningAnchor - glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius DiagonalTailF CyrDescender + glyph-block-import Letter-Shared-Shapes : DiagTail CyrDescender glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook TopHook local [KBalance slabLT straightBar] : if straightBar (Width / 32) 0 @@ -315,14 +315,14 @@ glyph-block Letter-Latin-K : begin define xDTStart : dim.arcTerminalX + [HSwToV swDiagTail] + xDTGap define xDTEnd : dim.kshRight - 0.8 * Hook - [HSwToV : 0.25 * swDiagTail] + xDTGap * 0.625 define tailAngle : Math.min 85 (50 + [Math.atan2 (0.75 * swDiagTail) Hook] / Math.PI * 180) - define dtInnerRadius : [clamp 0.125 1 : mix 1 (Width / UPM * 2) 3] * [DiagonalTailInnerRadius] + define dtInnerRadius : [clamp 0.125 1 : mix 1 (Width / UPM * 2) 3] * [DiagTail.DefaultInnerRadius] set-base-anchor 'legOverlay' [mix xDTStart xDTEnd : StrokeWidthBlend 0.65 0.75] [mix dim.arcTerminalY 0 : StrokeWidthBlend 0.6 0.65] include : difference dispiro flat xDTStart dim.arcTerminalY [widths.center swDiagTailAdj] curl (xDTEnd + 0.125 * dtInnerRadius) (0.9 * swDiagTail + 0.5 * dtInnerRadius) - DiagonalTailF 1 [DivFrame 1] xDTEnd 0 dtInnerRadius tailAngle (Hook + swDiagTail / 4) swDiagTail + DiagTail.F 1 xDTEnd 0 dtInnerRadius tailAngle (Hook + swDiagTail / 4) swDiagTail CursiveLoopT spiro-outline (-O) left right stroke top slabLT slabLegs define [KHookTopBar slabLegs straightBar] : TopHook.lBarInner diff --git a/font-src/glyphs/letter/latin/lower-a.ptl b/font-src/glyphs/letter/latin/lower-a.ptl index ec4956763d..8fc1d10373 100644 --- a/font-src/glyphs/letter/latin/lower-a.ptl +++ b/font-src/glyphs/letter/latin/lower-a.ptl @@ -10,7 +10,7 @@ glyph-block Letter-Latin-Lower-A : begin glyph-block-import Common-Derivatives glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Letter-Shared : CreateAccentedComposition CreateOgonekComposition - glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight + glyph-block-import Letter-Shared-Shapes : SerifFrame OBarLeft OBarRight ArcStartSerif glyph-block-import Letter-Shared-Shapes : RightwardTailedBar InvRightwardTailedBar glyph-block-import Letter-Shared-Shapes : DToothlessRise DMBlend RetroflexHook @@ -24,20 +24,30 @@ glyph-block Letter-Latin-Lower-A : begin local sw : ADoubleStoreyStroke df return : df.archDepthB (ArchDepth * [StrokeWidthBlend 0.9 0.81 sw]) sw - define [ADoubleStoreyHookAndBarT df sink y0 stroke] : begin + define [ADoubleStoreyHookAndBarT sink df hookStyle y0 stroke] : begin local isMask : sink == spiro-outline return : sink widths.rhs stroke - g4 df.leftSB (XH - AHook) - hookstart (XH - O) (sw -- stroke) + match hookStyle + 1 : list + g4 df.leftSB (XH - AHook) + hookstart (XH - O) (sw -- stroke) + 2 : list + g4 df.leftSB (XH - DToothlessRise) + g4 (df.middle - CorrectionOMidX * stroke) (XH - O) flat df.rightSB (XH - [ADoubleStoreySmoothB df]) [if isMask corner curl] df.rightSB y0 [heading Downward] if [not isMask] {} {[corner df.leftSB y0]} - export : define [HookAndBar df y0 _stroke] : ADoubleStoreyHookAndBarT df dispiro y0 - fallback _stroke [ADoubleStoreyStroke df] - export : define [HookAndBarMask df y0 _stroke] : ADoubleStoreyHookAndBarT df spiro-outline y0 - fallback _stroke [ADoubleStoreyStroke df] + export : define [HookAndBar df hookStyle y0 _stroke] : glyph-proc + if ((hookStyle != 1) && (hookStyle != 2)) : throw : new Error "Invalid hookStyle" + local sw : fallback _stroke [ADoubleStoreyStroke df] + include : ADoubleStoreyHookAndBarT dispiro df hookStyle y0 sw + if (hookStyle == 2) : include : ArcStartSerif.L df.leftSB (XH - DToothlessRise) sw AHook + + export : define [HookAndBarMask df hookStyle y0 _stroke] : begin + local sw : fallback _stroke [ADoubleStoreyStroke df] + return : ADoubleStoreyHookAndBarT spiro-outline df hookStyle y0 sw define [ADoubleStoreyArcT df sink kind rise stroke] : glyph-proc local isMask : sink == spiro-outline @@ -76,21 +86,21 @@ glyph-block Letter-Latin-Lower-A : begin export : define [ArcMask df kind rise _sw] : ADoubleStoreyArcT df spiro-outline kind rise fallback _sw [ADoubleStoreyStroke df] - export : define [Serifless df sw] : union - HookAndBar df 0 sw + export : define [Serifless df hookStyle sw] : union + HookAndBar df hookStyle 0 sw Arc df 0 nothing nothing sw - export : define [Serifed df sw] : union - Serifless df sw + export : define [Serifed df hookStyle sw] : union + Serifless df hookStyle sw begin [SerifFrame.fromDf df XH 0].rb.outer - export : define [Tailed df sw] : union - HookAndBar df (XH - [ADoubleStoreySmoothB df] + O) sw + export : define [Tailed df hookStyle sw] : union + HookAndBar df hookStyle (XH - [ADoubleStoreySmoothB df] + O) sw Arc df 0 nothing nothing sw RightwardTailedBar df.rightSB 0 (XH - [ADoubleStoreySmoothB df]) (sw -- [fallback sw : ADoubleStoreyStroke df]) - export : define [ToothlessCorner df sw] : union - HookAndBar df DToothlessRise sw + export : define [ToothlessCorner df hookStyle sw] : union + HookAndBar df hookStyle DToothlessRise sw Arc df 1 DToothlessRise sw - export : define [ToothlessRounded df sw] : union - HookAndBar df [ADoubleStoreySmoothA df] sw + export : define [ToothlessRounded df hookStyle sw] : union + HookAndBar df hookStyle [ADoubleStoreySmoothA df] sw Arc df 2 [ADoubleStoreySmoothA df] sw export : define [GetMask shapeFn df sw] : match shapeFn @@ -99,27 +109,32 @@ glyph-block Letter-Latin-Lower-A : begin __ : ArcMask df 0 nothing nothing sw define DoubleStoreyConfig : object - doubleStoreySerifless { DoubleStorey.Serifless (RightSB ) } - doubleStoreySerifed { DoubleStorey.Serifed (RightSB + SideJut) } - doubleStoreyTailed { DoubleStorey.Tailed (RightSB + SideJut) } - doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner nothing } - doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded nothing } - - foreach { suffix { body xTrailing } } [Object.entries DoubleStoreyConfig] : do + doubleStoreySerifless { DoubleStorey.Serifless (RightSB ) 1 } + doubleStoreySerifed { DoubleStorey.Serifed (RightSB + SideJut) 1 } + doubleStoreyTailed { DoubleStorey.Tailed (RightSB + SideJut) 1 } + doubleStoreyToothlessCorner { DoubleStorey.ToothlessCorner nothing 1 } + doubleStoreyToothlessRounded { DoubleStorey.ToothlessRounded nothing 1 } + doubleStoreyHookInwardSerifedSerifless { DoubleStorey.Serifless (RightSB ) 2 } + doubleStoreyHookInwardSerifedSerifed { DoubleStorey.Serifed (RightSB + SideJut) 2 } + doubleStoreyHookInwardSerifedTailed { DoubleStorey.Tailed (RightSB + SideJut) 2 } + doubleStoreyHookInwardSerifedToothlessCorner { DoubleStorey.ToothlessCorner nothing 2 } + doubleStoreyHookInwardSerifedToothlessRounded { DoubleStorey.ToothlessRounded nothing 2 } + + foreach { suffix { body xTrailing hookStyle } } [Object.entries DoubleStoreyConfig] : do create-glyph "a.\(suffix)" : glyph-proc local df : include : DivFrame 1 include : df.markSet.e if xTrailing : set-base-anchor 'trailing' xTrailing 0 - include : body df + include : body df hookStyle glyph-block-import Letter-Blackboard : BBS BBD create-glyph 'mathbb/a' 0x1D552 : glyph-proc local df : include : DivFrame 1 include : df.markSet.e - include : DoubleStorey.HookAndBar df 0 BBS + include : DoubleStorey.HookAndBar df 1 0 BBS include : intersection - DoubleStorey.HookAndBarMask df 0 + DoubleStorey.HookAndBarMask df 1 0 VBar.r (RightSB - BBD) 0 XH BBS include : difference union diff --git a/font-src/glyphs/letter/latin/lower-b.ptl b/font-src/glyphs/letter/latin/lower-b.ptl index 24e2f2717b..f12020dc87 100644 --- a/font-src/glyphs/letter/latin/lower-b.ptl +++ b/font-src/glyphs/letter/latin/lower-b.ptl @@ -48,7 +48,7 @@ glyph-block Letter-Latin-Lower-B : begin set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay set-base-anchor 'overlay' Middle (XH / 2) - create-glyph "bBar.\(suffix)" : glyph-proc + create-glyph "bStroke.\(suffix)" : glyph-proc include [refer-glyph "b.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in SB XH (Ascender - [if doTS Stroke 0]) @@ -72,7 +72,7 @@ glyph-block Letter-Latin-Lower-B : begin eject-contour 'serifLT' select-variant 'b' 'b' - select-variant 'bBar' 0x180 (follow -- 'b') + select-variant 'bStroke' 0x180 (follow -- 'b') select-variant 'bSlash' 0x2422 (follow -- 'b') select-variant 'latn/be' 0x183 (follow -- 'b') diff --git a/font-src/glyphs/letter/latin/lower-d.ptl b/font-src/glyphs/letter/latin/lower-d.ptl index 47fabb013c..b661c4905e 100644 --- a/font-src/glyphs/letter/latin/lower-d.ptl +++ b/font-src/glyphs/letter/latin/lower-d.ptl @@ -54,10 +54,6 @@ glyph-block Letter-Latin-Lower-D : begin ada -- [df.archDepthA SmallArchDepth df.mvs] adb -- [df.archDepthB SmallArchDepth df.mvs] - define [ToothlessRoundedHBBBody df yTop] : union - ToothlessRoundedBody df yTop - tagged 'rightBar' : VBar.r df.rightSB 0 yTop - define [TailedBody df yTop] : union OBarRight.shape left -- df.leftSB @@ -79,7 +75,6 @@ glyph-block Letter-Latin-Lower-D : begin toothlessCorner ToothlessCornerBody toothlessCornerHBB ToothlessCornerHBBBody toothlessRounded ToothlessRoundedBody - toothlessRoundedHBB ToothlessRoundedHBBBody tailed TailedBody function [body] : object # serifs @@ -102,7 +97,7 @@ glyph-block Letter-Latin-Lower-D : begin include : LeaningAnchor.Above.VBar.r df.rightSB set-base-anchor 'overlayOnExtension' (df.rightSB - [HSwToV : 0.5 * Stroke]) yOverlay - create-glyph "dcroat.\(suffix)" : glyph-proc + create-glyph "dStroke.\(suffix)" : glyph-proc local df : DivFrame 1 include [refer-glyph "d.\(suffix)"] AS_BASE ALSO_METRICS include : LetterBarOverlay.r.in df.rightSB XH (Ascender - [if topSerif Stroke 0]) @@ -145,7 +140,7 @@ glyph-block Letter-Latin-Lower-D : begin select-variant 'd' 'd' select-variant 'dCaronBase' (follow -- 'd') - select-variant 'dcroat' 0x111 (follow -- 'd') + select-variant 'dStroke' 0x111 (follow -- 'd') select-variant 'latn/de' 0x18C (follow -- 'd') alias 'cyrl/deKomi' 0x501 'd' link-reduced-variant 'd/sansSerif' 'd' MathSansSerif diff --git a/font-src/glyphs/letter/latin/lower-f.ptl b/font-src/glyphs/letter/latin/lower-f.ptl index af9720b9f9..8cdaf17da8 100644 --- a/font-src/glyphs/letter/latin/lower-f.ptl +++ b/font-src/glyphs/letter/latin/lower-f.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-Lower-F : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Mark-Adjustment : LeaningAnchor - glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailL DiagonalTailStdDepth + glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagTail glyph-block-import Letter-Shared-Shapes : LetterBarOverlay PalatalHook define [SetPalatalHookPos barLeft] : glyph-proc @@ -52,7 +52,7 @@ glyph-block Letter-Latin-Lower-F : begin local xBarMiddle : barLeft + [HSwToV HalfStroke] return : dispiro flat xBarMiddle 0.1 [widths.center.heading Stroke Downward] - DiagonalTailL df xBarMiddle Descender [DiagonalTailStdDepth df Stroke] Stroke + DiagTail.L xBarMiddle Descender [DiagTail.StdDepth df Stroke] Stroke glyph-block-export StdSmallFBarLeftPos define [StdSmallFBarLeftPos barAtCenter] : [mix SB RightSB : if barAtCenter 0.45 0.35] - Stroke * [if barAtCenter 0.45 0.25] * HVContrast diff --git a/font-src/glyphs/letter/latin/lower-g.ptl b/font-src/glyphs/letter/latin/lower-g.ptl index a6293140fc..be1809e7ec 100644 --- a/font-src/glyphs/letter/latin/lower-g.ptl +++ b/font-src/glyphs/letter/latin/lower-g.ptl @@ -164,7 +164,6 @@ glyph-block Letter-Latin-Lower-G : begin earlessCorner { SingleStorey.EarlessCornerBody DToothlessRise } earlessCornerHTB { SingleStorey.EarlessCornerBody 0 } earlessRounded { SingleStorey.EarlessRoundedBody (XH - SmallArchDepthA) } - earlessRoundedHTB { SingleStorey.EarlessRoundedBody 0 } scriptCut { SingleStorey.ScriptCutBody (Stroke / 2) } foreach { suffix { hookShape {bodyShape hookStart} } } [Object.entries SingleStoreyConfig] : do diff --git a/font-src/glyphs/letter/latin/lower-il.ptl b/font-src/glyphs/letter/latin/lower-il.ptl index 7300e42a5b..fc68d0b311 100644 --- a/font-src/glyphs/letter/latin/lower-il.ptl +++ b/font-src/glyphs/letter/latin/lower-il.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-I : begin glyph-block-import Mark-Adjustment : ExtendBelowBaseAnchors glyph-block-import Letter-Shared : CreateAccentedComposition CreateMultiAccentedComposition glyph-block-import Letter-Shared : CreateCommaCaronComposition CreateOgonekComposition - glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagonalTailR DiagonalTailStdDepth + glyph-block-import Letter-Shared-Shapes : FlatHookDepth DiagTail glyph-block-import Letter-Shared-Shapes : CurlyTail BeltOverlay PalatalHook glyph-block-import Letter-Shared-Shapes : RetroflexHook LetterBarOverlay RightwardTailedBar @@ -133,7 +133,7 @@ glyph-block Letter-Latin-Lower-I : begin include : dispiro widths.center df.mvs flat xMiddle top [heading Downward] - DiagonalTailR df xMiddle 0 [DiagonalTailStdDepth df df.mvs] df.mvs + DiagTail.R xMiddle 0 [DiagTail.StdDepth df df.mvs] df.mvs export : define [PhoneticLeft df top xMiddle] : glyph-proc include : dispiro diff --git a/font-src/glyphs/letter/latin/lower-j.ptl b/font-src/glyphs/letter/latin/lower-j.ptl index 036b6af0d2..ea93ef12f7 100644 --- a/font-src/glyphs/letter/latin/lower-j.ptl +++ b/font-src/glyphs/letter/latin/lower-j.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-J : begin glyph-block-import Mark-Adjustment : ExtendAboveBaseAnchors glyph-block-import Letter-Shared : CreateAccentedComposition glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth LetterBarOverlay - glyph-block-import Letter-Shared-Shapes : DiagonalTailL DiagonalTailStdDepth TopHook + glyph-block-import Letter-Shared-Shapes : DiagTail TopHook glyph-block-import Letter-Blackboard : BBS BBD glyph-block-export FlatHookDotlessJShape @@ -71,7 +71,7 @@ glyph-block Letter-Latin-Lower-J : begin include : dispiro widths.center flat xMiddle top [heading Downward] - DiagonalTailL df xMiddle Descender [DiagonalTailStdDepth dfHook Stroke] Stroke + DiagTail.L xMiddle Descender [DiagTail.StdDepth dfHook Stroke] Stroke set-base-anchor "trailing" (xMiddle - [HSwToV HalfStroke]) Descender define Serifs : namespace diff --git a/font-src/glyphs/letter/latin/lower-p.ptl b/font-src/glyphs/letter/latin/lower-p.ptl index 79c78f9144..2fc5506de3 100644 --- a/font-src/glyphs/letter/latin/lower-p.ptl +++ b/font-src/glyphs/letter/latin/lower-p.ptl @@ -14,24 +14,41 @@ glyph-block Letter-Latin-Lower-P : begin glyph-block-import Letter-Shared-Shapes : TopHook PalatalHook SerifFrame - define [EaredBody top] : glyph-proc + define [SmallThornEaredBody] : glyph-proc include : tagged 'bowl' : OBarLeft.shape - include : tagged 'stemLeft' : VBar.l SB Descender top + include : tagged 'stemLeft' : VBar.l SB Descender Ascender - define [EarlessCornerBody] : glyph-proc + define [EaredBody] : with-params [[left SB] [right RightSB] [sw Stroke]] : glyph-proc + include : tagged 'bowl' : OBarLeft.shape + left -- left + right -- right + sw -- sw + fine -- (ShoulderFine * sw / Stroke) + include : tagged 'stemLeft' : VBar.l left Descender XH sw + + define [EarlessCornerBody] : with-params [[left SB] [right RightSB] [sw Stroke]] : glyph-proc include : tagged 'bowl' : OBarLeft.toothlessTop (rise -- DToothlessRise) (mBlend -- DMBlend) - include : tagged 'stemLeft' : VBar.l SB Descender (XH - DToothlessRise) + left -- left + right -- right + sw -- sw + fine -- (ShoulderFine * sw / Stroke) + include : tagged 'stemLeft' : VBar.l left Descender (XH - DToothlessRise) sw - define [EarlessRoundedBody] : glyph-proc + define [EarlessRoundedBody] : with-params [[left SB] [right RightSB] [sw Stroke]] : glyph-proc include : tagged 'bowl' : OBarLeft.roundedTop (yTerminal -- Descender) + left -- left + right -- right + sw -- sw + fine -- (ShoulderFine * sw / Stroke) - define [SmallPSerifLT top] : return [SerifFrame.fromDf [DivFrame 1] top Descender].lt.outer - define [SmallPSerifLB top] : return [SerifFrame.fromDf [DivFrame 1] top Descender].lb.fullSide + define [SmallPSerifLT df top _sw] : return [SerifFrame.fromDf df top Descender (swRef -- _sw)].lt.outer + define [SmallPSerifLB df top _sw] : return [SerifFrame.fromDf df top Descender (swRef -- _sw)].lb.fullSide - define [FullSerifs top] : composite-proc [SmallPSerifLT top] [SmallPSerifLB top] - define [MotionSerif top] : SmallPSerifLT top - define [BottomSerif top] : SmallPSerifLB top + define [FullSerifs df top _sw] : composite-proc [SmallPSerifLT df top _sw] [SmallPSerifLB df top _sw] + define [MotionSerif df top _sw] : SmallPSerifLT df top _sw + define [BottomSerif df top _sw] : SmallPSerifLB df top _sw + glyph-block-export : PConfig define PConfig : SuffixCfg.weave object # body eared EaredBody @@ -45,18 +62,20 @@ glyph-block Letter-Latin-Lower-P : begin foreach { suffix { Body {Serifs doBS} }} [Object.entries PConfig] : do local yOverlay : mix 0 (Descender + [if doBS Stroke 0]) 0.5 + local df : DivFrame 1 + create-glyph "p.\(suffix)" : glyph-proc include : MarkSet.p - include : Body XH - include : Serifs XH + include : Body + include : Serifs df XH include : LeaningAnchor.Below.VBar.l SB set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay set-base-anchor 'strike' Middle (XH / 2) create-glyph "thorn.\(suffix)" : glyph-proc include : MarkSet.bp - include : Body Ascender - include : Serifs Ascender + include : SmallThornEaredBody + include : Serifs df Ascender include : LeaningAnchor.Above.VBar.l SB include : LeaningAnchor.Below.VBar.l SB set-base-anchor 'overlayOnExtension' (SB + [HSwToV : 0.5 * Stroke]) yOverlay @@ -87,7 +106,7 @@ glyph-block Letter-Latin-Lower-P : begin CreateAccentedComposition 'pTildeOver' 0x1D71 'p' 'tildeOverOnExension' - derive-glyphs 'cyrl/rrTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc + derive-glyphs 'cyrl/erTick' 0x48F 'cyrl/er' : lambda [src gr] : glyph-proc include [refer-glyph src] AS_BASE ALSO_METRICS include : dispiro widths.center [AdviceStroke 4] diff --git a/font-src/glyphs/letter/latin/lower-q.ptl b/font-src/glyphs/letter/latin/lower-q.ptl index c813bbfbf9..2c6b912165 100644 --- a/font-src/glyphs/letter/latin/lower-q.ptl +++ b/font-src/glyphs/letter/latin/lower-q.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-Q : begin glyph-block-import Mark-Shared-Metrics : markHalfStroke glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared-Shapes : OBarLeft OBarRight RightwardTailedBar DToothlessRise - glyph-block-import Letter-Shared-Shapes : DMBlend DiagonalTailR DiagonalTailStdDepth + glyph-block-import Letter-Shared-Shapes : DMBlend DiagTail glyph-block-import Letter-Shared-Shapes : TopHook RetroflexHook define TERMINAL-NORMAL 0 @@ -22,7 +22,7 @@ glyph-block Letter-Latin-Lower-Q : begin local xMid : x0 - [HSwToV HalfStroke] return : dispiro flat xMid yt [widths.center.heading Stroke Downward] - DiagonalTailR df xMid yb (0.875 * Hook - Stroke * 0.375) Stroke + DiagTail.R xMid yb (0.875 * Hook - Stroke * 0.375) Stroke define [EaredBody terminal top bottom] : glyph-proc set-base-anchor 'trailing' (RightSB - markHalfStroke) Descender diff --git a/font-src/glyphs/letter/latin/lower-t.ptl b/font-src/glyphs/letter/latin/lower-t.ptl index e22043f0dc..b330be8cdf 100644 --- a/font-src/glyphs/letter/latin/lower-t.ptl +++ b/font-src/glyphs/letter/latin/lower-t.ptl @@ -11,7 +11,7 @@ glyph-block Letter-Latin-Lower-T : begin glyph-block-import Mark-Adjustment : LeaningAnchor glyph-block-import Letter-Shared : CreateCommaCaronComposition glyph-block-import Letter-Shared-Shapes : CurlyTail FlatHookDepth ConnectedCedilla SerifedArcEnd - glyph-block-import Letter-Shared-Shapes : DiagonalTailR DiagonalTailStdDepth DToothlessRise + glyph-block-import Letter-Shared-Shapes : DiagTail DToothlessRise glyph-block-import Letter-Shared-Shapes : TopHook PalatalHook glyph-block-import Letter-Latin-S : SAutoSlabEnd AdviceSArchDepth glyph-block-import Letter-Blackboard : BBS BBD @@ -36,8 +36,8 @@ glyph-block Letter-Latin-Lower-T : begin ([Just SYM-PR-LEFT] || [Just SYM-PR-BALANCED]) : df.middle - [HSwToV HalfStroke] define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {[BarLeftPos df sym] ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} - __ {([xSmallTCrossRefT df] - LongJut * [Math.sqrt df.div]) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} + __ {([xSmallTCrossRefT df] - LongJut * [Math.sqrt df.div]) ([xSmallTCrossRefT df] + LongJut * [Math.sqrt df.div])} define [XHookTerminal df sym] : match sym [Just SYM-LEFT] df.rightSB @@ -79,13 +79,13 @@ glyph-block Letter-Latin-Lower-T : begin export : define [Retroflex df sym top bot] : Flat.Retroflex df sym top bot - define DiagTail : namespace + define DiagonalTailed : namespace define [HookShape df sym top bot sw] : begin local xMid : [BarLeftPos df sym] + [HSwToV HalfStroke] - local hookDepth : [if (sym === SYM-LEFT) 1.375 1] * [DiagonalTailStdDepth [DivFrame : Math.sqrt df.div] sw] - [HSwToV HalfStroke] + local hookDepth : [if (sym === SYM-LEFT) 1.375 1] * [DiagTail.StdDepth [DivFrame : Math.sqrt df.div] sw] - [HSwToV HalfStroke] return : dispiro flat xMid top [widths.center.heading sw Downward] - DiagonalTailR df xMid bot hookDepth sw + DiagTail.R xMid bot hookDepth sw ########################################################################################### @@ -108,7 +108,7 @@ glyph-block Letter-Latin-Lower-T : begin define Flat : namespace export : define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {[BarLeftPos df sym] [mix df.width df.rightSB [mix 1 df.div 2]]} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) [mix df.width df.rightSB [mix 1 df.div 2]]} __ {[mix 0 df.leftSB [mix 1 df.div 2]] [mix df.width df.rightSB [mix 1 df.div 2]]} @@ -180,7 +180,7 @@ glyph-block Letter-Latin-Lower-T : begin __ : df.middle - [HSwToV HalfStroke] define [xCrossBarPos df sym] : match sym - ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {[BarLeftPos df sym] (df.middle + LongJut * [Math.sqrt df.div])} + ([Just SYM-LEFT] || [Just SYM-PR-LEFT]) {([BarLeftPos df sym] + TanSlope * Stroke) (df.middle + LongJut * [Math.sqrt df.div])} __ {(df.middle - LongJut * [Math.sqrt df.div]) (df.middle + LongJut * [Math.sqrt df.div])} export : define [Body df sym top bot] : glyph-proc @@ -207,7 +207,7 @@ glyph-block Letter-Latin-Lower-T : begin define SmallTConfig : SuffixCfg.weave object # body bentHook { [DivFrame 1] BentHook } - diagonalTailed { dfNarrowT DiagTail } + diagonalTailed { dfNarrowT DiagonalTailed } flatHook { dfNarrowT Flat } hookless { dfNarrowT Hookless } object # symmetry diff --git a/font-src/glyphs/letter/latin/upper-b.ptl b/font-src/glyphs/letter/latin/upper-b.ptl index 217b3152df..fc6a049a9b 100644 --- a/font-src/glyphs/letter/latin/upper-b.ptl +++ b/font-src/glyphs/letter/latin/upper-b.ptl @@ -233,7 +233,7 @@ glyph-block Letter-Latin-Upper-B : begin include : ItalicCyrveShape XH create-glyph 'grek/betaSymbol' 0x3D0 : glyph-proc - include : MarkSet.e + include : MarkSet.b include : ItalicCyrveShape Ascender alias 'cyrl/ve.BGR' null 'grek/betaSymbol' diff --git a/font-src/glyphs/letter/latin/upper-d.ptl b/font-src/glyphs/letter/latin/upper-d.ptl index da86cfc43e..0912c31e70 100644 --- a/font-src/glyphs/letter/latin/upper-d.ptl +++ b/font-src/glyphs/letter/latin/upper-d.ptl @@ -99,7 +99,7 @@ glyph-block Letter-Latin-Upper-D : begin include [refer-glyph src] AS_BASE ALSO_METRICS include : LetterBarOverlay.l.in SB Stroke (CAP - Stroke) space -- { 0 (RightSB - [HSwToV Stroke]) } - alias 'Dcroat' 0x110 'Eth' + alias 'DStroke' 0x110 'Eth' alias 'arficanD' 0x189 'Eth' select-variant 'Dhookleft' 0x18A diff --git a/font-src/glyphs/letter/latin/upper-p.ptl b/font-src/glyphs/letter/latin/upper-p.ptl index 3e4f408022..abfaeafbd4 100644 --- a/font-src/glyphs/letter/latin/upper-p.ptl +++ b/font-src/glyphs/letter/latin/upper-p.ptl @@ -13,124 +13,142 @@ glyph-block Letter-Latin-Upper-P : begin glyph-block-import Letter-Shared-Metrics : BowlXDepth glyph-block-import Letter-Shared-Shapes : LetterBarOverlay LeftHook glyph-block-import Letter-Blackboard : BBS BBD - glyph-block-export PShape PShapeOutline RevPShape PBarPosY PRotundaShape BBPShape + glyph-block-export PConfig PShape PShapeOutline RevPShape PBarPosY PRotundaShape BBPShape define [PBarPosY top sw bp] : (top - sw) * bp - sw * PShape.SwBelowBar - define [PRotundaOutlineKnots top mul bp overshoot sw offset endX hook] : begin + define [PRotundaOutlineKnots top df mul bp overshoot sw offset endX hook] : begin local bowlTop (top * 1 - offset) local bowlBottom : [PBarPosY top sw bp] + offset - local turnRadius : BowlXDepth bowlTop bowlBottom SB RightSB sw - local ada : ArchDepthAOf (ArchDepth * 0.9) Width - local adb : ArchDepthBOf (ArchDepth * 0.9) Width - local right : RightSB - offset + local turnRadius : BowlXDepth bowlTop bowlBottom df.leftSB df.rightSB sw + local ada : ArchDepthAOf (ArchDepth * 0.9) df.width + local adb : ArchDepthBOf (ArchDepth * 0.9) df.width + local left : df.leftSB * mul + local right : df.rightSB - offset local turn : YSmoothMidR bowlTop bowlBottom ada adb return : list - g4 (SB * mul - O) (bowlTop - hook) + g4 (left - O) (bowlTop - hook) hookstart (bowlTop - O) g4 (right - overshoot) turn arcvh - flat ([Math.max (endX + 0.01 + sw / 2 * TanSlope) Middle] + CorrectionOMidX * sw * 0.5) bowlBottom + flat ([Math.max (endX + 0.01 + sw / 2 * TanSlope) df.middle] + CorrectionOMidX * sw * 0.5) bowlBottom curl endX bowlBottom [heading Leftward] - define [PShapeOutlineKnots top mul bp overshoot sw offset] : begin + define [PShapeOutlineKnots top df mul bp overshoot sw offset] : begin local bowlTop (top * 1 - offset) local bowlBottom : [PBarPosY top sw bp] + offset - local turnRadius : BowlXDepth bowlTop bowlBottom SB RightSB sw - local ada : ArchDepthAOf (ArchDepth * 0.9) Width - local adb : ArchDepthBOf (ArchDepth * 0.9) Width - local right : RightSB - offset + local turnRadius : BowlXDepth bowlTop bowlBottom df.leftSB df.rightSB sw + local ada : ArchDepthAOf (ArchDepth * 0.9) df.width + local adb : ArchDepthBOf (ArchDepth * 0.9) df.width + local left : df.leftSB * mul + local right : df.rightSB - offset local turn : YSmoothMidR bowlTop bowlBottom ada adb return : list - flat (SB * mul - O) bowlTop [heading Rightward] + flat (left - O) bowlTop [heading Rightward] curl (right - turnRadius - CorrectionOMidX * sw) bowlTop archv g4 (right - overshoot) turn arcvh flat (right - turnRadius + CorrectionOMidX * sw) bowlBottom - curl (SB * mul - O) bowlBottom [heading Leftward] + curl (left - O) bowlBottom [heading Leftward] - define [RevPshapeOutlineKnots top mul bp overshoot sw offset] : begin + define [RevPshapeOutlineKnots top df mul bp overshoot sw offset] : begin local bowlTop (top * 1 - offset) - local bowlBottom ((top - sw) * bp - sw * PShape.SwBelowBar + offset) - local turnRadius : BowlXDepth bowlTop bowlBottom SB RightSB sw - local ada : ArchDepthAOf (ArchDepth * 0.9) Width - local adb : ArchDepthBOf (ArchDepth * 0.9) Width - local left : SB + offset + local bowlBottom : [PBarPosY top sw bp] + offset + local turnRadius : BowlXDepth bowlTop bowlBottom df.leftSB df.rightSB sw + local ada : ArchDepthAOf (ArchDepth * 0.9) df.width + local adb : ArchDepthBOf (ArchDepth * 0.9) df.width + local left : df.leftSB + offset + local right : df.width - df.leftSB * mul local turn : YSmoothMidL bowlTop bowlBottom ada adb return : list - flat (Width - SB * mul + O) bowlTop [heading Leftward] + flat (right + O) bowlTop [heading Leftward] curl (left + turnRadius - CorrectionOMidX * sw) bowlTop archv g4 (left + overshoot) turn arcvh flat (left + turnRadius + CorrectionOMidX * sw) bowlBottom - curl (Width - SB * mul + O) bowlBottom [heading Rightward] + curl (right + O) bowlBottom [heading Rightward] - define [PShapeOutline] : with-params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [offset 0]] : glyph-proc + define [PShapeOutline] : with-params [ + top [df [DivFrame 1]] + [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw df.mvs] + [offset 0] + ] : glyph-proc include : spiro-outline - PShapeOutlineKnots top mul bp overshoot sw offset - - define [PShape] : with-params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab null] [withBar true] [setMark false]] : glyph-proc - include : dispiro [widths.rhs sw] [PShapeOutlineKnots top mul bp overshoot sw 0] - if withBar : include : tagged 'strokeL' : VBar.l (SB * mul) 0 top sw - if slab : include : slab top sw mul - - define [PRotundaShape] : with-params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab SLAB] [endX SB] [hook Hook]] : glyph-proc + PShapeOutlineKnots top df mul bp overshoot sw offset + + define [PShape] : with-params [ + top [df [DivFrame 1]] + [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw df.mvs] + [slab null] [withBar true] [setMark false] + ] : glyph-proc + include : dispiro [widths.rhs sw] [PShapeOutlineKnots top df mul bp overshoot sw 0] + if withBar : include : tagged 'strokeL' : VBar.l (df.leftSB * mul) 0 top sw + if slab : include : slab top df sw mul + + define [PRotundaShape] : with-params [ + top [df [DivFrame 1]] + [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw df.mvs] + [slab null] [endX SB] [hook Hook] + ] : glyph-proc include : dispiro widths.rhs sw - PRotundaOutlineKnots top mul bp overshoot sw 0 endX hook + PRotundaOutlineKnots top df mul bp overshoot sw 0 endX hook - define [RevPShape] : with-params [top [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw Stroke] [slab SLAB]] : glyph-proc + define [RevPShape] : with-params [ + top [df [DivFrame 1]] + [mul PShape.defaultMul] [bp PShape.BarPos] [overshoot PShape.defaultOvershoot] [sw df.mvs] + [slab null] + ] : glyph-proc include : tagged 'bowl' : dispiro widths.lhs sw - RevPshapeOutlineKnots top mul bp overshoot sw 0 - include : tagged 'strokeR' : VBar.r (Width - SB * mul) 0 top sw - - if slab : include : slab top sw mul + RevPshapeOutlineKnots top df mul bp overshoot sw 0 + include : tagged 'strokeR' : VBar.r (df.width - df.leftSB * mul) 0 top sw + if slab : include : slab top df sw mul set PShape.defaultMul 1.25 set PShape.defaultOvershoot (OX * 2) set PShape.BarPos (1 - HBarPos) set PShape.SwBelowBar 0.25 - set PShape.SlabMotion : function [top sw mul] : glyph-proc - include : tagged 'serifLT' : HSerif.lt (SB * mul) top SideJut sw - set PShape.SlabFullSymmetric : function [top sw mul] : glyph-proc - include : tagged 'serifLT' : HSerif.mt (SB * mul + [HSwToV : 0.5 * sw]) top Jut sw - include : tagged 'serifLB' : HSerif.mb (SB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw - set PShape.SlabSymmetric : function [top sw mul] : glyph-proc - include : PShape.SlabMotion top sw mul - include : tagged 'serifLB' : HSerif.mb (SB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw - set PShape.SlabAsymmetric : function [top sw mul] : glyph-proc - include : PShape.SlabMotion top sw mul + set PShape.SlabMotion : function [top df sw mul] : glyph-proc + include : tagged 'serifLT' : HSerif.lt (df.leftSB * mul) top SideJut sw + set PShape.SlabFullSymmetric : function [top df sw mul] : glyph-proc + include : tagged 'serifLT' : HSerif.mt (df.leftSB * mul + [HSwToV : 0.5 * sw]) top Jut sw + include : tagged 'serifLB' : HSerif.mb (df.leftSB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw + set PShape.SlabSymmetric : function [top df sw mul] : glyph-proc + include : PShape.SlabMotion top df sw mul + include : tagged 'serifLB' : HSerif.mb (df.leftSB * mul + [HSwToV : 0.5 * sw]) 0 Jut sw + set PShape.SlabAsymmetric : function [top df sw mul] : glyph-proc + include : PShape.SlabMotion top df sw mul include : tagged 'serifLB' : union - HSerif.lb (SB * mul) 0 SideJut sw - HSerif.rb (SB * mul + [HSwToV : 0.5 * sw]) 0 MidJutSide sw - set PShape.OpenGap : function [] : with-params [top [bot 0] [mul PShape.defaultMul] [bp PShape.BarPos] [sw Stroke]] : VBar.l - SB * mul + [HSwToV sw] + HSerif.lb (df.leftSB * mul) 0 SideJut sw + HSerif.rb (df.leftSB * mul + [HSwToV : 0.5 * sw]) 0 MidJutSide sw + set PShape.OpenGap : function [] : with-params [top [df [DivFrame 1]] [bot 0] [mul PShape.defaultMul] [bp PShape.BarPos] [sw df.mvs]] : VBar.l + df.leftSB * mul + [HSwToV sw] Math.min ([PBarPosY top sw bp] - 0.5 * sw - 0.1) bot Math.max ([PBarPosY top sw bp] + 0.5 * sw + 0.1) [mix top [PBarPosY top sw bp] 0.5] - 0.2 * (RightSB - SB) * ([AdviceStroke 5] / Stroke) - - set RevPShape.SlabMotion : function [top sw mul] : glyph-proc - include : tagged 'serifRT' : HSerif.rt (Width - SB * mul) top SideJut sw - set RevPShape.SlabSymmetric : function [top sw mul] : glyph-proc - include : RevPShape.SlabMotion top sw mul - include : tagged 'serifRB' : HSerif.mb (Width - SB * mul - [HSwToV HalfStroke]) 0 Jut sw - set RevPShape.SlabCyrlItalic : function [top sw mul] : glyph-proc - include : tagged 'serifRB' : HSerif.rb (Width - SB * mul) 0 SideJut sw - set RevPShape.SlabAsymmetric : function [top sw mul] : glyph-proc - include : RevPShape.SlabMotion top sw mul + 0.2 * (df.rightSB - df.leftSB) * ([AdviceStroke 5] / Stroke) + + set RevPShape.SlabMotion : function [top df sw mul] : glyph-proc + include : tagged 'serifRT' : HSerif.rt (df.width - df.leftSB * mul) top SideJut sw + set RevPShape.SlabSymmetric : function [top df sw mul] : glyph-proc + include : RevPShape.SlabMotion top df sw mul + include : tagged 'serifRB' : HSerif.mb (df.width - df.leftSB * mul - [HSwToV HalfStroke]) 0 Jut sw + set RevPShape.SlabCyrlItalic : function [top df sw mul] : glyph-proc + include : tagged 'serifRB' : HSerif.rb (df.width - df.leftSB * mul) 0 SideJut sw + set RevPShape.SlabAsymmetric : function [top df sw mul] : glyph-proc + include : RevPShape.SlabMotion top df sw mul include : tagged 'serifRB' : union - HSerif.rb (Width - SB * mul) 0 SideJut sw - HSerif.lb (Width - SB * mul - [HSwToV : 0.5 * sw]) 0 MidJutSide sw - set RevPShape.OpenGap : function [] : with-params [top [bot 0] [mul PShape.defaultMul] [bp PShape.BarPos] [sw Stroke]] : VBar.r - Width - SB * mul - [HSwToV sw] + HSerif.rb (df.width - df.leftSB * mul) 0 SideJut sw + HSerif.lb (df.width - df.leftSB * mul - [HSwToV : 0.5 * sw]) 0 MidJutSide sw + set RevPShape.OpenGap : function [] : with-params [top [df [DivFrame 1]] [bot 0] [mul PShape.defaultMul] [bp PShape.BarPos] [sw df.mvs]] : VBar.r + df.width - df.leftSB * mul - [HSwToV sw] Math.min ([PBarPosY top sw bp] - 0.5 * sw - 0.1) bot Math.max ([PBarPosY top sw bp] + 0.5 * sw + 0.1) [mix top [PBarPosY top sw bp] 0.5] - 0.2 * (RightSB - SB) * ([AdviceStroke 5] / Stroke) + 0.2 * (df.rightSB - df.leftSB) * ([AdviceStroke 5] / Stroke) define PConfig : object closedSerifless { false null null } diff --git a/font-src/glyphs/letter/latin/upper-r.ptl b/font-src/glyphs/letter/latin/upper-r.ptl index 6c74f9722b..44ebec52c3 100644 --- a/font-src/glyphs/letter/latin/upper-r.ptl +++ b/font-src/glyphs/letter/latin/upper-r.ptl @@ -11,6 +11,7 @@ glyph-block Letter-Latin-Upper-R : begin glyph-block-import Letter-Latin-Upper-P : PShape RevPShape PBarPosY PRotundaShape BBPShape PShapeOutline glyph-block-import Letter-Blackboard : BBS BBD glyph-block-import Letter-Shared-Shapes : RightwardTailedBar RetroflexHook + glyph-block-export RConfig RevRShape RBarPos define LEG-SHAPE-CURLY 0 define LEG-SHAPE-STRAIGHT 1 @@ -36,7 +37,7 @@ glyph-block Letter-Latin-Upper-R : begin corner xRightBottom bottom [widths.rhs sw] if slab : begin - include : HSerif.rb xRightBottomSerifStart bottom (SideJut + Jut / 8) + include : HSerif.rb xRightBottomSerifStart bottom (SideJut + Jut / 8) sw define [RLegShape-Curly] : with-params [top bottom left right charTop slab sw extraShift] : glyph-proc local xRightBottom : RLegTerminalX LEG-SHAPE-CURLY right sw @@ -48,7 +49,7 @@ glyph-block Letter-Latin-Upper-R : begin quadControls 0 0.4 8 g4 left top if slab : begin - include : HSerif.rb right bottom (SideJut + Jut / 8) + include : HSerif.rb right bottom (SideJut + Jut / 8) sw define [RLegShape-Standing] : with-params [top bottom left right charTop slab sw extraShift] : glyph-proc local fine : RStandingLegFine sw @@ -65,7 +66,7 @@ glyph-block Letter-Latin-Upper-R : begin flat (right + O) [Math.max (yOffset + 1) (ytopRef - bend * charTop / CAP)] [widths.rhs.heading sw Downward] curl (right + O) yOffset [heading Downward] curl (right + O - xOverflow) bottom [heading Downward] - if slab : include : HSerif.rb right bottom SideJut + if slab : include : HSerif.rb right bottom SideJut sw define RLegShapes { RLegShape-Curly RLegShape-Straight RLegShape-Standing } @@ -83,7 +84,7 @@ glyph-block Letter-Latin-Upper-R : begin corner xRightTop top [widths.rhs sw] corner xLeftBottom bottom [widths.lhs sw] if slab : begin - include : HSerif.lb xLeftBottomSerifStart bottom (SideJut + Jut / 8) + include : HSerif.lb xLeftBottomSerifStart bottom (SideJut + Jut / 8) sw define [RevRLegShape-Curly] : with-params [top bottom left right charTop slab sw extraShift] : glyph-proc local xLeftBottom : RevRLegTerminalX LEG-SHAPE-CURLY left sw @@ -95,7 +96,7 @@ glyph-block Letter-Latin-Upper-R : begin quadControls 0 0.4 8 g4 right top if slab : begin - include : HSerif.lb left bottom (SideJut + Jut / 8) + include : HSerif.lb left bottom (SideJut + Jut / 8) sw define [RevRLegShape-Standing] : with-params [top bottom left right charTop slab sw extraShift] : glyph-proc local fine : RStandingLegFine sw @@ -112,7 +113,7 @@ glyph-block Letter-Latin-Upper-R : begin flat (left - O) [Math.max (yOffset + 1) (ytopRef - bend * charTop / CAP)] [widths.lhs.heading sw Downward] curl (left - O) yOffset [heading Downward] curl (left - O + xOverflow) bottom [heading Downward] - if slab : include : HSerif.lb left bottom SideJut + if slab : include : HSerif.lb left bottom SideJut sw define RevRLegShapes { RevRLegShape-Curly RevRLegShape-Straight RevRLegShape-Standing } @@ -120,38 +121,38 @@ glyph-block Letter-Latin-Upper-R : begin define [RBarPos charTop slab] : begin PShape.BarPos define [RLegTop charTop sw bp] : (sw / 2) + [PBarPosY charTop sw bp] - define [RShape] : with-params [legShape top bp [mul 1] [slab null] [legSlab false] [open false] [legBottom 0]] : glyph-proc - local right : RightSB - O - [if slab (Jut / 8) 0] + define [RShape] : with-params [legShape top bp [df [DivFrame 1]] [mul 1] [slab null] [legSlab false] [open false] [legBottom 0] [sw Stroke]] : glyph-proc + local right : df.rightSB - O - [if slab (Jut / 8) 0] include : difference - PShape top (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) - if open [PShape.OpenGap (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot Stroke 0])] [glyph-proc] + PShape top (df -- df) (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) (sw -- sw) + if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0])] [glyph-proc] include : difference - RLegShapes.(legShape) [RLegTop top Stroke bp] legBottom Middle right top legSlab Stroke 0 - if open [PShape.OpenGap (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] + RLegShapes.(legShape) [RLegTop top sw bp] legBottom df.middle right top legSlab sw 0 + if open [PShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] - define [RRotundaShape] : with-params [legShape top [mul 1] [pmRotunda 0] [endX Middle] [hook Hook] [pBar 1] [slab null] [legSlab false]] : glyph-proc + define [RRotundaShape] : with-params [legShape top [df [DivFrame 1]] [mul 1] [pmRotunda 0] [endX df.middle] [hook Hook] [pBar 1] [slab null] [legSlab false] [sw Stroke]] : glyph-proc local bp : pBar * [RBarPos top false] - local legTop : RLegTop top Stroke bp - local right (RightSB - O - [if slab (Jut / 8) 0]) - local cor : RLegDiagCor legTop 0 endX right 0 Stroke - local endX1 : endX - [if legShape (HalfStroke * [HSwToV cor]) HalfStroke] + [if legShape [RSlabExtraShift SLAB Stroke] 0] - include : PRotundaShape top (mul -- mul) (bp -- bp) (overshoot -- O) (slab -- false) (endX -- endX1) (hook -- hook) + local legTop : RLegTop top sw bp + local right (df.rightSB - O - [if slab (Jut / 8) 0]) + local cor : RLegDiagCor legTop 0 endX right 0 sw + local endX1 : endX - [if legShape (sw / 2 * [HSwToV cor]) (sw / 2)] + [if legShape [RSlabExtraShift SLAB sw] 0] + include : PRotundaShape top (df -- df) (mul -- mul) (bp -- bp) (overshoot -- O) (slab -- false) (endX -- endX1) (hook -- hook) (sw -- sw) include : difference - RLegShapes.(legShape) legTop 0 endX right top legSlab Stroke 0 + RLegShapes.(legShape) legTop 0 endX right top legSlab sw 0 MaskLeft endX1 - define [RevRShape] : with-params [legShape top bp [slab null] [legSlab false] [mul 1] [tailedShape false] [open false]] : glyph-proc - local left : SB + O + [if slab (Jut / 8) 0] + define [RevRShape] : with-params [legShape top bp [df [DivFrame 1]] [slab null] [legSlab false] [mul 1] [tailedShape false] [open false] [sw Stroke]] : glyph-proc + local left : df.leftSB + O + [if slab (Jut / 8) 0] include : difference - RevPShape top (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) - if open [RevPShape.OpenGap (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot Stroke 0]) ] [glyph-proc] + RevPShape top (df -- df) (mul -- mul) (overshoot -- O) (slab -- slab) (bp -- bp) (sw -- sw) + if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- [if fSlabBot sw 0]) ] [glyph-proc] include : difference - RevRLegShapes.(legShape) [RLegTop top Stroke bp] 0 left Middle top legSlab Stroke 0 - if open [RevPShape.OpenGap (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] + RevRLegShapes.(legShape) [RLegTop top sw bp] 0 left df.middle top legSlab sw 0 + if open [RevPShape.OpenGap (df -- df) (mul -- mul) (bp -- bp) (top -- top) (bot -- 0) ] [glyph-proc] if tailedShape : begin eject-contour 'strokeR' eject-contour 'serifRB' - include : tagged 'strokeR' : RightwardTailedBar (Width - SB * mul) 0 top + include : tagged 'strokeR' : RightwardTailedBar (df.width - df.leftSB * mul) 0 top define [StrikeAnchor] : glyph-proc set-base-anchor 'strike' Middle [mix [PBarPosY CAP Stroke : RBarPos CAP SLAB] CAP 0.5] @@ -228,8 +229,8 @@ glyph-block Letter-Latin-Upper-R : begin include : VBar.l SB (top - 1) CAP include : RShape legShape top (legSlab -- doLegSlab) (bp -- bp) (open -- fOpen) (legBottom -- Descender) include : match slabs - [Just PShape.SlabSymmetric] : PShape.SlabFullSymmetric CAP Stroke 1 - [Just PShape.SlabMotion] : PShape.SlabMotion CAP Stroke 1 + [Just PShape.SlabSymmetric] : PShape.SlabFullSymmetric CAP [DivFrame 1] Stroke 1 + [Just PShape.SlabMotion] : PShape.SlabMotion CAP [DivFrame 1] Stroke 1 __ : glyph-proc create-glyph "smcpRLongRightLeg.\(suffix)" : glyph-proc diff --git a/font-src/glyphs/letter/latin/v.ptl b/font-src/glyphs/letter/latin/v.ptl index 50cea33c74..fadf89448f 100644 --- a/font-src/glyphs/letter/latin/v.ptl +++ b/font-src/glyphs/letter/latin/v.ptl @@ -9,7 +9,7 @@ glyph-block Letter-Latin-V : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-export VShape VShapeOutline - glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius SerifFrame PalatalHook + glyph-block-import Letter-Shared-Shapes : DiagTail SerifFrame PalatalHook glyph-block-import Letter-Blackboard : BBS BBD define VCornerHalfWidth : HSwToV : 1.15 * HalfStroke @@ -108,7 +108,7 @@ glyph-block Letter-Latin-V : begin define yArcRight : [mix 0 top 0.6] - sw * 0.2 define xArcEnd : [mix SB RightSB 0.8] + sw * 0.375 define yArcEnd : top - O - define rInY : DiagonalTailInnerRadius + define rInY : DiagTail.DefaultInnerRadius define xArcMidBottom : xBar + [HSwToV sw] + [HSwToV rInY] + CorrectionOMidX * sw include : dispiro diff --git a/font-src/glyphs/letter/latin/w.ptl b/font-src/glyphs/letter/latin/w.ptl index 2d4240b375..e21b03953e 100644 --- a/font-src/glyphs/letter/latin/w.ptl +++ b/font-src/glyphs/letter/latin/w.ptl @@ -8,7 +8,7 @@ glyph-module glyph-block Letter-Latin-W : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives - glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius SerifFrame VerticalHook + glyph-block-import Letter-Shared-Shapes : DiagTail SerifFrame VerticalHook glyph-block-import Letter-Latin-Upper-M : MShape define FORM-CURLY 0 @@ -278,7 +278,7 @@ glyph-block Letter-Latin-W : begin define x1 : df.leftSB + 0 * OX define y3 : mix fine top 0.375 define y4 : mix y3 top 0.5 - define rInY : 1 * [DiagonalTailInnerRadius] + define rInY : 1 * [DiagTail.DefaultInnerRadius] include : dispiro widths.lhs fine diff --git a/font-src/glyphs/letter/latin/x.ptl b/font-src/glyphs/letter/latin/x.ptl index 870a50de31..4ba14ac77b 100644 --- a/font-src/glyphs/letter/latin/x.ptl +++ b/font-src/glyphs/letter/latin/x.ptl @@ -9,18 +9,18 @@ glyph-block Letter-Latin-X : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives glyph-block-import Letter-Shared-Shapes : ShoulderMidKnotRhs SerifFrame WithSerifOverflowMask - glyph-block-import Letter-Shared-Shapes : DiagonalTailInnerRadius DiagonalTailF + glyph-block-import Letter-Shared-Shapes : DiagTail glyph-block-import Letter-Shared-Shapes : CyrDescender PalatalHook glyph-block-export HalfXStrand - define [HalfXStrand stb fSlab _leftx lefty rightx righty turn pStraight tension _fine] : glyph-proc + define [HalfXStrand stb fSlab _leftx lefty rightx righty turn pStraight tension _sw] : glyph-proc + local sw : fallback _sw Stroke local sbCor : if stb ([StrokeWidthBlend 1 6] * OX * ([Math.abs (lefty - righty)] / CAP)) 0 - local leftx : _leftx + ([HSwToV HalfStroke] + [Math.max (-SideJut) sbCor]) * [if (rightx > _leftx) 1 (-1)] - local fine : (_fine || Stroke) * 0.5 + local leftx : _leftx + ([HSwToV : 0.5 * sw] + [Math.max (-SideJut) sbCor]) * [if (rightx > _leftx) 1 (-1)] if stb : begin - local hst : HalfStroke * [DiagCor (righty - lefty) (rightx - leftx) 0 0] - local hse : HalfStroke * [Math.min 0.97 ([AdviceStroke 3] / Stroke)] + local hst : (0.5 * sw) * [DiagCor (righty - lefty) (rightx - leftx) 0 0] + local hse : (0.5 * sw) * [Math.min 0.97 ([AdviceStroke 3] / Stroke)] local leftx2 : _leftx + ([HSwToV hst] + [Math.max (-SideJut) sbCor]) * [if (rightx > _leftx) 1 (-1)] include : dispiro corner leftx2 lefty [widths.heading hst hst [if (lefty < righty) Upward Downward]] @@ -28,13 +28,13 @@ glyph-block Letter-Latin-X : begin : else : begin local height : Math.abs (lefty - righty) - local slabClearance : if fSlab [AdviceStroke2 2 3 height] 0 + local slabClearance : if fSlab ((sw / Stroke) * [AdviceStroke2 2 3 height]) 0 local turnyleft : mix lefty righty [if fSlab [Math.max turn (slabClearance / height)] turn] local cyleft : mix turnyleft righty tension local straightxleft : mix leftx rightx pStraight local straightyleft : mix cyleft righty pStraight include : dispiro - widths.center + widths.center sw flat leftx lefty [heading [if (lefty < righty) Upward Downward]] curl leftx turnyleft [heading [if (lefty < righty) Upward Downward]] quadControls 0 ((cyleft - turnyleft) / (straightyleft - turnyleft)) 24 @@ -42,50 +42,15 @@ glyph-block Letter-Latin-X : begin curl rightx righty glyph-block-export XStrand - define [XStrand stb slab _leftx lefty _rightx righty turn pStraight tension] : glyph-proc + define [XStrand stb slab _leftx lefty _rightx righty turn pStraight tension _sw] : glyph-proc local middlex : mix _leftx _rightx 0.5 local middley : mix lefty righty 0.5 - include : HalfXStrand stb slab _leftx lefty middlex middley turn pStraight tension - include : HalfXStrand stb slab _rightx righty middlex middley turn pStraight tension + include : HalfXStrand stb slab _leftx lefty middlex middley turn pStraight tension _sw + include : HalfXStrand stb slab _rightx righty middlex middley turn pStraight tension _sw - glyph-block-export XCursiveHalfShape - define [XCursiveHalfShape] : with-params [top bottom left right [swEnd : AdviceStroke 2.75] [swMid : AdviceStroke 3] [kThin 0.55] [setMark false]] : glyph-proc - local ada : ArchDepthAOf (ArchDepth * 0.8) (Width / 2) - local adb : ArchDepthBOf (ArchDepth * 0.8) (Width / 2) - - define xCenterRight : left + [HSwToV swMid] / 2 - define xCenterLeft : left - [HSwToV swMid] / 2 - define xTurn : mix (right - [HSwToV swEnd]) xCenterRight 0.5 - define hook1Depth : Hook + Stroke * 0.125 - define hook1StraightDepth : Math.min - hook1Depth - swEnd * 1.125 - Math.max 1 : hook1Depth / 5 - swEnd / 4 - - define fineMid : swMid * kThin - define rIn : Math.max (0.4 * (right - left) - [HSwToV : 0.7 * Stroke]) [AdviceStroke 16] - define flatHookDepth : 1.4 * (right - left) - swEnd - 1.5 * rIn - - define upperHalf : include : dispiro - flat (xCenterRight - [HSwToV fineMid]) ([mix bottom top 0.5] + O) [widths.rhs.heading fineMid Upward] - curl (xCenterRight - [HSwToV fineMid]) (top - ada) - arcvh - ShoulderMidKnotRhs xTurn (top - O) fineMid swEnd (+1) (-1) - archv - flat (right - OX) (top - hook1Depth + hook1StraightDepth) [heading Downward] - curl (right - OX) (top - hook1Depth) [heading Downward] - - define lowerHalf : include : dispiro - flat (xCenterRight - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] - curl (xCenterRight - [HSwToV : 0.5 * fineMid]) (bottom + [Math.min adb (swMid + rIn)]) - arcvh 16 - DiagonalTailF 1 [DivFrame 1] (xCenterRight - [HSwToV : 0.5 * Stroke] + TanSlope * rIn) bottom rIn 50 flatHookDepth Stroke - - if setMark : begin - define lowerHalfLastKnot lowerHalf.rhsKnots.(lowerHalf.rhsKnots.length - 1) - set-base-anchor 'cyrlDescenderAttach' lowerHalfLastKnot.x lowerHalfLastKnot.y - - define [XChanceryStrand sign leftX leftY rightX rightY sw] : begin + define [XChanceryStrand sign leftX leftY rightX rightY fHalf _sw] : begin + local sw : fallback _sw Stroke local blendK1X : StrokeWidthBlend 0.58 0.65 local blendK1Y 0.2 local blendK2X 0.78 @@ -94,70 +59,158 @@ glyph-block Letter-Latin-X : begin local pStraightX : StrokeWidthBlend 0.3 0.35 local pStraightY : StrokeWidthBlend 0.2 0.25 - local fine : [AdviceStroke 3] / Stroke * sw + local fine : [AdviceStroke 3] * (sw / Stroke) return : dispiro - straight.right.start leftX (leftY - sign * sw / 2) [widths.center sw] - alsoThruThem {{blendK1X blendK1Y} {blendK2X blendK2Y}} - flat [mix leftX rightX pStraightX] [mix leftY rightY pStraightY] [widths.center : mix sw fine 0.5] - corner [mix leftX rightX 0.5] [mix leftY rightY 0.5] [widths.center fine] + if fHalf + flat [mix leftX rightX 0.5] [mix leftY rightY 0.5] [widths.center fine] + list + straight.right.start leftX (leftY - sign * sw / 2) [widths.center sw] + alsoThruThem {{blendK1X blendK1Y} {blendK2X blendK2Y}} + flat [mix leftX rightX pStraightX] [mix leftY rightY pStraightY] [widths.center : mix sw fine 0.5] + corner [mix leftX rightX 0.5] [mix leftY rightY 0.5] [widths.center fine] curl [mix leftX rightX (1 - pStraightX)] [mix leftY rightY (1 - pStraightY)] [widths.center : mix sw fine 0.5] alsoThruThem {{(1 - blendK2X) (1 - blendK2Y)} {(1 - blendK1X) (1 - blendK1Y)}} straight.right.end rightX (rightY + sign * sw / 2) [widths.center sw] - define Shape : namespace - define [XBase fStraight fSlab top bottom turn tension] : composite-proc - XStrand fStraight fSlab SB bottom RightSB top turn 0.4 tension - XStrand fStraight fSlab SB top RightSB bottom turn 0.4 tension - - export : define [StraightBase fSlab top bottom turn tension] - XBase true fSlab top bottom turn tension - export : define [CurlyBase fSlab top bottom turn tension] - XBase false fSlab top bottom turn tension - - export : define [CursiveBase fSerifs top bottom turn tension] : glyph-proc - include : XCursiveHalfShape top bottom Middle RightSB - include : FlipAround Middle [mix bottom top 0.5] - include : XCursiveHalfShape top bottom Middle RightSB (setMark -- true) - - export : define [SemiChanceryStr fSlab top bottom turn tension] : union - XChanceryStrand (+1) SB top RightSB bottom Stroke - XStrand true fSlab SB bottom RightSB top turn 0.4 tension - export : define [SemiChanceryCur fSlab top bottom turn tension] : union - XChanceryStrand (+1) SB top RightSB bottom Stroke - XStrand false fSlab SB bottom RightSB top turn 0.4 tension - export : define [ChanceryBase fSlab top bottom turn tension] : union - XChanceryStrand (+1) SB top RightSB bottom Stroke - XChanceryStrand (-1) SB bottom RightSB top Stroke - - # Serifs - export : define [FullSerifs top bot] : let [sf : SerifFrame.fromDf [DivFrame 1] top bot] - composite-proc sf.lt.full sf.rt.full sf.lb.full sf.rb.full - export : define [MotionSerifs top bot] : glyph-proc - include : tagged 'serifLT' : HSerif.lt SB top SideJut - export : define [MotionSerifsBilateral top bot] : glyph-proc - include : tagged 'serifLT' : HSerif.lt SB top SideJut - include : tagged 'serifRB' : HSerif.rb RightSB bot SideJut - - define Config : object - straightSerifless { Shape.StraightBase null false } - curlySerifless { Shape.CurlyBase null false } - cursive { Shape.CursiveBase null false } - semiChanceryStraight { Shape.SemiChanceryStr null false } - semiChanceryCurly { Shape.SemiChanceryCur null false } - chancery { Shape.ChanceryBase null false } - straightSerifed { Shape.StraightBase Shape.FullSerifs true } - curlySerifed { Shape.CurlyBase Shape.FullSerifs true } - straightMotionSerifed { Shape.StraightBase Shape.MotionSerifs false } - curlyMotionSerifed { Shape.CurlyBase Shape.MotionSerifs false } - straightBilateralMotionSerifed { Shape.StraightBase Shape.MotionSerifsBilateral false } - curlyBilateralMotionSerifed { Shape.CurlyBase Shape.MotionSerifsBilateral false } - - foreach { suffix { baseShape serifShape fMaskBase} } [Object.entries Config] : do - define [letterShape top bottom turn tension] : glyph-proc - local base : baseShape fMaskBase top bottom turn tension - include : WithSerifOverflowMask fMaskBase top bottom SB RightSB base - if serifShape : include : serifShape top bottom + glyph-block-export XCursiveHalfShape + define [XCursiveHalfShape] : with-params [ + top bottom left right + [swMid : AdviceStroke 2.75] + [swEnd : AdviceStroke 3] + [swCoEnd : AdviceStroke 2] + [setMark false] [flatTail false] + ] : glyph-proc + local ada : ArchDepthAOf (ArchDepth * 0.8) (Width / 2) + local adb : ArchDepthBOf (ArchDepth * 0.8) (Width / 2) + local div : (right - left) / (RightSB - Middle) + local divHook : Math.min div 1 + + local fineMid : 0.55 * swMid + local xMidBarRightEdge : left + [HSwToV swMid] / 2 + local xUpperTurn : mix (right - [HSwToV swEnd]) xMidBarRightEdge 0.5 + local upperHookDepth : Math.max (swEnd * 2) ([Math.sqrt divHook] * (Hook + swEnd * 0.125)) + local upperHookStraightDepth : Math.min + upperHookDepth - swEnd * 1.125 + Math.max 1 : upperHookDepth / 5 - swEnd / 4 + local upperHalf : include : dispiro + flat (xMidBarRightEdge - [HSwToV fineMid]) ([mix bottom top 0.5] + O) [widths.rhs.heading fineMid Upward] + curl (xMidBarRightEdge - [HSwToV fineMid]) (top - ada) + arcvh + ShoulderMidKnotRhs xUpperTurn (top - O) fineMid swEnd (+1) (-1) + archv + flat (right - OX) (top - upperHookDepth + upperHookStraightDepth) [heading Downward] + curl (right - OX) (top - upperHookDepth) [heading Downward] + + local rIn : Math.max [AdviceStroke 16] (0.4 * (right - left) - [HSwToV : 0.5 * swMid]) + local flatHookDepth : 1.3 * (right - left) - (0.5 - TanSlope) * swEnd - 1.5 * (rIn + 0.5 * swMid) + local lowerHalf : include : if flatTail + dispiro + flat (xMidBarRightEdge - [HSwToV fineMid]) ([mix bottom top 0.5] - O) [widths.lhs fineMid] + curl (xMidBarRightEdge - [HSwToV fineMid]) (bottom + [Math.min adb (swMid + rIn)]) + arcvh + flat (xMidBarRightEdge + div * (0.5 * swMid + rIn) + 0.25 * TanSlope * (0.5 * swMid + rIn)) bottom [widths.lhs.heading swCoEnd Rightward] + curl right bottom + dispiro + flat (xMidBarRightEdge - [HSwToV : 0.5 * fineMid]) ([mix bottom top 0.5] - O) [widths.center fineMid] + curl (xMidBarRightEdge - [HSwToV : 0.5 * fineMid]) (bottom + [Math.min adb (swMid + rIn)]) + arcvh 16 + DiagTail.F 1 (xMidBarRightEdge - [HSwToV : 0.5 * swCoEnd] + TanSlope * rIn) bottom rIn 50 flatHookDepth swCoEnd + + if setMark : begin + define lowerHalfLastKnot lowerHalf.rhsKnots.(lowerHalf.rhsKnots.length - 1) + set-base-anchor 'cyrlDescenderAttach' lowerHalfLastKnot.x lowerHalfLastKnot.y + + define STROKE-STRAIGHT 0 + define STROKE-CURLY 1 + define STROKE-CHANCERY 2 + define STROKE-CURSIVE 3 + define STROKE-CURSIVE-FLAT 4 + + glyph-block-export XLetterForm + define [XLetterForm] : with-params [ + df top bot + stroke1 stroke2 + turn tension + [sw df.mvs] + [swCursiveMid : (sw / Stroke) * [AdviceStroke 2.75]] + [swCursiveEnd : (sw / Stroke) * [AdviceStroke 3]] + [swCursiveCoEnd : (sw / Stroke) * [AdviceStroke 2]] + ] : namespace + local sw df.mvs + export : define [base fSlab] : union + match stroke1 + [Just STROKE-STRAIGHT] : XStrand true fSlab df.leftSB bot df.rightSB top turn 0.4 tension sw + [Just STROKE-CURLY] : XStrand false fSlab df.leftSB bot df.rightSB top turn 0.4 tension sw + [Just STROKE-CHANCERY] : XChanceryStrand (-1) df.leftSB bot df.rightSB top false sw + ([Just STROKE-CURSIVE] || [Just STROKE-CURSIVE-FLAT]) : composite-proc + XCursiveHalfShape top bot df.middle df.rightSB + swCoEnd -- swCursiveCoEnd + swEnd -- swCursiveEnd + swMid -- swCursiveMid + flatTail -- (stroke1 === STROKE-CURSIVE-FLAT) + FlipAround df.middle [mix bot top 0.5] + __ : glyph-proc + match stroke2 + [Just STROKE-STRAIGHT] : XStrand true fSlab df.leftSB top df.rightSB bot turn 0.4 tension sw + [Just STROKE-CURLY] : XStrand false fSlab df.leftSB top df.rightSB bot turn 0.4 tension sw + [Just STROKE-CHANCERY] : XChanceryStrand (+1) df.leftSB top df.rightSB bot false sw + [Just STROKE-CURSIVE] : XCursiveHalfShape top bot df.middle df.rightSB + swCoEnd -- swCursiveCoEnd + swEnd -- swCursiveEnd + swMid -- swCursiveMid + setMark -- true + __ : glyph-proc + + export : define [rightHalf fSlab] : glyph-proc + local midy : mix top bot 0.5 + + include : union + match stroke1 + [Just STROKE-STRAIGHT] : HalfXStrand true fSlab df.rightSB top df.middle midy turn 0.4 tension sw + [Just STROKE-CURLY] : HalfXStrand false fSlab df.rightSB top df.middle midy turn 0.4 tension sw + [Just STROKE-CHANCERY] : XChanceryStrand (-1) df.leftSB bot df.rightSB top true sw + __ : glyph-proc + match stroke2 + [Just STROKE-STRAIGHT] : HalfXStrand true fSlab df.rightSB bot df.middle midy turn 0.4 tension sw + [Just STROKE-CURLY] : HalfXStrand false fSlab df.rightSB bot df.middle midy turn 0.4 tension sw + [Just STROKE-CHANCERY] : XChanceryStrand (+1) df.leftSB top df.rightSB bot true sw + [Just STROKE-CURSIVE] : XCursiveHalfShape top bot df.middle df.rightSB + swCoEnd -- swCursiveCoEnd + swEnd -- swCursiveEnd + swMid -- swCursiveMid + setMark -- true + __ : glyph-proc + + glyph-block-export XSerifs + define XSerifs : namespace + export : define [Full sf] : composite-proc sf.lt.full sf.rt.full sf.lb.full sf.rb.full + export : define [Motion sf] : composite-proc sf.lt.outer + export : define [BilateralMotion sf] : composite-proc sf.lt.outer sf.rb.outer + + glyph-block-export XConfig + define XConfig : object + straightSerifless { STROKE-STRAIGHT STROKE-STRAIGHT null false } + curlySerifless { STROKE-CURLY STROKE-CURLY null false } + cursive { STROKE-CURSIVE STROKE-CURSIVE null false } + semiChanceryStraight { STROKE-STRAIGHT STROKE-CHANCERY null false } + semiChanceryCurly { STROKE-CURLY STROKE-CHANCERY null false } + chancery { STROKE-CHANCERY STROKE-CHANCERY null false } + straightSerifed { STROKE-STRAIGHT STROKE-STRAIGHT XSerifs.Full true } + curlySerifed { STROKE-CURLY STROKE-CURLY XSerifs.Full true } + straightMotionSerifed { STROKE-STRAIGHT STROKE-STRAIGHT XSerifs.Motion false } + curlyMotionSerifed { STROKE-CURLY STROKE-CURLY XSerifs.Motion false } + straightBilateralMotionSerifed { STROKE-STRAIGHT STROKE-STRAIGHT XSerifs.BilateralMotion false } + curlyBilateralMotionSerifed { STROKE-CURLY STROKE-CURLY XSerifs.BilateralMotion false } + + foreach { suffix {stroke1 stroke2 serifShape fMaskBase} } [Object.entries XConfig] : do + define [letterShape top bot turn tension] : glyph-proc + local df : DivFrame 1 2 + local lf : XLetterForm df top bot stroke1 stroke2 turn tension + include : WithSerifOverflowMask fMaskBase top bot df.leftSB df.rightSB : lf.base fMaskBase + if serifShape : begin + local sf : SerifFrame.fromDf df top bot + include : serifShape sf create-glyph "X.\(suffix)" : glyph-proc include : MarkSet.capital diff --git a/font-src/glyphs/letter/shared.ptl b/font-src/glyphs/letter/shared.ptl index ee87fcaebf..1fe516099c 100644 --- a/font-src/glyphs/letter/shared.ptl +++ b/font-src/glyphs/letter/shared.ptl @@ -603,71 +603,75 @@ glyph-block Letter-Shared-Shapes : begin export : define [InwardR cx cy stroke hook] : begin return : tagged 'arcEndSerifR' : VBar.r cx (cy + hook + DToothlessRise / 2) (cy + DToothlessRise) [ArcStartSerifWidth stroke] - define DiagTailDefaultAngle 40 - - glyph-block-export DiagonalTailStdDepth - define [DiagonalTailStdDepth df sw] : Math.max (0.5 * sw) - df.div * para.unitWidthScalar * [Math.hypot HookX Hook] - 0.25 * sw - - glyph-block-export DiagonalTailInnerRadius - define [DiagonalTailInnerRadius] : Math.max (XH / 32) (0.5 * [AdviceStroke2 24 32 XH]) - - glyph-block-export DiagonalTailF - define [DiagonalTailF sign df cx cy rIn angle depth sw] : begin - define tailAngle : angle / 180 * Math.PI - define sinAngle : Math.sin tailAngle - define cosAngle : Math.cos tailAngle - - define mocFine : [AdviceStroke 3] / Stroke * sw - define mocSwMid : mix sw mocFine (2 / 3) - define fine : mocFine / [mix 1 HVContrast 0.375] - define swMid : mix sw fine 0.7 - - define dxTurn : [HSwToV : 0.5 * sw] + rIn * df.div - define dxTurnObl : if (sign > 0) (-0.75 * TanSlope * rIn) (0.75 * TanSlope * rIn) - define dyTurn : 0.5 * mocSwMid - define dxTailStart : dxTurn + sinAngle * (rIn + 0.5 * mocFine * [mix 1 HVContrast sinAngle]) - define dyTailStart : dyTurn + (1 - cosAngle + [if (sign > 0) 0 (TanSlope)]) * (rIn + 0.5 * mocFine) - define dxDepth : (depth - 0.5 * sw) * cosAngle - define dyDepth : (depth - 0.5 * sw) * sinAngle - return : list - g4.[if (sign > 0) "right" "left"].mid - cx + sign * dxTurn + dxTurnObl - cy + O + dyTurn - if (sign > 0) - widths.center.heading swMid Rightward - widths.center.heading swMid Leftward - if (sign <= 0) {} : alsoThruThem - list - DiagonalTailFArc2K tailAngle (1 / 4) - DiagonalTailFArc2K tailAngle (2 / 4) - DiagonalTailFArc2K tailAngle (3 / 4) - # if (sign <= 0) {} : alsoThru.g2 - # [Math.sin (tailAngle / 2)] / [Math.sin tailAngle] - # (1 - [Math.cos (tailAngle / 2)]) / (1 - [Math.cos tailAngle]) - # widths.center : mix swMid fine (1 / 2) - flat (cx + sign * dxTailStart) (cy + O + dyTailStart) [widths.center fine] - curl (cx + sign * dxTailStart + sign * dxDepth) (cy + O + dyTailStart + dyDepth) - define [DiagonalTailFArc2K tailAngle t] : list - [Math.sin (t * tailAngle)] / [Math.sin tailAngle] - (1 - [Math.cos (t * tailAngle)]) / (1 - [Math.cos tailAngle]) - begin t - - glyph-block-export DiagonalTailR - define [DiagonalTailR df cx cy depth sw] : begin - define rInY : DiagonalTailInnerRadius - return : list - curl cx (cy + sw + rInY) - arcvh 8 - DiagonalTailF (+1) df cx cy rInY DiagTailDefaultAngle depth sw + glyph-block-export DiagTail + define DiagTail : namespace - glyph-block-export DiagonalTailL - define [DiagonalTailL df cx cy depth sw] : begin - define rInY : DiagonalTailInnerRadius - return : list - curl cx (cy + sw + rInY) - arcvh 8 - DiagonalTailF (-1) df cx cy rInY DiagTailDefaultAngle depth sw + export : define DefaultAngle 40 + + export : define [StdDepth df sw] : Math.max (0.5 * sw) + df.div * para.unitWidthScalar * [Math.hypot HookX Hook] - 0.25 * sw + + export : define [DefaultInnerRadius] : Math.max (XH / 32) (0.5 * [AdviceStroke2 24 32 XH]) + + define [FineSw sw] : begin + define mocFine : [AdviceStroke 3] / Stroke * sw + return : mocFine / [mix 1 HVContrast 0.375] + + define DiagTailSuperness DesignParameters.superness + + export : define [F sign cx cy rIn angle depth sw] : begin + define tailAngle : angle / 180 * Math.PI + define {cosAngle sinAngle} : superEllipse tailAngle + define {dCosAngle dSinAngle} : superEllipseDerivative tailAngle + + define fine : FineSw sw + define r : rIn + 0.5 * fine + define dxTurn : [HSwToV : 0.5 * sw] + rIn + 0.5 * sign * TanSlope * fine + define dxTailStart : dxTurn + sinAngle * (r * [mix 1 HVContrast sinAngle]) + define dyTailStart : (rIn + fine) - cosAngle * r + define dxDepth : (depth - 0.25 * sw) * +dSinAngle + define dyDepth : (depth - 0.25 * sw) * -dCosAngle + return : list + g4.[if (sign > 0) "right" "left"].mid + cx + sign * dxTurn + cy + O + 0.5 * fine + widths.center fine + alsoThruThem : FArc tailAngle 4 + flat (cx + sign * dxTailStart) (cy + O + dyTailStart) [widths.center fine] + curl (cx + sign * (dxTailStart + dxDepth)) (cy + O + dyTailStart + dyDepth) + + define [superEllipse theta] : list + Math.pow [Math.cos theta] (2 / DiagTailSuperness) + Math.pow [Math.sin theta] (2 / DiagTailSuperness) + + define [superEllipseDerivative theta] : begin + local dc : (-2 / DiagTailSuperness) * [Math.sin theta] * [Math.pow [Math.cos theta] (2 / DiagTailSuperness - 1)] + local ds : (+2 / DiagTailSuperness) * [Math.cos theta] * [Math.pow [Math.sin theta] (2 / DiagTailSuperness - 1)] + local h : Math.hypot dc ds + return : list (dc / h) (ds / h) + + define [FArc tailAngle n] : begin + local results {} + foreach i [range 1 n] : begin + local t : i / n + local {tc ts} : superEllipse (t * tailAngle) + local {ec es} : superEllipse tailAngle + results.push : list (ts / es) ((1 - tc) / (1 - ec)) + return results + + export : define [R cx cy depth sw] : begin + define rInY : DefaultInnerRadius + return : list + curl cx (cy + [FineSw sw] + rInY) + arcvh 8 DiagTailSuperness + F (+1) cx cy rInY DefaultAngle depth sw + + export : define [L cx cy depth sw] : begin + define rInY : DefaultInnerRadius + return : list + curl cx (cy + [FineSw sw] + rInY) + arcvh 8 DiagTailSuperness + F (-1) cx cy rInY DefaultAngle depth sw define [JutIn left right jut swRef hSplit] : begin local ink : HSwToV swRef @@ -788,7 +792,7 @@ glyph-block Letter-Shared-Shapes : begin widths.lhs fine flat ztop.x ztop.y [heading Downward] curl xb [mix (zbot.y + LongJut) ztop.y 0.25] - alsoThruThem {{0.5 0.94}} + alsoThruThem {{0.2 0.76} {0.3 0.85} {0.5 0.94}} straight.left.end zbot.x (zbot.y + fine) [heading Leftward] glyph-block-export UpwardHookShape diff --git a/font-src/glyphs/marks/above.ptl b/font-src/glyphs/marks/above.ptl index ced85522c5..830d6cfa89 100644 --- a/font-src/glyphs/marks/above.ptl +++ b/font-src/glyphs/marks/above.ptl @@ -837,7 +837,7 @@ glyph-block Mark-Above : begin turned 'greaterAbove' 0x350 'lessAbove' markMiddle aboveMarkMid - create-glyph 'upArrowHeadAbove' 0xE002 : glyph-proc + create-glyph 'upArrowHeadAbove' : glyph-proc set-width 0 include : StdAnchors.medium @@ -854,7 +854,7 @@ glyph-block Mark-Above : begin flat (markMiddle + markExtend) bot curl markMiddle top [widths.center.heading (markFine * exp) Upward] - turned 'downArrowHeadAbove' 0xE003 'upArrowHeadAbove' markMiddle aboveMarkMid + turned 'downArrowHeadAbove' null 'upArrowHeadAbove' markMiddle aboveMarkMid define [ArrowheadForArrowMarkAbove-Up] : new-glyph : glyph-proc local fine : [AdviceStroke 6] / 2 @@ -1061,6 +1061,36 @@ glyph-block Mark-Above : begin include : FlipAround markMiddle [mix aboveMarkTop aboveMarkBot 0.5] include : StdAnchors.wide + create-glyph 'breveMacronAbove' 0x1DCB : glyph-proc + set-width 0 + include : StdAnchors.wide + + local sw : [AdviceStroke 3.5] / Stroke * markStroke + local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 + + include : dispiro + g4.down.start (markMiddle - extend) aboveMarkTop [widths.center.heading sw Downward] + arcvh + g4.right.mid [mix markMiddle (markMiddle - extend) 0.5] (aboveMarkBot + 0.5 * sw) [heading Rightward] + archv + g4.up.end markMiddle aboveMarkTop [heading Upward] + include : HBar.t markMiddle (markMiddle + extend + 0.5 * markStress) aboveMarkTop sw + + create-glyph 'macronBreveAbove' 0x1DCC : glyph-proc + set-width 0 + include : StdAnchors.wide + + local sw : [AdviceStroke 3.5] / Stroke * markStroke + local extend : (aboveMarkTop - aboveMarkBot - 0.5 * markStroke) * 1.25 + + include : HBar.t (markMiddle - extend - 0.5 * markStress) markMiddle aboveMarkTop sw + include : dispiro + g4.down.start markMiddle aboveMarkTop [widths.center.heading sw Downward] + arcvh + g4.right.mid [mix markMiddle (markMiddle + extend) 0.5] (aboveMarkBot + 0.5 * sw) [heading Rightward] + archv + g4.up.end (markMiddle + extend) aboveMarkTop [heading Upward] + create-glyph 'plusAbove' 0x1AC8 : glyph-proc set-width 0 include : StdAnchors.mediumWide diff --git a/font-src/glyphs/marks/below.ptl b/font-src/glyphs/marks/below.ptl index fc2d9d1c56..2ec1caa20d 100644 --- a/font-src/glyphs/marks/below.ptl +++ b/font-src/glyphs/marks/below.ptl @@ -214,8 +214,8 @@ glyph-block Mark-Below : begin TurnAboveMarkToBelow 'elipsisBelow' 0x20E8 'elipsisAbove' TurnAboveMarkToBelow 'leftArrowBelow' 0x20EE 'rightArrowAbove' TurnAboveMarkToBelow 'rightArrowBelow' 0x20EF 'leftArrowAbove' - TurnAboveMarkToBelow 'upArrowHeadBelow' 0xE004 'downArrowHeadAbove' - TurnAboveMarkToBelow 'downArrowHeadBelow' 0xE005 'upArrowHeadAbove' + TurnAboveMarkToBelow 'upArrowHeadBelow' null 'downArrowHeadAbove' + TurnAboveMarkToBelow 'downArrowHeadBelow' null 'upArrowHeadAbove' TurnAboveMarkToBelow 'descenderBarBelow' null 'ascenderBarAbove' TurnAboveMarkToBelow 'sbRsbUnderlineBelow' null 'sbRsbOverlineAbove' diff --git a/font-src/glyphs/marks/overlay.ptl b/font-src/glyphs/marks/overlay.ptl index a43c361d3f..ac6f490ded 100644 --- a/font-src/glyphs/marks/overlay.ptl +++ b/font-src/glyphs/marks/overlay.ptl @@ -102,7 +102,7 @@ glyph-block Mark-Overlay : begin include : HOverlayBar (markMiddle - LongJut * 0.75) (markMiddle + LongJut * 0.75) (XH / 2 + 0.5 * gap) include : HOverlayBar (markMiddle - LongJut * 0.75) (markMiddle + LongJut * 0.75) (XH / 2 - 0.5 * gap) - create-glyph 'shortSlashOver' 0xE000 : glyph-proc + create-glyph 'shortSlashOver' : glyph-proc set-width 0 set-mark-anchor 'overlay' markMiddle (XH / 2) markMiddle (XH / 2) include : FlatSlashShape markMiddle (XH / 2) (0.5 * OverlayStroke) diff --git a/font-src/glyphs/space/index.ptl b/font-src/glyphs/space/index.ptl index 3fc15fda73..da1fff0337 100644 --- a/font-src/glyphs/space/index.ptl +++ b/font-src/glyphs/space/index.ptl @@ -39,6 +39,8 @@ glyph-block Spaces : begin set-width 0 alias 'nonmarkingreturn' 0x000D 'zwsp' + alias 'lineSeparator' 0x2028 'zwsp' + alias 'paragraphSeparator' 0x2029 'zwsp' alias 'wj' 0x2060 'zwsp' alias 'funcApp' 0x2061 'zwsp' alias 'invisibleTimes' 0x2062 'zwsp' diff --git a/font-src/glyphs/symbol/geometric/stars.ptl b/font-src/glyphs/symbol/geometric/stars.ptl index 3c1e04d212..b3b47afb61 100644 --- a/font-src/glyphs/symbol/geometric/stars.ptl +++ b/font-src/glyphs/symbol/geometric/stars.ptl @@ -100,3 +100,75 @@ glyph-block Symbol-Geometric-Stars : for-width-kinds WideWidth1 Geom.MidX + Geom.Size * mag * [Math.sin (-angle)] Geom.MidY + Geom.Size * mag * [Math.cos (-angle)] widths.center sw + + # Dingbat + create-glyph [MangleName "crystalFlower"] [MangleUnicode 0xEF10] : glyph-proc + set-width Geom.Width + + define [createPetals] : with-params [fnSelect fill kSw rotate expansion sw size] : glyph-proc + local sizeIn : size * 0.45 + local sizeExt : size * 1.0 - O + foreach [j : range 0 6] : if [fnSelect j] : begin + local anglePre : 2 * Math.PI * ((j - expansion + rotate) / 6) + local angle : 2 * Math.PI * ((j + rotate) / 6) + local anglePost : 2 * Math.PI * ((j + expansion + rotate) / 6) + + local z1x : sizeIn * [Math.cos anglePre] + local z1y : sizeIn * [Math.sin anglePre] + local z2x : sizeExt * [Math.cos angle] + local z2y : sizeExt * [Math.sin angle] + local z3x : sizeIn * [Math.cos anglePost] + local z3y : sizeIn * [Math.sin anglePost] + + local outline : spiro-outline + corner 0 0 + corner z3x z3y + corner z2x z2y + corner z1x z1y + + if fill + : then : include outline + : else : include : intersection outline : union + ExtLineLhs 1 (kSw * sw) 0 0 z1x z1y + ExtLineLhs 1 sw z1x z1y z2x z2y + ExtLineLhs 1 sw z2x z2y z3x z3y + ExtLineLhs 1 (kSw * sw) z3x z3y 0 0 + + define [makeOverlay gap shape] : glyph-proc + foreach [j : range 0 6] : begin + local angle : 2 * Math.PI * (j / 6) + local tx : gap * [Math.cos angle] + local ty : gap * [Math.sin angle] + include : with-transform [ApparentTranslate tx ty] shape + + local swOuter : AdviceStroke 10 [Math.sqrt Geom.Scalar] + local swInner : AdviceStroke 16 [Math.sqrt Geom.Scalar] + local gap : Math.min [AdviceStroke 12] (Geom.Size / 12) + include : union + createPetals + fnSelect -- [function x : x % 2 == 0] + rotate -- (-0.5) + expansion -- 0.6 + fill -- false + kSw -- 1 + sw -- swInner + size -- (0.625 * Geom.Size + swInner) + difference + createPetals + fnSelect -- [function x true] + rotate -- 0 + expansion -- 0.5 + fill -- false + kSw -- 0.5 + sw -- swOuter + size -- Geom.Size + makeOverlay gap : createPetals + fnSelect -- [function x : x % 2 == 0] + rotate -- (-0.5) + expansion -- 0.6 + fill -- true + kSw -- 1 + sw -- (swInner + gap) + size -- (0.625 * Geom.Size + swInner) + + include : ApparentTranslate Geom.MidX Geom.MidY diff --git a/font-src/glyphs/symbol/letter.ptl b/font-src/glyphs/symbol/letter.ptl index fcd7e3d3be..2126b4e9e0 100644 --- a/font-src/glyphs/symbol/letter.ptl +++ b/font-src/glyphs/symbol/letter.ptl @@ -72,7 +72,7 @@ glyph-block Symbol-Currency-Letter-Derived : begin derive-composites 'currency/wonSign' 0x20A9 'W' 'currency/overlay/W' - derive-composites 'currency/dongSign' 0x20AB 'dcroat' 'sbRsbUnderlineBelow' + derive-composites 'currency/dongSign' 0x20AB 'dStroke' 'sbRsbUnderlineBelow' derive-composites 'currency/kipSign' 0x20AD 'K' 'hStrike' create-glyph 'currency/tugrikOverride' : glyph-proc @@ -90,6 +90,8 @@ glyph-block Symbol-Currency-Letter-Derived : begin derive-composites 'currency/guaraniSign' 0x20B2 'G' 'longVStrokeOver' derive-composites 'currency/cediSign' 0x20B5 'C' 'longVStrokeOver' + derive-composites 'currency/somSign' 0x20C0 'cyrl/es' 'sbRsbUnderlineBelow' + glyph-block Symbol-Letter : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives diff --git a/font-src/glyphs/symbol/punctuation/ellipsis.ptl b/font-src/glyphs/symbol/punctuation/ellipsis.ptl index 18df5d8ad5..af2210586a 100644 --- a/font-src/glyphs/symbol/punctuation/ellipsis.ptl +++ b/font-src/glyphs/symbol/punctuation/ellipsis.ptl @@ -9,6 +9,7 @@ glyph-block Symbol-Punctuation-Ellipsis : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-export EllipsisDotRadius define [EllipsisDotRadius nDots space] : begin return : 0.5 * [AdviceStroke (nDots + 1.5) (space / Width)] * PeriodSize / Stroke diff --git a/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl b/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl index 95d2aac209..4a261eff5c 100644 --- a/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl +++ b/font-src/glyphs/symbol/punctuation/quotes-and-primes.ptl @@ -232,4 +232,8 @@ glyph-block Symbol-Punctuation-Quotes-And-Primes : begin g4.down.mid (Middle - height / 4 + O) [mix quoteBottom quoteTop 0.5] [widths.lhs.heading [AdviceStroke 3.5] Downward] arcvh g4.right.end (Middle + height / 4) (quoteBottom + O) [widths.lhs.heading [AdviceStroke 3] Rightward] + turned 'modifierLetterRightHalfRing' 0x2BE 'modifierLetterLeftHalfRing' Middle [mix quoteBottom quoteTop 0.5] + + derive-composites 'hypodiastole' 0x2E12 'modifierLetterRightHalfRing' + ApparentTranslate 0 ([mix [mix [mix PeriodSize commaLow 0.5] yCurlyQuotes 0.5] quoteBottom (-1)] - quoteTop) diff --git a/font-src/glyphs/symbol/punctuation/small.ptl b/font-src/glyphs/symbol/punctuation/small.ptl index 66d227022e..98e26974a2 100644 --- a/font-src/glyphs/symbol/punctuation/small.ptl +++ b/font-src/glyphs/symbol/punctuation/small.ptl @@ -9,6 +9,7 @@ glyph-module glyph-block Symbol-Punctuation-Small : begin glyph-block-import CommonShapes glyph-block-import Common-Derivatives + glyph-block-import Symbol-Punctuation-Ellipsis EllipsisDotRadius foreach { suffix { DrawAt kDotRadius overshoot } } [Object.entries DotVariants] : do create-glyph "period.\(suffix)" : glyph-proc @@ -206,6 +207,27 @@ glyph-block Symbol-Punctuation-Small : begin include : with-transform [ApparentTranslate (-multiDotShift) 0] : composite-proc refer-glyph "halfXhSmallPeriod.\(suffix)" + create-glyph "geor/paragraphSeparator.\(suffix)" : glyph-proc + include : with-transform [ApparentTranslate (+multiDotShift) 0] : composite-proc + refer-glyph "halfXhSmallPeriod.\(suffix)" + include : with-transform [ApparentTranslate (-multiDotShift) 0] : composite-proc + refer-glyph "smallPeriod.\(suffix)" + refer-glyph "xhSmallPeriod.\(suffix)" + + create-glyph "twoDotOverOneDotPunct.\(suffix)" : glyph-proc + include [refer-glyph "smallPeriod.\(suffix)"] + include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc + refer-glyph "xhSmallPeriod.\(suffix)" + include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc + refer-glyph "xhSmallPeriod.\(suffix)" + + create-glyph "oneDotOverTwoDotPunct.\(suffix)" : glyph-proc + include [refer-glyph "xhSmallPeriod.\(suffix)"] + include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc + refer-glyph "smallPeriod.\(suffix)" + include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc + refer-glyph "smallPeriod.\(suffix)" + create-glyph "fourDotPunct.\(suffix)" : glyph-proc include [refer-glyph "smallPeriod.\(suffix)"] include [refer-glyph "xhSmallPeriod.\(suffix)"] @@ -222,15 +244,29 @@ glyph-block Symbol-Punctuation-Small : begin include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc refer-glyph "halfCapSmallPeriod.\(suffix)" - create-glyph "fiveDotPunct.\(suffix)" : glyph-proc + create-glyph "squareFourDotPunct.\(suffix)" : glyph-proc include : with-transform [ApparentTranslate (-multiDotShiftDense) 0] : composite-proc refer-glyph "smallPeriod.\(suffix)" refer-glyph "xhSmallPeriod.\(suffix)" include : with-transform [ApparentTranslate (+multiDotShiftDense) 0] : composite-proc refer-glyph "smallPeriod.\(suffix)" refer-glyph "xhSmallPeriod.\(suffix)" + + create-glyph "fiveDotPunct.\(suffix)" : glyph-proc + include : refer-glyph "squareFourDotPunct.\(suffix)" include : refer-glyph "halfXhSmallPeriod.\(suffix)" + create-glyph "fiveDotMark.\(suffix)" : glyph-proc + local l : mix SB 0 0.5 + local r : mix RightSB Width 0.5 + local radius : EllipsisDotRadius 3 [Math.min XH (r - l)] + include : DrawAt Middle radius (kDotRadius * radius - overshoot) + include : DrawAt Middle (XH / 2) (kDotRadius * radius - overshoot) + include : DrawAt Middle (XH - radius) (kDotRadius * radius - overshoot) + + include : DrawAt (l + radius) (XH / 2) (kDotRadius * radius - overshoot) + include : DrawAt (r - radius) (XH / 2) (kDotRadius * radius - overshoot) + create-glyph "dottedCross.\(suffix)" : glyph-proc include : HBar.m [mix 0 SB 0.5] [mix Width RightSB 0.5] (XH / 2) OperatorStroke include : VBar.m Middle 0 XH OperatorStroke @@ -246,13 +282,23 @@ glyph-block Symbol-Punctuation-Small : begin select-variant 'modifierLetterRaisedColon' 0x2F8 (follow -- 'punctuationDot') select-variant 'semicolon' ';' (follow -- 'punctuationDot') select-variant 'invertSemicolon' 0x204F (follow -- 'punctuationDot') + select-variant 'threeDotPunct' 0x2056 (follow -- 'punctuationDot') + select-variant 'geor/paragraphSeparator' 0x10FB (follow -- 'punctuationDot') + select-variant 'twoDotOverOneDotPunct' 0x2E2A (follow -- 'punctuationDot') + select-variant 'oneDotOverTwoDotPunct' 0x2E2B (follow -- 'punctuationDot') + select-variant 'fourDotPunct' 0x2058 (follow -- 'punctuationDot') + select-variant 'squareFourDotPunct' 0x2E2C (follow -- 'punctuationDot') select-variant 'fiveDotPunct' 0x2059 (follow -- 'punctuationDot') + select-variant 'fiveDotMark' 0x2E2D (follow -- 'punctuationDot') + select-variant 'capColon' 0x205A (follow -- 'punctuationDot') select-variant 'capFourDotPunct' 0x205B (follow -- 'punctuationDot') + select-variant 'dottedCross' 0x205C (follow -- 'punctuationDot') - alias 'greekquestion' 0x37E 'semicolon' + + alias 'grek/question' 0x37E 'semicolon' turned 'turnSemiColon' 0x2E35 'semicolon' [DivFrame para.diversityF].middle (XH / 2) diff --git a/font-src/meta/aesthetics.ptl b/font-src/meta/aesthetics.ptl index aa6f7ef5e3..726b251c27 100644 --- a/font-src/meta/aesthetics.ptl +++ b/font-src/meta/aesthetics.ptl @@ -456,15 +456,16 @@ export : define [GenDivFrame metrics] : begin local divisions : fallback _divisions this.hPack local keeps : fallback _keeps 2 - return : this.sliceFine divisions keeps ((keeps - 1) / (divisions - 1)) o + return : this.sliceFine divisions keeps ((keeps - 1) / (divisions - 1)) 0 o - public [sliceFine strokes keeps pGaps _o] : begin + public [sliceFine strokes keeps pGap _extraGap _o] : begin local o : fallback _o 0 + local extraGap : fallback _extraGap 0 local oneStroke : metrics.HVContrast * this.mvs local totalGap : this.rightSB - this.leftSB - strokes * oneStroke - 2 * o - local subDfWidth : 2 * this.leftSB + 2 * o + totalGap * pGaps + oneStroke * keeps + local subDfWidth : 2 * this.leftSB + 2 * o + totalGap * pGap + extraGap + oneStroke * keeps local subDfDiv : subDfWidth / metrics.Width return : new CDivFrame subDfDiv keeps (this.leftSB / metrics.SB) this.mvs o diff --git a/font-src/otl/index.ptl b/font-src/otl/index.ptl index 2ce8866837..155528f9a6 100644 --- a/font-src/otl/index.ptl +++ b/font-src/otl/index.ptl @@ -73,7 +73,7 @@ define [buildGSUB para glyphStore markGlyphs] : begin buildLOCL gsub para glyphStore # TXTR, "texture" feature - if (para.buildTexture && !para.isQuasiProportional) : begin + if (para.buildTextureFeature && !para.isQuasiProportional) : begin buildGsubTexture gsub glyphStore markGlyphs cvs gsub.finalize diff --git a/font-src/support/geometry/spiro-control.mjs b/font-src/support/geometry/spiro-control.mjs index ca5ca30814..55e3f79f8e 100644 --- a/font-src/support/geometry/spiro-control.mjs +++ b/font-src/support/geometry/spiro-control.mjs @@ -32,7 +32,7 @@ export class BiKnotCollector { this.controls.push(c); this.needsUnwrap = true; } else { - throw new Error("Invalid spiro control type"); + throw new Error("Invalid spiro control type " + String(c)); } } unwrap() { diff --git a/font-src/support/gr.mjs b/font-src/support/gr.mjs index 608916478a..d492bdf52a 100644 --- a/font-src/support/gr.mjs +++ b/font-src/support/gr.mjs @@ -78,6 +78,9 @@ function DecompositionProp(key) { if (!Array.isArray(composition)) throw new Error("Must supply a GID array"); if (!glyph.related) glyph.related = {}; glyph.related[key] = composition; + }, + amendOtName(baseName, index) { + return `${baseName}.d${index}`; } }; } diff --git a/font-src/support/parameters.mjs b/font-src/support/parameters.mjs index be1e7092d7..bfd1c79904 100644 --- a/font-src/support/parameters.mjs +++ b/font-src/support/parameters.mjs @@ -11,7 +11,7 @@ export function init(data, argv) { applyAlternatesParam(argv, para, data, "slope", "slope"); if (argv.featureControl.noCvSs) para.enableCvSs = false; if (argv.featureControl.noLigation) para.enableLigation = false; - if (argv.featureControl.buildTexture) para.buildTexture = true; + if (argv.featureControl.buildTextureFeature) para.buildTextureFeature = true; return para; } function applyBlendingParam(argv, para, data, key, keyArgv) { diff --git a/font-src/support/util/mask-bit.mjs b/font-src/support/util/mask-bit.mjs index ba517c0f08..5d34996855 100644 --- a/font-src/support/util/mask-bit.mjs +++ b/font-src/support/util/mask-bit.mjs @@ -4,6 +4,9 @@ export function maskBit(x, y) { export function maskBits(x, y) { return x & y; } +export function maskOffBits(x, y) { + return x & ~y; +} export function bitOr(...xs) { let x = 0; for (const a of xs) x |= a; diff --git a/images/button-release.dark.svg b/images/button-release.dark.svg index ee8d148afc..608de677c9 100644 --- a/images/button-release.dark.svg +++ b/images/button-release.dark.svg @@ -1,5 +1,5 @@ - + @@ -7,12 +7,15 @@ - + - - + + + + + - + @@ -21,12 +24,20 @@ - + - + + + + + + + + + \ No newline at end of file diff --git a/images/button-release.light.svg b/images/button-release.light.svg index 3cf0cbd437..4afaeaaf8c 100644 --- a/images/button-release.light.svg +++ b/images/button-release.light.svg @@ -1,5 +1,5 @@ - + @@ -7,12 +7,15 @@ - + - - + + + + + - + @@ -21,12 +24,20 @@ - + - + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-combining-diacritical-marks-supplement.dark.svg b/images/cs-block-combining-diacritical-marks-supplement.dark.svg index 4c586c9f8e..fa96aa844f 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.dark.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.dark.svg @@ -26,48 +26,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -173,11 +176,17 @@ - - + + - - + + + + + + + + @@ -186,13 +195,13 @@ - + - + @@ -211,20 +220,23 @@ - - + + + + + - + - + @@ -233,55 +245,55 @@ - + - + - + - + - + - + - + - + - + @@ -295,97 +307,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -399,37 +411,37 @@ - + - + - + - + - + - + @@ -441,19 +453,19 @@ - + - + - + @@ -462,24 +474,24 @@ - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-combining-diacritical-marks-supplement.light.svg b/images/cs-block-combining-diacritical-marks-supplement.light.svg index ffa07f4ca0..9705d8c4f0 100644 --- a/images/cs-block-combining-diacritical-marks-supplement.light.svg +++ b/images/cs-block-combining-diacritical-marks-supplement.light.svg @@ -26,48 +26,51 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -173,11 +176,17 @@ - - + + - - + + + + + + + + @@ -186,13 +195,13 @@ - + - + @@ -211,20 +220,23 @@ - - + + + + + - + - + @@ -233,55 +245,55 @@ - + - + - + - + - + - + - + - + - + @@ -295,97 +307,97 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -399,37 +411,37 @@ - + - + - + - + - + - + @@ -441,19 +453,19 @@ - + - + - + @@ -462,24 +474,24 @@ - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-currency-symbols.dark.svg b/images/cs-block-currency-symbols.dark.svg index 12bf0800ae..2f6822c674 100644 --- a/images/cs-block-currency-symbols.dark.svg +++ b/images/cs-block-currency-symbols.dark.svg @@ -42,7 +42,7 @@ - + diff --git a/images/cs-block-currency-symbols.light.svg b/images/cs-block-currency-symbols.light.svg index 3d475b38ab..fb8e404105 100644 --- a/images/cs-block-currency-symbols.light.svg +++ b/images/cs-block-currency-symbols.light.svg @@ -42,7 +42,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.dark.svg b/images/cs-block-cyrillic-extended-a.dark.svg index 17774fe350..64d7e43781 100644 --- a/images/cs-block-cyrillic-extended-a.dark.svg +++ b/images/cs-block-cyrillic-extended-a.dark.svg @@ -27,7 +27,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-a.light.svg b/images/cs-block-cyrillic-extended-a.light.svg index 57a40a81e1..cf0a0b81c0 100644 --- a/images/cs-block-cyrillic-extended-a.light.svg +++ b/images/cs-block-cyrillic-extended-a.light.svg @@ -27,7 +27,7 @@ - + diff --git a/images/cs-block-cyrillic-extended-b.dark.svg b/images/cs-block-cyrillic-extended-b.dark.svg index 44740c7fc7..e8e7a42094 100644 --- a/images/cs-block-cyrillic-extended-b.dark.svg +++ b/images/cs-block-cyrillic-extended-b.dark.svg @@ -55,8 +55,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-b.light.svg b/images/cs-block-cyrillic-extended-b.light.svg index 57498f8edb..24ffe78bde 100644 --- a/images/cs-block-cyrillic-extended-b.light.svg +++ b/images/cs-block-cyrillic-extended-b.light.svg @@ -55,8 +55,8 @@ - - + + diff --git a/images/cs-block-cyrillic-extended-d.dark.svg b/images/cs-block-cyrillic-extended-d.dark.svg index a51ef8b20c..fbe388c4d1 100644 --- a/images/cs-block-cyrillic-extended-d.dark.svg +++ b/images/cs-block-cyrillic-extended-d.dark.svg @@ -29,7 +29,7 @@ - + @@ -62,13 +62,13 @@ - + - + diff --git a/images/cs-block-cyrillic-extended-d.light.svg b/images/cs-block-cyrillic-extended-d.light.svg index e58e2c4f43..45329e92bc 100644 --- a/images/cs-block-cyrillic-extended-d.light.svg +++ b/images/cs-block-cyrillic-extended-d.light.svg @@ -29,7 +29,7 @@ - + @@ -62,13 +62,13 @@ - + - + diff --git a/images/cs-block-cyrillic-extendedd.dark.svg b/images/cs-block-cyrillic-extendedd.dark.svg deleted file mode 100644 index a51ef8b20c..0000000000 --- a/images/cs-block-cyrillic-extendedd.dark.svg +++ /dev/null @@ -1,481 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-cyrillic-extendedd.light.svg b/images/cs-block-cyrillic-extendedd.light.svg deleted file mode 100644 index e58e2c4f43..0000000000 --- a/images/cs-block-cyrillic-extendedd.light.svg +++ /dev/null @@ -1,481 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-cyrillic-supplement.dark.svg b/images/cs-block-cyrillic-supplement.dark.svg index 061b19dc21..5b8b96ff40 100644 --- a/images/cs-block-cyrillic-supplement.dark.svg +++ b/images/cs-block-cyrillic-supplement.dark.svg @@ -27,8 +27,8 @@ - - + + @@ -37,31 +37,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -187,41 +192,41 @@ - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -232,51 +237,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-cyrillic-supplement.light.svg b/images/cs-block-cyrillic-supplement.light.svg index 4050f6d6e8..428d2e7b67 100644 --- a/images/cs-block-cyrillic-supplement.light.svg +++ b/images/cs-block-cyrillic-supplement.light.svg @@ -27,8 +27,8 @@ - - + + @@ -37,31 +37,36 @@ - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -187,41 +192,41 @@ - + - - + + - - + + - - + + - - + + - - + + - + - + - + - + - + - + @@ -232,51 +237,51 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + \ No newline at end of file diff --git a/images/cs-block-cyrillic.dark.svg b/images/cs-block-cyrillic.dark.svg index 13c46a4e5d..f40f3c7368 100644 --- a/images/cs-block-cyrillic.dark.svg +++ b/images/cs-block-cyrillic.dark.svg @@ -28,7 +28,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -215,8 +215,8 @@ - - + + diff --git a/images/cs-block-cyrillic.light.svg b/images/cs-block-cyrillic.light.svg index 91b8775f78..b70cf0131f 100644 --- a/images/cs-block-cyrillic.light.svg +++ b/images/cs-block-cyrillic.light.svg @@ -28,7 +28,7 @@ - + @@ -46,7 +46,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -108,7 +108,7 @@ - + @@ -215,8 +215,8 @@ - - + + diff --git a/images/cs-block-enclosed-alphanumeric-supplement.dark.svg b/images/cs-block-enclosed-alphanumeric-supplement.dark.svg index b973519e61..834fec568b 100644 --- a/images/cs-block-enclosed-alphanumeric-supplement.dark.svg +++ b/images/cs-block-enclosed-alphanumeric-supplement.dark.svg @@ -90,7 +90,7 @@ - + diff --git a/images/cs-block-enclosed-alphanumeric-supplement.light.svg b/images/cs-block-enclosed-alphanumeric-supplement.light.svg index ac36304c31..fadcbc1ac7 100644 --- a/images/cs-block-enclosed-alphanumeric-supplement.light.svg +++ b/images/cs-block-enclosed-alphanumeric-supplement.light.svg @@ -90,7 +90,7 @@ - + diff --git a/images/cs-block-enclosed-alphanumerics.dark.svg b/images/cs-block-enclosed-alphanumerics.dark.svg index f0cc0c3531..b349f1be87 100644 --- a/images/cs-block-enclosed-alphanumerics.dark.svg +++ b/images/cs-block-enclosed-alphanumerics.dark.svg @@ -128,7 +128,7 @@ - + diff --git a/images/cs-block-enclosed-alphanumerics.light.svg b/images/cs-block-enclosed-alphanumerics.light.svg index 11568c6f0e..0cb556953b 100644 --- a/images/cs-block-enclosed-alphanumerics.light.svg +++ b/images/cs-block-enclosed-alphanumerics.light.svg @@ -128,7 +128,7 @@ - + diff --git a/images/cs-block-general-punctuation.dark.svg b/images/cs-block-general-punctuation.dark.svg index d98c4095fa..2668a1031f 100644 --- a/images/cs-block-general-punctuation.dark.svg +++ b/images/cs-block-general-punctuation.dark.svg @@ -252,12 +252,8 @@ - - - - - - + + diff --git a/images/cs-block-general-punctuation.light.svg b/images/cs-block-general-punctuation.light.svg index f9ef3a8f48..673ef143d2 100644 --- a/images/cs-block-general-punctuation.light.svg +++ b/images/cs-block-general-punctuation.light.svg @@ -252,12 +252,8 @@ - - - - - - + + diff --git a/images/cs-block-georgian.dark.svg b/images/cs-block-georgian.dark.svg new file mode 100644 index 0000000000..42da4eaf14 --- /dev/null +++ b/images/cs-block-georgian.dark.svg @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-georgian.light.svg b/images/cs-block-georgian.light.svg new file mode 100644 index 0000000000..9bf1b1225f --- /dev/null +++ b/images/cs-block-georgian.light.svg @@ -0,0 +1,409 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-latin-extendedf.dark.svg b/images/cs-block-latin-extendedf.dark.svg deleted file mode 100644 index df3857054d..0000000000 --- a/images/cs-block-latin-extendedf.dark.svg +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-latin-extendedf.light.svg b/images/cs-block-latin-extendedf.light.svg deleted file mode 100644 index 0dc59adc07..0000000000 --- a/images/cs-block-latin-extendedf.light.svg +++ /dev/null @@ -1,357 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-latin-extendedg.dark.svg b/images/cs-block-latin-extendedg.dark.svg deleted file mode 100644 index e6619ff866..0000000000 --- a/images/cs-block-latin-extendedg.dark.svg +++ /dev/null @@ -1,998 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-latin-extendedg.light.svg b/images/cs-block-latin-extendedg.light.svg deleted file mode 100644 index 826804221c..0000000000 --- a/images/cs-block-latin-extendedg.light.svg +++ /dev/null @@ -1,998 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-number-forms.dark.svg b/images/cs-block-number-forms.dark.svg index ae133743a8..56595d999a 100644 --- a/images/cs-block-number-forms.dark.svg +++ b/images/cs-block-number-forms.dark.svg @@ -43,10 +43,10 @@ - + - - + + @@ -62,7 +62,7 @@ - + diff --git a/images/cs-block-number-forms.light.svg b/images/cs-block-number-forms.light.svg index b6ad220afd..0faf3ea47a 100644 --- a/images/cs-block-number-forms.light.svg +++ b/images/cs-block-number-forms.light.svg @@ -43,10 +43,10 @@ - + - - + + @@ -62,7 +62,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.dark.svg b/images/cs-block-phonetic-extensions.dark.svg index 42c958de69..2141cf75c4 100644 --- a/images/cs-block-phonetic-extensions.dark.svg +++ b/images/cs-block-phonetic-extensions.dark.svg @@ -61,7 +61,7 @@ - + diff --git a/images/cs-block-phonetic-extensions.light.svg b/images/cs-block-phonetic-extensions.light.svg index 456abff83b..b17fa9a6c6 100644 --- a/images/cs-block-phonetic-extensions.light.svg +++ b/images/cs-block-phonetic-extensions.light.svg @@ -61,7 +61,7 @@ - + diff --git a/images/cs-block-private-use-area-iosevka-private-dingbats.dark.svg b/images/cs-block-private-use-area-iosevka-private-dingbats.dark.svg new file mode 100644 index 0000000000..3c1df06a4e --- /dev/null +++ b/images/cs-block-private-use-area-iosevka-private-dingbats.dark.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-private-use-area-iosevka-private-dingbats.light.svg b/images/cs-block-private-use-area-iosevka-private-dingbats.light.svg new file mode 100644 index 0000000000..d2e627e729 --- /dev/null +++ b/images/cs-block-private-use-area-iosevka-private-dingbats.light.svg @@ -0,0 +1,129 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/images/cs-block-private-use-area-progress-bar.dark.svg b/images/cs-block-private-use-area-progress-bar.dark.svg index 908b9989f4..c77edcb50f 100644 --- a/images/cs-block-private-use-area-progress-bar.dark.svg +++ b/images/cs-block-private-use-area-progress-bar.dark.svg @@ -1,5 +1,5 @@ - + @@ -137,172 +137,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-private-use-area-progress-bar.light.svg b/images/cs-block-private-use-area-progress-bar.light.svg index 665ed86127..98947e6c03 100644 --- a/images/cs-block-private-use-area-progress-bar.light.svg +++ b/images/cs-block-private-use-area-progress-bar.light.svg @@ -1,5 +1,5 @@ - + @@ -137,172 +137,4 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/images/cs-block-superscripts-and-subscripts.dark.svg b/images/cs-block-superscripts-and-subscripts.dark.svg index 016ad31d67..673b8b4f49 100644 --- a/images/cs-block-superscripts-and-subscripts.dark.svg +++ b/images/cs-block-superscripts-and-subscripts.dark.svg @@ -52,7 +52,7 @@ - + diff --git a/images/cs-block-superscripts-and-subscripts.light.svg b/images/cs-block-superscripts-and-subscripts.light.svg index 9708edcdba..f9018dd430 100644 --- a/images/cs-block-superscripts-and-subscripts.light.svg +++ b/images/cs-block-superscripts-and-subscripts.light.svg @@ -52,7 +52,7 @@ - + diff --git a/images/cs-block-supplemental-punctuation.dark.svg b/images/cs-block-supplemental-punctuation.dark.svg index 8062876638..67c0a0af0c 100644 --- a/images/cs-block-supplemental-punctuation.dark.svg +++ b/images/cs-block-supplemental-punctuation.dark.svg @@ -20,35 +20,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -139,8 +145,8 @@ - - + + @@ -168,8 +174,8 @@ - - + + @@ -187,16 +193,16 @@ - + - + - + @@ -205,10 +211,10 @@ - + - + @@ -219,22 +225,22 @@ - + - + - + - + - + - + @@ -243,28 +249,28 @@ - + - + - - + + - - + + - - + + - - + + - + - + @@ -275,31 +281,31 @@ - + - + - + - + - + - + - + - + - + @@ -331,13 +337,13 @@ - + - + - + @@ -364,7 +370,7 @@ - + @@ -393,7 +399,7 @@ - + diff --git a/images/cs-block-supplemental-punctuation.light.svg b/images/cs-block-supplemental-punctuation.light.svg index cde6387f4d..f09f290fa5 100644 --- a/images/cs-block-supplemental-punctuation.light.svg +++ b/images/cs-block-supplemental-punctuation.light.svg @@ -20,35 +20,41 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -139,8 +145,8 @@ - - + + @@ -168,8 +174,8 @@ - - + + @@ -187,16 +193,16 @@ - + - + - + @@ -205,10 +211,10 @@ - + - + @@ -219,22 +225,22 @@ - + - + - + - + - + - + @@ -243,28 +249,28 @@ - + - + - - + + - - + + - - + + - - + + - + - + @@ -275,31 +281,31 @@ - + - + - + - + - + - + - + - + - + @@ -331,13 +337,13 @@ - + - + - + @@ -364,7 +370,7 @@ - + @@ -393,7 +399,7 @@ - + diff --git a/images/cv-a-double-storey-hook-inward-serifed-serifed.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-serifed.dark.svg new file mode 100644 index 0000000000..4369b5882b --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-serifed.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-serifed.light.svg b/images/cv-a-double-storey-hook-inward-serifed-serifed.light.svg new file mode 100644 index 0000000000..f5f446a52f --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-serifed.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-serifless.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-serifless.dark.svg new file mode 100644 index 0000000000..cacef23879 --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-serifless.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-serifless.light.svg b/images/cv-a-double-storey-hook-inward-serifed-serifless.light.svg new file mode 100644 index 0000000000..0fc25d6d26 --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-serifless.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-tailed.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-tailed.dark.svg new file mode 100644 index 0000000000..154120fd3e --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-tailed.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-tailed.light.svg b/images/cv-a-double-storey-hook-inward-serifed-tailed.light.svg new file mode 100644 index 0000000000..6e311dd20b --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-tailed.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.dark.svg new file mode 100644 index 0000000000..0b3b12f21b --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.light.svg b/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.light.svg new file mode 100644 index 0000000000..bc0276ccca --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-toothless-corner.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.dark.svg b/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.dark.svg new file mode 100644 index 0000000000..c9a777a944 --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.dark.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.light.svg b/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.light.svg new file mode 100644 index 0000000000..f4e6e872c1 --- /dev/null +++ b/images/cv-a-double-storey-hook-inward-serifed-toothless-rounded.light.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/images/cv-capital-r-curly-motion-serifed.dark.svg b/images/cv-capital-r-curly-motion-serifed.dark.svg deleted file mode 100644 index 11a3ffcbb9..0000000000 --- a/images/cv-capital-r-curly-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-curly-motion-serifed.light.svg b/images/cv-capital-r-curly-motion-serifed.light.svg deleted file mode 100644 index 13fe35709a..0000000000 --- a/images/cv-capital-r-curly-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-curly-open-motion-serifed.dark.svg b/images/cv-capital-r-curly-open-motion-serifed.dark.svg deleted file mode 100644 index 1e092186f6..0000000000 --- a/images/cv-capital-r-curly-open-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-curly-open-motion-serifed.light.svg b/images/cv-capital-r-curly-open-motion-serifed.light.svg deleted file mode 100644 index 0b28dd6210..0000000000 --- a/images/cv-capital-r-curly-open-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-standing-motion-serifed.dark.svg b/images/cv-capital-r-standing-motion-serifed.dark.svg deleted file mode 100644 index a8d6e508fc..0000000000 --- a/images/cv-capital-r-standing-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-standing-motion-serifed.light.svg b/images/cv-capital-r-standing-motion-serifed.light.svg deleted file mode 100644 index c5ac9501c5..0000000000 --- a/images/cv-capital-r-standing-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-standing-open-motion-serifed.dark.svg b/images/cv-capital-r-standing-open-motion-serifed.dark.svg deleted file mode 100644 index fdb7ad4933..0000000000 --- a/images/cv-capital-r-standing-open-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-standing-open-motion-serifed.light.svg b/images/cv-capital-r-standing-open-motion-serifed.light.svg deleted file mode 100644 index 4e029cf268..0000000000 --- a/images/cv-capital-r-standing-open-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-straight-motion-serifed.dark.svg b/images/cv-capital-r-straight-motion-serifed.dark.svg deleted file mode 100644 index b1538781f3..0000000000 --- a/images/cv-capital-r-straight-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-straight-motion-serifed.light.svg b/images/cv-capital-r-straight-motion-serifed.light.svg deleted file mode 100644 index 641cdd39d4..0000000000 --- a/images/cv-capital-r-straight-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-straight-open-motion-serifed.dark.svg b/images/cv-capital-r-straight-open-motion-serifed.dark.svg deleted file mode 100644 index 46301f2ff5..0000000000 --- a/images/cv-capital-r-straight-open-motion-serifed.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-capital-r-straight-open-motion-serifed.light.svg b/images/cv-capital-r-straight-open-motion-serifed.light.svg deleted file mode 100644 index cdf34cec2a..0000000000 --- a/images/cv-capital-r-straight-open-motion-serifed.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-cyrl-el-straight.dark.svg b/images/cv-cyrl-el-straight.dark.svg index 17c9724a70..2689bc349b 100644 --- a/images/cv-cyrl-el-straight.dark.svg +++ b/images/cv-cyrl-el-straight.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-el-straight.light.svg b/images/cv-cyrl-el-straight.light.svg index 6752134507..0a58a000c4 100644 --- a/images/cv-cyrl-el-straight.light.svg +++ b/images/cv-cyrl-el-straight.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-el-tailed.dark.svg b/images/cv-cyrl-el-tailed.dark.svg index 8efac9eca7..2620332b01 100644 --- a/images/cv-cyrl-el-tailed.dark.svg +++ b/images/cv-cyrl-el-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-cyrl-el-tailed.light.svg b/images/cv-cyrl-el-tailed.light.svg index 901a73beeb..2500a48cd8 100644 --- a/images/cv-cyrl-el-tailed.light.svg +++ b/images/cv-cyrl-el-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-diagonal-tailed-crossbar-at-x-height.dark.svg b/images/cv-f-diagonal-tailed-crossbar-at-x-height.dark.svg index 8f348574cb..01dcf244eb 100644 --- a/images/cv-f-diagonal-tailed-crossbar-at-x-height.dark.svg +++ b/images/cv-f-diagonal-tailed-crossbar-at-x-height.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-diagonal-tailed-crossbar-at-x-height.light.svg b/images/cv-f-diagonal-tailed-crossbar-at-x-height.light.svg index e9af2e0f18..80386bbd55 100644 --- a/images/cv-f-diagonal-tailed-crossbar-at-x-height.light.svg +++ b/images/cv-f-diagonal-tailed-crossbar-at-x-height.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-diagonal-tailed.dark.svg b/images/cv-f-diagonal-tailed.dark.svg index 56e809c868..0c56e23204 100644 --- a/images/cv-f-diagonal-tailed.dark.svg +++ b/images/cv-f-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-diagonal-tailed.light.svg b/images/cv-f-diagonal-tailed.light.svg index 10d2e9690b..b03bd4a1fd 100644 --- a/images/cv-f-diagonal-tailed.light.svg +++ b/images/cv-f-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.dark.svg b/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.dark.svg index b39ae2a417..875eb3ec20 100644 --- a/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.dark.svg +++ b/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.light.svg b/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.light.svg index dd56f4106c..91903464a5 100644 --- a/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.light.svg +++ b/images/cv-f-flat-hook-diagonal-tailed-crossbar-at-x-height.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-flat-hook-diagonal-tailed.dark.svg b/images/cv-f-flat-hook-diagonal-tailed.dark.svg index 44e567b6dc..8523991019 100644 --- a/images/cv-f-flat-hook-diagonal-tailed.dark.svg +++ b/images/cv-f-flat-hook-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-f-flat-hook-diagonal-tailed.light.svg b/images/cv-f-flat-hook-diagonal-tailed.light.svg index 1c2892cf4e..dec8daffee 100644 --- a/images/cv-f-flat-hook-diagonal-tailed.light.svg +++ b/images/cv-f-flat-hook-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-five-oblique-upper-left-bar.dark.svg b/images/cv-five-oblique-upper-left-bar.dark.svg deleted file mode 100644 index 574ab30614..0000000000 --- a/images/cv-five-oblique-upper-left-bar.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-five-oblique-upper-left-bar.light.svg b/images/cv-five-oblique-upper-left-bar.light.svg deleted file mode 100644 index 84c3c18a33..0000000000 --- a/images/cv-five-oblique-upper-left-bar.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-five-vertical-upper-left-bar.dark.svg b/images/cv-five-vertical-upper-left-bar.dark.svg deleted file mode 100644 index 666a9d1616..0000000000 --- a/images/cv-five-vertical-upper-left-bar.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-five-vertical-upper-left-bar.light.svg b/images/cv-five-vertical-upper-left-bar.light.svg deleted file mode 100644 index 9b6eb72bdf..0000000000 --- a/images/cv-five-vertical-upper-left-bar.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-i-diagonal-tailed.dark.svg b/images/cv-i-diagonal-tailed.dark.svg index 1b757b6b87..aa91491248 100644 --- a/images/cv-i-diagonal-tailed.dark.svg +++ b/images/cv-i-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-diagonal-tailed.light.svg b/images/cv-i-diagonal-tailed.light.svg index e2f76b350c..3bfdf488e3 100644 --- a/images/cv-i-diagonal-tailed.light.svg +++ b/images/cv-i-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-serifed-diagonal-tailed.dark.svg b/images/cv-i-serifed-diagonal-tailed.dark.svg index a146ae02fb..b821aec0e3 100644 --- a/images/cv-i-serifed-diagonal-tailed.dark.svg +++ b/images/cv-i-serifed-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-i-serifed-diagonal-tailed.light.svg b/images/cv-i-serifed-diagonal-tailed.light.svg index 4c47d4e539..523bdaaba3 100644 --- a/images/cv-i-serifed-diagonal-tailed.light.svg +++ b/images/cv-i-serifed-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifed.dark.svg b/images/cv-j-diagonal-tailed-serifed.dark.svg index 37a60e01bc..920498c223 100644 --- a/images/cv-j-diagonal-tailed-serifed.dark.svg +++ b/images/cv-j-diagonal-tailed-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifed.light.svg b/images/cv-j-diagonal-tailed-serifed.light.svg index 75c9d2cbec..aaf3270e40 100644 --- a/images/cv-j-diagonal-tailed-serifed.light.svg +++ b/images/cv-j-diagonal-tailed-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifless.dark.svg b/images/cv-j-diagonal-tailed-serifless.dark.svg index 6f66a24b3b..3239cd402c 100644 --- a/images/cv-j-diagonal-tailed-serifless.dark.svg +++ b/images/cv-j-diagonal-tailed-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-j-diagonal-tailed-serifless.light.svg b/images/cv-j-diagonal-tailed-serifless.light.svg index 1414ff3f93..0d11b40025 100644 --- a/images/cv-j-diagonal-tailed-serifless.light.svg +++ b/images/cv-j-diagonal-tailed-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-k-diagonal-tailed-cursive-serifless.dark.svg b/images/cv-k-diagonal-tailed-cursive-serifless.dark.svg index f7d7a81886..9c8b323f72 100644 --- a/images/cv-k-diagonal-tailed-cursive-serifless.dark.svg +++ b/images/cv-k-diagonal-tailed-cursive-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-k-diagonal-tailed-cursive-serifless.light.svg b/images/cv-k-diagonal-tailed-cursive-serifless.light.svg index 3cad5b32ab..be1105a223 100644 --- a/images/cv-k-diagonal-tailed-cursive-serifless.light.svg +++ b/images/cv-k-diagonal-tailed-cursive-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-k-diagonal-tailed-cursive-top-left-serifed.dark.svg b/images/cv-k-diagonal-tailed-cursive-top-left-serifed.dark.svg index 3c5cfe8655..461e96632a 100644 --- a/images/cv-k-diagonal-tailed-cursive-top-left-serifed.dark.svg +++ b/images/cv-k-diagonal-tailed-cursive-top-left-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-k-diagonal-tailed-cursive-top-left-serifed.light.svg b/images/cv-k-diagonal-tailed-cursive-top-left-serifed.light.svg index 77ccef5cd0..934ccbb920 100644 --- a/images/cv-k-diagonal-tailed-cursive-top-left-serifed.light.svg +++ b/images/cv-k-diagonal-tailed-cursive-top-left-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-l-diagonal-tailed.dark.svg b/images/cv-l-diagonal-tailed.dark.svg index 97857fa662..9bb42a4d09 100644 --- a/images/cv-l-diagonal-tailed.dark.svg +++ b/images/cv-l-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-l-diagonal-tailed.light.svg b/images/cv-l-diagonal-tailed.light.svg index f7370a5a0d..98e8897995 100644 --- a/images/cv-l-diagonal-tailed.light.svg +++ b/images/cv-l-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-l-serifed-diagonal-tailed.dark.svg b/images/cv-l-serifed-diagonal-tailed.dark.svg index 8ed97f3318..2d5c6a0d81 100644 --- a/images/cv-l-serifed-diagonal-tailed.dark.svg +++ b/images/cv-l-serifed-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-l-serifed-diagonal-tailed.light.svg b/images/cv-l-serifed-diagonal-tailed.light.svg index 53939ed491..794d7d2f0a 100644 --- a/images/cv-l-serifed-diagonal-tailed.light.svg +++ b/images/cv-l-serifed-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.dark.svg b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.dark.svg index 2f4d80a5d2..194f31ba89 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.dark.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.light.svg b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.light.svg index 3e231b55c1..e0a0abf06f 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.light.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed-xh.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.dark.svg b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.dark.svg index a17c1e3b72..31e28abb6f 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.dark.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.light.svg b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.light.svg index c8431137a7..ab459a0999 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.light.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed.dark.svg b/images/cv-long-s-bent-hook-diagonal-tailed.dark.svg index ec43359217..251cec5860 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed.dark.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-bent-hook-diagonal-tailed.light.svg b/images/cv-long-s-bent-hook-diagonal-tailed.light.svg index 334f5d2f0a..7a684b7bb7 100644 --- a/images/cv-long-s-bent-hook-diagonal-tailed.light.svg +++ b/images/cv-long-s-bent-hook-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.dark.svg b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.dark.svg index caf8dd8767..164346800c 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.dark.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.light.svg b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.light.svg index 1ce85a27aa..8cfb0bd376 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.light.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed-xh.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.dark.svg b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.dark.svg index 6b6033d280..a4cdff2634 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.dark.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.light.svg b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.light.svg index 033af50d6a..414fdf3454 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.light.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed-middle-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed.dark.svg b/images/cv-long-s-flat-hook-diagonal-tailed.dark.svg index 021f2e1ace..188793021c 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed.dark.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-long-s-flat-hook-diagonal-tailed.light.svg b/images/cv-long-s-flat-hook-diagonal-tailed.light.svg index 9893447c44..b90a68f0ff 100644 --- a/images/cv-long-s-flat-hook-diagonal-tailed.light.svg +++ b/images/cv-long-s-flat-hook-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-alpha-tailed-barred-earless-corner.dark.svg b/images/cv-lower-alpha-tailed-barred-earless-corner.dark.svg deleted file mode 100644 index 214fe3f65a..0000000000 --- a/images/cv-lower-alpha-tailed-barred-earless-corner.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-lower-alpha-tailed-barred-earless-corner.light.svg b/images/cv-lower-alpha-tailed-barred-earless-corner.light.svg deleted file mode 100644 index 936fdd179d..0000000000 --- a/images/cv-lower-alpha-tailed-barred-earless-corner.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-lower-alpha-tailed-barred.dark.svg b/images/cv-lower-alpha-tailed-barred.dark.svg deleted file mode 100644 index 3733d4dcef..0000000000 --- a/images/cv-lower-alpha-tailed-barred.dark.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-lower-alpha-tailed-barred.light.svg b/images/cv-lower-alpha-tailed-barred.light.svg deleted file mode 100644 index 3679b170e5..0000000000 --- a/images/cv-lower-alpha-tailed-barred.light.svg +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/images/cv-lower-chi-chancery.dark.svg b/images/cv-lower-chi-chancery.dark.svg index 17bff3d61e..6dfa5facae 100644 --- a/images/cv-lower-chi-chancery.dark.svg +++ b/images/cv-lower-chi-chancery.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-chi-chancery.light.svg b/images/cv-lower-chi-chancery.light.svg index 979589c7ba..bfde691f80 100644 --- a/images/cv-lower-chi-chancery.light.svg +++ b/images/cv-lower-chi-chancery.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-iota-diagonal-tailed.dark.svg b/images/cv-lower-iota-diagonal-tailed.dark.svg index a47af009be..55911b1ffd 100644 --- a/images/cv-lower-iota-diagonal-tailed.dark.svg +++ b/images/cv-lower-iota-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-iota-diagonal-tailed.light.svg b/images/cv-lower-iota-diagonal-tailed.light.svg index c41022c375..bcdf1211b5 100644 --- a/images/cv-lower-iota-diagonal-tailed.light.svg +++ b/images/cv-lower-iota-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-iota-serifed-diagonal-tailed.dark.svg b/images/cv-lower-iota-serifed-diagonal-tailed.dark.svg index a7710de44a..a393ff8d5c 100644 --- a/images/cv-lower-iota-serifed-diagonal-tailed.dark.svg +++ b/images/cv-lower-iota-serifed-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-iota-serifed-diagonal-tailed.light.svg b/images/cv-lower-iota-serifed-diagonal-tailed.light.svg index a4390faa76..7981389445 100644 --- a/images/cv-lower-iota-serifed-diagonal-tailed.light.svg +++ b/images/cv-lower-iota-serifed-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-tau-diagonal-tailed.dark.svg b/images/cv-lower-tau-diagonal-tailed.dark.svg index 2a88b4f0ff..31d1df48c2 100644 --- a/images/cv-lower-tau-diagonal-tailed.dark.svg +++ b/images/cv-lower-tau-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-lower-tau-diagonal-tailed.light.svg b/images/cv-lower-tau-diagonal-tailed.light.svg index 01872a72fc..f56ad35a75 100644 --- a/images/cv-lower-tau-diagonal-tailed.light.svg +++ b/images/cv-lower-tau-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-diagonal-tailed-motion-serifed.dark.svg b/images/cv-q-diagonal-tailed-motion-serifed.dark.svg index 5181b66fbd..8bbdfa30a3 100644 --- a/images/cv-q-diagonal-tailed-motion-serifed.dark.svg +++ b/images/cv-q-diagonal-tailed-motion-serifed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-diagonal-tailed-motion-serifed.light.svg b/images/cv-q-diagonal-tailed-motion-serifed.light.svg index dda1961aad..9253d6c750 100644 --- a/images/cv-q-diagonal-tailed-motion-serifed.light.svg +++ b/images/cv-q-diagonal-tailed-motion-serifed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-diagonal-tailed-serifless.dark.svg b/images/cv-q-diagonal-tailed-serifless.dark.svg index 06c33988db..1a87353678 100644 --- a/images/cv-q-diagonal-tailed-serifless.dark.svg +++ b/images/cv-q-diagonal-tailed-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-diagonal-tailed-serifless.light.svg b/images/cv-q-diagonal-tailed-serifless.light.svg index 9d8deac37b..53651c9f0c 100644 --- a/images/cv-q-diagonal-tailed-serifless.light.svg +++ b/images/cv-q-diagonal-tailed-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-earless-corner-diagonal-tailed-serifless.dark.svg b/images/cv-q-earless-corner-diagonal-tailed-serifless.dark.svg index d7bb98ed6b..4bb5e8b9fa 100644 --- a/images/cv-q-earless-corner-diagonal-tailed-serifless.dark.svg +++ b/images/cv-q-earless-corner-diagonal-tailed-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-earless-corner-diagonal-tailed-serifless.light.svg b/images/cv-q-earless-corner-diagonal-tailed-serifless.light.svg index b36b33fbae..66081ae454 100644 --- a/images/cv-q-earless-corner-diagonal-tailed-serifless.light.svg +++ b/images/cv-q-earless-corner-diagonal-tailed-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-earless-rounded-diagonal-tailed-serifless.dark.svg b/images/cv-q-earless-rounded-diagonal-tailed-serifless.dark.svg index cabbfaad72..946c3966c8 100644 --- a/images/cv-q-earless-rounded-diagonal-tailed-serifless.dark.svg +++ b/images/cv-q-earless-rounded-diagonal-tailed-serifless.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-q-earless-rounded-diagonal-tailed-serifless.light.svg b/images/cv-q-earless-rounded-diagonal-tailed-serifless.light.svg index d638d9c348..87abf25c3d 100644 --- a/images/cv-q-earless-rounded-diagonal-tailed-serifless.light.svg +++ b/images/cv-q-earless-rounded-diagonal-tailed-serifless.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric-short-neck.dark.svg b/images/cv-t-diagonal-tailed-asymmetric-short-neck.dark.svg index 0a47b0bda4..e26cb0a8cd 100644 --- a/images/cv-t-diagonal-tailed-asymmetric-short-neck.dark.svg +++ b/images/cv-t-diagonal-tailed-asymmetric-short-neck.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric-short-neck.light.svg b/images/cv-t-diagonal-tailed-asymmetric-short-neck.light.svg index 31e73037f6..79f957e5ec 100644 --- a/images/cv-t-diagonal-tailed-asymmetric-short-neck.light.svg +++ b/images/cv-t-diagonal-tailed-asymmetric-short-neck.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric-short-neck2.dark.svg b/images/cv-t-diagonal-tailed-asymmetric-short-neck2.dark.svg index 2256203566..038636a58f 100644 --- a/images/cv-t-diagonal-tailed-asymmetric-short-neck2.dark.svg +++ b/images/cv-t-diagonal-tailed-asymmetric-short-neck2.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric-short-neck2.light.svg b/images/cv-t-diagonal-tailed-asymmetric-short-neck2.light.svg index 5cddb57e85..de507e7ac7 100644 --- a/images/cv-t-diagonal-tailed-asymmetric-short-neck2.light.svg +++ b/images/cv-t-diagonal-tailed-asymmetric-short-neck2.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric.dark.svg b/images/cv-t-diagonal-tailed-asymmetric.dark.svg index 4b679580d3..357d0b3794 100644 --- a/images/cv-t-diagonal-tailed-asymmetric.dark.svg +++ b/images/cv-t-diagonal-tailed-asymmetric.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-asymmetric.light.svg b/images/cv-t-diagonal-tailed-asymmetric.light.svg index 259b9ffcf1..6367a615c2 100644 --- a/images/cv-t-diagonal-tailed-asymmetric.light.svg +++ b/images/cv-t-diagonal-tailed-asymmetric.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-short-neck.dark.svg b/images/cv-t-diagonal-tailed-short-neck.dark.svg index 8194761b12..bcfa3bc673 100644 --- a/images/cv-t-diagonal-tailed-short-neck.dark.svg +++ b/images/cv-t-diagonal-tailed-short-neck.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-short-neck.light.svg b/images/cv-t-diagonal-tailed-short-neck.light.svg index 4f246b17e4..caf3da156b 100644 --- a/images/cv-t-diagonal-tailed-short-neck.light.svg +++ b/images/cv-t-diagonal-tailed-short-neck.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-short-neck2.dark.svg b/images/cv-t-diagonal-tailed-short-neck2.dark.svg index c09873e5f5..444013ba60 100644 --- a/images/cv-t-diagonal-tailed-short-neck2.dark.svg +++ b/images/cv-t-diagonal-tailed-short-neck2.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed-short-neck2.light.svg b/images/cv-t-diagonal-tailed-short-neck2.light.svg index 24b46fb509..325ebe6563 100644 --- a/images/cv-t-diagonal-tailed-short-neck2.light.svg +++ b/images/cv-t-diagonal-tailed-short-neck2.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed.dark.svg b/images/cv-t-diagonal-tailed.dark.svg index 043f7c33a5..2e93013a8f 100644 --- a/images/cv-t-diagonal-tailed.dark.svg +++ b/images/cv-t-diagonal-tailed.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-t-diagonal-tailed.light.svg b/images/cv-t-diagonal-tailed.light.svg index ce314e47db..1cfb7fd467 100644 --- a/images/cv-t-diagonal-tailed.light.svg +++ b/images/cv-t-diagonal-tailed.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-x-cursive.dark.svg b/images/cv-x-cursive.dark.svg index a62970602e..c9aaaabe2d 100644 --- a/images/cv-x-cursive.dark.svg +++ b/images/cv-x-cursive.dark.svg @@ -1,7 +1,7 @@ - + diff --git a/images/cv-x-cursive.light.svg b/images/cv-x-cursive.light.svg index b12f1a8e1f..7bebb5c253 100644 --- a/images/cv-x-cursive.light.svg +++ b/images/cv-x-cursive.light.svg @@ -1,7 +1,7 @@ - + diff --git a/images/languages.dark.svg b/images/languages.dark.svg index 5ac44eec19..21d4d7f9b7 100644 --- a/images/languages.dark.svg +++ b/images/languages.dark.svg @@ -81,7 +81,7 @@ - + @@ -259,7 +259,7 @@ - + diff --git a/images/languages.light.svg b/images/languages.light.svg index 718e11ed1f..9b1c563490 100644 --- a/images/languages.light.svg +++ b/images/languages.light.svg @@ -81,7 +81,7 @@ - + @@ -259,7 +259,7 @@ - + diff --git a/images/matrix.dark.svg b/images/matrix.dark.svg index 413685bfc4..150d8216ef 100644 --- a/images/matrix.dark.svg +++ b/images/matrix.dark.svg @@ -1,5 +1,5 @@ - + @@ -127,6 +127,7 @@ + @@ -398,4 +399,7 @@ + + + \ No newline at end of file diff --git a/images/matrix.light.svg b/images/matrix.light.svg index 89a080dc6c..64d2aeaec8 100644 --- a/images/matrix.light.svg +++ b/images/matrix.light.svg @@ -1,5 +1,5 @@ - + @@ -127,6 +127,7 @@ + @@ -398,4 +399,7 @@ + + + \ No newline at end of file diff --git a/images/iosevka-term.dark.svg b/images/package-sample-Iosevka.dark.svg similarity index 99% rename from images/iosevka-term.dark.svg rename to images/package-sample-Iosevka.dark.svg index b5a6f91270..1be8482cbd 100644 --- a/images/iosevka-term.dark.svg +++ b/images/package-sample-Iosevka.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka.light.svg b/images/package-sample-Iosevka.light.svg similarity index 99% rename from images/iosevka.light.svg rename to images/package-sample-Iosevka.light.svg index 9d147aa06c..32255b0f4a 100644 --- a/images/iosevka.light.svg +++ b/images/package-sample-Iosevka.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-aile.dark.svg b/images/package-sample-IosevkaAile.dark.svg similarity index 99% rename from images/iosevka-aile.dark.svg rename to images/package-sample-IosevkaAile.dark.svg index c3bb856a64..c67defb4a0 100644 --- a/images/iosevka-aile.dark.svg +++ b/images/package-sample-IosevkaAile.dark.svg @@ -25,7 +25,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-aile.light.svg b/images/package-sample-IosevkaAile.light.svg similarity index 99% rename from images/iosevka-aile.light.svg rename to images/package-sample-IosevkaAile.light.svg index 6c22ea6071..92d67a92a3 100644 --- a/images/iosevka-aile.light.svg +++ b/images/package-sample-IosevkaAile.light.svg @@ -25,7 +25,7 @@ - + @@ -122,7 +122,7 @@ - + @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-curly.dark.svg b/images/package-sample-IosevkaCurly.dark.svg similarity index 99% rename from images/iosevka-fixed-curly.dark.svg rename to images/package-sample-IosevkaCurly.dark.svg index 581efa847d..4309403eeb 100644 --- a/images/iosevka-fixed-curly.dark.svg +++ b/images/package-sample-IosevkaCurly.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-curly.light.svg b/images/package-sample-IosevkaCurly.light.svg similarity index 99% rename from images/iosevka-term-curly.light.svg rename to images/package-sample-IosevkaCurly.light.svg index 0e5349c873..3da68fd63c 100644 --- a/images/iosevka-term-curly.light.svg +++ b/images/package-sample-IosevkaCurly.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-curly-slab.dark.svg b/images/package-sample-IosevkaCurlySlab.dark.svg similarity index 98% rename from images/iosevka-fixed-curly-slab.dark.svg rename to images/package-sample-IosevkaCurlySlab.dark.svg index 560a559f70..ca09699ec9 100644 --- a/images/iosevka-fixed-curly-slab.dark.svg +++ b/images/package-sample-IosevkaCurlySlab.dark.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-curly-slab.light.svg b/images/package-sample-IosevkaCurlySlab.light.svg similarity index 98% rename from images/iosevka-curly-slab.light.svg rename to images/package-sample-IosevkaCurlySlab.light.svg index ff67e90031..1067e873ff 100644 --- a/images/iosevka-curly-slab.light.svg +++ b/images/package-sample-IosevkaCurlySlab.light.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-etoile.dark.svg b/images/package-sample-IosevkaEtoile.dark.svg similarity index 99% rename from images/iosevka-etoile.dark.svg rename to images/package-sample-IosevkaEtoile.dark.svg index 2c500a7dc6..0b9d84e52c 100644 --- a/images/iosevka-etoile.dark.svg +++ b/images/package-sample-IosevkaEtoile.dark.svg @@ -25,7 +25,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-etoile.light.svg b/images/package-sample-IosevkaEtoile.light.svg similarity index 99% rename from images/iosevka-etoile.light.svg rename to images/package-sample-IosevkaEtoile.light.svg index b0e1fd4db8..0fec9443a6 100644 --- a/images/iosevka-etoile.light.svg +++ b/images/package-sample-IosevkaEtoile.light.svg @@ -25,7 +25,7 @@ - + @@ -51,7 +51,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed.dark.svg b/images/package-sample-IosevkaFixed.dark.svg similarity index 99% rename from images/iosevka-fixed.dark.svg rename to images/package-sample-IosevkaFixed.dark.svg index b5a6f91270..1be8482cbd 100644 --- a/images/iosevka-fixed.dark.svg +++ b/images/package-sample-IosevkaFixed.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term.light.svg b/images/package-sample-IosevkaFixed.light.svg similarity index 99% rename from images/iosevka-term.light.svg rename to images/package-sample-IosevkaFixed.light.svg index 9d147aa06c..32255b0f4a 100644 --- a/images/iosevka-term.light.svg +++ b/images/package-sample-IosevkaFixed.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-curly.dark.svg b/images/package-sample-IosevkaFixedCurly.dark.svg similarity index 99% rename from images/iosevka-term-curly.dark.svg rename to images/package-sample-IosevkaFixedCurly.dark.svg index 581efa847d..4309403eeb 100644 --- a/images/iosevka-term-curly.dark.svg +++ b/images/package-sample-IosevkaFixedCurly.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-curly.light.svg b/images/package-sample-IosevkaFixedCurly.light.svg similarity index 99% rename from images/iosevka-fixed-curly.light.svg rename to images/package-sample-IosevkaFixedCurly.light.svg index 0e5349c873..3da68fd63c 100644 --- a/images/iosevka-fixed-curly.light.svg +++ b/images/package-sample-IosevkaFixedCurly.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-curly-slab.dark.svg b/images/package-sample-IosevkaFixedCurlySlab.dark.svg similarity index 98% rename from images/iosevka-term-curly-slab.dark.svg rename to images/package-sample-IosevkaFixedCurlySlab.dark.svg index 560a559f70..ca09699ec9 100644 --- a/images/iosevka-term-curly-slab.dark.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.dark.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-curly-slab.light.svg b/images/package-sample-IosevkaFixedCurlySlab.light.svg similarity index 98% rename from images/iosevka-fixed-curly-slab.light.svg rename to images/package-sample-IosevkaFixedCurlySlab.light.svg index ff67e90031..1067e873ff 100644 --- a/images/iosevka-fixed-curly-slab.light.svg +++ b/images/package-sample-IosevkaFixedCurlySlab.light.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss01.dark.svg b/images/package-sample-IosevkaFixedSS01.dark.svg similarity index 99% rename from images/iosevka-ss01.dark.svg rename to images/package-sample-IosevkaFixedSS01.dark.svg index bd5c716b0a..d1b83480ea 100644 --- a/images/iosevka-ss01.dark.svg +++ b/images/package-sample-IosevkaFixedSS01.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss01.light.svg b/images/package-sample-IosevkaFixedSS01.light.svg similarity index 99% rename from images/iosevka-term-ss01.light.svg rename to images/package-sample-IosevkaFixedSS01.light.svg index 33410d2899..04916b9563 100644 --- a/images/iosevka-term-ss01.light.svg +++ b/images/package-sample-IosevkaFixedSS01.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss02.dark.svg b/images/package-sample-IosevkaFixedSS02.dark.svg similarity index 99% rename from images/iosevka-ss02.dark.svg rename to images/package-sample-IosevkaFixedSS02.dark.svg index 6fcfea3638..0df9d47ce9 100644 --- a/images/iosevka-ss02.dark.svg +++ b/images/package-sample-IosevkaFixedSS02.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss02.light.svg b/images/package-sample-IosevkaFixedSS02.light.svg similarity index 99% rename from images/iosevka-ss02.light.svg rename to images/package-sample-IosevkaFixedSS02.light.svg index 899459a5fd..4a49e7f490 100644 --- a/images/iosevka-ss02.light.svg +++ b/images/package-sample-IosevkaFixedSS02.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss03.dark.svg b/images/package-sample-IosevkaFixedSS03.dark.svg similarity index 99% rename from images/iosevka-term-ss03.dark.svg rename to images/package-sample-IosevkaFixedSS03.dark.svg index d15be9f705..06099775b1 100644 --- a/images/iosevka-term-ss03.dark.svg +++ b/images/package-sample-IosevkaFixedSS03.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss03.light.svg b/images/package-sample-IosevkaFixedSS03.light.svg similarity index 99% rename from images/iosevka-term-ss03.light.svg rename to images/package-sample-IosevkaFixedSS03.light.svg index 18a9bae3ef..f9a7accdb8 100644 --- a/images/iosevka-term-ss03.light.svg +++ b/images/package-sample-IosevkaFixedSS03.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss04.dark.svg b/images/package-sample-IosevkaFixedSS04.dark.svg similarity index 99% rename from images/iosevka-fixed-ss04.dark.svg rename to images/package-sample-IosevkaFixedSS04.dark.svg index b000d42b6e..5003625c06 100644 --- a/images/iosevka-fixed-ss04.dark.svg +++ b/images/package-sample-IosevkaFixedSS04.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss04.light.svg b/images/package-sample-IosevkaFixedSS04.light.svg similarity index 99% rename from images/iosevka-term-ss04.light.svg rename to images/package-sample-IosevkaFixedSS04.light.svg index 1814a5a345..5ab0e75e5d 100644 --- a/images/iosevka-term-ss04.light.svg +++ b/images/package-sample-IosevkaFixedSS04.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss05.dark.svg b/images/package-sample-IosevkaFixedSS05.dark.svg similarity index 99% rename from images/iosevka-term-ss05.dark.svg rename to images/package-sample-IosevkaFixedSS05.dark.svg index d4b4f120fc..bbae8c3c4a 100644 --- a/images/iosevka-term-ss05.dark.svg +++ b/images/package-sample-IosevkaFixedSS05.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss05.light.svg b/images/package-sample-IosevkaFixedSS05.light.svg similarity index 99% rename from images/iosevka-term-ss05.light.svg rename to images/package-sample-IosevkaFixedSS05.light.svg index 48397af127..25545ac86e 100644 --- a/images/iosevka-term-ss05.light.svg +++ b/images/package-sample-IosevkaFixedSS05.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss06.dark.svg b/images/package-sample-IosevkaFixedSS06.dark.svg similarity index 99% rename from images/iosevka-ss06.dark.svg rename to images/package-sample-IosevkaFixedSS06.dark.svg index 2a81c2ae29..2be031e02f 100644 --- a/images/iosevka-ss06.dark.svg +++ b/images/package-sample-IosevkaFixedSS06.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss06.light.svg b/images/package-sample-IosevkaFixedSS06.light.svg similarity index 99% rename from images/iosevka-term-ss06.light.svg rename to images/package-sample-IosevkaFixedSS06.light.svg index 7679be2d5e..6e5900ab2a 100644 --- a/images/iosevka-term-ss06.light.svg +++ b/images/package-sample-IosevkaFixedSS06.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss07.dark.svg b/images/package-sample-IosevkaFixedSS07.dark.svg similarity index 99% rename from images/iosevka-ss07.dark.svg rename to images/package-sample-IosevkaFixedSS07.dark.svg index a0974cdf55..8c5bf58aa2 100644 --- a/images/iosevka-ss07.dark.svg +++ b/images/package-sample-IosevkaFixedSS07.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss07.light.svg b/images/package-sample-IosevkaFixedSS07.light.svg similarity index 99% rename from images/iosevka-term-ss07.light.svg rename to images/package-sample-IosevkaFixedSS07.light.svg index 04d3d6cc95..689921c772 100644 --- a/images/iosevka-term-ss07.light.svg +++ b/images/package-sample-IosevkaFixedSS07.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss08.dark.svg b/images/package-sample-IosevkaFixedSS08.dark.svg similarity index 99% rename from images/iosevka-ss08.dark.svg rename to images/package-sample-IosevkaFixedSS08.dark.svg index 4487127955..db978d515a 100644 --- a/images/iosevka-ss08.dark.svg +++ b/images/package-sample-IosevkaFixedSS08.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss08.light.svg b/images/package-sample-IosevkaFixedSS08.light.svg similarity index 99% rename from images/iosevka-term-ss08.light.svg rename to images/package-sample-IosevkaFixedSS08.light.svg index 1b8c41023b..8aeec2023d 100644 --- a/images/iosevka-term-ss08.light.svg +++ b/images/package-sample-IosevkaFixedSS08.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss09.dark.svg b/images/package-sample-IosevkaFixedSS09.dark.svg similarity index 99% rename from images/iosevka-term-ss09.dark.svg rename to images/package-sample-IosevkaFixedSS09.dark.svg index f2331bf667..02186a7bb6 100644 --- a/images/iosevka-term-ss09.dark.svg +++ b/images/package-sample-IosevkaFixedSS09.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss09.light.svg b/images/package-sample-IosevkaFixedSS09.light.svg similarity index 99% rename from images/iosevka-term-ss09.light.svg rename to images/package-sample-IosevkaFixedSS09.light.svg index 2d57adbff2..289b378512 100644 --- a/images/iosevka-term-ss09.light.svg +++ b/images/package-sample-IosevkaFixedSS09.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss10.dark.svg b/images/package-sample-IosevkaFixedSS10.dark.svg similarity index 99% rename from images/iosevka-ss10.dark.svg rename to images/package-sample-IosevkaFixedSS10.dark.svg index e32062434f..08e9b187fd 100644 --- a/images/iosevka-ss10.dark.svg +++ b/images/package-sample-IosevkaFixedSS10.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss10.light.svg b/images/package-sample-IosevkaFixedSS10.light.svg similarity index 99% rename from images/iosevka-term-ss10.light.svg rename to images/package-sample-IosevkaFixedSS10.light.svg index a9606ab892..46d16ed2d1 100644 --- a/images/iosevka-term-ss10.light.svg +++ b/images/package-sample-IosevkaFixedSS10.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss11.dark.svg b/images/package-sample-IosevkaFixedSS11.dark.svg similarity index 99% rename from images/iosevka-fixed-ss11.dark.svg rename to images/package-sample-IosevkaFixedSS11.dark.svg index 6f2520c2e6..002fc3077a 100644 --- a/images/iosevka-fixed-ss11.dark.svg +++ b/images/package-sample-IosevkaFixedSS11.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss11.light.svg b/images/package-sample-IosevkaFixedSS11.light.svg similarity index 99% rename from images/iosevka-fixed-ss11.light.svg rename to images/package-sample-IosevkaFixedSS11.light.svg index 9a95e3c97a..82158f7e10 100644 --- a/images/iosevka-fixed-ss11.light.svg +++ b/images/package-sample-IosevkaFixedSS11.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss12.dark.svg b/images/package-sample-IosevkaFixedSS12.dark.svg similarity index 99% rename from images/iosevka-ss12.dark.svg rename to images/package-sample-IosevkaFixedSS12.dark.svg index 55df87aa43..c832051c18 100644 --- a/images/iosevka-ss12.dark.svg +++ b/images/package-sample-IosevkaFixedSS12.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss12.light.svg b/images/package-sample-IosevkaFixedSS12.light.svg similarity index 99% rename from images/iosevka-term-ss12.light.svg rename to images/package-sample-IosevkaFixedSS12.light.svg index 1e726b37e9..4d9a8fbdee 100644 --- a/images/iosevka-term-ss12.light.svg +++ b/images/package-sample-IosevkaFixedSS12.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss13.dark.svg b/images/package-sample-IosevkaFixedSS13.dark.svg similarity index 99% rename from images/iosevka-term-ss13.dark.svg rename to images/package-sample-IosevkaFixedSS13.dark.svg index 5d81b8ee03..4baf99cc3b 100644 --- a/images/iosevka-term-ss13.dark.svg +++ b/images/package-sample-IosevkaFixedSS13.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss13.light.svg b/images/package-sample-IosevkaFixedSS13.light.svg similarity index 99% rename from images/iosevka-term-ss13.light.svg rename to images/package-sample-IosevkaFixedSS13.light.svg index 648995061c..cce48e1ec9 100644 --- a/images/iosevka-term-ss13.light.svg +++ b/images/package-sample-IosevkaFixedSS13.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss14.dark.svg b/images/package-sample-IosevkaFixedSS14.dark.svg similarity index 99% rename from images/iosevka-fixed-ss14.dark.svg rename to images/package-sample-IosevkaFixedSS14.dark.svg index bb1dbcdd4d..5189fe0445 100644 --- a/images/iosevka-fixed-ss14.dark.svg +++ b/images/package-sample-IosevkaFixedSS14.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss14.light.svg b/images/package-sample-IosevkaFixedSS14.light.svg similarity index 99% rename from images/iosevka-term-ss14.light.svg rename to images/package-sample-IosevkaFixedSS14.light.svg index 32043fe50c..c8b18450ae 100644 --- a/images/iosevka-term-ss14.light.svg +++ b/images/package-sample-IosevkaFixedSS14.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss15.dark.svg b/images/package-sample-IosevkaFixedSS15.dark.svg similarity index 99% rename from images/iosevka-term-ss15.dark.svg rename to images/package-sample-IosevkaFixedSS15.dark.svg index 81004a184d..3ecadd6870 100644 --- a/images/iosevka-term-ss15.dark.svg +++ b/images/package-sample-IosevkaFixedSS15.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss15.light.svg b/images/package-sample-IosevkaFixedSS15.light.svg similarity index 99% rename from images/iosevka-term-ss15.light.svg rename to images/package-sample-IosevkaFixedSS15.light.svg index 88827acdcf..23a0ade32f 100644 --- a/images/iosevka-term-ss15.light.svg +++ b/images/package-sample-IosevkaFixedSS15.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss16.dark.svg b/images/package-sample-IosevkaFixedSS16.dark.svg similarity index 99% rename from images/iosevka-fixed-ss16.dark.svg rename to images/package-sample-IosevkaFixedSS16.dark.svg index 0cc5bde26f..2473df135d 100644 --- a/images/iosevka-fixed-ss16.dark.svg +++ b/images/package-sample-IosevkaFixedSS16.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss16.light.svg b/images/package-sample-IosevkaFixedSS16.light.svg similarity index 99% rename from images/iosevka-fixed-ss16.light.svg rename to images/package-sample-IosevkaFixedSS16.light.svg index 80f2f9c2a1..015b5cdb5a 100644 --- a/images/iosevka-fixed-ss16.light.svg +++ b/images/package-sample-IosevkaFixedSS16.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss17.dark.svg b/images/package-sample-IosevkaFixedSS17.dark.svg similarity index 99% rename from images/iosevka-fixed-ss17.dark.svg rename to images/package-sample-IosevkaFixedSS17.dark.svg index a4d07aa617..3db38d6246 100644 --- a/images/iosevka-fixed-ss17.dark.svg +++ b/images/package-sample-IosevkaFixedSS17.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss17.light.svg b/images/package-sample-IosevkaFixedSS17.light.svg similarity index 99% rename from images/iosevka-fixed-ss17.light.svg rename to images/package-sample-IosevkaFixedSS17.light.svg index ec261aae05..b1686eafa3 100644 --- a/images/iosevka-fixed-ss17.light.svg +++ b/images/package-sample-IosevkaFixedSS17.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss18.dark.svg b/images/package-sample-IosevkaFixedSS18.dark.svg similarity index 99% rename from images/iosevka-ss18.dark.svg rename to images/package-sample-IosevkaFixedSS18.dark.svg index ceeb6b3a54..50d9888bf8 100644 --- a/images/iosevka-ss18.dark.svg +++ b/images/package-sample-IosevkaFixedSS18.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss18.light.svg b/images/package-sample-IosevkaFixedSS18.light.svg similarity index 99% rename from images/iosevka-fixed-ss18.light.svg rename to images/package-sample-IosevkaFixedSS18.light.svg index c8bf89339d..aaebb36cea 100644 --- a/images/iosevka-fixed-ss18.light.svg +++ b/images/package-sample-IosevkaFixedSS18.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-slab.dark.svg b/images/package-sample-IosevkaFixedSlab.dark.svg similarity index 99% rename from images/iosevka-slab.dark.svg rename to images/package-sample-IosevkaFixedSlab.dark.svg index 8687154d68..e7f8b5420f 100644 --- a/images/iosevka-slab.dark.svg +++ b/images/package-sample-IosevkaFixedSlab.dark.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-slab.light.svg b/images/package-sample-IosevkaFixedSlab.light.svg similarity index 99% rename from images/iosevka-term-slab.light.svg rename to images/package-sample-IosevkaFixedSlab.light.svg index 5e9340f3ae..aba7617daa 100644 --- a/images/iosevka-term-slab.light.svg +++ b/images/package-sample-IosevkaFixedSlab.light.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss01.dark.svg b/images/package-sample-IosevkaSS01.dark.svg similarity index 99% rename from images/iosevka-term-ss01.dark.svg rename to images/package-sample-IosevkaSS01.dark.svg index bd5c716b0a..d1b83480ea 100644 --- a/images/iosevka-term-ss01.dark.svg +++ b/images/package-sample-IosevkaSS01.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss01.light.svg b/images/package-sample-IosevkaSS01.light.svg similarity index 99% rename from images/iosevka-ss01.light.svg rename to images/package-sample-IosevkaSS01.light.svg index 33410d2899..04916b9563 100644 --- a/images/iosevka-ss01.light.svg +++ b/images/package-sample-IosevkaSS01.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss02.dark.svg b/images/package-sample-IosevkaSS02.dark.svg similarity index 99% rename from images/iosevka-fixed-ss02.dark.svg rename to images/package-sample-IosevkaSS02.dark.svg index 6fcfea3638..0df9d47ce9 100644 --- a/images/iosevka-fixed-ss02.dark.svg +++ b/images/package-sample-IosevkaSS02.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss02.light.svg b/images/package-sample-IosevkaSS02.light.svg similarity index 99% rename from images/iosevka-term-ss02.light.svg rename to images/package-sample-IosevkaSS02.light.svg index 899459a5fd..4a49e7f490 100644 --- a/images/iosevka-term-ss02.light.svg +++ b/images/package-sample-IosevkaSS02.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss03.dark.svg b/images/package-sample-IosevkaSS03.dark.svg similarity index 99% rename from images/iosevka-ss03.dark.svg rename to images/package-sample-IosevkaSS03.dark.svg index d15be9f705..06099775b1 100644 --- a/images/iosevka-ss03.dark.svg +++ b/images/package-sample-IosevkaSS03.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss03.light.svg b/images/package-sample-IosevkaSS03.light.svg similarity index 99% rename from images/iosevka-ss03.light.svg rename to images/package-sample-IosevkaSS03.light.svg index 18a9bae3ef..f9a7accdb8 100644 --- a/images/iosevka-ss03.light.svg +++ b/images/package-sample-IosevkaSS03.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss04.dark.svg b/images/package-sample-IosevkaSS04.dark.svg similarity index 99% rename from images/iosevka-term-ss04.dark.svg rename to images/package-sample-IosevkaSS04.dark.svg index b000d42b6e..5003625c06 100644 --- a/images/iosevka-term-ss04.dark.svg +++ b/images/package-sample-IosevkaSS04.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss04.light.svg b/images/package-sample-IosevkaSS04.light.svg similarity index 99% rename from images/iosevka-fixed-ss04.light.svg rename to images/package-sample-IosevkaSS04.light.svg index 1814a5a345..5ab0e75e5d 100644 --- a/images/iosevka-fixed-ss04.light.svg +++ b/images/package-sample-IosevkaSS04.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss05.dark.svg b/images/package-sample-IosevkaSS05.dark.svg similarity index 99% rename from images/iosevka-ss05.dark.svg rename to images/package-sample-IosevkaSS05.dark.svg index d4b4f120fc..bbae8c3c4a 100644 --- a/images/iosevka-ss05.dark.svg +++ b/images/package-sample-IosevkaSS05.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss05.light.svg b/images/package-sample-IosevkaSS05.light.svg similarity index 99% rename from images/iosevka-fixed-ss05.light.svg rename to images/package-sample-IosevkaSS05.light.svg index 48397af127..25545ac86e 100644 --- a/images/iosevka-fixed-ss05.light.svg +++ b/images/package-sample-IosevkaSS05.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss06.dark.svg b/images/package-sample-IosevkaSS06.dark.svg similarity index 99% rename from images/iosevka-term-ss06.dark.svg rename to images/package-sample-IosevkaSS06.dark.svg index 2a81c2ae29..2be031e02f 100644 --- a/images/iosevka-term-ss06.dark.svg +++ b/images/package-sample-IosevkaSS06.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss06.light.svg b/images/package-sample-IosevkaSS06.light.svg similarity index 99% rename from images/iosevka-ss06.light.svg rename to images/package-sample-IosevkaSS06.light.svg index 7679be2d5e..6e5900ab2a 100644 --- a/images/iosevka-ss06.light.svg +++ b/images/package-sample-IosevkaSS06.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss07.dark.svg b/images/package-sample-IosevkaSS07.dark.svg similarity index 99% rename from images/iosevka-fixed-ss07.dark.svg rename to images/package-sample-IosevkaSS07.dark.svg index a0974cdf55..8c5bf58aa2 100644 --- a/images/iosevka-fixed-ss07.dark.svg +++ b/images/package-sample-IosevkaSS07.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss07.light.svg b/images/package-sample-IosevkaSS07.light.svg similarity index 99% rename from images/iosevka-fixed-ss07.light.svg rename to images/package-sample-IosevkaSS07.light.svg index 04d3d6cc95..689921c772 100644 --- a/images/iosevka-fixed-ss07.light.svg +++ b/images/package-sample-IosevkaSS07.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss08.dark.svg b/images/package-sample-IosevkaSS08.dark.svg similarity index 99% rename from images/iosevka-fixed-ss08.dark.svg rename to images/package-sample-IosevkaSS08.dark.svg index 4487127955..db978d515a 100644 --- a/images/iosevka-fixed-ss08.dark.svg +++ b/images/package-sample-IosevkaSS08.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss08.light.svg b/images/package-sample-IosevkaSS08.light.svg similarity index 99% rename from images/iosevka-fixed-ss08.light.svg rename to images/package-sample-IosevkaSS08.light.svg index 1b8c41023b..8aeec2023d 100644 --- a/images/iosevka-fixed-ss08.light.svg +++ b/images/package-sample-IosevkaSS08.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss09.dark.svg b/images/package-sample-IosevkaSS09.dark.svg similarity index 99% rename from images/iosevka-ss09.dark.svg rename to images/package-sample-IosevkaSS09.dark.svg index f2331bf667..02186a7bb6 100644 --- a/images/iosevka-ss09.dark.svg +++ b/images/package-sample-IosevkaSS09.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss09.light.svg b/images/package-sample-IosevkaSS09.light.svg similarity index 99% rename from images/iosevka-ss09.light.svg rename to images/package-sample-IosevkaSS09.light.svg index 2d57adbff2..289b378512 100644 --- a/images/iosevka-ss09.light.svg +++ b/images/package-sample-IosevkaSS09.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss10.dark.svg b/images/package-sample-IosevkaSS10.dark.svg similarity index 99% rename from images/iosevka-term-ss10.dark.svg rename to images/package-sample-IosevkaSS10.dark.svg index e32062434f..08e9b187fd 100644 --- a/images/iosevka-term-ss10.dark.svg +++ b/images/package-sample-IosevkaSS10.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss10.light.svg b/images/package-sample-IosevkaSS10.light.svg similarity index 99% rename from images/iosevka-fixed-ss10.light.svg rename to images/package-sample-IosevkaSS10.light.svg index a9606ab892..46d16ed2d1 100644 --- a/images/iosevka-fixed-ss10.light.svg +++ b/images/package-sample-IosevkaSS10.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss11.dark.svg b/images/package-sample-IosevkaSS11.dark.svg similarity index 99% rename from images/iosevka-term-ss11.dark.svg rename to images/package-sample-IosevkaSS11.dark.svg index 6f2520c2e6..002fc3077a 100644 --- a/images/iosevka-term-ss11.dark.svg +++ b/images/package-sample-IosevkaSS11.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss11.light.svg b/images/package-sample-IosevkaSS11.light.svg similarity index 99% rename from images/iosevka-ss11.light.svg rename to images/package-sample-IosevkaSS11.light.svg index 9a95e3c97a..82158f7e10 100644 --- a/images/iosevka-ss11.light.svg +++ b/images/package-sample-IosevkaSS11.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss12.dark.svg b/images/package-sample-IosevkaSS12.dark.svg similarity index 99% rename from images/iosevka-term-ss12.dark.svg rename to images/package-sample-IosevkaSS12.dark.svg index 55df87aa43..c832051c18 100644 --- a/images/iosevka-term-ss12.dark.svg +++ b/images/package-sample-IosevkaSS12.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss12.light.svg b/images/package-sample-IosevkaSS12.light.svg similarity index 99% rename from images/iosevka-fixed-ss12.light.svg rename to images/package-sample-IosevkaSS12.light.svg index 1e726b37e9..4d9a8fbdee 100644 --- a/images/iosevka-fixed-ss12.light.svg +++ b/images/package-sample-IosevkaSS12.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss13.dark.svg b/images/package-sample-IosevkaSS13.dark.svg similarity index 99% rename from images/iosevka-ss13.dark.svg rename to images/package-sample-IosevkaSS13.dark.svg index 5d81b8ee03..4baf99cc3b 100644 --- a/images/iosevka-ss13.dark.svg +++ b/images/package-sample-IosevkaSS13.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss13.light.svg b/images/package-sample-IosevkaSS13.light.svg similarity index 99% rename from images/iosevka-ss13.light.svg rename to images/package-sample-IosevkaSS13.light.svg index 648995061c..cce48e1ec9 100644 --- a/images/iosevka-ss13.light.svg +++ b/images/package-sample-IosevkaSS13.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss14.dark.svg b/images/package-sample-IosevkaSS14.dark.svg similarity index 99% rename from images/iosevka-ss14.dark.svg rename to images/package-sample-IosevkaSS14.dark.svg index bb1dbcdd4d..5189fe0445 100644 --- a/images/iosevka-ss14.dark.svg +++ b/images/package-sample-IosevkaSS14.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss14.light.svg b/images/package-sample-IosevkaSS14.light.svg similarity index 99% rename from images/iosevka-fixed-ss14.light.svg rename to images/package-sample-IosevkaSS14.light.svg index 32043fe50c..c8b18450ae 100644 --- a/images/iosevka-fixed-ss14.light.svg +++ b/images/package-sample-IosevkaSS14.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss15.dark.svg b/images/package-sample-IosevkaSS15.dark.svg similarity index 99% rename from images/iosevka-fixed-ss15.dark.svg rename to images/package-sample-IosevkaSS15.dark.svg index 81004a184d..3ecadd6870 100644 --- a/images/iosevka-fixed-ss15.dark.svg +++ b/images/package-sample-IosevkaSS15.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss15.light.svg b/images/package-sample-IosevkaSS15.light.svg similarity index 99% rename from images/iosevka-fixed-ss15.light.svg rename to images/package-sample-IosevkaSS15.light.svg index 88827acdcf..23a0ade32f 100644 --- a/images/iosevka-fixed-ss15.light.svg +++ b/images/package-sample-IosevkaSS15.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss16.dark.svg b/images/package-sample-IosevkaSS16.dark.svg similarity index 99% rename from images/iosevka-ss16.dark.svg rename to images/package-sample-IosevkaSS16.dark.svg index 0cc5bde26f..2473df135d 100644 --- a/images/iosevka-ss16.dark.svg +++ b/images/package-sample-IosevkaSS16.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss16.light.svg b/images/package-sample-IosevkaSS16.light.svg similarity index 99% rename from images/iosevka-term-ss16.light.svg rename to images/package-sample-IosevkaSS16.light.svg index 80f2f9c2a1..015b5cdb5a 100644 --- a/images/iosevka-term-ss16.light.svg +++ b/images/package-sample-IosevkaSS16.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss17.dark.svg b/images/package-sample-IosevkaSS17.dark.svg similarity index 99% rename from images/iosevka-ss17.dark.svg rename to images/package-sample-IosevkaSS17.dark.svg index a4d07aa617..3db38d6246 100644 --- a/images/iosevka-ss17.dark.svg +++ b/images/package-sample-IosevkaSS17.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss17.light.svg b/images/package-sample-IosevkaSS17.light.svg similarity index 99% rename from images/iosevka-term-ss17.light.svg rename to images/package-sample-IosevkaSS17.light.svg index ec261aae05..b1686eafa3 100644 --- a/images/iosevka-term-ss17.light.svg +++ b/images/package-sample-IosevkaSS17.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss18.dark.svg b/images/package-sample-IosevkaSS18.dark.svg similarity index 99% rename from images/iosevka-term-ss18.dark.svg rename to images/package-sample-IosevkaSS18.dark.svg index ceeb6b3a54..50d9888bf8 100644 --- a/images/iosevka-term-ss18.dark.svg +++ b/images/package-sample-IosevkaSS18.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss18.light.svg b/images/package-sample-IosevkaSS18.light.svg similarity index 99% rename from images/iosevka-term-ss18.light.svg rename to images/package-sample-IosevkaSS18.light.svg index c8bf89339d..aaebb36cea 100644 --- a/images/iosevka-term-ss18.light.svg +++ b/images/package-sample-IosevkaSS18.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-slab.dark.svg b/images/package-sample-IosevkaSlab.dark.svg similarity index 99% rename from images/iosevka-fixed-slab.dark.svg rename to images/package-sample-IosevkaSlab.dark.svg index 8687154d68..e7f8b5420f 100644 --- a/images/iosevka-fixed-slab.dark.svg +++ b/images/package-sample-IosevkaSlab.dark.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-slab.light.svg b/images/package-sample-IosevkaSlab.light.svg similarity index 99% rename from images/iosevka-slab.light.svg rename to images/package-sample-IosevkaSlab.light.svg index 5e9340f3ae..aba7617daa 100644 --- a/images/iosevka-slab.light.svg +++ b/images/package-sample-IosevkaSlab.light.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka.dark.svg b/images/package-sample-IosevkaTerm.dark.svg similarity index 99% rename from images/iosevka.dark.svg rename to images/package-sample-IosevkaTerm.dark.svg index b5a6f91270..1be8482cbd 100644 --- a/images/iosevka.dark.svg +++ b/images/package-sample-IosevkaTerm.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed.light.svg b/images/package-sample-IosevkaTerm.light.svg similarity index 99% rename from images/iosevka-fixed.light.svg rename to images/package-sample-IosevkaTerm.light.svg index 9d147aa06c..32255b0f4a 100644 --- a/images/iosevka-fixed.light.svg +++ b/images/package-sample-IosevkaTerm.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-curly.dark.svg b/images/package-sample-IosevkaTermCurly.dark.svg similarity index 99% rename from images/iosevka-curly.dark.svg rename to images/package-sample-IosevkaTermCurly.dark.svg index 581efa847d..4309403eeb 100644 --- a/images/iosevka-curly.dark.svg +++ b/images/package-sample-IosevkaTermCurly.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-curly.light.svg b/images/package-sample-IosevkaTermCurly.light.svg similarity index 99% rename from images/iosevka-curly.light.svg rename to images/package-sample-IosevkaTermCurly.light.svg index 0e5349c873..3da68fd63c 100644 --- a/images/iosevka-curly.light.svg +++ b/images/package-sample-IosevkaTermCurly.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-curly-slab.dark.svg b/images/package-sample-IosevkaTermCurlySlab.dark.svg similarity index 98% rename from images/iosevka-curly-slab.dark.svg rename to images/package-sample-IosevkaTermCurlySlab.dark.svg index 560a559f70..ca09699ec9 100644 --- a/images/iosevka-curly-slab.dark.svg +++ b/images/package-sample-IosevkaTermCurlySlab.dark.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-curly-slab.light.svg b/images/package-sample-IosevkaTermCurlySlab.light.svg similarity index 98% rename from images/iosevka-term-curly-slab.light.svg rename to images/package-sample-IosevkaTermCurlySlab.light.svg index ff67e90031..1067e873ff 100644 --- a/images/iosevka-term-curly-slab.light.svg +++ b/images/package-sample-IosevkaTermCurlySlab.light.svg @@ -123,7 +123,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss01.dark.svg b/images/package-sample-IosevkaTermSS01.dark.svg similarity index 99% rename from images/iosevka-fixed-ss01.dark.svg rename to images/package-sample-IosevkaTermSS01.dark.svg index bd5c716b0a..d1b83480ea 100644 --- a/images/iosevka-fixed-ss01.dark.svg +++ b/images/package-sample-IosevkaTermSS01.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss01.light.svg b/images/package-sample-IosevkaTermSS01.light.svg similarity index 99% rename from images/iosevka-fixed-ss01.light.svg rename to images/package-sample-IosevkaTermSS01.light.svg index 33410d2899..04916b9563 100644 --- a/images/iosevka-fixed-ss01.light.svg +++ b/images/package-sample-IosevkaTermSS01.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss02.dark.svg b/images/package-sample-IosevkaTermSS02.dark.svg similarity index 99% rename from images/iosevka-term-ss02.dark.svg rename to images/package-sample-IosevkaTermSS02.dark.svg index 6fcfea3638..0df9d47ce9 100644 --- a/images/iosevka-term-ss02.dark.svg +++ b/images/package-sample-IosevkaTermSS02.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss02.light.svg b/images/package-sample-IosevkaTermSS02.light.svg similarity index 99% rename from images/iosevka-fixed-ss02.light.svg rename to images/package-sample-IosevkaTermSS02.light.svg index 899459a5fd..4a49e7f490 100644 --- a/images/iosevka-fixed-ss02.light.svg +++ b/images/package-sample-IosevkaTermSS02.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss03.dark.svg b/images/package-sample-IosevkaTermSS03.dark.svg similarity index 99% rename from images/iosevka-fixed-ss03.dark.svg rename to images/package-sample-IosevkaTermSS03.dark.svg index d15be9f705..06099775b1 100644 --- a/images/iosevka-fixed-ss03.dark.svg +++ b/images/package-sample-IosevkaTermSS03.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss03.light.svg b/images/package-sample-IosevkaTermSS03.light.svg similarity index 99% rename from images/iosevka-fixed-ss03.light.svg rename to images/package-sample-IosevkaTermSS03.light.svg index 18a9bae3ef..f9a7accdb8 100644 --- a/images/iosevka-fixed-ss03.light.svg +++ b/images/package-sample-IosevkaTermSS03.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss04.dark.svg b/images/package-sample-IosevkaTermSS04.dark.svg similarity index 99% rename from images/iosevka-ss04.dark.svg rename to images/package-sample-IosevkaTermSS04.dark.svg index b000d42b6e..5003625c06 100644 --- a/images/iosevka-ss04.dark.svg +++ b/images/package-sample-IosevkaTermSS04.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss04.light.svg b/images/package-sample-IosevkaTermSS04.light.svg similarity index 99% rename from images/iosevka-ss04.light.svg rename to images/package-sample-IosevkaTermSS04.light.svg index 1814a5a345..5ab0e75e5d 100644 --- a/images/iosevka-ss04.light.svg +++ b/images/package-sample-IosevkaTermSS04.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss05.dark.svg b/images/package-sample-IosevkaTermSS05.dark.svg similarity index 99% rename from images/iosevka-fixed-ss05.dark.svg rename to images/package-sample-IosevkaTermSS05.dark.svg index d4b4f120fc..bbae8c3c4a 100644 --- a/images/iosevka-fixed-ss05.dark.svg +++ b/images/package-sample-IosevkaTermSS05.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss05.light.svg b/images/package-sample-IosevkaTermSS05.light.svg similarity index 99% rename from images/iosevka-ss05.light.svg rename to images/package-sample-IosevkaTermSS05.light.svg index 48397af127..25545ac86e 100644 --- a/images/iosevka-ss05.light.svg +++ b/images/package-sample-IosevkaTermSS05.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss06.dark.svg b/images/package-sample-IosevkaTermSS06.dark.svg similarity index 99% rename from images/iosevka-fixed-ss06.dark.svg rename to images/package-sample-IosevkaTermSS06.dark.svg index 2a81c2ae29..2be031e02f 100644 --- a/images/iosevka-fixed-ss06.dark.svg +++ b/images/package-sample-IosevkaTermSS06.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss06.light.svg b/images/package-sample-IosevkaTermSS06.light.svg similarity index 99% rename from images/iosevka-fixed-ss06.light.svg rename to images/package-sample-IosevkaTermSS06.light.svg index 7679be2d5e..6e5900ab2a 100644 --- a/images/iosevka-fixed-ss06.light.svg +++ b/images/package-sample-IosevkaTermSS06.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss07.dark.svg b/images/package-sample-IosevkaTermSS07.dark.svg similarity index 99% rename from images/iosevka-term-ss07.dark.svg rename to images/package-sample-IosevkaTermSS07.dark.svg index a0974cdf55..8c5bf58aa2 100644 --- a/images/iosevka-term-ss07.dark.svg +++ b/images/package-sample-IosevkaTermSS07.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss07.light.svg b/images/package-sample-IosevkaTermSS07.light.svg similarity index 99% rename from images/iosevka-ss07.light.svg rename to images/package-sample-IosevkaTermSS07.light.svg index 04d3d6cc95..689921c772 100644 --- a/images/iosevka-ss07.light.svg +++ b/images/package-sample-IosevkaTermSS07.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss08.dark.svg b/images/package-sample-IosevkaTermSS08.dark.svg similarity index 99% rename from images/iosevka-term-ss08.dark.svg rename to images/package-sample-IosevkaTermSS08.dark.svg index 4487127955..db978d515a 100644 --- a/images/iosevka-term-ss08.dark.svg +++ b/images/package-sample-IosevkaTermSS08.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss08.light.svg b/images/package-sample-IosevkaTermSS08.light.svg similarity index 99% rename from images/iosevka-ss08.light.svg rename to images/package-sample-IosevkaTermSS08.light.svg index 1b8c41023b..8aeec2023d 100644 --- a/images/iosevka-ss08.light.svg +++ b/images/package-sample-IosevkaTermSS08.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss09.dark.svg b/images/package-sample-IosevkaTermSS09.dark.svg similarity index 99% rename from images/iosevka-fixed-ss09.dark.svg rename to images/package-sample-IosevkaTermSS09.dark.svg index f2331bf667..02186a7bb6 100644 --- a/images/iosevka-fixed-ss09.dark.svg +++ b/images/package-sample-IosevkaTermSS09.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss09.light.svg b/images/package-sample-IosevkaTermSS09.light.svg similarity index 99% rename from images/iosevka-fixed-ss09.light.svg rename to images/package-sample-IosevkaTermSS09.light.svg index 2d57adbff2..289b378512 100644 --- a/images/iosevka-fixed-ss09.light.svg +++ b/images/package-sample-IosevkaTermSS09.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss10.dark.svg b/images/package-sample-IosevkaTermSS10.dark.svg similarity index 99% rename from images/iosevka-fixed-ss10.dark.svg rename to images/package-sample-IosevkaTermSS10.dark.svg index e32062434f..08e9b187fd 100644 --- a/images/iosevka-fixed-ss10.dark.svg +++ b/images/package-sample-IosevkaTermSS10.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss10.light.svg b/images/package-sample-IosevkaTermSS10.light.svg similarity index 99% rename from images/iosevka-ss10.light.svg rename to images/package-sample-IosevkaTermSS10.light.svg index a9606ab892..46d16ed2d1 100644 --- a/images/iosevka-ss10.light.svg +++ b/images/package-sample-IosevkaTermSS10.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss11.dark.svg b/images/package-sample-IosevkaTermSS11.dark.svg similarity index 99% rename from images/iosevka-ss11.dark.svg rename to images/package-sample-IosevkaTermSS11.dark.svg index 6f2520c2e6..002fc3077a 100644 --- a/images/iosevka-ss11.dark.svg +++ b/images/package-sample-IosevkaTermSS11.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss11.light.svg b/images/package-sample-IosevkaTermSS11.light.svg similarity index 99% rename from images/iosevka-term-ss11.light.svg rename to images/package-sample-IosevkaTermSS11.light.svg index 9a95e3c97a..82158f7e10 100644 --- a/images/iosevka-term-ss11.light.svg +++ b/images/package-sample-IosevkaTermSS11.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-ss12.dark.svg b/images/package-sample-IosevkaTermSS12.dark.svg similarity index 99% rename from images/iosevka-fixed-ss12.dark.svg rename to images/package-sample-IosevkaTermSS12.dark.svg index 55df87aa43..c832051c18 100644 --- a/images/iosevka-fixed-ss12.dark.svg +++ b/images/package-sample-IosevkaTermSS12.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss12.light.svg b/images/package-sample-IosevkaTermSS12.light.svg similarity index 99% rename from images/iosevka-ss12.light.svg rename to images/package-sample-IosevkaTermSS12.light.svg index 1e726b37e9..4d9a8fbdee 100644 --- a/images/iosevka-ss12.light.svg +++ b/images/package-sample-IosevkaTermSS12.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-fixed-ss13.dark.svg b/images/package-sample-IosevkaTermSS13.dark.svg similarity index 99% rename from images/iosevka-fixed-ss13.dark.svg rename to images/package-sample-IosevkaTermSS13.dark.svg index 5d81b8ee03..4baf99cc3b 100644 --- a/images/iosevka-fixed-ss13.dark.svg +++ b/images/package-sample-IosevkaTermSS13.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss13.light.svg b/images/package-sample-IosevkaTermSS13.light.svg similarity index 99% rename from images/iosevka-fixed-ss13.light.svg rename to images/package-sample-IosevkaTermSS13.light.svg index 648995061c..cce48e1ec9 100644 --- a/images/iosevka-fixed-ss13.light.svg +++ b/images/package-sample-IosevkaTermSS13.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-term-ss14.dark.svg b/images/package-sample-IosevkaTermSS14.dark.svg similarity index 99% rename from images/iosevka-term-ss14.dark.svg rename to images/package-sample-IosevkaTermSS14.dark.svg index bb1dbcdd4d..5189fe0445 100644 --- a/images/iosevka-term-ss14.dark.svg +++ b/images/package-sample-IosevkaTermSS14.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss14.light.svg b/images/package-sample-IosevkaTermSS14.light.svg similarity index 99% rename from images/iosevka-ss14.light.svg rename to images/package-sample-IosevkaTermSS14.light.svg index 32043fe50c..c8b18450ae 100644 --- a/images/iosevka-ss14.light.svg +++ b/images/package-sample-IosevkaTermSS14.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss15.dark.svg b/images/package-sample-IosevkaTermSS15.dark.svg similarity index 99% rename from images/iosevka-ss15.dark.svg rename to images/package-sample-IosevkaTermSS15.dark.svg index 81004a184d..3ecadd6870 100644 --- a/images/iosevka-ss15.dark.svg +++ b/images/package-sample-IosevkaTermSS15.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-ss15.light.svg b/images/package-sample-IosevkaTermSS15.light.svg similarity index 99% rename from images/iosevka-ss15.light.svg rename to images/package-sample-IosevkaTermSS15.light.svg index 88827acdcf..23a0ade32f 100644 --- a/images/iosevka-ss15.light.svg +++ b/images/package-sample-IosevkaTermSS15.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-term-ss16.dark.svg b/images/package-sample-IosevkaTermSS16.dark.svg similarity index 99% rename from images/iosevka-term-ss16.dark.svg rename to images/package-sample-IosevkaTermSS16.dark.svg index 0cc5bde26f..2473df135d 100644 --- a/images/iosevka-term-ss16.dark.svg +++ b/images/package-sample-IosevkaTermSS16.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss16.light.svg b/images/package-sample-IosevkaTermSS16.light.svg similarity index 99% rename from images/iosevka-ss16.light.svg rename to images/package-sample-IosevkaTermSS16.light.svg index 80f2f9c2a1..015b5cdb5a 100644 --- a/images/iosevka-ss16.light.svg +++ b/images/package-sample-IosevkaTermSS16.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-ss17.dark.svg b/images/package-sample-IosevkaTermSS17.dark.svg similarity index 99% rename from images/iosevka-term-ss17.dark.svg rename to images/package-sample-IosevkaTermSS17.dark.svg index a4d07aa617..3db38d6246 100644 --- a/images/iosevka-term-ss17.dark.svg +++ b/images/package-sample-IosevkaTermSS17.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-ss17.light.svg b/images/package-sample-IosevkaTermSS17.light.svg similarity index 99% rename from images/iosevka-ss17.light.svg rename to images/package-sample-IosevkaTermSS17.light.svg index ec261aae05..b1686eafa3 100644 --- a/images/iosevka-ss17.light.svg +++ b/images/package-sample-IosevkaTermSS17.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/iosevka-fixed-ss18.dark.svg b/images/package-sample-IosevkaTermSS18.dark.svg similarity index 99% rename from images/iosevka-fixed-ss18.dark.svg rename to images/package-sample-IosevkaTermSS18.dark.svg index ceeb6b3a54..50d9888bf8 100644 --- a/images/iosevka-fixed-ss18.dark.svg +++ b/images/package-sample-IosevkaTermSS18.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-ss18.light.svg b/images/package-sample-IosevkaTermSS18.light.svg similarity index 99% rename from images/iosevka-ss18.light.svg rename to images/package-sample-IosevkaTermSS18.light.svg index c8bf89339d..aaebb36cea 100644 --- a/images/iosevka-ss18.light.svg +++ b/images/package-sample-IosevkaTermSS18.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/iosevka-term-slab.dark.svg b/images/package-sample-IosevkaTermSlab.dark.svg similarity index 99% rename from images/iosevka-term-slab.dark.svg rename to images/package-sample-IosevkaTermSlab.dark.svg index 8687154d68..e7f8b5420f 100644 --- a/images/iosevka-term-slab.dark.svg +++ b/images/package-sample-IosevkaTermSlab.dark.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/iosevka-fixed-slab.light.svg b/images/package-sample-IosevkaTermSlab.light.svg similarity index 99% rename from images/iosevka-fixed-slab.light.svg rename to images/package-sample-IosevkaTermSlab.light.svg index 5e9340f3ae..aba7617daa 100644 --- a/images/iosevka-fixed-slab.light.svg +++ b/images/package-sample-IosevkaTermSlab.light.svg @@ -25,7 +25,7 @@ - + @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-off-0.dark.svg b/images/ss-i-off-0.dark.svg index 76786ef881..a53206c89d 100644 --- a/images/ss-i-off-0.dark.svg +++ b/images/ss-i-off-0.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-off-0.light.svg b/images/ss-i-off-0.light.svg index b980016a86..c6d8fa03d9 100644 --- a/images/ss-i-off-0.light.svg +++ b/images/ss-i-off-0.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss01-1.dark.svg b/images/ss-i-ss01-1.dark.svg index b1a5aa4685..0e487d8e8c 100644 --- a/images/ss-i-ss01-1.dark.svg +++ b/images/ss-i-ss01-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss01-1.light.svg b/images/ss-i-ss01-1.light.svg index 1bac7ada7a..ccf4df9955 100644 --- a/images/ss-i-ss01-1.light.svg +++ b/images/ss-i-ss01-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss02-1.dark.svg b/images/ss-i-ss02-1.dark.svg index afc09cb292..b381054071 100644 --- a/images/ss-i-ss02-1.dark.svg +++ b/images/ss-i-ss02-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss02-1.light.svg b/images/ss-i-ss02-1.light.svg index 5c29b2917e..bc6e5d183d 100644 --- a/images/ss-i-ss02-1.light.svg +++ b/images/ss-i-ss02-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss03-1.dark.svg b/images/ss-i-ss03-1.dark.svg index 9c923d3bdf..8b3b03320f 100644 --- a/images/ss-i-ss03-1.dark.svg +++ b/images/ss-i-ss03-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss03-1.light.svg b/images/ss-i-ss03-1.light.svg index 385b266e21..9f2066b3da 100644 --- a/images/ss-i-ss03-1.light.svg +++ b/images/ss-i-ss03-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss04-1.dark.svg b/images/ss-i-ss04-1.dark.svg index 7a0a1011b7..250b3612f8 100644 --- a/images/ss-i-ss04-1.dark.svg +++ b/images/ss-i-ss04-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss04-1.light.svg b/images/ss-i-ss04-1.light.svg index feb037b27a..fa6a8359de 100644 --- a/images/ss-i-ss04-1.light.svg +++ b/images/ss-i-ss04-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss05-1.dark.svg b/images/ss-i-ss05-1.dark.svg index e2f8977d18..fc96fba2bd 100644 --- a/images/ss-i-ss05-1.dark.svg +++ b/images/ss-i-ss05-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss05-1.light.svg b/images/ss-i-ss05-1.light.svg index 149824b35d..35ce5fc976 100644 --- a/images/ss-i-ss05-1.light.svg +++ b/images/ss-i-ss05-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss06-1.dark.svg b/images/ss-i-ss06-1.dark.svg index 19fd2567c9..12855a1764 100644 --- a/images/ss-i-ss06-1.dark.svg +++ b/images/ss-i-ss06-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss06-1.light.svg b/images/ss-i-ss06-1.light.svg index 486d255961..08c0bedc19 100644 --- a/images/ss-i-ss06-1.light.svg +++ b/images/ss-i-ss06-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss07-1.dark.svg b/images/ss-i-ss07-1.dark.svg index 537099f606..42bddb35c6 100644 --- a/images/ss-i-ss07-1.dark.svg +++ b/images/ss-i-ss07-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss07-1.light.svg b/images/ss-i-ss07-1.light.svg index bf6f21dc25..02848729f3 100644 --- a/images/ss-i-ss07-1.light.svg +++ b/images/ss-i-ss07-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss08-1.dark.svg b/images/ss-i-ss08-1.dark.svg index a0eb0c5633..c42c1cb603 100644 --- a/images/ss-i-ss08-1.dark.svg +++ b/images/ss-i-ss08-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss08-1.light.svg b/images/ss-i-ss08-1.light.svg index f9d69dcfff..20bef384c2 100644 --- a/images/ss-i-ss08-1.light.svg +++ b/images/ss-i-ss08-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss09-1.dark.svg b/images/ss-i-ss09-1.dark.svg index 496a264521..a3b02f4906 100644 --- a/images/ss-i-ss09-1.dark.svg +++ b/images/ss-i-ss09-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss09-1.light.svg b/images/ss-i-ss09-1.light.svg index d528196fa2..6bb8c42b86 100644 --- a/images/ss-i-ss09-1.light.svg +++ b/images/ss-i-ss09-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss10-1.dark.svg b/images/ss-i-ss10-1.dark.svg index 4b87db058a..02e581738a 100644 --- a/images/ss-i-ss10-1.dark.svg +++ b/images/ss-i-ss10-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss10-1.light.svg b/images/ss-i-ss10-1.light.svg index 4a2a57207e..da09ce2c68 100644 --- a/images/ss-i-ss10-1.light.svg +++ b/images/ss-i-ss10-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss11-1.dark.svg b/images/ss-i-ss11-1.dark.svg index 1f54a1f3cf..e0bd82a8da 100644 --- a/images/ss-i-ss11-1.dark.svg +++ b/images/ss-i-ss11-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss11-1.light.svg b/images/ss-i-ss11-1.light.svg index 399d4fe2b5..25f5a598bb 100644 --- a/images/ss-i-ss11-1.light.svg +++ b/images/ss-i-ss11-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss12-1.dark.svg b/images/ss-i-ss12-1.dark.svg index 23c4007d23..26a3c6573f 100644 --- a/images/ss-i-ss12-1.dark.svg +++ b/images/ss-i-ss12-1.dark.svg @@ -130,7 +130,7 @@ - + diff --git a/images/ss-i-ss12-1.light.svg b/images/ss-i-ss12-1.light.svg index 49efe2e505..0e45b8d374 100644 --- a/images/ss-i-ss12-1.light.svg +++ b/images/ss-i-ss12-1.light.svg @@ -130,7 +130,7 @@ - + diff --git a/images/ss-i-ss13-1.dark.svg b/images/ss-i-ss13-1.dark.svg index 88453ecbc1..ad729c6d79 100644 --- a/images/ss-i-ss13-1.dark.svg +++ b/images/ss-i-ss13-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss13-1.light.svg b/images/ss-i-ss13-1.light.svg index dca37e3e27..88be4e7a94 100644 --- a/images/ss-i-ss13-1.light.svg +++ b/images/ss-i-ss13-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss14-1.dark.svg b/images/ss-i-ss14-1.dark.svg index b4fae7e166..13887b8ab3 100644 --- a/images/ss-i-ss14-1.dark.svg +++ b/images/ss-i-ss14-1.dark.svg @@ -130,7 +130,7 @@ - + diff --git a/images/ss-i-ss14-1.light.svg b/images/ss-i-ss14-1.light.svg index f5f293b28b..2a4904cfbb 100644 --- a/images/ss-i-ss14-1.light.svg +++ b/images/ss-i-ss14-1.light.svg @@ -130,7 +130,7 @@ - + diff --git a/images/ss-i-ss15-1.dark.svg b/images/ss-i-ss15-1.dark.svg index 596954746b..19baa5add7 100644 --- a/images/ss-i-ss15-1.dark.svg +++ b/images/ss-i-ss15-1.dark.svg @@ -33,13 +33,13 @@ - + - - - - + + + + @@ -47,11 +47,11 @@ - + - + @@ -108,7 +108,7 @@ - + @@ -117,12 +117,12 @@ - + - + @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss15-1.light.svg b/images/ss-i-ss15-1.light.svg index 0fd923cb39..0a40b20645 100644 --- a/images/ss-i-ss15-1.light.svg +++ b/images/ss-i-ss15-1.light.svg @@ -33,13 +33,13 @@ - + - - - - + + + + @@ -47,11 +47,11 @@ - + - + @@ -108,7 +108,7 @@ - + @@ -117,12 +117,12 @@ - + - + @@ -133,7 +133,7 @@ - + diff --git a/images/ss-i-ss16-1.dark.svg b/images/ss-i-ss16-1.dark.svg index 5469872547..577e571995 100644 --- a/images/ss-i-ss16-1.dark.svg +++ b/images/ss-i-ss16-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss16-1.light.svg b/images/ss-i-ss16-1.light.svg index 50e6358222..921010596a 100644 --- a/images/ss-i-ss16-1.light.svg +++ b/images/ss-i-ss16-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss17-1.dark.svg b/images/ss-i-ss17-1.dark.svg index c4424ec2c8..1e755cf9fc 100644 --- a/images/ss-i-ss17-1.dark.svg +++ b/images/ss-i-ss17-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss17-1.light.svg b/images/ss-i-ss17-1.light.svg index 166b765880..794b706ab8 100644 --- a/images/ss-i-ss17-1.light.svg +++ b/images/ss-i-ss17-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss18-1.dark.svg b/images/ss-i-ss18-1.dark.svg index 1b01b49c7e..ac094676c5 100644 --- a/images/ss-i-ss18-1.dark.svg +++ b/images/ss-i-ss18-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss18-1.light.svg b/images/ss-i-ss18-1.light.svg index ea4c0ddbbe..2dab75bd51 100644 --- a/images/ss-i-ss18-1.light.svg +++ b/images/ss-i-ss18-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-i-ss20-1.dark.svg b/images/ss-i-ss20-1.dark.svg index df48ebc852..1a4a7d3f0c 100644 --- a/images/ss-i-ss20-1.dark.svg +++ b/images/ss-i-ss20-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-i-ss20-1.light.svg b/images/ss-i-ss20-1.light.svg index 00de19f9e8..53a4878a32 100644 --- a/images/ss-i-ss20-1.light.svg +++ b/images/ss-i-ss20-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-off-0.dark.svg b/images/ss-u-off-0.dark.svg index a1d9de2f8e..53ceebc711 100644 --- a/images/ss-u-off-0.dark.svg +++ b/images/ss-u-off-0.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-off-0.light.svg b/images/ss-u-off-0.light.svg index 6127bfd202..dcb5b4ae23 100644 --- a/images/ss-u-off-0.light.svg +++ b/images/ss-u-off-0.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss01-1.dark.svg b/images/ss-u-ss01-1.dark.svg index 1833d684f2..1410917c86 100644 --- a/images/ss-u-ss01-1.dark.svg +++ b/images/ss-u-ss01-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss01-1.light.svg b/images/ss-u-ss01-1.light.svg index 65e4355087..fec7d67d1c 100644 --- a/images/ss-u-ss01-1.light.svg +++ b/images/ss-u-ss01-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss02-1.dark.svg b/images/ss-u-ss02-1.dark.svg index 7d907ea443..e57e245cba 100644 --- a/images/ss-u-ss02-1.dark.svg +++ b/images/ss-u-ss02-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss02-1.light.svg b/images/ss-u-ss02-1.light.svg index 7d69c4459c..c80642620b 100644 --- a/images/ss-u-ss02-1.light.svg +++ b/images/ss-u-ss02-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss03-1.dark.svg b/images/ss-u-ss03-1.dark.svg index 7305a890f8..57197f7615 100644 --- a/images/ss-u-ss03-1.dark.svg +++ b/images/ss-u-ss03-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss03-1.light.svg b/images/ss-u-ss03-1.light.svg index e4b86a0551..6dda8d1fe2 100644 --- a/images/ss-u-ss03-1.light.svg +++ b/images/ss-u-ss03-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss04-1.dark.svg b/images/ss-u-ss04-1.dark.svg index 4a97ac4bbd..b7afd4e6db 100644 --- a/images/ss-u-ss04-1.dark.svg +++ b/images/ss-u-ss04-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss04-1.light.svg b/images/ss-u-ss04-1.light.svg index ca84d3dc6b..cba001e760 100644 --- a/images/ss-u-ss04-1.light.svg +++ b/images/ss-u-ss04-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss05-1.dark.svg b/images/ss-u-ss05-1.dark.svg index 385c8b77ca..c362a61ec9 100644 --- a/images/ss-u-ss05-1.dark.svg +++ b/images/ss-u-ss05-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss05-1.light.svg b/images/ss-u-ss05-1.light.svg index 7b092b98b9..6f703c9b8f 100644 --- a/images/ss-u-ss05-1.light.svg +++ b/images/ss-u-ss05-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss06-1.dark.svg b/images/ss-u-ss06-1.dark.svg index ded318ef4e..b8f4a7be44 100644 --- a/images/ss-u-ss06-1.dark.svg +++ b/images/ss-u-ss06-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss06-1.light.svg b/images/ss-u-ss06-1.light.svg index 0bb94c629c..4bd72e6873 100644 --- a/images/ss-u-ss06-1.light.svg +++ b/images/ss-u-ss06-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss07-1.dark.svg b/images/ss-u-ss07-1.dark.svg index a09bdbdd6b..b0b8493f5d 100644 --- a/images/ss-u-ss07-1.dark.svg +++ b/images/ss-u-ss07-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss07-1.light.svg b/images/ss-u-ss07-1.light.svg index 71eb40b2cd..42390dcb0d 100644 --- a/images/ss-u-ss07-1.light.svg +++ b/images/ss-u-ss07-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss08-1.dark.svg b/images/ss-u-ss08-1.dark.svg index b49e5bd7cc..7c209e83c8 100644 --- a/images/ss-u-ss08-1.dark.svg +++ b/images/ss-u-ss08-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss08-1.light.svg b/images/ss-u-ss08-1.light.svg index d40e2982ea..4f67aa60fb 100644 --- a/images/ss-u-ss08-1.light.svg +++ b/images/ss-u-ss08-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss09-1.dark.svg b/images/ss-u-ss09-1.dark.svg index 3e301a1b0d..e016228436 100644 --- a/images/ss-u-ss09-1.dark.svg +++ b/images/ss-u-ss09-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss09-1.light.svg b/images/ss-u-ss09-1.light.svg index 1e0b6822f4..ffc15b38e4 100644 --- a/images/ss-u-ss09-1.light.svg +++ b/images/ss-u-ss09-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss10-1.dark.svg b/images/ss-u-ss10-1.dark.svg index bea913a553..680e572abe 100644 --- a/images/ss-u-ss10-1.dark.svg +++ b/images/ss-u-ss10-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss10-1.light.svg b/images/ss-u-ss10-1.light.svg index 9d0a4dea14..b24f47002b 100644 --- a/images/ss-u-ss10-1.light.svg +++ b/images/ss-u-ss10-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss11-1.dark.svg b/images/ss-u-ss11-1.dark.svg index 6ae7138856..4cc04c8fa0 100644 --- a/images/ss-u-ss11-1.dark.svg +++ b/images/ss-u-ss11-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss11-1.light.svg b/images/ss-u-ss11-1.light.svg index 134ea6d4dc..cd9417ea66 100644 --- a/images/ss-u-ss11-1.light.svg +++ b/images/ss-u-ss11-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss12-1.dark.svg b/images/ss-u-ss12-1.dark.svg index 25c1c7fc04..cafa3fad52 100644 --- a/images/ss-u-ss12-1.dark.svg +++ b/images/ss-u-ss12-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss12-1.light.svg b/images/ss-u-ss12-1.light.svg index 7e3e8f868e..8e328d5900 100644 --- a/images/ss-u-ss12-1.light.svg +++ b/images/ss-u-ss12-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss13-1.dark.svg b/images/ss-u-ss13-1.dark.svg index c97c797d17..57d034a59c 100644 --- a/images/ss-u-ss13-1.dark.svg +++ b/images/ss-u-ss13-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss13-1.light.svg b/images/ss-u-ss13-1.light.svg index d0c41dcb2e..9a9d5ddb96 100644 --- a/images/ss-u-ss13-1.light.svg +++ b/images/ss-u-ss13-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss14-1.dark.svg b/images/ss-u-ss14-1.dark.svg index 8925b402f0..5c64789f81 100644 --- a/images/ss-u-ss14-1.dark.svg +++ b/images/ss-u-ss14-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss14-1.light.svg b/images/ss-u-ss14-1.light.svg index 683832fe20..8deb630406 100644 --- a/images/ss-u-ss14-1.light.svg +++ b/images/ss-u-ss14-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss15-1.dark.svg b/images/ss-u-ss15-1.dark.svg index 6e4df54543..599010784d 100644 --- a/images/ss-u-ss15-1.dark.svg +++ b/images/ss-u-ss15-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss15-1.light.svg b/images/ss-u-ss15-1.light.svg index 0673103d64..d9438ab770 100644 --- a/images/ss-u-ss15-1.light.svg +++ b/images/ss-u-ss15-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss16-1.dark.svg b/images/ss-u-ss16-1.dark.svg index 2cfd46f33a..fdabf971f1 100644 --- a/images/ss-u-ss16-1.dark.svg +++ b/images/ss-u-ss16-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss16-1.light.svg b/images/ss-u-ss16-1.light.svg index f8eda6bef0..2f7a168514 100644 --- a/images/ss-u-ss16-1.light.svg +++ b/images/ss-u-ss16-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss17-1.dark.svg b/images/ss-u-ss17-1.dark.svg index 4bbc90bd58..3a0ad212b7 100644 --- a/images/ss-u-ss17-1.dark.svg +++ b/images/ss-u-ss17-1.dark.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss17-1.light.svg b/images/ss-u-ss17-1.light.svg index c650a1466e..18554b5edb 100644 --- a/images/ss-u-ss17-1.light.svg +++ b/images/ss-u-ss17-1.light.svg @@ -132,7 +132,7 @@ - + diff --git a/images/ss-u-ss18-1.dark.svg b/images/ss-u-ss18-1.dark.svg index 267640b7d2..eb37f67432 100644 --- a/images/ss-u-ss18-1.dark.svg +++ b/images/ss-u-ss18-1.dark.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss18-1.light.svg b/images/ss-u-ss18-1.light.svg index 6edca545c1..cdcb302f22 100644 --- a/images/ss-u-ss18-1.light.svg +++ b/images/ss-u-ss18-1.light.svg @@ -131,7 +131,7 @@ - + diff --git a/images/ss-u-ss20-1.dark.svg b/images/ss-u-ss20-1.dark.svg index c34cdeb3ea..7a85907749 100644 --- a/images/ss-u-ss20-1.dark.svg +++ b/images/ss-u-ss20-1.dark.svg @@ -133,7 +133,7 @@ - + diff --git a/images/ss-u-ss20-1.light.svg b/images/ss-u-ss20-1.light.svg index e31a2e4584..9e2cd0441e 100644 --- a/images/ss-u-ss20-1.light.svg +++ b/images/ss-u-ss20-1.light.svg @@ -133,7 +133,7 @@ - + diff --git a/package-lock.json b/package-lock.json index ce8b3a4803..0bb8a2fbfa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "iosevka", - "version": "27.3.5", + "version": "28.0.0-alpha.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "iosevka", - "version": "27.3.5", + "version": "28.0.0-alpha.1", "dependencies": { "@iarna/toml": "^2.2.5", "@msgpack/msgpack": "^2.8.0", diff --git a/package.json b/package.json index d8b6225987..12b9636ac8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "iosevka", - "version": "27.3.5", + "version": "28.0.0-alpha.1", "main": "./font-src/index.js", "scripts": { "build": "verda -f verdafile.mjs", diff --git a/params/variants.toml b/params/variants.toml index 5a13c0584e..eabe56b94f 100644 --- a/params/variants.toml +++ b/params/variants.toml @@ -197,6 +197,7 @@ selector.CTopSerifOnly = "unilateralInwardSerifed" selector.CBottomSerifOnly = "bilateralInwardSerifed" + [prime.capital-d] sampler = "D" tagKind = "letter" @@ -658,27 +659,11 @@ sampler = "M" tagKind = "letter" [prime.capital-m.variants-buildup] -entry = "middle" +entry = "sides" descriptionLeader = "`M`" -[prime.capital-m.variants-buildup.stages.middle."*"] -next = "sides" - -[prime.capital-m.variants-buildup.stages.middle.hanging] -rank = 1 -descriptionAffix = "middle being hanging off baseline" -selectorAffix.M = "hanging" -selectorAffix."M/sansSerif" = "hanging" - -[prime.capital-m.variants-buildup.stages.middle.flat-bottom] -rank = 2 -descriptionAffix = "middle aligned to baseline" -selectorAffix.M = "flatBottom" -selectorAffix."M/sansSerif" = "flatBottom" - [prime.capital-m.variants-buildup.stages.sides."*"] -next = "serifs" -mode = "prepend" +next = "middle" [prime.capital-m.variants-buildup.stages.sides.straight] rank = 1 @@ -692,6 +677,21 @@ descriptionAffix = "slanted sides" selectorAffix.M = "slantedSides" selectorAffix."M/sansSerif" = "slantedSides" +[prime.capital-m.variants-buildup.stages.middle."*"] +next = "serifs" + +[prime.capital-m.variants-buildup.stages.middle.hanging] +rank = 1 +descriptionAffix = "middle being hanging off baseline" +selectorAffix.M = "hanging" +selectorAffix."M/sansSerif" = "hanging" + +[prime.capital-m.variants-buildup.stages.middle.flat-bottom] +rank = 2 +descriptionAffix = "middle aligned to baseline" +selectorAffix.M = "flatBottom" +selectorAffix."M/sansSerif" = "flatBottom" + [prime.capital-m.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -882,39 +882,18 @@ sampler = "R" tagKind = "letter" [prime.capital-r.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "`R`" [prime.capital-r.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.capital-r.variants-buildup.stages.openness.closed] -rank = 1 -groupRank = 10 -keyAffix = "" -selectorAffix.R = "" -selectorAffix."R/sansSerif" = "" -selectorAffix.RBar = "" -selectorAffix.RRTail = "" -selectorAffix.RRotunda = "" - -[prime.capital-r.variants-buildup.stages.openness.open] -rank = 2 -groupRank = 20 -descriptionAffix = "open contour" -selectorAffix.R = "open" -selectorAffix."R/sansSerif" = "open" -selectorAffix.RBar = "" -selectorAffix.RRTail = "open" -selectorAffix.RRotunda = "" +next = "serifs" [prime.capital-r.variants-buildup.stages.leg."*"] -next = "serifs" -mode = "prepend" +next = "openness" [prime.capital-r.variants-buildup.stages.leg.straight] rank = 1 -groupRank = 1 +groupRank = 10 descriptionAffix = "straight leg" selectorAffix.R = "straight" selectorAffix."R/sansSerif" = "straight" @@ -924,7 +903,7 @@ selectorAffix.RRotunda = "straight" [prime.capital-r.variants-buildup.stages.leg.curly] rank = 2 -groupRank = 2 +groupRank = 20 descriptionAffix = "curly leg" selectorAffix.R = "curly" selectorAffix."R/sansSerif" = "curly" @@ -934,7 +913,7 @@ selectorAffix.RRotunda = "curly" [prime.capital-r.variants-buildup.stages.leg.standing] rank = 3 -groupRank = 3 +groupRank = 30 descriptionAffix = "standing leg (like Helvetica)" selectorAffix.R = "standing" selectorAffix."R/sansSerif" = "standing" @@ -942,6 +921,26 @@ selectorAffix.RBar = "standing" selectorAffix.RRTail = "standing" selectorAffix.RRotunda = "standing" +[prime.capital-r.variants-buildup.stages.openness.closed] +rank = 1 +groupRank = 1 +keyAffix = "" +selectorAffix.R = "" +selectorAffix."R/sansSerif" = "" +selectorAffix.RBar = "" +selectorAffix.RRTail = "" +selectorAffix.RRotunda = "" + +[prime.capital-r.variants-buildup.stages.openness.open] +rank = 2 +groupRank = 2 +descriptionAffix = "open contour" +selectorAffix.R = "open" +selectorAffix."R/sansSerif" = "open" +selectorAffix.RBar = "" +selectorAffix.RRTail = "open" +selectorAffix.RRotunda = "" + [prime.capital-r.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -1281,12 +1280,14 @@ rank = 1 descriptionAffix = "straight shape" selectorAffix.X = "straight" selectorAffix."X/sansSerif" = "straight" +selectorAffix."cyrl/Rha/right" = "straight" [prime.capital-x.variants-buildup.stages.body.curly] rank = 2 descriptionAffix = "curly shape" selectorAffix.X = "curly" selectorAffix."X/sansSerif" = "curly" +selectorAffix."cyrl/Rha/right" = "curly" [prime.capital-x.variants-buildup.stages.serifs.serifless] rank = 1 @@ -1294,18 +1295,21 @@ descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix.X = "serifless" selectorAffix."X/sansSerif" = "serifless" +selectorAffix."cyrl/Rha/right" = "serifless" [prime.capital-x.variants-buildup.stages.serifs.motion-serifed] rank = 2 descriptionAffix = "motion serifs" selectorAffix.X = "motionSerifed" selectorAffix."X/sansSerif" = "serifless" +selectorAffix."cyrl/Rha/right" = "serifless" [prime.capital-x.variants-buildup.stages.serifs.serifed] rank = 3 descriptionAffix = "serifs" selectorAffix.X = "serifed" selectorAffix."X/sansSerif" = "serifless" +selectorAffix."cyrl/Rha/right" = "serifed" @@ -1505,9 +1509,10 @@ descriptionLeader = "`a`" [prime.a.variants-buildup.stages.storey.double-storey] rank = 1 -next = "terminal" +next = "double-storey-hook" descriptionAffix = "double-storey body" selectorAffix.a = "doubleStorey" +selectorAffix."ae/a" = "doubleStorey" selectorAffix."a/sansSerif" = "doubleStorey" selectorAffix."a/rtailBase" = "doubleStorey" selectorAffix."a/turnABase" = "doubleStorey" @@ -1519,12 +1524,40 @@ rank = 2 next = "ear" descriptionAffix = "single-storey body" selectorAffix.a = "singleStorey" +selectorAffix."ae/a" = "doubleStorey" selectorAffix."a/sansSerif" = "singleStorey" selectorAffix."a/rtailBase" = "singleStorey" selectorAffix."a/turnABase" = "doubleStorey" selectorAffix."a/single" = "singleStorey" selectorAffix.scripta = "singleStorey" +[prime.a.variants-buildup.stages.double-storey-hook."*"] +next = "terminal" + +[prime.a.variants-buildup.stages.double-storey-hook.hook-serifless] +rank = 1 +keyAffix = "" +descriptionAffix = "serifless hook" +selectorAffix.a = "" +selectorAffix."ae/a" = "" +selectorAffix."a/sansSerif" = "" +selectorAffix."a/rtailBase" = "" +selectorAffix."a/turnABase" = "" +selectorAffix."a/single" = "" +selectorAffix.scripta = "" + +[prime.a.variants-buildup.stages.double-storey-hook.hook-serifed] +rank = 2 +keyAffix = "hook-inward-serifed" +descriptionAffix = "serifed hook" +selectorAffix.a = "hookInwardSerifed" +selectorAffix."ae/a" = "hookInwardSerifed" +selectorAffix."a/sansSerif" = "hookInwardSerifed" +selectorAffix."a/rtailBase" = "hookInwardSerifed" +selectorAffix."a/turnABase" = "hookInwardSerifed" +selectorAffix."a/single" = "" +selectorAffix.scripta = "" + [prime.a.variants-buildup.stages.ear."*"] next = "terminal" @@ -1532,6 +1565,7 @@ next = "terminal" rank = 1 keyAffix = "" selectorAffix.a = "" +selectorAffix."ae/a" = "" selectorAffix."a/sansSerif" = "" selectorAffix."a/rtailBase" = "" selectorAffix."a/turnABase" = "" @@ -1542,6 +1576,7 @@ selectorAffix.scripta = "" rank = 2 descriptionAffix = "earless (cornered top-right)" selectorAffix.a = "earlessCorner" +selectorAffix."ae/a" = "" selectorAffix."a/sansSerif" = "earlessCorner" selectorAffix."a/rtailBase" = "earlessCorner" selectorAffix."a/turnABase" = "" @@ -1552,6 +1587,7 @@ selectorAffix.scripta = "" rank = 3 descriptionAffix = "earless (rounded top-right)" selectorAffix.a = "earlessRounded" +selectorAffix."ae/a" = "" selectorAffix."a/sansSerif" = "earlessRounded" selectorAffix."a/rtailBase" = "earlessRounded" selectorAffix."a/turnABase" = "" @@ -1563,6 +1599,7 @@ rank = 1 descriptionAffix = "serif at terminal" descriptionJoiner = "without" selectorAffix.a = "serifless" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "serifless" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "serifless" @@ -1573,6 +1610,7 @@ selectorAffix.scripta = "serifless" rank = 2 descriptionAffix = "curly tail" selectorAffix.a = "tailed" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "tailed" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "tailed" @@ -1584,6 +1622,7 @@ rank = 3 disableIf = [{ storey = "single-storey" }] descriptionAffix = "toothless (cornered bottom-right)" selectorAffix.a = "toothlessCorner" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "toothlessCorner" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "toothlessCorner" @@ -1595,6 +1634,7 @@ rank = 4 disableIf = [{ storey = "single-storey" }] descriptionAffix = "toothless (rounded bottom-right)" selectorAffix.a = "toothlessRounded" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "toothlessRounded" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "toothlessRounded" @@ -1605,6 +1645,7 @@ selectorAffix.scripta = "serifless" rank = 5 descriptionAffix = "serif at terminal" selectorAffix.a = "serifed" +selectorAffix."ae/a" = "serifless" selectorAffix."a/sansSerif" = "serifless" selectorAffix."a/rtailBase" = "serifless" selectorAffix."a/turnABase" = "serifed" @@ -1612,6 +1653,7 @@ selectorAffix."a/single" = "serifed" selectorAffix.scripta = "serifed" + [prime.b] sampler = "b" tagKind = "letter" @@ -1790,10 +1832,10 @@ selectorAffix.d = "toothlessRounded" selectorAffix."d/sansSerif" = "toothlessRounded" selectorAffix."d/phoneticLeft" = "toothed" selectorAffix."d/descBase" = "toothed" -selectorAffix."d/hookBottomBase" = "toothlessRoundedHBB" +selectorAffix."d/hookBottomBase" = "toothed" selectorAffix.dCurlyTail = "toothed" selectorAffix.dHookTop = "toothlessRounded" -selectorAffix."dHookTop/hookBottomBase" = "toothlessRoundedHBB" +selectorAffix."dHookTop/hookBottomBase" = "toothed" selectorAffix."cyrl/djeKomi" = "toothlessRounded" [prime.d.variants-buildup.stages.body.tailed] @@ -1894,12 +1936,11 @@ sampler = "f" tagKind = "letter" [prime.f.variants-buildup] -entry = "tail" +entry = "hook" descriptionLeader = "`f`" [prime.f.variants-buildup.stages.hook."*"] -next = "crossbar" -mode = "prepend" +next = "tail" [prime.f.variants-buildup.stages.hook.full] rank = 1 @@ -1928,7 +1969,7 @@ selectorAffix.fLenis = "flatHook" selectorAffix.fLTail = "flatHook" [prime.f.variants-buildup.stages.tail."*"] -next = "hook" +next = "crossbar" [prime.f.variants-buildup.stages.tail.serifless] rank = 1 @@ -2125,7 +2166,7 @@ descriptionAffix = "earless (cornered top-right)" selectorAffix.g = "earlessCorner" selectorAffix."g/sansSerif" = "earlessCorner" selectorAffix."gScript" = "scriptCut" -selectorAffix."gScript/hookTopBase" = "serifless" +selectorAffix."gScript/hookTopBase" = "earlessCornerHTB" selectorAffix."gScriptCrossedTail" = "scriptCut" selectorAffix."g/single" = "earlessCorner" @@ -2221,6 +2262,7 @@ selectorAffix.heng = "serifed" selectorAffix."cyrl/shha" = "serifed" + [prime.i] sampler = "i" tagKind = "letter" @@ -2754,6 +2796,7 @@ selector.lCurlyTail = "hooky" selector.lyogh = "hooky" + [prime.m] sampler = "m" tagKind = "letter" @@ -3126,7 +3169,7 @@ rank = 3 descriptionAffix = "earless (rounded) shape" selectorAffix.p = "earlessRounded" selectorAffix."p/sansSerif" = "earlessRounded" -selectorAffix."p/hookTopBase" = "earlessRounded" +selectorAffix."p/hookTopBase" = "eared" [prime.p.variants-buildup.stages.serifs.serifless] rank = 1 @@ -3196,7 +3239,7 @@ rank = 3 descriptionAffix = "earless (rounded) shape" selectorAffix.q = "earlessRounded" selectorAffix."q/sansSerif" = "earlessRounded" -selectorAffix."q/hookTopBase" = "earlessRounded" +selectorAffix."q/hookTopBase" = "" selectorAffix.qRTail = "earlessRounded" [prime.q.variants-buildup.stages.terminal."*"] @@ -3296,7 +3339,7 @@ selectorAffix.r = "earlessCorner" selectorAffix."r/sansSerif" = "earlessCorner" selectorAffix.rRTail = "earlessCorner" selectorAffix."rTurnRTail" = "" -selectorAffix."rFlap" = "earlessCorner" +selectorAffix."rFlap" = "earlessRounded" selectorAffix."iFishHook" = "" [prime.r.variants-buildup.stages.body.earless-rounded] @@ -3451,11 +3494,11 @@ sampler = "t" tagKind = "letter" [prime.t.variants-buildup] -entry = "height" +entry = "body" descriptionLeader = "`t`" [prime.t.variants-buildup.stages.body."*"] -mode = "prepend" +next = "symmetry" [prime.t.variants-buildup.stages.body.bent-hook] rank = 1 @@ -3515,8 +3558,7 @@ selectorAffix.tCurlyTail = {if = [{symmetry = "asymmetric"}], then = "flatHook", selectorAffix."tsLig/upperHalf" = "bentHook" [prime.t.variants-buildup.stages.symmetry."*"] -next = "body" -mode = "prepend" +next = "height" [prime.t.variants-buildup.stages.symmetry.symmetric] rank = 1 @@ -3549,7 +3591,6 @@ selectorAffix.tCurlyTail = "asymmetric" selectorAffix."tsLig/upperHalf" = "" [prime.t.variants-buildup.stages.height."*"] -next = "symmetry" [prime.t.variants-buildup.stages.height.full] rank = 1 @@ -3940,6 +3981,7 @@ descriptionAffix = "straight shape" selectorAffix.x = "straight" selectorAffix."x/sansSerif" = "straight" selectorAffix."cyrl/ha" = "straight" +selectorAffix."cyrl/rha/right" = "straight" [prime.x.variants-buildup.stages.body.curly] rank = 2 @@ -3947,6 +3989,7 @@ descriptionAffix = "curly shape" selectorAffix.x = "curly" selectorAffix."x/sansSerif" = "curly" selectorAffix."cyrl/ha" = "curly" +selectorAffix."cyrl/rha/right" = "curly" [prime.x.variants-buildup.stages.body.cursive] rank = 3 @@ -3955,33 +3998,34 @@ descriptionAffix = "cursive shape" selectorAffix.x = "cursive" selectorAffix."x/sansSerif" = "cursive" selectorAffix."cyrl/ha" = "cursive" +selectorAffix."cyrl/rha/right" = "cursive" [prime.x.variants-buildup.stages.body.semi-chancery-straight] rank = 4 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with straight counter-leg" selectorAffix.x = "semiChanceryStraight" selectorAffix."x/sansSerif" = "semiChanceryStraight" selectorAffix."cyrl/ha" = "semiChanceryStraight" +selectorAffix."cyrl/rha/right" = "semiChanceryStraight" [prime.x.variants-buildup.stages.body.semi-chancery-curly] rank = 5 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with curly counter-leg" selectorAffix.x = "semiChanceryCurly" selectorAffix."x/sansSerif" = "semiChanceryCurly" selectorAffix."cyrl/ha" = "semiChanceryCurly" +selectorAffix."cyrl/rha/right" = "semiChanceryCurly" [prime.x.variants-buildup.stages.body.chancery] rank = 6 -nonBreakingVariantAdditionPriority = 200 next = "END" descriptionAffix = "Chancery shape" selectorAffix.x = "chancery" selectorAffix."x/sansSerif" = "chancery" selectorAffix."cyrl/ha" = "chancery" +selectorAffix."cyrl/rha/right" = "chancery" [prime.x.variants-buildup.stages.serifs.serifless] rank = 1 @@ -3990,6 +4034,7 @@ descriptionJoiner = "without" selectorAffix.x = "serifless" selectorAffix."x/sansSerif" = "serifless" selectorAffix."cyrl/ha" = "serifless" +selectorAffix."cyrl/rha/right" = "serifless" [prime.x.variants-buildup.stages.serifs.motion-serifed] rank = 2 @@ -3997,6 +4042,7 @@ descriptionAffix = "motion serifs" selectorAffix.x = "motionSerifed" selectorAffix."x/sansSerif" = "serifless" selectorAffix."cyrl/ha" = "motionSerifed" +selectorAffix."cyrl/rha/right" = "serifless" [prime.x.variants-buildup.stages.serifs.serifed] rank = 3 @@ -4004,6 +4050,7 @@ descriptionAffix = "serifs" selectorAffix.x = "serifed" selectorAffix."x/sansSerif" = "serifless" selectorAffix."cyrl/ha" = "serifed" +selectorAffix."cyrl/rha/right" = "serifed" @@ -4228,14 +4275,34 @@ samplerExplain = "Long-S" tagKind = "letter" [prime.long-s.variants-buildup] -entry = "bottom" +entry = "top" descriptionLeader = "Long S (`ſ`)" +[prime.long-s.variants-buildup.stages.top."*"] +next = "bottom" + +[prime.long-s.variants-buildup.stages.top.bent-hook] +rank = 1 +groupRank = 10 +descriptionAffix = "bending top hook" +selectorAffix."longs" = "bentHook" +selectorAffix."longs/flatExt" = "flatHookExt" +selectorAffix."longsBar" = "bentHook" + +[prime.long-s.variants-buildup.stages.top.flat-hook] +rank = 2 +groupRank = 20 +descriptionAffix = "flat top hook" +selectorAffix."longs" = "flatHook" +selectorAffix."longs/flatExt" = "flatHookExt" +selectorAffix."longsBar" = "flatHook" + [prime.long-s.variants-buildup.stages.bottom."*"] -next = "top" +next = "serifs" [prime.long-s.variants-buildup.stages.bottom.non-descending] rank = 1 +groupRank = 1 keyAffix = "" selectorAffix."longs" = "" selectorAffix."longs/flatExt" = "" @@ -4243,6 +4310,7 @@ selectorAffix."longsBar" = "" [prime.long-s.variants-buildup.stages.bottom.descending] rank = 2 +groupRank = 2 descriptionAffix = "terminal descends baseline" selectorAffix."longs" = "descending" selectorAffix."longs/flatExt" = "descending" @@ -4250,6 +4318,7 @@ selectorAffix."longsBar" = "descending" [prime.long-s.variants-buildup.stages.bottom.tailed] rank = 3 +groupRank = 3 descriptionAffix = "terminal has a tail" selectorAffix."longs" = "tailed" selectorAffix."longs/flatExt" = "tailed" @@ -4257,29 +4326,12 @@ selectorAffix."longsBar" = "tailed" [prime.long-s.variants-buildup.stages.bottom.diagonal-tailed] rank = 4 +groupRank = 4 descriptionAffix = "terminal has a diagonal tail" selectorAffix."longs" = "diagonalTailed" selectorAffix."longs/flatExt" = "diagonalTailed" selectorAffix."longsBar" = "diagonalTailed" -[prime.long-s.variants-buildup.stages.top."*"] -next = "serifs" -mode = "prepend" - -[prime.long-s.variants-buildup.stages.top.bent-hook] -rank = 1 -descriptionAffix = "bending top hook" -selectorAffix."longs" = "bentHook" -selectorAffix."longs/flatExt" = "flatHookExt" -selectorAffix."longsBar" = "bentHook" - -[prime.long-s.variants-buildup.stages.top.flat-hook] -rank = 2 -descriptionAffix = "flat top hook" -selectorAffix."longs" = "flatHook" -selectorAffix."longs/flatExt" = "flatHookExt" -selectorAffix."longsBar" = "flatHook" - [prime.long-s.variants-buildup.stages.serifs.serifless__non-descending] rank = 1 enableIf = [{ bottom = "non-descending" }] @@ -4760,21 +4812,21 @@ rank = 2 description = "Greek small Lambda (`λ`) with straight upper and a tail turns leftward" selector."grek/lambda" = "straightTurnSerifless" -[prime.lower-lambda.variants.curly] +[prime.lower-lambda.variants.tailed-turn] rank = 3 +description = "More curly Greek small Lambda (`λ`), with a tail turns leftward at top and a tail turns right at bottom-right" +selector."grek/lambda" = "tailedTurnSerifless" + +[prime.lower-lambda.variants.curly] +rank = 4 description = "More curly Greek small Lambda (`λ`), like Iosevka 2.x" selector."grek/lambda" = "curlySerifless" [prime.lower-lambda.variants.curly-turn] -rank = 4 +rank = 5 description = "More curly Greek small Lambda (`λ`), like Iosevka 2.x, with a tail turns leftward" selector."grek/lambda" = "curlyTurnSerifless" -[prime.lower-lambda.variants.tailed-turn] -rank = 5 -description = "More curly Greek small Lambda (`λ`), with a tail turns leftward at top and a tail turns right at bottom-right" -selector."grek/lambda" = "tailedTurnSerifless" - [prime.lower-lambda.variants.curly-tailed-turn] rank = 6 description = "More curly Greek small Lambda (`λ`), with a tail turns leftward at top, a tail turns right at bottom-right, and curly bottom-left leg" @@ -4895,31 +4947,31 @@ rank = 1 description = "Greek lower Tau (`τ`) with a tailless shape" selector."grek/tau" = "tau/tailless" -[prime.lower-tau.variants.tailed] +[prime.lower-tau.variants.short-tailed] rank = 2 +description = "Greek lower Tau (`τ`) with a very short tail" +selector."grek/tau" = "tau/shortTailed" + +[prime.lower-tau.variants.tailed] +rank = 3 description = "Greek lower Tau (`τ`) with curly tail" selector."grek/tau" = "tau/tailed" [prime.lower-tau.variants.flat-tailed] -rank = 3 +rank = 4 description = "Greek lower Tau (`τ`) with a flat tail" selector."grek/tau" = "tau/flatTailed" [prime.lower-tau.variants.diagonal-tailed] -rank = 4 +rank = 5 description = "Greek lower Tau (`τ`) with a diagonal tail" selector."grek/tau" = "tau/diagonalTailed" [prime.lower-tau.variants.semi-tailed] -rank = 5 +rank = 6 description = "Greek lower Tau (`τ`) with a slightly curly tail" selector."grek/tau" = "tau/semiTailed" -[prime.lower-tau.variants.short-tailed] -rank = 6 -description = "Greek lower Tau (`τ`) with a very short tail" -selector."grek/tau" = "tau/shortTailed" - [prime.lower-chi] @@ -4948,7 +5000,6 @@ selectorAffix."grek/chi/sansSerif" = "curly" [prime.lower-chi.variants-buildup.stages.body.semi-chancery-straight] rank = 3 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with straight counter-leg" selectorAffix."grek/chi" = "semiChanceryStraight" @@ -4956,7 +5007,6 @@ selectorAffix."grek/chi/sansSerif" = "semiChanceryStraight" [prime.lower-chi.variants-buildup.stages.body.semi-chancery-curly] rank = 4 -nonBreakingVariantAdditionPriority = 100 next = "END" descriptionAffix = "Semi-chancery shape with curly counter-leg" selectorAffix."grek/chi" = "semiChanceryCurly" @@ -4964,13 +5014,11 @@ selectorAffix."grek/chi/sansSerif" = "semiChanceryCurly" [prime.lower-chi.variants-buildup.stages.body.chancery] rank = 5 -nonBreakingVariantAdditionPriority = 200 next = "END" descriptionAffix = "Chancery shape" selectorAffix."grek/chi" = "chancery" selectorAffix."grek/chi/sansSerif" = "chancery" - [prime.lower-chi.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -5356,12 +5404,25 @@ sampler = "м" samplerExplain = "Cyrillic Lower Em" tagKind = "letter" +[prime.cyrl-em.variants-buildup.stages.sides."*"] +next = "middle" + +[prime.cyrl-em.variants-buildup.stages.sides.straight] +rank = 1 +keyAffix = "" +selectorAffix."cyrl/em" = "" + +[prime.cyrl-em.variants-buildup.stages.sides.slanted-sides] +rank = 2 +descriptionAffix = "slanted sides" +selectorAffix."cyrl/em" = "slantedSides" + [prime.cyrl-em.variants-buildup] -entry = "middle" +entry = "sides" descriptionLeader = "Cyrillic Lower Em (`м`)" [prime.cyrl-em.variants-buildup.stages.middle."*"] -next = "sides" +next = "serifs" [prime.cyrl-em.variants-buildup.stages.middle.hanging] rank = 1 @@ -5373,20 +5434,6 @@ rank = 2 descriptionAffix = "middle aligned to baseline" selectorAffix."cyrl/em" = "flatBottom" -[prime.cyrl-em.variants-buildup.stages.sides."*"] -next = "serifs" -mode = "prepend" - -[prime.cyrl-em.variants-buildup.stages.sides.straight] -rank = 1 -keyAffix = "" -selectorAffix."cyrl/em" = "" - -[prime.cyrl-em.variants-buildup.stages.sides.slanted-sides] -rank = 2 -descriptionAffix = "slanted sides" -selectorAffix."cyrl/em" = "slantedSides" - [prime.cyrl-em.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" @@ -5484,7 +5531,6 @@ selectorAffix."cyrl/njeKomi" = "serifedExceptBottomRight" [prime.cyrl-er] sampler = "р" samplerExplain = "Cyrillic Lower Er" -nonBreakingTagForNewVariantSelector = "VXAA" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.cyrl-er.variants-buildup] @@ -5605,7 +5651,6 @@ selectorAffix."cyrl/U" = "serifed" [prime.cyrl-u] sampler = "у" samplerExplain = "Cyrillic Lower U" -nonBreakingTagForNewVariantSelector = "VXAB" # REMOVE IN NEXT MAJOR VERSION CHANGE tagKind = "letter" [prime.cyrl-u.variants-buildup] @@ -5688,7 +5733,6 @@ selectorAffix."cyrl/ef.BGR" = "" [prime.cyrl-ef.variants-buildup.stages.bowl.split] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "split bowl" selectorAffix."cyrl/ef" = "splitBowl" selectorAffix."cyrl/ef.BGR" = "" @@ -5719,14 +5763,12 @@ selectorAffix."cyrl/ef.BGR" = "serifless" [prime.cyrl-ef.variants-buildup.stages.serifs.top-serifed] rank = 2 -nonBreakingVariantAdditionPriority = 10 descriptionAffix = "serif at top" selectorAffix."cyrl/ef" = "topSerifed" selectorAffix."cyrl/ef.BGR" = "topSerifed" [prime.cyrl-ef.variants-buildup.stages.serifs.serifed] rank = 3 -nonBreakingVariantAdditionPriority = 10 descriptionAffix = "serifs at top and bottom" selectorAffix."cyrl/ef" = "serifed" selectorAffix."cyrl/ef.BGR" = "serifed" @@ -5873,56 +5915,63 @@ samplerExplain = "Cyrillic Capital Ya" tagKind = "letter" [prime.cyrl-capital-ya.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "Cyrillic Capital Ya (`Я`)" -[prime.cyrl-capital-ya.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.cyrl-capital-ya.variants-buildup.stages.openness.closed] -rank = 1 -keyAffix = "" -selectorAffix."cyrl/Ya" = "" - -[prime.cyrl-capital-ya.variants-buildup.stages.openness.open] -rank = 2 -descriptionAffix = "open contour" -selectorAffix."cyrl/Ya" = "open" - [prime.cyrl-capital-ya.variants-buildup.stages.leg."*"] -next = "serifs" -mode = "prepend" +next = "openness" [prime.cyrl-capital-ya.variants-buildup.stages.leg.straight] rank = 1 descriptionAffix = "straight leg" selectorAffix."cyrl/Ya" = "straight" +selectorAffix."cyrl/Yae/left" = "straight" [prime.cyrl-capital-ya.variants-buildup.stages.leg.curly] rank = 2 descriptionAffix = "curly leg" selectorAffix."cyrl/Ya" = "curly" +selectorAffix."cyrl/Yae/left" = "curly" [prime.cyrl-capital-ya.variants-buildup.stages.leg.standing] rank = 3 descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/Ya" = "standing" +selectorAffix."cyrl/Yae/left" = "standing" + +[prime.cyrl-capital-ya.variants-buildup.stages.openness."*"] +next = "serifs" + +[prime.cyrl-capital-ya.variants-buildup.stages.openness.closed] +rank = 1 +keyAffix = "" +selectorAffix."cyrl/Ya" = "" +selectorAffix."cyrl/Yae/left" = "" + +[prime.cyrl-capital-ya.variants-buildup.stages.openness.open] +rank = 2 +descriptionAffix = "open contour" +selectorAffix."cyrl/Ya" = "open" +selectorAffix."cyrl/Yae/left" = "open" [prime.cyrl-capital-ya.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix."cyrl/Ya" = "serifless" +selectorAffix."cyrl/Yae/left" = "serifless" [prime.cyrl-capital-ya.variants-buildup.stages.serifs.motion-serifed] rank = 2 descriptionAffix = "motion serifs at bottom-left" selectorAffix."cyrl/Ya" = "bottomRightSerifed" +selectorAffix."cyrl/Yae/left" = "bottomRightSerifed" [prime.cyrl-capital-ya.variants-buildup.stages.serifs.serifed] rank = 3 descriptionAffix = "serifs" selectorAffix."cyrl/Ya" = "serifed" +selectorAffix."cyrl/Yae/left" = "bottomRightSerifed" @@ -5932,45 +5981,49 @@ samplerExplain = "Cyrillic Lower Ya" tagKind = "letter" [prime.cyrl-ya.variants-buildup] -entry = "openness" +entry = "leg" descriptionLeader = "Cyrillic Lower Ya (`я`)" -[prime.cyrl-ya.variants-buildup.stages.openness."*"] -next = "leg" - -[prime.cyrl-ya.variants-buildup.stages.openness.closed] -rank = 1 -groupRrank = 10 -keyAffix = "" -selectorAffix."cyrl/ya" = "" - -[prime.cyrl-ya.variants-buildup.stages.openness.open] -rank = 2 -groupRrank = 20 -descriptionAffix = "open contour" -selectorAffix."cyrl/ya" = "open" - [prime.cyrl-ya.variants-buildup.stages.leg."*"] -next = "tails" -mode = "prepend" +next = "openness" [prime.cyrl-ya.variants-buildup.stages.leg.straight] rank = 1 groupRank = 1 descriptionAffix = "straight leg" selectorAffix."cyrl/ya" = "straight" +selectorAffix."cyrl/yae/left" = "straight" [prime.cyrl-ya.variants-buildup.stages.leg.curly] rank = 2 groupRank = 2 descriptionAffix = "curly leg" selectorAffix."cyrl/ya" = "curly" +selectorAffix."cyrl/yae/left" = "curly" [prime.cyrl-ya.variants-buildup.stages.leg.standing] rank = 3 groupRank = 3 descriptionAffix = "standing leg (like Helvetica)" selectorAffix."cyrl/ya" = "standing" +selectorAffix."cyrl/yae/left" = "standing" + +[prime.cyrl-ya.variants-buildup.stages.openness."*"] +next = "tails" + +[prime.cyrl-ya.variants-buildup.stages.openness.closed] +rank = 1 +groupRrank = 10 +keyAffix = "" +selectorAffix."cyrl/ya" = "" +selectorAffix."cyrl/yae/left" = "" + +[prime.cyrl-ya.variants-buildup.stages.openness.open] +rank = 2 +groupRrank = 20 +descriptionAffix = "open contour" +selectorAffix."cyrl/ya" = "open" +selectorAffix."cyrl/yae/left" = "open" [prime.cyrl-ya.variants-buildup.stages.tails."*"] next = "serifs" @@ -5979,27 +6032,32 @@ next = "serifs" rank = 1 keyAffix = "" selectorAffix."cyrl/ya" = "" +selectorAffix."cyrl/yae/left" = "" [prime.cyrl-ya.variants-buildup.stages.tails.tailed] rank = 2 descriptionAffix = "tail" selectorAffix."cyrl/ya" = "tailed" +selectorAffix."cyrl/yae/left" = "" [prime.cyrl-ya.variants-buildup.stages.serifs.serifless] rank = 1 descriptionAffix = "serifs" descriptionJoiner = "without" selectorAffix."cyrl/ya" = "serifless" +selectorAffix."cyrl/yae/left" = "serifless" [prime.cyrl-ya.variants-buildup.stages.serifs.motion-serifed] rank = 2 descriptionAffix = "motion serifs at bottom-left" selectorAffix."cyrl/ya" = "bottomRightSerifed" +selectorAffix."cyrl/yae/left" = "bottomRightSerifed" [prime.cyrl-ya.variants-buildup.stages.serifs.serifed] rank = 3 descriptionAffix = "serifs" selectorAffix."cyrl/ya" = "smallCyrl" +selectorAffix."cyrl/yae/left" = "bottomRightSerifed" @@ -6326,7 +6384,6 @@ selectorAffix.zhuangToneFive = "arched" [prime.five.variants-buildup.stages.middle.flat] rank = 2 -nonBreakingVariantAdditionPriority = 100 descriptionAffix = "flat middle part" selectorAffix.five = "flat" selectorAffix.zhuangToneFive = "flat" @@ -6600,7 +6657,7 @@ tagKind = "symbol" [prime.underscore.variants.above-baseline] rank = 1 -description = "Extra-high `_`, placed right below baseline" +description = "Extra-high `_`, placed right above baseline" selector.underscore = "aboveBaseline" [prime.underscore.variants.high] @@ -6636,6 +6693,43 @@ selector.asciiCaret = "low" +[prime.ascii-grave] +sampler = "`" +tagKind = "symbol" + +[prime.ascii-grave.variants.straight] +rank = 1 +description = "Show ASCII grave (`` ` ``) as short diagonal straight bar." +selector.asciiGrave = "straight" + +[prime.ascii-grave.variants.raised-inverse-comma] +rank = 2 +description = "Show ASCII grave (`` ` ``) as raised comma." +selector.asciiGrave = "raisedInverseComma" + +[prime.ascii-grave.variants.raised-turn-comma] +rank = 3 +description = "Show ASCII grave (`` ` ``) as raised turned comma, identical to curly open single quote symbols (U+2018)." +selector.asciiGrave = "raisedTurnComma" + + + +[prime.ascii-single-quote] +sampler = "'" +tagKind = "symbol" + +[prime.ascii-single-quote.variants.straight] +rank = 1 +description = 'Show ASCII quote (`"`) as short vertical straight bar.' +selector.asciiSingleQuote = "straight" + +[prime.ascii-single-quote.variants.raised-comma] +rank = 2 +description = 'Show ASCII quote (`"`) as raised comma.' +selector.asciiSingleQuote = "raisedComma" + + + [prime.paren] sampler = "( )" tagKind = "symbol" @@ -6792,6 +6886,7 @@ description = "Ampersand (`&`) drawn like a ligature of Ɛ and t with tail" selector.ampersand = "etTailed" + [prime.at] sampler = "@" tagKind = "symbol" @@ -6880,6 +6975,42 @@ selector.dollar = "interruptedCap" +[prime.cent] +sampler = "¢" +tagKind = "symbol" + +[prime.cent.variants.open] +rank = 1 +description = "Cent sign (`¢`) with open contour" +selector.cent = "open" + +[prime.cent.variants.through] +rank = 2 +description = "Cent sign (`¢`) with vertical bar all through the `c` part" +selector.cent = "through" + +[prime.cent.variants.bar-interrupted] +rank = 3 +description = "Cent sign (`¢`) with vertical bar breaks at center" +selector.cent = "interrupted" + +[prime.cent.variants.open-cap] +rank = 4 +description = "Cent sign (`¢`) with open contour, sized not exceeding baseline and ascender" +selector.cent = "openCap" + +[prime.cent.variants.through-cap] +rank = 5 +description = "Cent sign (`¢`) with vertical bar all through the `c` part, sized not exceeding baseline and ascender" +selector.cent = "throughCap" + +[prime.cent.variants.bar-interrupted-cap] +rank = 6 +description = "Cent sign (`¢`) with vertical bar breaks at center, sized not exceeding baseline and ascender" +selector.cent = "interruptedCap" + + + [prime.percent] sampler = "%" tagKind = "symbol" @@ -6931,43 +7062,6 @@ selector."bar.slanted" = "forceUpright" -[prime.ascii-single-quote] -sampler = "'" -tagKind = "symbol" - -[prime.ascii-single-quote.variants.straight] -rank = 1 -description = 'Show ASCII quote (`"`) as short vertical straight bar.' -selector.asciiSingleQuote = "straight" - -[prime.ascii-single-quote.variants.raised-comma] -rank = 2 -description = 'Show ASCII quote (`"`) as raised comma.' -selector.asciiSingleQuote = "raisedComma" - - - -[prime.ascii-grave] -sampler = "`" -tagKind = "symbol" - -[prime.ascii-grave.variants.straight] -rank = 1 -description = "Show ASCII grave (`` ` ``) as short diagonal straight bar." -selector.asciiGrave = "straight" - -[prime.ascii-grave.variants.raised-inverse-comma] -rank = 2 -description = "Show ASCII grave (`` ` ``) as raised comma." -selector.asciiGrave = "raisedInverseComma" - -[prime.ascii-grave.variants.raised-turn-comma] -rank = 3 -description = "Show ASCII grave (`` ` ``) as raised turned comma, identical to curly open single quote symbols (U+2018)." -selector.asciiGrave = "raisedTurnComma" - - - [prime.question] sampler = "?" tagKind = "symbol" @@ -7007,42 +7101,6 @@ selector.revPilcrow = "low" -[prime.cent] -sampler = "¢" -tagKind = "symbol" - -[prime.cent.variants.open] -rank = 1 -description = "Cent sign (`¢`) with open contour" -selector.cent = "open" - -[prime.cent.variants.through] -rank = 2 -description = "Cent sign (`¢`) with vertical bar all through the `c` part" -selector.cent = "through" - -[prime.cent.variants.bar-interrupted] -rank = 3 -description = "Cent sign (`¢`) with vertical bar breaks at center" -selector.cent = "interrupted" - -[prime.cent.variants.open-cap] -rank = 4 -description = "Cent sign (`¢`) with open contour, sized not exceeding baseline and ascender" -selector.cent = "openCap" - -[prime.cent.variants.through-cap] -rank = 5 -description = "Cent sign (`¢`) with vertical bar all through the `c` part, sized not exceeding baseline and ascender" -selector.cent = "throughCap" - -[prime.cent.variants.bar-interrupted-cap] -rank = 6 -description = "Cent sign (`¢`) with vertical bar breaks at center, sized not exceeding baseline and ascender" -selector.cent = "interruptedCap" - - - [prime.partial-derivative] sampler = "∂" samplerExplain = "Partial derivative symbol" diff --git a/private-build-plans.sample.toml b/private-build-plans.sample.toml index cc0bfd4a31..03ddd92fb2 100644 --- a/private-build-plans.sample.toml +++ b/private-build-plans.sample.toml @@ -1,32 +1,32 @@ -### See https://github.com/be5invis/Iosevka/blob/master/doc/custom-build.md for comprehensive +### See https://github.com/be5invis/Iosevka/blob/master/doc/custom-build.md for comprehensive ### documentation of the options in this file -[buildPlans.iosevka-custom] # is your plan name +[buildPlans.IosevkaCustom] # is your plan name family = "Iosevka Custom" # Font menu family name spacing = "normal" # Optional; Values: `normal`, `term`, `fontconfig-mono`, or `fixed` serifs = "sans" # Optional; Values: `sans` or `slab` -export-glyph-names = false # Set this to true for ligature support in Kitty (increased file size) +exportGlyphNames = false # Set this to true for ligature support in Kitty (increased file size) -webfont-formats = ['ttf', 'woff2'] +webfontFormats = ['ttf', 'woff2'] ################################################################################################### # Configure variants # Optional; Whether to inherit a `ss##` variant -[buildPlans.iosevka-custom.variants] +[buildPlans.IosevkaCustom.variants] inherits = "ss01" # Optional; Configure single character's variant -[buildPlans.iosevka-custom.variants.design] +[buildPlans.IosevkaCustom.variants.design] g = 'single-storey-serifless' # Optional; Configure single character's variant for Upright and Oblique; Overrides [design] -[buildPlans.iosevka-custom.variants.upright] +[buildPlans.IosevkaCustom.variants.upright] i = 'zshaped' l = 'zshaped' # Optional; Configure single character's variant for Italic only; Overrides [design] -[buildPlans.iosevka-custom.variants.italic] +[buildPlans.IosevkaCustom.variants.italic] i = 'tailed-serifed' l = 'tailed-serifed' @@ -36,7 +36,7 @@ l = 'tailed-serifed' ################################################################################################### # Configure ligations -[buildPlans.iosevka-custom.ligations] +[buildPlans.IosevkaCustom.ligations] inherits = "default-calt" # Optional; inherits an existing ligation set disables = [] # Optional; disable specific ligation groups, overrides inherited ligation set enables = [] # Optional; enable specific ligation groups, overrides inherited ligation set @@ -53,17 +53,17 @@ enables = [] # Optional; enable specific ligation groups, overrid # and "shape" properly only supports number between 100 and 900 (inclusive). # If you decide to use custom weights you have to define all the weights you # plan to use otherwise they will not be built. -[buildPlans.iosevka-custom.weights.regular] +[buildPlans.IosevkaCustom.weights.Regular] shape = 400 # Weight for glyph shapes. menu = 400 # Weight for the font's names. css = 400 # Weight for webfont CSS. -[buildPlans.iosevka-custom.weights.book] +[buildPlans.IosevkaCustom.weights.Book] shape = 450 menu = 450 # Use 450 here to name the font's weight "Book" css = 450 -[buildPlans.iosevka-custom.weights.bold] +[buildPlans.IosevkaCustom.weights.Bold] shape = 700 menu = 700 css = 700 @@ -75,19 +75,19 @@ css = 700 # Override default building slope sets # When this section is absent, all slopes would be built. -[buildPlans.iosevka-custom.slopes.upright] +[buildPlans.IosevkaCustom.slopes.Upright] angle = 0 # Angle in degrees. Valid range [0, 15] shape = "upright" # Slope grade used for shape selection. `upright` | `oblique` | `italic` menu = "upright" # Slope grade used for naming. `upright` | `oblique` | `italic` css = "normal" # Slope grade used for webfont CSS. `normal` | `oblique` | `italic` -[buildPlans.iosevka-custom.slopes.oblique] +[buildPlans.IosevkaCustom.slopes.Oblique] angle = 9.4 shape = "oblique" menu = "oblique" css = "oblique" -[buildPlans.iosevka-custom.slopes.italic] +[buildPlans.IosevkaCustom.slopes.Italic] angle = 9.4 shape = "italic" menu = "italic" @@ -106,12 +106,12 @@ css = "italic" # If you decide to use custom widths you have to define all the widths you plan to use, # otherwise they will not be built. -[buildPlans.iosevka-custom.widths.normal] +[buildPlans.IosevkaCustom.widths.Normal] shape = 500 # Unit Width, measured in 1/1000 em. menu = 5 # Width grade for the font's names. css = "normal" # "font-stretch' property of webfont CSS. -[buildPlans.iosevka-custom.widths.extended] +[buildPlans.IosevkaCustom.widths.Extended] shape = 600 menu = 7 css = "expanded" @@ -124,7 +124,7 @@ css = "expanded" # Specify character ranges in the section below to exclude certain characters from the font being # built. Remove this section when this feature is not needed. -[buildPlans.iosevka-custom.exclude-chars] +[buildPlans.IosevkaCustom.excludeChars] ranges = [[10003, 10008]] # End character exclusion @@ -137,7 +137,7 @@ ranges = [[10003, 10008]] # following section to build PUA characters that are generated from the OpenType ligatures. # Remove this section when compatibility ligatures are not needed. -[[buildPlans.iosevka-custom.compatibility-ligatures]] +[[buildPlans.IosevkaCustom.compatibilityLigatures]] unicode = 57600 # 0xE100 featureTag = 'calt' sequence = '<*>' @@ -150,7 +150,7 @@ sequence = '<*>' # Certain metrics like line height (leading) could be overridden in your build plan file. # Edit the values to change the metrics. Remove this section when overriding is not needed. -[buildPlans.iosevka-custom.metric-override] +[buildPlans.IosevkaCustom.metricOverride] leading = 1250 winMetricAscenderPad = 0 winMetricDescenderPad = 0 diff --git a/utility/export-data/coverage-export/block-data.mjs b/utility/export-data/coverage-export/block-data.mjs index 7434d4ce8d..9eac34df5d 100644 --- a/utility/export-data/coverage-export/block-data.mjs +++ b/utility/export-data/coverage-export/block-data.mjs @@ -3,7 +3,8 @@ import UnicodeDataIndex from "@unicode/unicode-15.0.0"; export async function collectBlockData() { const BlockData = [ [[0xe0a0, 0xe0df], "Private Use Area — Powerline"], - [[0xee00, 0xee3f], "Private Use Area — Progress Bar"], + [[0xee00, 0xee0f], "Private Use Area — Progress Bar"], + [[0xef10, 0xef1f], "Private Use Area — Iosevka Private Dingbats"] ]; for (const id of UnicodeDataIndex.Block) { diff --git a/utility/generate-release-note/package-list.mjs b/utility/generate-release-note/package-list.mjs index f8a07a4bd4..950affe6e0 100644 --- a/utility/generate-release-note/package-list.mjs +++ b/utility/generate-release-note/package-list.mjs @@ -34,19 +34,28 @@ async function GeneratePackageList(argv, out) { for (let [groupID, gr] of Object.entries(pkgShapesData)) { const prime = gr.subGroups[groupID]; const familyName = buildName("\u00a0", ...prime.family.split(" ")); - const sTtcName = buildName("-", "super-ttc", groupID, argv.version); - const ttcName = buildName("-", "ttc", groupID, argv.version); - const sTtcLink = `${DownloadLinkPrefix}/${sTtcName}.zip`; - const ttcLink = `${DownloadLinkPrefix}/${ttcName}.zip`; + const sTtcName = buildName("-", "SuperTTC", groupID, argv.version); + const ttcName = buildName("-", "PkgTTC", groupID, argv.version); const proportionPrefix = gr.quasiProportional ? "Quasi-proportional" : "Monospace"; const desc = `${proportionPrefix}, ${prime.desc}`; const img = ImgX(`${imagePrefix}/${groupID}`); + + let ttcCells = [` `]; + const hasSpacings = Object.entries(gr.subGroups).length > 1; + if (hasSpacings) { + const sTtcLink = `${DownloadLinkPrefix}/${sTtcName}.zip`; + const ttcLink = `${DownloadLinkPrefix}/${ttcName}.zip`; + ttcCells = [ + `Super\u00A0TTC`, + `TTC`, + ` ` + ]; + } + out.log( ``, `📦 ${familyName} — ${desc}`, - `Super\u00A0TTC`, - `TTC`, - ` `, + ...ttcCells, `` ); out.log( @@ -69,17 +78,19 @@ async function GeneratePackageList(argv, out) { return `${label}`; }; const leader = "    " + (subGroupID === lastSubGroupID ? "└" : "├"); + const superTtcPrefix = hasSpacings ? "SuperTTC-SGr" : "SuperTTC"; + const ttcPrefix = hasSpacings ? "PkgTTC-SGr" : "PkgTTC"; out.log( ``, `${leader} ${noBreak(subGr.family)}`, `${spacingDesc}`, `${flag(ligation)}`, - `${createLink("Super\u00A0TTC", "super-ttc-sgr")}`, - `${createLink("TTC", "ttc-sgr")}`, - `${createLink("TTF", "ttf")} ` + - `(${createLink("Unhinted", "ttf-unhinted")})`, - `${createLink("WebFont", "webfont")} ` + - `(${createLink("Unhinted", "webfont-unhinted")})`, + `${createLink("Super\u00A0TTC", superTtcPrefix)}`, + `${createLink("TTC", ttcPrefix)}`, + `${createLink("TTF", "PkgTTF")} ` + + `(${createLink("Unhinted", "PkgTTF-Unhinted")})`, + `${createLink("WebFont", "PkgWebFont")} ` + + `(${createLink("Unhinted", "PkgWebFont-Unhinted")})`, `` ); } diff --git a/utility/generate-samples/index.mjs b/utility/generate-samples/index.mjs index c493b48ee8..9f72048146 100644 --- a/utility/generate-samples/index.mjs +++ b/utility/generate-samples/index.mjs @@ -42,7 +42,7 @@ async function main(argv) { const ligationData = await parseLigationData(); const tasks = new Generator( argv.outputDir, - argv.fontGroups.map(fg => path.resolve(process.cwd(), "dist", fg, "ttf", "*.ttf")) + argv.fontGroups.map(fg => path.resolve(process.cwd(), "dist", fg, "TTF", "*.ttf")) ); // Common diff --git a/utility/generate-samples/templates/matrix.mjs b/utility/generate-samples/templates/matrix.mjs index f8ec463add..e3d78a3464 100644 --- a/utility/generate-samples/templates/matrix.mjs +++ b/utility/generate-samples/templates/matrix.mjs @@ -7,6 +7,7 @@ export default (function (args) { const elementHeight = 1.5 * EM; const canvasWidth = 30 * EM; const canvasHeight = 12 * EM; + const sigilHeight = 2 * EM; const lineConfig = [ [-(1 / 4), "Iosevka", "normal"], [+(1 / 4), "Iosevka Slab", "normal"], @@ -41,5 +42,26 @@ export default (function (args) { }); } } - return { width: canvasWidth, height: canvasHeight, frames }; + + // Add the sigil + frames.push({ + left: 0, + top: canvasHeight, + right: canvasWidth, + bottom: canvasHeight + sigilHeight, + "horizontal-align": "center", + "vertical-align": "center", + contents: [ + { + "font-family": "Iosevka", + "font-weight": 100, + "font-style": "normal", + "font-size": 3 * EM, + color: theme.sigil + }, + "\uEF10" + ] + }); + + return { width: canvasWidth, height: canvasHeight + sigilHeight, frames }; }); diff --git a/utility/generate-samples/themes/index.mjs b/utility/generate-samples/themes/index.mjs index 9f2a5ad62c..1118b1f7b2 100644 --- a/utility/generate-samples/themes/index.mjs +++ b/utility/generate-samples/themes/index.mjs @@ -2,11 +2,13 @@ export const light = { body: "#20242E", dimmed: "#20242E40", stress: "#048FBF", + sigil: "#974caf", title: "#8757AD" }; export const dark = { body: "#DEE4E3", dimmed: "#DEE4E340", stress: "#03AEE9", + sigil: "#c49ed1", title: "#B77FDB" }; diff --git a/utility/make-webfont-css.mjs b/utility/make-webfont-css.mjs index 1b011282ea..dd498faf45 100644 --- a/utility/make-webfont-css.mjs +++ b/utility/make-webfont-css.mjs @@ -1,8 +1,8 @@ import fs from "fs"; const WebfontFormatMap = new Map([ - ["woff2", "woff2"], - ["ttf", "truetype"] + ["WOFF2", "woff2"], + ["TTF", "truetype"] ]); export default (function (output, family, hs, formats, unhinted) { if (!formats) { diff --git a/verdafile.mjs b/verdafile.mjs index daefd1578e..6d0cc03e23 100644 --- a/verdafile.mjs +++ b/verdafile.mjs @@ -35,14 +35,14 @@ const MAKE_TTC = ["node", "node_modules/otb-ttc-bundle/bin/otb-ttc-bundle"]; const SEVEN_ZIP = process.env.SEVEN_ZIP_PATH || "7z"; const TTFAUTOHINT = process.env.TTFAUTOHINT_PATH || "ttfautohint"; -const defaultWebFontFormats = ["woff2", "ttf"]; -const webfontFormatsFast = ["ttf"]; -const webfontFormatsPages = ["woff2"]; +const defaultWebFontFormats = ["WOFF2", "TTF"]; +const webfontFormatsFast = ["TTF"]; +const webfontFormatsPages = ["WOFF2"]; -const WIDTH_NORMAL = "normal"; -const WEIGHT_NORMAL = "regular"; -const SLOPE_NORMAL = "upright"; -const DEFAULT_SUBFAMILY = "regular"; +const WIDTH_NORMAL = "Normal"; +const WEIGHT_NORMAL = "Regular"; +const SLOPE_NORMAL = "Upright"; +const DEFAULT_SUBFAMILY = "Regular"; const BUILD_PLANS = "build-plans.toml"; const PRIVATE_BUILD_PLANS = "private-build-plans.toml"; @@ -134,8 +134,8 @@ const BuildPlans = computed("metadata:build-plans", async target => { const returnBuildPlans = {}; for (const prefix in rawBuildPlans) { const bp = { ...rawBuildPlans[prefix] }; - if (!bp.family) fail(`Build plan for ${prefix} does not have a family name. Exit.`); - bp.webfontFormats = bp["webfont-formats"] || defaultWebFontFormats; + validateBuildPlan(prefix, bp); + bp.webfontFormats = bp.webfontFormats || defaultWebFontFormats; bp.targets = []; returnBuildPlans[prefix] = bp; } @@ -170,7 +170,7 @@ const BuildPlans = computed("metadata:build-plans", async target => { function linkSpacingDerivableBuildPlans(bps) { for (const pfxTo in bps) { const bpTo = bps[pfxTo]; - if (blockSpacingDerivation(bpTo)) continue; + if (blockSpacingDerivationTo(bpTo)) continue; if (!isDeriveToSpacing(bpTo.spacing)) continue; for (const pfxFrom in bps) { const bpFrom = bps[pfxFrom]; @@ -180,8 +180,8 @@ function linkSpacingDerivableBuildPlans(bps) { } } } -function blockSpacingDerivation(bp) { - return !!bp["compatibility-ligatures"]; +function blockSpacingDerivationTo(bp) { + return !!bp.compatibilityLigatures; } function isDeriveToSpacing(spacing) { return spacing === "term" || spacing === "fontconfig-mono" || spacing === "fixed"; @@ -260,10 +260,10 @@ const FontInfoOf = computed.group("metadata:font-info-of", async (target, fileNa derivingVariants: bp.derivingVariants, buildCharMap: bp.buildCharMap, featureControl: { - noCvSs: bp["no-cv-ss"] || false, - noLigation: bp["no-ligation"] || false, - exportGlyphNames: bp["export-glyph-names"] || false, - buildTexture: bp["build-texture-feature"] || false + noCvSs: bp.noCvSs || false, + noLigation: bp.noLigation || false, + exportGlyphNames: bp.exportGlyphNames || false, + buildTextureFeature: bp.buildTextureFeature || false }, // Ligations ligations: bp.ligations || null, @@ -290,14 +290,17 @@ const FontInfoOf = computed.group("metadata:font-info-of", async (target, fileNa stretch: sfi.cssStretch, style: sfi.cssStyle }, + // Hinting hintParams: bp.hintParams || [], hintReference: - !bp["metric-override"] && hintReferenceSuffix !== fi0.suffix + !bp.metricOverride && hintReferenceSuffix !== fi0.suffix ? makeFileName(fi0.prefix, hintReferenceSuffix) : null, - compatibilityLigatures: bp["compatibility-ligatures"] || null, - metricOverride: bp["metric-override"] || null, - excludedCharRanges: bp["exclude-chars"]?.ranges, + + // Other parameters + compatibilityLigatures: bp.compatibilityLigatures || null, + metricOverride: bp.metricOverride || null, + excludedCharRanges: bp.excludeChars?.ranges, // Spacing derivation -- creating faster build for spacing variants spacingDerive @@ -389,12 +392,12 @@ function whyBuildPlanIsnNotThere(gid) { const ageKey = uuid.v4(); const DistUnhintedTTF = file.make( - (gr, fn) => `${DIST}/${gr}/ttf-unhinted/${fn}.ttf`, + (gr, fn) => `${DIST}/${gr}/TTF-Unhinted/${fn}.ttf`, async (target, out, gr, fn) => { await target.need(Scripts, Parameters, Dependencies, de(out.dir)); const [fi] = await target.need(FontInfoOf(fn)); - const charMapDir = `${BUILD}/ttf/${gr}`; + const charMapDir = `${BUILD}/TTF/${gr}`; const charMapPath = `${charMapDir}/${fn}.charmap.mpz`; const ttfaControlsPath = `${charMapDir}/${fn}.ttfa.txt`; @@ -459,21 +462,21 @@ const DistUnhintedTTF = file.make( ); const BuildCM = file.make( - (gr, f) => `${BUILD}/ttf/${gr}/${f}.charmap.mpz`, + (gr, f) => `${BUILD}/TTF/${gr}/${f}.charmap.mpz`, async (target, output, gr, f) => { await target.need(DistUnhintedTTF(gr, f)); } ); const BuildTtfaControls = file.make( - (gr, f) => `${BUILD}/ttf/${gr}/${f}.ttfa.txt`, + (gr, f) => `${BUILD}/TTF/${gr}/${f}.ttfa.txt`, async (target, output, gr, f) => { await target.need(DistUnhintedTTF(gr, f)); } ); const DistHintedTTF = file.make( - (gr, fn) => `${DIST}/${gr}/ttf/${fn}.ttf`, + (gr, fn) => `${DIST}/${gr}/TTF/${fn}.ttf`, async (target, out, gr, fn) => { const [fi, hint] = await target.need( FontInfoOf(fn), @@ -485,7 +488,7 @@ const DistHintedTTF = file.make( // normally-spaced variant. const spD = fi.spacingDerive; - const charMapDir = `${BUILD}/ttf/${gr}`; + const charMapDir = `${BUILD}/TTF/${gr}`; const noGcTtfPath = `${charMapDir}/${fn}.no-gc.hinted.ttf`; const [deriveFrom] = await target.need( @@ -512,7 +515,7 @@ const DistHintedTTF = file.make( ); const BuildNoGcTtfImpl = file.make( - (gr, f) => `${BUILD}/ttf/${gr}/${f}.no-gc.hinted.ttf`, + (gr, f) => `${BUILD}/TTF/${gr}/${f}.no-gc.hinted.ttf`, async (target, output, gr, f) => { await target.need(DistHintedTTF(gr, f)); } @@ -533,10 +536,10 @@ const BuildNoGcTtf = task.make( ); function formatSuffix(fmt, unhinted) { - return fmt + (unhinted ? "-unhinted" : ""); + return fmt + (unhinted ? "-Unhinted" : ""); } const DistWoff2 = file.make( - (gr, fn, unhinted) => `${DIST}/${gr}/${formatSuffix("woff2", unhinted)}/${fn}.woff2`, + (gr, fn, unhinted) => `${DIST}/${gr}/${formatSuffix("WOFF2", unhinted)}/${fn}.woff2`, async (target, out, group, f, unhinted) => { const Ctor = unhinted ? DistUnhintedTTF : DistHintedTTF; @@ -598,7 +601,7 @@ async function createWebFontCssImpl(target, output, gr, formats, unhinted) { // Content files const GroupTtfsImpl = task.make( - (gr, unhinted) => `group-${formatSuffix("ttf-impl", unhinted)}::${gr}`, + (gr, unhinted) => `group-${formatSuffix("TTFImpl", unhinted)}::${gr}`, async (target, gr, unhinted) => { const Ctor = unhinted ? DistUnhintedTTF : DistHintedTTF; const [ts] = await target.need(GroupFontsOf(gr)); @@ -607,7 +610,7 @@ const GroupTtfsImpl = task.make( } ); const GroupWoff2Impl = task.make( - (gr, unhinted) => `group-${formatSuffix("woff2-impl", unhinted)}::${gr}`, + (gr, unhinted) => `group-${formatSuffix("WOFF2Impl", unhinted)}::${gr}`, async (target, gr, unhinted) => { const [ts] = await target.need(GroupFontsOf(gr)); await target.need(ts.map(tn => DistWoff2(gr, tn, unhinted))); @@ -615,16 +618,16 @@ const GroupWoff2Impl = task.make( } ); const GroupWebFontsImpl = task.make( - (gr, unhinted) => `group-${formatSuffix("webfont-impl", unhinted)}::${gr}`, + (gr, unhinted) => `group-${formatSuffix("WebFontImpl", unhinted)}::${gr}`, async (target, gr, unhinted) => { const [bp] = await target.need(BuildPlanOf(gr)); const groupsNeeded = []; for (const ext of bp.webfontFormats) { switch (ext) { - case "ttf": + case "TTF": groupsNeeded.push(GroupTtfsImpl(gr, unhinted)); break; - case "woff2": + case "WOFF2": groupsNeeded.push(GroupWoff2Impl(gr, unhinted)); break; } @@ -643,6 +646,7 @@ const CollectPlans = computed(`metadata:collect-plans`, async target => { return await getCollectPlans(target, rawPlans.collectPlans); }); +// eslint-disable-next-line complexity async function getCollectPlans(target, rawCollectPlans) { const plans = {}; @@ -654,8 +658,11 @@ async function getCollectPlans(target, rawCollectPlans) { } const amendedRawCollectPlans = { ...rawCollectPlans }; - for (const gr of allCollectableGroups) { - amendedRawCollectPlans[`sgr-` + gr] = { release: true, isAmended: true, from: [gr] }; + out: for (const gr of allCollectableGroups) { + for (const [k, cp] of Object.entries(rawCollectPlans)) { + if (cp.from.length === 1 && cp.from[0] === gr) continue out; + } + amendedRawCollectPlans[`SGr-` + gr] = { release: true, isAmended: true, from: [gr] }; } for (const collectPrefix in amendedRawCollectPlans) { @@ -780,7 +787,7 @@ async function buildGlyphSharingTtc(target, parts, out) { // Collection Archives const TtcZip = file.make( - (cgr, version) => `${ARCHIVE_DIR}/ttc-${cgr}-${version}.zip`, + (cgr, version) => `${ARCHIVE_DIR}/PkgTTC-${cgr}-${version}.zip`, async (target, out, cgr) => { const [cPlan] = await target.need(CollectPlans, de`${out.dir}`); const ttcFiles = Array.from(Object.keys(cPlan[cgr].ttcComposition)); @@ -789,7 +796,7 @@ const TtcZip = file.make( } ); const SuperTtcZip = file.make( - (cgr, version) => `${ARCHIVE_DIR}/super-ttc-${cgr}-${version}.zip`, + (cgr, version) => `${ARCHIVE_DIR}/SuperTTC-${cgr}-${version}.zip`, async (target, out, cgr) => { await target.need(de`${out.dir}`, CollectedSuperTtcFile(cgr)); await CreateGroupArchiveFile(DIST_SUPER_TTC, out, `${cgr}.ttc`); @@ -799,12 +806,12 @@ const SuperTtcZip = file.make( // Single-group Archives const GroupTtfZip = file.make( (gr, version, unhinted) => - `${ARCHIVE_DIR}/${formatSuffix("ttf", unhinted)}-${gr}-${version}.zip`, + `${ARCHIVE_DIR}/${formatSuffix("PkgTTF", unhinted)}-${gr}-${version}.zip`, async (target, out, gr, _version_, unhinted) => { await target.need(de`${out.dir}`); await target.need(GroupTtfsImpl(gr, unhinted)); await CreateGroupArchiveFile( - `${DIST}/${gr}/${formatSuffix("ttf", unhinted)}`, + `${DIST}/${gr}/${formatSuffix("TTF", unhinted)}`, out, "*.ttf" ); @@ -812,7 +819,7 @@ const GroupTtfZip = file.make( ); const GroupWebZip = file.make( (gr, version, unhinted) => - `${ARCHIVE_DIR}/${formatSuffix("webfont", unhinted)}-${gr}-${version}.zip`, + `${ARCHIVE_DIR}/${formatSuffix("PkgWebFont", unhinted)}-${gr}-${version}.zip`, async (target, out, gr, _version_, unhinted) => { const [plan] = await target.need(BuildPlanOf(gr)); await target.need(de`${out.dir}`); @@ -848,14 +855,14 @@ async function CreateGroupArchiveFile(dir, out, ...files) { const Pages = task(`pages`, async t => { await t.need( PagesDataExport, - PagesFontExport`iosevka`, - PagesFontExport`iosevka-slab`, - PagesFontExport`iosevka-aile`, - PagesFontExport`iosevka-etoile`, - PagesFontExport`iosevka-QP`, - PagesFontExport`iosevka-QP-slab`, - PagesFontExport`iosevka-QPE`, - PagesFontExport`iosevka-QPE-slab` + PagesFontExport`Iosevka`, + PagesFontExport`IosevkaSlab`, + PagesFontExport`IosevkaAile`, + PagesFontExport`IosevkaEtoile`, + PagesFontExport`IosevkaQp`, + PagesFontExport`IosevkaQpSlab`, + PagesFontExport`IosevkaQpe`, + PagesFontExport`IosevkaQpeSlab` ); }); @@ -868,9 +875,9 @@ const PagesDir = oracle(`pages-dir-path`, async t => { const PagesDataExport = task(`pages:data-export`, async t => { const [pagesDir] = await t.need(PagesDir, Version, Parameters, UtilScripts); const [cm, cmi, cmo] = await t.need( - BuildCM("iosevka", "iosevka-regular"), - BuildCM("iosevka", "iosevka-italic"), - BuildCM("iosevka", "iosevka-oblique") + BuildCM("Iosevka", "Iosevka-Regular"), + BuildCM("Iosevka", "Iosevka-Italic"), + BuildCM("Iosevka", "Iosevka-Oblique") ); await node(`utility/export-tokenized-sample-code.mjs`, { output: Path.resolve(pagesDir, "shared/tokenized-sample-code/alphabet.txt.json") @@ -888,18 +895,18 @@ const PagesFontExport = task.group(`pages:font-export`, async (target, gr) => { target.is.volatile(); const [pagesDir] = await target.need(PagesDir); if (!pagesDir) return; - const outDir = Path.resolve(pagesDir, "shared/fonts", gr); + const outDir = Path.resolve(pagesDir, "shared/fonts/imports", gr); await target.need(GroupWebFontsImpl(gr, false), de(outDir)); - await cp(`${DIST}/${gr}/woff2`, Path.resolve(outDir, "woff2")); + await cp(`${DIST}/${gr}/WOFF2`, Path.resolve(outDir, "WOFF2")); await createWebFontCssImpl(target, Path.resolve(outDir, `${gr}.css`), gr, webfontFormatsPages); - await rm(Path.resolve(outDir, "ttf")); + await rm(Path.resolve(outDir, "TTF")); }); const PagesFastFontExport = task.group(`pages:fast-font-export`, async (target, gr) => { target.is.volatile(); const [pagesDir] = await target.need(PagesDir); if (!pagesDir) return; - const outDir = Path.resolve(pagesDir, "shared/fonts", gr); + const outDir = Path.resolve(pagesDir, "shared/fonts/imports", gr); await target.need(GroupTtfsImpl(gr, true), de(outDir)); // Next.js 12 has some problem about refreshing fonts, so write an empty CSS first @@ -907,9 +914,9 @@ const PagesFastFontExport = task.group(`pages:fast-font-export`, async (target, await Delay(2000); // Then do the copy - await cp(`${DIST}/${gr}/ttf-unhinted`, Path.resolve(outDir, "ttf")); + await cp(`${DIST}/${gr}/TTF-Unhinted`, Path.resolve(outDir, "TTF")); await createWebFontCssImpl(target, Path.resolve(outDir, `${gr}.css`), gr, webfontFormatsFast); - await rm(Path.resolve(outDir, "woff2")); + await rm(Path.resolve(outDir, "WOFF2")); }); /////////////////////////////////////////////////////////// @@ -931,9 +938,9 @@ const AmendReadmeFor = task.make( async (target, f) => { await target.need(Parameters, UtilScripts); const [cm, cmi, cmo] = await target.need( - BuildCM("iosevka", "iosevka-regular"), - BuildCM("iosevka", "iosevka-italic"), - BuildCM("iosevka", "iosevka-oblique") + BuildCM("Iosevka", "Iosevka-Regular"), + BuildCM("Iosevka", "Iosevka-Italic"), + BuildCM("Iosevka", "Iosevka-Oblique") ); return node(`utility/amend-readme/index.mjs`, { mdFilePath: f, @@ -962,15 +969,15 @@ const SampleImages = task(`sample-images`, async target => { const SampleImagesPre = task(`sample-images:pre`, async target => { const [version] = await target.need(Version, de(IMAGE_TASKS), UtilScripts); const fontGroups = await target.need( - GroupTtfsImpl(`iosevka`, false), - GroupTtfsImpl(`iosevka-slab`, false), - GroupTtfsImpl(`iosevka-aile`, false), - GroupTtfsImpl(`iosevka-etoile`, false) + GroupTtfsImpl(`Iosevka`, false), + GroupTtfsImpl(`IosevkaSlab`, false), + GroupTtfsImpl(`IosevkaAile`, false), + GroupTtfsImpl(`IosevkaEtoile`, false) ); const [cm, cmi, cmo] = await target.need( - BuildCM("iosevka", "iosevka-regular"), - BuildCM("iosevka", "iosevka-italic"), - BuildCM("iosevka", "iosevka-oblique") + BuildCM("Iosevka", "Iosevka-Regular"), + BuildCM("Iosevka", "Iosevka-Italic"), + BuildCM("Iosevka", "Iosevka-Oblique") ); return await node("utility/generate-samples/index.mjs", { version, @@ -989,7 +996,7 @@ const PackageSnapshotConfig = async target => { const p = plan.buildPlans[key]; if (!p || !p.snapshotFamily) continue; cfg.push({ - name: key, + name: "package-sample-" + key, fontFamily: p.snapshotFamily, fontFeatures: p.snapshotFeature }); @@ -1194,6 +1201,26 @@ const Parameters = task(`meta:parameters`, async target => { // Build plan validation +function validateBuildPlan(prefix, bp) { + if (!bp.family) fail(`Build plan for ${prefix} does not have a family name. Exit.`); + failWithLegacyParamName(prefix, bp, `no-cv-ss`, `noCvSs`); + failWithLegacyParamName(prefix, bp, `no-ligation`, `noLigation`); + failWithLegacyParamName(prefix, bp, `export-glyph-names`, `exportGlyphNames`); + failWithLegacyParamName(prefix, bp, `build-texture-feature`, `buildTextureFeature`); + failWithLegacyParamName(prefix, bp, `metric-override`, `metricOverride`); + failWithLegacyParamName(prefix, bp, `compatibility-ligatures`, `compatibilityLigatures`); + failWithLegacyParamName(prefix, bp, `exclude-chars`, `excludeChars`); +} + +function failWithLegacyParamName(prefix, bp, legacy, expected) { + if (bp[legacy]) { + fail( + `Build plan for '${prefix}' contains legacy build parameter '${legacy}'. ` + + `Please use '${expected}' instead.` + ); + } +} + function resolveWws(bpName, buildPlans, defaultConfig) { const bp = buildPlans[bpName]; if (!bp) fail(`Build plan ${bpName} not found.`);