summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarl Berry <karl@freefriends.org>2011-05-09 21:10:33 +0000
committerKarl Berry <karl@freefriends.org>2011-05-09 21:10:33 +0000
commit999c65abbebaa30f36beb4f9ac812542458574b2 (patch)
tree1e3e8175f9c5dc9507ee5ce1dee38b356abab5d9
parent977d1378e54196b26b7685f4a5112d58e79bedcd (diff)
new font fdsymbol (9may11)
git-svn-id: svn://tug.org/texlive/trunk@22383 c570f23f-e606-0410-a88d-b1316a301751
-rw-r--r--Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt39
-rw-r--r--Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt95
-rw-r--r--Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdfbin0 -> 901373 bytes
-rw-r--r--Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-a.enc53
-rw-r--r--Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-b.enc54
-rw-r--r--Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-c.enc53
-rw-r--r--Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-d.enc53
-rw-r--r--Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-e.enc53
-rw-r--r--Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-f.enc53
-rw-r--r--Master/texmf-dist/fonts/map/dvips/fdsymbol/fdsymbol.map24
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Bold.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Book.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Medium.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Regular.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA.mf40
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Bold.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Book.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Medium.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Regular.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB.mf24
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Bold.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Book.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Medium.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Regular.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Bold.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Book.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Medium.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Regular.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD.mf20
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Bold.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Book.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Medium.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Regular.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE.mf29
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Bold.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Book.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Medium.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Regular.mf13
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF.mf16
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/fdaccents.mf89
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/fdarrows.mf728
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/fdbase.mf884
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/fddelims.mf585
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/fdgeometric.mf1837
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/fdoperators.mf480
-rw-r--r--Master/texmf-dist/fonts/source/public/fdsymbol/fdrelations.mf1132
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfmbin0 -> 1196 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfmbin0 -> 1196 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfmbin0 -> 1196 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Regular.tfmbin0 -> 1196 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfmbin0 -> 1132 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfmbin0 -> 1132 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfmbin0 -> 1132 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Regular.tfmbin0 -> 1132 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfmbin0 -> 1228 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfmbin0 -> 1228 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfmbin0 -> 1228 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Regular.tfmbin0 -> 1228 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfmbin0 -> 1216 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfmbin0 -> 1216 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfmbin0 -> 1216 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Regular.tfmbin0 -> 1216 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfmbin0 -> 852 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfmbin0 -> 852 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfmbin0 -> 852 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Regular.tfmbin0 -> 852 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfmbin0 -> 1332 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfmbin0 -> 1332 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfmbin0 -> 1332 bytes
-rw-r--r--Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Regular.tfmbin0 -> 1332 bytes
-rw-r--r--Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Bold.pfbbin0 -> 223761 bytes
-rw-r--r--Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Book.pfbbin0 -> 216666 bytes
-rw-r--r--Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Medium.pfbbin0 -> 220622 bytes
-rw-r--r--Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Regular.pfbbin0 -> 216109 bytes
-rw-r--r--Master/texmf-dist/source/latex/fdsymbol/fdsymbol.dtx3228
-rw-r--r--Master/texmf-dist/source/latex/fdsymbol/fdsymbol.ins55
-rw-r--r--Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty1754
-rw-r--r--Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc1
-rw-r--r--Master/tlpkg/tlpsrc/fdsymbol.tlpsrc0
-rw-r--r--TODO1
81 files changed, 11712 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt b/Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt
new file mode 100644
index 00000000000..e6012fd792e
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/fdsymbol/FONTLOG.txt
@@ -0,0 +1,39 @@
+FONTLOG for FdSymbol
+--------------------
+
+This file provides detailed information on the FdSymbol font family.
+This information should be distributed along with the FdSymbol fonts
+and any derivative works.
+
+
+Basic Font Information
+----------------------
+
+FdSymbol is a font of mathematical symbols designed as a companion to
+Typotheque's Fedra family, but it might also fit well to other contemporary
+typefaces.
+
+FdSymbol is derived from MnSymbol, designed and released into the public
+domain by Achim Blumensath.
+
+FdSymbol development is currently hosted on:
+http://github.com/ummels/fdsymbol
+
+
+ChangeLog
+---------
+
+17 Mar 2011 (Michael Ummels) FdSymbol version 1.000
+- First public release
+
+31 Mar 2011 (Michael Ummels) FdSymbol version 1.001
+- Added aleph, beth, daleth and gimel
+
+Acknowledgements
+-------------------------
+(Here is where contributors can be acknowledged. If you make modifications be sure to add your name (N), email (E), web-address (W) and description (D). This list is sorted by last name in alphabetical order.)
+
+N: Michael Ummels
+E: michael.ummels@rwth-aachen.de
+W: http://www.ummels.de
+D: Original Designer
diff --git a/Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt b/Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt
new file mode 100644
index 00000000000..dbd79a44897
--- /dev/null
+++ b/Master/texmf-dist/doc/fonts/fdsymbol/OFL.txt
@@ -0,0 +1,95 @@
+Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+All Rights Reserved.
+
+"FdSymbol" is Reserved Font Name for this Font Software.
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that any reserved
+names are not used by derivative works. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdf b/Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdf
new file mode 100644
index 00000000000..5ed5728b880
--- /dev/null
+++ b/Master/texmf-dist/doc/latex/fdsymbol/fdsymbol.pdf
Binary files differ
diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-a.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-a.enc
new file mode 100644
index 00000000000..7838e6ce3ba
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-a.enc
@@ -0,0 +1,53 @@
+% TeX extra characters encoding.
+% CODINGSCHEME FONTSPECIFIC
+%
+/FdSymbolA [
+%00
+ /dotmath /hdotdot /ratio /udotdot /ddotdot /uni22EF /ellipsisvertical /uni22F0
+ /uni22F1 /righttherefore /therefore /lefttherefore /because /proportion /minus /divisionslash.small
+%10
+ /uni2216 /plus /multiply /plusminus /minusplus /uni2238 /uni2A2A /uni2A2B
+ /uni2A2C /uni223A /divide /logicalnot /revlogicalnot /uni2A3C /uni2A3D /uni22CB
+%20
+ /uni22CC /uni2A32 /uni22CA /utimes /uni22C9 /uni22C8 /uni29D6 /rightY
+ /upY /leftY /downY /logicaland /logicalor /uni27D1 /uni27C7 /uni2A55
+%30
+ /uni2A56 /curlyand /curlyor /curlywedgedot /curlyveedot /doublecurlywedge /doublecurlyvee /union
+ /intersection /uni22D3 /uni22D2 /uni228D /uni2A40 /uni228E /capplus /uni2294
+%40
+ /uni2293 /uni2A4F /uni2A4E /sqcupdot /sqcapdot /sqcupplus /sqcapplus /uni27D3
+ /uni27D4 /uni25B9 /uni25B5 /uni25C3 /uni25BF /uni25B8 /uni25B4 /uni25C2
+%50
+ /uni25BE /uni25B7 /uni25B3 /uni25C1 /uni25BD /uni25B6 /uni25B2 /uni25C0
+ /uni25BC /uni25B3.big /uni25BD.big /openbullet /bullet /uni25CB /uni25CF /minuscircle
+%60
+ /uni29B6 /uni2298 /uni29B8 /circleplus /circlemultiply /circleot /uni229A /uni229B
+ /uni229C /uni229D /emptyset /uni29B0 /uni25EF /uni2B24 /uni25AB /uni25AA
+%70
+ /uni25A1 /uni25A0 /uni229F /uni25EB /uni29C4 /uni29C5 /uni229E /uni22A0
+ /uni22A1 /uni29C8 /uni2B1C /uni2B1B /uni22C4 /uni2B29 /uni25C7 /uni25C6
+%80
+ /diamondminus /diamondvert /diamondslash /diamondbackslash /diamondplus /diamondtimes /uni27D0 /diamonddiamond
+ /uni2B2B /uni2B2A /uni25CA /uni29EB /uni27E0 /uni2B52 /uni22C6 /uni2B50
+%90
+ /uni2B51 /uni2606 /uni2605 /asteriskmath /infinity /proportional /revproportional /crossing
+ /uni226C /separated /uni22A5 /uni22A4 /uni2240 /angle /uni29A3 /uni2221
+%A0
+ /uni299B /uni2222 /uni29A1 /uni29A0 /sphericaldown /uni221F /uni22BE /uni299C
+ /uni299D /minute /primereversed /product.small /uni2A3F /integral.small /checkmark /uni21AF
+%B0
+ /diamondsuitwhite /diamond /heartsuitwhite /heartsuitblack /spade /club /uni2720 /uni2721
+ /uni2314 /universal /existential /uni2204 /uni2132 /uni2141 /uni2201 /musicflatsign
+%C0
+ /uni266E /musicsharpsign /uni2135 /uni2136 /uni2137 /uni2138 /weierstrass /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%D0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%E0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%F0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-b.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-b.enc
new file mode 100644
index 00000000000..6d3924698cf
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-b.enc
@@ -0,0 +1,54 @@
+% TeX extra characters encoding.
+% CODINGSCHEME FONTSPECIFIC
+%
+/FdSymbolB [
+%00
+ /equal /equivalence /similar /uni223D /approxequal /uni224B /uni2243 /uni22CD
+ /uni2242 /congruent /uni224C /uni224A /uni224F /2AAE /uni224E /uni2250
+%10
+ /uni2A66 /uni2251 /uni2252 /uni2253 /uni2323 /uni2322 /uni224D /uni2050
+ /smileequal /uni2258 /uni2256 /uni2257 /uni2259 /uni225A /uni225B /uni225C
+%20
+ /element /suchthat /less /greater /lessequal /greaterequal /uni2A7D /uni2A7E
+ /uni2266 /uni2267 /uni2272 /uni2273 /uni2A85 /uni2A86 /uni2276 /uni2277
+%30
+ /uni22DA /uni22DB /uni2A8B /uni2A8C /uni22DA.alt /uni22DB.alt /uni226A /uni226B
+ /uni22D8 /uni22D9 /uni22B2 /uni22B3 /uni22B4 /uni22B5 /uni2AA6 /uni2AA7
+%40
+ /uni2AA8 /uni2AA9 /uni228F /uni2290 /uni2291 /uni2292 /sqsubseteqq /sqsupseteqq
+ /Sqsubset /Sqsupset /propersubset /propersuperset /reflexsubset /reflexsuperset
+ /uni2AC5 /uni2AC6
+%50
+ /uni22D0 /uni22D1 /uni227A /uni227B /uni2AAF /uni2AB0 /uni227C /uni227D
+ /uni2AB3 /uni2AB4 /uni227E /uni227F /uni2AB7 /uni2AB8 /uni22D6 /uni22D7
+%60
+ /leqdot /geqdot /uni2A7F /uni2A80 /uni2A95 /uni2A96 /uni22DE /uni22DF
+ /notequal /uni2262 /uni2241 /uni223D0338 /uni2249 /uni224B0338 /uni2244 /uni22CD0338
+%70
+ /uni22420338 /uni2247 /uni224C0338 /uni224A0338 /uni224F0338 /uni2AAE0338 /uni224E0338 /uni22500338
+ /uni2A660338 /uni22510338 /uni22520338 /uni22530338 /uni23230338 /uni23220338 /uni226D /uni20500338
+%80
+ /smileequal_uni0338 /uni22580338 /uni22560338 /uni22570338 /uni22590338 /uni225A0338 /uni225B0338 /uni225C0338
+ /notelement /uni220C /uni226E /uni226F /uni2270 /uni2271 /uni2A7D0338 /uni2A7E0038
+%90
+ /uni22660338 /uni22670338 /uni2274 /uni2275 /uni2A850338 /uni2A860338 /uni2278 /uni2279
+ /uni22DA0338 /uni22DB0338 /uni2A8B0338 /uni2A8C0338 /uni22DA0338.alt /uni22DB0038.alt /uni226A0338 /uni226B0338
+%A0
+ /uni22D80338 /uni22D90338 /uni22EA /uni22EB /uni22EC /uni22ED /uni2AA60338 /uni2AA70338
+ /uni2AA80338 /uni2AA90338 /uni228F0338 /uni22900338 /uni22E2 /uni22E3 /sqsubseteqq_uni0338 /sqsupseteqq_uni0338
+%B0
+ /Sqsubset_uni0338 /Sqsupset_uni0338 /notsubset /uni2285 /uni2288 /uni2289 /uni2AC50338 /uni2AC60338
+ /uni22D00338 /uni22D10338 /uni2280 /uni2281 /uni2AAF0338 /uni2AB00338 /uni22E0 /uni22E1
+%C0
+ /uni2AB30338 /uni2AB40338 /uni227E0338 /uni227F0338 /uni2AB70338 /uni2AB80338 /uni22D60338 /uni22D70338
+ /leqdot_uni0338 /geqdot_uni0338 /uni2A7F0338 /uni2A800338 /uni2A950338 /uni2A960338 /uni22DE0338 /uni22DF0338
+%D0
+ /uni2246 /backsimneqq /uni2A87 /uni2A88 /uni2268 /uni2269 /uni22E6 /uni22E7
+ /uni2A89 /uni2A8A /lessneqqgtr /gtrneqqless /uni22E4 /uni22E5 /sqsubsetneqq /sqsupsetneqq
+%E0
+ /uni228A /uni228B /uni2ACB /uni2ACC /uni2AB1 /uni2AB2 /uni2AB5 /uni2AB6
+ /uni22E8 /uni22E9 /uni2AB9 /uni2ABA /.notdef /.notdef /.notdef /.notdef
+%F0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-c.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-c.enc
new file mode 100644
index 00000000000..660256e41b2
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-c.enc
@@ -0,0 +1,53 @@
+% TeX extra characters encoding.
+% CODINGSCHEME FONTSPECIFIC
+%
+/FdSymbolC [
+%00
+ /arrowright /arrowup /arrowleft /arrowdown /arrowupright /arrowupleft /arrowdownleft /arrowdownright
+ /arrowdblright /arrowdblup /arrowdblleft /arrowdbldown /uni21D7 /uni21D6 /uni21D9 /uni21D8
+%10
+ /arrowboth /arrowupdn /uni2921 /uni2922 /arrowdblboth /uni21D5 /Neswarrow /Nwsearrow
+ /uni21A0 /uni219F /uni219E /uni21A1 /twoheadnearrow /twoheadnwarrow /twoheadswarrow /twoheadsearrow
+%20
+ /uni21A3 /uparrowtail /uni21A2 /downarrowtail /nearrowtail /nwarrowtail /swarrowtail /searrowtail
+ /uni21A6 /uni21A5 /uni21A4 /uni21A7 /nemapsto /nwmapsto /swmapsto /semapsto
+%30
+ /uni21AA /lhookuparrow /lhookleftarrow /lhookdownarrow /lhooknearrow /uni2923 /lhookswarrow /uni2925
+ /rhookrightarrow /rhookuparrow /uni21A9 /rhookdownarrow /uni2924 /rhooknwarrow /uni2926 /rhooksearrow
+%40
+ /harpoonrightbarbup /uni21BF /uni21BD /uni21C2 /neharpoonup /nwharpoonup /swharpoonup /seharpoonup
+ /uni21C1 /uni21BE /harpoonleftbarbup /uni21C3 /neharpoondown /nwharpoondown /swharpoondown /seharpoondown
+%50
+ /uni294B /uni294D /neswharpoonnwse /senwharpoonnesw /uni294A /uni294B /neswharpoonsenw /nwseharpoonswne
+ /uni21CC /uni296E /neswharpoons /senwharpoons /uni21CB /uni296F /swneharpoons /nwseharpoons
+%60
+ /arrowdashright /arrowdashup /arrowdashleft /arrowdashdown /dashednearrow /dashednwarrow /dashedswarrow /dashedsearrow
+ /uni22B8 /uni2AEF /uni27DC /uni2AF0 /rightfilledspoon /upfilledspoon /leftfilledspoon /downfilledspoon
+%70
+ /rightpitchfork /uni22D4 /leftpitchfork /downpitchfork /uni21C9 /uni21C8 /uni21C7 /uni21CA
+ /nenearrows /nwnwarrows /swswarrows /sesearrows /arrowrightoverleft /updownarrows /neswarrows /nwsearrows
+%80
+ /uni21C6 /uni21F5 /swnearrows /senwarrows /uni219D /uplsquigarrow /leftlsquigarrow /downlsquigarrow
+ /rightrsquigarrow /uprsquigarrow /uni219C /downrsquigarrow /uni21AD /squigarrowupdown /squigarrowrightleft /squigarrowdownup
+%90
+ /uni21B7 /lcurvearrowup /lcurvearrowleft /uni2938 /lcurvearrowne /lcurvearrownw /uni293E /lcurvearrowse
+ /uni293B /rcurvearrowup /uni21B6 /uni2939 /rcurvearrowne /rcurvearrownw /rcurvearrowsw /uni293F
+%A0
+ /curvearrowleftright /curvearrowupdown /curvearrowrightleft /curvearrowdownup /curvearrownesw /curvearrownwse /curvearrowswne /curvearrowsenw
+ /uni27DD /uni27DE /acwcirclearrowup /uni21BA /uni27F2 /acwcirclearrowright /uni27F3 /uni21BB
+%B0
+ /cwcirclearrowup /cwcirclearrowleft /uni21DB /uni290A /uni21DA /uni290B /uni21B0 /uni21B1
+ /uni21B2 /uni21B3 /uni21AC /uni21AB /.notdef /.notdef /.notdef /.notdef
+%C0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%D0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%E0
+ /uni22A2 /uni27C2 /uni22A3 /downvdash /uni22A8 /uni2AEB /uni2AE4 /uni2AEA
+ /uni22A9 /uni234A /uni2AE3 /uni2351 /uni22AB /upVDash /uni2AE5 /downVDash
+%F0
+ /uni22AA /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-d.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-d.enc
new file mode 100644
index 00000000000..dbca79ff1a5
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-d.enc
@@ -0,0 +1,53 @@
+% TeX extra characters encoding.
+% CODINGSCHEME FONTSPECIFIC
+%
+/FdSymbolD [
+%00
+ /uni219B /uni21910338 /uni219A /uni21930338 /uni21970338 /uni21960338 /uni21990338 /uni21980338
+ /arrowrightdblstroke /uni21D10338 /uni21CD /uni21D30338 /uni21D70338 /uni21D60338 /uni21D90338 /uni21D80338
+%10
+ /uni21AE /uni21950338 /uni29210338 /uni29220338 /uni21CE /uni21D50338 /Neswarrow_uni0338 /Nwsearrow_uni0338
+ /uni21A00338 /uni219F0338 /uni219E0338 /uni21A10338 /twoheadnearrow_uni0338 /twoheadnwarrow_uni0338 /twoheadswarrow_uni0338 /twoheadsearrow_uni0338
+%20
+ /uni21A30338 /uparrowtail_uni0338 /uni21A20338 /downarrowtail_uni0338 /nearrowtail_uni0338 /nwarrowtail_uni0338 /swarrowtail_uni0338 /searrowtail_uni0338
+ /uni21A60338 /uni21A50338 /uni21A40338 /uni21A70338 /nemapsto_uni0338 /nwmapsto_uni0338 /swmapsto_uni0338 /semapsto_uni0338
+%30
+ /uni21AA0338 /lhookuparrow_uni0338 /lhookleftarrow_uni0338 /lhookdownarrow_uni0338 /lhooknearrow_uni0338 /uni29230338 /lhookswarrow_uni0338 /uni29250338
+ /rhookrightarrow_uni0338 /rhookuparrow_uni0338 /uni21A90338 /rhookdownarrow_uni0338 /uni29240338 /rhooknwarrow_uni0338 /uni29260338 /rhooksearrow_uni0338
+%40
+ /uni21C00338 /uni21BF0338 /uni21BD0338 /uni21C20338 /neharpoonup_uni0338 /nwharpoonup_uni0338 /swharpoonup_uni0338 /seharpoonup_uni0338
+ /uni21C10338 /uni21BE0338 /uni21BC0338 /uni21C30338 /neharpoondown_uni0338 /nwharpoondown_uni0338 /swharpoondown_uni0338 /seharpoondown_uni0338
+%50
+ /uni294B0338 /uni294D0338 /neswharpoonnwse_uni0338 /senwharpoonnesw_uni0338 /uni294A0338 /uni294B0338 /neswharpoonsenw_uni0338 /nwseharpoonswne_uni0338
+ /uni21CC0338 /uni296E0338 /neswharpoons_uni0338 /senwharpoons_uni0338 /uni21CB0338 /uni296F0338 /swneharpoons_uni0338 /nwseharpoons_uni0338
+%60
+ /uni21E20338 /uni21E10338 /uni21E00338 /uni21E30338 /dashednearrow_uni0338 /dashednwarrow_uni0338 /dashedswarrow_uni0338 /dashedsearrow_uni0338
+ /uni22B80338 /uni2AEF0338 /uni27DC0338 /uni2AF00338 /rightfilledspoon_uni0338 /upfilledspoon_uni0338 /leftfilledspoon_uni0338 /downfilledspoon_uni0338
+%70
+ /rightpitchfork_uni0338 /uni22D40338 /leftpitchfork_uni0338 /downpitchfork_uni0338 /uni21C90338 /uni21C80338 /uni21C70338 /uni21CA0338
+ /nenearrows_uni0338 /nwnwarrows_uni0338 /swswarrows_uni0338 /sesearrows_uni0338 /uni21C40338 /updownarrows_uni0338 /neswarrows_uni0338 /nwsearrows_uni0338
+%80
+ /uni21C60338 /uni21F50338 /swnearrows_uni0338 /senwarrows_uni0338 /uni219D0338 /uplsquigarrow_uni0338 /leftlsquigarrow_uni0338 /downlsquigarrow_uni0338
+ /rightrsquigarrow_uni0338 /uprsquigarrow_uni0338 /uni219C0338 /downrsquigarrow_uni0338 /squigarrowleftright_uni0338 /squigarrowupdown_uni0338 /squigarrowrightleft_uni0338 /squigarrowdownup_uni0338
+%90
+ /uni21B70338 /lcurvearrowup_uni0338 /lcurvearrowleft_uni0338 /uni29380338 /lcurvearrowne_uni0338 /lcurvearrownw_uni0338 /uni293E0338 /lcurvearrowse_uni0338
+ /uni293B0338 /rcurvearrowup_uni0338 /uni21B60338 /uni29390338 /rcurvearrowne_uni0338 /rcurvearrownw_uni0338 /rcurvearrowsw_uni0338 /uni293F0338
+%A0
+ /curvearrowleftright_uni0338 /curvearrowupdown_uni0338 /curvearrowrightleft_uni0338 /curvearrowdownup_uni0338 /curvearrownesw_uni0338 /curvearrownwse_uni0338 /curvearrowswne_uni0338 /curvearrowsenw_uni0338
+ /uni27DD0338 /uni27DE0338 /acwcirclearrowup_uni0338 /uni21BA0338 /uni27F20338 /acwcirclearrowright_uni0338 /uni27F30338 /uni21BB0338
+%B0
+ /cwcirclearrowup_uni0338 /cwcirclearrowleft_uni0338 /uni21DB0338 /uni290A0338 /uni21DA0338 /uni290B0338 /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%C0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%D0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%E0
+ /uni22AC /uni27C20338 /uni22A30338 /downvdash_uni0338 /uni22AD /uni2AEB0338 /uni2AE40338 /uni2AEA0338
+ /uni22AE /uni234A0338 /uni2AE30338 /uni23510338 /uni22AF /upVDash_uni0338 /uni2AE50338 /downVDash_uni0338
+%F0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-e.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-e.enc
new file mode 100644
index 00000000000..c94660f312a
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-e.enc
@@ -0,0 +1,53 @@
+% TeX extra characters encoding.
+% CODINGSCHEME FONTSPECIFIC
+%
+/FdSymbolE [
+%00
+ /plus.big /plus.big.disp /uni2A09 /uni2A09.disp /uni22C0 /uni22C0.disp /uni22C1 /uni22C1.disp
+ /uni27D1.big /uni27D1.big.disp /uni27C7.big /uni27C7.big.disp /uni2A07 /uni2A07.disp /uni2A08 /uni2A08.disp
+%10
+ /curlyand.big /curlyand.big.disp /curlyor.big /curlyor.big.disp /curlywedgedot.big /curlywedgedot.big.disp /curlyveedot.big /curlyveedot.big.disp
+ /doublecurlywedge.big /doublecurlywedge.big.disp /doublecurlyvee.big /doublecurlyvee.big.disp /uni22C2 /uni22C2.disp /uni22C3 /uni22C3.disp
+%20
+ /uni2A40.big /uni2A40.big.disp /uni2A03 /uni2A03.disp /capplus.big /capplus.big.disp /uni2A04 /uni2A04.disp
+ /uni2A05 /uni2A05.disp /uni2A06 /uni2A06.disp /sqcapdot.big /sqcapdot.big.disp /sqcupdot.big /sqcupdot.big.disp
+%30
+ /sqcapplus.big /sqcapplus.big.disp /sqcupplus.big /sqcupplus.big.disp /uni2A01 /uni2A01.disp /uni2A02 /uni2A02.disp
+ /uni2A00 /uni2A00.disp /uni229B.big /uni229B.big.disp /product /product.disp /uni2210 /uni2210.disp
+%40
+ /summation /summation.disp /uni2A0A /uni2A0A.disp /integral /integral.disp /uni222C /uni222C.disp
+ /uni222D /uni222D.disp /uni2A0C /uni2A0C.disp /uni222B2026222B /uni222B2026222B.disp /uni2231 /uni2231.disp
+%50
+ /uni2A11 /uni2A11.disp /uni2A0D /uni2A0D.disp /uni2A0E /uni2A0E.disp /uni2A0F /uni2A0F.disp
+ /uni222E /uni222E.disp /uni222F /uni222F.disp /uni2230 /uni2230.disp /uni2233 /uni2233.disp
+%60
+ /uni2232.alt /uni2232.alt.disp /uni2233.alt /uni2233.alt.disp /uni2232 /uni2232.disp /uni2A0B /uni2A0B.disp
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%70
+ /.notdef /.notdef /circumflexcmb /circumflexcmb.big1 /circumflexcmb.big2 /circumflexcmb.big3 /circumflexcmb.big4 /circumflexcmb.big5
+ /tildecomb /tildecomb.big1 /tildecomb.big2 /tildecomb.big3 /tildecomb.big4 /tildecomb.big5 /parencmb /parencmb.big1
+%80
+ /parencmb.big2 /parencmb.big3 /parencmb.big4 /parencmb.big5 /uni20D7 /uni0335 /uni0337 /uni0338
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%90
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%A0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%B0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%C0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%D0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%E0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%F0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
diff --git a/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-f.enc b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-f.enc
new file mode 100644
index 00000000000..11cbac18105
--- /dev/null
+++ b/Master/texmf-dist/fonts/enc/dvips/fdsymbol/fdsymbol-f.enc
@@ -0,0 +1,53 @@
+% TeX extra characters encoding.
+% CODINGSCHEME FONTSPECIFIC
+%
+/FdSymbolF [
+%00
+ /parenleft /parenleft.big1 /parenleft.big2 /parenleft.big3 /parenleft.big4 /parenleft.big5 /parenright /parenright.big1
+ /parenright.big2 /parenright.big3 /parenright.big4 /parenright.big5 /uni239B /uni239E /uni239D /uni23A0
+%10
+ /uni239C /uni239F /bracketleft /bracketleft.big1 /bracketleft.big2 /bracketleft.big3 /bracketleft.big4 /bracketleft.big5
+ /bracketright /bracketright.big1 /bracketright.big2 /bracketright.big3 /bracketright.big4 /bracketright.big5 /uni230A /uni230A.big1
+%20
+ /uni230A.big2 /uni230A.big3 /uni230A.big4 /uni230A.big5 /uni230B /uni230B.big1 /uni230B.big2 /uni230B.big3
+ /uni230B.big4 /uni20B.big5 /uni2308 /uni2308.big1 /uni2308.big2 /uni2308.big3 /uni2308.big4 /uni2308.big5
+%30
+ /uni2309 /uni2309.big1 /uni2309.big2 /uni2309.big3 /uni2309.big4 /uni2309.big5 /uni231C /uni231C.big1
+ /uni231C.big2 /uni231C.big3 /uni231C.big4 /uni231C.big5 /uni231D /uni231D.big1 /uni231D.big2 /uni231D.big3
+%40
+ /uni231D.big4 /uni231D.big5 /uni231E /uni231E.big1 /uni231E.big2 /uni231E.big3 /uni231E.big4 /uni231E.big5
+ /uni231F /uni231F.big1 /uni231F.big2 /uni231F.big3 /uni231F.big4 /uni231F.big5 /ullcorner /ullcorner.big1
+%50
+ /ullcorner.big2 /ullcorner.big3 /ullcorner.big4 /ullcorner.big5 /ulrcorner /ulrcorner.big1 /ulrcorner.big2 /ulrcorner.big3
+ /ulrcorner.big4 /ulrcorner.big5 /uni23A1 /uni23A4 /uni23A3 /uni23A6 /uni23A2 /uni23A5
+%60
+ /uni27E6 /uni27E6.big1 /uni27E6.big2 /uni27E6.big3 /uni27E6.big4 /uni27E6.big5 /uni27E7 /uni27E7.big1
+ /uni27E7.big2 /uni27E7.big3 /uni27E7.big4 /uni27E7.big5 /lsemtop /rsemtop /lsembot /rsembot
+%70
+ /lsemmod /rsemmod /braceleft /braceleft.big1 /braceleft.big2 /braceleft.big3 /braceleft.big4 /braceleft.big5
+ /braceright /braceright.big1 /braceright.big2 /braceright.big3 /braceright.big4 /braceright.big5 /uni23A7 /uni23AB
+%80
+ /uni23A9 /uni23AD /uni23A8 /uni23AC /uni23AA /uni27E8 /uni27E8.big1 /uni27E8.big2
+ /uni27E8.big3 /uni27E8.big4 /uni27E8.big5 /uni27E9 /uni27E9.big1 /uni27E9.big2 /uni27E9.big3 /uni27E9.big4
+%90
+ /uni27E9.big5 /uni27EA /uni27EA.big1 /uni27EA.big2 /uni27EA.big3 /uni27EA.big4 /uni27EA.big5 /uni27EB
+ /uni27EB.big1 /uni27EB.big2 /uni27EB.big3 /uni27EB.big4 /uni27EB.big5 /uni2991 /uni2991.big1 /uni2991.big2
+%A0
+ /uni2991.big3 /uni2991.big4 /uni2991.big5 /uni2992 /uni2992.big1 /uni2992.big2 /uni2992.big3 /uni2992.big4
+ /uni2992.big5 /slash /slash.big1 /slash.big2 /slash.big3 /slash.big4 /slash.big5 /backslash
+%B0
+ /backslash.big1 /backslash.big2 /backslash.big3 /backslash.big4 /backslash.big5 /divides.small /verticalbar /verticalbar.big1
+ /uni2224.small /uni2224 /uni224.big1 /arrowvert /parallel.small /dblverticalbar /dblverticalbar.big1 /notparallel.small
+%C0
+ /notparallel /notparallel.big1 /dblarrowvert /uni2980 /uni2980.big1 /trparrowvert /arrowtop /arrowbot
+ /arrowmod /dblarrowtop /dblarrowbot /dblarrowmod /ucurlyleft /dcurlyleft /ucurlyright /dcurlyright
+%D0
+ /ucurlymid /dcurlymid /udcurlymod /radical /radical.big1 /radical.big2 /radical.big3 /radical.big4
+ /radical.big5 /roottop /uni23B7 /rootmod /.notdef /.notdef /.notdef /.notdef
+%E0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+%F0
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+ /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
+] def
diff --git a/Master/texmf-dist/fonts/map/dvips/fdsymbol/fdsymbol.map b/Master/texmf-dist/fonts/map/dvips/fdsymbol/fdsymbol.map
new file mode 100644
index 00000000000..2b412d33e86
--- /dev/null
+++ b/Master/texmf-dist/fonts/map/dvips/fdsymbol/fdsymbol.map
@@ -0,0 +1,24 @@
+FdSymbolA-Book FdSymbol-Book "FdSymbolA ReEncodeFont" <[fdsymbol-a.enc <FdSymbol-Book.pfb
+FdSymbolA-Regular FdSymbol-Regular "FdSymbolA ReEncodeFont" <[fdsymbol-a.enc <FdSymbol-Regular.pfb
+FdSymbolA-Medium FdSymbol-Medium "FdSymbolA ReEncodeFont" <[fdsymbol-a.enc <FdSymbol-Medium.pfb
+FdSymbolA-Bold FdSymbol-Bold "FdSymbolA ReEncodeFont" <[fdsymbol-a.enc <FdSymbol-Bold.pfb
+FdSymbolB-Book FdSymbol-Book "FdSymbolB ReEncodeFont" <[fdsymbol-b.enc <FdSymbol-Book.pfb
+FdSymbolB-Regular FdSymbol-Regular "FdSymbolB ReEncodeFont" <[fdsymbol-b.enc <FdSymbol-Regular.pfb
+FdSymbolB-Medium FdSymbol-Medium "FdSymbolB ReEncodeFont" <[fdsymbol-b.enc <FdSymbol-Medium.pfb
+FdSymbolB-Bold FdSymbol-Bold "FdSymbolB ReEncodeFont" <[fdsymbol-b.enc <FdSymbol-Bold.pfb
+FdSymbolC-Book FdSymbol-Book "FdSymbolC ReEncodeFont" <[fdsymbol-c.enc <FdSymbol-Book.pfb
+FdSymbolC-Regular FdSymbol-Regular "FdSymbolC ReEncodeFont" <[fdsymbol-c.enc <FdSymbol-Regular.pfb
+FdSymbolC-Medium FdSymbol-Medium "FdSymbolC ReEncodeFont" <[fdsymbol-c.enc <FdSymbol-Medium.pfb
+FdSymbolC-Bold FdSymbol-Bold "FdSymbolC ReEncodeFont" <[fdsymbol-c.enc <FdSymbol-Bold.pfb
+FdSymbolD-Book FdSymbol-Book "FdSymbolD ReEncodeFont" <[fdsymbol-d.enc <FdSymbol-Book.pfb
+FdSymbolD-Regular FdSymbol-Regular "FdSymbolD ReEncodeFont" <[fdsymbol-d.enc <FdSymbol-Regular.pfb
+FdSymbolD-Medium FdSymbol-Medium "FdSymbolD ReEncodeFont" <[fdsymbol-d.enc <FdSymbol-Medium.pfb
+FdSymbolD-Bold FdSymbol-Bold "FdSymbolD ReEncodeFont" <[fdsymbol-d.enc <FdSymbol-Bold.pfb
+FdSymbolE-Book FdSymbol-Book "FdSymbolE ReEncodeFont" <[fdsymbol-e.enc <FdSymbol-Book.pfb
+FdSymbolE-Regular FdSymbol-Regular "FdSymbolE ReEncodeFont" <[fdsymbol-e.enc <FdSymbol-Regular.pfb
+FdSymbolE-Medium FdSymbol-Medium "FdSymbolE ReEncodeFont" <[fdsymbol-e.enc <FdSymbol-Medium.pfb
+FdSymbolE-Bold FdSymbol-Bold "FdSymbolE ReEncodeFont" <[fdsymbol-e.enc <FdSymbol-Bold.pfb
+FdSymbolF-Book FdSymbol-Book "FdSymbolF ReEncodeFont" <[fdsymbol-f.enc <FdSymbol-Book.pfb
+FdSymbolF-Regular FdSymbol-Regular "FdSymbolF ReEncodeFont" <[fdsymbol-f.enc <FdSymbol-Regular.pfb
+FdSymbolF-Medium FdSymbol-Medium "FdSymbolF ReEncodeFont" <[fdsymbol-f.enc <FdSymbol-Medium.pfb
+FdSymbolF-Bold FdSymbol-Bold "FdSymbolF ReEncodeFont" <[fdsymbol-f.enc <FdSymbol-Bold.pfb
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Bold.mf
new file mode 100644
index 00000000000..835b43ecc75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Bold.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Bold";
+weight_index := 3;
+
+input FdSymbolA;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Book.mf
new file mode 100644
index 00000000000..2337d69fa49
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Book.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Book";
+weight_index := 0;
+
+input FdSymbolA;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Medium.mf
new file mode 100644
index 00000000000..72090e329ac
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Medium.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Medium";
+weight_index := 2;
+
+input FdSymbolA;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Regular.mf
new file mode 100644
index 00000000000..ff042c04483
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA-Regular.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Regular";
+weight_index := 1;
+
+input FdSymbolA;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA.mf
new file mode 100644
index 00000000000..0dcbb870fe3
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolA.mf
@@ -0,0 +1,40 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+font_identifier := "FdSymbolA";
+design_size := 10;
+font_size design_size * pt#;
+
+input fdbase;
+input fdgeometric;
+
+font_slant 0;
+font_x_height x_height#;
+font_quad 10pt#;
+
+subs := 7/10; % subscript size
+rth# := rule_thickness#;
+
+fontdimen 8: % parameters $\sigma_8$ to $\sigma_{22}$ will now be listed
+ math_axis# + 3.5rth# + desc_depth#, % num1 (\sigma_8)
+ math_axis# + 1.5rth# + 5/6pt#, % num2 (\sigma_9)
+ math_axis# + 1.5rth# + 5/6pt#, % num3 (\sigma_{10})
+ 3.5rth# + subs * asc_height# - math_axis#, % denom1 (\sigma_{11})
+ 1.5rth# + subs * asc_height# - math_axis# + 5/6pt#, % denom2 (\sigma_{12})
+ 5.5pt#, % sup1 (\sigma_{13})
+ 5.2pt#, % sup2 (\sigma_{14})
+ 3.7pt#, % sup3 (\sigma_{15})
+ 1.8pt#, % sub1 (\sigma_{16})
+ 2.0pt#, % sub2 (\sigma_{17})
+ 4.0pt#, % sup\_drop (\sigma_{18})
+ 0.5pt#, % sub\_drop (\sigma_{19})
+ 25pt#, % delim1 (\sigma_{20})
+ 12pt#, % delim2 (\sigma_{21})
+ math_axis#; % axis\_height (\sigma_{22})
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Bold.mf
new file mode 100644
index 00000000000..f9c03337604
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Bold.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Bold";
+weight_index := 3;
+
+input FdSymbolB;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Book.mf
new file mode 100644
index 00000000000..7fc816b8029
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Book.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Book";
+weight_index := 0;
+
+input FdSymbolB;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Medium.mf
new file mode 100644
index 00000000000..d387172b34c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Medium.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Medium";
+weight_index := 2;
+
+input FdSymbolB;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Regular.mf
new file mode 100644
index 00000000000..c918496f36d
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB-Regular.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Regular";
+weight_index := 1;
+
+input FdSymbolB;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB.mf
new file mode 100644
index 00000000000..a0af7cf6df2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolB.mf
@@ -0,0 +1,24 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+font_identifier := "FdSymbolB";
+design_size := 10;
+font_size design_size * pt#;
+
+input fdbase;
+
+negated := 0;
+input fdrelations;
+
+negated := 1;
+input fdrelations;
+
+negated := 2;
+input fdrelations;
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Bold.mf
new file mode 100644
index 00000000000..99f9080a727
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Bold.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Bold";
+weight_index := 3;
+
+input FdSymbolC;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Book.mf
new file mode 100644
index 00000000000..f676dc42690
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Book.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Book";
+weight_index := 0;
+
+input FdSymbolC;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Medium.mf
new file mode 100644
index 00000000000..45a69ffef07
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Medium.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Medium";
+weight_index := 2;
+
+input FdSymbolC;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Regular.mf
new file mode 100644
index 00000000000..ef9172ebd76
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC-Regular.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Regular";
+weight_index := 1;
+
+input FdSymbolC;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC.mf
new file mode 100644
index 00000000000..2d5843e6a6a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolC.mf
@@ -0,0 +1,20 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+font_identifier := "FdSymbolC";
+design_size := 10;
+font_size design_size * pt#;
+
+input fdbase;
+
+boolean negated;
+negated := false;
+
+input fdarrows;
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Bold.mf
new file mode 100644
index 00000000000..e757d2a06a4
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Bold.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Bold";
+weight_index := 3;
+
+input FdSymbolD;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Book.mf
new file mode 100644
index 00000000000..b80a22b8cea
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Book.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Book";
+weight_index := 0;
+
+input FdSymbolD;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Medium.mf
new file mode 100644
index 00000000000..4fa4f06fb1c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Medium.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Medium";
+weight_index := 2;
+
+input FdSymbolD;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Regular.mf
new file mode 100644
index 00000000000..d30d81af14a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD-Regular.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Regular";
+weight_index := 1;
+
+input FdSymbolD;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD.mf
new file mode 100644
index 00000000000..5a4fc5812c2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolD.mf
@@ -0,0 +1,20 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+font_identifier := "FdSymbolD";
+design_size := 10;
+font_size design_size * pt#;
+
+input fdbase;
+
+boolean negated;
+negated := true;
+
+input fdarrows;
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Bold.mf
new file mode 100644
index 00000000000..abf8bc20a8b
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Bold.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Bold";
+weight_index := 3;
+
+input FdSymbolE;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Book.mf
new file mode 100644
index 00000000000..b0bf8816642
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Book.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Book";
+weight_index := 0;
+
+input FdSymbolE;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Medium.mf
new file mode 100644
index 00000000000..da68386282a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Medium.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Medium";
+weight_index := 2;
+
+input FdSymbolE;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Regular.mf
new file mode 100644
index 00000000000..9166eae44b8
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE-Regular.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Regular";
+weight_index := 1;
+
+input FdSymbolE;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE.mf
new file mode 100644
index 00000000000..026cf3f04e7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolE.mf
@@ -0,0 +1,29 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+font_identifier := "FdSymbolE";
+design_size := 10;
+font_size design_size * pt#;
+
+input fdbase;
+input fdoperators;
+
+current_char := 113;
+input fdaccents.mf;
+
+font_x_height x_height#;
+
+fontdimen 8:
+ rule_thickness#, % default_rule_thickness
+ 1.1pt#, % big_op_spacing1
+ 1.6pt#, % big_op_spacing2
+ 2.0pt#, % big_op_spacing3
+ 6.0pt#, % big_op_spacing4
+ 1.0pt#; % big_op_spacing5
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Bold.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Bold.mf
new file mode 100644
index 00000000000..a8a9a7fe849
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Bold.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Bold";
+weight_index := 3;
+
+input FdSymbolF;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Book.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Book.mf
new file mode 100644
index 00000000000..60968400a12
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Book.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Book";
+weight_index := 0;
+
+input FdSymbolF;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Medium.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Medium.mf
new file mode 100644
index 00000000000..60c4162bf3f
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Medium.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Medium";
+weight_index := 2;
+
+input FdSymbolF;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Regular.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Regular.mf
new file mode 100644
index 00000000000..dc840d5fbdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF-Regular.mf
@@ -0,0 +1,13 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+string font_weight;
+font_weight := "Regular";
+weight_index := 1;
+
+input FdSymbolF;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF.mf
new file mode 100644
index 00000000000..d54763c65a2
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/FdSymbolF.mf
@@ -0,0 +1,16 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+font_identifier := "FdSymbolF";
+design_size := 10;
+font_size design_size * pt#;
+
+input fdbase;
+input fddelims;
+
+bye;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdaccents.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdaccents.mf
new file mode 100644
index 00000000000..4d9e81b764c
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdaccents.mf
@@ -0,0 +1,89 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+for scale = 1, 1.8, 2.6, 3.4, 4.2, 5:
+ beginsymbol(scale * 7u#, x_height# + 2rule_thickness# + 1/2equal_spread# + line_thickness#, 0); "wide hat";
+ thick := line_thickness;
+
+ y2 = h - 1/2thick;
+ x2 = w/2;
+ x1 = w - x3 = 0;
+ y1 = y3 = y2 - 1/2equal_spread;
+
+ theta := angle(z2 - z1);
+
+ penpos2(6/5thick, 90);
+ penpos1(thick, theta + 90);
+ penpos3(thick, 90 - theta);
+
+ fill stroke z1e -- z2e -- z3e;
+ endchar;
+endfor;
+
+charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char;
+
+for scale = 1, 1.8, 2.6, 3.4, 4.2, 5:
+ beginsymbol(scale * 7u#, x_height# + 2rule_thickness# + 1/2equal_spread# + line_thickness#, 0); "wide tilde";
+ draw_sim(a, (0, 1/2[x_height + 2rule_thickness, h]), (w, 1/2[x_height + 2rule_thickness, h]), 1/4equal_spread, line_thickness);
+ endchar;
+endfor;
+
+charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char;
+
+for scale = 1, 1.8, 2.6, 3.4, 4.2, 5:
+ beginsymbol(scale * 7u#, x_height# + 2rule_thickness# + 1/2equal_spread# + line_thickness#, 0); "wide paren";
+ draw_smile(a, -1, (0, 1/2[x_height + 2rule_thickness, h]), (w, 1/2[x_height + 2rule_thickness, h]), 1/2equal_spread, line_thickness, true);
+ endchar;
+endfor;
+
+charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char;
+
+beginsymbol(6u#, x_height# + 2rule_thickness# + 5/2line_thickness#, 0); "vec";
+ thick := 3/4line_thickness;
+
+ x0 = 0;
+ x1 = w - 1/2thick;
+ y0 = y1 = h - 5/4line_thickness;
+
+ draw_straight(z0, z1, thick, false);
+ draw_arrowhead(z1, 0, 5/2line_thickness, thick);
+endchar;
+
+beginsymbol(5u#, (-1)[x_height#, asc_height#], 0); "middle bar";
+ penpos0(5/6line_thickness, 85);
+ penpos1(5/6line_thickness, 85);
+
+ x0 = w - x1 = 0;
+ y0 = y1 = h;
+
+ fill stroke z0e -- z1e;
+endchar;
+
+beginsymbol(5u#, (-1)[x_height#, asc_height#], 0); "middle slash";
+ penpos0(line_thickness, 85);
+ penpos1(line_thickness, 85);
+
+ x0 = w - x1 = 0;
+ 1/2[y0,y1] = h;
+ y1 - y0 = 2line_thickness;
+
+ fill stroke z0e -- z1e;
+endchar;
+
+beginsymbol(5u# + 2side_bearing#, 3/2asc_height#, 0); "stroke through";
+ theta := 70;
+
+ penpos1(line_thickness, theta - 90);
+ penpos2(line_thickness, theta - 90);
+
+ z0 = (w/2,1/6asc_height);
+ z1 = z0 + 3/4asc_height / cosd (90 - theta) * dir theta;
+ z2 = z0 - 3/4asc_height / cosd (90 - theta) * dir theta;
+
+ fill stroke z1e -- z2e;
+endchar;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdarrows.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdarrows.mf
new file mode 100644
index 00000000000..b7fc83c3edc
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdarrows.mf
@@ -0,0 +1,728 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+def ifneg(expr a,b) =
+ if negated: a else: b fi
+enddef;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "single arrow (" & decimal alpha & ")";
+ draw_line(foot_ex, head, false);
+ draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 6/5, ifneg(19/10, 13/10) * arrow_spread#); "double arrow (" & decimal alpha & ")";
+ z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90);
+ 1/2[z0,z1] = foot_ex;
+ 1/2[z2,z3] = head;
+
+ draw_line(z0, arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z0 -- z2), false);
+ draw_line(z1, arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z1 -- z3), false);
+ draw_arrowhead(head, arrow_dir, 13/10arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - arrow_spread * dir arrow_dir], alpha, 19/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginarrow(alpha, 6/5, ifneg(3/2, 1) * arrow_spread#); "bidirectional arrow (" & decimal alpha & ")";
+ draw_line(foot, head, false);
+ draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead(foot, arrow_dir+180, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginarrow(alpha, 7/5, ifneg(19/10, 13/10) * arrow_spread#); "double bidirectional arrow (" & decimal alpha & ")";
+ z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90);
+ 1/2[z0,z1] = foot;
+ 1/2[z2,z3] = head;
+
+ draw_line(arrowhead_intersection(foot, arrow_dir+180, 13/10arrow_spread, z0 -- z2), arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z0 -- z2), false);
+ draw_line(arrowhead_intersection(foot, arrow_dir+180, 13/10arrow_spread, z1 -- z3), arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z1 -- z3), false);
+ draw_arrowhead(head, arrow_dir, 13/10arrow_spread, line_thickness);
+ draw_arrowhead(foot, arrow_dir+180, 13/10arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 19/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 5/4, ifneg(3/2, 1) * arrow_spread#); "double-head arrow (" & decimal alpha & ")";
+ draw_line(foot_ex, head, false);
+ draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead(head - 1/4arrow_len * dir arrow_dir, arrow_dir, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - (1/2arrow_spread + 1/4arrow_len) * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "tailed arrow (" & decimal alpha & ")";
+ z0 = foot + 1/2arrow_spread * dir arrow_dir;
+
+ draw_line(z0, head, false);
+ draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead(z0, arrow_dir, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "arrow with foot (" & decimal alpha & ")";
+ draw_line(foot, head, false);
+ draw_line(foot - 1/2arrow_spread * dir (alpha + 90), foot + 1/2arrow_spread * dir (alpha + 90), true);
+ draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "left embedding (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = foot + 1/4arrow_spread * dir(arrow_dir + 90);
+ 1/2[z1,z2] = z0 + 1/4arrow_spread * dir arrow_dir;
+ z2 = z1 + 1/2arrow_spread * dir (arrow_dir + 90);
+ z3 = head;
+ z4 = z2 + 1/2thick * dir arrow_dir;
+
+ penpos0(thick, arrow_dir);
+ penpos1(thick, arrow_dir + 90);
+ penpos2(thick, arrow_dir - 90);
+ penpos3(thick, arrow_dir + 90);
+ penpos4(thick, arrow_dir - 90);
+
+ draw_arrowhead(head, arrow_dir, arrow_spread, thick);
+ fill stroke z4.e -- z2.e{dir (arrow_dir + 180)} ..
+ z0.e{dir (arrow_dir - 90)} .. z1.e{dir arrow_dir} -- z3.e;
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "right embedding (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = foot - 1/4arrow_spread * dir(arrow_dir + 90);
+ 1/2[z1,z2] = z0 + 1/4arrow_spread * dir arrow_dir;
+ z2 = z1 - 1/2arrow_spread * dir (arrow_dir + 90);
+ z3 = head;
+ z4 = z2 + 1/2thick * dir arrow_dir;
+
+ penpos0(thick, arrow_dir + 180);
+ penpos1(thick, arrow_dir + 90);
+ penpos2(thick, arrow_dir - 90);
+ penpos3(thick, arrow_dir + 90);
+ penpos4(thick, arrow_dir - 90);
+
+ draw_arrowhead(head, arrow_dir, arrow_spread, thick);
+ fill stroke z4.e -- z2.e{dir (arrow_dir + 180)} ..
+ z0.e{dir (arrow_dir + 90)} .. z1.e{dir arrow_dir} -- z3.e;
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "left harpoon (" & decimal alpha & ")";
+ draw_line(foot_ex, head, false);
+ draw_arrowhead_left(head, arrow_dir, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "right harpoon (" & decimal alpha & ")";
+ draw_line(foot_ex, head, false);
+ draw_arrowhead_right(head, arrow_dir, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "left left harpoon (" & decimal alpha & ")";
+ draw_line(foot, head, false);
+ draw_arrowhead_left(head, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead_left(foot, arrow_dir+180, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(80, 80, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "right right harpoon (" & decimal alpha & ")";
+ draw_line(foot, head, false);
+ draw_arrowhead_right(head, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead_right(foot, arrow_dir+180, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 100, 100);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread# + equal_spread#); "double left left harpoon (" & decimal alpha & ")";
+ z1 - z0 = z1' - z0' = z3 - z2 = z3' - z2' = equal_spread * dir (arrow_dir + 90);
+ 1/2[z0,z1] = foot;
+ 1/2[z0',z1'] = foot_ex;
+ 1/2[z2,z3] = head;
+ 1/2[z2',z3'] = head_ex;
+
+ draw_line(z2', z0, false);
+ draw_line(z1', z3, false);
+ draw_arrowhead_left(z3, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead_left(z0, arrow_dir+180, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread + equal_spread)(80, 80, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread# + equal_spread#); "double right right harpoon (" & decimal alpha & ")";
+ z1 - z0 = z1' - z0' = z3 - z2 = z3' - z2' = equal_spread * dir (arrow_dir + 90);
+ 1/2[z0,z1] = foot;
+ 1/2[z0',z1'] = foot_ex;
+ 1/2[z2,z3] = head;
+ 1/2[z2',z3'] = head_ex;
+
+ draw_line(z0', z2, false);
+ draw_line(z3', z1, false);
+ draw_arrowhead_right(z2, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead_right(z1, arrow_dir+180, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread + equal_spread)(70, 70, 100, 100);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "broken arrow (" & decimal alpha & ")";
+ z0 = ifneg( 4/20, 6/20)[foot,head];
+ z1 = ifneg(13/20,11/20)[foot,head];
+
+ draw_line(foot_ex, z0, false);
+ draw_line(z1, head, false);
+ draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[z0, z1], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 6/5, ifneg(3/2, 1) * arrow_spread#); "multi map (" & decimal alpha & ")";
+ draw_line(foot_ex, head - (4/5arrow_spread + 1/4line_thickness) * dir arrow_dir, false);
+ draw_circle(head - 2/5arrow_spread * dir arrow_dir, 2/5arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 4/5arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 6/5, ifneg(3/2, 1) * arrow_spread#); "filled multi map (" & decimal alpha & ")";
+ draw_line(foot_ex, head_ex - 2/5arrow_spread * dir arrow_dir, false);
+ filldraw_circle(head - 2/5arrow_spread * dir arrow_dir, 2/5arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 4/5arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 1, 3/4plus_size# + ifneg(1,0) * arrow_spread#); "pitchfork (" & decimal alpha & ")";
+ draw_line(foot_ex, head_ex, false);
+ draw_subset(a, foot + 3/4plus_size * dir arrow_dir, foot_ex, 3/4plus_size, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 3/8plus_size * dir arrow_dir], alpha, 3/4plus_size + arrow_spread)(80, 80, 100, 100, 80, 80, 100, 100);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, 2arrow_spread#); "parallel arrows (" & decimal alpha & ")";
+ z1 - z0 = z3 - z2 = arrow_spread * dir (arrow_dir + 90);
+ 1/2[z0,z1] = foot_ex;
+ 1/2[z2,z3] = head;
+
+ draw_line(z0, z2, false);
+ draw_line(z1, z3, false);
+ draw_arrowhead(z2, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead(z3, arrow_dir, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginarrow(alpha, 1, 2arrow_spread#); "anti-parallel arrows right left (" & decimal alpha & ")";
+ z1 - z0 = z1' - z0' = z3 - z2 = z3' - z2' = arrow_spread * dir (arrow_dir + 90);
+ 1/2[z0,z1] = foot;
+ 1/2[z0',z1'] = foot_ex;
+ 1/2[z2,z3] = head;
+ 1/2[z2',z3'] = head_ex;
+
+ draw_line(z2', z0, false);
+ draw_line(z1', z3, false);
+ draw_arrowhead(z3, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead(z0, arrow_dir+180, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 2arrow_spread)(80, 80, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginarrow(alpha, 1, 2arrow_spread#); "anti-parallel arrows left right (" & decimal alpha & ")";
+ z1 - z0 = z1' - z0' = z3 - z2 = z3' - z2' = arrow_spread * dir (arrow_dir + 90);
+ 1/2[z0,z1] = foot;
+ 1/2[z0',z1'] = foot_ex;
+ 1/2[z2,z3] = head;
+ 1/2[z2',z3'] = head_ex;
+
+ draw_line(z0', z2, false);
+ draw_line(z3', z1, false);
+ draw_arrowhead(z2, arrow_dir, arrow_spread, line_thickness);
+ draw_arrowhead(z1, arrow_dir+180, arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 2arrow_spread)(70, 70, 100, 100);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "left right wave arrow (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = foot - 1/10arrow_spread * dir (arrow_dir + 90);
+ z1 = 15/80[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90);
+ z2 = 30/80[foot,head];
+ z3 = 45/80[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90);
+ z4 = 60/80[foot,head];
+ z5 = head + 1/10arrow_spread * dir (arrow_dir + 90);
+
+ penpos0(thick, arrow_dir - 45);
+ penpos1(thick, arrow_dir - 90);
+ penpos2(thick, arrow_dir - 135);
+ penpos3(thick, arrow_dir - 90);
+ penpos4(thick, arrow_dir - 45);
+ penpos5(thick, arrow_dir - 75);
+
+ penlabels(0,1,2,3,4,5);
+
+ fill stroke z0.e{dir (arrow_dir + 45)} .. z1.e .. z2.e{dir (arrow_dir - 45)} .. z3.e .. z4.e ... {dir (arrow_dir+15)}z5.e;
+ draw_arrowhead(z5, arrow_dir+15, arrow_spread, thick);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(70, 70, 70, 70, 70, 70, 70, 70);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 1, ifneg(3/2, 1) * arrow_spread#); "right left wave arrow (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = foot + 1/10arrow_spread * dir (arrow_dir + 90);
+ z1 = 15/80[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90);
+ z2 = 30/80[foot,head];
+ z3 = 45/80[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90);
+ z4 = 60/80[foot,head];
+ z5 = head - 1/10arrow_spread * dir (arrow_dir + 90);
+
+ penpos0(thick, arrow_dir - 135);
+ penpos1(thick, arrow_dir - 90);
+ penpos2(thick, arrow_dir - 45);
+ penpos3(thick, arrow_dir - 90);
+ penpos4(thick, arrow_dir - 135);
+ penpos5(thick, arrow_dir - 105);
+
+ penlabels(0,1,2,3,4,5);
+
+ fill stroke z0.e{dir (arrow_dir - 45)} .. z1.e .. z2.e{dir (arrow_dir + 45)} .. z3.e .. z4.e ... {dir (arrow_dir-15)}z5.e;
+ draw_arrowhead(z5, arrow_dir-15, arrow_spread, thick);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - 1/2arrow_spread * dir arrow_dir], alpha, 3/2arrow_spread)(110, 110, 110, 110, 110, 110, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90:
+ beginarrow(alpha, 19/16, ifneg(3/2, 1) * arrow_spread#); "left right bidirectional wave arrow (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = foot - 1/10arrow_spread * dir (arrow_dir + 90);
+ z1 = 4/20[foot,head];
+ z2 = 7/20[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90);
+ z3 = 10/20[foot,head];
+ z4 = 13/20[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90);
+ z5 = 16/20[foot,head];
+ z6 = head + 1/10arrow_spread * dir (arrow_dir + 90);
+
+ penpos0(thick, arrow_dir - 75);
+ penpos1(thick, arrow_dir - 45);
+ penpos2(thick, arrow_dir - 90);
+ penpos3(thick, arrow_dir - 135);
+ penpos4(thick, arrow_dir - 90);
+ penpos5(thick, arrow_dir - 45);
+ penpos6(thick, arrow_dir - 75);
+
+ penlabels(0,1,2,3,4,5,6);
+
+ fill stroke z0.e{dir (arrow_dir + 15)} .. z1.e .. z2.e .. z3.e{dir (arrow_dir - 45)} .. z4.e .. z5.e ... {dir (arrow_dir+15)}z6.e;
+ draw_arrowhead(z0, arrow_dir + 195, arrow_spread, thick);
+ draw_arrowhead(z6, arrow_dir + 15, arrow_spread, thick);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 70, 70);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90:
+ beginarrow(alpha, 19/16, ifneg(3/2, 1) * arrow_spread#); "right left bidirectional wave arrow (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = foot + 1/10arrow_spread * dir (arrow_dir + 90);
+ z1 = 4/20[foot,head];
+ z2 = 7/20[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90);
+ z3 = 10/20[foot,head];
+ z4 = 13/20[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90);
+ z5 = 16/20[foot,head];
+ z6 = head - 1/10arrow_spread * dir (arrow_dir + 90);
+
+ penpos0(thick, arrow_dir - 105);
+ penpos1(thick, arrow_dir - 135);
+ penpos2(thick, arrow_dir - 90);
+ penpos3(thick, arrow_dir - 45);
+ penpos4(thick, arrow_dir - 90);
+ penpos5(thick, arrow_dir - 135);
+ penpos6(thick, arrow_dir - 105);
+
+ penlabels(0,1,2,3,4,5,6);
+
+ fill stroke z0.e{dir (arrow_dir - 15)} .. z1.e .. z2.e .. z3.e{dir (arrow_dir + 45)} .. z4.e .. z5.e ... {dir (arrow_dir-15)}z6.e;
+ draw_arrowhead(z0, arrow_dir - 195, arrow_spread, thick);
+ draw_arrowhead(z6, arrow_dir - 15, arrow_spread, thick);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(110, 110, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2,1) * arrow_spread#); "right bend arrow (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = foot - 1/4arrow_spread * dir (arrow_dir + 90);
+ z1 = 9/20[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90);
+ z2 = 19/20[foot,head] - 1/2arrow_spread * dir (arrow_dir + 90);
+
+ penpos0(thick, arrow_dir - 35);
+ penpos1(thick, arrow_dir - 90);
+ penpos2(thick, arrow_dir - 150);
+
+ fill stroke z0.e{dir (arrow_dir + 55)} .. z1.e .. {dir (arrow_dir - 60)}z2.e;
+ draw_arrowhead(z2, arrow_dir - 50, arrow_spread, thick);
+
+ if negated:
+ stroke_through_arrow(1/10[z1,z2], alpha, 3/2arrow_spread)(80, 80, 80, 80, 80, 80, 80, 80);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 1, ifneg(3/2,1) * arrow_spread#); "left bend arrow (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = foot + 1/4arrow_spread * dir (arrow_dir + 90);
+ z1 = 9/20[foot,head] - 1/4arrow_spread * dir (arrow_dir + 90);
+ z2 = 19/20[foot,head] + 1/2arrow_spread * dir (arrow_dir + 90);
+
+ penpos0(thick, arrow_dir + 35);
+ penpos1(thick, arrow_dir + 90);
+ penpos2(thick, arrow_dir + 150);
+
+ fill stroke z0.e{dir (arrow_dir - 55)} .. z1.e .. {dir (arrow_dir + 60)}z2.e;
+ draw_arrowhead(z2, arrow_dir + 50, arrow_spread, thick);
+
+ if negated:
+ stroke_through_arrow(1/10[z1,z2], alpha, 3/2arrow_spread)(110, 110, 110, 110, 110, 110, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270, 45, 135, 225, 315:
+ beginarrow(alpha, 6/5, ifneg(3/2,1) * arrow_spread#); "bend arrow (" & decimal alpha & ")";
+ thick := line_thickness;
+
+ z0 = 1/20[foot,head] - 1/2arrow_spread * dir (arrow_dir + 90);
+ z1 = 1/2[foot,head] + 1/4arrow_spread * dir (arrow_dir + 90);
+ z2 = 19/20[foot,head] - 1/2arrow_spread * dir (arrow_dir + 90);
+
+ penpos0(thick, arrow_dir - 30);
+ penpos1(thick, arrow_dir - 90);
+ penpos2(thick, arrow_dir - 150);
+
+ fill stroke z0.e{dir (arrow_dir + 60)} .. z1.e .. {dir (arrow_dir - 60)}z2.e;
+ draw_arrowhead(z0, arrow_dir + 230, arrow_spread, thick);
+ draw_arrowhead(z2, arrow_dir - 50, arrow_spread, thick);
+
+ if negated:
+ stroke_through_arrow(z1, alpha, 3/2arrow_spread)(80, 80, 100, 100, 80, 80, 100, 100);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 180:
+ beginarrow(alpha, 1, ifneg(3/2,1) * arrow_spread#); "headless arrow with foot (" & decimal alpha & ")";
+ draw_line(foot_ex, head_ex, false);
+ draw_line(foot - 1/2arrow_spread * dir (alpha + 90), foot + 1/2arrow_spread * dir (alpha + 90), true);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 3/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ for alpha = 0, 90, 180, 270:
+ beginoperator(large_op_size#, 1);
+ if sign > 0: "right" else: "left" fi & " circle arrow (" & decimal alpha & ")";
+
+ thick := line_thickness;
+ r := (w - 2side_bearing)/2 - arrow_spread/3;
+
+ for i = 0 upto 7:
+ z[i] = centre + r * dir (alpha + i/8 * 360);
+ penpos[i](thick, alpha + i/8 * 360);
+ endfor;
+
+ z0' = centre + r * dir (alpha + 10);
+ penpos0'(thick, alpha + 10);
+ z0'' = centre + r * dir (alpha - 10);
+ penpos0''(thick, alpha - 10);
+
+ penlabels(0',0'',1,2,3,4,5,6,7);
+
+ fill stroke z0'.e{dir (alpha + 100)} .. z1.e .. z2.e .. z3.e .. z4.e .. z5.e .. z6.e .. z7.e .. {dir (alpha + 80)}z0''.e;
+
+ if sign > 0:
+ draw_arrowhead(z0'', (alpha + 65), arrow_spread, thick);
+ else:
+ draw_arrowhead(z0', (alpha - 65), arrow_spread, thick);
+ fi;
+
+ if negated:
+ 1/2[z8,z9] = centre;
+ y8 - y9 = large_op_size;
+ z8 - z9 = whatever * dir 80;
+
+ draw_straight(z8, z9, stroke_through_thickness, false);
+ fi
+ endchar;
+ endfor;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 6/5, ifneg(21/10, 14/10) * arrow_spread#); "triple arrow (" & decimal alpha & ")";
+ z1 - z0 = z2 - z1 = 2/3equal_spread * dir (arrow_dir + 90);
+ z1 = foot_ex;
+ z4 - z3 = z5 - z4 = 2/3equal_spread * dir (arrow_dir + 90);
+ z4 = head_ex;
+
+ draw_straight(z0, arrowhead_intersection(head, arrow_dir, 14/10arrow_spread, z0 -- z3), 4/5line_thickness, false);
+ draw_straight(z1, arrowhead_intersection(head, arrow_dir, 14/10arrow_spread, z1 -- z4), 4/5line_thickness, false);
+ draw_straight(z2, arrowhead_intersection(head, arrow_dir, 14/10arrow_spread, z2 -- z5), 4/5line_thickness, false);
+ draw_arrowhead(head, arrow_dir, 14/10arrow_spread, line_thickness);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head - arrow_spread * dir arrow_dir], alpha, 21/10arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+
+if not negated:
+ for sign = 1, -1:
+ beginsymbol(4/3arrow_spread# + line_thickness# + 2side_bearing#, vcentre(2arrow_spread# + line_thickness#)); "left shift";
+ y0 = y1 = h - 1/2arrow_spread - 1/2line_thickness;
+ y2 = -d + 1/2line_thickness;
+ 1/2[x0,x1] = w/2;
+ x1 - x0 = sign * 4/3arrow_spread;
+ x2 = x1;
+
+ draw_line(z2, z1, true);
+ draw_line(z1, z0, false);
+ draw_arrowhead(z0, 90 + sign * 90, arrow_spread, line_thickness);
+ endchar;
+ endfor;
+
+ for sign = 1, -1:
+ beginsymbol(4/3arrow_spread# + line_thickness# + 2side_bearing#, vcentre(2arrow_spread# + line_thickness#)); "left down shift";
+ y0 = y1 = -d + 1/2arrow_spread + 1/2line_thickness;
+ y2 = h - 1/2line_thickness;
+ 1/2[x0,x1] = w/2;
+ x1 - x0 = sign * 4/3arrow_spread;
+ x2 = x1;
+
+ draw_line(z2, z1, true);
+ draw_line(z1, z0, false);
+ draw_arrowhead(z0, 90 + sign * 90, arrow_spread, line_thickness);
+ endchar;
+ endfor;
+
+ for sign = -1, 1:
+ beginoperator(arrow_len#, 1); "loop arrow";
+ thick := line_thickness;
+
+ z0 = centre + sign * (arrow_len - line_thickness)/2 * left;
+ z1 = centre + arrow_len/2 * down;
+ z2 = centre + (arrow_len - line_thickness)/4 * up;
+ z3 = centre + sign * (arrow_len - line_thickness)/4 * right;
+ z4 = centre + (arrow_len - line_thickness) * (1/4sign, 1/2);
+ z5 = centre + (arrow_len - line_thickness) * (1/2sign, 1/4);
+
+ penpos0(thick, - sign * 90);
+ penpos1(thick, 180);
+ penpos2(thick, 180);
+ penpos3(thick, - sign * 90);
+ penpos4(thick, sign * 90);
+ penpos5(thick, 0);
+
+ fill stroke z0e -- z3e{sign * right} .. {up}z5e .. {sign * left}z4e .. {down}z2e -- z1e;
+ draw_arrowhead(z0, 90 + sign * 90, arrow_spread, thick);
+
+ penlabels(0,1,2,3,4,5);
+ endchar;
+ endfor;
+fi
+
+current_char := 223;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 2/3, ifneg(2, 3/2) * arrow_spread#); "derives (" & decimal alpha & ")";
+ draw_line(foot, head_ex, false);
+ draw_line(foot - 3/4arrow_spread * dir (arrow_dir + 90), foot + 3/4arrow_spread * dir (arrow_dir + 90), true);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 2/3, ifneg(9/4, 7/4) * arrow_spread#); "models (" & decimal alpha & ")";
+ z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90);
+ 0.5[z0,z1] = foot;
+ 0.5[z2,z3] = head_ex;
+
+ draw_line(z0, z2, false);
+ draw_line(z1, z3, false);
+ draw_line(foot - 7/8arrow_spread * dir (arrow_dir + 90), foot + 7/8arrow_spread * dir (arrow_dir + 90), true);
+
+ if negated:
+ stroke_through_arrow(1/2[foot, head], alpha, 9/4arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 1, ifneg(9/4, 7/4) * arrow_spread#); "forces (" & decimal alpha & ")";
+ z0 = foot + equal_spread * dir arrow_dir;
+
+ draw_line(z0, head_ex, false);
+ draw_line(foot - 7/8arrow_spread * dir (arrow_dir + 90), foot + 7/8arrow_spread * dir (arrow_dir + 90), true);
+ draw_line(z0 - 7/8arrow_spread * dir (arrow_dir + 90), z0 + 7/8arrow_spread * dir (arrow_dir + 90), true);
+
+ if negated:
+ stroke_through_arrow(1/2[z0, head], alpha, 9/4arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginarrow(alpha, 1, ifneg(5/2, 2) * arrow_spread#); "double models (" & decimal alpha & ")";
+ z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90);
+ z4 = foot + equal_spread * dir arrow_dir;
+ 1/2[z0,z1] = z4;
+ 1/2[z2,z3] = head_ex;
+
+ draw_line(z0, z2, false);
+ draw_line(z1, z3, false);
+ draw_line(foot - arrow_spread * dir (arrow_dir + 90), foot + arrow_spread * dir (arrow_dir + 90), true);
+ draw_line(z4 - arrow_spread * dir (arrow_dir + 90), z4 + arrow_spread * dir (arrow_dir + 90), true);
+
+ if negated:
+ stroke_through_arrow(1/2[z4, head], alpha, 5/2arrow_spread)(70, 70, 110, 110, 70, 70, 110, 110);
+ fi
+ endchar;
+endfor;
+
+if not negated:
+ beginarrow(0, 1, 7/4arrow_spread#); "Vvdash";
+ s := 7/8arrow_spread;
+ z0 = foot + 4/5equal_spread * dir arrow_dir;
+ z1 = foot + 8/5equal_spread * dir arrow_dir;
+
+ draw_line(z1, head_ex, false);
+ draw_line(foot - s * dir (arrow_dir + 90), foot + s * dir (arrow_dir + 90), true);
+ draw_line(z0 - s * dir (arrow_dir + 90), z0 + s * dir (arrow_dir + 90), true);
+ draw_line(z1 - s * dir (arrow_dir + 90), z1 + s * dir (arrow_dir + 90), true);
+ endchar;
+fi
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdbase.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdbase.mf
new file mode 100644
index 00000000000..e80c16f192a
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdbase.mf
@@ -0,0 +1,884 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+u# := 0.6pt#;
+asc_height# := 7.54pt#; % 8.56pt#;
+cap_height# := 7.07pt#; %7.37pt#;
+desc_depth# := 2.2pt#; % 2.94pt#;
+x_height# := 5.46pt#;
+math_axis# := 2.75pt#;
+if weight_index = 0: % Book
+ line_thickness# := 0.64pt#;
+ rule_thickness# := 0.56pt#;
+ dot_size# := 0.84pt#;
+elseif weight_index = 1: % Regular
+ line_thickness# := 0.74pt#;
+ rule_thickness# := 0.58pt#;
+ dot_size# := 0.9pt#;
+elseif weight_index = 2: % Medium
+ line_thickness# := 0.86pt#;
+ rule_thickness# := 0.6pt#;
+ dot_size# := 0.97pt#;
+else: % Bold
+ line_thickness# := 1.0pt#;
+ rule_thickness# := 0.64pt#;
+ dot_size# := 1.05pt#;
+fi;
+
+side_bearing# := 1.5u#;
+small_op_size# := 8u#; % radius of small operators
+med_op_size# := 12.5u#; % radius of medium operators
+plus_size# := 9u#;
+large_op_size# := 18u#; % radius of large operators
+order_width# := 8u#; % width of equal sign
+equal_spread# := .7math_axis#; % distance between the lines of the equal sign
+greater_spread# := 10/4equal_spread#; % distance between the ends of the greater sign
+arrow_horiz_len# := 12u#; % length of horizontal arrows
+arrow_vert_len# := 3math_axis#; % length of vertical arrows
+arrow_diag_len# := 0.5(arrow_horiz_len# + arrow_vert_len#);
+arrow_spread# := 1.6equal_spread#;
+delim_height# := 4.9pt#; % half the height of normal delimiters
+bigop_height# := 10.7pt#; % height of big operators
+
+mode_setup;
+
+% mf2pt1 support
+
+if known ps_output:
+% pencircle := mfplain_pencircle;
+% pensquare := mfplain_pencircle;
+% penrazor := mfplain_pencircle;
+ pensquare := pencircle;
+ penrazor := pencircle;
+ let filldraw := mfplain_filldraw;
+ let unfilldraw := mfplain_unfilldraw;
+fi
+
+define_pixels(u, asc_height, cap_height, desc_depth, delim_height, bigop_height, x_height);
+define_whole_pixels(dot_size, small_op_size, med_op_size, large_op_size, plus_size,
+ order_width, equal_spread, greater_spread,
+ arrow_horiz_len, arrow_vert_len, arrow_diag_len, arrow_spread);
+
+if known ps_output:
+ define_pixels(math_axis, line_thickness, rule_thickness, side_bearing);
+else:
+ math_axis := good.y(math_axis# * hppp);
+ line_thickness := ceiling(line_thickness# * hppp);
+ rule_thickness := ceiling(rule_thickness# * hppp);
+ side_bearing := ceiling(side_bearing# * hppp);
+fi
+
+stroke_through_thickness := 9/10line_thickness;
+
+% Macros
+
+def select(expr n)(text values) =
+ begingroup;
+ i := 0;
+ for v = values:
+ result := v;
+ exitif i = n;
+ i := i + 1;
+ endfor;
+ result
+ endgroup
+enddef;
+
+def vcentre(expr size) =
+ size/2 + math_axis#, size/2 - math_axis#
+enddef;
+
+def ocentre(expr size) =
+ size/2 + math_axis# + 1/2equal_spread#, size/2 - math_axis# - 1/2equal_spread#
+enddef;
+
+current_char := -1;
+
+def beginsymbol(expr width, height, depth) =
+ current_char := current_char + 1;
+ beginchar(current_char, width, height, depth);
+ if not known ps_output:
+ proofrule((side_bearing, h),(side_bearing, -d));
+ proofrule((w - side_bearing, h),(w - side_bearing, -d));
+ fi
+enddef;
+
+def beginoperator(expr size, ratio) =
+ beginsymbol(size + 2side_bearing#, vcentre(ratio * size));
+ pair centre;
+ centre := (w/2, (h-d)/2);
+ radius := w/2 - side_bearing - 1/2line_thickness;
+enddef;
+
+def beginbigop(expr xscale, yscale) =
+ beginsymbol(xscale * 3/2order_width# + 2side_bearing#, ocentre(yscale * bigop_height#));
+ pair centre;
+ centre := (w/2, (h-d)/2);
+ op_width := xscale * 3/2order_width;
+ op_height := yscale * bigop_height;
+enddef;
+
+def beginsquarebigop(expr xscale, yscale) =
+ beginsymbol(xscale * bigop_height# + 2side_bearing#, ocentre(yscale * bigop_height#));
+ pair centre;
+ centre := (w/2, (h-d)/2);
+ op_width := xscale * bigop_height;
+ op_height := yscale * bigop_height;
+enddef;
+
+def beginarrow(expr angle, scale, spread) =
+ arrow_len# := scale *
+ if angle mod 180 = 0: arrow_horiz_len#
+ elseif angle mod 180 = 90: arrow_vert_len#
+ else: arrow_diag_len#
+ fi;
+ arrow_len := scale *
+ if angle mod 180 = 0: arrow_horiz_len
+ elseif angle mod 180 = 90: arrow_vert_len
+ else: arrow_diag_len
+ fi;
+
+ beginsymbol(arrow_len# * abs (cosd (angle)) + (spread + line_thickness#) * abs (sind (angle)) + 2side_bearing#,
+ vcentre(arrow_len# * abs (sind (angle)) + (spread + line_thickness#) * abs (cosd (angle))));
+ pair centre, head, head_ex, foot, foot_ex;
+
+ centre := (w/2, (h-d)/2);
+ head := centre + (arrow_len - line_thickness)/2 * dir angle;
+ head_ex := centre + arrow_len/2 * dir angle;
+ foot := centre - (arrow_len - line_thickness)/2 * dir angle;
+ foot_ex := centre - arrow_len/2 * dir angle;
+ arrow_dir := angle;
+enddef;
+
+def beginorder(expr sign, width, spread) =
+ beginsymbol(width + 2side_bearing#, vcentre(spread + line_thickness#));
+ pair centre, left_ex, right_ex, left_point, right_point;
+ centre := (w/2, (h-d)/2);
+ left_ex := centre - sign * (w/2 - side_bearing) * right;
+ left_point := centre - sign * (w/2 - side_bearing - line_thickness/2) * right;
+ right_ex := centre + sign * (w/2 - side_bearing) * right;
+ right_point := centre + sign * (w/2 - side_bearing - line_thickness/2) * right;
+enddef;
+
+vardef stroke text t =
+ forsuffixes e = l, r:
+ path_.e := t;
+ endfor
+ path_.l -- reverse path_.r -- cycle
+enddef;
+
+% Shapes
+
+def circle(expr centre, radius) =
+ (centre + radius * right){up} ...
+ (centre + radius * dir 45){dir 135} ...
+ (centre + radius * up){left} ...
+ (centre + radius * dir 135){dir 225} ...
+ (centre + radius * left){down} ...
+ (centre + radius * dir 225){dir 315} ...
+ (centre + radius * down){right} ...
+ (centre + radius * dir 315){dir 45} ...
+ cycle
+enddef;
+
+def square(expr centre, radius, angle) =
+ (centre + sqrt(2) * radius * dir (angle + 45)) --
+ (centre + sqrt(2) * radius * dir (angle + 135)) --
+ (centre + sqrt(2) * radius * dir (angle + 225)) --
+ (centre + sqrt(2) * radius * dir (angle + 315)) --
+ cycle
+enddef;
+
+def triangle(expr centre, radius, angle) =
+ (centre + radius * dir angle) --
+ (centre + radius * dir (angle + 120)) --
+ (centre + radius * dir (angle + 240)) --
+ cycle
+enddef;
+
+def reg_poly_points(suffix $)(expr n, centre, radius, angle) =
+ for i = 0 upto n-1:
+ z$[i] = centre + radius * dir (angle + i/n * 360);
+ endfor;
+enddef;
+
+def dot(expr centre, radius) =
+ superellipse(centre + radius * right, centre + radius * up,
+ centre - radius * right, centre - radius * up, 0.57)
+enddef;
+
+% Draw macros
+
+def draw_straight(expr orig, dest, thick, extend) =
+ pair p[].l, p[].r;
+
+ theta := angle (dest - orig);
+ if extend:
+ 1/2[p1.l,p1.r] = orig - 1/2thick * dir theta;
+ 1/2[p2.l,p2.r] = dest + 1/2thick * dir theta;
+ else:
+ 1/2[p1.l,p1.r] = orig;
+ 1/2[p2.l,p2.r] = dest;
+ fi
+ p1.l - p1.r = p2.l - p2.r = thick * dir (theta + 90);
+ fill p1.l -- p2.l -- p2.r -- p1.r -- cycle;
+enddef;
+
+def draw_line(expr orig, dest, extend) =
+ draw_straight(orig, dest, line_thickness, extend);
+enddef;
+
+def draw_circle(expr centre, radius, thick) =
+ fill circle(centre, radius + 1/2thick);
+ unfill circle(centre, radius - 1/2thick);
+enddef;
+
+def filldraw_circle(expr centre, radius, thick) =
+ fill circle(centre, radius + 1/2thick);
+enddef;
+
+def draw_square(expr centre, radius, angle, thick) =
+ fill square(centre, radius + 1/2thick, angle);
+ unfill square(centre, radius - 1/2thick, angle);
+enddef;
+
+def filldraw_square(expr centre, radius, angle, thick) =
+ fill square(centre, radius + 1/2thick, angle);
+enddef;
+
+def draw_triangle(suffix $)(expr centre, radius, angle, thick) =
+ fill triangle(centre, radius + thick, angle);
+ unfill triangle(centre, radius - thick, angle);
+enddef;
+
+def filldraw_triangle(suffix $)(expr centre, radius, angle, thick) =
+ fill triangle(centre, radius + thick, angle);
+enddef;
+
+def draw_sim(suffix $)(expr lc, rc, spread, thick) =
+ theta := angle (length(rc - lc), 10spread);
+ signum := cosd (angle (rc - lc)) + sind (angle (lc - rc));
+
+ z0$.l = lc;
+ z4$.r = rc;
+ z2$ = 1/2[lc, rc];
+ z4$.r = rc;
+ 1/2[z1$,z3$] = z2$;
+ z1$ = 1/4[lc, rc] + 1/6thick * dir (angle (rc - lc)) +
+ signum * spread * dir (angle (rc - lc) + 90);
+
+ penpos0$(5/6thick, angle(rc - lc) - signum * (90 - theta));
+ penpos1$(thick, angle(rc - lc) - signum * 90);
+ penpos2$(thick, angle(rc - lc) - signum * (theta + 90 - 5));
+ penpos3$(thick, angle(rc - lc) - signum * 90);
+ penpos4$(5/6thick, angle(rc - lc) - signum * (90 - theta));
+
+ fill stroke z0$.e{dir (angle(rc - lc) + signum * theta)} .. {dir angle(rc - lc)}z1$.e .. {dir (angle(rc - lc) - signum * (theta - 5))}z2$.e .. {dir angle(rc - lc)}z3$.e .. {dir (angle(rc - lc) + signum * theta)}z4$.e;
+
+ penlabels(0$,1$,3$,4$);
+enddef;
+
+def draw_bump(suffix $)(expr sign, lc, rc, rad, thick) =
+ z0$ = lc;
+ z1$ = rc;
+ z2$ = 1/2[lc, rc] + sign * rad * dir (angle (rc - lc) + 90);
+ z3$ = 1/2[lc, rc] - rad * dir (angle (rc - lc));
+ 1/2[z3$,z4$] = 1/2[lc, rc];
+
+ penpos0$(thick, angle (rc - lc) + sign * 90);
+ penpos1$(thick, angle (rc - lc) + sign * 90);
+ penpos2$(thick, angle (rc - lc) + sign * 90);
+ penpos3$(thick, angle (rc - lc) + sign * 90);
+ penpos4$(thick, angle (rc - lc) + sign * 90);
+
+ z3$' = z3$;
+ z5$ = z3$.l;
+ z4$' = z4$;
+ z6$ = z4$.l;
+
+ penpos3$'(thick, angle (rc - lc) + 180);
+ penpos5$(thick, angle (rc - lc) + 180);
+ penpos4$'(thick, angle (rc - lc));
+ penpos6$(thick, angle (rc - lc));
+
+ fill stroke z0$.e -- z3$.e;
+ fill stroke z5$.e -- z3$'.e{dir (angle (rc - lc) + sign * 90)} ..
+ z2$.e{rc - lc} .. z4$'.e{dir (angle (rc - lc) - sign * 90)} -- z6$.e;
+ fill stroke z1$.e -- z4$.e;
+
+ penlabels(0$,1$,2$,3$,4$,5$,6$);
+enddef;
+
+def draw_less(suffix $)(expr lc, rc, spread, thick, closed) =
+ theta := angle((length(rc - lc) - thick/2) * right + spread/2 * up);
+
+ z2$ = lc + 1/2thick * dir (angle (rc - lc));
+ 1/2[z0$.r,z1$.r] = rc;
+ z0$ = z2$ + whatever * dir (angle (rc - lc) + theta);
+ z1$ = z2$ + whatever * dir (angle (rc - lc) - theta);
+
+ penpos0$(thick, angle(rc - lc) - 90 + theta);
+ penpos1$(thick, angle(rc - lc) + 90 - theta);
+ penpos3$(thick, angle(rc - lc) - 90 + theta);
+ penpos4$(thick, angle(rc - lc) + 90 - theta);
+
+ z3$.l = z0$.l + whatever * (z2$ - z0$);
+ z4$.l = z1$.l + whatever * (z2$ - z1$);
+ 1/2[z3$.l,z4$.l] = lc;
+ z5$ = z0$.r + whatever * (z2$ - z0$);
+ z5$ = z1$.r + whatever * (z2$ - z1$);
+
+ fill z0$.l -- z3$.l -- z4$.l -- z1$.l -- z1$.r -- z5$ -- z0$.r -- cycle;
+
+ if closed:
+ penpos6$(thick, angle(rc - lc));
+ penpos7$(thick, angle(rc - lc));
+ z6$.l = whatever[z0$.l,z3$.l];
+ z6$.r = whatever[z0$.r,z1$.r];
+ z7$.l = whatever[z1$.l,z4$.l];
+ z7$.r = whatever[z0$.r,z1$.r];
+ fill z0$.l -- z6$.l -- z7$.l -- z1$.l -- z7$.r -- z6$.r -- cycle;
+ fi;
+
+ penlabels(0$,1$,3$,4$,5$,6$,7$);
+enddef;
+
+def draw_prec(suffix $)(expr lc, rc, spread, thick, closed) =
+ theta := 43;
+
+ z0$ - z1$ = spread * dir (angle (rc - lc) + 90);
+ 1/2[z0$.r,z1$.l] = rc;
+ z2$ = lc;
+ z2$' = lc + 1/2thick * dir angle(rc - lc);
+
+ penpos0$(thick, angle(rc - lc) - theta);
+ penpos1$(thick, angle(rc - lc) + 180 + theta);
+ penpos2$(thick, angle(rc - lc) - 90);
+ penpos2$'(thick, angle(rc - lc) - 90);
+
+ fill stroke z2$.e -- z2$'.e{dir angle(rc - lc)} .. {dir (angle (rc - lc) + 90 - theta)}z0$.e;
+ fill stroke z2$.e -- z2$'.e{dir angle(rc - lc)} .. {dir (angle (rc - lc) - 90 + theta)}z1$.e;
+
+ if closed:
+ z3$ = point 1/2 of (z0${dir (angle (rc - lc) - 90 - theta + 10)}
+ .. {dir (angle (rc - lc) - 90 + theta - 10)}z1$);
+ penpos3$(thick, angle(rc - lc));
+
+ fill z0$.l .. z3$.l .. z1$.r -- z1$.l .. z3$.r .. z0$.r -- cycle;
+ fi;
+
+ penlabels(0$,1$,2$,3$);
+enddef;
+
+def draw_subset(suffix $)(expr lc, rc, spread, thick) =
+ 1/2[z0$,z1$] = rc;
+ 1/2[z2$,z3$] = (4spread / 9abs(rc - lc))[z4$, rc];
+ z0$ - z1$ = z2$ - z3$ = spread * dir (angle (rc - lc) + 90);
+ z4$ = lc + 1/2thick * dir (angle (rc - lc));
+
+ penpos0$(thick, angle(rc - lc) - 90);
+ penpos1$(thick, angle(rc - lc) + 90);
+ penpos2$(thick, angle(rc - lc) - 90);
+ penpos3$(thick, angle(rc - lc) + 90);
+ penpos4$(thick, angle(rc - lc));
+
+ fill stroke z0$.e -- z2$.e{lc - rc} .. z4$.e .. {rc - lc}z3$.e -- z1$.e;
+
+ penlabels(0$,1$,2$,3$,4$)
+enddef;
+
+def draw_smile(suffix $)(expr sign, lc, rc, spread, thick, round) =
+ z0$ = lc + sign * 1/2spread * dir (angle(rc - lc) + 90) +
+ whatever * (rc - lc);
+ z0$.l = lc + whatever * dir (angle(rc - lc) + 90);
+ z1$ = rc + sign * 1/2spread * dir (angle(rc - lc) + 90) +
+ whatever * (rc - lc);
+ z1$.l = rc + whatever * dir (angle(rc - lc) + 90);
+ z2$ = 1/2[lc,rc] - sign * 1/2spread * dir (angle(rc - lc) + 90);
+
+ if round:
+ theta := angle (length(lc - rc), 5spread);
+ else:
+ theta := angle (length(lc - rc), 2spread);
+ fi;
+
+ penpos0$(thick, angle(rc - lc) + sign * (90 - theta));
+ penpos1$(thick, angle(rc - lc) + sign * (90 + theta));
+
+ if round:
+ penpos2$(thick, angle(rc - lc) + sign * 90);
+
+ fill stroke z0$.e{dir (angle(rc - lc) - sign * theta)} ..
+ {rc - lc}z2$.e{rc - lc} .. {dir (angle(rc - lc) + sign * theta)}z1$.e;
+ else:
+ penpos2$(thick / cosd theta, angle(rc - lc) + sign * 90);
+
+ fill stroke z0$.e -- z2$.e -- z1$.e;
+ fi;
+
+ penlabels(0$, 1$, 2$);
+enddef;
+
+def stroke_through(expr pos, spread) =
+ begingroup;
+ stroke_len := 1/2spread / cosd 15;
+
+ draw_straight(pos + stroke_len * dir 75, pos - stroke_len * dir 75, stroke_through_thickness, true);
+ endgroup;
+enddef;
+
+def stroke_through_arrow(expr pos, alpha, spread)(text angles) =
+ begingroup;
+ stroke_dir := arrow_dir + select(alpha/45)(angles);
+ stroke_len := 1/2spread / sind (stroke_dir - arrow_dir);
+
+ draw_straight(pos + stroke_len * dir stroke_dir, pos - stroke_len * dir stroke_dir, stroke_through_thickness, true);
+ endgroup;
+enddef;
+
+def draw_product(expr centre, width, height, sign, thick) =
+ thin := 1/2thick;
+
+ z1r - z0r = z3r - z2r = width * right;
+ z2r - z0r = sign * (height - thin) * up;
+ 1/2[1/2[z0l,z1l], 1/2[z2r,z3r]] = centre;
+ z4 = 1/3[z0,z1];
+ z5 = 2/3[z0,z1];
+ z6 = 1/2[z0,z4] + sign * max(1/9width, thin) * up;
+ z7 = 1/2[z1,z5] + sign * max(1/9width, thin) * up;
+ z8 = 1/2[z0,z4] + sign * min(height - thin - 1/9width, height - 2thin) * up;
+ z9 = 1/2[z1,z5] + sign * min(height - thin - 1/9width, height - 2thin) * up;
+
+ penpos0(thin, sign * 100);
+ penpos1(thin, sign * 80);
+ penpos2(thin, sign * 93);
+ penpos3(thin, sign * 87);
+ penpos4(thin, sign * 80);
+ penpos5(thin, sign * 100);
+ penpos6(thick, 0);
+ penpos7(thick, 0);
+ penpos8(thick, 0);
+ penpos9(thick, 0);
+
+ y10 = y11 = y2r - sign * 1/2[thin,thick];
+ x10 = x6r;
+ x11 = x7l;
+
+ fill z0l -- z0r{dir (sign * 20)} .. {sign * up}z6l -- z8l{sign * up} .. {dir (180 - sign * 15)}z2l -- z2r -- z3r -- z3l{dir (180 + sign * 15)} .. {sign * down}z9r -- z7r{sign * down} .. {dir (-sign * 20)}z1r -- z1l -- z5l -- z5r{dir (sign * 20)} .. {sign * up}z7l -- z11 -- z10 -- z6r{sign * down} .. {dir (-sign * 20)}z4r -- z4l -- cycle;
+
+ penlabels(0,1,2,3,4,5,6,7,8,9,10,11);
+enddef;
+
+def draw_sum(suffix $)(expr centre, width, height, thick) =
+ thin := 1/2thick;
+
+ z1$ - z0$ = z3$ - z2$ = width * right;
+ z2$ - z0$ = height * up;
+ 1/2[1/2[z0$,z1$], 1/2[z2$,z3$]] = centre;
+ z4$ - z1$ = z3$ - z5$.l = 1/5height * up;
+ z6$ = whatever[z0$,z1$] + thick/2 * up = z4$ - whatever * dir 77;
+ z8$r = z2$ + whatever * right;
+ z8$l = z2$ + whatever * down;
+
+ penpos 6$(thick, 90);
+ penpos 4$(thin, 167);
+ penpos 5$(thin, 180);
+ penpos 8$(5/6thick, 77);
+
+ z13$ = centre;
+ penpos 13$(6/5thick, 10);
+
+ z3$ - z7$ = 2/3thick * up;
+ z9$ = z13$r + whatever * (z8$l - z13$l) = z7$ + whatever * right;
+
+ z10$r = z0$ + whatever * up;
+ z10$l = z0$ + whatever * right;
+ penpos 10$(3/4thick, 103);
+
+ z11$ = z13$r + whatever * (z10$r - z13$l);
+ y11$ = y10$r;
+
+ fill z10$l -- z6$l -- z4$l -- z4$r{-dir 77} .. {left}1/4[z6$r,z10$r] -- z11$ -- z13$r -- z9$ -- 1/4[z7$,z8$l]{right} .. {-dir 113}z5$r -- z5$l -- z3$ -- z8$r -- z8$l -- z13$l -- z10$r -- cycle;
+
+ penlabels(0$,1$,2$,3$,4$,5$,6$,7$,8$,9$,10$,11$,12$,13$);
+enddef;
+
+def draw_integral(suffix $)(expr scale, centre, thick) =
+ penpos0$(thick, 0);
+ penpos1$(thick, 0);
+ penpos2$(2/3thick, -90);
+ penpos3$(thick, 0);
+ penpos4$(2/3thick, -90);
+
+ z0$ = 1/2[z1$,z3$] = 1/2[z2$,z4$];
+ z1$ - z3$ = whatever * up;
+ z2$ - z4$ = whatever * dir 75;
+
+ x0$ = xpart centre;
+ y2$l = h;
+ y6$r = -d;
+ y1$ = 2/3[y0$,y2$];
+
+ penpos5$(3/4thick,-105);
+ penpos6$(3/4thick,-82);
+
+ y5$l = y2$l;
+ x5$r = 5/4[x1$, x2$];
+ y6$l = y4$.l;
+ x6$r = 5/4[x3$, x4$];
+
+ ucorr := max (x2$r, x1$r + 1/4thick) - x2$r;
+ x2$ := x2$ + ucorr;
+ x2$l := x2$l + ucorr;
+ x2$r := x2$r + ucorr;
+ x5$ := x5$ + ucorr;
+ x5$r := x5$r + ucorr;
+ x5$l := x5$l + ucorr;
+
+ lcorr := min (x4$l, x1$l - 1/4thick) - x4$l;
+ x4$ := x4$ + lcorr;
+ x4$l := x4$l + lcorr;
+ x4$r := x4$r + lcorr;
+ x6$ := x6$ + lcorr;
+ x6$r := x6$r + lcorr;
+ x6$l := x6$l + lcorr;
+
+ fill z5$l .. z2$l{left} .. {down}z1$l -- z3$l{down} .. z4$l{left} .. z6$l -- z6$r
+ .. {up}z3$r -- z1$r{up} .. z2$r{right} .. z5$r -- cycle;
+
+ penlabels(0$,1$,2$,3$,4$,5$,6$);
+enddef;
+
+def draw_arrowhead_left(expr pos, angle, spread, thick) =
+ pair p[], p[].l, p[].r;
+
+ p1 = pos;
+ p2 = pos + sqrt(2) * (spread + 1/2thick)/2 * dir (angle + 135);
+ 1/2[p1.l, p1.r] = p1;
+ 1/2[p2.l, p2.r] = p2;
+ p1.r - p1 = thick/(2 * sind 45) * dir angle;
+ p2.r - p2 = thick/2 * dir (angle + 45);
+ p3.l = whatever[p2.l,p1.l];
+ p3.l = pos + 1/2thick * dir (angle - 90) + whatever * dir angle;
+ p3.r - p1.r = whatever * dir (angle - 105);
+ p3.r = pos + 1/2thick * dir (angle - 90) + whatever * dir angle;
+ fill p1.r -- p2.r -- p2.l -- p3.l -- p3.r -- cycle;
+enddef;
+
+def draw_arrowhead_right(expr pos, angle, spread, thick) =
+ pair p[], p[].l, p[].r;
+
+ p1 = pos;
+ p2 = pos + sqrt(2) * (spread + 1/2thick)/2 * dir (angle - 135);
+ 1/2[p1.l, p1.r] = p1;
+ 1/2[p2.l, p2.r] = p2;
+ p1.r - p1 = thick/(2 * sind 45) * dir angle;
+ p2.r - p2 = thick/2 * dir (angle - 45);
+ p3.l = whatever[p2.l,p1.l];
+ p3.l = pos + 1/2thick * dir (angle + 90) + whatever * dir angle;
+ p3.r - p1.r = whatever * dir (angle + 105);
+ p3.r = pos + 1/2thick * dir (angle + 90) + whatever * dir angle;
+ fill p1.r -- p2.r -- p2.l -- p3.l -- p3.r -- cycle;
+enddef;
+
+def draw_arrowhead(expr pos, angle, spread, thick) =
+ pair p[], p[].l, p[].r;
+
+ p1 = pos;
+ p2 = pos + sqrt(2) * spread/2 * dir (angle + 135);
+ p3 = pos + sqrt(2) * spread/2 * dir (angle - 135);
+ 1/2[p1.l, p1.r] = p1;
+ 1/2[p2.l, p2.r] = p2;
+ 1/2[p3.l, p3.r] = p3;
+ p1.r - p1 = thick/(2 * sind 45) * dir angle;
+ p2.r - p2 = thick/2 * dir (angle + 45);
+ p3.r - p3 = thick/2 * dir (angle - 45);
+
+ fill p1.r -- p2.r -- p2.l -- p1.l -- p3.l -- p3.r -- cycle;
+enddef;
+
+% intersect the arrowhead curve with a path
+def arrowhead_intersection(expr pos, angle, spread, p) =
+ (p intersectionpoint
+ ((pos + sqrt(2) * spread/2 * dir (angle + 135)) --
+ pos -- (pos + sqrt(2) * spread/2 * dir (angle - 135)))
+ )
+enddef;
+
+def draw_bracket(expr sign, thick, draw_top, draw_mid, draw_bot, draw_double) =
+ penpos0(thick, 90 - sign * 90);
+ penpos1(thick, 90 - sign * 90);
+ penpos2(thick, 90);
+ penpos3(thick, 90);
+ penpos4(thick, 90);
+ penpos5(thick, 90);
+ penpos6(thick, 0);
+ penpos7(thick, 0);
+
+ x3 - x2 = x5 - x4 = sign * (w - 2side_bearing);
+ 1/2[x2,x3] = w/2;
+
+ if draw_top:
+ y1 = h;
+ else:
+ y1 = h + 1/2line_thickness;
+ fi;
+
+ if draw_bot:
+ y0 = -d;
+ else:
+ y0 = -d - 1/2line_thickness;
+ fi;
+
+ x1 = x0;
+ z6 = 1/2[z2l,z3l] + sign * 1/2thick * right;
+ z7 = 1/2[z4r,z5r] + sign * 1/2thick * right;
+ y2l = y3l;
+ y4r = y5r;
+ z2l = z0l;
+ z4r = z1l;
+
+ if draw_mid:
+ fill stroke z0e -- z1e;
+ else:
+ if draw_bot: fill stroke z0e -- z0e + (w - 2side_bearing) * up; fi;
+ if draw_top: fill stroke z1e -- z1e + (w - 2side_bearing) * down; fi;
+ fi;
+ if draw_top: fill stroke z4e -- z5e; fi;
+ if draw_bot: fill stroke z2e -- z3e; fi;
+ if draw_double: fill stroke z6e -- z7e; fi;
+enddef;
+
+def draw_angle(suffix $)(expr shift, sign, thick) =
+ x0$ = x1$ = x2$ + sign * (w - 2side_bearing -2abs shift - thick);
+
+ top y1$ = h;
+ bot y0$ = -d;
+ 1/2[y0$,y1$] = y2$;
+ 1/2[x0$,x2$] = w/2 + shift;
+
+ theta := angle(z0$ - z2$) + 90;
+
+ penpos0$ (thick, theta);
+ penpos1$ (thick, -theta);
+ penpos2$ (thick * cosd theta, 0);
+
+ fill stroke z0$e -- z2$e -- z1$e;
+
+ penlabels(0$, 1$, 2$);
+enddef;
+
+def draw_paren(expr sign, thick) =
+ penpos0(thick, 90 - sign * 45);
+ penpos1(thick, -90 + sign * 45);
+ penpos2(thick, 90 - sign * 90);
+
+ x0 = x1 = x2 + sign * (w - 2side_bearing - thick);
+ y1.l = h;
+ y0.l = -d;
+ 1/2[y0,y1] = y2;
+ 1/2[x0r,x2l] = w/2;
+
+ fill stroke z0e{3(x2e - x0e), y2e - y0e} .. z2e .. {3(x1e - x2e), y1e - y2e}z1e;
+
+ penlabels(0,1,2);
+enddef;
+
+def draw_brace(expr centre, size, width, alpha, thick, top_size, mid_size, bot_size) =
+ penpos1(5/6thick, alpha + 90);
+ penpos2(thick, alpha);
+ penpos2'(thick,alpha);
+ penpos3(thick, alpha);
+ penpos3'(thick,alpha);
+ penpos4(11/12thick, alpha+90);
+ penpos5(thick, alpha+180);
+ penpos5'(thick, alpha+180);
+ penpos6(thick, alpha+180);
+ penpos6'(thick, alpha+180);
+ penpos7(5/6thick, alpha+90);
+
+ z1r - z7l = size * dir (alpha + 90);
+
+ centre - 1/2[z1,z7] = z4 - centre = width/2 * dir alpha;
+
+ z0 = centre;
+
+ z3 = z0 + (1/3width + 1/2thick) * dir (alpha + 90);
+ z5 = z0 - (1/3width + 1/2thick) * dir (alpha + 90);
+
+ z2 = z0 + (size/2 - 1/3width - thick) * dir (alpha + 90);
+ z6 = z0 - (size/2 - 1/3width - thick) * dir (alpha + 90);
+
+ z3' = z0 + (mid_size/2 + 1/2line_thickness) * dir (alpha + 90);
+ z5' = z0 - (mid_size/2 + 1/2line_thickness) * dir (alpha + 90);
+
+ z2' = z0 + (size/2 - top_size - 1/2line_thickness) * dir (alpha + 90);
+ z6' = z0 - (size/2 - bot_size - 1/2line_thickness) * dir (alpha + 90);
+
+ beta := 0;
+
+ if top_size > 0:
+ fill stroke z1e{dir alpha} .. {dir (alpha - 90)}z2e -- z2'e;
+ penlabels(1,2,2');
+ elseif bot_size > 0:
+ fill stroke z7e{dir alpha} .. {dir (alpha + 90)}z6e -- z6'e;
+ penlabels(6',6,7);
+ elseif mid_size > 0:
+ fill stroke z3'e -- z3e{dir (alpha - 90)} .. {dir alpha}z4e;
+ fill stroke z5'e -- z5e{dir (alpha + 90)} .. {dir alpha}z4e;
+ penlabels(3',3,4,5,5');
+ else:
+ fill stroke z1e{dir alpha} .. z2e{dir (alpha - 90)} -- z3e{dir (alpha - 90)} .. z4e{dir alpha};
+ fill stroke z7e{dir alpha} .. {dir (alpha + 90)}z6e -- z5e{dir (alpha + 90)} .. {dir alpha}z4e;
+ penlabels(1,2,3,4,5,6,7);
+ fi;
+enddef;
+
+def draw_root(expr thick) =
+ penpos0(rule_thickness, -90);
+ penpos0'(rule_thickness, -90);
+ penpos2(3/2thick, 0);
+
+ y0l = h;
+ x0 = w;
+ z0' = z0 + 1/2line_thickness * right;
+ y1 = -d;
+ x1 = 4/9w;
+ x2 = 2/9w;
+ y2 = 1/2[y0, y1];
+ z1' = z1 + thick * dir (angle (z1 - z2l) + 90);
+ y6 = h;
+ z6 = z0r + thick * dir (angle (z0r - z1') + 90) + whatever * (z0r - z1');
+
+ penpos3(1/2thick, angle (z1 - z2l));
+
+ z3l = z2r + 5/2thick * dir (angle (z1 - z2l) - 90);
+ z4 = z6 + whatever * (z0 - z1') = z2r + whatever * (z2l - z1);
+ z5 = whatever[z2l, z1] = z3r + whatever * dir (angle (z1 - z2l) - 90);
+
+ fill z3r -- z5 -- z1 -- z1' -- z0r -- z0'r -- z0'l -- z6 -- z4 -- z2r -- z3l -- cycle;
+
+ penlabels (0,0',1,1',2,3,4,5,6);
+enddef;
+
+def draw_root_top(expr thick) =
+ y0 = h - 1/2rule_thickness;
+ x0 = w;
+ y1 = -d;
+ x1 = x2 = 4/9w + 1/2thick;
+ y2 = h - 1/2thick;
+
+ draw_straight(z1, z2, thick, true);
+ draw_straight((x1,y0), z0, rule_thickness, true);
+enddef;
+
+def draw_root_bot(expr thick) =
+ penpos0(thick, 0);
+ penpos0'(thick, -90);
+ penpos2(3/2thick, 0);
+
+ y0 = h + 1/2thick;
+ x0l = x1;
+ y1 = -d;
+ x1 = 4/9w;
+ x2l = 1/9w;
+ y2 = 1/2[y0, y1];
+ z1' = z1 + whatever * dir (angle (z1 - z2l) + 90);
+ x1' = x0r;
+
+ penpos3(1/2thick, angle (z1 - z2l));
+
+ z3l = z2r + 5/2thick * dir (angle (z1 - z2l) - 90);
+ z4 = z0l + whatever * up = z2r + whatever * (z2l - z1);
+ z5 = whatever[z2l, z1] = z3r + whatever * dir (angle (z1 - z2l) - 90);
+
+ fill z3r -- z5 -- z1 -- z1' -- z0r -- z0l -- z4 -- z2r -- z3l -- cycle;
+
+ penlabels (0,1,1',2,3,4,5);
+enddef;
+
+% Weierstrass macros
+
+def ellipse_set(suffix $,@,@@,$$) =
+ % given |z$,x@,z$$|, find |y@| and |z@@|
+ % such that the path |z${x@-x$,0}..z@{0,y@-y$}..{z$$-z@@}z@@|
+ % is consistent with an ellipse
+ % and such that the line |z@@--z$$| has a given |slope|
+ alpha_ := slope * (x@ - x$);
+ beta_ := y$$ - y$ - slope * (x$$ - x$);
+ gamma_ := alpha_ / beta_;
+ y@ - y$ = .5(beta_ - alpha_ * gamma_);
+ x@@ - x$ = -2gamma_ * (x@ - x$) / (1 + gamma_ * gamma_);
+ y@@ - y$$ = slope * (x@@ - x$$)
+enddef;
+
+vardef super_arc.r(suffix $,$$) =
+ % outside of super-ellipse
+
+ pair centre, corner;
+
+ if y$ = y$r:
+ centre = (x$$r, y$r);
+ corner = (x$r, y$$r);
+ else:
+ centre = (x$r, y$$r);
+ corner = (x$$r, y$r);
+ fi
+ z$.r{corner - z$.r} ... superness[centre,corner]{z$$.r - z$.r}
+ ... {z$$.r - corner}z$$.r
+enddef;
+
+vardef super_arc.l(suffix $,$$) =
+ % inside of super-ellipse
+
+ pair centre, corner;
+ if y$ = y$r:
+ centre = (x$$l, y$l);
+ corner = (x$l, y$$l);
+ else:
+ centre = (x$l, y$$l);
+ corner = (x$$l, y$l);
+ fi
+ z$l{corner - z$l} ... superness[centre,corner]{z$$l - z$l}
+ ... {z$$l - corner}z$$l
+enddef;
+
+vardef pulled_super_arc.r(suffix $,$$)(expr superpull) =
+ pair centre, corner;
+
+ if y$ = y$r:
+ centre = (x$$r, y$r);
+ corner = (x$r, y$$r);
+ else:
+ centre = (x$r, y$$r);
+ corner = (x$$r, y$r);
+ fi
+ z$r{corner - z$r} ... superness[centre,corner]{z$$r - z$r}
+ ... {z$$r - corner}z$$r
+enddef;
+
+vardef pulled_super_arc.l(suffix $,$$)(expr superpull) =
+ pair centre, corner, outer_point;
+
+ if y$ = y$r:
+ centre = (x$$l, y$l);
+ corner = (x$l, y$$l);
+ outer_point = superness[(x$$r, y$r), (x$r, y$$r)];
+ else:
+ centre = (x$l, y$$l);
+ corner = (x$$l, y$l);
+ outer_point = superness[(x$r, y$$r), (x$$r, y$r)];
+ fi
+ z$l{corner - z$l}
+ ... superpull[superness[centre,corner], outer_point]{z$$l - z$l}
+ ... {z$$l - corner}z$$l
+enddef;
+
+vardef pulled_arc@#(suffix $,$$) =
+ pulled_super_arc@#($,$$)(superpull)
+enddef;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fddelims.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fddelims.mf
new file mode 100644
index 00000000000..36c24dfcf75
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fddelims.mf
@@ -0,0 +1,585 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+% thickness factor for delimiters
+def dthick(expr scale) =
+ 1
+enddef;
+
+% parenthesis
+
+lparen_char = current_char + 1;
+rparen_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "parenthesis";
+ draw_paren(sign, dthick(scale) * line_thickness);
+ endchar;
+ endfor;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol((6 + 4.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(3delim_height#)); "parenthesis -- top";
+ thick := dthick(3) * line_thickness;
+
+ penpos1(thick, -90 + sign * 60);
+ penpos2(thick, 90 - sign * 90);
+ penpos2'(thick, 90 - sign * 90);
+
+ x1 = x2 + sign * (w - 2side_bearing - thick);
+ x2 = x2';
+ y1 = h;
+ y2 = -d + 1/2line_thickness;
+ y2' = -d - 1/2line_thickness;
+ 1/2[x1r,x2l] = w/2;
+
+ fill stroke z2'.e -- z2e{up} .. {3(x1e - x2e), y1e - y2e}z1e;
+
+ penlabels(1,2,2');
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol((6 + 4.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(3delim_height#)); "parenthesis -- bot";
+ thick := dthick(3) * line_thickness;
+
+ penpos0(thick, 90 - sign * 60);
+ penpos2(thick, 90 - sign * 90);
+ penpos2'(thick, 90 - sign * 90);
+
+ x0 = x2 + sign * (w - 2side_bearing - thick);
+ x2 = x2';
+ y2 = h - 1/2line_thickness;
+ y2' = h + 1/2line_thickness;
+ y0 = -d;
+ 1/2[x0r,x2l] = w/2;
+
+ fill stroke z0e{3(x2e - x0e), y2e - y0e} .. {up}z2e -- z2'.e;
+
+ penlabels(1,2,2');
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol((6 + 4.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "parenthesis -- module";
+ thick := dthick(3) * line_thickness;
+
+ penpos1(thick, 90 - sign * 45);
+ penpos2(thick, 90 - sign * 90);
+ penpos3(thick, 90 - sign * 90);
+
+ x2 = x3 = x1 - sign * (w - 2side_bearing - thick);
+ y2 = h + 1/2line_thickness;
+ y3 = -d - 1/2line_thickness;
+ 1/2[x1r,x2l] = w/2;
+
+ fill stroke z2e -- z3e;
+ endchar;
+endfor;
+
+extensible current_char - 1: current_char - 5, 0, current_char - 3, current_char - 1; %left parenthesis
+extensible current_char: current_char - 4, 0, current_char - 2, current_char; %right parenthesis
+
+charlist lparen_char: lparen_char + 1: lparen_char + 2: lparen_char + 3: lparen_char + 4: lparen_char + 5: current_char - 1;
+charlist rparen_char: rparen_char + 1: rparen_char + 2: rparen_char + 3: rparen_char + 4: rparen_char + 5: current_char;
+
+% brackets
+
+lsquare_char = current_char + 1;
+rsquare_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "square bracket";
+ draw_bracket(sign, dthick(scale) * line_thickness, true, true, true, false);
+ endchar;
+ endfor;
+endfor;
+
+lfloor_char = current_char + 1;
+rfloor_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "floor";
+ draw_bracket(sign, dthick(scale) * line_thickness, false, true, true, false);
+ endchar;
+ endfor;
+endfor;
+
+lceil_char = current_char + 1;
+rceil_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "ceiling";
+ draw_bracket(sign, dthick(scale) * line_thickness, true, true, false, false);
+ endchar;
+ endfor;
+endfor;
+
+ulcorner_char = current_char + 1;
+urcorner_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "upper corner";
+ draw_bracket(sign, dthick(scale) * line_thickness, true, false, false, false);
+ endchar;
+ endfor;
+endfor;
+
+charlist ulcorner_char: ulcorner_char + 1: ulcorner_char + 2: ulcorner_char + 3: ulcorner_char + 4: ulcorner_char + 5;
+charlist urcorner_char: urcorner_char + 1: urcorner_char + 2: urcorner_char + 3: urcorner_char + 4: urcorner_char + 5;
+
+llcorner_char = current_char + 1;
+lrcorner_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "lower corner";
+ draw_bracket(sign, dthick(scale) * line_thickness, false, false, true, false);
+ endchar;
+ endfor;
+endfor;
+
+charlist llcorner_char: llcorner_char + 1: llcorner_char + 2: llcorner_char + 3: llcorner_char + 4: llcorner_char + 5;
+charlist lrcorner_char: lrcorner_char + 1: lrcorner_char + 2: lrcorner_char + 3: lrcorner_char + 4: lrcorner_char + 5;
+
+ullcorner_char = current_char + 1;
+ulrcorner_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "upper/lower corner";
+ draw_bracket(sign, dthick(scale) * line_thickness, true, false, true, false);
+ endchar;
+ endfor;
+endfor;
+
+charlist ullcorner_char: ullcorner_char + 1: ullcorner_char + 2: ullcorner_char + 3: ullcorner_char + 4: ullcorner_char + 5;
+charlist ulrcorner_char: ulrcorner_char + 1: ulrcorner_char + 2: ulrcorner_char + 3: ulrcorner_char + 4: ulrcorner_char + 5;
+
+for sign = 1, -1:
+ beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "square bracket -- top";
+ draw_bracket(sign, dthick(3) * line_thickness, true, true, false, false);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "square bracket -- bot";
+ draw_bracket(sign, dthick(3) * line_thickness, false, true, true, false);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "square bracket -- module";
+ draw_bracket(sign, dthick(3) * line_thickness, false, true, false, false);
+ endchar;
+endfor;
+
+extensible current_char - 1: current_char - 5, 0, current_char - 3, current_char - 1; %left square bracket
+extensible current_char: current_char - 4, 0, current_char - 2, current_char; %right square bracket
+extensible current_char - 3: 0, 0, current_char - 3, current_char - 1; %left floor
+extensible current_char - 2: 0, 0, current_char - 2, current_char; %right floor
+extensible current_char - 5: current_char - 5, 0, 0, current_char - 1; %left ceiling
+extensible current_char - 4: current_char - 4, 0, 0, current_char; %right ceiling
+
+charlist lsquare_char: lsquare_char + 1: lsquare_char + 2: lsquare_char + 3: lsquare_char + 4: lsquare_char + 5: current_char - 1;
+charlist rsquare_char: rsquare_char + 1: rsquare_char + 2: rsquare_char + 3: rsquare_char + 4: rsquare_char + 5: current_char;
+charlist lfloor_char: lfloor_char + 1: lfloor_char + 2: lfloor_char + 3: lfloor_char + 4: lfloor_char + 5: current_char - 3;
+charlist rfloor_char: rfloor_char + 1: rfloor_char + 2: rfloor_char + 3: rfloor_char + 4: rfloor_char + 5: current_char - 2;
+charlist lceil_char: lceil_char + 1: lceil_char + 2: lceil_char + 3: lceil_char + 4: lceil_char + 5: current_char - 5;
+charlist rceil_char: rceil_char + 1: rceil_char + 2: rceil_char + 3: rceil_char + 4: rceil_char + 5: current_char - 4;
+
+% semantic brackets
+
+lsem_char = current_char + 1;
+rsem_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + 2line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "semantic bracket";
+ draw_bracket(sign, dthick(scale) * line_thickness, true, true, true, true);
+ endchar;
+ endfor;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol(5u# + 2line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "semantic bracket -- top";
+ draw_bracket(sign, dthick(3) * line_thickness, true, true, false, true);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol(5u# + 2line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "semantic bracket -- bot";
+ draw_bracket(sign, dthick(3) * line_thickness, false, true, true, true);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "semantic bracket -- module";
+ draw_bracket(sign, dthick(3) * line_thickness, false, true, false, true);
+ endchar;
+endfor;
+
+extensible current_char - 1: current_char - 5, 0, current_char - 3, current_char - 1; %left semantic bracket
+extensible current_char: current_char - 4, 0, current_char - 2, current_char; %right semantic bracket
+
+charlist lsem_char: lsem_char + 1: lsem_char + 2: lsem_char + 3: lsem_char + 4: lsem_char + 5: current_char - 1;
+charlist rsem_char: rsem_char + 1: rsem_char + 2: rsem_char + 3: rsem_char + 4: rsem_char + 5: current_char;
+
+% curly braces
+
+lcurly_char = current_char + 1;
+rcurly_char = current_char + 7;
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "curly brace";
+ thick := dthick(scale) * line_thickness;
+
+ draw_brace((w/2, (h-d)/2), h + d, w - 2side_bearing, 90 + sign * 90, thick, 0, 0, 0)
+ endchar;
+ endfor;
+endfor;
+
+beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- top";
+ thick := dthick(3) * line_thickness;
+
+ draw_brace((w/2, h - 3delim_height), 6delim_height, w - 2side_bearing, 180, thick, 0, 0, h + d);
+endchar;
+
+beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- top";
+ thick := dthick(3) * line_thickness;
+
+ draw_brace((w/2, h - 3delim_height), 6delim_height, w - 2side_bearing, 0, thick, h + d, 0, 0);
+endchar;
+
+beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- bot";
+ thick := dthick(3) * line_thickness;
+
+ draw_brace((w/2, 3delim_height - d), 6delim_height, w - 2side_bearing, 180, thick, h + d, 0, 0)
+endchar;
+
+beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- bot";
+ thick := dthick(3) * line_thickness;
+
+ draw_brace((w/2, 3delim_height - d), 6delim_height, w - 2side_bearing, 0, thick, 0, 0, h + d)
+endchar;
+
+for sign = 1, -1:
+ beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "curly brace -- middle";
+ thick := dthick(3) * line_thickness;
+
+ draw_brace((w/2, (h-d)/2), 6delim_height, w - 2side_bearing, 90 + sign * 90, thick, 0, h + d, 0);
+ endchar;
+endfor;
+
+beginsymbol((6 + 5.5)/2 * u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "curly brace -- module";
+ thick := dthick(3) * line_thickness;
+
+ x2 = x3 = w/2;
+ y2 = h + 1/2line_thickness;
+ y3 = -d - 1/2line_thickness;
+
+ draw_straight(z2, z3, thick, false);
+endchar;
+
+extensible current_char - 6: current_char - 6, 0, current_char - 4, current_char; %sharp left parenthesis
+extensible current_char - 5: current_char - 5, 0, current_char - 3, current_char; %sharp right parenthesis
+extensible current_char - 3: current_char - 6, 0, current_char - 3, current_char; %left moustache
+extensible current_char - 4: current_char - 5, 0, current_char - 4, current_char; %right moustache
+extensible current_char - 2: current_char - 6, current_char - 2, current_char - 4, current_char; %left curly brace
+extensible current_char - 1: current_char - 5, current_char - 1, current_char - 3, current_char; %right curly brace
+extensible current_char: 0, 0, 0, current_char; %vertical line
+
+charlist lcurly_char: lcurly_char + 1: lcurly_char + 2: lcurly_char + 3: lcurly_char + 4: lcurly_char + 5: current_char - 2;
+charlist rcurly_char: rcurly_char + 1: rcurly_char + 2: rcurly_char + 3: rcurly_char + 4: rcurly_char + 5: current_char - 1;
+
+% angle brackets
+
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "angle bracket";
+ draw_angle(a, 0, sign, dthick(scale) * line_thickness);
+ endchar;
+ endfor;
+ charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 8)/2 * u# + 2line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "double angle bracket";
+ thick := dthick(scale) * line_thickness;
+
+ draw_angle(a, -5/4thick, sign, thick);
+ draw_angle(b, 5/4thick, sign, thick);
+ endchar;
+ endfor;
+ charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((2scale + 4)/2 * u# + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "angle bracket with dot";
+ thick := dthick(scale) * line_thickness;
+
+ draw_angle(a, 0, sign, thick);
+
+ if sign > 0:
+ x3 = w - side_bearing - 3/4dot_size;
+ else:
+ x3 = side_bearing + 3/4dot_size;
+ fi
+ y3 = 1/2(h - d);
+
+ fill dot(z3, 3/4dot_size);
+ endchar;
+ endfor;
+ charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char;
+endfor;
+
+% slash
+
+for sign = 1, -1:
+ for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol(6scale * u# + line_thickness# + side_bearing#, vcentre(2scale * delim_height#)); "slash";
+ x1 - x0 = sign * (w - 2side_bearing - line_thickness);
+ y1 = h;
+ y0 = -d;
+ 1/2[x0,x1] = w/2;
+
+ draw_line(z0, z1, false);
+ endchar;
+ endfor;
+ charlist current_char - 5: current_char - 4: current_char - 3: current_char - 2: current_char - 1: current_char;
+endfor;
+
+% vertical bars
+
+for negated = false, true:
+ for scale = 0.5, 1, 1.2:
+ beginsymbol(2u# + if negated: 2u# + floor scale * u# else: 0u# fi + line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "vertical bar";
+ x0 = x1 = w/2;
+ y0 = h;
+ y1 = -d;
+
+ draw_line(z0, z1, false);
+
+ if negated:
+ if scale < 1: theta := 30; else: theta := 45; fi
+ len := 1/2(4u + floor scale * u) / cosd theta;
+
+ draw_straight(1/2[z0,z1] + len * dir theta, 1/2[z0,z1] - len * dir theta, stroke_through_thickness, true);
+ fi
+ endchar;
+ endfor;
+endfor;
+
+beginsymbol(2u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "vertical bar -- module";
+ x0 = x1 = w/2;
+ y0 = h + 1/2line_thickness;
+ y1 = -d - 1/2line_thickness;
+
+ draw_line(z0, z1, false);
+endchar;
+
+extensible current_char: 0, 0, 0, current_char; % vertical bar
+charlist current_char - 5: current_char - 4: current_char;
+
+for negated = false, true:
+ for scale = 0.5, 1, 1.2:
+ beginsymbol(5u# + if negated: 2u# + floor scale * u# else: 0u# fi + 2line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "double vertical bar";
+ x0 = x1;
+ x2 = x3;
+ 1/2[x0,x2] = w/2;
+ x2 - x0 = 3u + line_thickness;
+ y0 = y2 = h;
+ y1 = y3 = -d;
+
+ draw_line(z0, z1, false);
+ draw_line(z2, z3, false);
+
+ if negated:
+ if scale < 1: theta := 30; else: theta := 45; fi
+ len := 1/2(7u + floor scale * u + line_thickness) / cosd theta;
+ pair centre;
+ centre := 1/2[1/2[z0,z1],1/2[z2,z3]];
+
+ draw_straight(centre + len * dir theta, centre - len * dir theta, stroke_through_thickness, true);
+ fi
+ endchar;
+ endfor;
+endfor;
+
+beginsymbol(5u# + 2line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "double vertical bar -- module";
+ x0 = x1;
+ x2 = x3;
+ 1/2[x0,x2] = w/2;
+ x2 - x0 = 3u + line_thickness;
+ y0 = y2 = h + 1/2line_thickness;
+ y1 = y3 = -d - 1/2line_thickness;
+
+ draw_line(z0, z1, false);
+ draw_line(z2, z3, false);
+endchar;
+
+extensible current_char: 0, 0, 0, current_char; % double vertical line
+charlist current_char - 5: current_char -4: current_char;
+
+for scale = 1, 1.2:
+ beginsymbol(8u# + 3line_thickness# + 2side_bearing#, vcentre(2scale * delim_height#)); "tripe vertical bar";
+ x0 = x1;
+ x2 = x3;
+ x4 = x5;
+ 1/2[x0,x4] = w/2;
+ x2 - x0 = x4 - x2 = 3u + line_thickness;
+ y0 = y2 = y4 = h;
+ y1 = y3 = y5 = -d;
+
+ draw_line(z0, z1, false);
+ draw_line(z2, z3, false);
+ draw_line(z4, z5, false);
+ endchar;
+endfor;
+
+beginsymbol(8u# + 3line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "triple vertical bar -- module";
+ x0 = x1;
+ x2 = x3;
+ x4 = x5;
+ 1/2[x0,x4] = w/2;
+ x2 - x0 = x4 - x2 = 3u + line_thickness;
+ y0 = y2 = y4 = h + 1/2line_thickness;
+ y1 = y3 = y5 = -d - 1/2line_thickness;
+
+ draw_line(z0, z1, false);
+ draw_line(z2, z3, false);
+ draw_line(z4, z5, false);
+endchar;
+
+extensible current_char: 0, 0, 0, current_char; % triple vertical line
+charlist current_char - 2: current_char -1: current_char;
+
+% Arrows
+
+for arrow_dir = 90, 270:
+ beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "arrow up/down";
+ pair foot, head;
+
+ if arrow_dir = 90:
+ head = (w/2, h - 1/2line_thickness);
+ foot = (w/2, -d);
+ else:
+ head = (w/2, -d + 1/2line_thickness);
+ foot = (w/2, h + 1/2line_thickness);
+ fi;
+
+ draw_line(foot, head, false);
+ draw_arrowhead(head, arrow_dir, arrow_spread, line_thickness);
+ endchar;
+endfor;
+
+beginsymbol(5u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "arrow module";
+ z0 = (w/2, h);
+ z1 = (w/2, -d);
+
+ draw_line(z0, z1, true);
+endchar;
+
+extensible current_char-2: current_char-2, 0, current_char, current_char;
+extensible current_char-1: current_char, 0, current_char-1, current_char;
+extensible current_char: current_char-2, 0, current_char-1, current_char;
+
+for arrow_dir = 90, 270:
+ beginsymbol(7u# + line_thickness# + 2side_bearing#, vcentre(1.2delim_height#)); "double arrow up/down";
+ pair foot, head;
+
+ if arrow_dir = 90:
+ head = (w/2, h - 1/2line_thickness);
+ foot = (w/2, -d - 1/2line_thickness);
+ else:
+ head = (w/2, -d + 1/2line_thickness);
+ foot = (w/2, h + 1/2line_thickness);
+ fi;
+
+ z1 - z0 = z3 - z2 = equal_spread * dir (arrow_dir + 90);
+ 1/2[z0,z1] = foot;
+ 1/2[z2,z3] = head;
+
+ draw_line(z0, arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z0 -- z2), false);
+ draw_line(z1, arrowhead_intersection(head, arrow_dir, 13/10arrow_spread, z1 -- z3), false);
+ draw_arrowhead(head, arrow_dir, 13/10arrow_spread, line_thickness);
+ endchar;
+endfor;
+
+beginsymbol(7u# + line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "double arrow module";
+ z1 - z0 = z3 - z2 = equal_spread * right;
+ 1/2[z0,z1] = (w/2, h);
+ 1/2[z2,z3] = (w/2, -d);
+
+ draw_line(z0, z2, true);
+ draw_line(z1, z3, true);
+endchar;
+
+extensible current_char-2: current_char-2, 0, current_char, current_char;
+extensible current_char-1: current_char, 0, current_char-1, current_char;
+extensible current_char: current_char-2, 0, current_char-1, current_char;
+
+% horizontal curly braces
+
+beginsymbol(1/2delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- left";
+ draw_brace((3delim_height, (h-d)/2), 6delim_height, h + d, 90, line_thickness, w, 0, 0);
+endchar;
+
+beginsymbol(1/2delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- left";
+ draw_brace((3delim_height, (h-d)/2), 6delim_height, h + d, -90, line_thickness, 0, 0, w);
+endchar;
+
+beginsymbol(1/2delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- right";
+ draw_brace((w - 3delim_height, (h-d)/2), 6delim_height, h + d, 90, line_thickness, 0, 0, w);
+endchar;
+
+beginsymbol(1/2delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- right";
+ draw_brace((w - 3delim_height, (h-d)/2), 6delim_height, h + d, -90, line_thickness, w, 0, 0);
+endchar;
+
+for sign = 1, -1:
+ beginsymbol(delim_height#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- middle";
+ draw_brace((w/2, (h-d)/2), 6delim_height, h + d, sign * 90, line_thickness, 0, w, 0);
+ endchar;
+endfor;
+
+beginsymbol(u#, vcentre((6 + 5.5)/2 * u# + line_thickness#)); "horizontal curly brace -- module";
+ y2 = y3 = (h - d)/2;
+ x2 = -1/2line_thickness;
+ x3 = w + 1/2line_thickness;
+
+ draw_line(z2, z3, false);
+endchar;
+
+% roots
+
+root_char = current_char + 1;
+
+for scale = 1, 1.2, 1.5, 1.8, 2.4, 3:
+ beginsymbol((4scale + 2) * u# + 5/2line_thickness# + 2side_bearing#, rule_thickness#, 2scale * delim_height# - rule_thickness#); "root";
+ draw_root(line_thickness);
+ endchar;
+endfor;
+
+beginsymbol(14u# + 5/2line_thickness# + 2side_bearing#, rule_thickness#, 1.2delim_height# - rule_thickness#); "root -- top";
+ draw_root_top(line_thickness);
+endchar;
+
+beginsymbol(14u# + 5/2line_thickness# + 2side_bearing#, 0, 2.4delim_height#); "root -- bottom";
+ draw_root_bot(line_thickness);
+endchar;
+
+beginsymbol(14u# + 5/2line_thickness# + 2side_bearing#, vcentre(0.6delim_height#)); "root -- module";
+ x0 = x1 = 4/9w + 1/2line_thickness;
+ y0 = h;
+ y1 = -d;
+
+ draw_line(z0, z1, true);
+endchar;
+
+extensible current_char - 2: current_char - 2, 0, current_char - 1, current_char;
+charlist root_char: root_char + 1: root_char + 2: root_char + 3: root_char + 4: root_char + 5: current_char - 2;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdgeometric.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdgeometric.mf
new file mode 100644
index 00000000000..520b34e5ec7
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdgeometric.mf
@@ -0,0 +1,1837 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+beginsymbol(2dot_size# + 2side_bearing#, vcentre(2dot_size#)); "centre dot";
+ fill dot((w/2, (h-d)/2), dot_size);
+endchar;
+
+for alpha = 0, 90, 45, 135:
+ beginsymbol((4dot_size# + equal_spread#) * abs (cosd alpha) + 2dot_size# * abs (sind alpha) + 2side_bearing#, vcentre(2dot_size# * abs (cosd alpha) + (4dot_size# + equal_spread#) * abs (sind alpha))); "colon (" & decimal alpha & ")";
+ pair centre;
+ centre := (w/2, (h-d)/2);
+
+ z1 - z0 = (2dot_size + equal_spread) * dir alpha;
+ 1/2[z0,z1] = centre;
+
+ fill dot(z0, dot_size);
+ fill dot(z1, dot_size);
+ endchar;
+endfor;
+
+for alpha = 0, 90, 45, 135:
+ beginsymbol((6dot_size# + 2equal_spread#) * abs (cosd alpha) + 2dot_size# * abs (sind alpha) + 2side_bearing#, vcentre(2dot_size# * abs (cosd alpha) + (6dot_size# + 2equal_spread#) * abs (sind alpha))); "triple colon (" & decimal alpha & ")";
+ pair centre;
+ centre := (w/2, (h-d)/2);
+
+ z1 - z0 = (2dot_size + equal_spread) * dir alpha;
+ z2 - z1 = (2dot_size + equal_spread) * dir alpha;
+ z1 = centre;
+
+ fill dot(z0, dot_size);
+ fill dot(z1, dot_size);
+ fill dot(z2, dot_size);
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginoperator(plus_size#, 1); "therefore (" & decimal alpha & ")";
+ r := 1/2plus_size - dot_size;
+ r := r * 1/3[1, sqrt 2];
+
+ z1 = z0 + r * dir alpha;
+ z2 = z0 + r * dir (alpha + 120);
+ z3 = z0 + r * dir (alpha + 240);
+
+ 1/2[z1,1/2[z2,z3]] = centre;
+
+ fill dot(z1, dot_size);
+ fill dot(z2, dot_size);
+ fill dot(z3, dot_size);
+ endchar;
+endfor;
+
+beginoperator(plus_size#, 1); "double colon";
+ r := (1/2plus_size - dot_size) * sqrt(2);
+
+ fill dot(centre + r * dir 45, dot_size);
+ fill dot(centre + r * dir 135, dot_size);
+ fill dot(centre + r * dir 225, dot_size);
+ fill dot(centre + r * dir 315, dot_size);
+endchar;
+
+beginoperator(plus_size#, 1); "minus";
+ draw_line(centre + radius * right, centre + radius * left, true);
+endchar;
+
+beginoperator(plus_size#, 1); "medium slash";
+ draw_line(centre + 4/3radius * dir 45, centre + 4/3radius * dir 225, true);
+endchar;
+
+beginoperator(plus_size#, 1); "medium backslash";
+ draw_line(centre + 4/3radius * dir 135, centre + 4/3radius * dir 315, true);
+endchar;
+
+beginoperator(plus_size#, 1); "plus";
+ draw_line(centre + radius * right, centre + radius * left, true);
+ draw_line(centre + radius * up, centre + radius * down, true);
+endchar;
+
+beginoperator(plus_size#, 1); "times";
+ r := 4/3radius;
+
+ draw_line(centre + r * dir 45, centre + r * dir 225, true);
+ draw_line(centre + r * dir 135, centre + r * dir 315, true);
+endchar;
+
+beginoperator(plus_size#, 1.25); "plus minus";
+ centre := centre + 0.125plus_size * up;
+ pair bt;
+ bt := centre + (radius + 0.25plus_size) * down;
+
+ draw_line(centre + radius * right, centre + radius * left, true);
+ draw_line(centre + radius * up, centre + radius * down, true);
+ draw_line(bt + radius * right, bt + radius * left, true);
+endchar;
+
+beginoperator(plus_size#, 1.25); "minus plus";
+ centre := centre + 0.125plus_size * down;
+ pair tp;
+ tp := centre + (radius + 0.25plus_size) * up;
+
+ draw_line(centre + radius * right, centre + radius * left, true);
+ draw_line(centre + radius * up, centre + radius * down, true);
+ draw_line(tp + radius * right, tp + radius * left, true);
+endchar;
+
+for angle = 0, 180:
+ beginoperator(plus_size#, 1); "dot minus (" & decimal angle & ")";
+ draw_line(centre - radius * dir angle, centre + radius * dir angle, true);
+ fill dot(centre + equal_spread * dir (angle + 90), 3/4dot_size);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "minus with two dots";
+ draw_line(centre + radius * right, centre + radius * left, true);
+ fill dot(centre + sign * (radius - 3/4dot_size) * left + equal_spread * up, 3/4dot_size);
+ fill dot(centre + sign * (radius - 3/4dot_size) * right + equal_spread * down, 3/4dot_size);
+ endchar;
+endfor;
+
+beginoperator(plus_size#, 1); "minus with four dots";
+ draw_line(centre + radius * right, centre + radius * left, true);
+ fill dot(centre + (radius - 3/4dot_size) * left + equal_spread * up, 3/4dot_size);
+ fill dot(centre + (radius - 3/4dot_size) * right + equal_spread * up, 3/4dot_size);
+ fill dot(centre + (radius - 3/4dot_size) * left + equal_spread * down, 3/4dot_size);
+ fill dot(centre + (radius - 3/4dot_size) * right + equal_spread * down, 3/4dot_size);
+endchar;
+
+beginoperator(plus_size#, 1); "divide";
+ draw_line(centre + radius * right, centre + radius * left, true);
+ fill dot(centre + equal_spread * up, 3/4dot_size);
+ fill dot(centre + equal_spread * down, 3/4dot_size);
+endchar;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "logical not";
+ draw_line(centre + radius * left, centre + radius * right, true);
+ draw_line(centre + sign * radius * right, centre + sign * radius * right + equal_spread * down, true);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "upside down logical not";
+ draw_line(centre + radius * left, centre + radius * right, true);
+ draw_line(centre + sign * radius * right, centre + sign * radius * right + equal_spread * up, true);
+ endchar;
+endfor;
+
+for sign = -1, 1:
+ beginoperator(plus_size#, 1); "three times";
+ r := 4/3radius;
+
+ z0 = centre + r * dir (sign * 45);
+ z1 = centre + r * dir (sign * 225);
+ z2 = centre + r * dir (270 + sign * 45);
+ z3 = centre + 1/4line_thickness * dir (270 + sign * 45);
+
+ draw_line(z0, z1, true);
+ draw_line(z3, z2, true);
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginoperator(plus_size#, 1); "closed times (" & decimal alpha & ")";
+ thick := line_thickness;
+ r := 4/3radius;
+
+ z0 = centre + (r + 1/2line_thickness) * dir (alpha + 45);
+ z1 = centre + r * dir (alpha + 315);
+ z2 = centre + r * dir (alpha + 225);
+ z3 = centre + (r + 1/2line_thickness) * dir (alpha + 135);
+
+ penpos0(thick,alpha + 315);
+ penpos1(thick,alpha + 45);
+ penpos2(thick,alpha + 315);
+ penpos3(thick,alpha + 45);
+
+ z5 = z1r + whatever * dir (270 + alpha - 15);
+ z6 = z2l + whatever * dir (270 + alpha + 15);
+ z5 = whatever[z1r + thick * dir (270 + alpha), z2l + thick * dir (270 + alpha)];
+ z6 = whatever[z1r + thick * dir (270 + alpha), z2l + thick * dir (270 + alpha)];
+
+ fill stroke z0e -- z2e;
+ fill stroke z1e -- z3e;
+ fill z1r -- z5 -- z6 -- z2l -- cycle;
+
+ penlabels(0,1,2,3,5,6);
+ endchar;
+endfor;
+
+for alpha = 0, 90:
+ beginoperator(plus_size#, 1); "bowtie (" & decimal alpha & ")";
+ thick := line_thickness;
+ r := 4/3radius;
+
+ z0 = centre + r * dir (alpha + 135);
+ z1 = centre + r * dir (alpha + 45);
+ z2 = centre + r * dir (alpha + 315);
+ z3 = centre + r * dir (alpha + 225);
+
+ penpos0(thick,alpha + 45);
+ penpos1(thick,alpha + 135);
+ penpos2(thick,alpha + 45);
+ penpos3(thick,alpha + 135);
+
+ z4 = z0r + whatever * dir (180 + alpha + 15);
+ z5 = z1r + whatever * dir (alpha - 15);
+ z6 = z2l + whatever * dir (alpha + 15);
+ z7 = z3l + whatever * dir (180 + alpha - 15);
+ z4 = whatever[z0r + thick * dir (180 + alpha), z3l + thick * dir (180 + alpha)];
+ z5 = whatever[z1r + thick * dir alpha, z2l + thick * dir alpha];
+ z6 = whatever[z1r + thick * dir alpha, z2l + thick * dir alpha];
+ z7 = whatever[z0r + thick * dir (180 + alpha), z3l + thick * dir (180 + alpha)];
+
+ fill stroke z0e -- z2e;
+ fill stroke z1e -- z3e;
+ fill z1r -- z5 -- z6 -- z2l -- cycle;
+ fill z0r -- z4 -- z7 -- z3l -- cycle;
+
+ penlabels(0,1,2,3,4,5,6,7);
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginoperator(plus_size#, 1); "Y (" & decimal alpha & ")";
+ s := 1/15plus_size;
+
+ draw_line(centre - s * dir alpha, centre + radius * dir alpha, true);
+ draw_line(centre - s * dir alpha, centre - s * dir alpha + (radius + s) * dir (alpha + 135), true);
+ draw_line(centre - s * dir alpha, centre - s * dir alpha + (radius + s) * dir (alpha + 225), true);
+ endchar;
+endfor;
+
+% operators
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "wedge";
+ draw_less(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "wedge dot";
+ draw_less(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false);
+ fill dot(centre - sign * 1/3plus_size * up, 3/4dot_size);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol(13/9plus_size# + 2side_bearing#, vcentre(plus_size#)); "double wedge";
+ 1/2[z0,z1] = (w/2, (h-d)/2);
+ z1 - z0 = 4/9plus_size * right;
+
+ draw_less(a, z0 + sign * plus_size/2 * up, z0 - sign * plus_size/2 * up, 2radius, line_thickness, false);
+ draw_less(b, z1 + sign * plus_size/2 * up, z1 - sign * plus_size/2 * up, 2radius, line_thickness, false);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "curly wedge";
+ draw_prec(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "curly wedge dot";
+ draw_prec(a, centre + sign * plus_size/2 * up, centre - sign * plus_size/2 * up, 2radius, line_thickness, false);
+ fill dot(1/2[z1a.l,z0a.r] + sign * 3/4dot_size * up, 3/4dot_size);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginsymbol(13/9plus_size# + 2side_bearing#, vcentre(plus_size#)); "double curly wedge";
+ 1/2[z0,z1] = (w/2, (h-d)/2);
+ z1 - z0 = 4/9plus_size * right;
+
+ draw_prec(a, z0 + sign * plus_size/2 * up, z0 - sign * plus_size/2 * up, 2radius, line_thickness, false);
+ draw_prec(b, z1 + sign * plus_size/2 * up, z1 - sign * plus_size/2 * up, 2radius, line_thickness, false);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "union";
+ draw_subset(a,centre - sign * plus_size/2 * up, centre + sign * plus_size/2 * up, 2radius, line_thickness);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(4/3plus_size#, 1); "double union";
+ draw_subset(a, centre - sign * 5/18plus_size * up, centre + sign * 2/3plus_size * up, 5/6radius, line_thickness);
+ draw_subset(b, centre - sign * 2/3plus_size * up, centre + sign * 2/3plus_size * up, 2radius, line_thickness);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "union dot";
+ draw_subset(a, centre - sign * plus_size/2 * up, centre + sign * plus_size/2 * up, 2radius, line_thickness);
+ fill dot(centre + sign * 1/6plus_size * up, 3/4dot_size);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "union plus";
+ draw_subset(a, centre - sign * plus_size/2 * up, centre + sign * plus_size/2 * up, 2radius, line_thickness);
+
+ t := 22/10line_thickness;
+ r := radius - t;
+
+ draw_line(centre + sign * 1/6plus_size * up + r * right, centre + sign * 1/6plus_size * up + r * left, true);
+ draw_line(centre + (r + sign * 1/6plus_size) * up, centre + (r - sign * 1/6plus_size) * down, true);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "square union";
+ z3 - z0 = z2 - z1 = 2radius * right;
+ z0 - z1 = sign * 2radius * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, false);
+ draw_line(z2, z3, true);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(4/3plus_size#, 1); "double square union";
+ z3a - z0a = z2a - z1a = 2radius * right;
+ z0a - z1a = sign * 2radius * up;
+ 1/2[1/2[z0a,z1a], 1/2[z2a,z3a]] = centre;
+ z3b - z0b = z2b - z1b = 5/9plus_size * right;
+ z0b - z1b = sign * 17/12radius * up;
+ y0b = y0a;
+ 1/2[x0b, x3b] = xpart centre;
+
+ draw_line(z0a, z1a, true);
+ draw_line(z1a, z2a, false);
+ draw_line(z2a, z3a, true);
+ draw_line(z0b, z1b, true);
+ draw_line(z1b, z2b, false);
+ draw_line(z2b, z3b, true);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "square union dot";
+ z3 - z0 = z2 - z1 = 2radius * right;
+ z0 - z1 = sign * 2radius * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, false);
+ draw_line(z2, z3, true);
+ fill dot(centre + sign * 1/6plus_size * up, 3/4dot_size);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "square union plus";
+ z3 - z0 = z2 - z1 = 2radius * right;
+ z0 - z1 = sign * 2radius * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, false);
+ draw_line(z2, z3, true);
+
+ t := 22/10line_thickness;
+ r := radius - t;
+
+ draw_line(centre + sign * 1/6plus_size * up + r * right, centre + sign * 1/6plus_size * up + r * left, true);
+ draw_line(centre + (r + sign * 1/6plus_size) * up, centre + (r - sign * 1/6plus_size) * down, true);
+ endchar;
+endfor;
+
+for alpha = 0, 180:
+ beginoperator(plus_size#, 1); "corner with dot";
+ z3 - z0 = z2 - z1 = 2radius * dir alpha;
+ z0 - z1 = 2radius * dir (alpha + 90);
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z1, z2, true);
+ draw_line(z2, z3, true);
+ fill dot(centre, 3/4dot_size);
+ endchar;
+endfor;
+
+% triangles
+
+for alpha = 0, 90, 180, 270:
+ beginsymbol((3/4small_op_size# + 3/2line_thickness#) * abs(cosd alpha) + sqrt(3) * (small_op_size#/2 + line_thickness#) * abs(sind alpha) + 2side_bearing#, vcentre(sqrt(3) * (small_op_size#/2 + line_thickness#) * abs(cosd alpha) + (3/4small_op_size# + 3/2line_thickness#) * abs(sind alpha))); "small triangle (" & decimal alpha & ")";
+ thick := line_thickness;
+ radius := small_op_size/2;
+ centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha;
+
+ draw_triangle(a, centre, radius, alpha, thick);
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginsymbol((3/4small_op_size# + 3/2line_thickness#) * abs(cosd alpha) + sqrt(3) * (small_op_size#/2 + line_thickness#) * abs(sind alpha) + 2side_bearing#, vcentre(sqrt(3) * (small_op_size#/2 + line_thickness#) * abs(cosd alpha) + (3/4small_op_size# + 3/2line_thickness#) * abs(sind alpha))); "small filled triangle (" & decimal alpha & ")";
+ thick := line_thickness;
+ radius := small_op_size/2;
+ centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha;
+
+ filldraw_triangle(a, centre, radius, alpha, thick);
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginsymbol((3/4med_op_size# + 3/2line_thickness#) * abs(cosd alpha) + sqrt(3) * (med_op_size#/2 + line_thickness#) * abs(sind alpha) + 2side_bearing#, vcentre(sqrt(3) * (med_op_size#/2 + line_thickness#) * abs(cosd alpha) + (3/4med_op_size# + 3/2line_thickness#) * abs(sind alpha))); "medium triangle (" & decimal alpha & ")";
+ thick := line_thickness;
+ radius := med_op_size/2;
+ centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha;
+
+ draw_triangle(a, centre, radius, alpha, thick);
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginsymbol((3/4med_op_size# + 3/2line_thickness#) * abs(cosd alpha) + sqrt(3) * (med_op_size#/2 + line_thickness#) * abs(sind alpha) + 2side_bearing#, vcentre(sqrt(3) * (med_op_size#/2 + line_thickness#) * abs(cosd alpha) + (3/4med_op_size# + 3/2line_thickness#) * abs(sind alpha))); "medium filled triangle (" & decimal alpha & ")";
+ thick := line_thickness;
+ radius := med_op_size/2;
+ centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha;
+
+ filldraw_triangle(a, centre, radius, alpha, thick);
+ endchar;
+endfor;
+
+for alpha = 90, 270:
+ beginsymbol(sqrt(3) * (large_op_size#/2 + line_thickness#) + 2side_bearing#, vcentre(3/4large_op_size# + 3/2line_thickness#)); "large triangle (" & decimal alpha & ")";
+ thick := line_thickness;
+ radius := large_op_size/2;
+ centre := (w/2, (h - d)/2) - 1/4(radius + thick) * dir alpha;
+
+ draw_triangle(a, centre, radius, alpha, thick);
+ endchar;
+endfor;
+
+% circles
+
+beginoperator(4/5small_op_size#, 1); "small circle";
+ draw_circle(centre, radius, line_thickness);
+endchar;
+
+beginoperator(4/5small_op_size#, 1); "small filled circle";
+ filldraw_circle(centre, radius, line_thickness);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle";
+ draw_circle(centre, radius, line_thickness);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium filled circle";
+ filldraw_circle(centre, radius, line_thickness);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle minus";
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + radius * left, centre + radius * right, false);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle bar";
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + radius * up, centre + radius * down, false);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle slash";
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + radius * dir 45, centre + radius * dir 225, false);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle backslash";
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + radius * dir 135, centre + radius * dir 315, false);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle plus";
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + radius * left, centre + radius * right, false);
+ draw_line(centre + radius * up, centre + radius * down, false);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle times";
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + radius * dir 45, centre + radius * dir 225, false);
+ draw_line(centre + radius * dir 135, centre + radius * dir 315, false);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle dot";
+ draw_circle(centre, radius, line_thickness);
+ fill dot(centre, dot_size);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle circle";
+ draw_circle(centre, radius, line_thickness);
+ draw_circle(centre, 2/5radius, line_thickness);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle asterisk";
+ thick := line_thickness;
+
+ draw_circle(centre, radius, thick);
+
+ penpos a0(4/3thick, 0);
+ penpos a1(4/3thick, 60);
+ penpos a2(4/3thick, 120);
+ penpos a3(4/3thick, 180);
+ penpos a4(4/3thick, 240);
+ penpos a5(4/3thick, 300);
+
+ penpos b0(2/3thick, 0);
+ penpos b1(2/3thick, 60);
+ penpos b2(2/3thick, 120);
+ penpos b3(2/3thick, 180);
+ penpos b4(2/3thick, 240);
+ penpos b5(2/3thick, 300);
+
+ reg_poly_points(a)(6, centre, radius, 90);
+
+ z.b0 = z.b1 = z.b2 = z.b3 = z.b4 = z.b5 = centre;
+
+ fill stroke z.a0e -- z.b0e;
+ fill stroke z.a1e -- z.b1e;
+ fill stroke z.a2e -- z.b2e;
+ fill stroke z.a3e -- z.b3e;
+ fill stroke z.a4e -- z.b4e;
+ fill stroke z.a5e -- z.b5e;
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle dash";
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + 2/3radius * left, centre + 2/3radius * right, false);
+endchar;
+
+beginoperator(4/5med_op_size#, 1); "medium circle equal";
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + 2/5equal_spread * up + 2/3radius * left, centre + 2/5equal_spread * up + 2/3radius * right, false);
+ draw_line(centre + 2/5equal_spread * down + 2/3radius * left, centre + 2/5equal_spread * down + 2/3radius * right, false);
+endchar;
+
+for sign = 1,-1:
+ beginoperator(4/5med_op_size#, 1); "negated medium circle";
+ r := 4/3radius;
+
+ draw_circle(centre, radius, line_thickness);
+ draw_line(centre + r * dir (sign * 45), centre + r * dir (sign * 225), true);
+ endchar;
+endfor;
+
+beginoperator(4/5large_op_size#, 1); "large circle";
+ draw_circle(centre, radius, line_thickness);
+endchar;
+
+beginoperator(4/5large_op_size#, 1); "large filled circle";
+ filldraw_circle(centre, radius, line_thickness);
+endchar;
+
+% squares
+
+beginoperator(small_op_size#/sqrt(2), 1); "small square";
+ draw_square(centre, radius, 0, line_thickness);
+endchar;
+
+beginoperator(small_op_size#/sqrt(2), 1); "small filled square";
+ filldraw_square(centre, radius, 0, line_thickness);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square";
+ draw_square(centre, radius, 0, line_thickness);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium filled square";
+ filldraw_square(centre, radius, 0, line_thickness);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square minus";
+ draw_square(centre, radius, 0, line_thickness);
+ draw_line(centre + radius * right, centre + radius * left, false);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square vert";
+ draw_square(centre, radius, 0, line_thickness);
+ draw_line(centre + radius * up, centre + radius * down, false);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square slash";
+ r := radius * sqrt(2);
+
+ draw_square(centre, radius, 0, line_thickness);
+ draw_line(centre + r * dir 45, centre + r * dir 225, false);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square backslash";
+ r := radius * sqrt(2);
+
+ draw_square(centre, radius, 0, line_thickness);
+ draw_line(centre + r * dir 135, centre + r * dir 315, false);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square plus";
+ draw_square(centre, radius, 0, line_thickness);
+ draw_line(centre + radius * right, centre + radius * left, false);
+ draw_line(centre + radius * up, centre + radius * down, false);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square times";
+ r := radius * sqrt(2);
+
+ draw_square(centre, radius, 0, line_thickness);
+ draw_line(centre + r * dir 45, centre + r * dir 225, false);
+ draw_line(centre + r * dir 135, centre + r * dir 315, false);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square dot";
+ draw_square(centre, radius, 0, line_thickness);
+ fill dot(centre, dot_size);
+endchar;
+
+beginoperator(med_op_size#/sqrt(2), 1); "medium square square";
+ draw_square(centre, radius, 0, line_thickness);
+ draw_square(centre, 2/5radius, 0, line_thickness);
+endchar;
+
+beginoperator(large_op_size#/sqrt(2), 1); "large square";
+ draw_square(centre, radius, 0, line_thickness);
+endchar;
+
+beginoperator(large_op_size#/sqrt(2), 1); "large filled square";
+ filldraw_square(centre, radius, 0, line_thickness);
+endchar;
+
+beginoperator(small_op_size#, 1); "small diamond";
+ draw_square(centre, radius / sqrt(2), 45, line_thickness);
+endchar;
+
+beginoperator(small_op_size#, 1); "small filled diamond";
+ filldraw_square(centre, radius / sqrt(2), 45, line_thickness);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond";
+ draw_square(centre, radius / sqrt(2), 45, line_thickness);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium filled diamond";
+ filldraw_square(centre, radius / sqrt(2), 45, line_thickness);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond minus";
+ draw_square(centre, radius / sqrt(2), 45, line_thickness);
+ draw_line(centre + radius * right, centre + radius * left, false);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond vert";
+ draw_square(centre, radius / sqrt(2), 45, line_thickness);
+ draw_line(centre + radius * up, centre + radius * down, false);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond slash";
+ r := radius / sqrt(2);
+
+ draw_square(centre, r, 45, line_thickness);
+ draw_line(centre + r * dir 45, centre + r * dir 225, false);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond backslash";
+ r := radius / sqrt(2);
+
+ draw_square(centre, r, 45, line_thickness);
+ draw_line(centre + r * dir 135, centre + r * dir 315, false);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond plus";
+ draw_square(centre, radius / sqrt(2), 45, line_thickness);
+ draw_line(centre + radius * right, centre + radius * left, false);
+ draw_line(centre + radius * up, centre + radius * down, false);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond times";
+ r := radius / sqrt(2);
+
+ draw_square(centre, r, 45, line_thickness);
+ draw_line(centre + r * dir 45, centre + r * dir 225, false);
+ draw_line(centre + r * dir 135, centre + r * dir 315, false);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond dot";
+ draw_square(centre, radius / sqrt(2), 45, line_thickness);
+ fill dot(centre, dot_size);
+endchar;
+
+beginoperator(med_op_size#, 1); "medium diamond diamond";
+ draw_square(centre, radius / sqrt(2), 45, line_thickness);
+ draw_square(centre, 2/5radius / sqrt(2), 45, line_thickness);
+endchar;
+
+beginoperator(5/6small_op_size#, 8/5); "small lozenge";
+ x0 = w - x2 = side_bearing;
+ y0 = y2 = ypart centre;
+ x1 = x3 = xpart centre;
+ y1 = h;
+ y3 = -d;
+
+ theta := angle(z1 - z0);
+
+ x0' = x0 + line_thickness / sind theta;
+ x2' = x2 - line_thickness / sind theta;
+ y0' = y2' = y0;
+ y1' = y1 - line_thickness / cosd theta;
+ y3' = y3 + line_thickness / cosd theta;
+ x1' = x3' = x1;
+
+ fill z0 -- z1 -- z2 -- z3 -- cycle;
+ unfill z0' -- z1' -- z2' -- z3' -- cycle;
+endchar;
+
+beginoperator(5/6small_op_size#, 8/5); "small filled lozenge";
+ x0 = w - x2 = side_bearing;
+ y0 = y2 = ypart centre;
+ x1 = x3 = xpart centre;
+ y1 = h;
+ y3 = -d;
+
+ fill z0 -- z1 -- z2 -- z3 -- cycle;
+endchar;
+
+beginoperator(1/sqrt(2)*med_op_size#, 8/5); "medium lozenge";
+ x0 = w - x2 = side_bearing;
+ y0 = y2 = ypart centre;
+ x1 = x3 = xpart centre;
+ y1 = h;
+ y3 = -d;
+
+ theta := angle(z1 - z0);
+
+ x0' = x0 + line_thickness / sind theta;
+ x2' = x2 - line_thickness / sind theta;
+ y0' = y2' = y0;
+ y1' = y1 - line_thickness / cosd theta;
+ y3' = y3 + line_thickness / cosd theta;
+ x1' = x3' = x1;
+
+ fill z0 -- z1 -- z2 -- z3 -- cycle;
+ unfill z0' -- z1' -- z2' -- z3' -- cycle;
+endchar;
+
+beginoperator(1/sqrt(2)*med_op_size#, 8/5); "medium filled lozenge";
+ x0 = w - x2 = side_bearing;
+ y0 = y2 = ypart centre;
+ x1 = x3 = xpart centre;
+ y1 = h;
+ y3 = -d;
+
+ fill z0 -- z1 -- z2 -- z3 -- cycle;
+endchar;
+
+beginoperator(1/sqrt(2)*med_op_size#, 8/5); "medium lozenge minus";
+ thick := line_thickness;
+
+ x0 = w - x2 = side_bearing;
+ y0 = y2 = ypart centre;
+ x1 = x3 = xpart centre;
+ y1 = h;
+ y3 = -d;
+
+ theta := angle(z1 - z0);
+
+ x0' = x0 + thick / sind theta;
+ x2' = x2 - thick / sind theta;
+ y0' = y2' = y0;
+ y1' = y1 - thick / cosd theta;
+ y3' = y3 + thick / cosd theta;
+ x1' = x3' = x1;
+
+ fill z0 -- z1 -- z2 -- z3 -- cycle;
+ unfill z0' -- z1' -- z2' -- z3' -- cycle;
+ draw_line(z0', z2', true);
+endchar;
+
+beginoperator(5/4small_op_size#, 1); "small star";
+ r := radius + line_thickness;
+ t := 1/11r;
+
+ reg_poly_points(a)(5, centre - t * up, r, 90);
+ reg_poly_points(b)(5, centre - t * up, .4r, 126);
+
+ s := r - 4/5line_thickness / sind (270 - angle (z.b0 - z.a0));
+
+ reg_poly_points(c)(5, centre - t * up, s, 90);
+ reg_poly_points(d)(5, centre - t * up, .4s, 126);
+
+ fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
+ unfill z.c0 -- z.d0 -- z.c1 -- z.d1 -- z.c2 -- z.d2 -- z.c3 -- z.d3 -- z.c4 -- z.d4 -- cycle;
+endchar;
+
+beginoperator(small_op_size#, 1); "small filled star";
+ r := radius + line_thickness;
+ t := 1/11r;
+
+ reg_poly_points(a)(5, centre - t * up, r, 90);
+ reg_poly_points(b)(5, centre - t * up, .4r, 126);
+
+ fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
+endchar;
+
+beginoperator(med_op_size#, 1); "medium star";
+ r := radius + line_thickness;
+ t := 1/11r;
+
+ reg_poly_points(a)(5, centre - t * up, r, 90);
+ reg_poly_points(b)(5, centre - t * up, .4r, 126);
+
+ s := r - line_thickness / sind (270 - angle (z.b0 - z.a0));
+
+ reg_poly_points(c)(5, centre - t * up, s, 90);
+ reg_poly_points(d)(5, centre - t * up, .4s, 126);
+
+ fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
+ unfill z.c0 -- z.d0 -- z.c1 -- z.d1 -- z.c2 -- z.d2 -- z.c3 -- z.d3 -- z.c4 -- z.d4 -- cycle;
+endchar;
+
+beginoperator(med_op_size#, 1); "medium filled star";
+ r := radius + line_thickness;
+ t := 1/11r;
+
+ reg_poly_points(a)(5, centre - t * up, r, 90);
+ reg_poly_points(b)(5, centre - t * up, .4r, 126);
+
+ fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
+endchar;
+
+beginoperator(large_op_size#, 1); "large star";
+ r := radius + line_thickness;
+ t := 1/11r;
+
+ reg_poly_points(a)(5, centre - t * up, r, 90);
+ reg_poly_points(b)(5, centre - t * up, .4r, 126);
+
+ s := r - line_thickness / sind (270 - angle (z.b0 - z.a0));
+
+ reg_poly_points(c)(5, centre - t * up, s, 90);
+ reg_poly_points(d)(5, centre - t * up, .4s, 126);
+
+ fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
+ unfill z.c0 -- z.d0 -- z.c1 -- z.d1 -- z.c2 -- z.d2 -- z.c3 -- z.d3 -- z.c4 -- z.d4 -- cycle;
+endchar;
+
+beginoperator(large_op_size#, 1); "large filled star";
+ r := radius + line_thickness;
+ t := 1/11r;
+
+ reg_poly_points(a)(5, centre - t * up, r, 90);
+ reg_poly_points(b)(5, centre - t * up, .4r, 126);
+
+ fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
+endchar;
+
+beginoperator(small_op_size#, 1); "asterisk";
+ r := w/2 - side_bearing;
+
+ penpos a0(4/3line_thickness, 0);
+ penpos a1(4/3line_thickness, 60);
+ penpos a2(4/3line_thickness, 120);
+ penpos a3(4/3line_thickness, 180);
+ penpos a4(4/3line_thickness, 240);
+ penpos a5(4/3line_thickness, 300);
+
+ penpos b0(2/3line_thickness, 0);
+ penpos b1(2/3line_thickness, 60);
+ penpos b2(2/3line_thickness, 120);
+ penpos b3(2/3line_thickness, 180);
+ penpos b4(2/3line_thickness, 240);
+ penpos b5(2/3line_thickness, 300);
+
+ reg_poly_points(a)(6, centre, r, 90);
+
+ z.b0 = z.b1 = z.b2 = z.b3 = z.b4 = z.b5 = centre;
+
+ fill stroke z.a0e -- z.b0e;
+ fill stroke z.a1e -- z.b1e;
+ fill stroke z.a2e -- z.b2e;
+ fill stroke z.a3e -- z.b3e;
+ fill stroke z.a4e -- z.b4e;
+ fill stroke z.a5e -- z.b5e;
+endchar;
+
+beginsymbol(18/10order_width# + 2side_bearing#, vcentre(2equal_spread# + line_thickness#)); "infinity";
+ pair centre;
+ centre := (w/2, (h-d)/2);
+ thick := line_thickness;
+ alpha := 0;
+
+ z0 = centre - (9/10order_width - 1/2thick) * dir alpha;
+ z1 = centre + (9/10order_width - 1/2thick) * dir alpha;
+ z6 = 1/5[z0,z1];
+ z7 = 4/5[z0,z1];
+ z2 = z6 + equal_spread * dir (alpha + 90);
+ z3 = z6 - equal_spread * dir (alpha + 90);
+ z4 = z7 + equal_spread * dir (alpha + 90);
+ z5 = z7 - equal_spread * dir (alpha + 90);
+ z8 = z9 = centre;
+
+ penpos0(thick, alpha);
+ penpos1(thick, alpha);
+ penpos2(thick, alpha - 90);
+ penpos3(thick, alpha + 90);
+ penpos4(thick, alpha + 90);
+ penpos5(thick, alpha - 90);
+ penpos8(thick, alpha - 135);
+ penpos9(thick, alpha + 135);
+
+ fill stroke z4.e{dir (alpha + 180)}
+ .. {dir (alpha + 225)}z9.e
+ .. {dir (alpha + 180)}z3.e
+ .. {dir (alpha + 90)}z0.e
+ .. {dir alpha}z2.e
+ .. {dir (alpha - 45)}z8.e
+ .. {dir alpha}z5.e
+ .. {dir (alpha + 90)}z1.e
+ .. cycle;
+
+ penlabels (0,1,2,3,4,5,6,7,8,9);
+endchar;
+
+for alpha = 0, 180:
+ beginsymbol(16/10order_width# + 2side_bearing#, vcentre(2equal_spread# + line_thickness#)); "proportional";
+ pair centre;
+ centre := (w/2, (h-d)/2);
+ thick := line_thickness;
+
+ z0 = centre - (8/10order_width - 1/2thick) * dir alpha;
+ z1 = centre + (7/10order_width - 1/2thick) * dir alpha;
+ z4 = z1 + equal_spread * dir (alpha + 90);
+ z5 = z1 - equal_spread * dir (alpha + 90);
+ z6 - z4 = z7 - z5 = (1/10order_width + 1/2thick) * dir alpha;
+ z10 = 1/4[z0,z1];
+ z2 = z10 + equal_spread * dir (alpha + 90);
+ z3 = z10 - equal_spread * dir (alpha + 90);
+ z8 = z9 = centre + 1/10order_width * dir alpha;
+
+ penpos0(thick, alpha);
+ penpos2(thick, alpha - 90);
+ penpos3(thick, alpha + 90);
+ penpos4(thick, alpha + 90);
+ penpos5(thick, alpha - 90);
+ penpos6(thick, alpha + 90);
+ penpos7(thick, alpha - 90);
+ penpos8(thick, alpha + 225);
+ penpos9(thick, alpha + 135);
+
+ fill stroke z6.e
+ -- z4.e{dir (alpha + 180)}
+ .. {dir (alpha + 225)}z9.e
+ .. {dir (alpha + 180)}z3.e
+ .. {dir (alpha + 90)}z0.e
+ .. {dir alpha}z2.e
+ .. {dir (alpha - 45)}z8.e
+ .. {dir alpha}z5.e
+ -- z7.e;
+
+ penlabels (0,1,2,3,4,5,6,7,8,9);
+ endchar;
+endfor;
+
+beginsymbol(14/10order_width# + 2side_bearing#, vcentre(2equal_spread# + line_thickness#)); "crossing";
+ pair centre;
+ centre := (w/2, (h-d)/2);
+ thick := line_thickness;
+ alpha := 0;
+
+ z0 = centre - (6/10order_width - 1/2thick) * dir alpha;
+ z1 = centre + (6/10order_width - 1/2thick) * dir alpha;
+ z2 = z0 + equal_spread * dir (alpha + 90);
+ z3 = z0 - equal_spread * dir (alpha + 90);
+ z4 = z1 + equal_spread * dir (alpha + 90);
+ z5 = z1 - equal_spread * dir (alpha + 90);
+ z6 - z4 = z7 - z5 = (1/10order_width + 1/2thick) * dir alpha;
+ z2 - z8 = z3 - z9 = (1/10order_width + 1/2thick) * dir alpha;
+ z10 = z11 = 1/2[z0,z1];
+
+ penpos2(thick, alpha + 90);
+ penpos3(thick, alpha + 90);
+ penpos4(thick, alpha + 90);
+ penpos5(thick, alpha + 90);
+ penpos6(thick, alpha + 90);
+ penpos7(thick, alpha + 90);
+ penpos8(thick, alpha + 90);
+ penpos9(thick, alpha + 90);
+ penpos10(thick, alpha + 45);
+ penpos11(thick, alpha + 135);
+
+ fill stroke z6.e
+ -- z4.e{dir (alpha + 180)}
+ .. {dir (alpha + 225)}z11.e
+ .. {dir (alpha + 180)}z3.e
+ -- z9.e;
+ fill stroke z8.e
+ -- z2.e{dir alpha}
+ .. {dir (alpha - 45)}z10.e
+ .. {dir alpha}z5.e
+ -- z7.e;
+
+ penlabels (0,1,2,3,4,5,6,7,8,9,10,11);
+endchar;
+
+beginsymbol(equal_spread# + line_thickness# + 2side_bearing#, vcentre(med_op_size#)); "between";
+ pair centre;
+ centre := (w/2, (h-d)/2);
+ r := med_op_size/2;
+
+ z0 = centre;
+ z1 = centre;
+
+ draw_smile(a, 1, z0 - r * up, z0 + r * up, equal_spread, line_thickness, true);
+ draw_smile(b, -1, z1 - r * up, z1 + r * up, equal_spread, line_thickness, true);
+endchar;
+
+beginsymbol(11/5equal_spread# + line_thickness# + 2side_bearing#, vcentre(med_op_size#)); "reversed between";
+ pair centre;
+ centre := (w/2, (h-d)/2);
+ r := med_op_size/2;
+
+ z0 = centre + 3/4equal_spread * right;
+ z1 = centre - 3/4equal_spread * right;
+
+ draw_smile(a, -1, z0 - r * up, z0 + r * up, 2/3equal_spread, line_thickness, true);
+ draw_smile(b, 1, z1 - r * up, z1 + r * up, 2/3equal_spread, line_thickness, true);
+endchar;
+
+for sign = 1, -1:
+ beginsymbol(order_width# + 2side_bearing#, cap_height#, 0); "top";
+ z1 - z0 = z3 - z2 = (order_width - line_thickness) * right;
+ z2 - z0 = sign * (cap_height - line_thickness) * up;
+
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = (w/2, (h-d)/2);
+
+ draw_line(z0, z1, true);
+ draw_line(1/2[z0,z1], 1/2[z2,z3], true);
+ endchar;
+endfor;
+
+beginsymbol(2/3equal_spread# + line_thickness# + 2side_bearing#, vcentre(plus_size#)); "wreath";
+ pair centre;
+ centre := (w/2, (h-d)/2);
+
+ draw_sim(a, centre + 1/2plus_size * up, centre - 1/2plus_size * up, 1/3equal_spread, thick);
+endchar;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "angle";
+ z0 = centre + (plus_size - line_thickness)/2 * down;
+ z1 = z0 + sign * 1/2plus_size * right;
+ z2 = z0 + sign * 1/2plus_size * left;
+ x3 = xpart centre + sign * 1/2plus_size;
+ y3 = ypart centre + 2/3plus_size;
+ z4 = 4/5[z2,z3];
+ z5 = z4l + whatever * (z2 - z4);
+ z5 = z1r + whatever * right;
+ z6 = z4r + whatever * (z2 - z4);
+ z6 = z1r + whatever * right;
+ z7 = z1l + whatever * right;
+ z7 = z6 + whatever * dir (90 + sign * 17);
+
+ penpos1(line_thickness, 90);
+ penpos4(line_thickness, angle(z3 - z2) + sign * 90);
+
+ fill z1r -- z5 -- z4l -- z4r -- z6 -- z7 -- z1l -- cycle;
+
+ penlabels(1,2,3,4,5,6,7);
+ endchar;
+endfor;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "measured angle";
+ z0 = centre + (plus_size - line_thickness)/2 * down;
+ z1 = z0 + sign * 1/2plus_size * right;
+ z2 = z0 + sign * 1/2plus_size * left;
+ x3 = xpart centre + sign * 1/2plus_size;
+ y3 = ypart centre + 2/3plus_size;
+ z4 = 4/5[z2,z3];
+ z5 = z4l + whatever * (z2 - z4);
+ z5 = z1r + whatever * right;
+ z6 = z4r + whatever * (z2 - z4);
+ z6 = z1r + whatever * right;
+ z7 = z1l + whatever * right;
+ z7 = z6 + whatever * dir (90 + sign * 17);
+ z8 = 2/3[z2,z1];
+ z9 = z2 + sign * ((z8 - z2) rotated angle (z3 - z2));
+
+ penpos1(line_thickness, 90);
+ penpos4(line_thickness, angle(z3 - z2) + sign * 90);
+ penpos8(line_thickness, 90 - sign * 90);
+ penpos9(line_thickness, angle(z3 - z2));
+
+ fill z1r -- z5 -- z4l -- z4r -- z6 -- z7 -- z1l -- cycle;
+ fill stroke z8.e{up} .. {dir (angle (z3 - z2) + sign * 90)}z9.e;
+
+ penlabels(1,2,3,4,5,6,7,8,9);
+ endchar;
+endfor;
+
+for alpha = 0, 90, 180, 270:
+ beginoperator(plus_size#, 1); "spherical angle (" & decimal alpha & ")";
+ draw_less(a, centre - 1/2plus_size * dir alpha, centre + 1/2plus_size * dir alpha, 2radius, line_thickness, false);
+ z3 = 2/3[z2a, z0a];
+ z4 = 2/3[z2a, z1a];
+
+ penpos3(line_thickness, alpha + 35);
+ penpos4(line_thickness, alpha - 35);
+
+ fill stroke z4.e{dir (alpha + 55)} .. {dir (alpha + 125)}z3.e;
+
+ penlabels(3,4);
+ endchar;
+endfor;
+
+beginoperator(plus_size#, 1); "right angle";
+ z3 - z0 = z2 - z1 = 2radius * right;
+ z0 - z1 = 2radius * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, true);
+endchar;
+
+beginoperator(plus_size#, 1); "measured right angle";
+ thick := line_thickness;
+
+ z3 - z0 = z2 - z1 = 2radius * right;
+ z0 - z1 = 2radius * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+ z4 = 3/5[z1,z0] + (1/2thick - eps) * right;
+ z5 = 3/5[z1,z2] + (1/2thick - eps) * up;
+
+ penpos4(thick, 90);
+ penpos5(thick, 0);
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, true);
+ fill stroke z4.e{right} .. {down}z5.e;
+
+ penlabels(0,1,2,3,4,5);
+endchar;
+
+beginoperator(plus_size#, 1); "squared right angle";
+ z3 - z0 = z2 - z1 = 2radius * right;
+ z0 - z1 = 2radius * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+ z4 = 1/2[z1,z0];
+ z5 = 1/2[z1,z2];
+
+ penpos4(line_thickness, 90);
+ penpos5(line_thickness, 0);
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, true);
+ draw_line(z4, centre, true);
+ draw_line(z5, centre, true);
+
+ penlabels(0,1,2,3,4,5);
+endchar;
+
+beginoperator(plus_size#, 1); "right angle with dot";
+ thick := line_thickness;
+
+ z3 - z0 = z2 - z1 = 2radius * right;
+ z0 - z1 = 2radius * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+ z4 = 3/5[z1,z0] + (1/2thick - eps) * right;
+ z5 = 3/5[z1,z2] + (1/2thick - eps) * up;
+ z6 = 1/4[z1,z3];
+
+ penpos4(line_thickness, 90);
+ penpos5(line_thickness, 0);
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, true);
+ fill stroke z4.e{right} .. {down}z5.e;
+ fill dot(z6, 1/2dot_size);
+
+ penlabels(0,1,2,3,4,5);
+endchar;
+
+beginsymbol(4u#, 4/5asc_height#, 0); "prime";
+ z0 = (w, h);
+ z1 = z0 + 2u * left;
+ z2 = (1u, 1/9h);
+ z3 = z2 + 4/3u * right;
+
+ fill z0 -- z1 -- z2 -- z3 -- cycle;
+endchar;
+
+beginsymbol(4u#, 4/5asc_height#, 0); "backprime";
+ z0 = (0, h);
+ z1 = z0 + 2u * right;
+ z2 = (w - 1u, 1/9h);
+ z3 = z2 + 4/3u * left;
+
+ fill z0 -- z1 -- z2 -- z3 -- cycle;
+endchar;
+
+for sign = 1, -1:
+ beginoperator(plus_size#, 1); "product";
+ draw_product(centre, plus_size, plus_size, sign, 4/3line_thickness);
+ endchar;
+endfor;
+
+beginsymbol(2/5asc_height# + 2side_bearing#, asc_height#, 0); "small integral";
+ pair centre;
+ centre := (w/2, (h - d)/2);
+
+ draw_integral(a, 1/2, centre, 4/3line_thickness);
+endchar;
+
+beginsymbol(13u# + 2side_bearing#, asc_height#, 0); "check mark";
+ x1l = side_bearing;
+ y1 = math_axis;
+ x2 = side_bearing + 3u;
+ y2 = -d;
+ x3 = w -x2;
+ y3 = h;
+ x4r = w - side_bearing;
+ y4l = h;
+ z5r = 1/10[z4r,z1r];
+
+ theta := angle(z3 - z2);
+
+ penpos1(4/3thick, 30);
+ penpos2(thick, 0);
+ penpos3(thick, -90 + theta);
+ penpos4(1/3thick, -80);
+ penpos5(thick, -50);
+
+ z6 = z1r + whatever * (z2l - z1l);
+ z6 = z3l + whatever * (z3r - z2r);
+
+ fill z1l -- z2l -- z2r{z3r - z2r} .. {dir 40}z5r .. z4r -- z4l{dir 180} ... z5l{dir 220} .. {z2l - z3l}z6 -- z1r -- cycle;
+
+ penlabels(1,2,3,4,5,6);
+endchar;
+
+beginsymbol(7u# + 2side_bearing#, 5/4asc_height#, 1/8asc_height#); "lightning";
+ thick := line_thickness;
+
+ x3r = w - side_bearing;
+ x2l = side_bearing + u;
+ x4 = 1/3w;
+ y1l = h;
+ y3r = 14/24h;
+ y4 = -d + 1/2thick;
+ z6 - z5 = whatever * dir 15;
+
+ penpos1(3/2thick, -20);
+ penpos2(3/2thick, 15);
+ penpos3(2thick, 15);
+ penpos4(thick, -20);
+ penpos5(thick, -75);
+ penpos6(thick, -75);
+
+ z1 - z2 = whatever * (z4 - z3);
+ z5r = z2;
+ z6l = z3;
+ z7 = whatever[z1r,z2r];
+ z7 = whatever[z5l,z6l];
+ z8 = whatever[z4l,z3l];
+ z8 = whatever[z6r,z5r];
+
+ fill z1l -- z2l -- z8 -- z4l -- z4r -- z3r -- z7 -- z1r -- cycle;
+ draw_arrowhead(z4, angle (z4l - z3l), 4/5arrow_spread, thick);
+
+ penlabels(1,2,3,4,7,8);
+endchar;
+
+for filled = false, true:
+ beginsymbol(13u#, cap_height#, 0); "diamond suit";
+ thick := line_thickness;
+ bend := 5;
+
+ x0 = x2 = x4 = x6 = w/2;
+ 1/2[y0,y2] = 1/2[y4,y6] = h/2;
+ y2 - y0 = h;
+ 1/2[x1,x3] = 1/2[x5,x7] = w/2;
+ x3 - x1 = w - 2side_bearing;
+ y1 = y3 = y5 = y7 = h/2;
+
+ theta := angle(z2 - z1);
+
+ y6 - y4 = h - 2thick / cosd theta;
+ x7 - x5 = w - 2side_bearing - 2thick / sind theta;
+
+ fill z0{dir (180-theta-bend)} .. {dir (180-theta+bend)}z1{dir (theta-bend)} .. {dir (theta+bend)}z2{dir (-theta-bend)} .. {dir (-theta+bend)}z3{dir (180+theta-bend)} .. {dir (180+theta+bend)}z0 & cycle;
+ if not filled:
+ unfill z4{dir (180-theta-bend)} .. {dir (180-theta+bend)}z5{dir (theta-bend)} .. {dir (theta+bend)}z6{dir (-theta-bend)} .. {dir (-theta+bend)}z7{dir (180+theta-bend)} .. {dir (180+theta+bend)}z4 & cycle;
+ fi;
+ labels(0,1,2,3,4,5,6,7);
+ endchar;
+endfor;
+
+for filled = false, true:
+ beginsymbol(14u#, cap_height#, 0); "heart suit";
+ thick := line_thickness;
+
+ x0 = x1l = x1'l = w/2;
+ y0 = 0;
+ 1/2[x2l,x3l] = w/2;
+ x3l - x2l = w - 2side_bearing;
+ y1r = y1'r;
+ y2l = y3l = 3/4h;
+ x4 = 1/2[x1,x2];
+ x5 = 1/2[x1',x3];
+ y4l = y5l = h;
+ h - y2 = 2(h - y1l);
+
+ penpos1(thick, 180+45);
+ penpos1'(thick, -45);
+ penpos2(thick, 0);
+ penpos3(thick, 180);
+ penpos4(thick, -90);
+ penpos5(thick, -90);
+
+ path p[];
+ numeric t[];
+
+ z6 = z1r + whatever * dir (270+45);
+ z6 = z1'r + whatever * dir (270-45);
+ z7 = z0 + thick * dir 20;
+ z8 = z0 + thick * dir (180-20);
+ p1 = z7{dir (90+35)} .. {dir 90}z2r;
+ p2 = z3r{dir 270} .. {dir (270-35)}z8;
+ (t1,t2) = p1 intersectiontimes p2;
+
+ fill z0{dir (90+35)} .. {dir 90}z2l .. {dir 0}z4l .. {dir (270+45)}z1l{dir (90-45)} .. {dir 0}z5l .. {dir 270}z3l .. {dir (270-35)}z0 & cycle;
+ if not filled:
+ unfill subpath (t1,1) of p1 & z2r{dir 90} .. {dir 0}z4r .. {dir (270+45)}z1r -- z6 -- z1'r{dir (90-45)} .. {dir 0}z5r .. {dir 270}z3r & subpath (0,t2) of p2 -- cycle;
+ fi;
+
+ penlabels(0,1,1',2,3,4,5,6,7,8);
+ endchar;
+endfor;
+
+beginsymbol(13u#, cap_height#, 0); "spade suit";
+ x0 = x1 = w/2;
+ y0 = h;
+ 1/2[x2,x3] = w/2;
+ x3 - x2 = w - 2side_bearing;
+ y2 = y3;
+ x4 = 1/2[x1,x2];
+ x5 = 1/2[x1,x3];
+ y4 = y5 = 1/6h;
+ y2 - y4 = x4 - x2;
+ y1 = 3/5[y2,y4];
+ x6 = x0;
+ y6 = 0;
+
+ penpos1(2u, 0);
+ penpos6(3u, 0);
+
+ fill z0{dir (270-30)} .. z2 .. z4 .. {dir (90-30)}z1l
+ -- z1r{dir (270+30)} .. z5 .. z3 .. {dir (90+30)}z0 -- cycle;
+ fill stroke z1e -- z6e;
+
+ penlabels(0,1,2,3,4,5,6);
+endchar;
+
+beginsymbol(14u#, cap_height#, 0); "club suit";
+ r := 1/4(w - 2side_bearing);
+
+ x0 = w/2;
+ y0 = h - 2.5r;
+ x1 = w - x3 = side_bearing + r;
+ y1 = y3 = y0;
+ x2 = x4 = x0;
+ y2 = h - r;
+ y4 = 0;
+
+ penpos0(3/2u, 0);
+ penpos2(3/2u, 0);
+ penpos4(3u, 0);
+
+ fill circle(z1, r);
+ fill circle(z2, r);
+ fill circle(z3, r);
+ fill stroke z2e -- z0e -- z4e;
+
+ penlabels(0,1,2,3,4);
+endchar;
+
+beginoperator(med_op_size#, 1); "maltese";
+ r := 1/2med_op_size;
+ thick := line_thickness;
+
+ 1/2[z0,z1] = centre + r * left;
+ 1/2[z2,z3] = centre + r * down;
+ 1/2[z4,z5] = centre + r * right;
+ 1/2[z6,z7] = centre + r * up;
+ z0 - z1 = z5 - z4 = r * up;
+ z3 - z2 = z6 - z7 = r * right;
+ 1/2[z8,z9] = centre + 1/2thick * up;
+ 1/2[z10,z11] = centre - 1/2thick * up;
+ z9 - z8 = z11 - z10 = 2thick * right;
+ 1/2[z12,z13] = centre + thick * up;
+ 1/2[z14,z15] = centre - thick * up;
+ z13 - z12 = z15 - z14 = thick * right;
+
+ fill z0 -- z1 -- z10 -- z11 -- z4 -- z5 -- z9 -- z8 -- cycle;
+ fill z6 -- z7 -- z12 -- z14 -- z2 -- z3 -- z15 -- z13 -- cycle;
+
+ labels(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15);
+endchar;
+
+beginoperator(med_op_size#, 2/sqrt(3)); "star of david";
+ r := med_op_size/sqrt(3);
+
+ reg_poly_points(a)(6, centre, r, 90);
+
+ s := r - 4/5line_thickness / sind (270 - angle (z.a2 - z.a0));
+
+ reg_poly_points(b)(6, centre, s, 90);
+
+ z0.r = z.a0; z0.l = z.b0;
+ z1.r = z.a2; z1.l = z.b2;
+ z2.r = z.a4; z2.l = z.b4;
+ z3.r = z.a1; z3.l = z.b1;
+ z4.r = z.a3; z4.l = z.b3;
+ z5.r = z.a5; z5.l = z.b5;
+
+ fill stroke z0.e -- z1.e -- z2.e -- cycle;
+ fill stroke z4.e -- z5.e -- z3.e -- cycle;
+
+ penlabels(0,1,2,3,4,5);
+endchar;
+
+beginoperator(plus_size#, 1); "sector";
+ thick := line_thickness;
+ alpha := 90;
+
+ z0 = centre - 1/2plus_size * dir alpha;
+ z1 = z0 + 9/10plus_size * dir alpha;
+
+ draw_less(a, z0, z1, 9/10plus_size, thick, false);
+
+ theta := angle(z0a - z2a) - alpha;
+
+ z0a - z4 = 1/2thick * dir (alpha + theta);
+ z1a - z5 = 1/2thick * dir (alpha - theta);
+
+ penpos4(thick, alpha + theta);
+ penpos5(thick, alpha - theta);
+
+ fill stroke z4.e{dir (alpha + theta - 90)} .. {dir(alpha - theta - 90)}z5.e;
+endchar;
+
+beginsymbol(5/4order_width# + 2side_bearing#, cap_height#, 0); "forall";
+ thick := 5/4line_thickness;
+
+ x0 = side_bearing + 1/2thick;
+ x1 = w - side_bearing - 1/2thick;
+ x2 = w/2 - 1/4thick;
+ x3 = w/2 + 1/4thick;
+ y0 = y1 = h;
+ y2 = y3 = 0;
+
+ penpos0(thick * cosd(angle(z2 - z0) + 90), 0);
+ penpos1(thick * cosd(angle(z2 - z0) + 90), 0);
+
+ z4 = z0l + whatever * (z2 - z0) = z2 + whatever * right;
+ z5 = z1r + whatever * (z3 - z1) = z2 + whatever * right;
+ z6 = z0r + whatever * (z2 - z0) = z1l + whatever * (z3 - z1);
+ z7 = whatever [z0,z2];
+ z8 = whatever [z1,z2];
+ y7 = y8 = 0.6 * y0;
+
+ fill z0l -- z4 -- z5 -- z1r -- z1l -- z6 -- z0r -- cycle;
+ draw_line(z7, z8, false);
+
+ penlabels(0,1,2,3,4,5,6,7,8);
+endchar;
+
+for negated = 0, 1:
+ beginsymbol(order_width# + 2side_bearing#, if negated = 0: cap_height# else: cap_height# + 2/3equal_spread# fi, if negated = 0: 0 else: 2/3equal_spread# fi); "exists";
+ thick := 5/4line_thickness;
+
+ x1 = x3 = w - side_bearing - thick/2;
+ y1 = cap_height;
+ y3 = 0;
+ x1' = x3' = w - side_bearing;
+ x0 = x2 = side_bearing;
+ y0 = y1' = cap_height - line_thickness/2;
+ y2 = y3' = line_thickness/2;
+ z4 = 1/8[1/2[z0,z2], 1/2[z1,z3]];
+
+ draw_straight(z1, z3, thick, false);
+ draw_line(z0, z1', false);
+ draw_line(z4, 1/2[z1,z3], false);
+ draw_line(z2, z3', false);
+
+ if negated = 1:
+ stroke_through(1/2[1/2[z0,z2], 1/2[z1,z3]], h + d - stroke_through_thickness)
+ fi;
+ endchar;
+endfor;
+
+beginsymbol(order_width# + 2side_bearing#, cap_height#, 0); "exists finitely many";
+ thick := 5/4line_thickness;
+
+ x1 = x3 = w - side_bearing - thick/2;
+ y1 = cap_height;
+ y3 = 0;
+ x3' = w - side_bearing;
+ x0 = x2 = side_bearing;
+ y0 = cap_height - line_thickness/2;
+ y2 = y3' = line_thickness/2;
+ z4 = 1/8[1/2[z0,z2], 1/2[z1,z3]];
+
+ draw_straight(z1, z3, thick, false);
+ draw_line(z4, 1/2[z1,z3], false);
+ draw_line(z2, z3', false);
+endchar;
+
+beginsymbol(5/4order_width# + 2side_bearing#, cap_height#, 0); "game quantifier";
+ thick := 5/4line_thickness;
+
+ x0 = x1 = 1/2order_width + side_bearing;
+ y0 = cap_height - 1/2thick;
+ y1 = 1/2line_thickness;
+ x2 = w - side_bearing - 1/2thick;
+ y2 = (h - d)/2;
+ x3r = x4r = side_bearing;
+ y3 = 5/6cap_height;
+ y4 = 1/6cap_height;
+
+ penpos0(thick, 90);
+ penpos1(thick, -90);
+ penpos2(thick, 0);
+ penpos3(thick, 125);
+ penpos4(thick, -125);
+
+ fill stroke z3.e .. z0.e .. z2.e{down} .. z1.e{left} .. z4.e;
+ draw_straight(z4r + 1/2thick * right, 2/5[z4r,z3r] + 1/2thick * right, thick, false);
+ draw_line(2/5[z4r,z3r], 2/5[z4r,z3r] + 1/2order_width * right, false);
+
+ penlabels(0,1,2,3,4);
+endchar;
+
+beginsymbol(7/8order_width# + 2side_bearing#, cap_height#, 0); "complement";
+ thick := 5/4line_thickness;
+
+ z0 - z1 = (cap_height - thick) * up;
+ z3 - z2 = (w - 2side_bearing - thick) * right;
+ 1/2[z0,z1] = 1/2[z2,z3] = (w/2,(h-d)/2);
+ x4 = x6 = x2;
+ x5 = x7 = x3;
+ y4 = y5 = 1/4[y0,y1];
+ y6 = y7 = 3/4[y0,y1];
+
+ penpos0(thick, 90);
+ penpos1(thick, -90);
+ penpos4(thick, -180);
+ penpos5(thick, 0);
+ penpos6(thick, -180);
+ penpos7(thick, 0);
+
+ fill stroke z5.e{up} .. z0.e .. {down}z4.e -- z6.e{down} .. z1.e .. {up}z7.e;
+
+ penlabels(0,1,2,3,4,5,6,7);
+endchar;
+
+beginsymbol(6u# + 2side_bearing#, asc_height#, 1/2line_thickness#); "flat";
+ thick := line_thickness;
+
+ x0l = x1l = side_bearing;
+ x4l = x5 = side_bearing + thick;
+ y0 = -d;
+ y1 = h;
+ x2r = w - side_bearing;
+ x3 = w/2;
+ y3r = x_height;
+ y2 = 1/2[y0,y1];
+ y4r = 5/6x_height;
+ y5 = thick * (1 + sind 35) / cosd 35 - d;
+
+ penpos0(thick, 0);
+ penpos1(thick, 0);
+ penpos2(3/2thick, 0);
+ penpos3(thick, 90);
+ penpos4(thick, 130);
+
+ fill z1.l -- z0.l{dir 35} ... {up}z2.r .. {left}z3.r ..{dir 230}z4.r -- z4.l{dir 50} .. {right}z3.l .. {down}z2.l .. {dir 215}z5 -- z1.r -- cycle;
+
+ penlabels (0,1,2,3,4,5);
+endchar;
+
+beginsymbol(6u# + 2side_bearing#, asc_height#, desc_depth#); "natural";
+ thick := line_thickness;
+
+ x0l = x1l = w - x2r = w - x3r = side_bearing;
+ x4 = x5 = w - x6 = w - x7 = side_bearing;
+ y1 = y3 = h;
+ y7r = x_height;
+ y4l = 0;
+ y0 = y2 = -d;
+ z6 = z4 + whatever * dir 15;
+ z5 = z7 + whatever * dir 15;
+
+ penpos0(thick, 0);
+ penpos1(thick, 0);
+ penpos2(thick, 0);
+ penpos3(thick, 0);
+ penpos4(3/2thick, 90);
+ penpos5(3/2thick, 90);
+ penpos6(3/2thick, 90);
+ penpos7(3/2thick, 90);
+
+ z8 = whatever[z0,z1] = whatever[z4,z6];
+ z9 = whatever[z2,z3] = whatever[z5,z7];
+
+ penpos8(thick, 0);
+ penpos9(thick, 0);
+
+ fill stroke z1e -- z8e;
+ fill stroke z9e -- z2e;
+ fill stroke z4e -- z6e;
+ fill stroke z5e -- z7e;
+
+ penlabels(1,2,4,5,6,7);
+endchar;
+
+beginsymbol(6u# + 2side_bearing#, asc_height#, desc_depth#); "sharp";
+ thick := line_thickness;
+
+ x0l = x1l = w - x2r = w - x3r = side_bearing + u;
+ x4 = x5 = w - x6 = w - x7 = side_bearing;
+ y3 = h;
+ y7r = x_height;
+ y4l = 0;
+ y0 = -d;
+ z2 = z0 + whatever * dir 20;
+ z1 = z3 + whatever * dir 20;
+ z6 = z4 + whatever * dir 15;
+ z5 = z7 + whatever * dir 15;
+
+ penpos0(thick, 0);
+ penpos1(thick, 0);
+ penpos2(thick, 0);
+ penpos3(thick, 0);
+ penpos4(3/2thick, 90);
+ penpos5(3/2thick, 90);
+ penpos6(3/2thick, 90);
+ penpos7(3/2thick, 90);
+
+ fill stroke z0e -- z1e;
+ fill stroke z2e -- z3e;
+ fill stroke z4e -- z6e;
+ fill stroke z5e -- z7e;
+
+ penlabels (0,1,2,3,4,5,6,7);
+endchar;
+
+beginsymbol(10u# + 2side_bearing#, cap_height#, 0); "aleph";
+ thick := line_thickness;
+
+ x0l = x2l = side_bearing;
+ x1r = x3r = w - side_bearing;
+ y0 = h;
+ y1 = h;
+ y2 = 0;
+ y3 = 0;
+
+ penpos0(3/2thick, 20);
+ penpos1(4/3thick, 2);
+ penpos2(3/2thick, 0);
+ penpos3(4/3thick, 20);
+
+ path p;
+ p = z0{dir -70} .. {dir -70}z3;
+
+ z4 = point 3/10 of p;
+ z5 = point 5/8 of p;
+
+ penpos4(5/4thick, -40);
+ penpos5(5/4thick, -45);
+
+ fill stroke z0.e{dir -70} .. {dir -70}z3.e;
+ fill stroke z2.e{up} .. {dir 50}z4.e;
+ fill stroke z5.e{dir 45} .. {up}z1.e;
+
+ penlabels(0,1,2,3,4,5);
+endchar;
+
+beginsymbol(10u# + 2side_bearing#, cap_height#, 0); "beth";
+ thick := line_thickness;
+
+ x0 = u + side_bearing;
+ x1 = 5/8[x2,x4];
+ x2 = side_bearing;
+ x3 = w - side_bearing;
+ y0r = h;
+ y1r = h;
+ y2l = 0;
+ y3l = 0;
+ z4r = 7/8[z2,z3];
+ x5 = x4;
+ y5 = 2/3h;
+
+ penpos0(3/2thick, 75);
+ penpos1(3/2thick * sind 75, 90);
+ penpos2(3/2thick, 75);
+ penpos3(3/2thick, 75);
+ penpos4(5/4thick, 0);
+ penpos5(5/4thick, 0);
+
+ fill stroke z2.e -- z3.e;
+ fill stroke z0.e -- z1.e{right} ..tension3/4.. {down}z5.e -- z4.e;
+
+ penlabels(0,1,2,3,4,5);
+endchar;
+
+beginsymbol(7u# + 2side_bearing#, cap_height#, 0); "gimel";
+ thick := line_thickness;
+
+ x0 = x2 = side_bearing;
+ x2'r = 1/8[x0,x1];
+ x1 = x3r = w - side_bearing;
+ x4 = 1/4[x0,x1];
+ x5 = 1/2[x0,x1];
+ x6 = 2/3[x0,x1];
+ y0 = y1 = h;
+ y2l = y3 = 0;
+ y2' = y2;
+ y4r = h + 1/4thick;
+ z5 = z4 + whatever * dir -30;
+ y6 = 2/3h;
+
+ penpos2(3/2thick, 80);
+ penpos2'(3/2thick * sind 80, 90);
+ penpos3(4/3thick, 0);
+ penpos4(3/2thick, 60);
+ penpos5(3/2thick, 60);
+ penpos6(5/4thick, 0);
+
+ path p;
+ p = z6{dir -82} .. {dir -67}z3;
+ z7 = point 1/4 of p;
+ x8 = 2/5[x0,x1];
+ z7 = z8 + whatever * dir 60;
+
+ penpos7(thick, 150);
+ penpos8(thick, 150);
+
+ fill stroke z4.e -- z5.e{dir -30} .. {dir -82}z6.e .. {dir -67}z3.e;
+ fill stroke z2.e -- z2'.e{right} ..tension 3/4 and 1.. {dir 60}z8.e -- z7.e;
+
+ penlabels(2,3,4,5,6,7,8);
+endchar;
+
+beginsymbol(9u# + 2side_bearing#, cap_height#, 0); "daleth";
+ thick := line_thickness;
+
+ x0 = side_bearing;
+ x1 = w - side_bearing;
+ y0r = y1r = h;
+ x3r = x2r = 4/5[x0,x1];
+ y2 = y0;
+ y3 = 0;
+
+ penpos0(3/2thick, 75);
+ penpos1(3/2thick, 75);
+ penpos2(5/4thick, 0);
+ penpos3(5/4thick, 0);
+
+ fill stroke z0.e -- z1.e;
+ fill stroke z2.e -- z3.e;
+
+ penlabels(0,1,2,3);
+endchar;
+
+begingroup;
+save slant;
+save currenttransform;
+slant := 0.212557;
+transform currenttransform;
+currenttransform := identity slanted slant yscaled aspect_ratio scaled granularity shifted (-u,0);
+
+beginsymbol(11u#, x_height#, desc_depth#); "Weierstrass p";
+ numeric theta;
+ theta = 90 - angle(8u,h);
+ slope := -h/8u; % angle at middle
+ superness := 1/sqrt 2;
+ superpull := 1/6;
+
+ penpos2(line_thickness, -60);
+ penpos1(4/3line_thickness, theta);
+ penpos7(line_thickness, -90);
+
+ x2 + 1/2u = x1 = x7 - 1/2u = 3u;
+ y2l = h;
+ y7r = -d;
+ y1 = 2/5[-d, h];
+ x3l = .5u;
+ x6r = max(rt x7 + .5, .5w - .25u);
+ x3r - x3l = x6r - x6l = 5/4line_thickness;
+
+ ellipse_set(2l,3l,4l,1l);
+ ellipse_set(2r,3r,4r,1r);
+ ellipse_set(7l,6l,5l,1l);
+ ellipse_set(7r,6r,5r,1r);
+
+ y3 = y3r;
+ y6 = y6r;
+
+ fill stroke super_arc.e(2,3) & z3e{down} .. z4e --- z5e .. z6e{down} & super_arc.e(6,7); % flourish
+
+ penpos8(line_thickness, 180);
+ penpos9(line_thickness, 90);
+ penpos10(3/2line_thickness, 0);
+ penpos11(line_thickness, -90);
+ penpos12(line_thickness, -100);
+
+ x10r = w - 1.5u + 1/2line_thickness;
+ x8l = 2.25u;
+ x9 = x11 = .5w + 1.5u;
+ x12l = max(x6r, .5w + .5u);
+ y8 = y11r = 0;
+ top y9r = .95h;
+ y10 = .5[y9,y11];
+ y12r = 1/4[y11r,y1l];
+
+ fill stroke z7e{left} ... z8e{up} ... pulled_arc.e(9,10) & pulled_arc.e(10,11) .. z12.e; % stem and bowl
+
+ penlabels(1,2,3,4,5,6,7,8,9,10,11,12);
+endchar;
+endgroup;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdoperators.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdoperators.mf
new file mode 100644
index 00000000000..627b8265531
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdoperators.mf
@@ -0,0 +1,480 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+for scale = 1, 1.4:
+ beginsquarebigop(scale, scale); "big plus";
+ draw_line(centre + op_height/2 * right, centre + op_height/2 * left, false);
+ draw_line(centre + op_height/2 * up, centre + op_height/2 * down, false);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for scale = 1, 1.4:
+ beginsquarebigop(scale, scale); "big times";
+ z1 - z0 = z3 - z2 = (op_width - line_thickness / sqrt(2)) * right;
+ z2 - z0 = (op_width - line_thickness / sqrt(2)) * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z0, z3, false);
+ draw_line(z1, z2, false);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big wedge";
+ draw_less(a, centre + sign * op_height/2 * up, centre - sign * op_height/2 * up, op_width - line_thickness, line_thickness, false);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big wedge dot";
+ draw_less(a, centre + sign * op_height/2 * up, centre - sign * op_height/2 * up, op_width - line_thickness, line_thickness, false);
+ fill dot(centre - sign * 1/4op_height * up, dot_size);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(4/3scale, scale); "double big wedge";
+ z0 = centre - 1/8op_width * right;
+ z1 = centre + 1/8op_width * right;
+
+ draw_less(a, z0 + sign * op_height/2 * up, z0 - sign * op_height/2 * up, 3/4op_width - line_thickness, line_thickness, false);
+ draw_less(b, z1 + sign * op_height/2 * up, z1 - sign * op_height/2 * up, 3/4op_width - line_thickness, line_thickness, false);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big curly wedge";
+ draw_prec(a, centre + sign * op_height/2 * up, centre - sign * op_height/2 * up, op_width - line_thickness, line_thickness, false);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big curly wedge dot";
+ draw_prec(a, centre + sign * op_height/2 * up, centre - sign * op_height/2 * up, op_width - line_thickness, line_thickness, false);
+ fill dot(centre - sign * 3/8op_height * up, dot_size);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(4/3scale, scale); "double big curly wedge";
+ z0 = centre - 1/8op_width * right;
+ z1 = centre + 1/8op_width * right;
+
+ draw_prec(a, z0 + sign * op_height/2 * up, z0 - sign * op_height/2 * up, 3/4op_width - line_thickness, line_thickness, false);
+ draw_prec(b, z1 + sign * op_height/2 * up, z1 - sign * op_height/2 * up, 3/4op_width - line_thickness, line_thickness, false);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big union";
+ draw_subset(a, centre + sign * op_height/2 * up,
+ centre - sign * op_height/2 * up,
+ op_width - line_thickness, line_thickness);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big union dot";
+ draw_subset(a, centre + sign * op_height/2 * up,
+ centre - sign * op_height/2 * up,
+ op_width - line_thickness, line_thickness);
+ fill dot(centre - sign * 1/8op_height * up, dot_size);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big union plus";
+ draw_subset(a, centre + sign * op_height/2 * up,
+ centre - sign * op_height/2 * up,
+ op_width - line_thickness, line_thickness);
+
+ r := 1/4op_width;
+
+ draw_line(centre - sign * 1/8op_width * up + r * right, centre - sign * 1/8op_width * up + r * left, false);
+ draw_line(centre + (r - sign * 1/8op_width) * up, centre + (r + sign * 1/8op_width) * down, false);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big square union";
+ z3 - z0 = z2 - z1 = (op_width - line_thickness) * right;
+ z1 - z0 = sign * (op_height - line_thickness) * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, true);
+ draw_line(z2, z3, true);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big square union dot";
+ z3 - z0 = z2 - z1 = (op_width - line_thickness) * right;
+ z1 - z0 = sign * (op_height - line_thickness) * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, true);
+ draw_line(z2, z3, true);
+ fill dot(centre - sign * 1/8op_height * up, dot_size);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(scale, scale); "big square union plus";
+ z3 - z0 = z2 - z1 = (op_width - line_thickness) * right;
+ z1 - z0 = sign * (op_height - line_thickness) * up;
+ 1/2[1/2[z0,z1], 1/2[z2,z3]] = centre;
+
+ draw_line(z0, z1, true);
+ draw_line(z1, z2, true);
+ draw_line(z2, z3, true);
+
+ r := 1/4op_width;
+
+ draw_line(centre - sign * 1/8op_width * up + r * right, centre - sign * 1/8op_width * up + r * left, false);
+ draw_line(centre + (r - sign * 1/8op_width) * up, centre + (r + sign * 1/8op_width) * down, false);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for alpha = 0, 45:
+ for scale = 1, 1.4:
+ beginsquarebigop(scale, scale); "big circle plus";
+ r := (op_height - line_thickness)/2;
+
+ draw_circle(centre, r, line_thickness);
+ draw_line(centre - r * dir alpha, centre + r * dir alpha, false);
+ draw_line(centre - r * dir (alpha + 90), centre + r * dir (alpha + 90), false);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for scale = 1, 1.4:
+ beginsquarebigop(scale, scale); "big circle dot";
+ draw_circle(centre, (op_height - line_thickness)/2, line_thickness);
+ fill dot(centre, dot_size);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for scale = 1, 1.4:
+ beginsquarebigop(scale, scale); "big circle asterisk";
+ thick := line_thickness;
+ r := (op_height - line_thickness)/2;
+
+ draw_circle(centre, r, line_thickness);
+
+ penpos a0(4/3thick, 0);
+ penpos a1(4/3thick, 60);
+ penpos a2(4/3thick, 120);
+ penpos a3(4/3thick, 180);
+ penpos a4(4/3thick, 240);
+ penpos a5(4/3thick, 300);
+
+ penpos b0(thick, 0);
+ penpos b1(thick, 60);
+ penpos b2(thick, 120);
+ penpos b3(thick, 180);
+ penpos b4(thick, 240);
+ penpos b5(thick, 300);
+
+ reg_poly_points(a)(6, centre, r, 90);
+
+ z.b0 = z.b1 = z.b2 = z.b3 = z.b4 = z.b5 = centre;
+
+ fill stroke z.a0e -- z.b0e;
+ fill stroke z.a1e -- z.b1e;
+ fill stroke z.a2e -- z.b2e;
+ fill stroke z.a3e -- z.b3e;
+ fill stroke z.a4e -- z.b4e;
+ fill stroke z.a5e -- z.b5e;
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for sign = 1, -1:
+ for scale = 1, 1.4:
+ beginbigop(1.3scale, scale); "product";
+ draw_product(centre, op_width, op_height, sign, 5/3line_thickness * sqrt sqrt scale);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for scale = 1, 1.4:
+ beginbigop(scale, scale); "sum";
+ draw_sum(a)(centre, op_width, op_height, 5/3line_thickness * sqrt sqrt scale);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for scale = 1, 1.4:
+ beginbigop(scale, scale); "sum modulo two";
+ draw_sum(a)(centre, op_width, op_height, 5/3line_thickness * sqrt sqrt scale);
+ draw_circle(z13a, sqrt scale * 1/4op_width, line_thickness * sqrt sqrt scale);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for number = 0, 1, 2, 3:
+ for scale = 1, 1.8:
+ beginsymbol(scale * (5number + 4) * u# + (sqrt scale) * 3/4line_thickness# + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "integral";
+ italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit
+
+ pair centre;
+
+ for i = 0 upto number:
+ centre := (side_bearing + scale * (5i + 7/2) * u, (h - d)/2);
+
+ draw_integral([i])(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+ endfor;
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for scale = 1, 1.8:
+ beginsymbol(scale * 9u# + 4(equal_spread# + dot_size#) + (sqrt scale) * 3/4line_thickness# + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "integral dots";
+ italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit
+
+ pair centre;
+ centre := (side_bearing + scale * 7/2u, (h - d)/2);
+
+ draw_integral([0])(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+
+ centre := (side_bearing + scale * 6u + 4(equal_spread + dot_size), (h - d)/2);
+
+ draw_integral([1])(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+
+ z0 = 1/4[z0[0],z0[1]];
+ z1 = 2/4[z0[0],z0[1]];
+ z2 = 3/4[z0[0],z0[1]];
+
+ fill dot(z0, dot_size);
+ fill dot(z1, dot_size);
+ fill dot(z2, dot_size);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for sign = 1, -1:
+ for scale = 1, 1.8:
+ beginsymbol(scale * 6u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "oriented integral";
+ if scale > 1:
+ italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit
+ fi
+
+ pair centre;
+ centre := (side_bearing + scale * 9/2u, (h - d)/2);
+
+ draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+
+ thick := line_thickness * sqrt sqrt scale;
+ r := 4u;
+
+ penpos0(thick, 135);
+ penpos1(thick, 90);
+ penpos2(thick, 45);
+
+ z0 = z0a + sign * scale * (-r, -1/4r);
+ z1 = z0a + sign * scale * (0, 1/4r);
+ z2 = z0a + sign * scale * (r, -1/4r);
+
+ fill stroke z0.e .. z1.e .. z2.e;
+ if sign > 0:
+ draw_arrowhead(z2, -40, 2/3scale * arrow_spread, 5/6thick);
+ else:
+ draw_arrowhead(z0, 40, 2/3scale * arrow_spread, 5/6thick);
+ fi
+
+ penlabels(0,1,2);
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for scale = 1, 1.8:
+ beginsymbol(scale * 4u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "integral with horizontal bar";
+ if scale > 1:
+ italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit
+ fi
+
+ pair centre;
+ centre := (side_bearing + scale * 7/2u, (h - d)/2);
+
+ draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+
+ r := scale * 5/2u;
+ thick := line_thickness * sqrt sqrt scale;
+
+ draw_straight(z0a + r * left, z0a + r * right, thick, true);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for scale = 1, 1.8:
+ beginsymbol(scale * 4u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "integral with double horizontal bar";
+ if scale > 1:
+ italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit
+ fi
+
+ pair centre;
+ centre := (side_bearing + scale * 7/2u, (h - d)/2);
+
+ draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+
+ z1 - z0 = equal_spread * up;
+ 1/2[z0, z1] = z0a;
+
+ r := scale * 5/2u;
+ thick := line_thickness * sqrt sqrt scale;
+
+ draw_straight(z0 + r * left, z0 + r * right, thick, true);
+ draw_straight(z1 + r * left, z1 + r * right, thick, true);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for scale = 1, 1.8:
+ beginsymbol(scale * 4u# + (sqrt scale) * 3/4line_thickness# + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "stroked integral";
+ italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit
+
+ pair centre;
+ centre := (side_bearing + scale * 7/2u, (h - d)/2);
+
+ draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+
+ r := scale * 7/2u;
+ thick := line_thickness * sqrt sqrt scale;
+
+ draw_straight(z0a - r * dir 35, z0a + r * dir 35, thick, true);
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
+
+for number = 0, 1, 2:
+ for scale = 1, 1.8:
+ beginsymbol(scale * (5number + 5) * u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "contour integral";
+ if scale > 1:
+ italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit
+ fi
+
+ pair centre;
+
+ centre := (side_bearing + scale * (5number/2 + 4) * u, (h - d)/2);
+ thick := line_thickness * sqrt sqrt scale;
+ r := scale * 4u;
+ s := scale * (5number + 8)/2 * u;
+
+ if number = 0:
+ fill circle(centre, r);
+ unfill circle(centre, r - thick);
+ else:
+ fill superellipse(centre + s * dir 0, centre + r * dir 90, centre - s * dir 0, centre - r * dir 90, 3/4);
+ unfill superellipse(centre + (s - thick) * dir 0, centre + (r - thick) * dir 90, centre - (s - thick) * dir 0, centre - (r - thick) * dir 90, 3/4);
+ fi
+
+ % Integral must come after unfill when processed with MetaPost!
+ for i = 0 upto number:
+ centre := (side_bearing + scale * (5i + 4) * u, (h - d)/2);
+
+ draw_integral([i])(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+ endfor;
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+endfor;
+
+for alpha = 0, 180:
+ for sign = 1, -1:
+ for scale = 1, 1.8:
+ beginsymbol(scale * 6u# + if scale > 1: (sqrt scale) * 3/4line_thickness# else: scale * 3u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "oriented contour integral";
+ if scale > 1:
+ italcorr scale * 3u# - (sqrt scale) * 3/4line_thickness#; % kerning between upper limit and lower limit
+ fi
+
+ pair centre;
+ centre := (side_bearing + scale * (4u + if alpha > 90: u else: 0 fi), (h - d)/2);
+
+ draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+
+ thick := line_thickness * sqrt sqrt scale;
+ r := scale * 4u;
+
+ reg_poly_points(a)(8, z0a, r, alpha + 25);
+ reg_poly_points(b)(8, z0a, r - thick, alpha + 25);
+ z.a8 = z0a + r * dir alpha;
+ z.b8 = z0a + (r - thick) * dir alpha;
+
+ if sign > 0:
+ fill z.a0 .. z.a1 .. z.a2 .. z.a3 .. z.a4 .. z.a5 .. z.a6 .. z.a7 .. z.a8 -- z.b8 .. z.b7 .. z.b6 .. z.b5 .. z.b4 .. z.b3 .. z.b2 .. z.b1 .. z.b0 -- cycle;
+ draw_arrowhead(1/2[z.a8, z.b8], alpha + 75, 2/3scale * arrow_spread, 5/6thick);
+ else:
+ fill z.a8 .. z.a0 .. z.a1 .. z.a2 .. z.a3 .. z.a4 .. z.a5 .. z.a6 .. z.a7 -- z.b7 .. z.b6 .. z.b5 .. z.b4 .. z.b3 .. z.b2 .. z.b1 .. z.b0 .. z.b8 -- cycle;
+ draw_arrowhead(1/2[z.a8, z.b8], alpha - 75, 2/3scale * arrow_spread, 5/6thick);
+ fi
+ endchar;
+ endfor;
+ charlist current_char - 1: current_char;
+ endfor;
+endfor;
+
+for scale = 1, 1.8:
+ beginsymbol(scale * 13/2u# + if scale > 1: 0 else: scale * u# fi + 2side_bearing#, ((scale - 1)/2 + 1) * 1.6asc_height#, (scale - 1)/2 * 1.6asc_height#); "sum integral";
+ if scale > 1:
+ italcorr scale * u#; % kerning between upper limit and lower limit
+ fi
+
+ pair centre;
+ centre := (side_bearing + scale * 4u, (h - d)/2);
+
+ draw_integral(a)(scale, centre, 3/2line_thickness * sqrt sqrt scale);
+ draw_sum(b, 1/4[z0a.l,z0a.r], scale * 7u, scale * 3/4asc_height, line_thickness * sqrt sqrt scale);
+
+ endchar;
+endfor;
+charlist current_char - 1: current_char;
diff --git a/Master/texmf-dist/fonts/source/public/fdsymbol/fdrelations.mf b/Master/texmf-dist/fonts/source/public/fdsymbol/fdrelations.mf
new file mode 100644
index 00000000000..8dbcce80c92
--- /dev/null
+++ b/Master/texmf-dist/fonts/source/public/fdsymbol/fdrelations.mf
@@ -0,0 +1,1132 @@
+%
+% Copyright (c) 2011, Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This Font Software is licensed under the SIL Open Font License,
+% Version 1.1. This license is in the accompanying file OFL.txt, and
+% is also available with a FAQ at: http://scripts.sil.org/OFL
+%
+
+vardef ifneg(text values) =
+ select(negated)(values)
+enddef;
+
+% equal signs
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(1,5/2) * equal_spread#); "equal";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ if negated = 1:
+ stroke_through(centre, 5/2equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(2,7/2) * equal_spread#); "equiv";
+ s := equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex, right_ex, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ if negated = 1:
+ stroke_through(centre, 3.5equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1/2, 2) * equal_spread#); "sim";
+ draw_sim(a, left_ex, right_ex, 1/4equal_spread, line_thickness);
+
+ if negated = 1:
+ stroke_through(centre, 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(3/2, 5/2) * equal_spread#); "approx";
+ s := 1/2equal_spread;
+
+ draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness);
+ draw_sim(b, left_ex - s * up, right_ex - s * up, 1/4equal_spread, line_thickness);
+
+ if negated = 1:
+ stroke_through(centre, 5/2equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(5/2, 7/2) * equal_spread#); "triple sim";
+ s := equal_spread;
+
+ draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness);
+ draw_sim(b, left_ex, right_ex, 1/4equal_spread, line_thickness);
+ draw_sim(c, left_ex - s * up, right_ex - s * up, 1/4equal_spread, line_thickness);
+
+ if negated = 1:
+ stroke_through(centre, 7/2equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(3/2, 5/2) * equal_spread#); "sim equal";
+ s := 1/2equal_spread;
+
+ draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ if negated = 1:
+ stroke_through(centre, 5/2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(3/2, 5/2) * equal_spread#); "equal sim";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_sim(a, left_ex - s * up, right_ex - s * up, 1/4equal_spread, line_thickness);
+
+ if negated = 1:
+ stroke_through(centre, 5/2equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(5/2, 7/2, 6/2) * equal_spread#); "cong";
+ s := equal_spread;
+
+ draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness);
+ draw_line(left_ex, right_ex, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ if negated = 1:
+ stroke_through(centre, 7/2equal_spread);
+ elseif negated = 2:
+ if sign = 1:
+ stroke_through(centre - 5/8s * up, 7/4equal_spread);
+ else:
+ stroke_through(centre - 1/2s * up, 2equal_spread);
+ fi;
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(5/2, 7/2) * equal_spread#); "approx equal";
+ s := equal_spread;
+
+ draw_sim(a, left_ex + s * up, right_ex + s * up, 1/4equal_spread, line_thickness);
+ draw_sim(b, left_ex, right_ex, 1/4equal_spread, line_thickness);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ if negated = 1:
+ stroke_through(centre, 7/2equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(1,2) * equal_spread# + 2/5order_width#); "bump equal";
+ s := 1/2equal_spread;
+
+ draw_bump(a, 1, left_ex + s * up, right_ex + s * up, order_width/5, line_thickness);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ if negated = 1:
+ stroke_through(centre, 2equal_spread + 2/5order_width);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(2,3) * equal_spread# + 2/5order_width#); "bump over equal";
+ s := equal_spread;
+
+ draw_bump(a, 1, left_ex + s * up, right_ex + s * up, order_width/5, line_thickness);
+ draw_line(left_ex, right_ex, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ if negated = 1:
+ stroke_through(centre, 3equal_spread + 2/5order_width);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(1,2) * equal_spread# + 2/5order_width#); "double bump equal";
+ s := 1/2equal_spread;
+
+ draw_bump(a, 1, left_ex + s * up, right_ex + s * up, order_width/5, line_thickness);
+ draw_bump(b, -1, left_ex - s * up, right_ex - s * up, order_width/5, line_thickness);
+
+ if negated = 1:
+ stroke_through(centre, 2equal_spread + 2/5order_width);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(3,4) * equal_spread# + 3/4dot_size#); "dot equal";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+ fill dot(centre + 3s * up, 3/4dot_size);
+
+ if negated = 1:
+ stroke_through(centre, 4equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(3,4) * equal_spread# + 3/4dot_size#); "equal dot";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+ fill dot(centre - 3s * up, 3/4dot_size);
+
+ if negated = 1:
+ stroke_through(centre, 4equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(3,4) * equal_spread# + 3/4dot_size#); "dot equal dot";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+ fill dot(centre + 3s * up, 3/4dot_size);
+ fill dot(centre - 3s * up, 3/4dot_size);
+
+ if negated = 1:
+ stroke_through(centre, 4equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(3,4) * equal_spread# + 3/4dot_size#); "falling dot equal";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+ fill dot(left_ex + sign * 3/4dot_size * right + 3s * up, 3/4dot_size);
+ fill dot(right_ex - sign * 3/4dot_size * right - 3s * up, 3/4dot_size);
+
+ if negated = 1:
+ stroke_through(centre, 4equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(1, order_width#, ifneg(1/2, 2) * equal_spread#); "smile";
+ draw_smile(a, sign, left_ex, right_ex, 1/2equal_spread, line_thickness, true);
+
+ if negated = 1:
+ stroke_through(centre, 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(1, order_width#, ifneg(11/6, 17/6) * equal_spread#); "smile frown";
+ s := 2/3equal_spread;
+
+ draw_smile(a, sign, left_ex + s * up, right_ex + s * up, 1/2equal_spread, line_thickness, true);
+ draw_smile(b, -sign, left_ex - s * up, right_ex - s * up, 1/2equal_spread, line_thickness, true);
+
+ if negated = 1:
+ stroke_through(centre, 17/6equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(1, order_width#, ifneg(5/2, 7/2) * equal_spread#); "smile over equal";
+ s := 1equal_spread;
+
+ draw_smile(a, sign, left_ex + s * up, right_ex + s * up, 1/2equal_spread, line_thickness, true);
+ draw_line(left_ex, right_ex, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ if negated = 1:
+ stroke_through(centre, 7/2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(1, 5/2) * equal_spread#); "equal circ";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+ draw_circle(centre, 5/6s, 3/4line_thickness);
+
+ if negated = 1:
+ stroke_through(centre, 5/2equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, ifneg(9/2, 5) * equal_spread#); "circ equal";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+ draw_circle(centre + 7/2s * up, 5/6s, 3/4line_thickness);
+
+ if negated = 1:
+ stroke_through(centre + s * up, 4equal_spread);
+ fi;
+ endchar;
+fi;
+
+for sign = 1, -1:
+ if negated < 2:
+ beginorder(1, order_width#, 5equal_spread#); "wedge equal";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+
+ draw_less(a, centre + (7/2 + sign * 3/2) * s * up, centre + (7/2 - sign * 3/2) * s * up, 4s, line_thickness, false);
+
+ if negated = 1:
+ stroke_through(centre + s * up, 4equal_spread);
+ fi;
+ endchar;
+ fi;
+endfor;
+
+if negated < 2:
+ beginorder(1, order_width#, 5equal_spread#); "star equal";
+ s := 1/2equal_spread;
+ r := 5/4s + 3/4line_thickness;
+ t := 1/11r;
+
+ reg_poly_points(a)(5, centre + 7/2s * up, r, 90);
+ reg_poly_points(b)(5, centre + 7/2s * up, .4r, 126);
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+ %draw_triangle(a, centre + 7/2s * up, 3/2s, 90, 3/4line_thickness);
+
+ fill z.a0 -- z.b0 -- z.a1 -- z.b1 -- z.a2 -- z.b2 -- z.a3 -- z.b3 -- z.a4 -- z.b4 -- cycle;
+
+ if negated = 1:
+ stroke_through(centre + s * up, 4equal_spread);
+ fi;
+ endchar;
+fi;
+
+if negated < 2:
+ beginorder(1, order_width#, 5equal_spread#); "triangle equal";
+ s := 1/2equal_spread;
+
+ draw_line(left_ex + s * up, right_ex + s * up, false);
+ draw_line(left_ex - s * up, right_ex - s * up, false);
+ draw_triangle(a, centre + 7/2s * up, 3/2s, 90, 3/4line_thickness);
+
+ if negated = 1:
+ stroke_through(centre + s * up, 4equal_spread);
+ fi;
+ endchar;
+fi;
+
+% element signs
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "element";
+ draw_subset(a, left_ex, right_ex, greater_spread, line_thickness);
+ draw_line(z4a, 1/2[z0a,z1a], false);
+
+ if negated = 1:
+ stroke_through(centre, equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+% orderings
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0,1/2) * equal_spread# + greater_spread#); "less than";
+ draw_less(a, left_ex, right_ex, greater_spread, line_thickness, false);
+
+ if negated = 1:
+ stroke_through(centre, 1/2equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2/3,5/3,5/3) * equal_spread# + 3/4greater_spread#); "less than or equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 1/3equal_spread * up;
+
+ draw_less(a, z0, z1, s, line_thickness, false);
+ draw_line(z2, z3, false);
+
+ if negated = 1:
+ stroke_through(centre, 5/3equal_spread + 3/4greater_spread);
+ elseif negated = 2:
+ stroke_through(1/2[z2,z3], equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "less than or slanted equal";
+ s := 3/4greater_spread;
+ t := 1/2equal_spread;
+
+ draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false);
+
+ if sign = 1:
+ draw_line(z1a - 2t * up, z4a - 2t * up, false);
+ else:
+ draw_line(z0a - 2t * up, z3a - 2t * up, false);
+ fi;
+
+ if negated = 1:
+ stroke_through(centre, 3/2equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(5/3, 8/3, 8/3) * equal_spread# + 3/4greater_spread#); "less than or double equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 5/6equal_spread * up;
+ z2 - z4 = z3 - z5 = equal_spread * up;
+
+ draw_less(a, z0, z1, s, line_thickness, false);
+ draw_line(z2, z3, false);
+ draw_line(z4, z5, false);
+
+ if negated = 1:
+ stroke_through(centre, 8/3equal_spread + 3/4greater_spread);
+ elseif negated = 2:
+ stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1, 3/2, 3/2) * equal_spread# + 3/4greater_spread#); "less sim";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (3/4equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 1/2equal_spread * up;
+
+ draw_less(a, z0, z1, s, line_thickness, false);
+ if sign > 0:
+ draw_sim(b, z2, z3, 1/4equal_spread, line_thickness);
+ else:
+ draw_sim(b, z3, z2, 1/4equal_spread, line_thickness);
+ fi
+
+ if negated = 1:
+ stroke_through(centre, 3/2equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[z2,z3], equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2, 5/2, 5/2) * equal_spread# + 3/4greater_spread#); "less approx";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (3/4equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = equal_spread * up;
+ z2 - z4 = z3 - z5 = equal_spread * up;
+
+ draw_less(a, z0, z1, s, line_thickness, false);
+
+ if sign > 0:
+ draw_sim(b, z2, z3, 1/4equal_spread, line_thickness);
+ draw_sim(c, z4, z5, 1/4equal_spread, line_thickness);
+ else:
+ draw_sim(b, z3, z2, 1/4equal_spread, line_thickness);
+ draw_sim(c, z5, z4, 1/4equal_spread, line_thickness);
+ fi
+
+ if negated = 1:
+ stroke_through(centre, 5/2equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1, 3/2 + 1/2sign) * equal_spread# + 9/8greater_spread#); "less greater";
+ s := 3/4greater_spread;
+ t := 1/2equal_spread + 1/4s;
+
+ draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false);
+ draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false);
+
+ if negated = 1:
+ stroke_through(centre, (3/2 + 1/2sign) * equal_spread + 3/2s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(4/3, 11/6 + 1/2sign) * equal_spread# + 3/2greater_spread#); "less equal greater";
+ s := 3/4greater_spread;
+ t := 2/3equal_spread + 1/2s;
+
+ draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false);
+ draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false);
+ draw_line(left_ex, right_ex, false);
+
+ if negated = 1:
+ stroke_through(centre, (11/6 + 1/2sign) * equal_spread + 2s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(7/3, 17/6 + 1/2sign, 7/3) * equal_spread# + 3/2greater_spread#); "less double equal greater";
+ s := 3/4greater_spread;
+ t := 7/6equal_spread + 1/2s;
+ u := 1/2equal_spread;
+
+ draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false);
+ draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false);
+ draw_line(left_ex + u * up, right_ex + u * up, false);
+ draw_line(left_ex - u * up, right_ex - u * up, false);
+
+ if negated = 1:
+ stroke_through(centre, (17/6 + 1/2sign) * equal_spread + 2s);
+ elseif negated = 2:
+ stroke_through(centre, 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2, 5/2 + 1/2sign) * equal_spread# + 9/8greater_spread#); "less slanted equal greater";
+ s := 3/4greater_spread;
+ t := equal_spread + 1/4s;
+
+ draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false);
+ draw_less(b, right_ex - t * up, left_ex - t * up, s, line_thickness, false);
+
+ if sign = 1:
+ draw_line(z1a - equal_spread * up, z4a - equal_spread * up, false);
+ else:
+ draw_line(z0a - equal_spread * up, z3a - equal_spread * up, false);
+ fi;
+
+ if negated = 1:
+ stroke_through(centre, (5/2 + 1/2sign) * equal_spread + 3/2s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width# + 2equal_spread# + line_thickness#, ifneg(0,1) * equal_spread# + greater_spread#); "less less";
+ s := 2equal_spread;
+
+ draw_less(a, left_ex, right_ex - sign * s * right, greater_spread, line_thickness, false);
+ draw_less(b, left_ex + sign * s * right, right_ex, greater_spread, line_thickness, false);
+
+ if negated = 1:
+ stroke_through(centre, equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width# + 4equal_spread# + line_thickness#, ifneg(0,1) * equal_spread# + greater_spread#); "less less less";
+ s := 2equal_spread;
+
+ draw_less(a, left_ex, right_ex - sign * 2s * right, greater_spread, line_thickness, false);
+ draw_less(b, left_ex + sign * s * right, right_ex - sign * s * right, greater_spread, line_thickness, false);
+ draw_less(c, left_ex + sign * 2s * right, right_ex, greater_spread, line_thickness, false);
+
+ if negated = 1:
+ stroke_through(centre, equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0,1/2) * equal_spread# + greater_spread#); "closed less than";
+ draw_less(a, left_ex, right_ex, greater_spread, line_thickness, true);
+
+ if negated = 1:
+ stroke_through(centre, 1/2equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2/3, 5/3) * equal_spread# + 3/4greater_spread#); "closed less than or equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 1/3equal_spread * up;
+
+ draw_less(a, z0, z1, s, line_thickness, true);
+ draw_line(z2, z3, false);
+
+ if negated = 1:
+ stroke_through(centre, 5/3equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width# * sqrt(5/4), ifneg(0,1/2) * equal_spread# + greater_spread#); "round less than";
+ thick := line_thickness;
+
+ z0 = left_ex;
+ z1 = z0 + order_width * dir angle(right_ex - left_ex);
+
+ draw_less(a, z0, z1, greater_spread, thick, false);
+
+ theta := angle(z0a - z2a);
+
+ z0a - z4 = 1/2thick * dir theta;
+ z1a - z5 = 1/2thick * dir theta;
+
+ penpos4(thick, theta);
+ penpos5(thick, -theta);
+
+ fill stroke z4.e{dir (theta - 90)} .. {dir(-theta - 90)}z5.e;
+
+ if negated = 1:
+ stroke_through(centre, 1/2equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width# * sqrt(7/6), ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "round less than or slanted equal";
+ thick := line_thickness;
+ s := 3/4greater_spread;
+ t := 1/2equal_spread;
+
+ z0 = left_ex + t * up;
+ z1 = z0 + order_width * dir angle(right_ex - left_ex);
+
+ draw_less(a, z0, z1, s, thick, false);
+
+ theta := angle(z0a - z2a);
+
+ z0a - z4 = 1/2thick * dir theta;
+ z1a - z5 = 1/2thick * dir theta;
+
+ penpos4(thick, theta);
+ penpos5(thick, -theta);
+
+ fill stroke z4.e{dir (theta - 90)} .. {dir(-theta - 90)}z5.e;
+
+ if sign = 1:
+ draw_line(z1a - 2t * up, z4a - 2t * up, false);
+ else:
+ draw_line(z0a - 2t * up, z3a - 2t * up, false);
+ fi;
+
+ if negated = 1:
+ stroke_through(centre, 3/2equal_spread + 3/4greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "square subset";
+ s := greater_spread;
+
+ draw_line(left_ex + s/2 * up, right_ex + s/2 * up, false);
+ draw_line(left_ex - s/2 * up, right_ex - s/2 * up, false);
+ draw_line(left_point + s/2 * up, left_point - s/2 * up, false);
+
+ if negated = 1:
+ stroke_through(centre, equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1,2,2) * equal_spread# + 3/4greater_spread#); "square subset equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (equal_spread + s/2) * up;
+ z0 - left_ex = z0' - left_point = z1 - right_ex = 1/2equal_spread * up;
+
+ draw_line(z0 + s/2 * up, z1 + s/2 * up, false);
+ draw_line(z0 - s/2 * up, z1 - s/2 * up, false);
+ draw_line(z0' + s/2 * up, z0' - s/2 * up, false);
+ draw_line(z2, z3, false);
+
+ if negated = 1:
+ stroke_through(centre, 2equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[z2,z3] + 1/2equal_spread * up, 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2,3,3) * equal_spread# + 3/4greater_spread#); "square subset double equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (equal_spread + s/2) * up;
+ z0 - left_ex = z0' - left_point = z1 - right_ex = equal_spread * up;
+ z2 - z4 = z3 - z5 = equal_spread * up;
+
+ draw_line(z0 + s/2 * up, z1 + s/2 * up, false);
+ draw_line(z0 - s/2 * up, z1 - s/2 * up, false);
+ draw_line(z0' + s/2 * up, z0' - s/2 * up, false);
+ draw_line(z2, z3, false);
+ draw_line(z4, z5, false);
+
+ if negated = 1:
+ stroke_through(centre, 3equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0, 1) * equal_spread# + greater_spread#); "double square subset";
+ s := greater_spread;
+ t := greater_spread - 3/2equal_spread;
+
+ z0 - left_ex = z0' - left_point = 3/4equal_spread * dir (90 - sign * 90);
+
+ draw_line(left_ex + s/2 * up, right_ex + s/2 * up, false);
+ draw_line(left_ex - s/2 * up, right_ex - s/2 * up, false);
+ draw_line(left_point + s/2 * up, left_point - s/2 * up, false);
+
+ draw_line(z0 + t/2 * up, right_ex + t/2 * up, false);
+ draw_line(z0 - t/2 * up, right_ex - t/2 * up, false);
+ draw_line(z0' + t/2 * up, z0' - t/2 * up, false);
+
+ if negated = 1:
+ stroke_through(centre, equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "subset";
+ draw_subset(a, left_ex, right_ex, greater_spread, line_thickness);
+
+ if negated = 1:
+ stroke_through(centre, equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1,2,2) * equal_spread# + 3/4greater_spread#); "subset or equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (equal_spread + s/2) * up;
+ z0 - left_ex = z0' - left_point = z1 - right_ex = 1/2equal_spread * up;
+
+ draw_subset(a, z0, z1, s, line_thickness);
+ draw_line(z2, z3, false);
+
+ if negated = 1:
+ stroke_through(centre, 2equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[z2,z3] + 1/2equal_spread * up, 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2,3,3) * equal_spread# + 3/4greater_spread#); "subset or double equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (equal_spread + s/2) * up;
+ z0 - left_ex = z0' - left_point = z1 - right_ex = equal_spread * up;
+ z2 - z4 = z3 - z5 = equal_spread * up;
+
+ draw_subset(a, z0, z1, s, line_thickness);
+ draw_line(z2, z3, false);
+ draw_line(z4, z5, false);
+
+ if negated = 1:
+ stroke_through(centre, 3equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0,1) * equal_spread# + greater_spread#); "double subset";
+ s := greater_spread;
+ t := greater_spread - 3/2equal_spread;
+
+ z0 - left_ex = 3/4equal_spread * dir (90 - sign * 90);
+
+ draw_subset(a, left_ex, right_ex, s, line_thickness);
+ draw_subset(b, z0, right_ex, t, line_thickness);
+
+ if negated = 1:
+ stroke_through(centre, equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0,1/2) * equal_spread# + greater_spread#); "curly less than";
+ draw_prec(a, left_ex, right_ex, greater_spread, line_thickness, false);
+
+ if negated = 1:
+ stroke_through(centre, 1/2equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2/3, 5/3, 5/3) * equal_spread# + 3/4greater_spread#); "curly less than or equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 1/3equal_spread * up;
+
+ draw_prec(a, z0, z1, s, line_thickness, false);
+ draw_line(z2, z3, false);
+
+ if negated = 1:
+ stroke_through(centre, 5/3equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[z2,z3], equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "curly less than or curly equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = equal_spread * up;
+ z1 - z3 = (7/5equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 1/2equal_spread * up;
+ z2' - z2 = line_thickness * dir (90 - sign * 90);
+
+ draw_prec(a, z0, z1, s, line_thickness, false);
+
+ if sign > 0:
+ theta := angle (z1a.l - z1a);
+ else:
+ theta := angle (z0a.r - z0a);
+ fi;
+
+ penpos2(line_thickness, 90);
+ penpos2'(line_thickness, 90);
+ penpos3(line_thickness, theta);
+ penpos5(line_thickness, theta);
+
+ path p, q;
+
+ p = z2.l -- z2'.l{dir (90 - sign * 90)} .. {dir (theta - sign * 90)}z3.l;
+ q = z2.r -- z2'.r{dir (90 - sign * 90)} .. {dir (theta - sign * 90)}z3.r;
+
+ z5.r = point 1.8 of q;
+ t := xpart (p intersectiontimes (z5.l -- z5.r));
+
+ fill (subpath (0,t) of p) -- (reverse (subpath (0,1.8) of q)) -- cycle;
+
+ penlabels(2,5);
+
+ if negated = 1:
+ stroke_through(centre, 3/2equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(5/3, 8/3, 8/3) * equal_spread# + 3/4greater_spread#); "curly less than or double equal";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 5/6equal_spread * up;
+ z2 - z4 = z3 - z5 = equal_spread * up;
+
+ draw_prec(a, z0, z1, s, line_thickness, false);
+ draw_line(z2, z3, false);
+ draw_line(z4, z5, false);
+
+ if negated = 1:
+ stroke_through(centre, 8/3equal_spread + 3/4greater_spread);
+ elseif negated = 2:
+ stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1, 3/2, 3/2) * equal_spread# + 3/4greater_spread#); "curly less sim";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (3/4equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 1/2equal_spread * up;
+
+ draw_prec(a, z0, z1, s, line_thickness, false);
+ if sign > 0:
+ draw_sim(b, z2, z3, 1/4equal_spread, line_thickness);
+ else:
+ draw_sim(b, z3, z2, 1/4equal_spread, line_thickness);
+ fi
+
+ if negated = 1:
+ stroke_through(centre, 3/2equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[z2,z3], equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 3:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2, 5/2, 5/2) * equal_spread# + 3/4greater_spread#); "curly less approx";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (3/4equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = equal_spread * up;
+ z2 - z4 = z3 - z5 = equal_spread * up;
+
+ draw_prec(a, z0, z1, s, line_thickness, false);
+
+ if sign > 0:
+ draw_sim(b, z2, z3, 1/4equal_spread, line_thickness);
+ draw_sim(c, z4, z5, 1/4equal_spread, line_thickness);
+ else:
+ draw_sim(b, z3, z2, 1/4equal_spread, line_thickness);
+ draw_sim(c, z5, z4, 1/4equal_spread, line_thickness);
+ fi
+
+ if negated = 1:
+ stroke_through(centre, 5/2equal_spread + s);
+ elseif negated = 2:
+ stroke_through(1/2[1/2[z2,z3], 1/2[z4,z5]], 2equal_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(0,1/2) * equal_spread# + greater_spread#); "less than dot";
+ draw_less(a, left_ex, right_ex, greater_spread, line_thickness, false);
+ fill dot(right_ex - sign * 3/4dot_size * right, 3/4dot_size);
+
+ if negated = 1:
+ stroke_through(centre, 1/2equal_spread + greater_spread);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(2/3, 5/3) * equal_spread# + 3/4greater_spread#); "less than or equal dot";
+ s := 3/4greater_spread;
+
+ z0 - z2 = z1 - z3 = (2/3equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = 1/3equal_spread * up;
+
+ draw_less(a, z0, z1, s, line_thickness, false);
+ fill dot(z1 - sign * 3/4dot_size * right, 3/4dot_size);
+ draw_line(z2, z3, false);
+
+ if negated = 1:
+ stroke_through(centre, 5/3equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "less than or slanted equal dot";
+ s := 3/4greater_spread;
+ t := 1/2equal_spread;
+
+ draw_less(a, left_ex + t * up, right_ex + t * up, s, line_thickness, false);
+ fill dot(right_ex + t * up - sign * 3/4dot_size * right, 3/4dot_size);
+
+ if sign = 1:
+ draw_line(z1a - 2t * up, z4a - 2t * up, false);
+ else:
+ draw_line(z0a - 2t * up, z3a - 2t * up, false);
+ fi;
+
+ if negated = 1:
+ stroke_through(centre, 3/2equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi;
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "slanted equal or less than";
+ s := 3/4greater_spread;
+ t := 1/2equal_spread;
+
+ draw_less(a, left_ex - t * up, right_ex - t * up, s, line_thickness, false);
+
+ if sign = 1:
+ draw_line(z0a + 2t * up, z3a + 2t * up, false);
+ else:
+ draw_line(z1a + 2t * up, z4a + 2t * up, false);
+ fi;
+
+ if negated = 1:
+ stroke_through(centre, 3/2equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi
+
+if negated < 2:
+ for sign = 1, -1:
+ beginorder(sign, order_width#, ifneg(1,3/2) * equal_spread# + 3/4greater_spread#); "curly equal or curly less than";
+ s := 3/4greater_spread;
+
+ z0 - z2 = -equal_spread * up;
+ z1 - z3 = -(7/5equal_spread + s/2) * up;
+ z0 - left_ex = z1 - right_ex = -1/2equal_spread * up;
+ z2' - z2 = line_thickness * dir (90 - sign * 90);
+
+ draw_prec(a, z0, z1, s, line_thickness, false);
+
+ if sign > 0:
+ theta := angle (z1a.l - z1a);
+ else:
+ theta := angle (z0a.r - z0a);
+ fi;
+
+ penpos2(line_thickness, -90);
+ penpos2'(line_thickness, -90);
+ penpos3(line_thickness, -theta);
+ penpos5(line_thickness, -theta);
+
+ path p, q;
+
+ p = z2.l -- z2'.l{dir (90 - sign * 90)} .. {dir (sign * 90 - theta)}z3.l;
+ q = z2.r -- z2'.r{dir (90 - sign * 90)} .. {dir (sign * 90 - theta)}z3.r;
+
+ z5.r = point 1.8 of q;
+ t := xpart (p intersectiontimes (z5.l -- z5.r));
+
+ fill (subpath (0,t) of p) -- (reverse (subpath (0,1.8) of q)) -- cycle;
+
+ penlabels(2,5);
+
+ if negated = 1:
+ stroke_through(centre, 3/2equal_spread + s);
+ fi;
+ endchar;
+ endfor;
+fi
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfm
new file mode 100644
index 00000000000..15de428dbdd
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Bold.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfm
new file mode 100644
index 00000000000..a5c4601eeb9
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Book.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfm
new file mode 100644
index 00000000000..2323cf36536
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Medium.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Regular.tfm
new file mode 100644
index 00000000000..b743f24ee6f
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolA-Regular.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfm
new file mode 100644
index 00000000000..b5c7f4cf6b3
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Bold.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfm
new file mode 100644
index 00000000000..d945599be08
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Book.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfm
new file mode 100644
index 00000000000..73ecd6cff76
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Medium.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Regular.tfm
new file mode 100644
index 00000000000..6806f0429c9
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolB-Regular.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfm
new file mode 100644
index 00000000000..349d31377c0
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Bold.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfm
new file mode 100644
index 00000000000..944e5601875
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Book.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfm
new file mode 100644
index 00000000000..e1fafe081f2
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Medium.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Regular.tfm
new file mode 100644
index 00000000000..fc4ecaff652
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolC-Regular.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfm
new file mode 100644
index 00000000000..4d37c67c5f1
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Bold.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfm
new file mode 100644
index 00000000000..4a46e7e999e
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Book.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfm
new file mode 100644
index 00000000000..35de78bf47d
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Medium.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Regular.tfm
new file mode 100644
index 00000000000..85f7a9f787f
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolD-Regular.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfm
new file mode 100644
index 00000000000..b6aa591f42a
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Bold.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfm
new file mode 100644
index 00000000000..d45446d00a8
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Book.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfm
new file mode 100644
index 00000000000..7e7809a7820
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Medium.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Regular.tfm
new file mode 100644
index 00000000000..386a1193ad9
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolE-Regular.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfm
new file mode 100644
index 00000000000..51cdaa863e3
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Bold.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfm
new file mode 100644
index 00000000000..c7de2bd8c34
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Book.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfm
new file mode 100644
index 00000000000..3a700fe66ba
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Medium.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Regular.tfm b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Regular.tfm
new file mode 100644
index 00000000000..5858e838294
--- /dev/null
+++ b/Master/texmf-dist/fonts/tfm/public/fdsymbol/FdSymbolF-Regular.tfm
Binary files differ
diff --git a/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Bold.pfb b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Bold.pfb
new file mode 100644
index 00000000000..3ced48ca560
--- /dev/null
+++ b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Bold.pfb
Binary files differ
diff --git a/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Book.pfb b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Book.pfb
new file mode 100644
index 00000000000..612e9da249d
--- /dev/null
+++ b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Book.pfb
Binary files differ
diff --git a/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Medium.pfb b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Medium.pfb
new file mode 100644
index 00000000000..82324ef6e68
--- /dev/null
+++ b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Medium.pfb
Binary files differ
diff --git a/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Regular.pfb b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Regular.pfb
new file mode 100644
index 00000000000..c00942aad35
--- /dev/null
+++ b/Master/texmf-dist/fonts/type1/public/fdsymbol/FdSymbol-Regular.pfb
Binary files differ
diff --git a/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.dtx b/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.dtx
new file mode 100644
index 00000000000..0b32a87be63
--- /dev/null
+++ b/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.dtx
@@ -0,0 +1,3228 @@
+% \iffalse meta-comment
+%
+% Copyright (c) 2011 by Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Michael Ummels.
+%
+% This work consists of the files fdsymbol.dtx, fdsymbol.ins
+% and the derived file fdsymbol.sty.
+%
+% \fi
+%
+%\iffalse
+%<*driver>
+\ProvidesFile{fdsymbol.dtx}[2011/05/09 v0.5a FdSymbol support package]
+%</driver>
+%<style>\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+%<style>\ProvidesPackage{fdsymbol}[2011/05/09 v0.5a FdSymbol support package]
+%<*driver>
+\documentclass[10pt]{ltxdoc}
+
+\usepackage{multicol}
+\usepackage[T1]{fontenc}
+\usepackage{lmodern}
+\IfFileExists{fedraserif.sty}{%
+ \usepackage[variantb]{fedraserif}
+}{%
+ \usepackage{fdsymbol}
+}
+\usepackage{booktabs}
+\usepackage[unicode,bookmarks]{hyperref}
+\hypersetup{
+ bookmarksnumbered,
+ colorlinks=false,
+ pdfborder={0 0 0},
+ pdftitle={FdSymbol: A Math Symbol Font},
+ pdfauthor={Michael Ummels}
+}
+
+% Restore FdSymbol's Hebrew letters (overwritten by fedraserif)
+\DeclareMathSymbol{\aleph}{0}{symbols}{"C2}
+\DeclareMathSymbol{\beth}{0}{symbols}{"C3}
+\DeclareMathSymbol{\gimel}{0}{symbols}{"C4}
+\DeclareMathSymbol{\daleth}{0}{symbols}{"C5}
+
+\linespread{1.1}
+
+\newcommand{\pkg}[1]{\mbox{\textsf{#1}}}
+\newcommand{\opt}[1]{\mbox{\texttt{#1}}}
+\newcommand{\file}[1]{\texttt{#1}}
+\providecommand{\figureversion}[1]{}
+
+\begin{document}
+\DocInput{fdsymbol.dtx}
+\end{document}
+%</driver>
+%\fi
+%
+% \GetFileInfo{fdsymbol.dtx}
+%
+% \title{FdSymbol: A Math Symbol Font}
+% \author{Michael Ummels}
+% \date{\fileversion\ -- \filedate}
+% \maketitle
+% \tableofcontents
+%
+% \section{Introduction}
+%
+% FdSymbol is a font of mathematical symbols designed as a companion to
+% Typotheque's Fedra family\footnote{\url{http://www.typotheque.com/fonts}},
+% but it might also fit well to other contemporary typefaces.
+% To use this font in a \LaTeX\ document, add the command
+% \begin{quote}
+% |\usepackage|\oarg{options}|{fdsymbol}|
+% \end{quote}
+% to the preamble of your document. This redefined most of the standard
+% mathematical symbols and makes available many new ones
+% (see Section~\ref{sec:glyphs}). For the available options see
+% Section~\ref{sec:selection}.
+%
+% \subsubsection*{Acknowledgements}
+%
+% The FdSymbol font is derived from
+% MnSymbol\footnote{\url{http://www.ctan.org/tex-archive/fonts/mnsymbol/}},
+% another math symbol font, designed by Achim Blumensath.
+%
+% \section{Interferences with other packages}
+%
+% The \pkg{fdsymbol} package is incompatible with the \pkg{amssymb} and
+% \pkg{amsfonts} packages. It automatically loads the \pkg{amsmath} and
+% \pkg{textcomp} packages. If you want to pass options to these packages, you
+% can either load these packages before \pkg{fdsymbol} or you can include the
+% options in the |\documentclass| command.
+%
+% \section{Font selection}\label{sec:selection}
+%
+% FdSymbol comes in four weights, which are (in increasing order) Book,
+% Regular, Medium and Bold. Of these, Book and Regular are suitable for normal
+% math typesetting, while Medium and Bold can be used for bold math
+% typesetting. Using the options \opt{normalweight} and \opt{boldweight}, you
+% can select which weights are used. For example, to use the Medium weight as
+% the normal weight in math, add \opt{normalweight=Medium} to the package
+% options. Analogously, to use the Bold weight with |\boldmath| or
+% |\boldsymbol|, add \opt{boldweight=Bold} to the package options. By default,
+% Book and Medium are used. Additionally, it is possible to use select a
+% suitable weight automatically depending on the font size by selecting
+% \opt{auto}. For example, if you use the option \opt{normalweight=auto}, the
+% Book weight will be used for normal and large sizes, but the Regular weight
+% will be used for small sizes (e.g.\ in sub- and superscripts).
+%
+% In order to use FdSymbol with different text fonts, it is possible to scale
+% the fonts by an arbitrary factor. This can be achieved with the option
+% \opt{scale}. For example, to use the fonts at 90\,\% of their original size,
+% you can add \opt{scale=0.9} to the package options. Finally, it is possible
+% to increase the height of delimiters slightly (by 20\,\% in text size and
+% by 25\,\% in |\big| size). This can be achieved by activating the option
+% \opt{largedelims}. Use this option if you want to combine FdSymbol with a
+% text font that has rather tall delimiters, such as Fedra Serif~B. In fact,
+% the height of normal delimiters will match the height of text delimiters in
+% Fedra Serif~B if you select this option.
+%
+% The following table summarises all options (keys) that can be used with the
+% \pkg{fdsymbol} package. Values that correspond to the default behaviour of
+% the package are marked by an asterisk.
+% \begin{center}
+% \begin{tabular}{@{}ll@{}}
+% \toprule
+% Key & Values \\
+% \midrule
+% \opt{normalweight} & \opt{Book}*, \opt{Regular}, \opt{auto} \\
+% \opt{boldweight} & \opt{Medium}*, \opt{Bold}, \opt{auto} \\
+% \opt{scale} & \meta{factor} \\
+% \opt{largedelims} & \opt{true}, \opt{false}* \\
+% \bottomrule
+% \end{tabular}
+% \end{center}
+%
+% \section{Symbols}\label{sec:glyphs}
+%
+% The \pkg{fdsymbol} package provides the following symbols.
+%
+% \renewcommand\cmd[1]{\texttt{\string#1}}
+% \newcommand\showsymbol[1]{\par\noindent\hangindent=3em%
+% \makebox[2em][l]{$#1$}\cmd{#1}}
+% \newcommand\showwidesymbol[1]{\par\noindent\hangindent=4em%
+% \makebox[3em][l]{$#1$}\cmd{#1}}
+% \newcommand\showop[1]{\par\noindent\hangindent=6em%
+% \makebox[5em][l]{$#1$\hfill$\displaystyle#1$\hfill}\cmd{#1}}
+% \newcommand\showmbrace[1]{\par\noindent\hangindent=6em%
+% \makebox[5em][l]{${#1}{\bigm#1}{\Bigm#1}{\biggm#1}{\Biggm#1}$}\cmd{#1}}
+% \newcommand\showlbrace[1]{\par\noindent\hangindent=6em%
+% \makebox[5em][l]{$\Biggl#1\biggl#1\Bigl#1\bigl#1#1$}\cmd{#1}}
+% \newcommand\showrbrace[1]{\par\noindent\hangindent=6em%
+% \makebox[5em][l]{$#1\bigr#1\Bigr#1\biggr#1\Biggr#1$}\cmd{#1}}
+% \newcommand\showover[1]{\par\noindent\hangindent=4em%
+% \makebox[3em][l]{$#1{xxx}$}\cmd{#1}}
+% \newcommand\showaccent[1]{\par\noindent\hangindent=4em%
+% \makebox[3em][l]{$#1b$}\cmd{#1}}
+%
+% \subsection{Ordinary symbols}
+%
+% \begin{multicols}{2}
+% \raggedright
+% \showsymbol\hdots
+% \showsymbol\vdots
+% \showsymbol\udots, \cmd{\adots}
+% \showsymbol{\ddots}
+% \showsymbol{\righttherefore}
+% \showsymbol{\uptherefore}, \cmd{\therefore}
+% \showsymbol{\lefttherefore}
+% \showsymbol{\downtherefore}, \cmd{\because}
+% \showsymbol{\squaredots}
+% \showsymbol{\neg}, \cmd{\lnot}
+% \showsymbol{\backneg}, \cmd{\invnot}, \cmd{\invneg}
+% \showsymbol{\turnedneg}, \cmd{\turnednot}
+% \showsymbol{\turnedbackneg}
+% \showsymbol{\largetriangleup}
+% \showsymbol{\largetriangledown}
+% \showsymbol{\emptyset}, \cmd{\diameter}, \cmd{\varnothing}
+% \showsymbol{\revemptyset}
+% \showsymbol{\largecircle}, \cmd{\lgwhtcircle}
+% \showsymbol{\largeblackcircle}
+% \showsymbol{\largesquare}, \cmd{\lgwhtsquare}
+% \showsymbol{\largeblacksquare}, \cmd{\lgblksquare}
+% \showsymbol{\smalllozenge}, \cmd{\smwhtlozenge}
+% \showsymbol{\smallblacklozenge}, \cmd{\smblklozenge}
+% \showsymbol{\medlozenge}, \cmd{\lozenge}, \cmd{\mdlgwhtlozenge},
+% \cmd{\mdwhtlozenge}
+% \showsymbol{\medblacklozenge}, \cmd{\blacklozenge}, \cmd{\mdlgblklozenge},
+% \cmd{\mdblklozenge}
+% \showsymbol{\lozengeminus}
+% \showsymbol{\largewhitestar}
+% \showsymbol{\largeblackstar}, \cmd{\bigstar}
+% \showsymbol{\infty}
+% \showsymbol{\bot}
+% \showsymbol{\top}
+% \showsymbol{\angle}
+% \showsymbol{\revangle}
+% \showsymbol{\measuredangle}
+% \showsymbol{\revmeasuredangle}, \cmd{\measuredangleleft}
+% \showsymbol{\sphericalangle}
+% \showsymbol{\sphericalangleup}
+% \showsymbol{\sphericalangleleft}, \cmd{\revsphericalangle}, \cmd{\gtlpar}
+% \showsymbol{\sphericalangledown}
+% \showsymbol{\rightangle}
+% \showsymbol{\measuredrightangle}
+% \showsymbol{\rightanglesquare}, \cmd{\rightanglesqr}
+% \showsymbol{\measuredrightangledot}, \cmd{\rightanglemdot}
+% \showsymbol{\prime}
+% \showsymbol{\backprime}
+% \showsymbol{\checkmark}
+% \showsymbol{\lightning}, \cmd{\downzigzagarrow}
+% \showsymbol{\diamondsuit}
+% \showsymbol{\vardiamondsuit}
+% \showsymbol{\heartsuit}
+% \showsymbol{\varheartsuit}
+% \showsymbol{\spadesuit}
+% \showsymbol{\clubsuit}
+% \showsymbol{\maltese}
+% \showsymbol{\starofdavid}
+% \showsymbol{\sector}
+% \showsymbol{\forall}
+% \showsymbol{\exists}
+% \showsymbol{\nexists}
+% \showsymbol{\Finv}
+% \showsymbol{\Game}
+% \showsymbol{\complement}
+% \showsymbol{\flat}
+% \showsymbol{\natural}
+% \showsymbol{\sharp}
+% \showsymbol{\aleph}
+% \showsymbol{\beth}
+% \showsymbol{\gimel}
+% \showsymbol{\daleth}
+% \showsymbol{\wp}
+% \showsymbol{/}, \cmd{\mathslash}
+% \showsymbol{\backslash}
+% {\catcode`\|=11 \showsymbol{|}, \cmd{\vert}}
+% \showsymbol{\Vert}
+% \showsymbol{\Vvert}
+% \end{multicols}
+%
+% \subsection{Binary operators}
+%
+% \begin{multicols}{2}
+% \raggedright
+% \showsymbol{\cdot}
+% \showsymbol{\centerdot}
+% \showsymbol{\hdotdot}
+% \showsymbol{\vdotdot}
+% \showsymbol{\udotdot}
+% \showsymbol{\ddotdot}
+% \showsymbol{-}, \cmd{\minus}
+% \showsymbol{\medslash}, \cmd{\smalldivslash}
+% \showsymbol{\medbackslash}, \cmd{\smallsetminus}
+% \showsymbol{+}, \cmd{\plus}
+% \showsymbol{\times}
+% \showsymbol{\pm}
+% \showsymbol{\mp}
+% \showsymbol{\dotminus}
+% \showsymbol{\minusdot}
+% \showsymbol{\minusfdots}
+% \showsymbol{\minusrdots}
+% \showsymbol{\dotsminusdots}
+% \showsymbol{\dotplus}
+% \showsymbol{\div}
+% \showsymbol{\divideontimes}
+% \showsymbol{\minushookdown}
+% \showsymbol{\hookdownminus}
+% \showsymbol{\intprod}, \cmd{\minushookup}
+% \showsymbol{\intprodr}, \cmd{\hookupminus}
+% \showsymbol{\leftthreetimes}
+% \showsymbol{\rightthreetimes}
+% \showsymbol{\dtimes}, \cmd{\btimes}
+% \showsymbol{\rtimes}
+% \showsymbol{\utimes}, \cmd{\ttimes}
+% \showsymbol{\ltimes}
+% \showsymbol{\lrtimes}
+% \showsymbol{\upbowtie}, \cmd{\hourglass}
+% \showsymbol{\rightY}
+% \showsymbol{\upY}
+% \showsymbol{\leftY}
+% \showsymbol{\downY}
+% \showsymbol{\wedge}, \cmd{\land}
+% \showsymbol{\vee}, \cmd{\lor}
+% \showsymbol{\wedgedot}
+% \showsymbol{\veedot}
+% \showsymbol{\veebar}
+% \showsymbol{\barwedge}
+% \showsymbol{\veedoublebar}
+% \showsymbol{\doublebarwedge}
+% \showsymbol{\doublewedge}, \cmd{\wedgeonwedge}
+% \showsymbol{\doublevee}, \cmd{\veeonwee}
+% \showsymbol{\curlywedge}
+% \showsymbol{\curlyvee}
+% \showsymbol{\curlywedgedot}
+% \showsymbol{\curlyveedot}
+% \showsymbol{\doublecurlywedge}
+% \showsymbol{\doublecurlyvee}
+% \showsymbol{\cup}
+% \showsymbol{\cap}
+% \showsymbol{\doublecup}, \cmd{\Cup}
+% \showsymbol{\doublecap}, \cmd{\Cap}
+% \showsymbol{\cupdot}
+% \showsymbol{\capdot}
+% \showsymbol{\cupplus}, \cmd{\uplus}
+% \showsymbol{\capplus}
+% \showsymbol{\sqcup}
+% \showsymbol{\sqcap}
+% \showsymbol{\doublesqcup}, \cmd{\Sqcup}
+% \showsymbol{\doublesqcap}, \cmd{\Sqcap}
+% \showsymbol{\sqcupdot}
+% \showsymbol{\sqcapdot}
+% \showsymbol{\sqcupplus}
+% \showsymbol{\sqcapplus}
+% \showsymbol{\pullback}
+% \showsymbol{\pushout}
+% \showsymbol{\smalltriangleright}
+% \showsymbol{\smalltriangleup}
+% \showsymbol{\smalltriangleleft}
+% \showsymbol{\smalltriangledown}
+% \showsymbol{\smallblacktriangleright}
+% \showsymbol{\smallblacktriangleup}
+% \showsymbol{\smallblacktriangleleft}
+% \showsymbol{\smallblacktriangledown}
+% \showsymbol{\medtriangleright}, \cmd{\triangleright}
+% \showsymbol{\medtriangleup}, \cmd{\triangle}, \cmd{\vartriangle}
+% \showsymbol{\medtriangleleft}, \cmd{\triangleleft}
+% \showsymbol{\medtriangledown}, \cmd{\triangledown}
+% \showsymbol{\medblacktriangleright}, \cmd{\blacktriangleright}
+% \showsymbol{\medblacktriangleup}, \cmd{\blacktriangle}
+% \showsymbol{\medblacktriangleleft}, \cmd{\blacktriangleleft}
+% \showsymbol{\medblacktriangledown}, \cmd{\blacktriangledown}
+% \showsymbol{\bigtriangleup}
+% \showsymbol{\bigtriangledown}
+% \showsymbol{\smallcircle}, \cmd{\circ}, \cmd{\smwhtcircle}
+% \showsymbol{\smallblackcircle}, \cmd{\bullet}, \cmd{\smblkcircle}
+% \showsymbol{\medcircle}, \cmd{\mdlgwhtcircle}, \cmd{\mdwhtcircle}
+% \showsymbol{\medblackcircle}, \cmd{\mdlgblkcircle}, \cmd{\mdblkcircle}
+% \showsymbol{\ominus}
+% \showsymbol{\overt}, \cmd{\circledvert}
+% \showsymbol{\oslash}
+% \showsymbol{\obackslash}, \cmd{\obslash}
+% \showsymbol{\oplus}
+% \showsymbol{\otimes}
+% \showsymbol{\odot}
+% \showsymbol{\ocirc}, \cmd{\circledcirc}
+% \showsymbol{\oast}, \cmd{\circledast}
+% \showsymbol{\odash}, \cmd{\circleddash}
+% \showsymbol{\oequal}, \cmd{\circledequal}
+% \showsymbol{\bigcirc}
+% \showsymbol{\smallsquare}, \cmd{\smwhtsquare}
+% \showsymbol{\smallblacksquare}, \cmd{\smblksquare}
+% \showsymbol{\medsquare}, \cmd{\square}, \cmd{\Box}, \cmd{\mdlgwhtsquare},
+% \cmd{\mdwhtsquare}
+% \showsymbol{\medblacksquare}, \cmd{\mdlgblksquare}, \cmd{\mdblksquare}
+% \showsymbol{\boxminus}
+% \showsymbol{\boxvert}, \cmd{\boxbar}
+% \showsymbol{\boxslash}, \cmd{\boxdiag}
+% \showsymbol{\boxbackslash}, \cmd{\boxbslash}
+% \showsymbol{\boxplus}
+% \showsymbol{\boxtimes}
+% \showsymbol{\boxdot}
+% \showsymbol{\boxbox}
+% \showsymbol{\smalldiamond}, \cmd{\diamond}, \cmd{\smwhtdiamond}
+% \showsymbol{\smallblackdiamond}, \cmd{\blackdiamond}, \cmd{\smblkdiamond}
+% \showsymbol{\meddiamond}, \cmd{\Diamond}, \cmd{\mdlgwhtdiamond},
+% \cmd{\mdwhtdiamond}
+% \showsymbol{\medblackdiamond}, \cmd{\mdlgblkdiamond}, \cmd{\mdblkdiamond}
+% \showsymbol{\diamondminus}
+% \showsymbol{\diamondvert}
+% \showsymbol{\diamondslash}
+% \showsymbol{\diamondbackslash}, \cmd{\diamondbslash}
+% \showsymbol{\diamondplus}
+% \showsymbol{\diamondtimes}
+% \showsymbol{\diamonddot}, \cmd{\diamondcdot}
+% \showsymbol{\diamonddiamond}
+% \showsymbol{\smallwhitestar}, \cmd{\smwhitestar}
+% \showsymbol{\smallblackstar}, \cmd{\star}
+% \showsymbol{\medwhitestar}
+% \showsymbol{\medblackstar}, \cmd{\medstar}
+% \showsymbol{*}, \cmd{\ast}
+% \showsymbol{\intercal}
+% \showsymbol{\wreath}, \cmd{\wr}
+% \showsymbol{\amalg}
+% \showsymbol{\lhd}
+% \showsymbol{\rhd}
+% \showsymbol{\unlhd}
+% \showsymbol{\unrhd}
+% \showsymbol{\divslash}
+% \showsymbol{\setminus}
+% \end{multicols}
+%
+% \subsection{Relations}
+%
+% \begin{multicols}{2}
+% \raggedright
+% \showsymbol{=}, \cmd{\equal}, \cmd{\Relbar}
+% \showsymbol{\coloneq}, \cmd{\coloneqq}
+% \showsymbol{\equiv}
+% \showsymbol{\sim}
+% \showsymbol{\backsim}
+% \showsymbol{\approx}
+% \showsymbol{\triplesim}, \cmd{\approxident}
+% \showsymbol{\simeq}
+% \showsymbol{\backsimeq}
+% \showsymbol{\eqsim}
+% \showsymbol{\cong}
+% \showsymbol{\backcong}
+% \showsymbol{\dotcong}
+% \showsymbol{\approxeq}
+% \showsymbol{\bumpeq}
+% \showsymbol{\bumpeqq}
+% \showsymbol{\Bumpeq}
+% \showsymbol{\doteq}
+% \showsymbol{\eqdot}
+% \showsymbol{\Doteq}
+% \showsymbol{\fallingdotseq}
+% \showsymbol{\risingdotseq}
+% \showsymbol{\smile}, \cmd{\smallsmile}
+% \showsymbol{\frown}, \cmd{\smallfrown}
+% \showsymbol{\smilefrown}, \cmd{\asymp}
+% \showsymbol{\frownsmile}, \cmd{\closure}
+% \showsymbol{\smileeq}
+% \showsymbol{\frowneq}, \cmd{\arceq}
+% \showsymbol{\eqcirc}
+% \showsymbol{\circeq}
+% \showsymbol{\wedgeq}, \cmd{\hateq}
+% \showsymbol{\veeeq}
+% \showsymbol{\stareq}
+% \showsymbol{\triangleeq}, \cmd{\triangleq}
+% \showsymbol{\in}
+% \showsymbol{\owns}, \cmd{\ni}
+% \showsymbol{<}, \cmd{\less}
+% \showsymbol{>}, \cmd{\gtr}
+% \showsymbol{\leq}, \cmd{\le}
+% \showsymbol{\geq}, \cmd{\ge}
+% \showsymbol{\leqslant}
+% \showsymbol{\geqslant}
+% \showsymbol{\leqq}
+% \showsymbol{\geqq}
+% \showsymbol{\lesssim}
+% \showsymbol{\gtrsim}
+% \showsymbol{\lessapprox}
+% \showsymbol{\gtrapprox}
+% \showsymbol{\lessgtr}
+% \showsymbol{\gtrless}
+% \showsymbol{\lesseqgtr}
+% \showsymbol{\gtreqless}
+% \showsymbol{\lesseqqgtr}
+% \showsymbol{\gtreqqless}
+% \showsymbol{\lesseqgtrslant}
+% \showsymbol{\gtreqlessslant}
+% \showsymbol{\ll}
+% \showsymbol{\gg}
+% \showsymbol{\lll}, \cmd{\llless}
+% \showsymbol{\ggg}, \cmd{\gggtr}
+% \showsymbol{\lessclosed}, \cmd{\vartriangleleft}
+% \showsymbol{\gtrclosed}, \cmd{\vartriangleright}
+% \showsymbol{\leqclosed}, \cmd{\trianglelefteq}
+% \showsymbol{\geqclosed}, \cmd{\trianglerighteq}
+% \showsymbol{\lesscc}, \cmd{\ltcc}
+% \showsymbol{\gtrcc}, \cmd{\gtcc}
+% \showsymbol{\leqslcc}, \cmd{\lescc}
+% \showsymbol{\geqslcc}, \cmd{\gescc}
+% \showsymbol{\sqsubset}
+% \showsymbol{\sqsupset}
+% \showsymbol{\sqsubseteq}
+% \showsymbol{\sqsupseteq}
+% \showsymbol{\sqsubseteqq}
+% \showsymbol{\sqsupseteqq}
+% \showsymbol{\Sqsubset}
+% \showsymbol{\Sqsupset}
+% \showsymbol{\subset}
+% \showsymbol{\supset}
+% \showsymbol{\subseteq}
+% \showsymbol{\supseteq}
+% \showsymbol{\subseteqq}
+% \showsymbol{\supseteqq}
+% \showsymbol{\Subset}
+% \showsymbol{\Supset}
+% \showsymbol{\prec}
+% \showsymbol{\succ}
+% \showsymbol{\preceq}
+% \showsymbol{\succeq}
+% \showsymbol{\preccurlyeq}
+% \showsymbol{\succcurlyeq}
+% \showsymbol{\preceqq}
+% \showsymbol{\succeqq}
+% \showsymbol{\precsim}
+% \showsymbol{\succsim}
+% \showsymbol{\precapprox}
+% \showsymbol{\succapprox}
+% \showsymbol{\lessdot}
+% \showsymbol{\gtrdot}
+% \showsymbol{\leqdot}
+% \showsymbol{\geqdot}
+% \showsymbol{\leqslantdot}, \cmd{\lesdot}
+% \showsymbol{\geqslantdot}, \cmd{\gesdot}
+% \showsymbol{\eqslantless}
+% \showsymbol{\eqslantgtr}
+% \showsymbol{\curlyeqprec}
+% \showsymbol{\curlyeqsucc}
+% \showsymbol{\thicksim}
+% \showsymbol{\thickapprox}
+% \showsymbol{\rightarrow},
+% \cmd{\to}
+% \showsymbol{\uparrow}
+% \showsymbol{\leftarrow},
+% \cmd{\gets}
+% \showsymbol{\downarrow}
+% \showsymbol{\nearrow}
+% \showsymbol{\nwarrow}
+% \showsymbol{\swarrow}
+% \showsymbol{\searrow}
+% \showsymbol{\Rightarrow}
+% \showsymbol{\Uparrow}
+% \showsymbol{\Leftarrow}
+% \showsymbol{\Downarrow}
+% \showsymbol{\Nearrow}
+% \showsymbol{\Nwarrow}
+% \showsymbol{\Swarrow}
+% \showsymbol{\Searrow}
+% \showsymbol{\leftrightarrow}
+% \showsymbol{\updownarrow}
+% \showsymbol{\neswarrow}
+% \showsymbol{\nwsearrow}
+% \showsymbol{\Leftrightarrow}
+% \showsymbol{\Updownarrow}
+% \showsymbol{\Neswarrow}
+% \showsymbol{\Nwsearrow}
+% \showsymbol{\twoheadrightarrow}
+% \showsymbol{\twoheaduparrow}
+% \showsymbol{\twoheadleftarrow}
+% \showsymbol{\twoheaddownarrow}
+% \showsymbol{\twoheadnearrow}
+% \showsymbol{\twoheadnwarrow}
+% \showsymbol{\twoheadswarrow}
+% \showsymbol{\twoheadsearrow}
+% \showsymbol{\rightarrowtail}
+% \showsymbol{\uparrowtail}
+% \showsymbol{\leftarrowtail}
+% \showsymbol{\downarrowtail}
+% \showsymbol{\nearrowtail}
+% \showsymbol{\nwarrowtail}
+% \showsymbol{\swarrowtail}
+% \showsymbol{\searrowtail}
+% \showsymbol{\rightmapsto},
+% \cmd{\mapsto}
+% \showsymbol{\upmapsto},
+% \cmd{\mapsup}
+% \showsymbol{\leftmapsto},
+% \cmd{\mapsfrom}
+% \showsymbol{\downmapsto},
+% \cmd{\mapsdown}
+% \showsymbol{\nemapsto}
+% \showsymbol{\nwmapsto}
+% \showsymbol{\swmapsto}
+% \showsymbol{\semapsto}
+% \showsymbol{\lhookrightarrow},
+% \cmd{\hookrightarrow}
+% \showsymbol{\lhookuparrow}
+% \showsymbol{\lhookleftarrow}
+% \showsymbol{\lhookdownarrow}
+% \showsymbol{\lhooknearrow}
+% \showsymbol{\lhooknwarrow},
+% \cmd{\hknwarrow}
+% \showsymbol{\lhookswarrow}
+% \showsymbol{\lhooksearrow},
+% \cmd{\hksearrow}
+% \showsymbol{\rhookrightarrow}
+% \showsymbol{\rhookuparrow}
+% \showsymbol{\rhookleftarrow},
+% \cmd{\hookleftarrow}
+% \showsymbol{\rhookdownarrow}
+% \showsymbol{\rhooknearrow},
+% \cmd{\hknearrow}
+% \showsymbol{\rhooknwarrow}
+% \showsymbol{\rhookswarrow},
+% \cmd{\hkswarrow}
+% \showsymbol{\rhooksearrow}
+% \showsymbol{\rightharpoonup}
+% \showsymbol{\upharpoonleft}
+% \showsymbol{\leftharpoondown}
+% \showsymbol{\downharpoonright}
+% \showsymbol{\neharpoonnw}
+% \showsymbol{\nwharpoonsw}
+% \showsymbol{\swharpoonse}
+% \showsymbol{\seharpoonne}
+% \showsymbol{\rightharpoondown}
+% \showsymbol{\upharpoonright},
+% \cmd{\restriction}
+% \showsymbol{\leftharpoonup}
+% \showsymbol{\downharpoonleft}
+% \showsymbol{\neharpoonse}
+% \showsymbol{\nwharpoonne}
+% \showsymbol{\swharpoonnw}
+% \showsymbol{\seharpoonsw}
+% \showsymbol{\leftrightharpoonupdown}
+% \showsymbol{\updownharpoonleftright}
+% \showsymbol{\neswharpoonnwse}
+% \showsymbol{\nwseharpoonnesw}
+% \showsymbol{\leftrightharpoondownup}
+% \showsymbol{\updownharpoonrightleft}
+% \showsymbol{\neswharpoonsenw}
+% \showsymbol{\nwseharpoonswne}
+% \showsymbol{\rightleftharpoons}
+% \showsymbol{\updownharpoons},
+% \cmd{\updownharpoonsleftright}
+% \showsymbol{\neswharpoons}
+% \showsymbol{\senwharpoons}
+% \showsymbol{\leftrightharpoons}
+% \showsymbol{\downupharpoons},
+% \cmd{\downupharpoonsleftright}
+% \showsymbol{\swneharpoons}
+% \showsymbol{\nwseharpoons}
+% \showsymbol{\rightbkarrow},
+% \cmd{\dashrightarrow},
+% \cmd{\dasharrow}
+% \showsymbol{\upbkarrow}
+% \showsymbol{\leftbkarrow},
+% \cmd{\dashleftarrow}
+% \showsymbol{\downbkarrow}
+% \showsymbol{\nebkarrow}
+% \showsymbol{\nwbkarrow}
+% \showsymbol{\swbkarrow}
+% \showsymbol{\sebkarrow}
+% \showsymbol{\rightspoon},
+% \cmd{\multimap}
+% \showsymbol{\upspoon},
+% \cmd{\cirmid}
+% \showsymbol{\leftspoon},
+% \cmd{\multimapinv}
+% \showsymbol{\downspoon},
+% \cmd{\midcir}
+% \showsymbol{\rightblackspoon}
+% \showsymbol{\upblackspoon}
+% \showsymbol{\leftblackspoon}
+% \showsymbol{\downblackspoon}
+% \showsymbol{\rightpitchfork}
+% \showsymbol{\uppitchfork},
+% \cmd{\pitchfork}
+% \showsymbol{\leftpitchfork}
+% \showsymbol{\downpitchfork}
+% \showsymbol{\rightrightarrows}
+% \showsymbol{\upuparrows}
+% \showsymbol{\leftleftarrows}
+% \showsymbol{\downdownarrows}
+% \showsymbol{\nenearrows}
+% \showsymbol{\nwnwarrows}
+% \showsymbol{\swswarrows}
+% \showsymbol{\sesearrows}
+% \showsymbol{\rightleftarrows}
+% \showsymbol{\updownarrows}
+% \showsymbol{\neswarrows}
+% \showsymbol{\nwsearrows}
+% \showsymbol{\leftrightarrows}
+% \showsymbol{\downuparrows}
+% \showsymbol{\swnearrows}
+% \showsymbol{\senwarrows}
+% \showsymbol{\rightlsquigarrow},
+% \cmd{\leadsto},
+% \cmd{\rightsquigarrow}
+% \showsymbol{\uplsquigarrow}
+% \showsymbol{\leftlsquigarrow}
+% \showsymbol{\downlsquigarrow}
+% \showsymbol{\rightrsquigarrow},
+% \showsymbol{\uprsquigarrow}
+% \showsymbol{\leftrsquigarrow},
+% \cmd{\leftsquigarrow}
+% \showsymbol{\downrsquigarrow}
+% \showsymbol{\leftrightsquigarrow}
+% \showsymbol{\updownsquigarrow}
+% \showsymbol{\rightleftsquigarrow}
+% \showsymbol{\downupsquigarrow}
+% \showsymbol{\rightlcurvearrow},
+% \cmd{\curvearrowright}
+% \showsymbol{\uplcurvearrow}
+% \showsymbol{\leftlcurvearrow}
+% \showsymbol{\downlcurvearrow},
+% \cmd{\cwrightarcarrow}
+% \showsymbol{\nelcurvearrow}
+% \showsymbol{\nwlcurvearrow}
+% \showsymbol{\swlcurvearrow},
+% \cmd{\cwundercurvearrow}
+% \showsymbol{\selcurvearrow}
+% \showsymbol{\rightrcurvearrow},
+% \cmd{\acwunderarcarrow}
+% \showsymbol{\uprcurvearrow}
+% \showsymbol{\leftrcurvearrow},
+% \cmd{\curvearrowleft},
+% \cmd{\acwoverarcarrow}
+% \showsymbol{\downrcurvearrow},
+% \cmd{\acwleftarcarrow}
+% \showsymbol{\nercurvearrow}
+% \showsymbol{\nwrcurvearrow}
+% \showsymbol{\swrcurvearrow}
+% \showsymbol{\sercurvearrow},
+% \cmd{\ccwundercurvearrow}
+% \showsymbol{\leftrightcurvearrow}
+% \showsymbol{\updowncurvearrow}
+% \showsymbol{\rightleftcurvearrow}
+% \showsymbol{\downupcurvearrow}
+% \showsymbol{\neswcurvearrow}
+% \showsymbol{\nwsecurvearrow}
+% \showsymbol{\swnecurvearrow}
+% \showsymbol{\senwcurvearrow}
+% \showsymbol{\leftfootline},
+% \cmd{\vlongdash}
+% \showsymbol{\rightfootline},
+% \cmd{\longdashv}
+% \showsymbol{\acwcirclearrowup}
+% \showsymbol{\acwcirclearrowleft},
+% \cmd{\circlearrowleft},
+% \cmd{\acwopencirclearrow}
+% \showsymbol{\acwcirclearrowdown},
+% \cmd{\acwgapcirclearrow}
+% \showsymbol{\acwcirclearrowright}
+% \showsymbol{\cwcirclearrowdown},
+% \cmd{\cwgapcirclearrow}
+% \showsymbol{\cwcirclearrowright},
+% \cmd{\circlearrowright},
+% \cmd{\cwopencirclearrow}
+% \showsymbol{\cwcirclearrowup}
+% \showsymbol{\cwcirclearrowleft}
+% \showsymbol{\Rrightarrow}
+% \showsymbol{\Uuparrow}
+% \showsymbol{\Lleftarrow}
+% \showsymbol{\Ddownarrow}
+% \showsymbol{\Lsh}
+% \showsymbol{\Rsh}
+% \showsymbol{\Ldsh}
+% \showsymbol{\Rdsh}
+% \showsymbol{\looparrowright}
+% \showsymbol{\looparrowleft}
+% \showsymbol{\longrightarrow}
+% \showsymbol{\longleftarrow}
+% \showsymbol{\longleftrightarrow}
+% \showsymbol{\Longrightarrow}
+% \showsymbol{\Longleftarrow}
+% \showsymbol{\Longleftrightarrow}
+% \showsymbol{\longmapsto}
+% \showsymbol{\emptyblackspoon},
+% \cmd{\origof}
+% \showsymbol{\filledemptyspoon},
+% \cmd{\imageof}
+% \showsymbol{\leftrightspoon},
+% \cmd{\dualmap}
+% \showsymbol{\leftrightblackspoon}
+% \showsymbol{\rightvdash},
+% \cmd{\vdash},
+% \cmd{\assert}
+% \showsymbol{\upvdash},
+% \cmd{\perp}
+% \showsymbol{\leftvdash},
+% \cmd{\dashv}
+% \showsymbol{\downvdash}
+% \showsymbol{\rightvDash},
+% \cmd{\vDash},
+% \cmd{\models}
+% \showsymbol{\upvDash},
+% \cmd{\Vbar}
+% \showsymbol{\leftvDash},
+% \cmd{\Dashv}
+% \showsymbol{\downvDash},
+% \cmd{\barV}
+% \showsymbol{\rightVdash},
+% \cmd{\Vdash}
+% \showsymbol{\upVdash}
+% \showsymbol{\leftVdash},
+% \cmd{\dashV}
+% \showsymbol{\downVdash}
+% \showsymbol{\rightVDash},
+% \cmd{\VDash}
+% \showsymbol{\upVDash}
+% \showsymbol{\leftVDash},
+% \cmd{\DashV}
+% \showsymbol{\downVDash}
+% \showsymbol{\Vvdash}
+% \showsymbol{\nequal}, \cmd{\neq}, \cmd{\ne}
+% \showsymbol{\nequiv}
+% \showsymbol{\nsim}
+% \showsymbol{\nbacksim}
+% \showsymbol{\napprox}
+% \showsymbol{\ntriplesim}, \cmd{\napproxident}
+% \showsymbol{\nsimeq}, \cmd{\nsime}
+% \showsymbol{\nbacksimeq}
+% \showsymbol{\neqsim}
+% \showsymbol{\ncong}
+% \showsymbol{\nbackcong}
+% \showsymbol{\napproxeq}
+% \showsymbol{\nbumpeq}
+% \showsymbol{\nbumpeqq}
+% \showsymbol{\nBumpeq}
+% \showsymbol{\ndoteq}
+% \showsymbol{\neqdot}
+% \showsymbol{\nDoteq}
+% \showsymbol{\nfallingdotseq}
+% \showsymbol{\nrisingdotseq}
+% \showsymbol{\nsmile}
+% \showsymbol{\nfrown}
+% \showsymbol{\nsmilefrown}, \cmd{\nasymp}
+% \showsymbol{\nfrownsmile}, \cmd{\nclosure}
+% \showsymbol{\nsmileeq}
+% \showsymbol{\nfrowneq}, \cmd{\narceq}
+% \showsymbol{\neqcirc}
+% \showsymbol{\ncirceq}
+% \showsymbol{\nwedgeq}, \cmd{\nhateq}
+% \showsymbol{\nveeeq}
+% \showsymbol{\nstareq}
+% \showsymbol{\ntriangleeq}
+% \showsymbol{\nin}, \cmd{\notin}
+% \showsymbol{\nowns}, \cmd{\nni}
+% \showsymbol{\nless}
+% \showsymbol{\ngtr}
+% \showsymbol{\nleq}
+% \showsymbol{\ngeq}
+% \showsymbol{\nleqslant}
+% \showsymbol{\ngeqslant}
+% \showsymbol{\nleqq}
+% \showsymbol{\ngeqq}
+% \showsymbol{\nlesssim}
+% \showsymbol{\ngtrsim}
+% \showsymbol{\nlessapprox}
+% \showsymbol{\ngtrapprox}
+% \showsymbol{\nlessgtr}
+% \showsymbol{\ngtrless}
+% \showsymbol{\nlesseqgtr}
+% \showsymbol{\ngtreqless}
+% \showsymbol{\nlesseqqgtr}
+% \showsymbol{\ngtreqqless}
+% \showsymbol{\nlesseqgtrslant}
+% \showsymbol{\ngtreqlessslant}
+% \showsymbol{\nll}
+% \showsymbol{\ngg}
+% \showsymbol{\nlll}
+% \showsymbol{\nggg}
+% \showsymbol{\nlessclosed}, \cmd{\ntriangleleft}
+% \showsymbol{\ngtrclosed}, \cmd{\ntriangleright}
+% \showsymbol{\nleqclosed}, \cmd{\ntrianglelefteq}
+% \showsymbol{\ngeqclosed}, \cmd{\ntrianglerighteq}
+% \showsymbol{\nlesscc}, \cmd{\nltcc}
+% \showsymbol{\ngtrcc}, \cmd{\ngtcc}
+% \showsymbol{\nleqslcc}, \cmd{\nlescc}
+% \showsymbol{\ngeqslcc}, \cmd{\ngescc}
+% \showsymbol{\nsqsubset}
+% \showsymbol{\nsqsupset}
+% \showsymbol{\nsqsubseteq}
+% \showsymbol{\nsqsupseteq}
+% \showsymbol{\nsqsubseteqq}
+% \showsymbol{\nsqsupseteqq}
+% \showsymbol{\nSqsubset}
+% \showsymbol{\nSqsupset}
+% \showsymbol{\nsubset}
+% \showsymbol{\nsupset}
+% \showsymbol{\nsubseteq}
+% \showsymbol{\nsupseteq}
+% \showsymbol{\nsubseteqq}
+% \showsymbol{\nsupseteqq}
+% \showsymbol{\nSubset}
+% \showsymbol{\nSupset}
+% \showsymbol{\nprec}
+% \showsymbol{\nsucc}
+% \showsymbol{\npreceq}
+% \showsymbol{\nsucceq}
+% \showsymbol{\npreccurlyeq}
+% \showsymbol{\nsucccurlyeq}
+% \showsymbol{\npreceqq}
+% \showsymbol{\nsucceqq}
+% \showsymbol{\nprecsim}
+% \showsymbol{\nsuccsim}
+% \showsymbol{\nprecapprox}
+% \showsymbol{\nsuccapprox}
+% \showsymbol{\nlessdot}
+% \showsymbol{\ngtrdot}
+% \showsymbol{\nleqdot}
+% \showsymbol{\ngeqdot}
+% \showsymbol{\nleqslantdot}, \cmd{\nlesdot}
+% \showsymbol{\ngeqslantdot}, \cmd{\ngesdot}
+% \showsymbol{\neqslantless}
+% \showsymbol{\neqslantgtr}
+% \showsymbol{\ncurlyeqprec}
+% \showsymbol{\ncurlyeqsucc}
+% \showsymbol{\simneqq}
+% \showsymbol{\backsimneqq}
+% \showsymbol{\lneq}
+% \showsymbol{\gneq}
+% \showsymbol{\lneqq}, \cmd{\lvertneqq}
+% \showsymbol{\gneqq}, \cmd{\gvertneqq}
+% \showsymbol{\lnsim}
+% \showsymbol{\gnsim}
+% \showsymbol{\lnapprox}
+% \showsymbol{\gnapprox}
+% \showsymbol{\lessneqqgtr}
+% \showsymbol{\gtrneqqless}
+% \showsymbol{\sqsubsetneq}
+% \showsymbol{\sqsupsetneq}
+% \showsymbol{\sqsubsetneqq}
+% \showsymbol{\sqsupsetneqq}
+% \showsymbol{\subsetneq}, \cmd{\varsubsetneq}
+% \showsymbol{\supsetneq}, \cmd{\varsupsetneq}
+% \showsymbol{\subsetneqq}, \cmd{\varsubsetneqq}
+% \showsymbol{\supsetneqq}, \cmd{\varsupsetneqq}
+% \showsymbol{\precneq}
+% \showsymbol{\succneq}
+% \showsymbol{\precneqq}
+% \showsymbol{\succneqq}
+% \showsymbol{\precnsim}
+% \showsymbol{\succnsim}
+% \showsymbol{\precnapprox}
+% \showsymbol{\succnapprox}
+% \showsymbol{\nrightarrow},
+% \cmd{\nto}
+% \showsymbol{\nuparrow}
+% \showsymbol{\nleftarrow},
+% \cmd{\ngets}
+% \showsymbol{\ndownarrow}
+% \showsymbol{\nnearrow}
+% \showsymbol{\nnwarrow}
+% \showsymbol{\nswarrow}
+% \showsymbol{\nsearrow}
+% \showsymbol{\nRightarrow}
+% \showsymbol{\nUparrow}
+% \showsymbol{\nLeftarrow}
+% \showsymbol{\nDownarrow}
+% \showsymbol{\nNearrow}
+% \showsymbol{\nNwarrow}
+% \showsymbol{\nSwarrow}
+% \showsymbol{\nSearrow}
+% \showsymbol{\nleftrightarrow}
+% \showsymbol{\nupdownarrow}
+% \showsymbol{\nneswarrow}
+% \showsymbol{\nnwsearrow}
+% \showsymbol{\nLeftrightarrow}
+% \showsymbol{\nUpdownarrow}
+% \showsymbol{\nNeswarrow}
+% \showsymbol{\nNwsearrow}
+% \showsymbol{\ntwoheadrightarrow}
+% \showsymbol{\ntwoheaduparrow}
+% \showsymbol{\ntwoheadleftarrow}
+% \showsymbol{\ntwoheaddownarrow}
+% \showsymbol{\ntwoheadnearrow}
+% \showsymbol{\ntwoheadnwarrow}
+% \showsymbol{\ntwoheadswarrow}
+% \showsymbol{\ntwoheadsearrow}
+% \showsymbol{\nrightarrowtail}
+% \showsymbol{\nuparrowtail}
+% \showsymbol{\nleftarrowtail}
+% \showsymbol{\ndownarrowtail}
+% \showsymbol{\nnearrowtail}
+% \showsymbol{\nnwarrowtail}
+% \showsymbol{\nswarrowtail}
+% \showsymbol{\nsearrowtail}
+% \showsymbol{\nrightmapsto},
+% \cmd{\nmapsto}
+% \showsymbol{\nupmapsto},
+% \cmd{\nmapsup}
+% \showsymbol{\nleftmapsto},
+% \cmd{\nmapsfrom}
+% \showsymbol{\ndownmapsto},
+% \cmd{\nmapsdown}
+% \showsymbol{\nnemapsto}
+% \showsymbol{\nnwmapsto}
+% \showsymbol{\nswmapsto}
+% \showsymbol{\nsemapsto}
+% \showsymbol{\nlhookrightarrow},
+% \cmd{\nhookrightarrow}
+% \showsymbol{\nlhookuparrow}
+% \showsymbol{\nlhookleftarrow}
+% \showsymbol{\nlhookdownarrow}
+% \showsymbol{\nlhooknearrow}
+% \showsymbol{\nlhooknwarrow},
+% \cmd{\nhknwarrow}
+% \showsymbol{\nlhookswarrow}
+% \showsymbol{\nlhooksearrow},
+% \cmd{\nhksearrow}
+% \showsymbol{\nrhookrightarrow}
+% \showsymbol{\nrhookuparrow}
+% \showsymbol{\nrhookleftarrow},
+% \cmd{\nhookleftarrow}
+% \showsymbol{\nrhookdownarrow}
+% \showsymbol{\nrhooknearrow},
+% \cmd{\nhknearrow}
+% \showsymbol{\nrhooknwarrow}
+% \showsymbol{\nrhookswarrow},
+% \cmd{\nhkswarrow}
+% \showsymbol{\nrhooksearrow}
+% \showsymbol{\nrightharpoonup}
+% \showsymbol{\nupharpoonleft}
+% \showsymbol{\nleftharpoondown}
+% \showsymbol{\ndownharpoonright}
+% \showsymbol{\nneharpoonnw}
+% \showsymbol{\nnwharpoonsw}
+% \showsymbol{\nswharpoonse}
+% \showsymbol{\nseharpoonne}
+% \showsymbol{\nrightharpoondown}
+% \showsymbol{\nupharpoonright},
+% \cmd{\nrestriction}
+% \showsymbol{\nleftharpoonup}
+% \showsymbol{\ndownharpoonleft}
+% \showsymbol{\nneharpoonse}
+% \showsymbol{\nnwharpoonne}
+% \showsymbol{\nswharpoonnw}
+% \showsymbol{\nseharpoonsw}
+% \showsymbol{\nleftrightharpoonupdown}
+% \showsymbol{\nupdownharpoonleftright}
+% \showsymbol{\nneswharpoonnwse}
+% \showsymbol{\nnwseharpoonnesw}
+% \showsymbol{\nleftrightharpoondownup}
+% \showsymbol{\nupdownharpoonrightleft}
+% \showsymbol{\nneswharpoonsenw}
+% \showsymbol{\nnwseharpoonswne}
+% \showsymbol{\nrightleftharpoons}
+% \showsymbol{\nupdownharpoons},
+% \cmd{\nupdownharpoonsleftright}
+% \showsymbol{\nneswharpoons}
+% \showsymbol{\nsenwharpoons}
+% \showsymbol{\nleftrightharpoons}
+% \showsymbol{\ndownupharpoons},
+% \cmd{\ndownupharpoonsleftright}
+% \showsymbol{\nswneharpoons}
+% \showsymbol{\nnwseharpoons}
+% \showsymbol{\nrightbkarrow},
+% \cmd{\ndasharrow},
+% \cmd{\ndashrightarrow}
+% \showsymbol{\nupbkarrow}
+% \showsymbol{\nleftbkarrow},
+% \cmd{\ndashleftarrow}
+% \showsymbol{\ndownbkarrow}
+% \showsymbol{\nnebkarrow}
+% \showsymbol{\nnwbkarrow}
+% \showsymbol{\nswbkarrow}
+% \showsymbol{\nsebkarrow}
+% \showsymbol{\nrightspoon},
+% \cmd{\nmultimap}
+% \showsymbol{\nupspoon},
+% \cmd{\ncirmid}
+% \showsymbol{\nleftspoon},
+% \cmd{\nmultimapinv}
+% \showsymbol{\ndownspoon},
+% \cmd{\nmidcir}
+% \showsymbol{\nrightblackspoon}
+% \showsymbol{\nupblackspoon}
+% \showsymbol{\nleftblackspoon}
+% \showsymbol{\ndownblackspoon}
+% \showsymbol{\nrightpitchfork}
+% \showsymbol{\nuppitchfork},
+% \cmd{\npitchfork}
+% \showsymbol{\nleftpitchfork}
+% \showsymbol{\ndownpitchfork}
+% \showsymbol{\nrightrightarrows}
+% \showsymbol{\nupuparrows}
+% \showsymbol{\nleftleftarrows}
+% \showsymbol{\ndowndownarrows}
+% \showsymbol{\nnenearrows}
+% \showsymbol{\nnwnwarrows}
+% \showsymbol{\nswswarrows}
+% \showsymbol{\nsesearrows}
+% \showsymbol{\nrightleftarrows}
+% \showsymbol{\nupdownarrows}
+% \showsymbol{\nneswarrows}
+% \showsymbol{\nnwsearrows}
+% \showsymbol{\nleftrightarrows}
+% \showsymbol{\ndownuparrows}
+% \showsymbol{\nswnearrows}
+% \showsymbol{\nsenwarrows}
+% \showsymbol{\nrightlsquigarrow},
+% \cmd{\nleadsto},
+% \cmd{\nrightsquigarrow}
+% \showsymbol{\nuplsquigarrow}
+% \showsymbol{\nleftlsquigarrow}
+% \showsymbol{\ndownlsquigarrow}
+% \showsymbol{\nrightrsquigarrow}
+% \showsymbol{\nuprsquigarrow}
+% \showsymbol{\nleftrsquigarrow},
+% \cmd{\nleftsquigarrow}
+% \showsymbol{\ndownrsquigarrow}
+% \showsymbol{\nleftrightsquigarrow}
+% \showsymbol{\nupdownsquigarrow}
+% \showsymbol{\nrightleftsquigarrow}
+% \showsymbol{\ndownupsquigarrow}
+% \showsymbol{\nrightlcurvearrow},
+% \cmd{\ncurvearrowright}
+% \showsymbol{\nuplcurvearrow}
+% \showsymbol{\nleftlcurvearrow}
+% \showsymbol{\ndownlcurvearrow},
+% \cmd{\ncwrightarcarrow}
+% \showsymbol{\nnelcurvearrow}
+% \showsymbol{\nnwlcurvearrow}
+% \showsymbol{\nswlcurvearrow},
+% \cmd{\ncwundercurvearrow}
+% \showsymbol{\nselcurvearrow}
+% \showsymbol{\nrightrcurvearrow},
+% \cmd{\nacwunderarcarrow}
+% \showsymbol{\nuprcurvearrow}
+% \showsymbol{\nleftrcurvearrow},
+% \cmd{\ncurvearrowleft},
+% \cmd{\nacwoverarcarrow}
+% \showsymbol{\ndownrcurvearrow},
+% \cmd{\nacwleftarcarrow}
+% \showsymbol{\nnercurvearrow}
+% \showsymbol{\nnwrcurvearrow}
+% \showsymbol{\nswrcurvearrow}
+% \showsymbol{\nsercurvearrow},
+% \cmd{\nccwundercurvearrow}
+% \showsymbol{\nleftrightcurvearrow}
+% \showsymbol{\nupdowncurvearrow}
+% \showsymbol{\nrightleftcurvearrow}
+% \showsymbol{\ndownupcurvearrow}
+% \showsymbol{\nneswcurvearrow}
+% \showsymbol{\nnwsecurvearrow}
+% \showsymbol{\nswnecurvearrow}
+% \showsymbol{\nsenwcurvearrow}
+% \showsymbol{\nleftfootline},
+% \cmd{\nvlongdash}
+% \showsymbol{\nrightfootline},
+% \cmd{\nlongdashv}
+% \showsymbol{\nacwcirclearrowup}
+% \showsymbol{\nacwcirclearrowleft},
+% \cmd{\ncirclearrowleft},
+% \cmd{\nacwopencirclearrow}
+% \showsymbol{\nacwcirclearrowdown},
+% \cmd{\nacwgapcirclearrow}
+% \showsymbol{\nacwcirclearrowright}
+% \showsymbol{\ncwcirclearrowdown},
+% \cmd{\ncwgapcirclearrow}
+% \showsymbol{\ncwcirclearrowright},
+% \cmd{\ncirclearrowright},
+% \cmd{\ncwopencirclearrow}
+% \showsymbol{\ncwcirclearrowup}
+% \showsymbol{\ncwcirclearrowleft}
+% \showsymbol{\nRrightarrow}
+% \showsymbol{\nUuparrow}
+% \showsymbol{\nLleftarrow}
+% \showsymbol{\nDdownarrow}
+% \showsymbol{\nrightvdash},
+% \cmd{\nvdash},
+% \cmd{\nassert}
+% \showsymbol{\nupvdash},
+% \cmd{\nperp}
+% \showsymbol{\nleftvdash},
+% \cmd{\ndashv}
+% \showsymbol{\ndownvdash}
+% \showsymbol{\nrightvDash},
+% \cmd{\nvDash},
+% \cmd{\nmodels}
+% \showsymbol{\nupvDash},
+% \cmd{\nVbar}
+% \showsymbol{\nleftvDash},
+% \cmd{\nDashv}
+% \showsymbol{\ndownvDash},
+% \cmd{\nbarV}
+% \showsymbol{\nrightVdash},
+% \cmd{\nVdash}
+% \showsymbol{\nupVdash}
+% \showsymbol{\nleftVdash},
+% \cmd{\ndashV}
+% \showsymbol{\ndownVdash}
+% \showsymbol{\nrightVDash},
+% \cmd{\nVDash}
+% \showsymbol{\nupVDash}
+% \showsymbol{\nleftVDash},
+% \cmd{\nDashV}
+% \showsymbol{\ndownVDash}
+% \showsymbol{:}, \cmd{\mathratio}
+% \showsymbol{\Colon}
+% \showsymbol{\relbar}
+% \showsymbol{\rJoin}
+% \showsymbol{\lJoin}
+% \showsymbol{\bowtie}, \cmd{\Join}
+% \showsymbol{\propto}, \cmd{\varpropto}
+% \showsymbol{\backpropto}, \cmd{propfrom}
+% \showsymbol{\crossing}
+% \showsymbol{\between}
+% \showsymbol{\separated}
+% \showsymbol{\shortmid}
+% \showsymbol{\mid}, \cmd{\divides}
+% \showsymbol{\nshortmid}
+% \showsymbol{\nmid}, \cmd{\ndivides}
+% \showsymbol{\shortparallel}
+% \showsymbol{\parallel}
+% \showsymbol{\nshortparallel}
+% \showsymbol{\nparallel}
+% \end{multicols}
+%
+% \subsection{Punctuation symbols}
+%
+% \begin{multicols}{2}
+% \raggedright
+% \showsymbol\cdotp
+% \showsymbol\colon, \cmd{\mathcolon}
+% \end{multicols}
+%
+% \subsection{Large operators}
+%
+% \begin{multicols}{2}
+% \raggedright
+% \showop{\bigplus}
+% \showop{\bigtimes}
+% \showop{\bigwedge}
+% \showop{\bigvee}
+% \showop{\bigwedgedot}
+% \showop{\bigveedot}
+% \showop{\bigdoublewedge},
+% \cmd{\conjquant}
+% \showop{\bigdoublevee},
+% \cmd{\disjquant}
+% \showop{\bigcurlywedge}
+% \showop{\bigcurlyvee}
+% \showop{\bigcurlywedgedot}
+% \showop{\bigcurlyveedot}
+% \showop{\bigdoublecurlywedge}
+% \showop{\bigdoublecurlyvee}
+% \showop{\bigcap}
+% \showop{\bigcup}
+% \showop{\bigcapdot}
+% \showop{\bigcupdot}
+% \showop{\bigcapplus}
+% \showop{\bigcupplus},
+% \cmd{\biguplus}
+% \showop{\bigsqcap}
+% \showop{\bigsqcup}
+% \showop{\bigsqcapdot}
+% \showop{\bigsqcupdot}
+% \showop{\bigsqcapplus}
+% \showop{\bigsqcupplus}
+% \showop{\bigoplus}
+% \showop{\bigotimes}
+% \showop{\bigodot}
+% \showop{\bigoast}
+% \showop{\prod}
+% \showop{\coprod}
+% \showop{\sum}
+% \showop{\osum}
+% \showop{\int}
+% \showop{\iint}
+% \showop{\iiint}
+% \showop{\iiiint}
+% \showop{\idotsint},
+% \cmd{\dotsint}
+% \showop{\landupint},
+% \cmd{\intclockwise}
+% \showop{\landdownint},
+% \cmd{\awint},
+% \cmd{\intctrclockwise}
+% \showop{\intbar}
+% \showop{\intBar}
+% \showop{\fint}
+% \showop{\oint}
+% \showop{\oiint}
+% \showop{\oiiint}
+% \showop{\rcirclerightint},
+% \cmd{\ointctrclockwise}
+% \showop{\lcirclerightint},
+% \cmd{\varointclockwise}
+% \showop{\rcircleleftint},
+% \cmd{\varointctrclockwise}
+% \showop{\lcircleleftint},
+% \cmd{\ointclockwise}
+% \showop{\sumint}
+% \showop{\smallprod}
+% \showop{\smallcoprod}
+% \showop{\smallint}
+% \showop{\surd}
+% \end{multicols}
+%
+% \subsection{Delimiters and accents}
+%
+% \begin{multicols}{2}
+% \raggedright
+% \showlbrace{(}, \cmd{\lparen}
+% \showrbrace{)}, \cmd{\rparen}
+% \showlbrace{[}, \cmd{\lbrack}
+% \showrbrace{]}, \cmd{\rbrack}
+% \showlbrace{\lfloor}
+% \showrbrace{\rfloor}
+% \showlbrace{\lceil}
+% \showrbrace{\rceil}
+% \showlbrace{\ulcorner}
+% \showrbrace{\urcorner}
+% \showlbrace{\llcorner}
+% \showrbrace{\lrcorner}
+% \showlbrace{\ullcorner}
+% \showrbrace{\ulrcorner}
+% \showlbrace{\lsem}, \cmd{\lBrack}
+% \showrbrace{\rsem}, \cmd{\rBrack}
+% \showlbrace{\lbrace}, \cmd{\{}
+% \showrbrace{\rbrace}, \cmd{\}}
+% \showlbrace{\langle}
+% \showrbrace{\rangle}
+% \showlbrace{\lAngle}
+% \showrbrace{\rAngle}
+% \showlbrace{\langledot}
+% \showrbrace{\rangledot}
+% \showmbrace{/}, \cmd{\mathslash}
+% \showmbrace{\backslash}
+% {\catcode`\|=11 \showmbrace{|}, \cmd{\vert}}
+% \showlbrace{\lvert}
+% \showrbrace{\rvert}
+% \showmbrace{\Vert}, \cmd{\|}
+% \showlbrace{\lVert}
+% \showrbrace{\rVert}
+% \showmbrace{\Vvert}
+% \showlbrace{\lVvert}
+% \showrbrace{\rVvert}
+% \showmbrace{\arrowvert}
+% \showmbrace{\Arrowvert}
+% \showlbrace{\lgroup}
+% \showrbrace{\rgroup}
+% \showlbrace{\lmoustache}
+% \showrbrace{\rmoustache}
+% \showmbrace{\bracevert}
+% \showmbrace{\uparrow}
+% \showmbrace{\downarrow}
+% \showmbrace{\updownarrow}
+% \showmbrace{\Uparrow}
+% \showmbrace{\Downarrow}
+% \showmbrace{\Updownarrow}
+% \end{multicols}
+%
+% \begin{multicols}{2}
+% \showover{\overbrace}
+% \showover{\underbrace}
+% \showover{\overgroup}
+% \showover{\undergroup}
+% \showover{\overlinesegment}
+% \showover{\overleftharpoon}
+% \showover{\overrightharpoon}
+% \showover{\underlinesegment}
+% \end{multicols}
+%
+% \begin{multicols}{2}
+% \raggedright
+% \showaccent{\sqrt}
+% \showover{\widehat}
+% \showover{\widetilde}
+% \showover{\wideparen}
+% \showaccent{\vec}
+% \showaccent{\middlebar}
+% \showaccent{\middleslash}
+% \showaccent{\strokethrough}
+% \end{multicols}
+%
+% \subsection{Faked symbols}
+%
+% The following symbols are taken from the text font or
+% another math font (in case of \cmd{\Re} and \cmd{\Im}).
+%
+% \begin{multicols}{2}
+% \raggedright
+
+% \showsymbol{\dagger}
+% \showsymbol{\ddagger}
+% \showsymbol{\mathparagraph}
+% \showsymbol{\mathsection}
+% \showsymbol{\mathdollar}
+% \showsymbol{\mathsterling}
+% \showsymbol{\yen}
+% \showsymbol{\Re}
+% \showsymbol{\Im}
+% \showsymbol{\hbar}
+% \showsymbol{\hslash}
+% \showsymbol{\circledR}
+% \showsymbol{\circledS}
+% \end{multicols}
+%
+% \subsection{Missing symbols}
+%
+% The following symbols from Computer Modern or the AMS fonts are missing
+% in FdSymbol. If available, they should be taken from the text font.
+% \iffalse
+% (For instance, the \pkg{fedraserif} package defines most of them.)
+% \fi
+% \begin{multicols}{3}
+% \parindent=0pt
+% |\mho|\par
+% |\nabla|\par
+% |\eth|\par
+% |\digamma|\par
+% |\varkappa|\par
+% |\Bbbk|\par
+% |\backepsilon|\par
+% |\mapstochar|\par
+% |\lhook|\par
+% |\rhook|\par
+% |\diagup|\par
+% |\diagdown|
+% \end{multicols}
+%
+% \StopEventually{}
+%
+% \section{Implementation}
+%
+% \figureversion{tabular}
+%
+% \begin{macrocode}
+%<*style>
+\RequirePackage{xkeyval}
+% \end{macrocode}
+% We use \pkg{xkeyval}'s key mechanism to declare all options. The
+% first options determines the size of delimiters.
+% \begin{macrocode}
+\define@boolkey{fdsymbol.sty}[fdsy@]{largedelims}[true]{}
+% \end{macrocode}
+% The next option allows to scale the fonts by an arbitrary factor.
+% \begin{macrocode}
+\newcommand{\fdsy@scale}{1.0}
+\define@key{fdsymbol.sty}{scale}{\renewcommand\fdsy@scale{#1}}
+% \end{macrocode}
+% The following two options control which weights are used
+% for which math version and font size.
+% \begin{macrocode}
+\newcommand\fdsy@mweight{Book}
+\newcommand\fdsy@msweight{Book}
+\newcommand\fdsy@bweight{Medium}
+\newcommand\fdsy@bsweight{Medium}
+\define@choicekey*{fdsymbol.sty}{normalweight}[\@tempa\@tempb]{book,regular,auto}{%
+ \ifcase\@tempb\relax
+ \renewcommand\fdsy@mweight{Book}
+ \renewcommand\fdsy@msweight{Book}
+ \or
+ \renewcommand\fdsy@mweight{Regular}
+ \renewcommand\fdsy@msweight{Regular}
+ \or
+ \renewcommand\fdsy@mweight{Book}
+ \renewcommand\fdsy@msweight{Regular}
+ \fi
+}
+\define@choicekey*{fdsymbol.sty}{boldweight}[\@tempa\@tempb]{medium,bold,auto}{%
+ \ifcase\@tempb\relax
+ \renewcommand\fdsy@bweight{Medium}
+ \renewcommand\fdsy@bsweight{Medium}
+ \or
+ \renewcommand\fdsy@bweight{Bold}
+ \renewcommand\fdsy@bsweight{Bold}
+ \or
+ \renewcommand\fdsy@bweight{Medium}
+ \renewcommand\fdsy@bsweight{Bold}
+ \fi
+}
+
+\ExecuteOptionsX{largedelims=false}
+\ProcessOptionsX
+% \end{macrocode}
+% Load external packages, but only if they are not already loaded
+% in order to avoid warning messages about loading a package twice
+% with different options.
+% \begin{macrocode}
+\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
+\@ifpackageloaded{textcomp}{}{\RequirePackage{textcomp}}
+\@ifundefined{mathfrak}{\RequirePackage{eufrak}}{}
+% \end{macrocode}
+% If the option \textsf{largedelims} has been selected, we readjust the
+% scaling factors of big delimiters, so that |\Big|, |\bigg| and |\Bigg| do
+% not change their size.
+% \begin{macrocode}
+\iffdsy@largedelims
+ \renewcommand{\Big}{\bBigg@{1.25}}
+ \renewcommand{\bigg}{\bBigg@{1.66}}
+ \renewcommand{\Bigg}{\bBigg@{2.08}}
+\fi
+% \end{macrocode}
+% Some symbols missing from FdSymbol can be obtained from other fonts or
+% by combining several other symbols.
+% \begin{macrocode}
+\DeclareRobustCommand{\dagger}{\fdsy@text{\textdagger}}
+\DeclareRobustCommand{\ddagger}{\fdsy@text{\textdaggerdbl}}
+\DeclareRobustCommand{\mathparagraph}{\fdsy@text{\textparagraph}}
+\DeclareRobustCommand{\mathsection}{\fdsy@text{\textsection}}
+\DeclareRobustCommand{\mathdollar}{\fdsy@text{\textdollar}}
+\DeclareRobustCommand{\mathsterling}{\fdsy@text{\textsterling}}
+\DeclareRobustCommand{\yen}{\fdsy@text{\textyen}}
+\DeclareRobustCommand{\circledR}{\fdsy@text{\textcircled{%
+ \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}}
+\DeclareRobustCommand{\circledS}{\fdsy@text{\textcircled{%
+ \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont S}}}
+\DeclareRobustCommand{\Re}{\mathfrak{R}}
+\DeclareRobustCommand{\Im}{\mathfrak{I}}
+\DeclareRobustCommand{\dotplus}{\mathbin{\dot{+}}}
+\DeclareRobustCommand{\dotcong}{\mathrel{\dot{\cong}}}
+\DeclareRobustCommand{\thicksim}{\mathrel{\text{\boldmath$\m@th\sim$}}}
+\DeclareRobustCommand{\thickapprox}{\mathrel{\text{\boldmath$\m@th\approx$}}}
+\let\hbar\undefined
+\let\hslash\undefined
+\DeclareRobustCommand{\hbar}{\middlebar h}
+\DeclareRobustCommand{\hslash}{\middleslash h}
+\DeclareRobustCommand{\veebar}{\mathbin{\underline{\vee}}}
+\DeclareRobustCommand{\barwedge}{\mathbin{\overline{\wedge}}}
+\DeclareRobustCommand{\veedoublebar}{\mathbin{\underline{\underline{\vee}}}}
+\DeclareRobustCommand{\doublebarwedge}{\mathbin{\overline{\overline{\wedge}}}}
+\DeclareRobustCommand{\centerdot}{\mathbin{\rule{0.15em}{0.15em}}}
+\DeclareRobustCommand{\divideontimes}{\mathbin{\ooalign{$\div$\crcr$\times$}}}
+% \end{macrocode}
+% Unneeded partial symbols.
+% \begin{macrocode}
+\let\mapstochar\undefined
+\let\lhook\undefined
+\let\rhook\undefined
+% \end{macrocode}
+% Short hands to simplify the definitions below.
+% \begin{macrocode}
+\newcommand\fdsy@setslot[1]{\@tempcnta #1\relax}
+\newcommand\fdsy@nextslot{\advance\@tempcnta 1\relax}
+\newcommand\fdsy@prevslot{\advance\@tempcnta-1\relax}
+
+\newcommand\fdsy@@DeclareSymbol[4]{\DeclareMathSymbol{#2}{#3}{#4}{#1}}
+\newcommand\fdsy@DeclareSymbol[3]{%
+ \if\relax\noexpand#1\let#1\undefined\fi
+ \expandafter\fdsy@@DeclareSymbol\expandafter{\the\@tempcnta}{#1}{#3}{#2}%
+ \fdsy@nextslot
+}
+\newcommand\fdsy@DeclareAlias[3]{\fdsy@prevslot\fdsy@DeclareSymbol{#1}{#2}{#3}}
+\newcommand\fdsy@DeclareOperator[3]{\def#1{\DOTSB#3\slimits@}}
+\newcommand\fdsy@DeclareIntegral[3]{\def#1{\DOTSI#3\ilimits@}}
+\newcommand\fdsy@DeclareDelimiter[4]{%
+ \if\relax\noexpand#1\let#1\undefined\fi
+ \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}%
+}
+\newcommand\fdsy@DeclareOpen[3]{\fdsy@DeclareDelimiter{#1}{\mathopen}{#2}{#3}}
+\newcommand\fdsy@DeclareClose[3]{\fdsy@DeclareDelimiter{#1}{\mathclose}{#2}{#3}}
+% \end{macrocode}
+% Font definitions.
+% \begin{macrocode}
+\DeclareFontFamily{U}{FdSymbolA}{}
+\DeclareFontFamily{U}{FdSymbolB}{}
+\DeclareFontFamily{U}{FdSymbolC}{}
+\DeclareFontFamily{U}{FdSymbolD}{}
+\DeclareFontFamily{U}{FdSymbolE}{}
+\DeclareFontFamily{U}{FdSymbolF}{}
+
+\DeclareFontShape{U}{FdSymbolA}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolA-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolA-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolA}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolA-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolA-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolB}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolB-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolB-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolB}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolB-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolB-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolC}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolC-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolC-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolC}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolC-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolC-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolD}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolD-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolD-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolD}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolD-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolD-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolE}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolE-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolE-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolE}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolE-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolE-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolF}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolF-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolF-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolF}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolF-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolF-\fdsy@bweight
+}{}
+
+\DeclareSymbolFont{symbols}{U}{FdSymbolA}{m}{n}
+\DeclareSymbolFont{relations}{U}{FdSymbolB}{m}{n}
+\DeclareSymbolFont{arrows}{U}{FdSymbolC}{m}{n}
+\DeclareSymbolFont{narrows}{U}{FdSymbolD}{m}{n}
+\DeclareSymbolFont{largesymbols}{U}{FdSymbolE}{m}{n}
+\DeclareSymbolFont{delimiters}{U}{FdSymbolF}{m}{n}
+\SetSymbolFont{symbols}{bold}{U}{FdSymbolA}{b}{n}
+\SetSymbolFont{relations}{bold}{U}{FdSymbolB}{b}{n}
+\SetSymbolFont{arrows}{bold}{U}{FdSymbolC}{b}{n}
+\SetSymbolFont{narrows}{bold}{U}{FdSymbolD}{b}{n}
+\SetSymbolFont{largesymbols}{bold}{U}{FdSymbolE}{b}{n}
+\SetSymbolFont{delimiters}{bold}{U}{FdSymbolF}{b}{n}
+% \end{macrocode}
+% At the moment, we still use cmsy for the calligraphic alphabet.
+% \begin{macrocode}
+\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
+\SetMathAlphabet{\mathcal}{bold}{OMS}{cmsy}{b}{n}
+% \end{macrocode}
+% A command to take math symbols from text fonts.
+% \begin{macrocode}
+\newcommand\fdsy@bold{bold}
+\newcommand\fdsy@text[1]{%
+ \ifx\fdsy@bold\math@version
+ \text{\bfseries#1}%
+ \else
+ \text{\mdseries#1}%
+ \fi
+}
+% \end{macrocode}
+% FdSymbolA: binary operators and ordinary symbols
+% \begin{macrocode}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\cdot}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\cdotp}{symbols}{\mathpunct}
+\fdsy@DeclareSymbol{\hdotdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\vdotdot}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\colon}{symbols}{\mathpunct}
+ \fdsy@DeclareAlias{\mathcolon}{symbols}{\mathpunct}
+ \fdsy@DeclareAlias{\mathratio}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\udotdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\ddotdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\hdots}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\@cdots}{symbols}{\mathinner}
+ \let\cdots\@cdots
+\fdsy@DeclareSymbol{\@vdots}{symbols}{\mathord}
+\DeclareRobustCommand{\vdots}{\ifmmode\@vdots\else\hbox{$\@vdots$}\fi}
+\fdsy@DeclareSymbol{\udots}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\adots}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\ddots}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\righttherefore}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\uptherefore}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\therefore}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\lefttherefore}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\downtherefore}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\because}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\squaredots}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\Colon}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\minus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smalldivslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medbackslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smallsetminus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\plus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\times}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\pm}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\mp}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\dotminus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\minusdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\minusfdots}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\minusrdots}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\dotsminusdots}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\div}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\neg}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lnot}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\minushookdown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\backneg}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\hookdownminus}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\invneg}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\invnot}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\intprod}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\minushookup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\turnedneg}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\turnednot}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\intprodr}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\hookupminus}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\turnedbackneg}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\leftthreetimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\rightthreetimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\dtimes}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\btimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\rtimes}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\rJoin}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\utimes}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\ttimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\ltimes}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\lJoin}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\bowtie}{symbols}{\mathrel}
+ \fdsy@DeclareAlias{\Join}{symbols}{\mathrel}
+ \fdsy@DeclareAlias{\lrtimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\upbowtie}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\hourglass}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\rightY}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\upY}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\leftY}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\downY}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\wedge}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\land}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\vee}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\lor}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\wedgedot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\veedot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublewedge}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\wedgeonwedge}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublevee}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\veeonvee}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\curlywedge}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\curlyvee}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\curlywedgedot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\curlyveedot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublecurlywedge}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublecurlyvee}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\cup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\cap}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublecup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Cup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublecap}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Cap}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\cupdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\capdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\cupplus}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\uplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\capplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcap}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublesqcup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Sqcup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublesqcap}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Sqcap}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcupdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcapdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcupplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcapplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\pullback}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\pushout}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalltriangleright}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalltriangleup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalltriangleleft}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalltriangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacktriangleright}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacktriangleup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacktriangleleft}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacktriangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medtriangleright}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\triangleright}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medtriangleup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\triangle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\vartriangle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medtriangleleft}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\triangleleft}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medtriangledown}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\triangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacktriangleright}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blacktriangleright}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacktriangleup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blacktriangle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacktriangleleft}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blacktriangleleft}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacktriangledown}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blacktriangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\largetriangleup}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\bigtriangleup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\largetriangledown}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\bigtriangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallcircle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circ}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smwhtcircle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblackcircle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\bullet}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smblkcircle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medcircle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgwhtcircle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblackcircle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgblkcircle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\ominus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\overt}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circledvert}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\oslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\obackslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\obslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\oplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\otimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\odot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\ocirc}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circledcirc}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\oast}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circledast}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\odash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circleddash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\oequal}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circledequal}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\emptyset}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\diameter}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\varnothing}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\revemptyset}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\largecircle}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\bigcirc}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lgwhtcircle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\largeblackcircle}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lgblkcircle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smallsquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smwhtsquare}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacksquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smblksquare}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medsquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\square}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Box}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgwhtsquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdwhtsquare}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacksquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgblksquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdblksquare}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxminus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxvert}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\boxbar}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\boxdiag}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxbackslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\boxbslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxtimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxbox}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\largesquare}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lgwhtsquare}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\largeblacksquare}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lgblksquare}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smalldiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\diamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smwhtdiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblackdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blackdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smblkdiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\meddiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Diamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgwhtdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdwhtdiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblackdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgblkdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdblkdiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondminus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondvert}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondbackslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\diamondbslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondtimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamonddot}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\diamondcdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamonddiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalllozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\smwhtlozenge}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smallblacklozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\smblklozenge}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\medlozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\mdlgwhtlozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\mdwhtlozenge}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\medblacklozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\blacklozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\mdlgblklozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\mdblklozenge}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\lozengeminus}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smallwhitestar}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smwhitestar}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblackstar}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\star}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medwhitestar}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblackstar}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\medstar}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\largewhitestar}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\largeblackstar}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\bigstar}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\ast}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\infty}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\propto}{symbols}{\mathrel}
+ \fdsy@DeclareAlias{\varpropto}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\backpropto}{symbols}{\mathrel}
+ \fdsy@DeclareAlias{\propfrom}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\crossing}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\between}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\separated}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\bot}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\top}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\intercal}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\wreath}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\wr}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\angle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\revangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\measuredangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\revmeasuredangle}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\measuredangleleft}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sphericalangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sphericalangleup}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sphericalangleleft}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\revsphericalangle}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\gtlpar}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sphericalangledown}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\rightangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\measuredrightangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\rightanglesquare}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\rightanglesqr}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\measuredrightangledot}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\rightanglemdot}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\prime}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\backprime}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smallprod}{symbols}{\mathop}
+\fdsy@DeclareSymbol{\smallcoprod}{symbols}{\mathop}
+ \fdsy@DeclareAlias{\amalg}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallint}{symbols}{\mathop}
+\fdsy@DeclareSymbol{\checkmark}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\lightning}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\downzigzagarrow}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\diamondsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\vardiamondsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\heartsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\varheartsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\spadesuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\clubsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\maltese}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\starofdavid}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sector}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\forall}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\exists}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\nexists}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\Finv}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\Game}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\complement}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\flat}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\natural}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sharp}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\aleph}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\beth}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\gimel}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\daleth}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\wp}{symbols}{\mathord}
+% \end{macrocode}
+% FdSymbolB: relations
+% \begin{macrocode}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\equal}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\equiv}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\backsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\approx}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\triplesim}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\approxident}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\simeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\backsimeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\cong}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\backcong}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\approxeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\bumpeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\bumpeqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Bumpeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\doteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Doteq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\doteqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\fallingdotseq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\risingdotseq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\smile}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\smallsmile}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\frown}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\smallfrown}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\smilefrown}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\asymp}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\frownsmile}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\closure}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\smileeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\frowneq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\arceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqcirc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\circeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\wedgeq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\hateq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\veeeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\stareq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\triangleeq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\triangleq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\in}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\owns}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ni}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\less}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\le}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ge}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesssim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesseqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtreqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesseqqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtreqqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesseqgtrslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtreqlessslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ll}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gg}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lll}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\llless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ggg}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gggtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\lhd}{relations}{\mathbin}
+ \fdsy@DeclareAlias{\vartriangleleft}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\rhd}{relations}{\mathbin}
+ \fdsy@DeclareAlias{\vartriangleright}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\unlhd}{relations}{\mathbin}
+ \fdsy@DeclareAlias{\trianglelefteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\unrhd}{relations}{\mathbin}
+ \fdsy@DeclareAlias{\trianglerighteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesscc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ltcc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gtcc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqslcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\lescc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqslcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gescc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Sqsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Sqsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Subset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Supset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\prec}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succ}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\preceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\preccurlyeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succcurlyeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\preceqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succeqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqslantdot}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\lesdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqslantdot}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gesdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqslantless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqslantgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\curlyeqprec}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\curlyeqsucc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nequal}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\neq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ne}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nequiv}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbacksim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\napprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ntriplesim}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\napproxident}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsimeq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nsime}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbacksimeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ncong}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbackcong}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\napproxeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbumpeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbumpeqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nBumpeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ndoteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nDoteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nfallingdotseq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nrisingdotseq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsmile}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nfrown}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsmilefrown}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nasymp}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nfrownsmile}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nclosure}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsmileeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nfrowneq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\narceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqcirc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ncirceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nwedgeq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nhateq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nveeeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nstareq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ntriangleeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nin}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\notin}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nowns}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nni}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesssim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlessapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlessgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesseqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtreqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesseqqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtreqqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesseqgtrslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtreqlessslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nll}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngg}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlll}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nggg}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlessclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ntriangleleft}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ntriangleright}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ntrianglelefteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ntrianglerighteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesscc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nltcc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ngtcc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqslcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nlescc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqslcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ngescc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsubseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsupseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsubseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsupseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nSqsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nSqsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsubseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsupseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsubseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsupseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nSubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nSupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nprec}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsucc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\npreceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsucceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\npreccurlyeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsucccurlyeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\npreceqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsucceqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nprecsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsuccsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nprecapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsuccapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlessdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqslantdot}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nlesdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqslantdot}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ngesdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqslantless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqslantgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ncurlyeqprec}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ncurlyeqsucc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\simneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\backsimneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lneqq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\lvertneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gneqq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gvertneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lnsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gnsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lnapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gnapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessneqqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrneqqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubsetneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupsetneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubsetneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupsetneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subsetneq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\varsubsetneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supsetneq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\varsupsetneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subsetneqq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\varsubsetneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supsetneqq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\varsupsetneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precnsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succnsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precnapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succnapprox}{relations}{\mathrel}
+
+\DeclareRobustCommand{\coloneq}{\mathrel{{\vdotdot}{\equal}}}
+\let\coloneqq\coloneq
+% \end{macrocode}
+% FdSymbolC: arrows
+% \begin{macrocode}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\rightarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\to}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftarrow}{arrows}{\mathrel}
+\fdsy@DeclareAlias{\gets}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\searrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Rightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Uparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Leftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Downarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Nearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Nwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Swarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Searrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwsearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Leftrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Updownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Neswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Nwsearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheaduparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheaddownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadnearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadnwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadsearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uparrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nearrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\searrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightmapsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\mapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upmapsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\mapsup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftmapsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\mapsfrom}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downmapsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\mapsdown}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nemapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwmapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swmapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\semapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookrightarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hookrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookuparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookdownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhooknearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhooknwarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hknwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhooksearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hksearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookuparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookleftarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hookleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookdownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhooknearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hknearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhooknwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookswarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hkswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhooksearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightharpoonup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upharpoonleft}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftharpoondown}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downharpoonright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neharpoonnw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwharpoonsw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swharpoonse}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\seharpoonne}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightharpoondown}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upharpoonright}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\restriction}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftharpoonup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downharpoonleft}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neharpoonse}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwharpoonne}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swharpoonnw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\seharpoonsw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightharpoonupdown}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownharpoonleftright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswharpoonnwse}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwseharpoonnesw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightharpoondownup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownharpoonrightleft}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswharpoonsenw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwseharpoonswne}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightleftharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownharpoons}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\updownharpoonsleftright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\senwharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downupharpoons}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\downupharpoonsleftright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swneharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwseharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightbkarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dasharrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dashrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upbkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftbkarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dashleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downbkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nebkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwbkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swbkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\sebkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightspoon}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\multimap}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upspoon}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cirmid}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftspoon}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\multimapinv}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downspoon}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\midcir}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightblackspoon}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upblackspoon}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftblackspoon}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downblackspoon}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightpitchfork}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uppitchfork}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\pitchfork}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftpitchfork}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downpitchfork}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightrightarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upuparrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftleftarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downdownarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nenearrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwnwarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swswarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\sesearrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightleftarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwsearrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downuparrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swnearrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\senwarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightlsquigarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\leadsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\rightsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uplsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftlsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downlsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightrsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uprsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrsquigarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\leftsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downrsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightleftsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downupsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightlcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\curvearrowright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uplcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftlcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downlcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cwrightarcarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nelcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwlcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swlcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cwundercurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\selcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightrcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwunderarcarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uprcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\curvearrowleft}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwoverarcarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downrcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwleftarcarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nercurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwrcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swrcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\sercurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\ccwundercurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updowncurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightleftcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downupcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwsecurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swnecurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\senwcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftfootline}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\vlongdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightfootline}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\longdashv}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\acwcirclearrowup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\acwcirclearrowleft}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\circlearrowleft}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwopencirclearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\acwcirclearrowdown}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwgapcirclearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\acwcirclearrowright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\cwcirclearrowdown}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cwgapcirclearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\cwcirclearrowright}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\circlearrowright}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cwopencirclearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\cwcirclearrowup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\cwcirclearrowleft}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Rrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Uuparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Lleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Ddownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Lsh}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Rsh}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Ldsh}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Rdsh}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\looparrowright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\looparrowleft}{arrows}{\mathrel}
+\fdsy@setslot{224}
+\fdsy@DeclareSymbol{\rightvdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\vdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\assert}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upvdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\perp}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftvdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dashv}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downvdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightvDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\vDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\models}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upvDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\Vbar}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftvDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\Dashv}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downvDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\barV}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightVdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\Vdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upVdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftVdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dashV}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downVdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightVDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\VDash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upVDash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftVDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\DashV}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downVDash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Vvdash}{arrows}{\mathrel}
+
+\DeclareRobustCommand{\relbar}{\mathrel{\smash-}}
+\DeclareRobustCommand{\Relbar}{\mathrel=}
+\let\joinrel\undefined
+\DeclareRobustCommand\joinrel{\mathrel{\mkern-4mu}}
+\DeclareRobustCommand\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
+\DeclareRobustCommand\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
+\DeclareRobustCommand\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
+\DeclareRobustCommand\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
+\DeclareRobustCommand\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
+\DeclareRobustCommand\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
+\DeclareRobustCommand\longmapsto{\DOTSB\leftfootline\mkern-7mu\rightarrow}
+\DeclareRobustCommand\emptyblackspoon{\DOTSB\leftspoon\mkern-13mu\rightblackspoon}
+\let\origof\emptyblackspoon
+\DeclareRobustCommand\filledemptyspoon{\DOTSB\leftblackspoon\mkern-13mu\rightspoon}
+\let\imageof\filledemptyspoon
+\DeclareRobustCommand\leftrightspoon{\DOTSB\leftspoon\mkern-13mu\rightspoon}
+\let\dualmap\leftrightspoon
+\DeclareRobustCommand\leftrightblackspoon{\DOTSB\leftblackspoon\mkern-13mu\rightblackspoon}
+% \end{macrocode}
+% FdSymbolD: stroked arrows
+% \begin{macrocode}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\nrightarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ngets}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nRightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nUparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nLeftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nDownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nNearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nNwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nSwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nSearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwsearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nLeftrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nUpdownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nNeswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nNwsearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheaduparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheaddownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadnearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadnwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadsearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuparrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnearrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsearrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightmapsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupmapsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmapsup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftmapsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmapsfrom}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownmapsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmapsdown}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnemapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwmapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswmapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsemapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookrightarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhookrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookuparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookdownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhooknearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhooknwarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhknwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhooksearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhksearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookuparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookleftarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhookleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookdownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhooknearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhknearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhooknwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookswarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhkswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhooksearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightharpoonup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupharpoonleft}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftharpoondown}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownharpoonright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneharpoonnw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwharpoonsw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswharpoonse}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nseharpoonne}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightharpoondown}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupharpoonright}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nrestriction}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftharpoonup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownharpoonleft}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneharpoonse}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwharpoonne}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswharpoonnw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nseharpoonsw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightharpoonupdown}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownharpoonleftright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswharpoonnwse}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwseharpoonnesw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightharpoondownup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownharpoonrightleft}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswharpoonsenw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwseharpoonswne}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightleftharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownharpoons}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nupdownharpoonsleftright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsenwharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownupharpoons}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndownupharpoonsleftright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswneharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwseharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightbkarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndasharrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndashrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupbkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftbkarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndashleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownbkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnebkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwbkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswbkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsebkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightspoon}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmultimap}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupspoon}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncirmid}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftspoon}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmultimapinv}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownspoon}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmidcir}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightblackspoon}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupblackspoon}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftblackspoon}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownblackspoon}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightpitchfork}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuppitchfork}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\npitchfork}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftpitchfork}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownpitchfork}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightrightarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupuparrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftleftarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndowndownarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnenearrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwnwarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswswarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsesearrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightleftarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwsearrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownuparrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswnearrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsenwarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightlsquigarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nleadsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nrightsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuplsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftlsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownlsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightrsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuprsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrsquigarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nleftsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownrsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightleftsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownupsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightlcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncurvearrowright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuplcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftlcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownlcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncwrightarcarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnelcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwlcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswlcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncwundercurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nselcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightrcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwunderarcarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuprcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncurvearrowleft}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwoverarcarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownrcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwleftarcarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnercurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwrcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswrcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsercurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nccwundercurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdowncurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightleftcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownupcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwsecurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswnecurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsenwcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftfootline}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nvlongdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightfootline}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nlongdashv}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nacwcirclearrowup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nacwcirclearrowleft}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncirclearrowleft}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwopencirclearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nacwcirclearrowdown}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwgapcirclearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nacwcirclearrowright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ncwcirclearrowdown}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncwgapcirclearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ncwcirclearrowright}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncirclearrowright}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncwopencirclearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ncwcirclearrowup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ncwcirclearrowleft}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nRrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nUuparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nLleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nDdownarrow}{narrows}{\mathrel}
+\fdsy@setslot{224}
+\fdsy@DeclareSymbol{\nrightvdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nvdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nassert}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupvdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nperp}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftvdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndashv}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownvdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmodels}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nVbar}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nDashv}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nbarV}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightVdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nVdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupVdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftVdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndashV}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownVdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightVDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nVDash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupVDash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftVDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nDashV}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownVDash}{narrows}{\mathrel}
+% \end{macrocode}
+% FdSymbolE: large operators
+% \begin{macrocode}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\tbigplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigtimes}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigtimes}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigwedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigwedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigwedgedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigwedgedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigveedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigveedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigdoublewedge}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tconjquant}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigdoublewedge}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dconjquant}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigdoublevee}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tdisjquant}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigdoublevee}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\ddisjquant}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcurlywedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcurlywedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcurlyvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcurlyvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcurlywedgedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcurlywedgedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcurlyveedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcurlyveedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigdoublecurlywedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigdoublecurlywedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigdoublecurlyvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigdoublecurlyvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcap}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcap}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcup}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcup}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcapdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcapdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcupdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcupdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcapplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcapplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcupplus}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tbiguplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcupplus}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dbiguplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcap}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcap}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcup}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcup}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcapdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcapdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcupdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcupdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcapplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcapplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcupplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcupplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigoplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigoplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigotimes}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigotimes}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigodot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigodot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigoast}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigoast}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tprod}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dprod}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tcoprod}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dcoprod}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tsum}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dsum}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tosum}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dosum}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\diint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\diiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tiiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\diiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tidotsint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tdotsint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\didotsint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\ddotsint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tlandupint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tintclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dlandupint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dintclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tlanddownint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tawint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tintctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dlanddownint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dawint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dintctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tintbar}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dintbar}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tintBar}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dintBar}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tfint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dfint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\toint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\doint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\toiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\doiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\toiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\doiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\trcirclerightint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tointctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\drcirclerightint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dointctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tlcirclerightint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tvarointclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dlcirclerightint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dvarointclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\trcircleleftint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tvarointctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\drcircleleftint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dvarointctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tlcircleleftint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tointclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dlcircleleftint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dointclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tsumint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dsumint}{largesymbols}{\mathop}
+\let\intop\tint
+\let\ointop\toint
+
+\fdsy@DeclareOperator{\bigplus}{\dbigplus}{\tbigplus}
+\fdsy@DeclareOperator{\bigtimes}{\dbigtimes}{\tbigtimes}
+\fdsy@DeclareOperator{\bigwedge}{\dbigwedge}{\tbigwedge}
+\fdsy@DeclareOperator{\bigvee}{\dbigvee}{\tbigvee}
+\fdsy@DeclareOperator{\bigwedgedot}{\dbigwedgedot}{\tbigwedgedot}
+\fdsy@DeclareOperator{\bigveedot}{\dbigveedot}{\tbigveedot}
+\fdsy@DeclareOperator{\bigdoublewedge}{\dbigdoublewedge}{\tbigdoublewedge}
+\fdsy@DeclareOperator{\conjquant}{\dconjquant}{\tconjquant}
+\fdsy@DeclareOperator{\bigdoublevee}{\dbigdoublevee}{\tbigdoublevee}
+\fdsy@DeclareOperator{\disjquant}{\ddisjquant}{\tdisjquant}
+\fdsy@DeclareOperator{\bigcurlywedge}{\dbigcurlywedge}{\tbigcurlywedge}
+\fdsy@DeclareOperator{\bigcurlyvee}{\dbigcurlyvee}{\tbigcurlyvee}
+\fdsy@DeclareOperator{\bigcurlywedgedot}{\dbigcurlywedgedot}{\tbigcurlywedgedot}
+\fdsy@DeclareOperator{\bigcurlyveedot}{\dbigcurlyveedot}{\tbigcurlyveedot}
+\fdsy@DeclareOperator{\bigdoublecurlywedge}{\dbigdoublecurlywedge}{\tbigdoublecurlywedge}
+\fdsy@DeclareOperator{\bigdoublecurlyvee}{\dbigdoublecurlyvee}{\tbigdoublecurlyvee}
+\fdsy@DeclareOperator{\bigcap}{\dbigcap}{\tbigcap}
+\fdsy@DeclareOperator{\bigcup}{\dbigcup}{\tbigcup}
+\fdsy@DeclareOperator{\bigcapdot}{\dbigcapdot}{\tbigcapdot}
+\fdsy@DeclareOperator{\bigcupdot}{\dbigcupdot}{\tbigcupdot}
+\fdsy@DeclareOperator{\bigcapplus}{\dbigcapplus}{\tbigcapplus}
+\fdsy@DeclareOperator{\bigcupplus}{\dbigcupplus}{\tbigcupplus}
+\fdsy@DeclareOperator{\biguplus}{\dbiguplus}{\tbiguplus}
+\fdsy@DeclareOperator{\bigsqcap}{\dbigsqcap}{\tbigsqcap}
+\fdsy@DeclareOperator{\bigsqcup}{\dbigsqcup}{\tbigsqcup}
+\fdsy@DeclareOperator{\bigsqcapdot}{\dbigsqcapdot}{\tbigsqcapdot}
+\fdsy@DeclareOperator{\bigsqcupdot}{\dbigsqcupdot}{\tbigsqcupdot}
+\fdsy@DeclareOperator{\bigsqcapplus}{\dbigsqcapplus}{\tbigsqcapplus}
+\fdsy@DeclareOperator{\bigsqcupplus}{\dbigsqcupplus}{\tbigsqcupplus}
+\fdsy@DeclareOperator{\bigoplus}{\dbigoplus}{\tbigoplus}
+\fdsy@DeclareOperator{\bigotimes}{\dbigotimes}{\tbigotimes}
+\fdsy@DeclareOperator{\bigodot}{\dbigodot}{\tbigodot}
+\fdsy@DeclareOperator{\bigoast}{\dbigoast}{\tbigoast}
+\fdsy@DeclareOperator{\sum}{\dsum}{\tsum}
+\fdsy@DeclareOperator{\osum}{\dosum}{\tosum}
+\fdsy@DeclareOperator{\prod}{\dprod}{\tprod}
+\fdsy@DeclareOperator{\coprod}{\dcoprod}{\tcoprod}
+\fdsy@DeclareIntegral{\iint}{\diint}{\tiint}
+\fdsy@DeclareIntegral{\iiint}{\diiint}{\tiiint}
+\fdsy@DeclareIntegral{\iiiint}{\diiiint}{\tiiiint}
+\fdsy@DeclareIntegral{\idotsint}{\didotsint}{\tidotsint}
+\fdsy@DeclareIntegral{\dotsint}{\ddotsint}{\tdotsint}
+\fdsy@DeclareIntegral{\landupint}{\dlandupint}{\tlandupint}
+\fdsy@DeclareIntegral{\intclockwise}{\dintclockwise}{\tintclockwise}
+\fdsy@DeclareIntegral{\landdownint}{\dlanddownint}{\tlanddownint}
+\fdsy@DeclareIntegral{\awint}{\dawint}{\tawint}
+\fdsy@DeclareIntegral{\intctrclockwise}{\dintctrclockwise}{\tintctrclockwise}
+\fdsy@DeclareIntegral{\landdownint}{\dlanddownint}{\tlanddownint}
+\fdsy@DeclareIntegral{\intbar}{\dintbar}{\tintbar}
+\fdsy@DeclareIntegral{\intBar}{\dintBar}{\tintBar}
+\fdsy@DeclareIntegral{\fint}{\dfint}{\tfint}
+\fdsy@DeclareIntegral{\oiint}{\doiint}{\toiint}
+\fdsy@DeclareIntegral{\oiiint}{\doiiint}{\toiiint}
+\fdsy@DeclareIntegral{\rcirclerightint}{\drcirclerightint}{\trcirclerightint}
+\fdsy@DeclareIntegral{\ointctrclockwise}{\dointctrclockwise}{\tointctrclockwise}
+\fdsy@DeclareIntegral{\lcirclerightint}{\dlcirclerightint}{\tlcirclerightint}
+\fdsy@DeclareIntegral{\varointclockwise}{\dvarointclockwise}{\tvarointclockwise}
+\fdsy@DeclareIntegral{\rcircleleftint}{\drcircleleftint}{\trcircleleftint}
+\fdsy@DeclareIntegral{\varointctrclockwise}{\dvarointctrclockwise}{\tvarointctrclockwise}
+\fdsy@DeclareIntegral{\lcircleleftint}{\dlcircleleftint}{\tlcircleleftint}
+\fdsy@DeclareIntegral{\ointclockwise}{\dointclockwise}{\tointclockwise}
+\fdsy@DeclareIntegral{\sumint}{\dsumint}{\tsumint}
+
+\def\intkern@{\mkern-8.5mu\mathchoice{\mkern-1mu}{}{}{}}
+\def\intdots@{\mkern-6mu%
+ \mathchoice{\@cdots}%
+ {{\cdotp}\mkern0.5mu{\cdotp}\mkern0.5mu{\cdotp}}%
+ {{\cdotp}{\cdotp}{\cdotp}}%
+ {{\cdotp}{\cdotp}{\cdotp}}%
+ \mkern-6mu}
+% \end{macrocode}
+% Math accents.
+% \begin{macrocode}
+\DeclareMathAccent{\widehat}{\mathord}{largesymbols}{"72}
+\DeclareMathAccent{\widetilde}{\mathord}{largesymbols}{"78}
+\DeclareMathAccent{\wideparen}{\mathord}{largesymbols}{"7E}
+\DeclareMathAccent{\vec}{\mathord}{largesymbols}{"84}
+\DeclareMathAccent{\middlebar}{\mathord}{largesymbols}{"85}
+\DeclareMathAccent{\middleslash}{\mathord}{largesymbols}{"86}
+\DeclareMathAccent{\strokethrough}{\mathord}{largesymbols}{"87}
+% \end{macrocode}
+% FdSymbolF: delimiters
+% \begin{macrocode}
+\let\lfloor\undefined
+\let\rfloor\undefined
+\let\lceil\undefined
+\let\rceil\undefined
+\let\langle\undefined
+\let\rangle\undefined
+\iffdsy@largedelims
+ \fdsy@DeclareOpen{(}{delimiters}{"01}
+ \fdsy@DeclareClose{)}{delimiters}{"07}
+ \fdsy@DeclareOpen{\lparen}{delimiters}{"01}
+ \fdsy@DeclareClose{\rparen}{delimiters}{"07}
+ \fdsy@DeclareOpen{[}{delimiters}{"13}
+ \fdsy@DeclareClose{]}{delimiters}{"19}
+ \fdsy@DeclareOpen{\lbrack}{delimiters}{"13}
+ \fdsy@DeclareClose{\rbrack}{delimiters}{"19}
+ \fdsy@DeclareOpen{\lfloor}{delimiters}{"1F}
+ \fdsy@DeclareClose{\rfloor}{delimiters}{"25}
+ \fdsy@DeclareOpen{\lceil}{delimiters}{"2B}
+ \fdsy@DeclareClose{\rceil}{delimiters}{"31}
+ \fdsy@DeclareOpen{\ulcorner}{delimiters}{"37}
+ \fdsy@DeclareClose{\urcorner}{delimiters}{"3D}
+ \fdsy@DeclareOpen{\llcorner}{delimiters}{"43}
+ \fdsy@DeclareClose{\lrcorner}{delimiters}{"49}
+ \fdsy@DeclareOpen{\ullcorner}{delimiters}{"4F}
+ \fdsy@DeclareClose{\ulrcorner}{delimiters}{"55}
+ \fdsy@DeclareOpen{\lsem}{delimiters}{"61}
+ \fdsy@DeclareClose{\rsem}{delimiters}{"67}
+ \fdsy@DeclareOpen{\lBrack}{delimiters}{"61}
+ \fdsy@DeclareClose{\rBrack}{delimiters}{"67}
+ \fdsy@DeclareOpen{\lbrace}{delimiters}{"73}
+ \fdsy@DeclareClose{\rbrace}{delimiters}{"79}
+ \fdsy@DeclareOpen{<}{delimiters}{"86}
+ \fdsy@DeclareClose{>}{delimiters}{"8C}
+ \fdsy@DeclareOpen{\langle}{delimiters}{"86}
+ \fdsy@DeclareClose{\rangle}{delimiters}{"8C}
+ \fdsy@DeclareOpen{\lAngle}{delimiters}{"92}
+ \fdsy@DeclareClose{\rAngle}{delimiters}{"98}
+ \fdsy@DeclareOpen{\langledot}{delimiters}{"9E}
+ \fdsy@DeclareClose{\rangledot}{delimiters}{"A4}
+ \fdsy@DeclareDelimiter{/}{\mathord}{delimiters}{"AA}
+ \fdsy@DeclareDelimiter{\mathslash}{\mathord}{delimiters}{"AA}
+ \DeclareMathSymbol{\divslash}{\mathbin}{delimiters}{"AA}
+ \fdsy@DeclareDelimiter{\backslash}{\mathord}{delimiters}{"B0}
+ \expandafter\DeclareMathDelimiter\@backslashchar%
+ {\mathord}{delimiters}{"B0}{delimiters}{"B0}
+ \DeclareMathSymbol{\setminus}{\mathbin}{delimiters}{"B0}
+ \fdsy@DeclareDelimiter{|}{\mathord}{delimiters}{"B7}
+ \fdsy@DeclareDelimiter{\vert}{\mathord}{delimiters}{"B7}
+ \fdsy@DeclareOpen{\lvert}{delimiters}{"B7}
+ \fdsy@DeclareClose{\rvert}{delimiters}{"B7}
+ \DeclareMathSymbol{\mid}{\mathrel}{delimiters}{"B7}
+ \DeclareMathSymbol{\nmid}{\mathrel}{delimiters}{"BA}
+ \fdsy@DeclareDelimiter{\Vert}{\mathord}{delimiters}{"BE}
+ \fdsy@DeclareOpen{\lVert}{delimiters}{"BE}
+ \fdsy@DeclareClose{\rVert}{delimiters}{"BE}
+ \DeclareMathSymbol{\parallel}{\mathrel}{delimiters}{"BE}
+ \DeclareMathSymbol{\nparallel}{\mathrel}{delimiters}{"C1}
+ \fdsy@DeclareDelimiter{\Vvert}{\mathord}{delimiters}{"C4}
+ \fdsy@DeclareOpen{\lVvert}{delimiters}{"C4}
+ \fdsy@DeclareClose{\rVvert}{delimiters}{"C4}
+\else
+ \fdsy@DeclareOpen{(}{delimiters}{"00}
+ \fdsy@DeclareClose{)}{delimiters}{"06}
+ \fdsy@DeclareOpen{\lparen}{delimiters}{"00}
+ \fdsy@DeclareClose{\rparen}{delimiters}{"06}
+ \fdsy@DeclareOpen{[}{delimiters}{"12}
+ \fdsy@DeclareClose{]}{delimiters}{"18}
+ \fdsy@DeclareOpen{\lbrack}{delimiters}{"12}
+ \fdsy@DeclareClose{\rbrack}{delimiters}{"18}
+ \fdsy@DeclareOpen{\lfloor}{delimiters}{"1E}
+ \fdsy@DeclareClose{\rfloor}{delimiters}{"24}
+ \fdsy@DeclareOpen{\lceil}{delimiters}{"2A}
+ \fdsy@DeclareClose{\rceil}{delimiters}{"30}
+ \fdsy@DeclareOpen{\ulcorner}{delimiters}{"36}
+ \fdsy@DeclareClose{\urcorner}{delimiters}{"3C}
+ \fdsy@DeclareOpen{\llcorner}{delimiters}{"42}
+ \fdsy@DeclareClose{\lrcorner}{delimiters}{"48}
+ \fdsy@DeclareOpen{\ullcorner}{delimiters}{"4E}
+ \fdsy@DeclareClose{\ulrcorner}{delimiters}{"54}
+ \fdsy@DeclareOpen{\lsem}{delimiters}{"60}
+ \fdsy@DeclareClose{\rsem}{delimiters}{"66}
+ \fdsy@DeclareOpen{\lBrack}{delimiters}{"60}
+ \fdsy@DeclareClose{\rBrack}{delimiters}{"66}
+ \fdsy@DeclareOpen{\lbrace}{delimiters}{"72}
+ \fdsy@DeclareClose{\rbrace}{delimiters}{"78}
+ \fdsy@DeclareOpen{<}{delimiters}{"85}
+ \fdsy@DeclareClose{>}{delimiters}{"8B}
+ \fdsy@DeclareOpen{\langle}{delimiters}{"85}
+ \fdsy@DeclareClose{\rangle}{delimiters}{"8B}
+ \fdsy@DeclareOpen{\lAngle}{delimiters}{"91}
+ \fdsy@DeclareClose{\rAngle}{delimiters}{"97}
+ \fdsy@DeclareOpen{\langledot}{delimiters}{"9D}
+ \fdsy@DeclareClose{\rangledot}{delimiters}{"A3}
+ \fdsy@DeclareDelimiter{/}{\mathord}{delimiters}{"A9}
+ \fdsy@DeclareDelimiter{\mathslash}{\mathord}{delimiters}{"A9}
+ \DeclareMathSymbol{\divslash}{\mathbin}{delimiters}{"A9}
+ \fdsy@DeclareDelimiter{\backslash}{\mathord}{delimiters}{"AF}
+ \expandafter\DeclareMathDelimiter\@backslashchar%
+ {\mathord}{delimiters}{"AF}{delimiters}{"AF}
+ \DeclareMathSymbol{\setminus}{\mathbin}{delimiters}{"AF}
+ \fdsy@DeclareDelimiter{|}{\mathord}{delimiters}{"B6}
+ \fdsy@DeclareDelimiter{\vert}{\mathord}{delimiters}{"B6}
+ \fdsy@DeclareOpen{\lvert}{delimiters}{"B6}
+ \fdsy@DeclareClose{\rvert}{delimiters}{"B6}
+ \DeclareMathSymbol{\mid}{\mathrel}{delimiters}{"B6}
+ \DeclareMathSymbol{\nmid}{\mathrel}{delimiters}{"B9}
+ \fdsy@DeclareDelimiter{\Vert}{\mathord}{delimiters}{"BD}
+ \fdsy@DeclareOpen{\lVert}{delimiters}{"BD}
+ \fdsy@DeclareClose{\rVert}{delimiters}{"BD}
+ \DeclareMathSymbol{\parallel}{\mathrel}{delimiters}{"BD}
+ \DeclareMathSymbol{\nparallel}{\mathrel}{delimiters}{"C0}
+ \fdsy@DeclareDelimiter{\Vvert}{\mathord}{delimiters}{"C3}
+ \fdsy@DeclareOpen{\lVvert}{delimiters}{"C3}
+ \fdsy@DeclareClose{\rVvert}{delimiters}{"C3}
+\fi
+\let\|\Vert
+\let\divides\mid
+\let\ndivides\nmid
+\DeclareMathSymbol{\shortmid}{\mathrel}{delimiters}{"B5}
+\DeclareMathSymbol{\nshortmid}{\mathrel}{delimiters}{"B8}
+\DeclareMathSymbol{\shortparallel}{\mathrel}{delimiters}{"BC}
+\DeclareMathSymbol{\nshortparallel}{\mathrel}{delimiters}{"BF}
+\fdsy@DeclareDelimiter{\arrowvert}{\mathord}{delimiters}{"BB}
+\fdsy@DeclareDelimiter{\Arrowvert}{\mathord}{delimiters}{"C2}
+\fdsy@DeclareClose{\lgroup}{delimiters}{"7E}
+\fdsy@DeclareOpen{\rgroup}{delimiters}{"7F}
+\fdsy@DeclareClose{\rmoustache}{delimiters}{"80}
+\fdsy@DeclareOpen{\lmoustache}{delimiters}{"81}
+\fdsy@DeclareDelimiter{\bracevert}{\mathord}{delimiters}{"84}
+\let\uparrow\undefined
+\let\downarrow\undefined
+\let\updownarrow\undefined
+\let\Uparrow\undefined
+\let\Downarrow\undefined
+\let\Updownarrow\undefined
+\DeclareMathDelimiter{\uparrow}{\mathrel}{arrows}{"01}{delimiters}{"C6}
+\DeclareMathDelimiter{\downarrow}{\mathrel}{arrows}{"03}{delimiters}{"C7}
+\DeclareMathDelimiter{\updownarrow}{\mathrel}{arrows}{"11}{delimiters}{"C8}
+\DeclareMathDelimiter{\Uparrow}{\mathrel}{arrows}{"09}{delimiters}{"C9}
+\DeclareMathDelimiter{\Downarrow}{\mathrel}{arrows}{"0B}{delimiters}{"CA}
+\DeclareMathDelimiter{\Updownarrow}{\mathrel}{arrows}{"15}{delimiters}{"CB}
+% \end{macrocode}
+% Horizontal braces.
+% \begin{macrocode}
+\DeclareMathSymbol{\braceld}{\mathord}{delimiters}{"CC}
+\DeclareMathSymbol{\bracelu}{\mathord}{delimiters}{"CD}
+\DeclareMathSymbol{\bracerd}{\mathord}{delimiters}{"CE}
+\DeclareMathSymbol{\braceru}{\mathord}{delimiters}{"CF}
+\DeclareMathSymbol{\bracemd}{\mathord}{delimiters}{"D0}
+\DeclareMathSymbol{\bracemu}{\mathord}{delimiters}{"D1}
+\DeclareMathSymbol{\bracemid}{\mathord}{delimiters}{"D2}
+
+\def\bracefill@#1#2#3#4#5{$\m@th#5#1\leaders\hbox{$#4$}\hfill#2\leaders\hbox{$#4$}\hfill#3$}
+\def\downbracefill@{\bracefill@\braceld\bracemd\bracerd\bracemid}
+\def\upbracefill@{\bracefill@\bracelu\bracemu\braceru\bracemid}
+\def\downgroupfill@{\bracefill@\braceld{}\bracerd\bracemid}
+\def\upgroupfill@{\bracefill@\bracelu{}\braceru\bracemid}
+\def\linesegmentfill@{\arrowfill@\leftfootline\relbar\rightfootline}
+\def\leftharpoonfill@{\arrowfill@\leftharpoondown\relbar\relbar}
+\def\rightharpoonfill@{\arrowfill@\relbar\relbar\rightharpoonup}
+
+\DeclareRobustCommand{\overbrace}[1]{\mathop{\mathpalette{\overarrow@\downbracefill@}{#1}}\limits}
+\DeclareRobustCommand{\underbrace}[1]{\mathop{\mathpalette{\underarrow@\upbracefill@}{#1}}\limits}
+\DeclareRobustCommand{\overgroup}{\mathpalette{\overarrow@\downgroupfill@}}
+\DeclareRobustCommand{\undergroup}{\mathpalette{\underarrow@\upgroupfill@}}
+\DeclareRobustCommand{\overlinesegment}{\mathpalette{\overarrow@\linesegmentfill@}}
+\DeclareRobustCommand{\overleftharpoon}{\mathpalette{\overarrow@\leftharpoonfill@}}
+\DeclareRobustCommand{\overrightharpoon}{\mathpalette{\overarrow@\rightharpoonfill@}}
+\DeclareRobustCommand{\underlinesegment}{\mathpalette{\underarrow@\linesegmentfill@}}
+% \end{macrocode}
+% Radical symbols.
+% \begin{macrocode}
+\iffdsy@largedelims
+ \DeclareMathRadical{\sqrtsign}{delimiters}{"D4}{delimiters}{"D4}
+ \DeclareMathSymbol{\surd}{\mathop}{delimiters}{"D4}
+\else
+ \DeclareMathRadical{\sqrtsign}{delimiters}{"D3}{delimiters}{"D3}
+ \DeclareMathSymbol{\surd}{\mathop}{delimiters}{"D3}
+\fi
+% \end{macrocode}
+% In the \textit{n}-th root, we don't want the~\textit{n} to come too
+% close to the radical (adopted from package \textsf{lucimatx}).
+% \begin{macrocode}
+\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}%
+ \dimen@\ht\z@ \advance\dimen@-\dp\z@
+ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-8mu\box\z@}
+% \end{macrocode}
+% Mathchars.
+% \begin{macrocode}
+\DeclareMathSymbol{+}{\mathbin}{symbols}{"11}
+\DeclareMathSymbol{-}{\mathbin}{symbols}{"0E}
+\DeclareMathSymbol{*}{\mathbin}{symbols}{"93}
+\DeclareMathSymbol{:}{\mathrel}{symbols}{"02}
+\DeclareMathSymbol{=}{\mathrel}{relations}{"00}
+\DeclareMathSymbol{<}{\mathrel}{relations}{"22}
+\DeclareMathSymbol{>}{\mathrel}{relations}{"23}
+\iffdsy@largedelims
+ \DeclareMathSymbol{|}{\mathord}{delimiters}{"B6}
+ \DeclareMathSymbol{(}{\mathopen}{delimiters}{"01}
+ \DeclareMathSymbol{)}{\mathclose}{delimiters}{"07}
+ \DeclareMathSymbol{[}{\mathopen}{delimiters}{"13}
+ \DeclareMathSymbol{]}{\mathclose}{delimiters}{"19}
+ \DeclareMathSymbol{/}{\mathord}{delimiters}{"AA}
+\else
+ \DeclareMathSymbol{|}{\mathord}{delimiters}{"B5}
+ \DeclareMathSymbol{(}{\mathopen}{delimiters}{"00}
+ \DeclareMathSymbol{)}{\mathclose}{delimiters}{"06}
+ \DeclareMathSymbol{[}{\mathopen}{delimiters}{"12}
+ \DeclareMathSymbol{]}{\mathclose}{delimiters}{"18}
+ \DeclareMathSymbol{/}{\mathord}{delimiters}{"A9}
+\fi
+% \end{macrocode}
+% There is no |\not| symbol in FdSymbol since all relational symbols come
+% with a stroked companion. For compatibility we define a |\not| command that
+% places a virgule over the following symbol.
+% \begin{macrocode}
+\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1/\hfil$\crcr$#1#2$}}
+\def\not#1{\mathrel{\m@th\mathpalette\c@ncel{#1}}}
+%</style>
+% \end{macrocode}
+%
+% \CheckSum{0}
+% \CharacterTable
+% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z
+% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z
+% Digits \0\1\2\3\4\5\6\7\8\9
+% Exclamation \! Double quote \" Hash (number) \#
+% Dollar \$ Percent \% Ampersand \&
+% Acute accent \' Left paren \( Right paren \)
+% Asterisk \* Plus \+ Comma \,
+% Minus \- Point \. Solidus \/
+% Colon \: Semicolon \; Less than \<
+% Equals \= Greater than \> Question mark \?
+% Commercial at \@ Left bracket \[ Backslash \\
+% Right bracket \] Circumflex \^ Underscore \_
+% Grave accent \` Left brace \{ Vertical bar \|
+% Right brace \} Tilde \~}
+%
+% \Finale
+\endinput
diff --git a/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.ins b/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.ins
new file mode 100644
index 00000000000..a936394897c
--- /dev/null
+++ b/Master/texmf-dist/source/latex/fdsymbol/fdsymbol.ins
@@ -0,0 +1,55 @@
+%
+% Copyright (c) 2011 by Michael Ummels <michael.ummels@rwth-aachen.de>
+%
+% This work may be distributed and/or modified under the
+% conditions of the LaTeX Project Public License, either version 1.3c
+% of this license or (at your option) any later version.
+% The latest version of this license is in
+% http://www.latex-project.org/lppl.txt
+% and version 1.3 or later is part of all distributions of LaTeX
+% version 2005/12/01 or later.
+%
+% This work has the LPPL maintenance status `maintained'.
+%
+% The Current Maintainer of this work is Michael Ummels.
+%
+% This work consists of the files fdsymbol.dtx, fdsymbol.ins
+% and the derived file fdsymbol.sty.
+%
+
+\input docstrip.tex
+
+\preamble
+
+This is a generated file.
+
+Copyright (c) 2011 by Michael Ummels <michael.ummels@rwth-aachen.de>
+
+This work may be distributed and/or modified under the
+conditions of the LaTeX Project Public License, either version 1.3c
+of this license or (at your option) any later version.
+The latest version of this license is in
+ http://www.latex-project.org/lppl.txt
+and version 1.3 or later is part of all distributions of LaTeX
+version 2005/12/01 or later.
+
+This work has the LPPL maintenance status `maintained'.
+
+The Current Maintainer of this work is Michael Ummels.
+
+This work consists of the files fdsymbol.dtx, fdsymbol.ins
+and the derived file fdsymbol.sty.
+
+\endpreamble
+
+\postamble
+\endpostamble
+
+\keepsilent
+\askforoverwritetrue
+
+\generate{%
+ \file{fdsymbol.sty}{\from{fdsymbol.dtx}{style}}
+}
+
+\endbatchfile
diff --git a/Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty b/Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty
new file mode 100644
index 00000000000..ec733cc3aaa
--- /dev/null
+++ b/Master/texmf-dist/tex/latex/fdsymbol/fdsymbol.sty
@@ -0,0 +1,1754 @@
+%%
+%% This is file `fdsymbol.sty',
+%% generated with the docstrip utility.
+%%
+%% The original source files were:
+%%
+%% fdsymbol.dtx (with options: `style')
+%%
+%% This is a generated file.
+%%
+%% Copyright (c) 2011 by Michael Ummels <michael.ummels@rwth-aachen.de>
+%%
+%% This work may be distributed and/or modified under the
+%% conditions of the LaTeX Project Public License, either version 1.3c
+%% of this license or (at your option) any later version.
+%% The latest version of this license is in
+%% http://www.latex-project.org/lppl.txt
+%% and version 1.3 or later is part of all distributions of LaTeX
+%% version 2005/12/01 or later.
+%%
+%% This work has the LPPL maintenance status `maintained'.
+%%
+%% The Current Maintainer of this work is Michael Ummels.
+%%
+%% This work consists of the files fdsymbol.dtx, fdsymbol.ins
+%% and the derived file fdsymbol.sty.
+%%
+\NeedsTeXFormat{LaTeX2e}[1999/12/01]
+\ProvidesPackage{fdsymbol}[2011/05/09 v0.5a FdSymbol support package]
+
+\RequirePackage{xkeyval}
+\define@boolkey{fdsymbol.sty}[fdsy@]{largedelims}[true]{}
+\newcommand{\fdsy@scale}{1.0}
+\define@key{fdsymbol.sty}{scale}{\renewcommand\fdsy@scale{#1}}
+\newcommand\fdsy@mweight{Book}
+\newcommand\fdsy@msweight{Book}
+\newcommand\fdsy@bweight{Medium}
+\newcommand\fdsy@bsweight{Medium}
+\define@choicekey*{fdsymbol.sty}{normalweight}[\@tempa\@tempb]{book,regular,auto}{%
+ \ifcase\@tempb\relax
+ \renewcommand\fdsy@mweight{Book}
+ \renewcommand\fdsy@msweight{Book}
+ \or
+ \renewcommand\fdsy@mweight{Regular}
+ \renewcommand\fdsy@msweight{Regular}
+ \or
+ \renewcommand\fdsy@mweight{Book}
+ \renewcommand\fdsy@msweight{Regular}
+ \fi
+}
+\define@choicekey*{fdsymbol.sty}{boldweight}[\@tempa\@tempb]{medium,bold,auto}{%
+ \ifcase\@tempb\relax
+ \renewcommand\fdsy@bweight{Medium}
+ \renewcommand\fdsy@bsweight{Medium}
+ \or
+ \renewcommand\fdsy@bweight{Bold}
+ \renewcommand\fdsy@bsweight{Bold}
+ \or
+ \renewcommand\fdsy@bweight{Medium}
+ \renewcommand\fdsy@bsweight{Bold}
+ \fi
+}
+
+\ExecuteOptionsX{largedelims=false}
+\ProcessOptionsX
+\@ifpackageloaded{amsmath}{}{\RequirePackage{amsmath}}
+\@ifpackageloaded{textcomp}{}{\RequirePackage{textcomp}}
+\@ifundefined{mathfrak}{\RequirePackage{eufrak}}{}
+\iffdsy@largedelims
+ \renewcommand{\Big}{\bBigg@{1.25}}
+ \renewcommand{\bigg}{\bBigg@{1.66}}
+ \renewcommand{\Bigg}{\bBigg@{2.08}}
+\fi
+\DeclareRobustCommand{\dagger}{\fdsy@text{\textdagger}}
+\DeclareRobustCommand{\ddagger}{\fdsy@text{\textdaggerdbl}}
+\DeclareRobustCommand{\mathparagraph}{\fdsy@text{\textparagraph}}
+\DeclareRobustCommand{\mathsection}{\fdsy@text{\textsection}}
+\DeclareRobustCommand{\mathdollar}{\fdsy@text{\textdollar}}
+\DeclareRobustCommand{\mathsterling}{\fdsy@text{\textsterling}}
+\DeclareRobustCommand{\yen}{\fdsy@text{\textyen}}
+\DeclareRobustCommand{\circledR}{\fdsy@text{\textcircled{%
+ \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont R}}}
+\DeclareRobustCommand{\circledS}{\fdsy@text{\textcircled{%
+ \check@mathfonts\fontsize\sf@size\z@\math@fontsfalse\selectfont S}}}
+\DeclareRobustCommand{\Re}{\mathfrak{R}}
+\DeclareRobustCommand{\Im}{\mathfrak{I}}
+\DeclareRobustCommand{\dotplus}{\mathbin{\dot{+}}}
+\DeclareRobustCommand{\dotcong}{\mathrel{\dot{\cong}}}
+\DeclareRobustCommand{\thicksim}{\mathrel{\text{\boldmath$\m@th\sim$}}}
+\DeclareRobustCommand{\thickapprox}{\mathrel{\text{\boldmath$\m@th\approx$}}}
+\let\hbar\undefined
+\let\hslash\undefined
+\DeclareRobustCommand{\hbar}{\middlebar h}
+\DeclareRobustCommand{\hslash}{\middleslash h}
+\DeclareRobustCommand{\veebar}{\mathbin{\underline{\vee}}}
+\DeclareRobustCommand{\barwedge}{\mathbin{\overline{\wedge}}}
+\DeclareRobustCommand{\veedoublebar}{\mathbin{\underline{\underline{\vee}}}}
+\DeclareRobustCommand{\doublebarwedge}{\mathbin{\overline{\overline{\wedge}}}}
+\DeclareRobustCommand{\centerdot}{\mathbin{\rule{0.15em}{0.15em}}}
+\DeclareRobustCommand{\divideontimes}{\mathbin{\ooalign{$\div$\crcr$\times$}}}
+\let\mapstochar\undefined
+\let\lhook\undefined
+\let\rhook\undefined
+\newcommand\fdsy@setslot[1]{\@tempcnta #1\relax}
+\newcommand\fdsy@nextslot{\advance\@tempcnta 1\relax}
+\newcommand\fdsy@prevslot{\advance\@tempcnta-1\relax}
+
+\newcommand\fdsy@@DeclareSymbol[4]{\DeclareMathSymbol{#2}{#3}{#4}{#1}}
+\newcommand\fdsy@DeclareSymbol[3]{%
+ \if\relax\noexpand#1\let#1\undefined\fi
+ \expandafter\fdsy@@DeclareSymbol\expandafter{\the\@tempcnta}{#1}{#3}{#2}%
+ \fdsy@nextslot
+}
+\newcommand\fdsy@DeclareAlias[3]{\fdsy@prevslot\fdsy@DeclareSymbol{#1}{#2}{#3}}
+\newcommand\fdsy@DeclareOperator[3]{\def#1{\DOTSB#3\slimits@}}
+\newcommand\fdsy@DeclareIntegral[3]{\def#1{\DOTSI#3\ilimits@}}
+\newcommand\fdsy@DeclareDelimiter[4]{%
+ \if\relax\noexpand#1\let#1\undefined\fi
+ \DeclareMathDelimiter{#1}{#2}{#3}{#4}{#3}{#4}%
+}
+\newcommand\fdsy@DeclareOpen[3]{\fdsy@DeclareDelimiter{#1}{\mathopen}{#2}{#3}}
+\newcommand\fdsy@DeclareClose[3]{\fdsy@DeclareDelimiter{#1}{\mathclose}{#2}{#3}}
+\DeclareFontFamily{U}{FdSymbolA}{}
+\DeclareFontFamily{U}{FdSymbolB}{}
+\DeclareFontFamily{U}{FdSymbolC}{}
+\DeclareFontFamily{U}{FdSymbolD}{}
+\DeclareFontFamily{U}{FdSymbolE}{}
+\DeclareFontFamily{U}{FdSymbolF}{}
+
+\DeclareFontShape{U}{FdSymbolA}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolA-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolA-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolA}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolA-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolA-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolB}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolB-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolB-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolB}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolB-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolB-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolC}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolC-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolC-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolC}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolC-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolC-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolD}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolD-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolD-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolD}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolD-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolD-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolE}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolE-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolE-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolE}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolE-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolE-\fdsy@bweight
+}{}
+\DeclareFontShape{U}{FdSymbolF}{m}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolF-\fdsy@msweight
+ <7.1-> s * [\fdsy@scale] FdSymbolF-\fdsy@mweight
+}{}
+\DeclareFontShape{U}{FdSymbolF}{b}{n}{
+ <-7.1> s * [\fdsy@scale] FdSymbolF-\fdsy@bsweight
+ <7.1-> s * [\fdsy@scale] FdSymbolF-\fdsy@bweight
+}{}
+
+\DeclareSymbolFont{symbols}{U}{FdSymbolA}{m}{n}
+\DeclareSymbolFont{relations}{U}{FdSymbolB}{m}{n}
+\DeclareSymbolFont{arrows}{U}{FdSymbolC}{m}{n}
+\DeclareSymbolFont{narrows}{U}{FdSymbolD}{m}{n}
+\DeclareSymbolFont{largesymbols}{U}{FdSymbolE}{m}{n}
+\DeclareSymbolFont{delimiters}{U}{FdSymbolF}{m}{n}
+\SetSymbolFont{symbols}{bold}{U}{FdSymbolA}{b}{n}
+\SetSymbolFont{relations}{bold}{U}{FdSymbolB}{b}{n}
+\SetSymbolFont{arrows}{bold}{U}{FdSymbolC}{b}{n}
+\SetSymbolFont{narrows}{bold}{U}{FdSymbolD}{b}{n}
+\SetSymbolFont{largesymbols}{bold}{U}{FdSymbolE}{b}{n}
+\SetSymbolFont{delimiters}{bold}{U}{FdSymbolF}{b}{n}
+\DeclareMathAlphabet{\mathcal}{OMS}{cmsy}{m}{n}
+\SetMathAlphabet{\mathcal}{bold}{OMS}{cmsy}{b}{n}
+\newcommand\fdsy@bold{bold}
+\newcommand\fdsy@text[1]{%
+ \ifx\fdsy@bold\math@version
+ \text{\bfseries#1}%
+ \else
+ \text{\mdseries#1}%
+ \fi
+}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\cdot}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\cdotp}{symbols}{\mathpunct}
+\fdsy@DeclareSymbol{\hdotdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\vdotdot}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\colon}{symbols}{\mathpunct}
+ \fdsy@DeclareAlias{\mathcolon}{symbols}{\mathpunct}
+ \fdsy@DeclareAlias{\mathratio}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\udotdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\ddotdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\hdots}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\@cdots}{symbols}{\mathinner}
+ \let\cdots\@cdots
+\fdsy@DeclareSymbol{\@vdots}{symbols}{\mathord}
+\DeclareRobustCommand{\vdots}{\ifmmode\@vdots\else\hbox{$\@vdots$}\fi}
+\fdsy@DeclareSymbol{\udots}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\adots}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\ddots}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\righttherefore}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\uptherefore}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\therefore}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\lefttherefore}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\downtherefore}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\because}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\squaredots}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\Colon}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\minus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smalldivslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medbackslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smallsetminus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\plus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\times}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\pm}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\mp}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\dotminus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\minusdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\minusfdots}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\minusrdots}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\dotsminusdots}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\div}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\neg}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lnot}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\minushookdown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\backneg}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\hookdownminus}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\invneg}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\invnot}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\intprod}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\minushookup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\turnedneg}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\turnednot}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\intprodr}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\hookupminus}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\turnedbackneg}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\leftthreetimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\rightthreetimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\dtimes}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\btimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\rtimes}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\rJoin}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\utimes}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\ttimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\ltimes}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\lJoin}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\bowtie}{symbols}{\mathrel}
+ \fdsy@DeclareAlias{\Join}{symbols}{\mathrel}
+ \fdsy@DeclareAlias{\lrtimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\upbowtie}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\hourglass}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\rightY}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\upY}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\leftY}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\downY}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\wedge}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\land}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\vee}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\lor}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\wedgedot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\veedot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublewedge}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\wedgeonwedge}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublevee}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\veeonvee}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\curlywedge}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\curlyvee}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\curlywedgedot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\curlyveedot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublecurlywedge}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublecurlyvee}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\cup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\cap}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublecup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Cup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublecap}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Cap}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\cupdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\capdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\cupplus}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\uplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\capplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcap}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublesqcup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Sqcup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\doublesqcap}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Sqcap}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcupdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcapdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcupplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\sqcapplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\pullback}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\pushout}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalltriangleright}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalltriangleup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalltriangleleft}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalltriangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacktriangleright}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacktriangleup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacktriangleleft}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacktriangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medtriangleright}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\triangleright}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medtriangleup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\triangle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\vartriangle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medtriangleleft}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\triangleleft}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medtriangledown}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\triangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacktriangleright}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blacktriangleright}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacktriangleup}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blacktriangle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacktriangleleft}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blacktriangleleft}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacktriangledown}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blacktriangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\largetriangleup}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\bigtriangleup}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\largetriangledown}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\bigtriangledown}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallcircle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circ}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smwhtcircle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblackcircle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\bullet}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smblkcircle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medcircle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgwhtcircle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblackcircle}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgblkcircle}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\ominus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\overt}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circledvert}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\oslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\obackslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\obslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\oplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\otimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\odot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\ocirc}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circledcirc}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\oast}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circledast}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\odash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circleddash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\oequal}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\circledequal}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\emptyset}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\diameter}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\varnothing}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\revemptyset}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\largecircle}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\bigcirc}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lgwhtcircle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\largeblackcircle}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lgblkcircle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smallsquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smwhtsquare}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblacksquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smblksquare}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medsquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\square}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Box}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgwhtsquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdwhtsquare}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblacksquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgblksquare}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdblksquare}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxminus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxvert}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\boxbar}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\boxdiag}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxbackslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\boxbslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxtimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\boxbox}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\largesquare}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lgwhtsquare}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\largeblacksquare}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lgblksquare}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smalldiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\diamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smwhtdiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblackdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\blackdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smblkdiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\meddiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\Diamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgwhtdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdwhtdiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblackdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdlgblkdiamond}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\mdblkdiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondminus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondvert}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondbackslash}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\diamondbslash}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondplus}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamondtimes}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamonddot}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\diamondcdot}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\diamonddiamond}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smalllozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\smwhtlozenge}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smallblacklozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\smblklozenge}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\medlozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\lozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\mdlgwhtlozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\mdwhtlozenge}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\medblacklozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\blacklozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\mdlgblklozenge}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\mdblklozenge}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\lozengeminus}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smallwhitestar}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\smwhitestar}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallblackstar}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\star}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medwhitestar}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\medblackstar}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\medstar}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\largewhitestar}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\largeblackstar}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\bigstar}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\ast}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\infty}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\propto}{symbols}{\mathrel}
+ \fdsy@DeclareAlias{\varpropto}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\backpropto}{symbols}{\mathrel}
+ \fdsy@DeclareAlias{\propfrom}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\crossing}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\between}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\separated}{symbols}{\mathrel}
+\fdsy@DeclareSymbol{\bot}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\top}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\intercal}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\wreath}{symbols}{\mathbin}
+ \fdsy@DeclareAlias{\wr}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\angle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\revangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\measuredangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\revmeasuredangle}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\measuredangleleft}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sphericalangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sphericalangleup}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sphericalangleleft}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\revsphericalangle}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\gtlpar}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sphericalangledown}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\rightangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\measuredrightangle}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\rightanglesquare}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\rightanglesqr}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\measuredrightangledot}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\rightanglemdot}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\prime}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\backprime}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\smallprod}{symbols}{\mathop}
+\fdsy@DeclareSymbol{\smallcoprod}{symbols}{\mathop}
+ \fdsy@DeclareAlias{\amalg}{symbols}{\mathbin}
+\fdsy@DeclareSymbol{\smallint}{symbols}{\mathop}
+\fdsy@DeclareSymbol{\checkmark}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\lightning}{symbols}{\mathord}
+ \fdsy@DeclareAlias{\downzigzagarrow}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\diamondsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\vardiamondsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\heartsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\varheartsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\spadesuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\clubsuit}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\maltese}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\starofdavid}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sector}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\forall}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\exists}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\nexists}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\Finv}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\Game}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\complement}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\flat}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\natural}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\sharp}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\aleph}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\beth}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\gimel}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\daleth}{symbols}{\mathord}
+\fdsy@DeclareSymbol{\wp}{symbols}{\mathord}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\equal}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\equiv}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\backsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\approx}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\triplesim}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\approxident}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\simeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\backsimeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\cong}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\backcong}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\approxeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\bumpeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\bumpeqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Bumpeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\doteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Doteq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\doteqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\fallingdotseq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\risingdotseq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\smile}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\smallsmile}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\frown}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\smallfrown}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\smilefrown}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\asymp}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\frownsmile}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\closure}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\smileeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\frowneq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\arceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqcirc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\circeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\wedgeq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\hateq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\veeeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\stareq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\triangleeq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\triangleq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\in}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\owns}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ni}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\less}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\le}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ge}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesssim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesseqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtreqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesseqqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtreqqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesseqgtrslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtreqlessslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ll}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gg}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lll}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\llless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ggg}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gggtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\lhd}{relations}{\mathbin}
+ \fdsy@DeclareAlias{\vartriangleleft}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\rhd}{relations}{\mathbin}
+ \fdsy@DeclareAlias{\vartriangleright}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\unlhd}{relations}{\mathbin}
+ \fdsy@DeclareAlias{\trianglelefteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\unrhd}{relations}{\mathbin}
+ \fdsy@DeclareAlias{\trianglerighteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lesscc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ltcc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gtcc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqslcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\lescc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqslcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gescc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Sqsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Sqsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Subset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\Supset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\prec}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succ}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\preceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\preccurlyeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succcurlyeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\preceqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succeqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\leqslantdot}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\lesdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\geqslantdot}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gesdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqslantless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\eqslantgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\curlyeqprec}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\curlyeqsucc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nequal}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\neq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ne}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nequiv}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbacksim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\napprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ntriplesim}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\napproxident}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsimeq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nsime}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbacksimeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ncong}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbackcong}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\napproxeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbumpeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nbumpeqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nBumpeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ndoteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nDoteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nfallingdotseq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nrisingdotseq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsmile}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nfrown}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsmilefrown}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nasymp}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nfrownsmile}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nclosure}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsmileeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nfrowneq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\narceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqcirc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ncirceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nwedgeq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nhateq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nveeeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nstareq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ntriangleeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nin}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\notin}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nowns}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nni}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesssim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlessapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlessgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesseqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtreqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesseqqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtreqqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesseqgtrslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtreqlessslant}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nll}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngg}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlll}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nggg}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlessclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ntriangleleft}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ntriangleright}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ntrianglelefteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqclosed}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ntrianglerighteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlesscc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nltcc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ngtcc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqslcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nlescc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqslcc}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ngescc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsubseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsupseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsubseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsqsupseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nSqsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nSqsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsubseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsupseteq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsubseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsupseteqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nSubset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nSupset}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nprec}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsucc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\npreceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsucceq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\npreccurlyeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsucccurlyeq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\npreceqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsucceqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nprecsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsuccsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nprecapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nsuccapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nlessdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngtrdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\nleqslantdot}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\nlesdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ngeqslantdot}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\ngesdot}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqslantless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\neqslantgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ncurlyeqprec}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\ncurlyeqsucc}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\simneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\backsimneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lneqq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\lvertneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gneqq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\gvertneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lnsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gnsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lnapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gnapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\lessneqqgtr}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\gtrneqqless}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubsetneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupsetneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsubsetneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\sqsupsetneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subsetneq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\varsubsetneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supsetneq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\varsupsetneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\subsetneqq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\varsubsetneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\supsetneqq}{relations}{\mathrel}
+ \fdsy@DeclareAlias{\varsupsetneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succneq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succneqq}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precnsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succnsim}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\precnapprox}{relations}{\mathrel}
+\fdsy@DeclareSymbol{\succnapprox}{relations}{\mathrel}
+
+\DeclareRobustCommand{\coloneq}{\mathrel{{\vdotdot}{\equal}}}
+\let\coloneqq\coloneq
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\rightarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\to}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftarrow}{arrows}{\mathrel}
+\fdsy@DeclareAlias{\gets}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\searrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Rightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Uparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Leftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Downarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Nearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Nwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Swarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Searrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwsearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Leftrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Updownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Neswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Nwsearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheaduparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheaddownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadnearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadnwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\twoheadsearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uparrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nearrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swarrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\searrowtail}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightmapsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\mapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upmapsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\mapsup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftmapsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\mapsfrom}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downmapsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\mapsdown}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nemapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwmapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swmapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\semapsto}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookrightarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hookrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookuparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookdownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhooknearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhooknwarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hknwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhookswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\lhooksearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hksearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookuparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookleftarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hookleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookdownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhooknearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hknearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhooknwarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhookswarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\hkswarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rhooksearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightharpoonup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upharpoonleft}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftharpoondown}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downharpoonright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neharpoonnw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwharpoonsw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swharpoonse}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\seharpoonne}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightharpoondown}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upharpoonright}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\restriction}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftharpoonup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downharpoonleft}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neharpoonse}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwharpoonne}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swharpoonnw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\seharpoonsw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightharpoonupdown}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownharpoonleftright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswharpoonnwse}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwseharpoonnesw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightharpoondownup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownharpoonrightleft}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswharpoonsenw}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwseharpoonswne}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightleftharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownharpoons}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\updownharpoonsleftright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\senwharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downupharpoons}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\downupharpoonsleftright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swneharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwseharpoons}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightbkarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dasharrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dashrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upbkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftbkarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dashleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downbkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nebkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwbkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swbkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\sebkarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightspoon}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\multimap}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upspoon}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cirmid}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftspoon}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\multimapinv}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downspoon}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\midcir}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightblackspoon}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upblackspoon}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftblackspoon}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downblackspoon}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightpitchfork}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uppitchfork}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\pitchfork}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftpitchfork}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downpitchfork}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightrightarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upuparrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftleftarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downdownarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nenearrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwnwarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swswarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\sesearrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightleftarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwsearrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downuparrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swnearrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\senwarrows}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightlsquigarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\leadsto}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\rightsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uplsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftlsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downlsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightrsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uprsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrsquigarrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\leftsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downrsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updownsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightleftsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downupsquigarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightlcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\curvearrowright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uplcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftlcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downlcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cwrightarcarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nelcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwlcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swlcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cwundercurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\selcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightrcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwunderarcarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\uprcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\curvearrowleft}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwoverarcarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downrcurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwleftarcarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nercurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwrcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swrcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\sercurvearrow}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\ccwundercurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftrightcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\updowncurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightleftcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downupcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\neswcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\nwsecurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\swnecurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\senwcurvearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftfootline}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\vlongdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightfootline}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\longdashv}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\acwcirclearrowup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\acwcirclearrowleft}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\circlearrowleft}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwopencirclearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\acwcirclearrowdown}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\acwgapcirclearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\acwcirclearrowright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\cwcirclearrowdown}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cwgapcirclearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\cwcirclearrowright}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\circlearrowright}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\cwopencirclearrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\cwcirclearrowup}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\cwcirclearrowleft}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Rrightarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Uuparrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Lleftarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Ddownarrow}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Lsh}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Rsh}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Ldsh}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Rdsh}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\looparrowright}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\looparrowleft}{arrows}{\mathrel}
+\fdsy@setslot{224}
+\fdsy@DeclareSymbol{\rightvdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\vdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\assert}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upvdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\perp}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftvdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dashv}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downvdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightvDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\vDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\models}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upvDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\Vbar}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftvDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\Dashv}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downvDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\barV}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightVdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\Vdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upVdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftVdash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\dashV}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downVdash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\rightVDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\VDash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\upVDash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\leftVDash}{arrows}{\mathrel}
+ \fdsy@DeclareAlias{\DashV}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\downVDash}{arrows}{\mathrel}
+\fdsy@DeclareSymbol{\Vvdash}{arrows}{\mathrel}
+
+\DeclareRobustCommand{\relbar}{\mathrel{\smash-}}
+\DeclareRobustCommand{\Relbar}{\mathrel=}
+\let\joinrel\undefined
+\DeclareRobustCommand\joinrel{\mathrel{\mkern-4mu}}
+\DeclareRobustCommand\longrightarrow{\DOTSB\relbar\joinrel\rightarrow}
+\DeclareRobustCommand\longleftarrow{\DOTSB\leftarrow\joinrel\relbar}
+\DeclareRobustCommand\longleftrightarrow{\DOTSB\leftarrow\joinrel\rightarrow}
+\DeclareRobustCommand\Longrightarrow{\DOTSB\Relbar\joinrel\Rightarrow}
+\DeclareRobustCommand\Longleftarrow{\DOTSB\Leftarrow\joinrel\Relbar}
+\DeclareRobustCommand\Longleftrightarrow{\DOTSB\Leftarrow\joinrel\Rightarrow}
+\DeclareRobustCommand\longmapsto{\DOTSB\leftfootline\mkern-7mu\rightarrow}
+\DeclareRobustCommand\emptyblackspoon{\DOTSB\leftspoon\mkern-13mu\rightblackspoon}
+\let\origof\emptyblackspoon
+\DeclareRobustCommand\filledemptyspoon{\DOTSB\leftblackspoon\mkern-13mu\rightspoon}
+\let\imageof\filledemptyspoon
+\DeclareRobustCommand\leftrightspoon{\DOTSB\leftspoon\mkern-13mu\rightspoon}
+\let\dualmap\leftrightspoon
+\DeclareRobustCommand\leftrightblackspoon{\DOTSB\leftblackspoon\mkern-13mu\rightblackspoon}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\nrightarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ngets}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nRightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nUparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nLeftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nDownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nNearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nNwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nSwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nSearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwsearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nLeftrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nUpdownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nNeswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nNwsearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheaduparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheaddownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadnearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadnwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ntwoheadsearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuparrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnearrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswarrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsearrowtail}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightmapsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupmapsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmapsup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftmapsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmapsfrom}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownmapsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmapsdown}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnemapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwmapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswmapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsemapsto}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookrightarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhookrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookuparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookdownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhooknearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhooknwarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhknwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhookswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nlhooksearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhksearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookuparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookleftarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhookleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookdownarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhooknearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhknearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhooknwarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhookswarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nhkswarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrhooksearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightharpoonup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupharpoonleft}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftharpoondown}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownharpoonright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneharpoonnw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwharpoonsw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswharpoonse}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nseharpoonne}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightharpoondown}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupharpoonright}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nrestriction}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftharpoonup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownharpoonleft}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneharpoonse}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwharpoonne}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswharpoonnw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nseharpoonsw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightharpoonupdown}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownharpoonleftright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswharpoonnwse}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwseharpoonnesw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightharpoondownup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownharpoonrightleft}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswharpoonsenw}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwseharpoonswne}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightleftharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownharpoons}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nupdownharpoonsleftright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsenwharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownupharpoons}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndownupharpoonsleftright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswneharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwseharpoons}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightbkarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndasharrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndashrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupbkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftbkarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndashleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownbkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnebkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwbkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswbkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsebkarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightspoon}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmultimap}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupspoon}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncirmid}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftspoon}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmultimapinv}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownspoon}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmidcir}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightblackspoon}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupblackspoon}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftblackspoon}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownblackspoon}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightpitchfork}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuppitchfork}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\npitchfork}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftpitchfork}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownpitchfork}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightrightarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupuparrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftleftarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndowndownarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnenearrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwnwarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswswarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsesearrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightleftarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwsearrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownuparrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswnearrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsenwarrows}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightlsquigarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nleadsto}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nrightsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuplsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftlsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownlsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightrsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuprsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrsquigarrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nleftsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownrsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdownsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightleftsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownupsquigarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightlcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncurvearrowright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuplcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftlcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownlcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncwrightarcarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnelcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwlcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswlcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncwundercurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nselcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightrcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwunderarcarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nuprcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncurvearrowleft}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwoverarcarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownrcurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwleftarcarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnercurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwrcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswrcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsercurvearrow}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nccwundercurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftrightcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupdowncurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightleftcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownupcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nneswcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nnwsecurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nswnecurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nsenwcurvearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftfootline}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nvlongdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightfootline}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nlongdashv}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nacwcirclearrowup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nacwcirclearrowleft}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncirclearrowleft}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwopencirclearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nacwcirclearrowdown}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nacwgapcirclearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nacwcirclearrowright}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ncwcirclearrowdown}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncwgapcirclearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ncwcirclearrowright}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncirclearrowright}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ncwopencirclearrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ncwcirclearrowup}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ncwcirclearrowleft}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nRrightarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nUuparrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nLleftarrow}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nDdownarrow}{narrows}{\mathrel}
+\fdsy@setslot{224}
+\fdsy@DeclareSymbol{\nrightvdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nvdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nassert}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupvdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nperp}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftvdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndashv}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownvdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nmodels}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nVbar}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nDashv}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownvDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nbarV}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightVdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nVdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupVdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftVdash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\ndashV}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownVdash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nrightVDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nVDash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nupVDash}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\nleftVDash}{narrows}{\mathrel}
+ \fdsy@DeclareAlias{\nDashV}{narrows}{\mathrel}
+\fdsy@DeclareSymbol{\ndownVDash}{narrows}{\mathrel}
+\fdsy@setslot{0}
+\fdsy@DeclareSymbol{\tbigplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigtimes}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigtimes}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigwedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigwedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigwedgedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigwedgedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigveedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigveedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigdoublewedge}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tconjquant}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigdoublewedge}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dconjquant}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigdoublevee}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tdisjquant}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigdoublevee}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\ddisjquant}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcurlywedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcurlywedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcurlyvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcurlyvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcurlywedgedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcurlywedgedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcurlyveedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcurlyveedot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigdoublecurlywedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigdoublecurlywedge}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigdoublecurlyvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigdoublecurlyvee}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcap}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcap}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcup}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcup}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcapdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcapdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcupdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcupdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcapplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcapplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigcupplus}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tbiguplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigcupplus}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dbiguplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcap}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcap}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcup}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcup}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcapdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcapdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcupdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcupdot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcapplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcapplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigsqcupplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigsqcupplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigoplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigoplus}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigotimes}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigotimes}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigodot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigodot}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tbigoast}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dbigoast}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tprod}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dprod}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tcoprod}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dcoprod}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tsum}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dsum}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tosum}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dosum}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\diint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\diiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tiiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\diiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tidotsint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tdotsint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\didotsint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\ddotsint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tlandupint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tintclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dlandupint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dintclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tlanddownint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tawint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tintctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dlanddownint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dawint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dintctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tintbar}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dintbar}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tintBar}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dintBar}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tfint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dfint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\toint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\doint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\toiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\doiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\toiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\doiiint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\trcirclerightint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tointctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\drcirclerightint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dointctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tlcirclerightint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tvarointclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dlcirclerightint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dvarointclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\trcircleleftint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tvarointctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\drcircleleftint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dvarointctrclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tlcircleleftint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\tointclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dlcircleleftint}{largesymbols}{\mathop}
+ \fdsy@DeclareAlias{\dointclockwise}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\tsumint}{largesymbols}{\mathop}
+\fdsy@DeclareSymbol{\dsumint}{largesymbols}{\mathop}
+\let\intop\tint
+\let\ointop\toint
+
+\fdsy@DeclareOperator{\bigplus}{\dbigplus}{\tbigplus}
+\fdsy@DeclareOperator{\bigtimes}{\dbigtimes}{\tbigtimes}
+\fdsy@DeclareOperator{\bigwedge}{\dbigwedge}{\tbigwedge}
+\fdsy@DeclareOperator{\bigvee}{\dbigvee}{\tbigvee}
+\fdsy@DeclareOperator{\bigwedgedot}{\dbigwedgedot}{\tbigwedgedot}
+\fdsy@DeclareOperator{\bigveedot}{\dbigveedot}{\tbigveedot}
+\fdsy@DeclareOperator{\bigdoublewedge}{\dbigdoublewedge}{\tbigdoublewedge}
+\fdsy@DeclareOperator{\conjquant}{\dconjquant}{\tconjquant}
+\fdsy@DeclareOperator{\bigdoublevee}{\dbigdoublevee}{\tbigdoublevee}
+\fdsy@DeclareOperator{\disjquant}{\ddisjquant}{\tdisjquant}
+\fdsy@DeclareOperator{\bigcurlywedge}{\dbigcurlywedge}{\tbigcurlywedge}
+\fdsy@DeclareOperator{\bigcurlyvee}{\dbigcurlyvee}{\tbigcurlyvee}
+\fdsy@DeclareOperator{\bigcurlywedgedot}{\dbigcurlywedgedot}{\tbigcurlywedgedot}
+\fdsy@DeclareOperator{\bigcurlyveedot}{\dbigcurlyveedot}{\tbigcurlyveedot}
+\fdsy@DeclareOperator{\bigdoublecurlywedge}{\dbigdoublecurlywedge}{\tbigdoublecurlywedge}
+\fdsy@DeclareOperator{\bigdoublecurlyvee}{\dbigdoublecurlyvee}{\tbigdoublecurlyvee}
+\fdsy@DeclareOperator{\bigcap}{\dbigcap}{\tbigcap}
+\fdsy@DeclareOperator{\bigcup}{\dbigcup}{\tbigcup}
+\fdsy@DeclareOperator{\bigcapdot}{\dbigcapdot}{\tbigcapdot}
+\fdsy@DeclareOperator{\bigcupdot}{\dbigcupdot}{\tbigcupdot}
+\fdsy@DeclareOperator{\bigcapplus}{\dbigcapplus}{\tbigcapplus}
+\fdsy@DeclareOperator{\bigcupplus}{\dbigcupplus}{\tbigcupplus}
+\fdsy@DeclareOperator{\biguplus}{\dbiguplus}{\tbiguplus}
+\fdsy@DeclareOperator{\bigsqcap}{\dbigsqcap}{\tbigsqcap}
+\fdsy@DeclareOperator{\bigsqcup}{\dbigsqcup}{\tbigsqcup}
+\fdsy@DeclareOperator{\bigsqcapdot}{\dbigsqcapdot}{\tbigsqcapdot}
+\fdsy@DeclareOperator{\bigsqcupdot}{\dbigsqcupdot}{\tbigsqcupdot}
+\fdsy@DeclareOperator{\bigsqcapplus}{\dbigsqcapplus}{\tbigsqcapplus}
+\fdsy@DeclareOperator{\bigsqcupplus}{\dbigsqcupplus}{\tbigsqcupplus}
+\fdsy@DeclareOperator{\bigoplus}{\dbigoplus}{\tbigoplus}
+\fdsy@DeclareOperator{\bigotimes}{\dbigotimes}{\tbigotimes}
+\fdsy@DeclareOperator{\bigodot}{\dbigodot}{\tbigodot}
+\fdsy@DeclareOperator{\bigoast}{\dbigoast}{\tbigoast}
+\fdsy@DeclareOperator{\sum}{\dsum}{\tsum}
+\fdsy@DeclareOperator{\osum}{\dosum}{\tosum}
+\fdsy@DeclareOperator{\prod}{\dprod}{\tprod}
+\fdsy@DeclareOperator{\coprod}{\dcoprod}{\tcoprod}
+\fdsy@DeclareIntegral{\iint}{\diint}{\tiint}
+\fdsy@DeclareIntegral{\iiint}{\diiint}{\tiiint}
+\fdsy@DeclareIntegral{\iiiint}{\diiiint}{\tiiiint}
+\fdsy@DeclareIntegral{\idotsint}{\didotsint}{\tidotsint}
+\fdsy@DeclareIntegral{\dotsint}{\ddotsint}{\tdotsint}
+\fdsy@DeclareIntegral{\landupint}{\dlandupint}{\tlandupint}
+\fdsy@DeclareIntegral{\intclockwise}{\dintclockwise}{\tintclockwise}
+\fdsy@DeclareIntegral{\landdownint}{\dlanddownint}{\tlanddownint}
+\fdsy@DeclareIntegral{\awint}{\dawint}{\tawint}
+\fdsy@DeclareIntegral{\intctrclockwise}{\dintctrclockwise}{\tintctrclockwise}
+\fdsy@DeclareIntegral{\landdownint}{\dlanddownint}{\tlanddownint}
+\fdsy@DeclareIntegral{\intbar}{\dintbar}{\tintbar}
+\fdsy@DeclareIntegral{\intBar}{\dintBar}{\tintBar}
+\fdsy@DeclareIntegral{\fint}{\dfint}{\tfint}
+\fdsy@DeclareIntegral{\oiint}{\doiint}{\toiint}
+\fdsy@DeclareIntegral{\oiiint}{\doiiint}{\toiiint}
+\fdsy@DeclareIntegral{\rcirclerightint}{\drcirclerightint}{\trcirclerightint}
+\fdsy@DeclareIntegral{\ointctrclockwise}{\dointctrclockwise}{\tointctrclockwise}
+\fdsy@DeclareIntegral{\lcirclerightint}{\dlcirclerightint}{\tlcirclerightint}
+\fdsy@DeclareIntegral{\varointclockwise}{\dvarointclockwise}{\tvarointclockwise}
+\fdsy@DeclareIntegral{\rcircleleftint}{\drcircleleftint}{\trcircleleftint}
+\fdsy@DeclareIntegral{\varointctrclockwise}{\dvarointctrclockwise}{\tvarointctrclockwise}
+\fdsy@DeclareIntegral{\lcircleleftint}{\dlcircleleftint}{\tlcircleleftint}
+\fdsy@DeclareIntegral{\ointclockwise}{\dointclockwise}{\tointclockwise}
+\fdsy@DeclareIntegral{\sumint}{\dsumint}{\tsumint}
+
+\def\intkern@{\mkern-8.5mu\mathchoice{\mkern-1mu}{}{}{}}
+\def\intdots@{\mkern-6mu%
+ \mathchoice{\@cdots}%
+ {{\cdotp}\mkern0.5mu{\cdotp}\mkern0.5mu{\cdotp}}%
+ {{\cdotp}{\cdotp}{\cdotp}}%
+ {{\cdotp}{\cdotp}{\cdotp}}%
+ \mkern-6mu}
+\DeclareMathAccent{\widehat}{\mathord}{largesymbols}{"72}
+\DeclareMathAccent{\widetilde}{\mathord}{largesymbols}{"78}
+\DeclareMathAccent{\wideparen}{\mathord}{largesymbols}{"7E}
+\DeclareMathAccent{\vec}{\mathord}{largesymbols}{"84}
+\DeclareMathAccent{\middlebar}{\mathord}{largesymbols}{"85}
+\DeclareMathAccent{\middleslash}{\mathord}{largesymbols}{"86}
+\DeclareMathAccent{\strokethrough}{\mathord}{largesymbols}{"87}
+\let\lfloor\undefined
+\let\rfloor\undefined
+\let\lceil\undefined
+\let\rceil\undefined
+\let\langle\undefined
+\let\rangle\undefined
+\iffdsy@largedelims
+ \fdsy@DeclareOpen{(}{delimiters}{"01}
+ \fdsy@DeclareClose{)}{delimiters}{"07}
+ \fdsy@DeclareOpen{\lparen}{delimiters}{"01}
+ \fdsy@DeclareClose{\rparen}{delimiters}{"07}
+ \fdsy@DeclareOpen{[}{delimiters}{"13}
+ \fdsy@DeclareClose{]}{delimiters}{"19}
+ \fdsy@DeclareOpen{\lbrack}{delimiters}{"13}
+ \fdsy@DeclareClose{\rbrack}{delimiters}{"19}
+ \fdsy@DeclareOpen{\lfloor}{delimiters}{"1F}
+ \fdsy@DeclareClose{\rfloor}{delimiters}{"25}
+ \fdsy@DeclareOpen{\lceil}{delimiters}{"2B}
+ \fdsy@DeclareClose{\rceil}{delimiters}{"31}
+ \fdsy@DeclareOpen{\ulcorner}{delimiters}{"37}
+ \fdsy@DeclareClose{\urcorner}{delimiters}{"3D}
+ \fdsy@DeclareOpen{\llcorner}{delimiters}{"43}
+ \fdsy@DeclareClose{\lrcorner}{delimiters}{"49}
+ \fdsy@DeclareOpen{\ullcorner}{delimiters}{"4F}
+ \fdsy@DeclareClose{\ulrcorner}{delimiters}{"55}
+ \fdsy@DeclareOpen{\lsem}{delimiters}{"61}
+ \fdsy@DeclareClose{\rsem}{delimiters}{"67}
+ \fdsy@DeclareOpen{\lBrack}{delimiters}{"61}
+ \fdsy@DeclareClose{\rBrack}{delimiters}{"67}
+ \fdsy@DeclareOpen{\lbrace}{delimiters}{"73}
+ \fdsy@DeclareClose{\rbrace}{delimiters}{"79}
+ \fdsy@DeclareOpen{<}{delimiters}{"86}
+ \fdsy@DeclareClose{>}{delimiters}{"8C}
+ \fdsy@DeclareOpen{\langle}{delimiters}{"86}
+ \fdsy@DeclareClose{\rangle}{delimiters}{"8C}
+ \fdsy@DeclareOpen{\lAngle}{delimiters}{"92}
+ \fdsy@DeclareClose{\rAngle}{delimiters}{"98}
+ \fdsy@DeclareOpen{\langledot}{delimiters}{"9E}
+ \fdsy@DeclareClose{\rangledot}{delimiters}{"A4}
+ \fdsy@DeclareDelimiter{/}{\mathord}{delimiters}{"AA}
+ \fdsy@DeclareDelimiter{\mathslash}{\mathord}{delimiters}{"AA}
+ \DeclareMathSymbol{\divslash}{\mathbin}{delimiters}{"AA}
+ \fdsy@DeclareDelimiter{\backslash}{\mathord}{delimiters}{"B0}
+ \expandafter\DeclareMathDelimiter\@backslashchar%
+ {\mathord}{delimiters}{"B0}{delimiters}{"B0}
+ \DeclareMathSymbol{\setminus}{\mathbin}{delimiters}{"B0}
+ \fdsy@DeclareDelimiter{|}{\mathord}{delimiters}{"B7}
+ \fdsy@DeclareDelimiter{\vert}{\mathord}{delimiters}{"B7}
+ \fdsy@DeclareOpen{\lvert}{delimiters}{"B7}
+ \fdsy@DeclareClose{\rvert}{delimiters}{"B7}
+ \DeclareMathSymbol{\mid}{\mathrel}{delimiters}{"B7}
+ \DeclareMathSymbol{\nmid}{\mathrel}{delimiters}{"BA}
+ \fdsy@DeclareDelimiter{\Vert}{\mathord}{delimiters}{"BE}
+ \fdsy@DeclareOpen{\lVert}{delimiters}{"BE}
+ \fdsy@DeclareClose{\rVert}{delimiters}{"BE}
+ \DeclareMathSymbol{\parallel}{\mathrel}{delimiters}{"BE}
+ \DeclareMathSymbol{\nparallel}{\mathrel}{delimiters}{"C1}
+ \fdsy@DeclareDelimiter{\Vvert}{\mathord}{delimiters}{"C4}
+ \fdsy@DeclareOpen{\lVvert}{delimiters}{"C4}
+ \fdsy@DeclareClose{\rVvert}{delimiters}{"C4}
+\else
+ \fdsy@DeclareOpen{(}{delimiters}{"00}
+ \fdsy@DeclareClose{)}{delimiters}{"06}
+ \fdsy@DeclareOpen{\lparen}{delimiters}{"00}
+ \fdsy@DeclareClose{\rparen}{delimiters}{"06}
+ \fdsy@DeclareOpen{[}{delimiters}{"12}
+ \fdsy@DeclareClose{]}{delimiters}{"18}
+ \fdsy@DeclareOpen{\lbrack}{delimiters}{"12}
+ \fdsy@DeclareClose{\rbrack}{delimiters}{"18}
+ \fdsy@DeclareOpen{\lfloor}{delimiters}{"1E}
+ \fdsy@DeclareClose{\rfloor}{delimiters}{"24}
+ \fdsy@DeclareOpen{\lceil}{delimiters}{"2A}
+ \fdsy@DeclareClose{\rceil}{delimiters}{"30}
+ \fdsy@DeclareOpen{\ulcorner}{delimiters}{"36}
+ \fdsy@DeclareClose{\urcorner}{delimiters}{"3C}
+ \fdsy@DeclareOpen{\llcorner}{delimiters}{"42}
+ \fdsy@DeclareClose{\lrcorner}{delimiters}{"48}
+ \fdsy@DeclareOpen{\ullcorner}{delimiters}{"4E}
+ \fdsy@DeclareClose{\ulrcorner}{delimiters}{"54}
+ \fdsy@DeclareOpen{\lsem}{delimiters}{"60}
+ \fdsy@DeclareClose{\rsem}{delimiters}{"66}
+ \fdsy@DeclareOpen{\lBrack}{delimiters}{"60}
+ \fdsy@DeclareClose{\rBrack}{delimiters}{"66}
+ \fdsy@DeclareOpen{\lbrace}{delimiters}{"72}
+ \fdsy@DeclareClose{\rbrace}{delimiters}{"78}
+ \fdsy@DeclareOpen{<}{delimiters}{"85}
+ \fdsy@DeclareClose{>}{delimiters}{"8B}
+ \fdsy@DeclareOpen{\langle}{delimiters}{"85}
+ \fdsy@DeclareClose{\rangle}{delimiters}{"8B}
+ \fdsy@DeclareOpen{\lAngle}{delimiters}{"91}
+ \fdsy@DeclareClose{\rAngle}{delimiters}{"97}
+ \fdsy@DeclareOpen{\langledot}{delimiters}{"9D}
+ \fdsy@DeclareClose{\rangledot}{delimiters}{"A3}
+ \fdsy@DeclareDelimiter{/}{\mathord}{delimiters}{"A9}
+ \fdsy@DeclareDelimiter{\mathslash}{\mathord}{delimiters}{"A9}
+ \DeclareMathSymbol{\divslash}{\mathbin}{delimiters}{"A9}
+ \fdsy@DeclareDelimiter{\backslash}{\mathord}{delimiters}{"AF}
+ \expandafter\DeclareMathDelimiter\@backslashchar%
+ {\mathord}{delimiters}{"AF}{delimiters}{"AF}
+ \DeclareMathSymbol{\setminus}{\mathbin}{delimiters}{"AF}
+ \fdsy@DeclareDelimiter{|}{\mathord}{delimiters}{"B6}
+ \fdsy@DeclareDelimiter{\vert}{\mathord}{delimiters}{"B6}
+ \fdsy@DeclareOpen{\lvert}{delimiters}{"B6}
+ \fdsy@DeclareClose{\rvert}{delimiters}{"B6}
+ \DeclareMathSymbol{\mid}{\mathrel}{delimiters}{"B6}
+ \DeclareMathSymbol{\nmid}{\mathrel}{delimiters}{"B9}
+ \fdsy@DeclareDelimiter{\Vert}{\mathord}{delimiters}{"BD}
+ \fdsy@DeclareOpen{\lVert}{delimiters}{"BD}
+ \fdsy@DeclareClose{\rVert}{delimiters}{"BD}
+ \DeclareMathSymbol{\parallel}{\mathrel}{delimiters}{"BD}
+ \DeclareMathSymbol{\nparallel}{\mathrel}{delimiters}{"C0}
+ \fdsy@DeclareDelimiter{\Vvert}{\mathord}{delimiters}{"C3}
+ \fdsy@DeclareOpen{\lVvert}{delimiters}{"C3}
+ \fdsy@DeclareClose{\rVvert}{delimiters}{"C3}
+\fi
+\let\|\Vert
+\let\divides\mid
+\let\ndivides\nmid
+\DeclareMathSymbol{\shortmid}{\mathrel}{delimiters}{"B5}
+\DeclareMathSymbol{\nshortmid}{\mathrel}{delimiters}{"B8}
+\DeclareMathSymbol{\shortparallel}{\mathrel}{delimiters}{"BC}
+\DeclareMathSymbol{\nshortparallel}{\mathrel}{delimiters}{"BF}
+\fdsy@DeclareDelimiter{\arrowvert}{\mathord}{delimiters}{"BB}
+\fdsy@DeclareDelimiter{\Arrowvert}{\mathord}{delimiters}{"C2}
+\fdsy@DeclareClose{\lgroup}{delimiters}{"7E}
+\fdsy@DeclareOpen{\rgroup}{delimiters}{"7F}
+\fdsy@DeclareClose{\rmoustache}{delimiters}{"80}
+\fdsy@DeclareOpen{\lmoustache}{delimiters}{"81}
+\fdsy@DeclareDelimiter{\bracevert}{\mathord}{delimiters}{"84}
+\let\uparrow\undefined
+\let\downarrow\undefined
+\let\updownarrow\undefined
+\let\Uparrow\undefined
+\let\Downarrow\undefined
+\let\Updownarrow\undefined
+\DeclareMathDelimiter{\uparrow}{\mathrel}{arrows}{"01}{delimiters}{"C6}
+\DeclareMathDelimiter{\downarrow}{\mathrel}{arrows}{"03}{delimiters}{"C7}
+\DeclareMathDelimiter{\updownarrow}{\mathrel}{arrows}{"11}{delimiters}{"C8}
+\DeclareMathDelimiter{\Uparrow}{\mathrel}{arrows}{"09}{delimiters}{"C9}
+\DeclareMathDelimiter{\Downarrow}{\mathrel}{arrows}{"0B}{delimiters}{"CA}
+\DeclareMathDelimiter{\Updownarrow}{\mathrel}{arrows}{"15}{delimiters}{"CB}
+\DeclareMathSymbol{\braceld}{\mathord}{delimiters}{"CC}
+\DeclareMathSymbol{\bracelu}{\mathord}{delimiters}{"CD}
+\DeclareMathSymbol{\bracerd}{\mathord}{delimiters}{"CE}
+\DeclareMathSymbol{\braceru}{\mathord}{delimiters}{"CF}
+\DeclareMathSymbol{\bracemd}{\mathord}{delimiters}{"D0}
+\DeclareMathSymbol{\bracemu}{\mathord}{delimiters}{"D1}
+\DeclareMathSymbol{\bracemid}{\mathord}{delimiters}{"D2}
+
+\def\bracefill@#1#2#3#4#5{$\m@th#5#1\leaders\hbox{$#4$}\hfill#2\leaders\hbox{$#4$}\hfill#3$}
+\def\downbracefill@{\bracefill@\braceld\bracemd\bracerd\bracemid}
+\def\upbracefill@{\bracefill@\bracelu\bracemu\braceru\bracemid}
+\def\downgroupfill@{\bracefill@\braceld{}\bracerd\bracemid}
+\def\upgroupfill@{\bracefill@\bracelu{}\braceru\bracemid}
+\def\linesegmentfill@{\arrowfill@\leftfootline\relbar\rightfootline}
+\def\leftharpoonfill@{\arrowfill@\leftharpoondown\relbar\relbar}
+\def\rightharpoonfill@{\arrowfill@\relbar\relbar\rightharpoonup}
+
+\DeclareRobustCommand{\overbrace}[1]{\mathop{\mathpalette{\overarrow@\downbracefill@}{#1}}\limits}
+\DeclareRobustCommand{\underbrace}[1]{\mathop{\mathpalette{\underarrow@\upbracefill@}{#1}}\limits}
+\DeclareRobustCommand{\overgroup}{\mathpalette{\overarrow@\downgroupfill@}}
+\DeclareRobustCommand{\undergroup}{\mathpalette{\underarrow@\upgroupfill@}}
+\DeclareRobustCommand{\overlinesegment}{\mathpalette{\overarrow@\linesegmentfill@}}
+\DeclareRobustCommand{\overleftharpoon}{\mathpalette{\overarrow@\leftharpoonfill@}}
+\DeclareRobustCommand{\overrightharpoon}{\mathpalette{\overarrow@\rightharpoonfill@}}
+\DeclareRobustCommand{\underlinesegment}{\mathpalette{\underarrow@\linesegmentfill@}}
+\iffdsy@largedelims
+ \DeclareMathRadical{\sqrtsign}{delimiters}{"D4}{delimiters}{"D4}
+ \DeclareMathSymbol{\surd}{\mathop}{delimiters}{"D4}
+\else
+ \DeclareMathRadical{\sqrtsign}{delimiters}{"D3}{delimiters}{"D3}
+ \DeclareMathSymbol{\surd}{\mathop}{delimiters}{"D3}
+\fi
+\def\r@@t#1#2{\setbox\z@\hbox{$\m@th#1\sqrt{#2}$}%
+ \dimen@\ht\z@ \advance\dimen@-\dp\z@
+ \mkern5mu\raise.6\dimen@\copy\rootbox \mkern-8mu\box\z@}
+\DeclareMathSymbol{+}{\mathbin}{symbols}{"11}
+\DeclareMathSymbol{-}{\mathbin}{symbols}{"0E}
+\DeclareMathSymbol{*}{\mathbin}{symbols}{"93}
+\DeclareMathSymbol{:}{\mathrel}{symbols}{"02}
+\DeclareMathSymbol{=}{\mathrel}{relations}{"00}
+\DeclareMathSymbol{<}{\mathrel}{relations}{"22}
+\DeclareMathSymbol{>}{\mathrel}{relations}{"23}
+\iffdsy@largedelims
+ \DeclareMathSymbol{|}{\mathord}{delimiters}{"B6}
+ \DeclareMathSymbol{(}{\mathopen}{delimiters}{"01}
+ \DeclareMathSymbol{)}{\mathclose}{delimiters}{"07}
+ \DeclareMathSymbol{[}{\mathopen}{delimiters}{"13}
+ \DeclareMathSymbol{]}{\mathclose}{delimiters}{"19}
+ \DeclareMathSymbol{/}{\mathord}{delimiters}{"AA}
+\else
+ \DeclareMathSymbol{|}{\mathord}{delimiters}{"B5}
+ \DeclareMathSymbol{(}{\mathopen}{delimiters}{"00}
+ \DeclareMathSymbol{)}{\mathclose}{delimiters}{"06}
+ \DeclareMathSymbol{[}{\mathopen}{delimiters}{"12}
+ \DeclareMathSymbol{]}{\mathclose}{delimiters}{"18}
+ \DeclareMathSymbol{/}{\mathord}{delimiters}{"A9}
+\fi
+\def\c@ncel#1#2{\m@th\ooalign{$\hfil#1/\hfil$\crcr$#1#2$}}
+\def\not#1{\mathrel{\m@th\mathpalette\c@ncel{#1}}}
+%%
+%%
+%% End of file `fdsymbol.sty'.
diff --git a/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc b/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc
index f223a372d98..95c6de86db8 100644
--- a/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc
+++ b/Master/tlpkg/tlpsrc/collection-fontsextra.tlpsrc
@@ -70,6 +70,7 @@ depend esstix
depend esvect
depend eulervm
depend euxm
+depend fdsymbol
depend feyn
depend fge
depend foekfont
diff --git a/Master/tlpkg/tlpsrc/fdsymbol.tlpsrc b/Master/tlpkg/tlpsrc/fdsymbol.tlpsrc
new file mode 100644
index 00000000000..e69de29bb2d
--- /dev/null
+++ b/Master/tlpkg/tlpsrc/fdsymbol.tlpsrc
diff --git a/TODO b/TODO
index b1a16cb35be..85d6ce3a6e7 100644
--- a/TODO
+++ b/TODO
@@ -29,6 +29,7 @@ not complain on the tlpsrc-set (installer only option) not complain
0. For 2011.
===========================================
- 2011 ptex.tlpsrc, metapost.tlpsrc.
+ rm "shortcut type=desktop" stuff from *.tlpsrc.
- add ep(la)tex to eptex.tlpsrc, including fmt entries:
eptex eptex language.def *eptex.ini