From c1c62fd720955995ba90867805d2bb2cab13c0d8 Mon Sep 17 00:00:00 2001 From: Nikita Prokopov Date: Thu, 14 May 2020 15:46:47 +0200 Subject: [PATCH] Arbitrary length underscores --- FiraCode.glyphs | 361 ++++++++++++++++++++-------- features/calt/arrows.fea | 66 +---- features/calt/double_arrows.fea | 63 +++++ features/calt/underscore_arrows.fea | 8 + showcases/v3/showcases.txt | 7 +- 5 files changed, 339 insertions(+), 166 deletions(-) create mode 100644 features/calt/double_arrows.fea create mode 100644 features/calt/underscore_arrows.fea diff --git a/FiraCode.glyphs b/FiraCode.glyphs index 682ec10..5aca5fd 100644 --- a/FiraCode.glyphs +++ b/FiraCode.glyphs @@ -1,13 +1,8 @@ { .appVersion = "1330"; -DisplayStrings = ( -"\012/bar_start.darw/colon_middle.darw/bar_end.darw/space/space/equal_colon_equal.rem/space/colon_equal.liga \012/bar_start.darw/exclam_middle.darw/bar_end.darw/space/space/equal_exclam_equal.rem \012/slash_start.darw/slash_middle.darw/slash_end.darw/space/space/equal_slash_equal.rem/space/slash_equal.rem/space/exclam_equal.liga \012/bar_start.darw/bar_middle.darw/bar_end.darw \012", -"=:=/space =!=/space =//=/space >=:=>/space <=!=/space ===>>/space ====|/space ===||/space ====//\012<====/space <===/space <==>>/space <===|/space <==||/space <===///space ==<==\012<<===/space <<==/space <<=>>/space <<==|/space <<=||/space <<==///space =<<=\012>====/space >=====<===>/space >==>>/space >===|/space >==||/space >===///space ==>==\012>>===/space >>==>=<>==>/space >>=>>/space >>==|/space >>=||/space >>==///space =>>=\012|====/space |===/space |==>>/space |===|/space |==||/space |===///space ==|==\012||===/space ||==/space ||=>>/space ||==|/space ||=||/space ||==///space =||=\012//====/space//===/space//==>>/space//===|/space//==||/space//===///space ==//==\012|==<==<<==>>==>==|==||==//==|\012" -); classes = ( { -code = "A A-cy AE AEacute Aacute Abreve Abreve-cy Acircumflex Adieresis Adieresis-cy Agrave Aie-cy Aleutka-cy Alpha Alphadasia Alphadasiaoxia Alphadasiaoxiaprosgegrammeni Alphadasiaperispomeni Alphadasiaperispomeniprosgegrammeni Alphadasiaprosgegrammeni Alphadasiavaria Alphadasiavariaprosgegrammeni Alphamacron Alphaoxia Alphaprosgegrammeni Alphapsili Alphapsilioxia Alphapsilioxiaprosgegrammeni Alphapsiliperispomeni Alphapsiliperispomeniprosgegrammeni Alphapsiliprosgegrammeni Alphapsilivaria Alphapsilivariaprosgegrammeni Alphatonos Alphavaria Alphavrachy Amacron Aogonek Archaicsampi Aring Atilde B BdoubleStruck Be-cy Beta C CR Cacute Cacute.loclPLK Ccaron Ccedilla Ccircumflex Cdotaccent CdoubleStruck Che-cy Cheabkhasian-cy Chedescender-cy Chedescenderabkhasian-cy Chedieresis-cy Chekhakassian-cy Cheverticalstroke-cy Chi D Dcaron Dche-cy Dcroat De-cy Delta Digamma Dje-cy Dze-cy Dzeabkhasian-cy Dzhe-cy Dzzhe-cy E E-cy Eacute Ebreve Ecaron Ecircumflex Edieresis Edieresis-cy Edotaccent Ef-cy Egrave Eiotified-cy El-cy Eldescender-cy Elhook-cy Elmiddlehook-cy Eltail-cy Em-cy Emacron Emtail-cy En-cy EnLeftHook-cy Endescender-cy Eng Enghe-cy Enhook-cy Enmiddlehook-cy Entail-cy Eogonek Epsilon Epsilondasia Epsilondasiaoxia Epsilondasiavaria Epsilonoxia Epsilonpsili Epsilonpsilioxia Epsilonpsilivaria Epsilontonos Epsilonvaria Er-cy Ereversed-cy Ertick-cy Es-cy Esdescender-cy Eta Etadasia Etadasiaoxia Etadasiaoxiaprosgegrammeni Etadasiaperispomeni Etadasiaperispomeniprosgegrammeni Etadasiaprosgegrammeni Etadasiavaria Etadasiavariaprosgegrammeni Etaoxia Etaprosgegrammeni Etapsili Etapsilioxia Etapsilioxiaprosgegrammeni Etapsiliperispomeni Etapsiliperispomeniprosgegrammeni Etapsiliprosgegrammeni Etapsilivaria Etapsilivariaprosgegrammeni Etatonos Etavaria Eth F F.spacer Fita-cy G Gamma Gbreve Gcircumflex Gcommaaccent Gdotaccent Ge-cy Gedescender-cy Germandbls Gestrokehook-cy Ghemiddlehook-cy Ghestroke-cy Gheupturn-cy Gje-cy H H18543 H18551 H22073 Ha-cy Haabkhasian-cy Hadescender-cy Hahook-cy Hardsign-cy Hastroke-cy Hbar Hcircumflex HdoubleStruck Heta I I-cy IJ Ia-cy Iacute Ibreve Icircumflex Idieresis Idieresis-cy Idotaccent Ie-cy Iebreve-cy Iegrave-cy Igrave Ii-cy Iigrave-cy Iishort-cy Iishorttail-cy Imacron Imacron-cy Io-cy Iogonek Iota Iotadasia Iotadasiaoxia Iotadasiaperispomeni Iotadasiavaria Iotadieresis Iotamacron Iotaoxia Iotapsili Iotapsilioxia Iotapsiliperispomeni Iotapsilivaria Iotatonos Iotavaria Iotavrachy Itilde Iu-cy Izhitsa-cy Izhitsadblgrave-cy J Jcircumflex Je-cy K Ka-cy Kabashkir-cy Kadescender-cy Kahook-cy KaiSymbol Kappa Kastroke-cy Kaverticalstroke-cy Kcommaaccent Kje-cy Komide-cy Komidje-cy Komidzje-cy Komilje-cy Kominje-cy Komisje-cy Komitje-cy Komizje-cy Koppa KoppaArchaic Ksi-cy L LIG Lacute Lambda Lcaron Lcommaaccent Ldot Lha-cy Lje-cy Lslash M Mu N Nacute Nacute.loclPLK Ncaron Ncommaaccent NdoubleStruck Nje-cy Ntilde Nu O O-cy OE Oacute Oacute.loclPLK Obarred-cy Obarreddieresis-cy Obreve Ocircumflex Odieresis Odieresis-cy Ograve Ohungarumlaut Omacron Omega Omega-cy Omegadasia Omegadasiaoxia Omegadasiaoxiaprosgegrammeni Omegadasiaperispomeni Omegadasiaperispomeniprosgegrammeni Omegadasiaprosgegrammeni Omegadasiavaria Omegadasiavariaprosgegrammeni Omegaoxia Omegaprosgegrammeni Omegapsili Omegapsilioxia Omegapsilioxiaprosgegrammeni Omegapsiliperispomeni Omegapsiliperispomeniprosgegrammeni Omegapsiliprosgegrammeni Omegapsilivaria Omegapsilivariaprosgegrammeni Omegatonos Omegavaria Omicron Omicrondasia Omicrondasiaoxia Omicrondasiavaria Omicronoxia Omicronpsili Omicronpsilioxia Omicronpsilivaria Omicrontonos Omicronvaria Oslash Oslashacute Otilde P Palochka-cy Pamphyliandigamma PdoubleStruck Pe-cy Pedescender-cy Pemiddlehook-cy Phi Pi Psi Psi-cy Q Qa-cy QdoubleStruck R Racute Rcaron Rcommaaccent RdoubleStruck Reversedze-cy Rha-cy Rho Rhodasia S SF010000 SF020000 SF030000 SF040000 SF050000 SF060000 SF070000 SF080000 SF090000 SF100000 SF110000 SF190000 SF200000 SF210000 SF220000 SF230000 SF240000 SF250000 SF260000 SF270000 SF280000 SF360000 SF370000 SF380000 SF390000 SF400000 SF410000 SF420000 SF430000 SF440000 SF450000 SF460000 SF470000 SF480000 SF490000 SF500000 SF510000 SF520000 SF530000 SF540000 Sacute Sacute.loclPLK Sampi San Scaron Scedilla Schwa-cy Schwadieresis-cy Scircumflex Scommaaccent Semisoftsign-cy Sha-cy Shcha-cy Shha-cy Shhadescender-cy Sho Sigma SigmaLunateDottedReversedSymbol SigmaLunateDottedSymbol SigmaLunateReversedSymbol SigmaLunateSymbol Softsign-cy Stigma T T.spacer Tau Tbar Tcaron Tcedilla Tcommaaccent Te-cy Tedescender-cy Tetse-cy Theta ThetaSymbol Thorn Tse-cy Tshe-cy U U-cy Uacute Ubreve Ucircumflex Udieresis Udieresis-cy Ugrave Uhungarumlaut Uhungarumlaut-cy Uk-cy Umacron Umacron-cy Uogonek Upsilon UpsilonacutehookSymbol Upsilondasia Upsilondasiaoxia Upsilondasiaperispomeni Upsilondasiavaria Upsilondieresis UpsilondieresishookSymbol UpsilonhookSymbol Upsilonmacron Upsilonoxia Upsilontonos Upsilonvaria Upsilonvrachy Uring Ushort-cy Ustrait-cy Ustraitstroke-cy Utilde V Ve-cy W Wacute Wcircumflex Wdieresis We-cy Wgrave X Xi Y Yacute Yae-cy Yat-cy Ycircumflex Ydieresis Yeru-cy Yerudieresis-cy Ygrave Yi-cy Yot-greek Yusbig-cy Yusbigiotified-cy Yuslittle-cy Yuslittleiotified-cy Z Zacute Zacute.loclPLK Zcaron Zdotaccent ZdoubleStruck Ze-cy Zedescender-cy Zedieresis-cy Zeta Zhe-cy Zhebreve-cy Zhedescender-cy Zhedieresis-cy a a-cy aacute abreve abreve-cy acircumflex acknowledge-control acute acute.case acute.case.loclPLK acute.loclPLK acutecomb adieresis adieresis-cy ae aeacute afii00208 agrave aie-cy aleutka-cy alpha alphadasia alphadasiaoxia alphadasiaoxiaypogegrammeni alphadasiaperispomeni alphadasiaperispomeniypogegrammeni alphadasiavaria alphadasiavariaypogegrammeni alphadasiaypogegrammeni alphamacron alphaoxia alphaoxiaypogegrammeni alphaperispomeni alphaperispomeniypogegrammeni alphapsili alphapsilioxia alphapsilioxiaypogegrammeni alphapsiliperispomeni alphapsiliperispomeniypogegrammeni alphapsilivaria alphapsilivariaypogegrammeni alphapsiliypogegrammeni alphatonos alphavaria alphavariaypogegrammeni alphavrachy alphaypogegrammeni alternativekeysymbol amacron ampersand ampersand.before.ss03 ampersand.spacer ampersand.ss03 ampersand_ampersand.liga anoteleia anticlockwiseGappedCircleArrow aogonek apostrophemod approxequal archaicsampi aring arrowboth arrowdown arrowdownleft arrowdownright arrowdownwhite arrowleft arrowleftwhite arrowright arrowrightwhite arrowup arrowupdown arrowupleft arrowupright arrowupwhite asciicircum asciicircum.spacer asciicircum_equal.liga asciitilde asciitilde.spacer asciitilde_asciitilde.liga asciitilde_asciitilde_greater.liga asciitilde_at.liga asciitilde_greater.liga asciitilde_hyphen.liga assertion asterisk asterisk.lc asterisk.spacer asterisk_asterisk.liga asterisk_asterisk_asterisk.liga asterisk_greater.liga asterisk_slash.liga at at.spacer at.ss05 atilde b backslash backslash.spacer backslash.ss06 backslash.thick.ss06 backslash_slash.liga backspace-control ballotBox ballotBoxWithCheck ballotBoxWithX bar bar.spacer bar_bar.liga bar_bar_bar_greater.liga bar_bar_end.arw bar_bar_end.darw bar_bar_greater.liga bar_bar_middle.arw bar_bar_middle.darw bar_bar_start.arw bar_bar_start.darw bar_braceright.liga bar_bracketright.liga bar_end.arw bar_end.darw bar_greater.liga bar_middle.arw bar_middle.darw bar_start.arw bar_start.darw be-cy because bell-control beta betaSymbol blackCircle blackDiamond blackLowerLeftTriangle blackLowerRightTriangle blackRightArrow blackUpperLeftTriangle blackUpperRightTriangle blackVerticalRect blank blankSymbol boxDownHeavyAndHorizontalLight boxDownHeavyAndLeftLight boxDownHeavyAndLeftUpLight boxDownHeavyAndRightLight boxDownHeavyAndRightUpLight boxDownHeavyAndUpHorizontalLight boxDownLightAndHorizontalHeavy boxDownLightAndLeftHeavy boxDownLightAndLeftUpHeavy boxDownLightAndRightHeavy boxDownLightAndRightUpHeavy boxDownLightAndUpHorizontalHeavy boxHeavyDoubleDashHorizontal boxHeavyDoubleDashVertical boxHeavyDown boxHeavyDownAndHorizontal boxHeavyDownAndLeft boxHeavyDownAndRight boxHeavyHorizontal boxHeavyLeft boxHeavyLeftAndLightRight boxHeavyQuadrupleDashHorizontal boxHeavyQuadrupleDashVertical boxHeavyRight boxHeavyTripleDashHorizontal boxHeavyTripleDashVertical boxHeavyUp boxHeavyUpAndHorizontal boxHeavyUpAndLeft boxHeavyUpAndLightDown boxHeavyUpAndRight boxHeavyVertical boxHeavyVerticalAndHorizontal boxHeavyVerticalAndLeft boxHeavyVerticalAndRight boxLeftDownHeavyAndRightUpLight boxLeftHeavyAndRightDownLight boxLeftHeavyAndRightUpLight boxLeftHeavyAndRightVerticalLight boxLeftLightAndRightDownHeavy boxLeftLightAndRightUpHeavy boxLeftLightAndRightVerticalHeavy boxLeftUpHeavyAndRightDownLight boxLightDiagonalCross boxLightDiagonalUpperLeftToLowerRight boxLightDiagonalUpperRightToLowerLeft boxLightDoubleDashHorizontal boxLightDoubleDashVertical boxLightDown boxLightLeft boxLightLeftAndHeavyRight boxLightQuadrupleDashHorizontal boxLightQuadrupleDashVertical boxLightRight boxLightTripleDashHorizontal boxLightTripleDashVertical boxLightUp boxLightUpAndHeavyDown boxRightDownHeavyAndLeftUpLight boxRightHeavyAndLeftDownLight boxRightHeavyAndLeftUpLight boxRightHeavyAndLeftVerticalLight boxRightLightAndLeftDownHeavy boxRightLightAndLeftUpHeavy boxRightLightAndLeftVerticalHeavy boxRightUpHeavyAndLeftDownLight boxUpHeavyAndDownHorizontalLight boxUpHeavyAndHorizontalLight boxUpHeavyAndLeftDownLight boxUpHeavyAndLeftLight boxUpHeavyAndRightDownLight boxUpHeavyAndRightLight boxUpLightAndDownHorizontalHeavy boxUpLightAndHorizontalHeavy boxUpLightAndLeftDownHeavy boxUpLightAndLeftHeavy boxUpLightAndRightDownHeavy boxUpLightAndRightHeavy boxVerticalHeavyAndHorizontalLight boxVerticalHeavyAndLeftLight boxVerticalHeavyAndRightLight boxVerticalLightAndHorizontalHeavy boxVerticalLightAndLeftHeavy boxVerticalLightAndRightHeavy braceleft braceleft.case braceleft.spacer braceleft_bar.liga braceright braceright.case braceright.spacer bracketleft bracketleft.case bracketleft.spacer bracketleft_bar.liga bracketright bracketright.case bracketright.spacer bracketright_numbersign.liga breve breve-cy breve-cy.case breve.case brevecomb brokenCircleNorthWestArrow brokenbar bullet bulletoperator bullseye c cacute cacute.loclPLK canadiansyllabicsa canadiansyllabicso cancel-control capslock caron caron.alt caron.case caroncomb carriageReturn-control ccaron ccedilla ccircumflex cdotaccent cedilla cedilla.case cedillacomb cent che-cy cheabkhasian-cy checkmark chedescender-cy chedescenderabkhasian-cy chedieresis-cy chekhakassian-cy cheverticalstroke-cy chi circumflex circumflex.case circumflexcomb clear clockwiseGappedCircleArrow club colon colon.spacer colon.uc colon_colon.liga colon_colon_colon.liga colon_colon_equal.liga colon_equal.liga colon_greater.liga colon_less.liga colon_middle.darw comma commaabovecomb commaaccent commaaccent.case commareversedabovecomb containsasmemberSmall control copyright cornerbracketleft cornerbracketleft.half cornerbracketright cornerbracketright.half crosshatchFillSquare curlybracketextension currency d dagger daggerdbl dasia dasiaoxia dasiaperispomeni dasiavaria dataLinkEscape-control dblgravecomb dblverticalbar dcaron dche-cy dcroat de-cy degree delete-control deleteFormTwo-control deleteLeftKey deleterightKey delta deviceControlFour-control deviceControlOne-control deviceControlThree-control deviceControlTwo-control diagonalcrosshatchFillSquare dialytikaoxia dialytikaperispomeni dialytikavaria diameterSign diamond dieresis dieresis.case dieresiscomb dieresistonos digamma divide divisionslash dje-cy dkshade doesnotforce doesnotprove dollar dollar.spacer dollar.ss04 dollar_greater.liga dollar_greater.liga.ss04 dotaccent dotaccent.case dotaccentcomb dotlessi dotlessj dottedlunatesigmasymbol doubleprimemod doubleverticalbardoublerightturnstile downArrowHead downBlackArrow downBlock downQuadrupleArrow drachma dze-cy dzeabkhasian-cy dzhe-cy dzzhe-cy e e-cy eacute earthTrigram ebreve ecaron ecircumflex edieresis edieresis-cy edotaccent ef-cy egrave eight eight.dnom eight.numr eight.tosf eightinferior eightsuperior eiotified-cy ejectsymbol el-cy eldescender-cy element elementSmall elhook-cy ellipsis elmiddlehook-cy eltail-cy em-cy emacron emdash emdash.case emptyset emtail-cy en-cy endOfMedium-control endOfText-control endOfTransmission-control endOfTransmissionBlock-control endash endash.case endescender-cy eng enghe-cy enhook-cy enlefthook-cy enmiddlehook-cy enquiry-control entail-cy eogonek epsilon epsilonLunateReversedSymbol epsilonLunateSymbol epsilondasia epsilondasiaoxia epsilondasiavaria epsilonoxia epsilonpsili epsilonpsilioxia epsilonpsilivaria epsilontonos epsilonvaria equal equal.dnom equal.numr equal.spacer equal_asciitilde.ss07 equal_end.darw equal_equal.liga equal_equal_equal.liga equal_start.darw equalsinferior equalsuperior equivalence er-cy ereversed-cy ertick-cy es-cy escape-control esdescender-cy estimated eta etadasia etadasiaoxia etadasiaoxiaypogegrammeni etadasiaperispomeni etadasiaperispomeniypogegrammeni etadasiavaria etadasiavariaypogegrammeni etadasiaypogegrammeni etaoxia etaoxiaypogegrammeni etaperispomeni etaperispomeniypogegrammeni etapsili etapsilioxia etapsilioxiaypogegrammeni etapsiliperispomeni etapsiliperispomeniypogegrammeni etapsilivaria etapsilivariaypogegrammeni etapsiliypogegrammeni etatonos etavaria etavariaypogegrammeni etaypogegrammeni eth euro exclam exclam.spacer exclam_asciitilde.ss07 exclam_equal.liga exclam_equal_equal.liga exclam_exclam.liga exclam_exclam_period.liga exclam_middle.darw exclamdown exclamdown.case existential f f.spacer female figuredash fileSeparator-control filledRect filledbox fireTrigram firsttonechinese fisheye fita-cy five five.dnom five.numr five.tosf fiveeighths fiveinferior fivesixths fivesuperior florin forces formFeed-control four four.dnom four.numr four.tosf fourfifths fourinferior foursuperior fraction fullBlock g gamma gbreve gcircumflex gcommaaccent gdotaccent ge-cy gedescender-cy germandbls gestrokehook-cy ghemiddlehook-cy ghestroke-cy gheupturn-cy gje-cy globeWithMeridians gradient grave grave.case gravecomb greater greater.spacer greater_colon.liga greater_end.arw greater_end.darw greater_equal.liga greater_equal.ss02 greater_greater.liga greater_greater_end.arw greater_greater_end.darw greater_greater_greater.liga greater_greater_middle.arw greater_greater_middle.darw greater_greater_start.arw greater_greater_start.darw greater_middle.arw greater_middle.darw greater_start.arw greater_start.darw greaterequal groupSeparator-control guillemetleft guillemetleft.case guillemetright guillemetright.case guilsinglleft guilsinglleft.case guilsinglright guilsinglright.case h ha-cy haabkhasian-cy hadescender-cy hahook-cy hardsign-cy hastroke-cy hbar hcircumflex heart heavenTrigram helmsymbol heta horizontalFillSquare horizontalTabulation-control house hungarumlaut hungarumlaut.case hungarumlautcomb hyphen hyphen.case hyphen.lc hyphen.spacer hyphen_asciitilde.liga hyphen_end.arw hyphen_hyphen.liga hyphen_hyphen_hyphen.liga hyphen_start.arw i i-cy i.salt_low ia-cy iacute ibreve icircumflex idieresis idieresis-cy idotaccent ie-cy iebreve-cy iegrave-cy igrave ii-cy iigrave-cy iishort-cy iishorttail-cy ij imacron imacron-cy increment infinity infinity.case integral integralbt integraltp intersection inverseWhiteCircle invsmileface io-cy iogonek iota iotadasia iotadasiaoxia iotadasiaperispomeni iotadasiavaria iotadialytikaoxia iotadialytikaperispomeni iotadialytikavaria iotadieresis iotadieresistonos iotamacron iotaoxia iotaperispomeni iotapsili iotapsilioxia iotapsiliperispomeni iotapsilivaria iotatonos iotavaria iotavrachy itilde iu-cy izhitsa-cy izhitsadblgrave-cy j j.salt_low jcircumflex je-cy k ka-cy kabashkir-cy kadescender-cy kahook-cy kaiSymbol kappa kappaSymbol kastroke-cy kaverticalstroke-cy kcommaaccent keyboard kgreenlandic kje-cy komide-cy komidje-cy komidzje-cy komilje-cy kominje-cy komisje-cy komitje-cy komizje-cy koppa koppaArchaic koronis ksi-cy l l.salt_low l.spacer lacute lakeTrigram lambda largeCircle lcaron lcommaaccent ldot leftBlackArrow leftBlackTriangle leftBlock leftFiveEighthsBlock leftHalfBlackCircle leftHalfBlackSquare leftHalfBlackWhiteCircle leftHookArrow leftLongArrow leftLongDoubleArrow leftLongDoubleFromBarArrow leftLongFromBarArrow leftOneEighthBlock leftOneQuarterBlock leftRightLongArrow leftRightLongDoubleArrow leftSevenEighthsBlock leftTabArrow leftThreeEighthsBlock leftThreeQuartersBlock leftanglebracket-math leftcurlybracketlowerhook leftcurlybracketmiddlepiece leftcurlybracketupperhook leftsquarebracketextension leftsquarebracketlowercorner leftsquarebracketuppercorner less less.spacer less_asciitilde.liga less_asciitilde_asciitilde.liga less_asciitilde_greater.liga less_asterisk.liga less_asterisk_greater.liga less_bar.liga less_bar_bar.liga less_bar_bar_bar.liga less_bar_greater.liga less_colon.liga less_dollar.liga less_dollar.liga.ss04 less_dollar_greater.liga less_dollar_greater.liga.ss04 less_end.arw less_end.darw less_equal.liga less_equal.ss02 less_exclam_hyphen_hyphen.liga less_greater.liga less_less.liga less_less_end.arw less_less_end.darw less_less_less.liga less_less_middle.arw less_less_middle.darw less_less_start.arw less_less_start.darw less_middle.arw less_middle.darw less_plus.liga less_plus_greater.liga less_slash.liga less_slash_greater.liga less_start.arw less_start.darw lessequal lha-cy lineFeed-control liraTurkish literSign lje-cy logicaland logicalnot logicalor lowerFiveEighthsBlock lowerHalfArc lowerHalfBlackWhiteCircle lowerHalfInverseWhiteCircle lowerLeftArc lowerLeftQuadrantWhiteCircle lowerOneEighthBlock lowerOneQuarterBlock lowerRightArc lowerRightDiagonalHalfBlackSquare lowerRightQuadrantWhiteCircle lowerSevenEighthsBlock lowerThreeEighthsBlock lowerThreeQuartersBlock lowernumeral-greek lozenge lslash ltshade m macron macron.case macroncomb male micro minus minus.dnom minus.numr minusinferior minussuperior models mountainTrigram mu multiply musicalnote musicalnotedbl n nacute nacute.loclPLK napostrophe ncaron ncommaaccent negateddoubleverticalbardoublerightturnstile negativeAcknowledge-control neitherasubsetofnorequalto neitherasupersetofnorequalto newline-control nine nine.dnom nine.numr nine.tosf nineinferior ninesuperior nje-cy nmod notcontains notelement notequal notidentical notsubset notsuperset nottrue ntilde nu null null-control numbersign numbersign.spacer numbersign_braceleft.liga numbersign_bracketleft.liga numbersign_colon.liga numbersign_colon.liga_rem numbersign_equal.liga numbersign_exclam.liga numbersign_numbersign.liga numbersign_numbersign_numbersign.liga numbersign_numbersign_numbersign_numbersign.liga numbersign_parenleft.liga numbersign_question.liga numbersign_underscore.liga numbersign_underscore_parenleft.liga numeral-greek numero o o-cy oacute oacute.loclPLK obarred-cy obarreddieresis-cy obreve ocircumflex odieresis odieresis-cy oe ogonek ograve ohungarumlaut omacron omega omega-cy omegadasia omegadasiaoxia omegadasiaoxiaypogegrammeni omegadasiaperispomeni omegadasiaperispomeniypogegrammeni omegadasiavaria omegadasiavariaypogegrammeni omegadasiaypogegrammeni omegaoxia omegaoxiaypogegrammeni omegaperispomeni omegaperispomeniypogegrammeni omegapsili omegapsilioxia omegapsilioxiaypogegrammeni omegapsiliperispomeni omegapsiliperispomeniypogegrammeni omegapsilivaria omegapsilivariaypogegrammeni omegapsiliypogegrammeni omegatonos omegavaria omegavariaypogegrammeni omegaypogegrammeni omicron omicrondasia omicrondasiaoxia omicrondasiavaria omicronoxia omicronpsili omicronpsilioxia omicronpsilivaria omicrontonos omicronvaria one one.dnom one.numr one.tosf oneeighth onefifth onefraction onehalf oneinferior onequarter onesixth onesuperior onethird optionKey ordfeminine ordmasculine oslash oslashacute otilde overlinecomb oxia oxia.case p pagedown pageup palochka-cy pamphyliandigamma paragraph parenleft parenleft.case parenleft.dnom parenleft.numr parenleft.spacer parenleftextension parenleftinferior parenleftlowerhook parenleftsuperior parenleftupperhook parenright parenright.case parenright.dnom parenright.numr parenrightextension parenrightinferior parenrightlowerhook parenrightsuperior parenrightupperhook partialdiff pe-cy pedescender-cy pemiddlehook-cy percent percent.spacer percent_percent.liga period period.spacer period_equal.liga period_hyphen.liga period_period.liga period_period_equal.liga period_period_less.liga period_period_period.liga period_question.liga periodcentered perispomeni perispomenicomb perspective perthousand phi phiSymbol pi piSymbol plus plus.dnom plus.lc plus.numr plus.spacer plus_greater.liga plus_plus.liga plus_plus_plus.liga plusinferior plusminus plussuperior primemod product projective propellor prosgegrammeni psi psi-cy psili psilioxia psiliperispomeni psilivaria q qa-cy quadrantLowerLeft quadrantLowerRight quadrantUpperLeft quadrantUpperLeftAndLowerLeftAndLowerRight quadrantUpperLeftAndLowerRight quadrantUpperLeftAndUpperRightAndLowerLeft quadrantUpperLeftAndUpperRightAndLowerRight quadrantUpperRight quadrantUpperRightAndLowerLeft quadrantUpperRightAndLowerLeftAndLowerRight question question.spacer question_equal.liga question_period.liga question_question.liga questiondown questiondown.case questiongreek quotedbl quotedblbase quotedblleft quotedblright quoteleft quoteright quotesinglbase quotesingle r r.ss01 racute radical rcaron rcommaaccent recordSeparator-control reflexsubset reflexsuperset registered returnsymbol reverseddottedlunatesigmasymbol reversedlunatesigmasymbol reversedze-cy revlogicalnot rha-cy rho rhoStrokeSymbol rhoSymbol rhodasia rhopsili rightBlackTriangle rightBlock rightCircledPlusArrow rightHalfBlackCircle rightHalfBlackSquare rightHalfBlackWhiteCircle rightLongDoubleArrow rightLongDoubleFromBarArrow rightLongFromBarArrow rightLongSquiggleArrow rightOneEighthBlock rightTabArrow rightanglebracket-math rightcurlybracketlowerhook rightcurlybracketmiddlepiece rightcurlybracketupperhook rightlongArrow rightsquarebracketextension rightsquarebracketlowercorner rightsquarebracketuppercorner righttack ring ring.case ringcomb ruble rupeeIndian s sacute sacute.loclPLK sampi san scaron scedilla schwa-cy schwadieresis-cy scircumflex scommaaccent section semicolon semicolon.spacer semicolon_semicolon.liga semisoftsign-cy seven seven.dnom seven.numr seven.tosf seveneighths seveninferior sevensuperior sha-cy shade shcha-cy shha-cy shhadescender-cy shiftIn-control shiftOut-control sho sigma sigmaLunateSymbol sigmafinal six six.dnom six.numr six.tosf sixinferior sixsuperior skullAndCrossbones slash slash.spacer slash_asterisk.liga slash_backslash.liga slash_end.darw slash_greater.liga slash_middle.darw slash_slash.liga slash_slash_slash.liga slash_start.darw smileface softhyphen softhyphen.case softsign-cy space-control spade squarewhitewithsmallblack startOfHeading-control startOfText-control sterling stigma strokelongoverlay strokeshortoverlay subset subsetnotequal substitute-control substituteFormTwo-control suchthat summation sun superset supersetnotequal synchronousIdle-control t tackdown tackleft tau tbar tcaron tcedilla tcommaaccent te-cy tedescender-cy tetse-cy theredoesnotexist therefore theta thetaSymbol thorn three three.dnom three.numr three.tosf threeTurned threeeighths threefifths threeinferior threequarters threesuperior thunderTrigram tilde tilde.case tildecomb tironiansignet tonos tonos.case trademark triaglf triagupTriangle triangledown triangleright tripleverticalbarrightturnstile true tse-cy tshe-cy two two.dnom two.numr two.tosf twoTurned twofifths twoinferior twosuperior twothirds u u-cy uacute ubreve ucircumflex udieresis udieresis-cy ugrave uhungarumlaut uhungarumlaut-cy uk-cy umacron umacron-cy underscore underscore.spacer underscore_bar_underscore.liga underscore_underscore.liga underscoredbl uni256D uni256E uni256F uni2570 uniE000 uniE001 uniE002 uniE003 uniE0A0 uniE0A1 uniE0A2 uniE0B0 uniE0B1 uniE0B2 uniE0B3 uniFEFF union unitSeparator-control universal uogonek upBetweenTwoHorizontalBarsArrowHead upBlackArrow upBlock upQuadrupleArrow upperHalfArc upperHalfBlackWhiteCircle upperHalfInverseWhiteCircle upperLeftArc upperLeftDiagonalHalfBlackSquare upperLeftQuadrantWhiteCircle upperLeftWhiteCircle upperOneEighthBlock upperRightArc upperRightQuadrantWhiteCircle upperlefttolowerrightFillSquare upperrighttolowerleftFillSquare upsilon upsilondasia upsilondasiaoxia upsilondasiaperispomeni upsilondasiavaria upsilondialytikaoxia upsilondialytikaperispomeni upsilondialytikavaria upsilondieresis upsilondieresistonos upsilonmacron upsilonoxia upsilonperispomeni upsilonpsili upsilonpsilioxia upsilonpsiliperispomeni upsilonpsilivaria upsilontonos upsilonvaria upsilonvrachy uptack uring ushort-cy ustrait-cy ustraitstroke-cy utilde v varia varia.case ve-cy verticalBisectingLineWhiteSquare verticalFillSquare verticalTabulation-control w w.spacer w_w_w.liga wacute waterTrigram wcircumflex wdieresis we-cy wgrave whiteCircle whiteDiamond whiteFrowningFace whiteRect whiteSquareWithLowerLeftQuadrant whiteSquareWithLowerRightQuadrant whiteSquareWithRoundedCorners whiteSquareWithUpperLeftQuadrant whiteSquareWithUpperRightQuadrant whiteVerticalRect windTrigram x x.multiply x.multiply.tosf xi y yacute yae-cy yat-cy ycircumflex ydieresis yen yeru-cy yerudieresis-cy ygrave yi-cy yot ypogegrammeni ypogegrammenicomb yusbig-cy yusbigiotified-cy yuslittle-cy yuslittleiotified-cy z zacute zacute.loclPLK zcaron zdotaccent ze-cy zedescender-cy zedieresis-cy zero zero.dnom zero.numr zero.tosf zero.tosf.zero zero.zero zero.zero.tosf zeroinferior zerosuperior zeta zhe-cy zhebreve-cy zhedescender-cy zhedieresis-cy"; +code = "A A-cy AE AEacute Aacute Abreve Abreve-cy Acircumflex Adieresis Adieresis-cy Agrave Aie-cy Aleutka-cy Alpha Alphadasia Alphadasiaoxia Alphadasiaoxiaprosgegrammeni Alphadasiaperispomeni Alphadasiaperispomeniprosgegrammeni Alphadasiaprosgegrammeni Alphadasiavaria Alphadasiavariaprosgegrammeni Alphamacron Alphaoxia Alphaprosgegrammeni Alphapsili Alphapsilioxia Alphapsilioxiaprosgegrammeni Alphapsiliperispomeni Alphapsiliperispomeniprosgegrammeni Alphapsiliprosgegrammeni Alphapsilivaria Alphapsilivariaprosgegrammeni Alphatonos Alphavaria Alphavrachy Amacron Aogonek Archaicsampi Aring Atilde B BdoubleStruck Be-cy Beta C CR Cacute Cacute.loclPLK Ccaron Ccedilla Ccircumflex Cdotaccent CdoubleStruck Che-cy Cheabkhasian-cy Chedescender-cy Chedescenderabkhasian-cy Chedieresis-cy Chekhakassian-cy Cheverticalstroke-cy Chi D Dcaron Dche-cy Dcroat De-cy Delta Digamma Dje-cy Dze-cy Dzeabkhasian-cy Dzhe-cy Dzzhe-cy E E-cy Eacute Ebreve Ecaron Ecircumflex Edieresis Edieresis-cy Edotaccent Ef-cy Egrave Eiotified-cy El-cy Eldescender-cy Elhook-cy Elmiddlehook-cy Eltail-cy Em-cy Emacron Emtail-cy En-cy EnLeftHook-cy Endescender-cy Eng Enghe-cy Enhook-cy Enmiddlehook-cy Entail-cy Eogonek Epsilon Epsilondasia Epsilondasiaoxia Epsilondasiavaria Epsilonoxia Epsilonpsili Epsilonpsilioxia Epsilonpsilivaria Epsilontonos Epsilonvaria Er-cy Ereversed-cy Ertick-cy Es-cy Esdescender-cy Eta Etadasia Etadasiaoxia Etadasiaoxiaprosgegrammeni Etadasiaperispomeni Etadasiaperispomeniprosgegrammeni Etadasiaprosgegrammeni Etadasiavaria Etadasiavariaprosgegrammeni Etaoxia Etaprosgegrammeni Etapsili Etapsilioxia Etapsilioxiaprosgegrammeni Etapsiliperispomeni Etapsiliperispomeniprosgegrammeni Etapsiliprosgegrammeni Etapsilivaria Etapsilivariaprosgegrammeni Etatonos Etavaria Eth F F.spacer Fita-cy G Gamma Gbreve Gcircumflex Gcommaaccent Gdotaccent Ge-cy Gedescender-cy Germandbls Gestrokehook-cy Ghemiddlehook-cy Ghestroke-cy Gheupturn-cy Gje-cy H H18543 H18551 H22073 Ha-cy Haabkhasian-cy Hadescender-cy Hahook-cy Hardsign-cy Hastroke-cy Hbar Hcircumflex HdoubleStruck Heta I I-cy IJ Ia-cy Iacute Ibreve Icircumflex Idieresis Idieresis-cy Idotaccent Ie-cy Iebreve-cy Iegrave-cy Igrave Ii-cy Iigrave-cy Iishort-cy Iishorttail-cy Imacron Imacron-cy Io-cy Iogonek Iota Iotadasia Iotadasiaoxia Iotadasiaperispomeni Iotadasiavaria Iotadieresis Iotamacron Iotaoxia Iotapsili Iotapsilioxia Iotapsiliperispomeni Iotapsilivaria Iotatonos Iotavaria Iotavrachy Itilde Iu-cy Izhitsa-cy Izhitsadblgrave-cy J Jcircumflex Je-cy K Ka-cy Kabashkir-cy Kadescender-cy Kahook-cy KaiSymbol Kappa Kastroke-cy Kaverticalstroke-cy Kcommaaccent Kje-cy Komide-cy Komidje-cy Komidzje-cy Komilje-cy Kominje-cy Komisje-cy Komitje-cy Komizje-cy Koppa KoppaArchaic Ksi-cy L LIG Lacute Lambda Lcaron Lcommaaccent Ldot Lha-cy Lje-cy Lslash M Mu N Nacute Nacute.loclPLK Ncaron Ncommaaccent NdoubleStruck Nje-cy Ntilde Nu O O-cy OE Oacute Oacute.loclPLK Obarred-cy Obarreddieresis-cy Obreve Ocircumflex Odieresis Odieresis-cy Ograve Ohungarumlaut Omacron Omega Omega-cy Omegadasia Omegadasiaoxia Omegadasiaoxiaprosgegrammeni Omegadasiaperispomeni Omegadasiaperispomeniprosgegrammeni Omegadasiaprosgegrammeni Omegadasiavaria Omegadasiavariaprosgegrammeni Omegaoxia Omegaprosgegrammeni Omegapsili Omegapsilioxia Omegapsilioxiaprosgegrammeni Omegapsiliperispomeni Omegapsiliperispomeniprosgegrammeni Omegapsiliprosgegrammeni Omegapsilivaria Omegapsilivariaprosgegrammeni Omegatonos Omegavaria Omicron Omicrondasia Omicrondasiaoxia Omicrondasiavaria Omicronoxia Omicronpsili Omicronpsilioxia Omicronpsilivaria Omicrontonos Omicronvaria Oslash Oslashacute Otilde P Palochka-cy Pamphyliandigamma PdoubleStruck Pe-cy Pedescender-cy Pemiddlehook-cy Phi Pi Psi Psi-cy Q Qa-cy QdoubleStruck R Racute Rcaron Rcommaaccent RdoubleStruck Reversedze-cy Rha-cy Rho Rhodasia S SF010000 SF020000 SF030000 SF040000 SF050000 SF060000 SF070000 SF080000 SF090000 SF100000 SF110000 SF190000 SF200000 SF210000 SF220000 SF230000 SF240000 SF250000 SF260000 SF270000 SF280000 SF360000 SF370000 SF380000 SF390000 SF400000 SF410000 SF420000 SF430000 SF440000 SF450000 SF460000 SF470000 SF480000 SF490000 SF500000 SF510000 SF520000 SF530000 SF540000 Sacute Sacute.loclPLK Sampi San Scaron Scedilla Schwa-cy Schwadieresis-cy Scircumflex Scommaaccent Semisoftsign-cy Sha-cy Shcha-cy Shha-cy Shhadescender-cy Sho Sigma SigmaLunateDottedReversedSymbol SigmaLunateDottedSymbol SigmaLunateReversedSymbol SigmaLunateSymbol Softsign-cy Stigma T T.spacer Tau Tbar Tcaron Tcedilla Tcommaaccent Te-cy Tedescender-cy Tetse-cy Theta ThetaSymbol Thorn Tse-cy Tshe-cy U U-cy Uacute Ubreve Ucircumflex Udieresis Udieresis-cy Ugrave Uhungarumlaut Uhungarumlaut-cy Uk-cy Umacron Umacron-cy Uogonek Upsilon UpsilonacutehookSymbol Upsilondasia Upsilondasiaoxia Upsilondasiaperispomeni Upsilondasiavaria Upsilondieresis UpsilondieresishookSymbol UpsilonhookSymbol Upsilonmacron Upsilonoxia Upsilontonos Upsilonvaria Upsilonvrachy Uring Ushort-cy Ustrait-cy Ustraitstroke-cy Utilde V Ve-cy W Wacute Wcircumflex Wdieresis We-cy Wgrave X Xi Y Yacute Yae-cy Yat-cy Ycircumflex Ydieresis Yeru-cy Yerudieresis-cy Ygrave Yi-cy Yot-greek Yusbig-cy Yusbigiotified-cy Yuslittle-cy Yuslittleiotified-cy Z Zacute Zacute.loclPLK Zcaron Zdotaccent ZdoubleStruck Ze-cy Zedescender-cy Zedieresis-cy Zeta Zhe-cy Zhebreve-cy Zhedescender-cy Zhedieresis-cy a a-cy aacute abreve abreve-cy acircumflex acknowledge-control acute acute.case acute.case.loclPLK acute.loclPLK acutecomb adieresis adieresis-cy ae aeacute afii00208 agrave aie-cy aleutka-cy alpha alphadasia alphadasiaoxia alphadasiaoxiaypogegrammeni alphadasiaperispomeni alphadasiaperispomeniypogegrammeni alphadasiavaria alphadasiavariaypogegrammeni alphadasiaypogegrammeni alphamacron alphaoxia alphaoxiaypogegrammeni alphaperispomeni alphaperispomeniypogegrammeni alphapsili alphapsilioxia alphapsilioxiaypogegrammeni alphapsiliperispomeni alphapsiliperispomeniypogegrammeni alphapsilivaria alphapsilivariaypogegrammeni alphapsiliypogegrammeni alphatonos alphavaria alphavariaypogegrammeni alphavrachy alphaypogegrammeni alternativekeysymbol amacron ampersand ampersand.before.ss03 ampersand.spacer ampersand.ss03 ampersand_ampersand.liga anoteleia anticlockwiseGappedCircleArrow aogonek apostrophemod approxequal archaicsampi aring arrowboth arrowdown arrowdownleft arrowdownright arrowdownwhite arrowleft arrowleftwhite arrowright arrowrightwhite arrowup arrowupdown arrowupleft arrowupright arrowupwhite asciicircum asciicircum.spacer asciicircum_equal.liga asciitilde asciitilde.spacer asciitilde_asciitilde.liga asciitilde_asciitilde_greater.liga asciitilde_at.liga asciitilde_greater.liga asciitilde_hyphen.liga assertion asterisk asterisk.lc asterisk.spacer asterisk_asterisk.liga asterisk_asterisk_asterisk.liga asterisk_greater.liga asterisk_slash.liga at at.spacer at.ss05 atilde b backslash backslash.spacer backslash.ss06 backslash.thick.ss06 backslash_slash.liga backspace-control ballotBox ballotBoxWithCheck ballotBoxWithX bar bar.spacer bar_bar.liga bar_bar_bar_greater.liga bar_bar_end.arw bar_bar_end.darw bar_bar_greater.liga bar_bar_middle.arw bar_bar_middle.darw bar_bar_start.arw bar_bar_start.darw bar_braceright.liga bar_bracketright.liga bar_end.arw bar_end.darw bar_greater.liga bar_middle.arw bar_middle.darw bar_middle.uarw bar_start.arw bar_start.darw be-cy because bell-control beta betaSymbol blackCircle blackDiamond blackLowerLeftTriangle blackLowerRightTriangle blackRightArrow blackUpperLeftTriangle blackUpperRightTriangle blackVerticalRect blank blankSymbol boxDownHeavyAndHorizontalLight boxDownHeavyAndLeftLight boxDownHeavyAndLeftUpLight boxDownHeavyAndRightLight boxDownHeavyAndRightUpLight boxDownHeavyAndUpHorizontalLight boxDownLightAndHorizontalHeavy boxDownLightAndLeftHeavy boxDownLightAndLeftUpHeavy boxDownLightAndRightHeavy boxDownLightAndRightUpHeavy boxDownLightAndUpHorizontalHeavy boxHeavyDoubleDashHorizontal boxHeavyDoubleDashVertical boxHeavyDown boxHeavyDownAndHorizontal boxHeavyDownAndLeft boxHeavyDownAndRight boxHeavyHorizontal boxHeavyLeft boxHeavyLeftAndLightRight boxHeavyQuadrupleDashHorizontal boxHeavyQuadrupleDashVertical boxHeavyRight boxHeavyTripleDashHorizontal boxHeavyTripleDashVertical boxHeavyUp boxHeavyUpAndHorizontal boxHeavyUpAndLeft boxHeavyUpAndLightDown boxHeavyUpAndRight boxHeavyVertical boxHeavyVerticalAndHorizontal boxHeavyVerticalAndLeft boxHeavyVerticalAndRight boxLeftDownHeavyAndRightUpLight boxLeftHeavyAndRightDownLight boxLeftHeavyAndRightUpLight boxLeftHeavyAndRightVerticalLight boxLeftLightAndRightDownHeavy boxLeftLightAndRightUpHeavy boxLeftLightAndRightVerticalHeavy boxLeftUpHeavyAndRightDownLight boxLightDiagonalCross boxLightDiagonalUpperLeftToLowerRight boxLightDiagonalUpperRightToLowerLeft boxLightDoubleDashHorizontal boxLightDoubleDashVertical boxLightDown boxLightLeft boxLightLeftAndHeavyRight boxLightQuadrupleDashHorizontal boxLightQuadrupleDashVertical boxLightRight boxLightTripleDashHorizontal boxLightTripleDashVertical boxLightUp boxLightUpAndHeavyDown boxRightDownHeavyAndLeftUpLight boxRightHeavyAndLeftDownLight boxRightHeavyAndLeftUpLight boxRightHeavyAndLeftVerticalLight boxRightLightAndLeftDownHeavy boxRightLightAndLeftUpHeavy boxRightLightAndLeftVerticalHeavy boxRightUpHeavyAndLeftDownLight boxUpHeavyAndDownHorizontalLight boxUpHeavyAndHorizontalLight boxUpHeavyAndLeftDownLight boxUpHeavyAndLeftLight boxUpHeavyAndRightDownLight boxUpHeavyAndRightLight boxUpLightAndDownHorizontalHeavy boxUpLightAndHorizontalHeavy boxUpLightAndLeftDownHeavy boxUpLightAndLeftHeavy boxUpLightAndRightDownHeavy boxUpLightAndRightHeavy boxVerticalHeavyAndHorizontalLight boxVerticalHeavyAndLeftLight boxVerticalHeavyAndRightLight boxVerticalLightAndHorizontalHeavy boxVerticalLightAndLeftHeavy boxVerticalLightAndRightHeavy braceleft braceleft.case braceleft.spacer braceleft_bar.liga braceright braceright.case braceright.spacer bracketleft bracketleft.case bracketleft.spacer bracketleft_bar.liga bracketright bracketright.case bracketright.spacer bracketright_numbersign.liga breve breve-cy breve-cy.case breve.case brevecomb brokenCircleNorthWestArrow brokenbar bullet bulletoperator bullseye c cacute cacute.loclPLK canadiansyllabicsa canadiansyllabicso cancel-control capslock caron caron.alt caron.case caroncomb carriageReturn-control ccaron ccedilla ccircumflex cdotaccent cedilla cedilla.case cedillacomb cent che-cy cheabkhasian-cy checkmark chedescender-cy chedescenderabkhasian-cy chedieresis-cy chekhakassian-cy cheverticalstroke-cy chi circumflex circumflex.case circumflexcomb clear clockwiseGappedCircleArrow club colon colon.spacer colon.uc colon_colon.liga colon_colon_colon.liga colon_colon_equal.liga colon_equal.liga colon_greater.liga colon_less.liga colon_middle.darw comma commaabovecomb commaaccent commaaccent.case commareversedabovecomb containsasmemberSmall control copyright cornerbracketleft cornerbracketleft.half cornerbracketright cornerbracketright.half crosshatchFillSquare curlybracketextension currency d dagger daggerdbl dasia dasiaoxia dasiaperispomeni dasiavaria dataLinkEscape-control dblgravecomb dblverticalbar dcaron dche-cy dcroat de-cy degree delete-control deleteFormTwo-control deleteLeftKey deleterightKey delta deviceControlFour-control deviceControlOne-control deviceControlThree-control deviceControlTwo-control diagonalcrosshatchFillSquare dialytikaoxia dialytikaperispomeni dialytikavaria diameterSign diamond dieresis dieresis.case dieresiscomb dieresistonos digamma divide divisionslash dje-cy dkshade doesnotforce doesnotprove dollar dollar.spacer dollar.ss04 dollar_greater.liga dollar_greater.liga.ss04 dotaccent dotaccent.case dotaccentcomb dotlessi dotlessj dottedlunatesigmasymbol doubleprimemod doubleverticalbardoublerightturnstile downArrowHead downBlackArrow downBlock downQuadrupleArrow drachma dze-cy dzeabkhasian-cy dzhe-cy dzzhe-cy e e-cy eacute earthTrigram ebreve ecaron ecircumflex edieresis edieresis-cy edotaccent ef-cy egrave eight eight.dnom eight.numr eight.tosf eightinferior eightsuperior eiotified-cy ejectsymbol el-cy eldescender-cy element elementSmall elhook-cy ellipsis elmiddlehook-cy eltail-cy em-cy emacron emdash emdash.case emptyset emtail-cy en-cy endOfMedium-control endOfText-control endOfTransmission-control endOfTransmissionBlock-control endash endash.case endescender-cy eng enghe-cy enhook-cy enlefthook-cy enmiddlehook-cy enquiry-control entail-cy eogonek epsilon epsilonLunateReversedSymbol epsilonLunateSymbol epsilondasia epsilondasiaoxia epsilondasiavaria epsilonoxia epsilonpsili epsilonpsilioxia epsilonpsilivaria epsilontonos epsilonvaria equal equal.dnom equal.numr equal.spacer equal_asciitilde.ss07 equal_end.darw equal_equal.liga equal_equal_equal.liga equal_start.darw equalsinferior equalsuperior equivalence er-cy ereversed-cy ertick-cy es-cy escape-control esdescender-cy estimated eta etadasia etadasiaoxia etadasiaoxiaypogegrammeni etadasiaperispomeni etadasiaperispomeniypogegrammeni etadasiavaria etadasiavariaypogegrammeni etadasiaypogegrammeni etaoxia etaoxiaypogegrammeni etaperispomeni etaperispomeniypogegrammeni etapsili etapsilioxia etapsilioxiaypogegrammeni etapsiliperispomeni etapsiliperispomeniypogegrammeni etapsilivaria etapsilivariaypogegrammeni etapsiliypogegrammeni etatonos etavaria etavariaypogegrammeni etaypogegrammeni eth euro exclam exclam.spacer exclam_asciitilde.ss07 exclam_equal.liga exclam_equal_equal.liga exclam_exclam.liga exclam_exclam_period.liga exclam_middle.darw exclamdown exclamdown.case existential f f.spacer female figuredash fileSeparator-control filledRect filledbox fireTrigram firsttonechinese fisheye fita-cy five five.dnom five.numr five.tosf fiveeighths fiveinferior fivesixths fivesuperior florin forces formFeed-control four four.dnom four.numr four.tosf fourfifths fourinferior foursuperior fraction fullBlock g gamma gbreve gcircumflex gcommaaccent gdotaccent ge-cy gedescender-cy germandbls gestrokehook-cy ghemiddlehook-cy ghestroke-cy gheupturn-cy gje-cy globeWithMeridians gradient grave grave.case gravecomb greater greater.spacer greater_colon.liga greater_end.arw greater_end.darw greater_equal.liga greater_equal.ss02 greater_greater.liga greater_greater_end.arw greater_greater_end.darw greater_greater_greater.liga greater_greater_middle.arw greater_greater_middle.darw greater_greater_start.arw greater_greater_start.darw greater_middle.arw greater_middle.darw greater_start.arw greater_start.darw greaterequal groupSeparator-control guillemetleft guillemetleft.case guillemetright guillemetright.case guilsinglleft guilsinglleft.case guilsinglright guilsinglright.case h ha-cy haabkhasian-cy hadescender-cy hahook-cy hardsign-cy hastroke-cy hbar hcircumflex heart heavenTrigram helmsymbol heta horizontalFillSquare horizontalTabulation-control house hungarumlaut hungarumlaut.case hungarumlautcomb hyphen hyphen.case hyphen.lc hyphen.spacer hyphen_asciitilde.liga hyphen_end.arw hyphen_hyphen.liga hyphen_hyphen_hyphen.liga hyphen_start.arw i i-cy i.salt_low ia-cy iacute ibreve icircumflex idieresis idieresis-cy idotaccent ie-cy iebreve-cy iegrave-cy igrave ii-cy iigrave-cy iishort-cy iishorttail-cy ij imacron imacron-cy increment infinity infinity.case integral integralbt integraltp intersection inverseWhiteCircle invsmileface io-cy iogonek iota iotadasia iotadasiaoxia iotadasiaperispomeni iotadasiavaria iotadialytikaoxia iotadialytikaperispomeni iotadialytikavaria iotadieresis iotadieresistonos iotamacron iotaoxia iotaperispomeni iotapsili iotapsilioxia iotapsiliperispomeni iotapsilivaria iotatonos iotavaria iotavrachy itilde iu-cy izhitsa-cy izhitsadblgrave-cy j j.salt_low jcircumflex je-cy k ka-cy kabashkir-cy kadescender-cy kahook-cy kaiSymbol kappa kappaSymbol kastroke-cy kaverticalstroke-cy kcommaaccent keyboard kgreenlandic kje-cy komide-cy komidje-cy komidzje-cy komilje-cy kominje-cy komisje-cy komitje-cy komizje-cy koppa koppaArchaic koronis ksi-cy l l.salt_low l.spacer lacute lakeTrigram lambda largeCircle lcaron lcommaaccent ldot leftBlackArrow leftBlackTriangle leftBlock leftFiveEighthsBlock leftHalfBlackCircle leftHalfBlackSquare leftHalfBlackWhiteCircle leftHookArrow leftLongArrow leftLongDoubleArrow leftLongDoubleFromBarArrow leftLongFromBarArrow leftOneEighthBlock leftOneQuarterBlock leftRightLongArrow leftRightLongDoubleArrow leftSevenEighthsBlock leftTabArrow leftThreeEighthsBlock leftThreeQuartersBlock leftanglebracket-math leftcurlybracketlowerhook leftcurlybracketmiddlepiece leftcurlybracketupperhook leftsquarebracketextension leftsquarebracketlowercorner leftsquarebracketuppercorner less less.spacer less_asciitilde.liga less_asciitilde_asciitilde.liga less_asciitilde_greater.liga less_asterisk.liga less_asterisk_greater.liga less_bar.liga less_bar_bar.liga less_bar_bar_bar.liga less_bar_greater.liga less_colon.liga less_dollar.liga less_dollar.liga.ss04 less_dollar_greater.liga less_dollar_greater.liga.ss04 less_end.arw less_end.darw less_equal.liga less_equal.ss02 less_exclam_hyphen_hyphen.liga less_greater.liga less_less.liga less_less_end.arw less_less_end.darw less_less_less.liga less_less_middle.arw less_less_middle.darw less_less_start.arw less_less_start.darw less_middle.arw less_middle.darw less_plus.liga less_plus_greater.liga less_slash.liga less_slash_greater.liga less_start.arw less_start.darw lessequal lha-cy lineFeed-control liraTurkish literSign lje-cy logicaland logicalnot logicalor lowerFiveEighthsBlock lowerHalfArc lowerHalfBlackWhiteCircle lowerHalfInverseWhiteCircle lowerLeftArc lowerLeftQuadrantWhiteCircle lowerOneEighthBlock lowerOneQuarterBlock lowerRightArc lowerRightDiagonalHalfBlackSquare lowerRightQuadrantWhiteCircle lowerSevenEighthsBlock lowerThreeEighthsBlock lowerThreeQuartersBlock lowernumeral-greek lozenge lslash ltshade m macron macron.case macroncomb male micro minus minus.dnom minus.numr minusinferior minussuperior models mountainTrigram mu multiply musicalnote musicalnotedbl n nacute nacute.loclPLK napostrophe ncaron ncommaaccent negateddoubleverticalbardoublerightturnstile negativeAcknowledge-control neitherasubsetofnorequalto neitherasupersetofnorequalto newline-control nine nine.dnom nine.numr nine.tosf nineinferior ninesuperior nje-cy nmod notcontains notelement notequal notidentical notsubset notsuperset nottrue ntilde nu null null-control numbersign numbersign.spacer numbersign_braceleft.liga numbersign_bracketleft.liga numbersign_colon.liga numbersign_colon.liga_rem numbersign_equal.liga numbersign_exclam.liga numbersign_numbersign.liga numbersign_numbersign_numbersign.liga numbersign_numbersign_numbersign_numbersign.liga numbersign_parenleft.liga numbersign_question.liga numbersign_underscore.liga numbersign_underscore_parenleft.liga numeral-greek numero o o-cy oacute oacute.loclPLK obarred-cy obarreddieresis-cy obreve ocircumflex odieresis odieresis-cy oe ogonek ograve ohungarumlaut omacron omega omega-cy omegadasia omegadasiaoxia omegadasiaoxiaypogegrammeni omegadasiaperispomeni omegadasiaperispomeniypogegrammeni omegadasiavaria omegadasiavariaypogegrammeni omegadasiaypogegrammeni omegaoxia omegaoxiaypogegrammeni omegaperispomeni omegaperispomeniypogegrammeni omegapsili omegapsilioxia omegapsilioxiaypogegrammeni omegapsiliperispomeni omegapsiliperispomeniypogegrammeni omegapsilivaria omegapsilivariaypogegrammeni omegapsiliypogegrammeni omegatonos omegavaria omegavariaypogegrammeni omegaypogegrammeni omicron omicrondasia omicrondasiaoxia omicrondasiavaria omicronoxia omicronpsili omicronpsilioxia omicronpsilivaria omicrontonos omicronvaria one one.dnom one.numr one.tosf oneeighth onefifth onefraction onehalf oneinferior onequarter onesixth onesuperior onethird optionKey ordfeminine ordmasculine oslash oslashacute otilde overlinecomb oxia oxia.case p pagedown pageup palochka-cy pamphyliandigamma paragraph parenleft parenleft.case parenleft.dnom parenleft.numr parenleft.spacer parenleftextension parenleftinferior parenleftlowerhook parenleftsuperior parenleftupperhook parenright parenright.case parenright.dnom parenright.numr parenrightextension parenrightinferior parenrightlowerhook parenrightsuperior parenrightupperhook partialdiff pe-cy pedescender-cy pemiddlehook-cy percent percent.spacer percent_percent.liga period period.spacer period_equal.liga period_hyphen.liga period_period.liga period_period_equal.liga period_period_less.liga period_period_period.liga period_question.liga periodcentered perispomeni perispomenicomb perspective perthousand phi phiSymbol pi piSymbol plus plus.dnom plus.lc plus.numr plus.spacer plus_greater.liga plus_plus.liga plus_plus_plus.liga plusinferior plusminus plussuperior primemod product projective propellor prosgegrammeni psi psi-cy psili psilioxia psiliperispomeni psilivaria q qa-cy quadrantLowerLeft quadrantLowerRight quadrantUpperLeft quadrantUpperLeftAndLowerLeftAndLowerRight quadrantUpperLeftAndLowerRight quadrantUpperLeftAndUpperRightAndLowerLeft quadrantUpperLeftAndUpperRightAndLowerRight quadrantUpperRight quadrantUpperRightAndLowerLeft quadrantUpperRightAndLowerLeftAndLowerRight question question.spacer question_equal.liga question_period.liga question_question.liga questiondown questiondown.case questiongreek quotedbl quotedblbase quotedblleft quotedblright quoteleft quoteright quotesinglbase quotesingle r r.ss01 racute radical rcaron rcommaaccent recordSeparator-control reflexsubset reflexsuperset registered returnsymbol reverseddottedlunatesigmasymbol reversedlunatesigmasymbol reversedze-cy revlogicalnot rha-cy rho rhoStrokeSymbol rhoSymbol rhodasia rhopsili rightBlackTriangle rightBlock rightCircledPlusArrow rightHalfBlackCircle rightHalfBlackSquare rightHalfBlackWhiteCircle rightLongDoubleArrow rightLongDoubleFromBarArrow rightLongFromBarArrow rightLongSquiggleArrow rightOneEighthBlock rightTabArrow rightanglebracket-math rightcurlybracketlowerhook rightcurlybracketmiddlepiece rightcurlybracketupperhook rightlongArrow rightsquarebracketextension rightsquarebracketlowercorner rightsquarebracketuppercorner righttack ring ring.case ringcomb ruble rupeeIndian s sacute sacute.loclPLK sampi san scaron scedilla schwa-cy schwadieresis-cy scircumflex scommaaccent section semicolon semicolon.spacer semicolon_semicolon.liga semisoftsign-cy seven seven.dnom seven.numr seven.tosf seveneighths seveninferior sevensuperior sha-cy shade shcha-cy shha-cy shhadescender-cy shiftIn-control shiftOut-control sho sigma sigmaLunateSymbol sigmafinal six six.dnom six.numr six.tosf sixinferior sixsuperior skullAndCrossbones slash slash.spacer slash_asterisk.liga slash_backslash.liga slash_end.darw slash_greater.liga slash_middle.darw slash_slash.liga slash_slash_slash.liga slash_start.darw smileface softhyphen softhyphen.case softsign-cy space-control spade squarewhitewithsmallblack startOfHeading-control startOfText-control sterling stigma strokelongoverlay strokeshortoverlay subset subsetnotequal substitute-control substituteFormTwo-control suchthat summation sun superset supersetnotequal synchronousIdle-control t tackdown tackleft tau tbar tcaron tcedilla tcommaaccent te-cy tedescender-cy tetse-cy theredoesnotexist therefore theta thetaSymbol thorn three three.dnom three.numr three.tosf threeTurned threeeighths threefifths threeinferior threequarters threesuperior thunderTrigram tilde tilde.case tildecomb tironiansignet tonos tonos.case trademark triaglf triagupTriangle triangledown triangleright tripleverticalbarrightturnstile true tse-cy tshe-cy two two.dnom two.numr two.tosf twoTurned twofifths twoinferior twosuperior twothirds u u-cy uacute ubreve ucircumflex udieresis udieresis-cy ugrave uhungarumlaut uhungarumlaut-cy uk-cy umacron umacron-cy underscore underscore.spacer underscore_end.uarw underscore_middle.uarw underscore_start.uarw underscoredbl uni256D uni256E uni256F uni2570 uniE000 uniE001 uniE002 uniE003 uniE0A0 uniE0A1 uniE0A2 uniE0B0 uniE0B1 uniE0B2 uniE0B3 uniFEFF union unitSeparator-control universal uogonek upBetweenTwoHorizontalBarsArrowHead upBlackArrow upBlock upQuadrupleArrow upperHalfArc upperHalfBlackWhiteCircle upperHalfInverseWhiteCircle upperLeftArc upperLeftDiagonalHalfBlackSquare upperLeftQuadrantWhiteCircle upperLeftWhiteCircle upperOneEighthBlock upperRightArc upperRightQuadrantWhiteCircle upperlefttolowerrightFillSquare upperrighttolowerleftFillSquare upsilon upsilondasia upsilondasiaoxia upsilondasiaperispomeni upsilondasiavaria upsilondialytikaoxia upsilondialytikaperispomeni upsilondialytikavaria upsilondieresis upsilondieresistonos upsilonmacron upsilonoxia upsilonperispomeni upsilonpsili upsilonpsilioxia upsilonpsiliperispomeni upsilonpsilivaria upsilontonos upsilonvaria upsilonvrachy uptack uring ushort-cy ustrait-cy ustraitstroke-cy utilde v varia varia.case ve-cy verticalBisectingLineWhiteSquare verticalFillSquare verticalTabulation-control w w.spacer w_w_w.liga wacute waterTrigram wcircumflex wdieresis we-cy wgrave whiteCircle whiteDiamond whiteFrowningFace whiteRect whiteSquareWithLowerLeftQuadrant whiteSquareWithLowerRightQuadrant whiteSquareWithRoundedCorners whiteSquareWithUpperLeftQuadrant whiteSquareWithUpperRightQuadrant whiteVerticalRect windTrigram x x.multiply x.multiply.tosf xi y yacute yae-cy yat-cy ycircumflex ydieresis yen yeru-cy yerudieresis-cy ygrave yi-cy yot ypogegrammeni ypogegrammenicomb yusbig-cy yusbigiotified-cy yuslittle-cy yuslittleiotified-cy z zacute zacute.loclPLK zcaron zdotaccent ze-cy zedescender-cy zedieresis-cy zero zero.dnom zero.numr zero.tosf zero.tosf.zero zero.zero zero.zero.tosf zeroinferior zerosuperior zeta zhe-cy zhebreve-cy zhedescender-cy zhedieresis-cy"; name = NotSpace; }, { @@ -220,7 +215,7 @@ code = "pos @Uppercase <5 0 10 0>;\012"; name = cpsp; }, { -code = "lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup numbersign_numbersign_numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign numbersign numbersign;\012 ignore sub numbersign' numbersign numbersign numbersign numbersign;\012 sub numbersign.spacer numbersign.spacer numbersign.spacer numbersign' by numbersign_numbersign_numbersign_numbersign.liga;\012 sub numbersign.spacer numbersign.spacer numbersign' numbersign by numbersign.spacer;\012 sub numbersign.spacer numbersign' numbersign numbersign by numbersign.spacer;\012 sub numbersign' numbersign numbersign numbersign by numbersign.spacer;\012} numbersign_numbersign_numbersign_numbersign;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub [bracketleft less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [bracketright less greater bar slash];\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup hyphen_hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen hyphen;\012 ignore sub [bracketleft less greater bar] hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen [bracketright less greater bar];\012 sub hyphen.spacer hyphen.spacer hyphen' by hyphen_hyphen_hyphen.liga;\012 sub hyphen.spacer hyphen' hyphen by hyphen.spacer;\012 sub hyphen' hyphen hyphen by hyphen.spacer;\012} hyphen_hyphen_hyphen;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign numbersign;\012 ignore sub numbersign' numbersign numbersign numbersign;\012 sub numbersign.spacer numbersign.spacer numbersign' by numbersign_numbersign_numbersign.liga;\012 sub numbersign.spacer numbersign' numbersign by numbersign.spacer;\012 sub numbersign' numbersign numbersign by numbersign.spacer;\012} numbersign_numbersign_numbersign;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup underscore_bar_underscore {\012 ignore sub underscore underscore' bar underscore;\012 ignore sub underscore' bar underscore underscore;\012 sub underscore.spacer bar.spacer underscore' by underscore_bar_underscore.liga;\012 sub underscore.spacer bar' underscore by bar.spacer;\012 sub underscore' bar underscore by underscore.spacer;\012} underscore_bar_underscore;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar [hyphen equal];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup colon_greater {\012 ignore sub colon colon' greater;\012 ignore sub colon' greater greater;\012 ignore sub parenleft question colon' greater;\012 ignore sub colon' greater equal;\012 sub colon.spacer greater' by colon_greater.liga;\012 sub colon' greater by colon.spacer;\012} colon_greater;\012\012lookup colon_less {\012 ignore sub colon colon' less;\012 ignore sub colon' less less;\012 ignore sub parenleft question colon' less;\012 sub colon.spacer less' by colon_less.liga;\012 sub colon' less by colon.spacer;\012} colon_less;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub [bracketleft less greater bar slash] equal' equal;\012 ignore sub equal' equal [bracketright less greater bar slash] ;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_colon {\012 ignore sub greater greater' colon;\012 ignore sub greater' colon colon;\012 sub greater.spacer colon' by greater_colon.liga;\012 sub greater' colon by greater.spacer;\012} greater_colon;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar hyphen equal] greater' greater;\012 ignore sub greater' greater [hyphen equal];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [bracketleft less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [bracketright less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup less_colon {\012 ignore sub less less' colon;\012 ignore sub less' colon colon;\012 sub less.spacer colon' by less_colon.liga;\012 sub less' colon by less.spacer;\012} less_colon;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less [asterisk plus dollar hyphen equal];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign;\012 ignore sub numbersign' numbersign numbersign;\012 sub numbersign.spacer numbersign' by numbersign_numbersign.liga;\012 sub numbersign' numbersign by numbersign.spacer;\012} numbersign_numbersign;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_equal {\012 ignore sub period period' equal;\012 ignore sub period' equal equal;\012 sub period.spacer equal' by period_equal.liga;\012 sub period' equal by period.spacer;\012} period_equal;\012\012lookup period_hyphen {\012 ignore sub period period' hyphen;\012 ignore sub period' hyphen hyphen;\012 sub period.spacer hyphen' by period_hyphen.liga;\012 sub period' hyphen by period.spacer;\012} period_hyphen;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012lookup underscore_underscore {\012 ignore sub underscore underscore' underscore;\012 ignore sub underscore' underscore underscore;\012 sub underscore.spacer underscore' by underscore_underscore.liga;\012 sub underscore' underscore by underscore.spacer;\012} underscore_underscore;\012\012### Arbitrary-length arrows #346\012\012lookup arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.arw hyphen_end.arw] bar' bar bar;\012\012 # continue hyphen\012 sub [less_start.arw less_less_start.arw less_middle.arw less_less_middle.arw greater_start.arw greater_greater_start.arw greater_middle.arw greater_greater_middle.arw bar_start.arw bar_bar_start.arw bar_middle.arw bar_bar_middle.arw hyphen_start.arw hyphen_end.arw] hyphen' by hyphen_end.arw;\012\012 # double middles\012 sub [hyphen_start.arw hyphen_end.arw] less.spacer less' hyphen by less_less_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] less' less hyphen by less.spacer;\012 sub [hyphen_start.arw hyphen_end.arw] greater.spacer greater' hyphen by greater_greater_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.arw hyphen_end.arw] bar.spacer bar' hyphen by bar_bar_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.arw hyphen_end.arw] less' hyphen by less_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] greater' hyphen by greater_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] bar' hyphen by bar_middle.arw;\012\012 # double ends\012 sub [hyphen_start.arw hyphen_end.arw] less.spacer less' by less_less_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] less' less by less.spacer;\012 sub [hyphen_start.arw hyphen_end.arw] greater.spacer greater' by greater_greater_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] greater' greater by greater.spacer;\012 sub [hyphen_start.arw hyphen_end.arw] bar.spacer bar' by bar_bar_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.arw hyphen_end.arw] less' by less_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] greater' by greater_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] bar' by bar_end.arw;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_start.arw;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_start.arw;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_start.arw;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_start.arw;\012 sub greater' hyphen by greater_start.arw;\012 sub bar' hyphen by bar_start.arw;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.arw;\012} arrows;\012\012lookup double_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.darw equal_end.darw] bar' bar bar;\012\012 # continue hyphen\012 sub [less_start.darw less_less_start.darw less_middle.darw less_less_middle.darw greater_start.darw greater_greater_start.darw greater_middle.darw greater_greater_middle.darw bar_start.darw bar_bar_start.darw bar_middle.darw bar_bar_middle.darw slash_start.darw slash_middle.darw colon_middle.darw exclam_middle.darw equal_start.darw equal_end.darw] equal' by equal_end.darw;\012\012 # double middles\012 sub [equal_start.darw equal_end.darw] less.spacer less' equal by less_less_middle.darw;\012 sub [equal_start.darw equal_end.darw] less' less equal by less.spacer;\012 sub [equal_start.darw equal_end.darw] greater.spacer greater' equal by greater_greater_middle.darw;\012 sub [equal_start.darw equal_end.darw] greater' greater equal by greater.spacer;\012 sub [equal_start.darw equal_end.darw] bar.spacer bar' equal by bar_bar_middle.darw;\012 sub [equal_start.darw equal_end.darw] bar' bar equal by bar.spacer;\012\012 # single middles\012 sub [equal_start.darw equal_end.darw] less' equal by less_middle.darw;\012 sub [equal_start.darw equal_end.darw] greater' equal by greater_middle.darw;\012 sub [equal_start.darw equal_end.darw] bar' equal by bar_middle.darw;\012 sub [equal_start.darw equal_end.darw] slash' equal by slash_middle.darw;\012 sub [equal_start.darw equal_end.darw] colon' equal by colon_middle.darw;\012 sub [equal_start.darw equal_end.darw] exclam' equal by exclam_middle.darw;\012\012 # double ends\012 sub [equal_start.darw equal_end.darw] less.spacer less' by less_less_end.darw;\012 sub [equal_start.darw equal_end.darw] less' less by less.spacer;\012 sub [equal_start.darw equal_end.darw] greater.spacer greater' by greater_greater_end.darw;\012 sub [equal_start.darw equal_end.darw] greater' greater by greater.spacer;\012 sub [equal_start.darw equal_end.darw] bar.spacer bar' by bar_bar_end.darw;\012 sub [equal_start.darw equal_end.darw] bar' bar by bar.spacer;\012\012 # single ends\012 sub [equal_start.darw equal_end.darw] less' by less_end.darw;\012 sub [equal_start.darw equal_end.darw] greater' by greater_end.darw;\012 sub [equal_start.darw equal_end.darw] bar' by bar_end.darw;\012 sub [equal_start.darw equal_end.darw] slash' by slash_end.darw;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_start.darw;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_start.darw;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_start.darw;\012 sub bar' bar equal by bar.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_start.darw;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.darw;\012 ignore sub equal' less;\012\012 # single beginnings\012 sub less' equal by less_start.darw;\012 sub greater' equal by greater_start.darw;\012 sub bar' equal by bar_start.darw;\012 sub slash' equal by slash_start.darw;\012 sub equal' [equal less greater bar colon exclam slash] by equal_start.darw;\012\012} double_arrows;\012\012### Lowercase/uppercase operators\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012### Logical conjuntion/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012### 0xFF\012sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012### 800x600\012sub @Digit x' @Digit by x.multiply; \012sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012sub less asciitilde' greater by asciitilde_asciitilde.liga;"; +code = "lookup bar_bar_bar_greater {\012 ignore sub bar bar' bar bar greater;\012 ignore sub bar' bar bar greater greater;\012 sub bar.spacer bar.spacer bar.spacer greater' by bar_bar_bar_greater.liga;\012 sub bar.spacer bar.spacer bar' greater by bar.spacer;\012 sub bar.spacer bar' bar greater by bar.spacer;\012 sub bar' bar bar greater by bar.spacer;\012} bar_bar_bar_greater;\012\012lookup less_bar_bar_bar {\012 ignore sub less less' bar bar bar;\012 ignore sub less' bar bar bar bar;\012 sub less.spacer bar.spacer bar.spacer bar' by less_bar_bar_bar.liga;\012 sub less.spacer bar.spacer bar' bar by bar.spacer;\012 sub less.spacer bar' bar bar by bar.spacer;\012 sub less' bar bar bar by less.spacer;\012} less_bar_bar_bar;\012\012lookup less_exclam_hyphen_hyphen {\012 ignore sub less less' exclam hyphen hyphen;\012 ignore sub less' exclam hyphen hyphen hyphen;\012 ignore sub parenleft question less' exclam hyphen hyphen;\012 sub less.spacer exclam.spacer hyphen.spacer hyphen' by less_exclam_hyphen_hyphen.liga;\012 sub less.spacer exclam.spacer hyphen' hyphen by hyphen.spacer;\012 sub less.spacer exclam' hyphen hyphen by exclam.spacer;\012 sub less' exclam hyphen hyphen by less.spacer;\012} less_exclam_hyphen_hyphen;\012\012lookup numbersign_numbersign_numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign numbersign numbersign;\012 ignore sub numbersign' numbersign numbersign numbersign numbersign;\012 sub numbersign.spacer numbersign.spacer numbersign.spacer numbersign' by numbersign_numbersign_numbersign_numbersign.liga;\012 sub numbersign.spacer numbersign.spacer numbersign' numbersign by numbersign.spacer;\012 sub numbersign.spacer numbersign' numbersign numbersign by numbersign.spacer;\012 sub numbersign' numbersign numbersign numbersign by numbersign.spacer;\012} numbersign_numbersign_numbersign_numbersign;\012\012lookup asciitilde_asciitilde_greater {\012 ignore sub asciitilde asciitilde' asciitilde greater;\012 ignore sub asciitilde' asciitilde greater greater;\012 sub asciitilde.spacer asciitilde.spacer greater' by asciitilde_asciitilde_greater.liga;\012 sub asciitilde.spacer asciitilde' greater by asciitilde.spacer;\012 sub asciitilde' asciitilde greater by asciitilde.spacer;\012} asciitilde_asciitilde_greater;\012\012lookup asterisk_asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk asterisk;\012 ignore sub slash asterisk' asterisk asterisk;\012 ignore sub asterisk' asterisk asterisk slash;\012 sub asterisk.spacer asterisk.spacer asterisk' by asterisk_asterisk_asterisk.liga;\012 sub asterisk.spacer asterisk' asterisk by asterisk.spacer;\012 sub asterisk' asterisk asterisk by asterisk.spacer;\012} asterisk_asterisk_asterisk;\012\012lookup bar_bar_greater {\012 ignore sub bar bar' bar greater;\012 ignore sub bar' bar greater greater;\012 ignore sub less bar' bar greater;\012 sub bar.spacer bar.spacer greater' by bar_bar_greater.liga;\012 sub bar.spacer bar' greater by bar.spacer;\012 sub bar' bar greater by bar.spacer;\012} bar_bar_greater;\012\012lookup colon_colon_colon {\012 ignore sub colon colon' colon colon;\012 ignore sub colon' colon colon colon;\012 ignore sub parenleft question colon' colon colon;\012 sub colon.spacer colon.spacer colon' by colon_colon_colon.liga;\012 sub colon.spacer colon' colon by colon.spacer;\012 sub colon' colon colon by colon.spacer;\012} colon_colon_colon;\012\012lookup colon_colon_equal {\012 ignore sub colon colon' colon equal;\012 ignore sub colon' colon equal equal;\012 ignore sub parenleft question colon' colon equal;\012 sub colon.spacer colon.spacer equal' by colon_colon_equal.liga;\012 sub colon.spacer colon' equal by colon.spacer;\012 sub colon' colon equal by colon.spacer;\012} colon_colon_equal;\012\012lookup equal_equal_equal {\012 ignore sub equal equal' equal equal;\012 ignore sub equal' equal equal equal;\012 ignore sub parenleft question equal' equal equal;\012 ignore sub parenleft question less equal' equal equal;\012 ignore sub less question equal' equal equal;\012 ignore sub [bracketleft less greater bar slash] equal' equal equal;\012 ignore sub equal' equal equal [bracketright less greater bar slash];\012 sub equal.spacer equal.spacer equal' by equal_equal_equal.liga;\012 sub equal.spacer equal' equal by equal.spacer;\012 sub equal' equal equal by equal.spacer;\012} equal_equal_equal;\012\012lookup exclam_equal_equal {\012 ignore sub exclam exclam' equal equal;\012 ignore sub exclam' equal equal equal;\012 ignore sub parenleft question exclam' equal equal;\012 ignore sub parenleft question less exclam' equal equal;\012 sub exclam.spacer equal.spacer equal' by exclam_equal_equal.liga;\012 sub exclam.spacer equal' equal by equal.spacer;\012 sub exclam' equal equal by exclam.spacer;\012} exclam_equal_equal;\012\012lookup exclam_exclam_period {\012 ignore sub exclam exclam' exclam period;\012 ignore sub exclam' exclam period period;\012 ignore sub parenleft question exclam' exclam period;\012 ignore sub parenleft question less exclam' exclam period;\012 sub exclam.spacer exclam.spacer period' by exclam_exclam_period.liga;\012 sub exclam.spacer exclam' period by exclam.spacer;\012 sub exclam' exclam period by exclam.spacer;\012} exclam_exclam_period;\012\012lookup greater_greater_greater {\012 ignore sub greater greater' greater greater;\012 ignore sub greater' greater greater greater;\012 ignore sub [asterisk plus dollar] greater' greater greater;\012 sub greater.spacer greater.spacer greater' by greater_greater_greater.liga;\012 sub greater.spacer greater' greater by greater.spacer;\012 sub greater' greater greater by greater.spacer;\012} greater_greater_greater;\012\012lookup hyphen_hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen hyphen;\012 ignore sub [bracketleft less greater bar] hyphen' hyphen hyphen;\012 ignore sub hyphen' hyphen hyphen [bracketright less greater bar];\012 sub hyphen.spacer hyphen.spacer hyphen' by hyphen_hyphen_hyphen.liga;\012 sub hyphen.spacer hyphen' hyphen by hyphen.spacer;\012 sub hyphen' hyphen hyphen by hyphen.spacer;\012} hyphen_hyphen_hyphen;\012\012lookup less_asciitilde_asciitilde {\012 ignore sub less less' asciitilde asciitilde;\012 ignore sub less' asciitilde asciitilde asciitilde;\012 sub less.spacer asciitilde.spacer asciitilde' by less_asciitilde_asciitilde.liga;\012 sub less.spacer asciitilde' asciitilde by asciitilde.spacer;\012 sub less' asciitilde asciitilde by less.spacer;\012} less_asciitilde_asciitilde;\012\012lookup less_asciitilde_greater {\012 ignore sub less less' asciitilde greater;\012 ignore sub less' asciitilde greater greater;\012 sub less.spacer asciitilde.spacer greater' by less_asciitilde_greater.liga;\012 sub less.spacer asciitilde' greater by asciitilde.spacer;\012 sub less' asciitilde greater by less.spacer;\012} less_asciitilde_greater;\012\012lookup less_asterisk_greater {\012 sub less.spacer asterisk.spacer greater' by less_asterisk_greater.liga;\012 sub less.spacer asterisk' greater by asterisk.spacer;\012 sub less' asterisk greater by less.spacer;\012} less_asterisk_greater;\012\012lookup less_bar_bar {\012 ignore sub less less' bar bar;\012 ignore sub less' bar bar bar;\012 ignore sub less' bar bar greater;\012 sub less.spacer bar.spacer bar' by less_bar_bar.liga;\012 sub less.spacer bar' bar by bar.spacer;\012 sub less' bar bar by less.spacer;\012} less_bar_bar;\012\012lookup less_bar_greater {\012 ignore sub less less' bar greater;\012 ignore sub less' bar greater greater;\012 sub less.spacer bar.spacer greater' by less_bar_greater.liga;\012 sub less.spacer bar' greater by bar.spacer;\012 sub less' bar greater by less.spacer;\012} less_bar_greater;\012\012lookup less_dollar_greater {\012 sub less.spacer dollar.spacer greater' by less_dollar_greater.liga;\012 sub less.spacer dollar' greater by dollar.spacer;\012 sub less' dollar greater by less.spacer;\012} less_dollar_greater;\012\012lookup less_less_less {\012 ignore sub less less' less less;\012 ignore sub less' less less less;\012 ignore sub less' less less [asterisk plus dollar];\012 sub less.spacer less.spacer less' by less_less_less.liga;\012 sub less.spacer less' less by less.spacer;\012 sub less' less less by less.spacer;\012} less_less_less;\012\012lookup less_plus_greater {\012 sub less.spacer plus.spacer greater' by less_plus_greater.liga;\012 sub less.spacer plus' greater by plus.spacer;\012 sub less' plus greater by less.spacer;\012} less_plus_greater;\012\012lookup less_slash_greater {\012 ignore sub less less' slash greater;\012 ignore sub less' slash greater greater;\012 sub less.spacer slash.spacer greater' by less_slash_greater.liga;\012 sub less.spacer slash' greater by slash.spacer;\012 sub less' slash greater by less.spacer;\012} less_slash_greater;\012\012lookup numbersign_numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign numbersign;\012 ignore sub numbersign' numbersign numbersign numbersign;\012 sub numbersign.spacer numbersign.spacer numbersign' by numbersign_numbersign_numbersign.liga;\012 sub numbersign.spacer numbersign' numbersign by numbersign.spacer;\012 sub numbersign' numbersign numbersign by numbersign.spacer;\012} numbersign_numbersign_numbersign;\012\012lookup numbersign_underscore_parenleft {\012 ignore sub numbersign numbersign' underscore parenleft;\012 ignore sub numbersign' underscore parenleft parenleft;\012 sub numbersign.spacer underscore.spacer parenleft' by numbersign_underscore_parenleft.liga;\012 sub numbersign.spacer underscore' parenleft by underscore.spacer;\012 sub numbersign' underscore parenleft by numbersign.spacer;\012} numbersign_underscore_parenleft;\012\012lookup period_period_equal {\012 ignore sub period period' period equal;\012 ignore sub period' period equal equal;\012 sub period.spacer period.spacer equal' by period_period_equal.liga;\012 sub period.spacer period' equal by period.spacer;\012 sub period' period equal by period.spacer;\012} period_period_equal;\012\012lookup period_period_less {\012 ignore sub period period' period less;\012 ignore sub period' period less less;\012 sub period.spacer period.spacer less' by period_period_less.liga;\012 sub period.spacer period' less by period.spacer;\012 sub period' period less by period.spacer;\012} period_period_less;\012\012lookup period_period_period {\012 ignore sub period period' period period;\012 ignore sub period' period period period;\012 sub period.spacer period.spacer period' by period_period_period.liga;\012 sub period.spacer period' period by period.spacer;\012 sub period' period period by period.spacer;\012} period_period_period;\012\012lookup plus_plus_plus {\012 ignore sub plus plus' plus plus;\012 ignore sub plus' plus plus plus;\012 sub plus.spacer plus.spacer plus' by plus_plus_plus.liga;\012 sub plus.spacer plus' plus by plus.spacer;\012 sub plus' plus plus by plus.spacer;\012} plus_plus_plus;\012\012lookup slash_slash_slash {\012 ignore sub slash slash' slash slash;\012 ignore sub slash' slash slash slash;\012 sub slash.spacer slash.spacer slash' by slash_slash_slash.liga;\012 sub slash.spacer slash' slash by slash.spacer;\012 sub slash' slash slash by slash.spacer;\012} slash_slash_slash;\012\012lookup w_w_w {\012 ignore sub w w' w w;\012 ignore sub w' w w w;\012 sub w.spacer w.spacer w' by w_w_w.liga;\012 sub w.spacer w' w by w.spacer;\012 sub w' w w by w.spacer;\012} w_w_w;\012\012lookup ampersand_ampersand {\012 ignore sub ampersand ampersand' ampersand;\012 ignore sub ampersand' ampersand ampersand;\012 sub ampersand.spacer ampersand' by ampersand_ampersand.liga;\012 sub ampersand' ampersand by ampersand.spacer;\012} ampersand_ampersand;\012\012lookup asciicircum_equal {\012 ignore sub asciicircum asciicircum' equal;\012 ignore sub asciicircum' equal equal;\012 sub asciicircum.spacer equal' by asciicircum_equal.liga;\012 sub asciicircum' equal by asciicircum.spacer;\012} asciicircum_equal;\012\012lookup asciitilde_asciitilde {\012 ignore sub asciitilde asciitilde' asciitilde;\012 ignore sub asciitilde' asciitilde asciitilde;\012 sub asciitilde.spacer asciitilde' by asciitilde_asciitilde.liga;\012 sub asciitilde' asciitilde by asciitilde.spacer;\012} asciitilde_asciitilde;\012\012lookup asciitilde_at {\012 ignore sub asciitilde asciitilde' at;\012 ignore sub asciitilde' at at;\012 sub asciitilde.spacer at' by asciitilde_at.liga;\012 sub asciitilde' at by asciitilde.spacer;\012} asciitilde_at;\012\012lookup asciitilde_greater {\012 ignore sub asciitilde asciitilde' greater;\012 ignore sub asciitilde' greater greater;\012 sub asciitilde.spacer greater' by asciitilde_greater.liga;\012 sub asciitilde' greater by asciitilde.spacer;\012} asciitilde_greater;\012\012lookup asciitilde_hyphen {\012 ignore sub asciitilde asciitilde' hyphen;\012 ignore sub asciitilde' hyphen hyphen;\012 sub asciitilde.spacer hyphen' by asciitilde_hyphen.liga;\012 sub asciitilde' hyphen by asciitilde.spacer;\012} asciitilde_hyphen;\012\012lookup asterisk_asterisk {\012 ignore sub asterisk asterisk' asterisk;\012 ignore sub asterisk' asterisk asterisk;\012 ignore sub slash asterisk' asterisk;\012 ignore sub asterisk' asterisk slash;\012 sub asterisk.spacer asterisk' by asterisk_asterisk.liga;\012 sub asterisk' asterisk by asterisk.spacer;\012} asterisk_asterisk;\012\012lookup asterisk_greater {\012 ignore sub asterisk asterisk' greater;\012 ignore sub asterisk' greater greater;\012 sub asterisk.spacer greater' by asterisk_greater.liga;\012 sub asterisk' greater by asterisk.spacer;\012} asterisk_greater;\012\012lookup asterisk_slash {\012 ignore sub asterisk asterisk' slash;\012 ignore sub asterisk' slash slash;\012 ignore sub slash asterisk' slash;\012 ignore sub asterisk' slash asterisk;\012 sub asterisk.spacer slash' by asterisk_slash.liga;\012 sub asterisk' slash by asterisk.spacer;\012} asterisk_slash;\012\012lookup bar_bar {\012 ignore sub bar bar' bar;\012 ignore sub bar' bar bar;\012 ignore sub [hyphen equal] bar' bar;\012 ignore sub bar' bar [hyphen equal];\012 sub bar.spacer bar' by bar_bar.liga;\012 sub bar' bar by bar.spacer;\012} bar_bar;\012\012lookup bar_braceright {\012 ignore sub bar bar' braceright;\012 ignore sub bar' braceright braceright;\012 ignore sub braceleft bar' braceright;\012 sub bar.spacer braceright' by bar_braceright.liga;\012 sub bar' braceright by bar.spacer;\012} bar_braceright;\012\012lookup bar_bracketright {\012 ignore sub bar bar' bracketright;\012 ignore sub bar' bracketright bracketright;\012 ignore sub bracketleft bar' bracketright;\012 sub bar.spacer bracketright' by bar_bracketright.liga;\012 sub bar' bracketright by bar.spacer;\012} bar_bracketright;\012\012lookup bar_greater {\012 ignore sub bar bar' greater;\012 ignore sub bar' greater greater;\012 sub bar.spacer greater' by bar_greater.liga;\012 sub bar' greater by bar.spacer;\012} bar_greater;\012\012lookup braceleft_bar {\012 ignore sub braceleft braceleft' bar;\012 ignore sub braceleft' bar bar;\012 ignore sub braceleft' bar braceright;\012 sub braceleft.spacer bar' by braceleft_bar.liga;\012 sub braceleft' bar by braceleft.spacer;\012} braceleft_bar;\012\012lookup bracketleft_bar {\012 ignore sub bracketleft bracketleft' bar;\012 ignore sub bracketleft' bar bar;\012 ignore sub bracketleft' bar bracketright;\012 sub bracketleft.spacer bar' by bracketleft_bar.liga;\012 sub bracketleft' bar by bracketleft.spacer;\012} bracketleft_bar;\012\012lookup bracketright_numbersign {\012 ignore sub bracketright bracketright' numbersign;\012 ignore sub bracketright' numbersign numbersign;\012 sub bracketright.spacer numbersign' by bracketright_numbersign.liga;\012 sub bracketright' numbersign by bracketright.spacer;\012} bracketright_numbersign;\012\012lookup colon_colon {\012 ignore sub colon colon' colon;\012 ignore sub colon' colon colon;\012 ignore sub parenleft question colon' colon;\012 sub colon.spacer colon' by colon_colon.liga;\012 sub colon' colon by colon.spacer;\012} colon_colon;\012\012lookup colon_equal {\012 ignore sub colon colon' equal;\012 ignore sub colon' equal equal;\012 ignore sub parenleft question colon' equal;\012 ignore sub equal colon' equal;\012 sub colon.spacer equal' by colon_equal.liga;\012 sub colon' equal by colon.spacer;\012} colon_equal;\012\012lookup colon_greater {\012 ignore sub colon colon' greater;\012 ignore sub colon' greater greater;\012 ignore sub parenleft question colon' greater;\012 ignore sub colon' greater equal;\012 sub colon.spacer greater' by colon_greater.liga;\012 sub colon' greater by colon.spacer;\012} colon_greater;\012\012lookup colon_less {\012 ignore sub colon colon' less;\012 ignore sub colon' less less;\012 ignore sub parenleft question colon' less;\012 sub colon.spacer less' by colon_less.liga;\012 sub colon' less by colon.spacer;\012} colon_less;\012\012lookup dollar_greater {\012 ignore sub dollar dollar' greater;\012 ignore sub dollar' greater greater;\012 sub dollar.spacer greater' by dollar_greater.liga;\012 sub dollar' greater by dollar.spacer;\012} dollar_greater;\012\012lookup equal_equal {\012 ignore sub equal equal' equal;\012 ignore sub equal' equal equal;\012 ignore sub parenleft question equal' equal;\012 ignore sub parenleft question less equal' equal;\012 ignore sub less question equal' equal;\012 ignore sub [bracketleft less greater bar slash] equal' equal;\012 ignore sub equal' equal [bracketright less greater bar slash] ;\012 sub equal.spacer equal' by equal_equal.liga;\012 sub equal' equal by equal.spacer;\012} equal_equal;\012\012lookup exclam_equal {\012 ignore sub exclam exclam' equal;\012 ignore sub exclam' equal equal;\012 ignore sub parenleft question exclam' equal;\012 ignore sub parenleft question less exclam' equal;\012 ignore sub equal exclam' equal;\012 sub exclam.spacer equal' by exclam_equal.liga;\012 sub exclam' equal by exclam.spacer;\012} exclam_equal;\012\012lookup exclam_exclam {\012 ignore sub exclam exclam' exclam;\012 ignore sub exclam' exclam exclam;\012 ignore sub parenleft question exclam' exclam;\012 ignore sub parenleft question less exclam' exclam;\012 sub exclam.spacer exclam' by exclam_exclam.liga;\012 sub exclam' exclam by exclam.spacer;\012} exclam_exclam;\012\012lookup greater_colon {\012 ignore sub greater greater' colon;\012 ignore sub greater' colon colon;\012 sub greater.spacer colon' by greater_colon.liga;\012 sub greater' colon by greater.spacer;\012} greater_colon;\012\012lookup greater_equal {\012 ignore sub greater greater' equal;\012 ignore sub greater' equal equal;\012 ignore sub greater' equal [less greater bar colon exclam slash];\012 sub greater.spacer equal' by greater_equal.liga;\012 sub greater' equal by greater.spacer;\012} greater_equal;\012\012lookup greater_greater {\012 ignore sub greater greater' greater;\012 ignore sub greater' greater greater;\012 ignore sub [asterisk plus dollar hyphen equal] greater' greater;\012 ignore sub greater' greater [hyphen equal];\012 sub greater.spacer greater' by greater_greater.liga;\012 sub greater' greater by greater.spacer;\012} greater_greater;\012\012lookup hyphen_asciitilde {\012 ignore sub hyphen hyphen' asciitilde;\012 ignore sub hyphen' asciitilde asciitilde;\012 sub hyphen.spacer asciitilde' by hyphen_asciitilde.liga;\012 sub hyphen' asciitilde by hyphen.spacer;\012} hyphen_asciitilde;\012\012lookup hyphen_hyphen {\012 ignore sub hyphen hyphen' hyphen;\012 ignore sub hyphen' hyphen hyphen;\012 ignore sub [bracketleft less greater bar] hyphen' hyphen;\012 ignore sub hyphen' hyphen [bracketright less greater bar];\012 sub hyphen.spacer hyphen' by hyphen_hyphen.liga;\012 sub hyphen' hyphen by hyphen.spacer;\012} hyphen_hyphen;\012\012lookup less_asciitilde {\012 ignore sub less less' asciitilde;\012 ignore sub less' asciitilde asciitilde;\012 sub less.spacer asciitilde' by less_asciitilde.liga;\012 sub less' asciitilde by less.spacer;\012} less_asciitilde;\012\012lookup less_asterisk {\012 ignore sub less less' asterisk;\012 ignore sub less' asterisk asterisk;\012 sub less.spacer asterisk' by less_asterisk.liga;\012 sub less' asterisk by less.spacer;\012} less_asterisk;\012\012lookup less_bar {\012 ignore sub less less' bar;\012 ignore sub less' bar bar;\012 sub less.spacer bar' by less_bar.liga;\012 sub less' bar by less.spacer;\012} less_bar;\012\012lookup less_colon {\012 ignore sub less less' colon;\012 ignore sub less' colon colon;\012 sub less.spacer colon' by less_colon.liga;\012 sub less' colon by less.spacer;\012} less_colon;\012\012lookup less_dollar {\012 ignore sub less less' dollar;\012 ignore sub less' dollar dollar;\012 sub less.spacer dollar' by less_dollar.liga;\012 sub less' dollar by less.spacer;\012} less_dollar;\012\012lookup less_equal {\012 ignore sub less less' equal;\012 ignore sub less' equal equal;\012 ignore sub parenleft question less' equal;\012 ignore sub less' equal [less greater bar colon exclam slash];\012 sub less.spacer equal' by less_equal.liga;\012 sub less' equal by less.spacer;\012} less_equal;\012\012lookup less_greater {\012 ignore sub less less' greater;\012 ignore sub less' greater greater;\012 sub less.spacer greater' by less_greater.liga;\012 sub less' greater by less.spacer;\012} less_greater;\012\012lookup less_less {\012 ignore sub less less' less;\012 ignore sub less' less less;\012 ignore sub [hyphen equal] less' less;\012 ignore sub less' less [asterisk plus dollar hyphen equal];\012 sub less.spacer less' by less_less.liga;\012 sub less' less by less.spacer;\012} less_less;\012\012lookup less_plus {\012 ignore sub less less' plus;\012 ignore sub less' plus plus;\012 sub less.spacer plus' by less_plus.liga;\012 sub less' plus by less.spacer;\012} less_plus;\012\012lookup less_slash {\012 ignore sub less less' slash;\012 ignore sub less' slash slash;\012 sub less.spacer slash' by less_slash.liga;\012 sub less' slash by less.spacer;\012} less_slash;\012\012lookup numbersign_braceleft {\012 ignore sub numbersign numbersign' braceleft;\012 ignore sub numbersign' braceleft braceleft;\012 sub numbersign.spacer braceleft' by numbersign_braceleft.liga;\012 sub numbersign' braceleft by numbersign.spacer;\012} numbersign_braceleft;\012\012lookup numbersign_bracketleft {\012 ignore sub numbersign numbersign' bracketleft;\012 ignore sub numbersign' bracketleft bracketleft;\012 sub numbersign.spacer bracketleft' by numbersign_bracketleft.liga;\012 sub numbersign' bracketleft by numbersign.spacer;\012} numbersign_bracketleft;\012\012lookup numbersign_colon {\012 ignore sub numbersign numbersign' colon;\012 ignore sub numbersign' colon colon;\012 sub numbersign.spacer colon' by numbersign_colon.liga;\012 sub numbersign' colon by numbersign.spacer;\012} numbersign_colon;\012\012lookup numbersign_equal {\012 ignore sub numbersign numbersign' equal;\012 ignore sub numbersign' equal equal;\012 sub numbersign.spacer equal' by numbersign_equal.liga;\012 sub numbersign' equal by numbersign.spacer;\012} numbersign_equal;\012\012lookup numbersign_exclam {\012 ignore sub numbersign numbersign' exclam;\012 ignore sub numbersign' exclam exclam;\012 sub numbersign.spacer exclam' by numbersign_exclam.liga;\012 sub numbersign' exclam by numbersign.spacer;\012} numbersign_exclam;\012\012lookup numbersign_numbersign {\012 ignore sub numbersign numbersign' numbersign;\012 ignore sub numbersign' numbersign numbersign;\012 sub numbersign.spacer numbersign' by numbersign_numbersign.liga;\012 sub numbersign' numbersign by numbersign.spacer;\012} numbersign_numbersign;\012\012lookup numbersign_parenleft {\012 ignore sub numbersign numbersign' parenleft;\012 ignore sub numbersign' parenleft parenleft;\012 sub numbersign.spacer parenleft' by numbersign_parenleft.liga;\012 sub numbersign' parenleft by numbersign.spacer;\012} numbersign_parenleft;\012\012lookup numbersign_question {\012 ignore sub numbersign numbersign' question;\012 ignore sub numbersign' question question;\012 sub numbersign.spacer question' by numbersign_question.liga;\012 sub numbersign' question by numbersign.spacer;\012} numbersign_question;\012\012lookup numbersign_underscore {\012 ignore sub numbersign numbersign' underscore;\012 ignore sub numbersign' underscore underscore;\012 sub numbersign.spacer underscore' by numbersign_underscore.liga;\012 sub numbersign' underscore by numbersign.spacer;\012} numbersign_underscore;\012\012lookup percent_percent {\012 ignore sub percent percent' percent;\012 ignore sub percent' percent percent;\012 sub percent.spacer percent' by percent_percent.liga;\012 sub percent' percent by percent.spacer;\012} percent_percent;\012\012lookup period_equal {\012 ignore sub period period' equal;\012 ignore sub period' equal equal;\012 sub period.spacer equal' by period_equal.liga;\012 sub period' equal by period.spacer;\012} period_equal;\012\012lookup period_hyphen {\012 ignore sub period period' hyphen;\012 ignore sub period' hyphen hyphen;\012 sub period.spacer hyphen' by period_hyphen.liga;\012 sub period' hyphen by period.spacer;\012} period_hyphen;\012\012lookup period_period {\012 ignore sub period period' period;\012 ignore sub period' period period;\012 sub period.spacer period' by period_period.liga;\012 sub period' period by period.spacer;\012} period_period;\012\012lookup period_question {\012 ignore sub period period' question;\012 ignore sub period' question question;\012 sub period.spacer question' by period_question.liga;\012 sub period' question by period.spacer;\012} period_question;\012\012lookup plus_greater {\012 ignore sub plus plus' greater;\012 ignore sub plus' greater greater;\012 sub plus.spacer greater' by plus_greater.liga;\012 sub plus' greater by plus.spacer;\012} plus_greater;\012\012lookup plus_plus {\012 ignore sub plus plus' plus;\012 ignore sub plus' plus plus;\012 sub plus.spacer plus' by plus_plus.liga;\012 sub plus' plus by plus.spacer;\012} plus_plus;\012\012lookup question_equal {\012 ignore sub question question' equal;\012 ignore sub question' equal equal;\012 ignore sub parenleft question' equal;\012 ignore sub less question' equal;\012 sub question.spacer equal' by question_equal.liga;\012 sub question' equal by question.spacer;\012} question_equal;\012\012lookup question_period {\012 ignore sub question question' period;\012 ignore sub question' period period;\012 sub question.spacer period' by question_period.liga;\012 sub question' period by question.spacer;\012} question_period;\012\012lookup question_question {\012 ignore sub question question' question;\012 ignore sub question' question question;\012 sub question.spacer question' by question_question.liga;\012 sub question' question by question.spacer;\012} question_question;\012\012lookup semicolon_semicolon {\012 ignore sub semicolon semicolon' semicolon;\012 ignore sub semicolon' semicolon semicolon;\012 sub semicolon.spacer semicolon' by semicolon_semicolon.liga;\012 sub semicolon' semicolon by semicolon.spacer;\012} semicolon_semicolon;\012\012lookup slash_asterisk {\012 ignore sub slash slash' asterisk;\012 ignore sub slash' asterisk asterisk;\012 ignore sub slash' asterisk slash;\012 ignore sub asterisk slash' asterisk;\012 sub slash.spacer asterisk' by slash_asterisk.liga;\012 sub slash' asterisk by slash.spacer;\012} slash_asterisk;\012\012lookup slash_greater {\012 ignore sub slash slash' greater;\012 ignore sub slash' greater greater;\012 sub slash.spacer greater' by slash_greater.liga;\012 sub slash' greater by slash.spacer;\012} slash_greater;\012\012lookup slash_slash {\012 ignore sub slash slash' slash;\012 ignore sub slash' slash slash;\012 sub slash.spacer slash' by slash_slash.liga;\012 sub slash' slash by slash.spacer;\012} slash_slash;\012\012### Arbitrary-length arrows #346\012\012lookup arrows {\012 # Disable |||\012 ignore sub bar bar' bar hyphen;\012 ignore sub bar bar' hyphen;\012 ignore sub [hyphen_start.arw hyphen_end.arw] bar' bar bar;\012\012 # continue hyphen\012 sub [less_start.arw less_less_start.arw less_middle.arw less_less_middle.arw greater_start.arw greater_greater_start.arw greater_middle.arw greater_greater_middle.arw bar_start.arw bar_bar_start.arw bar_middle.arw bar_bar_middle.arw hyphen_start.arw hyphen_end.arw] hyphen' by hyphen_end.arw;\012\012 # double middles\012 sub [hyphen_start.arw hyphen_end.arw] less.spacer less' hyphen by less_less_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] less' less hyphen by less.spacer;\012 sub [hyphen_start.arw hyphen_end.arw] greater.spacer greater' hyphen by greater_greater_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] greater' greater hyphen by greater.spacer;\012 sub [hyphen_start.arw hyphen_end.arw] bar.spacer bar' hyphen by bar_bar_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] bar' bar hyphen by bar.spacer;\012\012 # single middles\012 sub [hyphen_start.arw hyphen_end.arw] less' hyphen by less_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] greater' hyphen by greater_middle.arw;\012 sub [hyphen_start.arw hyphen_end.arw] bar' hyphen by bar_middle.arw;\012\012 # double ends\012 sub [hyphen_start.arw hyphen_end.arw] less.spacer less' by less_less_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] less' less by less.spacer;\012 sub [hyphen_start.arw hyphen_end.arw] greater.spacer greater' by greater_greater_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] greater' greater by greater.spacer;\012 sub [hyphen_start.arw hyphen_end.arw] bar.spacer bar' by bar_bar_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] bar' bar by bar.spacer;\012\012 # single ends\012 sub [hyphen_start.arw hyphen_end.arw] less' by less_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] greater' by greater_end.arw;\012 sub [hyphen_start.arw hyphen_end.arw] bar' by bar_end.arw;\012\012 # double beginnings\012 sub less.spacer less' hyphen by less_less_start.arw;\012 sub less' less hyphen by less.spacer;\012 sub greater.spacer greater' hyphen by greater_greater_start.arw;\012 sub greater' greater hyphen by greater.spacer;\012 sub bar.spacer bar' hyphen by bar_bar_start.arw;\012 sub bar' bar hyphen by bar.spacer;\012\012 # single beginnings\012 sub less' hyphen by less_start.arw;\012 sub greater' hyphen by greater_start.arw;\012 sub bar' hyphen by bar_start.arw;\012 sub hyphen' [hyphen less greater bar] by hyphen_start.arw;\012} arrows;\012\012### Lowercase/uppercase operators\012\012lookup lowercase_hyphen {\012 ignore sub @Tall \\hyphen' @Lowercase;\012 ignore sub @Lowercase \\hyphen' @Tall; \012 sub \\hyphen' @Lowercase by \\hyphen.lc;\012 sub @Lowercase \\hyphen' by \\hyphen.lc;\012} lowercase_hyphen;\012\012lookup lowercase_plus {\012 ignore sub @Tall \\plus' @Lowercase;\012 ignore sub @Lowercase \\plus' @Tall;\012 sub \\plus' @Lowercase by \\plus.lc;\012 sub @Lowercase \\plus' by \\plus.lc;\012} lowercase_plus;\012\012lookup lowercase_asterisk {\012 ignore sub @Tall \\asterisk' @Lowercase;\012 ignore sub @Lowercase \\asterisk' @Tall;\012 sub \\asterisk' @Lowercase by \\asterisk.lc;\012 sub @Lowercase \\asterisk' by \\asterisk.lc;\012} lowercase_asterisk;\012\012lookup uppercase_colon {\012 ignore sub @Tall \\colon' @Lowercase;\012 ignore sub @Lowercase \\colon' @Tall;\012 sub @Tall \\colon' by \\colon.uc;\012 sub \\colon' @Tall by \\colon.uc;\012# pos @Tall \\colon' <0 160 0 0>;\012# pos \\colon' @Tall <0 160 0 0>;\012} uppercase_colon;\012\012### Logical conjuntion/disjunction #738\012\012lookup slash_backslash {\012 ignore sub @NotSpace slash' backslash;\012 ignore sub slash' backslash @NotSpace;\012 sub slash.spacer backslash' by slash_backslash.liga;\012 sub slash' backslash by slash.spacer;\012} slash_backslash;\012\012lookup backslash_slash {\012 ignore sub @NotSpace backslash' slash;\012 ignore sub backslash' slash @NotSpace;\012 sub backslash.spacer slash' by backslash_slash.liga;\012 sub backslash' slash by backslash.spacer;\012} backslash_slash;\012\012### 0xFF\012sub [zero zero.zero] x' [@Digit @HexDigit] by x.multiply;\012sub [zero.tosf zero.zero.tosf zero.tosf.zero] x' [@DigitTosf @HexDigit] by x.multiply.tosf;\012\012### 800x600\012sub @Digit x' @Digit by x.multiply; \012sub @DigitTosf x' @DigitTosf by x.multiply.tosf;\012\012lookup double_arrows {\012 # Disable |||\012 ignore sub bar bar' bar equal;\012 ignore sub bar bar' equal;\012 ignore sub [equal_start.darw equal_end.darw] bar' bar bar;\012\012 # continue hyphen\012 sub [less_start.darw less_less_start.darw less_middle.darw less_less_middle.darw greater_start.darw greater_greater_start.darw greater_middle.darw greater_greater_middle.darw bar_start.darw bar_bar_start.darw bar_middle.darw bar_bar_middle.darw slash_start.darw slash_middle.darw colon_middle.darw exclam_middle.darw equal_start.darw equal_end.darw] equal' by equal_end.darw;\012\012 # double middles\012 sub [equal_start.darw equal_end.darw] less.spacer less' equal by less_less_middle.darw;\012 sub [equal_start.darw equal_end.darw] less' less equal by less.spacer;\012 sub [equal_start.darw equal_end.darw] greater.spacer greater' equal by greater_greater_middle.darw;\012 sub [equal_start.darw equal_end.darw] greater' greater equal by greater.spacer;\012 sub [equal_start.darw equal_end.darw] bar.spacer bar' equal by bar_bar_middle.darw;\012 sub [equal_start.darw equal_end.darw] bar' bar equal by bar.spacer;\012\012 # single middles\012 sub [equal_start.darw equal_end.darw] less' equal by less_middle.darw;\012 sub [equal_start.darw equal_end.darw] greater' equal by greater_middle.darw;\012 sub [equal_start.darw equal_end.darw] bar' equal by bar_middle.darw;\012 sub [equal_start.darw equal_end.darw] slash' equal by slash_middle.darw;\012 sub [equal_start.darw equal_end.darw] colon' equal by colon_middle.darw;\012 sub [equal_start.darw equal_end.darw] exclam' equal by exclam_middle.darw;\012\012 # double ends\012 sub [equal_start.darw equal_end.darw] less.spacer less' by less_less_end.darw;\012 sub [equal_start.darw equal_end.darw] less' less by less.spacer;\012 sub [equal_start.darw equal_end.darw] greater.spacer greater' by greater_greater_end.darw;\012 sub [equal_start.darw equal_end.darw] greater' greater by greater.spacer;\012 sub [equal_start.darw equal_end.darw] bar.spacer bar' by bar_bar_end.darw;\012 sub [equal_start.darw equal_end.darw] bar' bar by bar.spacer;\012\012 # single ends\012 sub [equal_start.darw equal_end.darw] less' by less_end.darw;\012 sub [equal_start.darw equal_end.darw] greater' by greater_end.darw;\012 sub [equal_start.darw equal_end.darw] bar' by bar_end.darw;\012 sub [equal_start.darw equal_end.darw] slash' by slash_end.darw;\012\012 # double beginnings\012 sub less.spacer less' equal by less_less_start.darw;\012 sub less' less equal by less.spacer;\012 sub greater.spacer greater' equal by greater_greater_start.darw;\012 sub greater' greater equal by greater.spacer;\012 sub bar.spacer bar' equal by bar_bar_start.darw;\012 sub bar' bar equal by bar.spacer;\012\012 # Disable >=< #548\012 sub greater' equal less [equal less] by greater_start.darw;\012 ignore sub greater' equal less;\012 \012 # Disable =< #479 #468 #424 #406 #355 #305\012 sub equal' less [equal less] by equal_start.darw;\012 ignore sub equal' less;\012\012 # single beginnings\012 sub less' equal by less_start.darw;\012 sub greater' equal by greater_start.darw;\012 sub bar' equal by bar_start.darw;\012 sub slash' equal by slash_start.darw;\012 sub equal' [equal less greater bar colon exclam slash] by equal_start.darw;\012\012} double_arrows;\012\012### fi/fl #795\012\012sub [f i.salt_low j.salt_low] [i j]' by [i.salt_low j.salt_low];\012sub [F T I l.salt_low] l' by l.salt_low;\012\012### Greek\012\012lookup caltGreekUCdiph {\012 sub @GreekUCdiphIOTA Iota' by Iotadieresis;\012 sub @GreekUCdiphUPSILON Upsilon' by Upsilondieresis;\012} caltGreekUCdiph;\012\012lookup caltGreekUC {\012 sub @GreekUCAcc' @GreekUC by @GreekUCcalt;\012 sub @GreekUC @GreekUCAcc' by @GreekUCcalt;\012 sub @GreekUCAcc' space @GreekUC by @GreekUCcalt;\012 sub @GreekUC space @GreekUCAcc' by @GreekUCcalt;\012} caltGreekUC;\012\012sub less asciitilde' greater by asciitilde_asciitilde.liga;\012\012lookup underscore_arrows {\012 sub [underscore_start.uarw underscore_middle.uarw] bar' underscore by bar_middle.uarw;\012 sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' bar underscore by underscore_middle.uarw;\012 sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' underscore by underscore_middle.uarw;\012 sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' by underscore_end.uarw;\012 sub underscore' bar underscore by underscore_start.uarw; \012 sub underscore' underscore by underscore_start.uarw; \012} underscore_arrows;"; name = calt; }, { @@ -66933,98 +66928,6 @@ width = 1200; }, { color = 3; -glyphname = underscore_bar_underscore.liga; -lastChange = "2020-04-05 21:56:41 +0000"; -layers = ( -{ -layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; -paths = ( -{ -closed = 1; -nodes = ( -"800 -372 LINE", -"800 -124 LINE", -"-2000 -124 LINE", -"-2000 -372 LINE" -); -}, -{ -closed = 1; -nodes = ( -"-748 1454 LINE", -"-748 -212 LINE", -"-454 -212 LINE", -"-454 1454 LINE" -); -} -); -width = 1200; -}, -{ -layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; -paths = ( -{ -closed = 1; -nodes = ( -"800 -360 LINE", -"800 -243 LINE", -"-2000 -243 LINE", -"-2000 -360 LINE" -); -}, -{ -closed = 1; -nodes = ( -"-655 1445 LINE", -"-655 -317 LINE", -"-547 -317 LINE", -"-547 1445 LINE" -); -} -); -width = 1200; -} -); -}, -{ -color = 3; -glyphname = underscore_underscore.liga; -lastChange = "2020-04-05 21:56:41 +0000"; -layers = ( -{ -layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; -paths = ( -{ -closed = 1; -nodes = ( -"1100 -372 LINE", -"1100 -124 LINE", -"-1100 -124 LINE", -"-1100 -372 LINE" -); -} -); -width = 1200; -}, -{ -layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; -paths = ( -{ -closed = 1; -nodes = ( -"1100 -360 LINE", -"1100 -243 LINE", -"-1100 -243 LINE", -"-1100 -360 LINE" -); -} -); -width = 1200; -} -); -}, -{ -color = 3; glyphname = numbersign_colon.liga_rem; lastChange = "2019-05-21 14:39:44 +0000"; layers = ( @@ -67225,6 +67128,117 @@ width = 1200; }, { color = 6; +glyphname = underscore_end.uarw; +lastChange = "2020-05-14 13:16:56 +0000"; +layers = ( +{ +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"1100 -360 LINE", +"1100 -243 LINE", +"-20 -243 LINE", +"-20 -360 LINE" +); +} +); +width = 1200; +}, +{ +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"1100 -372 LINE", +"1100 -124 LINE", +"-20 -124 LINE", +"-20 -372 LINE" +); +} +); +width = 1200; +} +); +}, +{ +color = 6; +glyphname = underscore_middle.uarw; +lastChange = "2020-05-14 13:17:10 +0000"; +layers = ( +{ +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"1220 -360 LINE", +"1220 -243 LINE", +"-20 -243 LINE", +"-20 -360 LINE" +); +} +); +width = 1200; +}, +{ +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"1220 -372 LINE", +"1220 -124 LINE", +"-20 -124 LINE", +"-20 -372 LINE" +); +} +); +width = 1200; +} +); +}, +{ +color = 6; +glyphname = underscore_start.uarw; +lastChange = "2020-05-14 13:17:16 +0000"; +layers = ( +{ +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"1220 -360 LINE", +"1220 -243 LINE", +"100 -243 LINE", +"100 -360 LINE" +); +} +); +width = 1200; +}, +{ +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"1220 -372 LINE", +"1220 -124 LINE", +"100 -124 LINE", +"100 -372 LINE" +); +} +); +width = 1200; +} +); +}, +{ +color = 6; export = 0; glyphname = hyphen_hyphen_greater.rem; lastChange = "2020-05-10 21:22:02 +0000"; @@ -68994,6 +69008,100 @@ width = 1200; ); }, { +color = 6; +export = 0; +glyphname = underscore_bar_underscore.rem; +lastChange = "2020-05-14 13:07:18 +0000"; +layers = ( +{ +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"800 -372 LINE", +"800 -124 LINE", +"-2000 -124 LINE", +"-2000 -372 LINE" +); +}, +{ +closed = 1; +nodes = ( +"-748 1454 LINE", +"-748 -212 LINE", +"-454 -212 LINE", +"-454 1454 LINE" +); +} +); +width = 1200; +}, +{ +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"800 -360 LINE", +"800 -243 LINE", +"-2000 -243 LINE", +"-2000 -360 LINE" +); +}, +{ +closed = 1; +nodes = ( +"-655 1445 LINE", +"-655 -317 LINE", +"-547 -317 LINE", +"-547 1445 LINE" +); +} +); +width = 1200; +} +); +}, +{ +color = 6; +export = 0; +glyphname = underscore_underscore.rem; +lastChange = "2020-05-14 13:07:22 +0000"; +layers = ( +{ +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"1100 -372 LINE", +"1100 -124 LINE", +"-1100 -124 LINE", +"-1100 -372 LINE" +); +} +); +width = 1200; +}, +{ +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"1100 -360 LINE", +"1100 -243 LINE", +"-1100 -243 LINE", +"-1100 -360 LINE" +); +} +); +width = 1200; +} +); +}, +{ color = 3; glyphname = "leftanglebracket-math"; lastChange = "2020-04-05 21:57:02 +0000"; @@ -109319,6 +109427,61 @@ width = 1200; ); }, { +color = 6; +glyphname = bar_middle.uarw; +lastChange = "2020-05-14 13:20:29 +0000"; +layers = ( +{ +layerId = "B67F0F2D-EC95-4CB8-966E-23AE86958A69"; +paths = ( +{ +closed = 1; +nodes = ( +"1220 -360 LINE", +"1220 -243 LINE", +"-20 -243 LINE", +"-20 -360 LINE" +); +}, +{ +closed = 1; +nodes = ( +"545 -317 LINE", +"653 -317 LINE", +"653 1445 LINE", +"545 1445 LINE" +); +} +); +width = 1200; +}, +{ +layerId = "4B7A3BAF-EAD8-4024-9BEA-BB1DE86CFCFA"; +paths = ( +{ +closed = 1; +nodes = ( +"1220 -372 LINE", +"1220 -124 LINE", +"-20 -124 LINE", +"-20 -372 LINE" +); +}, +{ +closed = 1; +nodes = ( +"452 -212 LINE", +"746 -212 LINE", +"746 1454 LINE", +"452 1454 LINE" +); +} +); +width = 1200; +} +); +}, +{ color = 3; export = 0; glyphname = ampersand_ampersand_ampersand.rem; diff --git a/features/calt/arrows.fea b/features/calt/arrows.fea index e303ebb..2167614 100644 --- a/features/calt/arrows.fea +++ b/features/calt/arrows.fea @@ -48,68 +48,4 @@ lookup arrows { sub greater' hyphen by greater_start.arw; sub bar' hyphen by bar_start.arw; sub hyphen' [hyphen less greater bar] by hyphen_start.arw; -} arrows; - -lookup double_arrows { - # Disable ||| - ignore sub bar bar' bar equal; - ignore sub bar bar' equal; - ignore sub [equal_start.darw equal_end.darw] bar' bar bar; - - # continue hyphen - sub [less_start.darw less_less_start.darw less_middle.darw less_less_middle.darw greater_start.darw greater_greater_start.darw greater_middle.darw greater_greater_middle.darw bar_start.darw bar_bar_start.darw bar_middle.darw bar_bar_middle.darw slash_start.darw slash_middle.darw colon_middle.darw exclam_middle.darw equal_start.darw equal_end.darw] equal' by equal_end.darw; - - # double middles - sub [equal_start.darw equal_end.darw] less.spacer less' equal by less_less_middle.darw; - sub [equal_start.darw equal_end.darw] less' less equal by less.spacer; - sub [equal_start.darw equal_end.darw] greater.spacer greater' equal by greater_greater_middle.darw; - sub [equal_start.darw equal_end.darw] greater' greater equal by greater.spacer; - sub [equal_start.darw equal_end.darw] bar.spacer bar' equal by bar_bar_middle.darw; - sub [equal_start.darw equal_end.darw] bar' bar equal by bar.spacer; - - # single middles - sub [equal_start.darw equal_end.darw] less' equal by less_middle.darw; - sub [equal_start.darw equal_end.darw] greater' equal by greater_middle.darw; - sub [equal_start.darw equal_end.darw] bar' equal by bar_middle.darw; - sub [equal_start.darw equal_end.darw] slash' equal by slash_middle.darw; - sub [equal_start.darw equal_end.darw] colon' equal by colon_middle.darw; - sub [equal_start.darw equal_end.darw] exclam' equal by exclam_middle.darw; - - # double ends - sub [equal_start.darw equal_end.darw] less.spacer less' by less_less_end.darw; - sub [equal_start.darw equal_end.darw] less' less by less.spacer; - sub [equal_start.darw equal_end.darw] greater.spacer greater' by greater_greater_end.darw; - sub [equal_start.darw equal_end.darw] greater' greater by greater.spacer; - sub [equal_start.darw equal_end.darw] bar.spacer bar' by bar_bar_end.darw; - sub [equal_start.darw equal_end.darw] bar' bar by bar.spacer; - - # single ends - sub [equal_start.darw equal_end.darw] less' by less_end.darw; - sub [equal_start.darw equal_end.darw] greater' by greater_end.darw; - sub [equal_start.darw equal_end.darw] bar' by bar_end.darw; - sub [equal_start.darw equal_end.darw] slash' by slash_end.darw; - - # double beginnings - sub less.spacer less' equal by less_less_start.darw; - sub less' less equal by less.spacer; - sub greater.spacer greater' equal by greater_greater_start.darw; - sub greater' greater equal by greater.spacer; - sub bar.spacer bar' equal by bar_bar_start.darw; - sub bar' bar equal by bar.spacer; - - # Disable >=< #548 - sub greater' equal less [equal less] by greater_start.darw; - ignore sub greater' equal less; - - # Disable =< #479 #468 #424 #406 #355 #305 - sub equal' less [equal less] by equal_start.darw; - ignore sub equal' less; - - # single beginnings - sub less' equal by less_start.darw; - sub greater' equal by greater_start.darw; - sub bar' equal by bar_start.darw; - sub slash' equal by slash_start.darw; - sub equal' [equal less greater bar colon exclam slash] by equal_start.darw; - -} double_arrows; +} arrows; \ No newline at end of file diff --git a/features/calt/double_arrows.fea b/features/calt/double_arrows.fea new file mode 100644 index 0000000..077984b --- /dev/null +++ b/features/calt/double_arrows.fea @@ -0,0 +1,63 @@ +lookup double_arrows { + # Disable ||| + ignore sub bar bar' bar equal; + ignore sub bar bar' equal; + ignore sub [equal_start.darw equal_end.darw] bar' bar bar; + + # continue hyphen + sub [less_start.darw less_less_start.darw less_middle.darw less_less_middle.darw greater_start.darw greater_greater_start.darw greater_middle.darw greater_greater_middle.darw bar_start.darw bar_bar_start.darw bar_middle.darw bar_bar_middle.darw slash_start.darw slash_middle.darw colon_middle.darw exclam_middle.darw equal_start.darw equal_end.darw] equal' by equal_end.darw; + + # double middles + sub [equal_start.darw equal_end.darw] less.spacer less' equal by less_less_middle.darw; + sub [equal_start.darw equal_end.darw] less' less equal by less.spacer; + sub [equal_start.darw equal_end.darw] greater.spacer greater' equal by greater_greater_middle.darw; + sub [equal_start.darw equal_end.darw] greater' greater equal by greater.spacer; + sub [equal_start.darw equal_end.darw] bar.spacer bar' equal by bar_bar_middle.darw; + sub [equal_start.darw equal_end.darw] bar' bar equal by bar.spacer; + + # single middles + sub [equal_start.darw equal_end.darw] less' equal by less_middle.darw; + sub [equal_start.darw equal_end.darw] greater' equal by greater_middle.darw; + sub [equal_start.darw equal_end.darw] bar' equal by bar_middle.darw; + sub [equal_start.darw equal_end.darw] slash' equal by slash_middle.darw; + sub [equal_start.darw equal_end.darw] colon' equal by colon_middle.darw; + sub [equal_start.darw equal_end.darw] exclam' equal by exclam_middle.darw; + + # double ends + sub [equal_start.darw equal_end.darw] less.spacer less' by less_less_end.darw; + sub [equal_start.darw equal_end.darw] less' less by less.spacer; + sub [equal_start.darw equal_end.darw] greater.spacer greater' by greater_greater_end.darw; + sub [equal_start.darw equal_end.darw] greater' greater by greater.spacer; + sub [equal_start.darw equal_end.darw] bar.spacer bar' by bar_bar_end.darw; + sub [equal_start.darw equal_end.darw] bar' bar by bar.spacer; + + # single ends + sub [equal_start.darw equal_end.darw] less' by less_end.darw; + sub [equal_start.darw equal_end.darw] greater' by greater_end.darw; + sub [equal_start.darw equal_end.darw] bar' by bar_end.darw; + sub [equal_start.darw equal_end.darw] slash' by slash_end.darw; + + # double beginnings + sub less.spacer less' equal by less_less_start.darw; + sub less' less equal by less.spacer; + sub greater.spacer greater' equal by greater_greater_start.darw; + sub greater' greater equal by greater.spacer; + sub bar.spacer bar' equal by bar_bar_start.darw; + sub bar' bar equal by bar.spacer; + + # Disable >=< #548 + sub greater' equal less [equal less] by greater_start.darw; + ignore sub greater' equal less; + + # Disable =< #479 #468 #424 #406 #355 #305 + sub equal' less [equal less] by equal_start.darw; + ignore sub equal' less; + + # single beginnings + sub less' equal by less_start.darw; + sub greater' equal by greater_start.darw; + sub bar' equal by bar_start.darw; + sub slash' equal by slash_start.darw; + sub equal' [equal less greater bar colon exclam slash] by equal_start.darw; + +} double_arrows; \ No newline at end of file diff --git a/features/calt/underscore_arrows.fea b/features/calt/underscore_arrows.fea new file mode 100644 index 0000000..6bb3daa --- /dev/null +++ b/features/calt/underscore_arrows.fea @@ -0,0 +1,8 @@ +lookup underscore_arrows { + sub [underscore_start.uarw underscore_middle.uarw] bar' underscore by bar_middle.uarw; + sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' bar underscore by underscore_middle.uarw; + sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' underscore by underscore_middle.uarw; + sub [underscore_start.uarw underscore_middle.uarw bar_middle.uarw] underscore' by underscore_end.uarw; + sub underscore' bar underscore by underscore_start.uarw; + sub underscore' underscore by underscore_start.uarw; +} underscore_arrows; \ No newline at end of file diff --git a/showcases/v3/showcases.txt b/showcases/v3/showcases.txt index aad0580..202243b 100644 --- a/showcases/v3/showcases.txt +++ b/showcases/v3/showcases.txt @@ -116,7 +116,7 @@ r 0 123456789 & && $ <$ <$> $> @ <= >= |==== |===< |==<< |===> |==>> |===| |==|| |===/ ==|== ||=== ||==< ||=<< ||==> ||=>> ||==| ||=|| ||==/ =||= /==== /===< /==<< /===> /==>> /===| /==|| /===/ ==/== -|==<==<<==>>==>==|==||==/==| +|==<==<<==>>==>==|==||==/==:==!==| .= ..= := ::= != !== ?= #= ^= =:= =!= =/= >=:=> <=!=< |=/=| >>=:=!=/=>> /= /== //= //== //=== ///= ///== ///=== @@ -128,4 +128,7 @@ r 0 123456789 & && $ <$ <$> $> @ <= >= :>= <||> <<<=<<< <<<==<<< <<<===<<< <<<====<<< >>>=>>> >>>==>>> >>>===>>> >>>====>>> -|||=||| |||==||| |||===||| |||====||| \ No newline at end of file +|||=||| |||==||| |||===||| |||====||| + +_ __ ___ ____ _|_ __|_ _|__ __|__ +_| |_ _||_ __| ___| |__ |___ \ No newline at end of file