You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
com.google.fonts/check/usweightclass
Checking OS/2 usWeightClass.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
* FAIL: OS/2 usWeightClass expected value for 'Thin' is 250 but this font has 400.
GlyphsApp users should set a Custom Parameter for 'Axis Location' in each master to ensure that the information is accurately built into variable fonts. [code: bad-value]
Result: FAIL
com.google.fonts/check/name/license
Check copyright namerecords match license file.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.
The source of truth for this check (to determine which license is in use)
is a file placed side-by-side to your font project including the
licensing terms.
Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of
the name table:
- "This Font Software is licensed under the SIL Open Font License,
Version 1.1. This license is available with a FAQ at:
https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be
acceptable as well.
When in doubt, please choose OFL for new font projects.
* WARN: Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
* WARN: Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
* WARN: For now we're still accepting http URLs, but you should consider using https instead.
Result: WARN
com.google.fonts/check/name/license_url
License URL matches License text on name table?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
A known license URL must be provided in the NameID 14 (LICENSE INFO URL)
entry of the name table.
The source of truth for this check is the licensing text found on the
NameID 13 entry (LICENSE DESCRIPTION).
The string snippets used for detecting licensing terms are:
- "This Font Software is licensed under the SIL Open Font License,
Version 1.1. This license is available with a FAQ at:
https://scripts.sil.org/OFL"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."
Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be
acceptable as well.
When in doubt, please choose OFL for new font projects.
* WARN: Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
* WARN: Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
* WARN: Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
* WARN: Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
* WARN: Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
* WARN: Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
* WARN: Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
* WARN: For now we're still accepting http URLs, but you should consider using https instead.
Result: WARN
com.google.fonts/check/hinting_impact
Show hinting filesize impact.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
This check is merely informative, displaying and useful comparison of
filesizes of hinted versus unhinted font files.
* INFO: Hinting filesize impact:
| | /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf |
|:--- | ---:|
| Dehinted Size | 204.5kb |
| Hinted Size | 204.3kb |
| Increase | -140 bytes |
| Change | -0.1 % |
[code: size-impact]
Result: INFO
com.google.fonts/check/old_ttfautohint
Font has old ttfautohint applied?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
This check finds which version of ttfautohint was used, by inspecting
name table entries and then finds which version of ttfautohint is
currently installed in the system.
* INFO: Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.100', 'Version 1.100'] [code: version-not-detected]
Result: INFO
com.google.fonts/check/epar
EPAR table present in font?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
The EPAR table is/was a way of expressing common licensing permissions
and restrictions in metadata; while almost nothing supported it, Dave
Crossland wonders that adding it to everything in Google Fonts could help
make it more popular.
More info is available at:
https://davelab6.github.io/epar/
* INFO: EPAR table not present in font. To learn more see https://github.com/googlefonts/fontbakery/issues/818 [code: lacks-EPAR]
Result: INFO
com.google.fonts/check/gasp
Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
Traditionally version 0 'gasp' tables were set so that font sizes below 8
ppem had no grid fitting but did have antialiasing. From 9-16 ppem, just
grid fitting. And fonts above 17ppem had both antialiasing and grid
fitting toggled on. The use of accelerated graphics cards and higher
resolution screens make this approach obsolete. Microsoft's DirectWrite
pushed this even further with much improved rendering built into the OS
and apps.
In this scenario it makes sense to simply toggle all 4 flags ON for all
font sizes.
* FAIL: Font is missing the 'gasp' table. Try exporting the font with autohinting enabled.
If you are dealing with an unhinted font, it can be fixed by running the fonts through the command 'gftools fix-nonhinting'
GFTools is available at https://pypi.org/project/gftools/ [code: lacks-gasp]
Result: FAIL
com.google.fonts/check/unitsperem_strict
Stricter unitsPerEm criteria for Google Fonts.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
Even though the OpenType spec allows unitsPerEm to be any value between
16 and 16384, the Google Fonts project aims at a narrower set of
reasonable values.
The spec suggests usage of powers of two in order to get some performance
improvements on legacy renderers, so those values are acceptable.
But value of 500 or 1000 are also acceptable, with the added benefit that
it makes upm math easier for designers, while the performance hit of not
using a power of two is most likely negligible nowadays.
Another acceptable value is 2000. Since TT outlines are all integers (no
floats), then instances in a VF suffer rounding compromises, and
therefore a 1000 UPM is to small because it forces too many such
compromises.
Therefore 2000 is a good 'new VF standard', because 2000 is a simple 2x
conversion from existing fonts drawn on a 1000 UPM, and anyone who knows
what 10 units can do for 1000 UPM will know what 20 units does too.
Additionally, values above 2048 would result in filesize increases with
not much added benefit.
* WARN: Even though unitsPerEm (1000) in this font is reasonable. It is strongly advised to consider changing it to 2000, since it will likely improve the quality of Variable Fonts by avoiding excessive rounding of coordinates on interpolations. [code: legacy-value]
Result: WARN
com.google.fonts/check/version_bump
Version number has increased since previous release on Google Fonts?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
* ERROR: The condition <FontBakeryCondition:github_gfonts_ttFont> had an error: BadCertificateSetupException: You probably installed official Mac python from python.org but forgot to also install the certificates. There is a note in the installer Readme about that. Check the Python folder in the Applications directory, you should find a shell script to install the certificates.
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/fontbakery/checkrunner.py", line 376, in _evaluate_condition
return None, condition(**args)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/fontbakery/callable.py", line 99, in __call__
return self.__wrapped__(*args, **kwds)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/fontbakery/profiles/googlefonts_conditions.py", line 468, in github_gfonts_ttFont
fontfile = download_file(url)
File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/fontbakery/utils.py", line 272, in download_file
raise BadCertificateSetupException("You probably installed official"
Result: ERROR
com.google.fonts/check/name/subfamilyname
Check name table: FONT_SUBFAMILY_NAME entries.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
* FAIL: SUBFAMILY_NAME for Mac "Regular" must be "Thin" [code: bad-familyname]
Result: FAIL
com.google.fonts/check/name/typographicsubfamilyname
Check name table: TYPOGRAPHIC_SUBFAMILY_NAME entries.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
* FAIL: TYPOGRAPHIC_SUBFAMILY_NAME for Win is missing. It must be "Thin". [code: missing-typo-win]
Result: FAIL
com.google.fonts/check/fontv
Check for font-v versioning.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
The git sha1 tagging and dev/release features of Source Foundry `font-v`
tool are awesome and we would love to consider upstreaming the approach
into fontmake someday. For now we only emit a WARN if a given font does
not yet follow the experimental versioning style, but at some point we
may start enforcing it.
* INFO: Version string is: "Version 1.100"
The version string must ideally include a git commit hash and either a "dev" or a "release" suffix such as in the example below:
"Version 1.3; git-0d08353-release" [code: bad-format]
Result: INFO
com.google.fonts/check/varfont/has_HVAR
Check that variable fonts have an HVAR table.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
Not having a HVAR table can lead to costly text-layout operations on some
platforms, which we want to avoid.
So, all variable fonts on the Google Fonts collection should have an HVAR
with valid values.
More info on the HVAR table can be found at:
https://docs.microsoft.com/en-us/typography/opentype/spec
/otvaroverview#variation-data-tables-and-miscellaneous-requirements
* FAIL: All variable fonts on the Google Fonts collection must have a properly set HVAR table in order to avoid costly text-layout operations on certain platforms. [code: lacks-HVAR]
Result: FAIL
com.google.fonts/check/smart_dropout
Font enables smart dropout control in "prep" table instructions?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
This setup is meant to ensure consistent rendering quality for fonts
across all devices (with different rendering/hinting capabilities).
Below is the snippet of instructions we expect to see in the fonts:
B8 01 FF PUSHW 0x01FF
85 SCANCTRL (unconditinally turn on
dropout control mode)
B0 04 PUSHB 0x04
8D SCANTYPE (enable smart dropout control)
"Smart dropout control" means activating rules 1, 2 and 5:
Rule 1: If a pixel's center falls within the glyph outline,
that pixel is turned on.
Rule 2: If a contour falls exactly on a pixel's center,
that pixel is turned on.
Rule 5: If a scan line between two adjacent pixel centers
(either vertical or horizontal) is intersected
by both an on-Transition contour and an off-Transition
contour and neither of the pixels was already turned on
by rules 1 and 2, turn on the pixel which is closer to
the midpoint between the on-Transition contour and
off-Transition contour. This is "Smart" dropout control.
For more detailed info (such as other rules not enabled in this snippet),
please refer to the TrueType Instruction Set documentation.
* FAIL: The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the `gftools fix-nonhinting` script. [code: lacks-smart-dropout]
Result: FAIL
com.google.fonts/check/varfont_weight_instances
Variable font weight coordinates must be multiples of 100.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
The named instances on the weight axis of a variable font must have
coordinates that are multiples of 100 on the design space.
* FAIL: Found a variable font instance with 'wght'=257.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=385.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=450.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=514.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=642.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=771.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=257.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=385.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=450.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=514.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=642.0. This should instead be a multiple of 100. [code: bad-coordinate]
* FAIL: Found a variable font instance with 'wght'=771.0. This should instead be a multiple of 100. [code: bad-coordinate]
Result: FAIL
com.google.fonts/check/ligature_carets
Are there caret positions declared for every ligature?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
All ligatures in a font must have corresponding caret (text cursor)
positions defined in the GDEF table, otherwhise, users may experience
issues with caret rendering.
* WARN: This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
Result: WARN
com.google.fonts/check/kerning_for_non_ligated_sequences
Is there kerning info for non-ligated sequences?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).
* WARN: GPOS table lacks kerning info for the following non-ligated sequences:
- f + f
- f + i
- i + f
- f + l
- l + f
- i + l
[code: lacks-kern-info]
Result: WARN
com.google.fonts/check/repo/vf_has_static_fonts
A static fonts directory with at least two fonts must accompany variable fonts
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
Variable font family directories kept in the google/fonts git repo must
include a static/ subdir containing static fonts.
These files are meant to be served for users that still lack support for
variable fonts in their web browsers.
* FAIL: Please create a subdirectory called "static/" and include in it static font files. [code: missing]
Result: FAIL
com.google.fonts/check/varfont_instance_coordinates
Check variable font instances have correct coordinate values
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
* FAIL: Instance "Light" wght value is "257.0". It should be "300.0" [code: bad-coordinate]
* FAIL: Instance "Regular" wght value is "385.0". It should be "400.0" [code: bad-coordinate]
* FAIL: Instance "Medium" wght value is "450.0". It should be "500.0" [code: bad-coordinate]
* FAIL: Instance "SemiBold" wght value is "514.0". It should be "600.0" [code: bad-coordinate]
* FAIL: Instance "Bold" wght value is "642.0". It should be "700.0" [code: bad-coordinate]
* FAIL: Instance "ExtraBold" wght value is "771.0". It should be "800.0" [code: bad-coordinate]
* FAIL: Instance "Light" wght value is "257.0". It should be "300.0" [code: bad-coordinate]
* FAIL: Instance "Regular" wght value is "385.0". It should be "400.0" [code: bad-coordinate]
* FAIL: Instance "Medium" wght value is "450.0". It should be "500.0" [code: bad-coordinate]
* FAIL: Instance "SemiBold" wght value is "514.0". It should be "600.0" [code: bad-coordinate]
* FAIL: Instance "Bold" wght value is "642.0". It should be "700.0" [code: bad-coordinate]
* FAIL: Instance "ExtraBold" wght value is "771.0". It should be "800.0" [code: bad-coordinate]
* FAIL: Check has either failed or produced a warning. See our wip spec for further info https://gist.github.com/m4rc1e/8f4c4498519e8a36cd54e16a004275cb
Result: FAIL
com.google.fonts/check/ftxvalidator_is_available
Is the command ftxvalidator (Apple Font Tool Suite) available?
Rationale:
There's no reasonable (and legal) way to run the command `ftxvalidator`
of the Apple Font Tool Suite on a non-macOS machine. I.e. on GNU+Linux or
Windows etc.
If Font Bakery is not running on an OSX machine, the machine running Font
Bakery could access `ftxvalidator` on OSX, e.g. via ssh or a remote
procedure call (rpc).
There's an ssh example implementation at:
https://github.com/googlefonts/fontbakery/blob/master/prebuilt
/workarounds/ftxvalidator/ssh-implementation/ftxvalidator
* WARN: Could not find ftxvalidator.
Result: WARN
com.google.fonts/check/fontbakery_version
Do we have the latest version of FontBakery installed?
* INFO: fontbakery (0.7.24) - Well designed Font QA tool, written in Python 3
INSTALLED: 0.7.10
LATEST: 0.7.24
Result: INFO
com.google.fonts/check/mandatory_glyphs
Font contains .notdef as first glyph?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
The OpenType specification v1.8.2 recommends that the first glyph is the
.notdef glyph without a codepoint assigned and with a drawing.
https://docs.microsoft.com/en-us/typography/opentype/spec
/recom#glyph-0-the-notdef-glyph
Pre-v1.8, it was recommended that a font should also contain a .null, CR
and space glyph. This might have been relevant for applications on MacOS
9.
* WARN: Font should contain the .notdef glyph as the first glyph, it should not have a Unicode value assigned and should contain a drawing.
Result: WARN
com.google.fonts/check/required_tables
Font contains all required tables?
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
Depending on the typeface and coverage of a font, certain tables are
recommended for optimum quality. For example, the performance of a
non-linear font is improved if the VDMX, LTSH, and hdmx tables are
present. Non-monospaced Latin fonts should have a kern table. A gasp
table is necessary if a designer wants to influence the sizes at which
grayscaling is used under Windows. A DSIG table containing a digital
signature helps ensure the integrity of the font file. Etc.
* INFO: This font contains the following optional tables [DSIG, GSUB, loca, GPOS]
Result: INFO
com.google.fonts/check/superfamily/list
List all superfamily filepaths
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
This is a merely informative check that lists all sibling families
detected by fontbakery.
Only the fontfiles in these directories will be considered in
superfamily-level checks.
* INFO: /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf [code: family-path]
Result: INFO
com.google.fonts/check/varfont/regular_wght_coord
The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
According to the Open-Type spec's registered design-variation tag 'wght'
available at
https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght
If a variable font has a 'wght' (Weight) axis, then the coordinate of its
'Regular' instance is required to be 400.
* FAIL: The "wght" axis coordinate of the "Regular" instance must be 400. Got 385.0 instead. [code: not-400]
Result: FAIL
com.google.fonts/check/varfont/bold_wght_coord
The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.
with /Users/pk/Dropbox/Work/type/big shoulders/big_shoulders/big_shoulders/fonts/Big Shoulders/vf/BigShoulders[opsz,wght].ttf
Rationale:
The Open-Type spec's registered design-variation tag 'wght' available at
https://docs.microsoft.com/en-gb/typography/opentype/spec/dvaraxistag_wght
does not specify a required value for the 'Bold' instance of a variable
font.
But Dave Crossland suggested that we should enforce a required value of
700 in this case.
* FAIL: The "wght" axis coordinate of the "Bold" instance must be 700. Got 642.0 instead. [code: not-700]
Result: FAIL
ciel:Downloads pk$ fontbakery check-googlefonts /Users/pk/Dropbox/Work/type/big\ shoulders/big_shoulders/big_shoulders/fonts/Big\ Shoulders/vf/BigShoulders[opsz,wght].ttf
Start ... running 167 individual check executions.
GlyphsApp users should set a Custom Parameter for 'Axis Location' in each master to ensure that the information is accurately built into variable fonts. [code: bad-value]
[code: size-impact]
If you are dealing with an unhinted font, it can be fixed by running the fonts through the command 'gftools fix-nonhinting'
GFTools is available at https://pypi.org/project/gftools/ [code: lacks-gasp]
The version string must ideally include a git commit hash and either a "dev" or a "release" suffix such as in the example below:
"Version 1.3; git-0d08353-release" [code: bad-format]
[code: lacks-kern-info]
INSTALLED: 0.7.10
LATEST: 0.7.24
Total:
[PSPPSSSSSSSSSSSSPPPPFSPWWPIPSIIFPPSSSSSSSSSSSSSSSSSSSSSPSSSSSSSSSSSSWESSSSSSSSFSSSFPPIPFFPPPPFSWWPPPSFSFPPWIPPPPSPWPPPIPPPPISSSPPPPPPPSPPPPPPPPPPPSPPPPPPPPPPPFSSSPFPPS] 100%
big shoulders fb output.pdf
The text was updated successfully, but these errors were encountered: