diff options
author | Karl Berry <karl@freefriends.org> | 2007-08-07 00:24:50 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2007-08-07 00:24:50 +0000 |
commit | 19de762b4dff70b0b8ead478b4681b72d2f89853 (patch) | |
tree | acd2d14f3bd77a2ce67cb77bdd0b83ea840375b6 /Master/texmf-dist/doc/latex/barcodes | |
parent | e99436b7d536daca535a24df43d78f648c5a01fc (diff) |
barcodes from CTAN
git-svn-id: svn://tug.org/texlive/trunk@4706 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/doc/latex/barcodes')
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/README | 82 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/bcfaq.tex | 686 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/changes | 7 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/code39.tex | 233 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/codean.pl | 492 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/eandoc.pdf | bin | 0 -> 118806 bytes | |||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/eandoc.tex | 357 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/examples.tex | 139 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/install.bat | 108 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/wlcdb.vpl | 231 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/wlcf39.vpl | 1334 | ||||
-rw-r--r-- | Master/texmf-dist/doc/latex/barcodes/wlitf.vpl | 1363 |
12 files changed, 5032 insertions, 0 deletions
diff --git a/Master/texmf-dist/doc/latex/barcodes/README b/Master/texmf-dist/doc/latex/barcodes/README new file mode 100644 index 00000000000..4a555309755 --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/README @@ -0,0 +1,82 @@ +This package consists of + BCFAQ.TEX (* Some more documentation) + BARCODES.STY (* some macros for barcoding) + CODE39.TEX (* macros in TeX for producing code 39 barcode, + documented in itself) + CODEAN.PL ( Preprocessor for EAN, code 93 and code 128 (Perl code)) + EANDOC.TEX (* Documentation for WLEAN.MF and CODEAN.PL) + EXAMPLES.TEX (* demo sheet showing the use of all barcode fonts) + INSTALL.BAT ( installation routine for dos/windows TDS systems) + WLC128.MF (* Raw Code 128 in Metafont format) + WLC39.MF (* Metafont source for Code 39) + WLC93.MF (* Metafont source for Code 93) + WLC11.MF (* Metafont source for Code 11) + WLEAN.MF (* Metafont source for EAN) + WLCR39.MF (* Metafont source for Code 39 rotated running down) + WLCDB.VPL ( virtual font for codabar barcode) + WLITF.VPL ( virtual font for ITF barcode---interleaved + 2 of 5) + WLCF39.VPL ( virtual full ascii code 39) + CHANGES ( text file listing the changes made) + README ( this file) + BARCODES.INS ( run this through TeX to make the files + ( marked above with a star*) + BARCODES.DTX ( required by barcodes.ins) + +Dos/windows users may run install.bat and skip the next two statements. + +At first you should run barcodes.ins through TeX to obtain the files +marked above with an asterisk. + +To use wlitf and/or wlcdb, run it through vptovf, move the tfm and vf +files, then in TeX say, e.g. + +\font\bcfont=wlitf scaled 2000 +{\bcfont+1234-} + +for ITF. The second line will print 1234 as ITF barcode. ++ and - make the itf start and stop sign, respectively. Please note +that ITF requires an even number of digits. + +For Code 39, you may use something like + +\font\bcfont=wlc39 scaled 2000 +{\bcfont @Hello\char32{}12345@} + +This will yield the word Hello, a space and the digits from one to five. +Please note that the @ is used as start/stop sign in this font. + +Code 128 requires wlc128.mf to be copied to a place where metafont can +find it. Also you should use codean.pl to preprocess your input. +Read the docs, code 128 is somewhat complicated. + +One last example: + +\font\bcfont=wlcdb scaled 2000 +{\bcfont a5678t \qquad b2345n \qquad c6789* \qquad d1234e} + +The last two code lines show the use of codabar. +Please note that the start/stop signs for codabar get decoded, too. + +Usage ist freely permitted, comments are welcome, any warranty is +void. If you may find any inconveniences, bugs, or improvements, do +not hesitate to tell me. + +Please note, the package is still far from complete. +Especially, barcodes.sty needs lots of refinement and some documentation. +Also, code 93 is not thoroughly tested. + +May, 2003 +Peter Willadt +(email: Willadt@t-online.de) + +Legal Notice + +This package may be distributed accoring to the terms in the +LaTeX Project Public License, with the following two additions: + +1. If you distribute this package, you must make the LaTeX Project +Public License available, too. + +2. If you find the barcode package useful, please support TUG or +your local TeX user group. diff --git a/Master/texmf-dist/doc/latex/barcodes/bcfaq.tex b/Master/texmf-dist/doc/latex/barcodes/bcfaq.tex new file mode 100644 index 00000000000..64b6601843d --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/bcfaq.tex @@ -0,0 +1,686 @@ +%% +%% This is file `bcfaq.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% barcodes.dtx (with options: `bcfaq') +%% As this is a generated file, you may perhaps not want to edit it. +%% This file belongs to the barcode package. +%% It may be of no great use without the rest of the barcode package. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\documentclass[a4paper]{article} +\bibliographystyle{alpha} + + +\font\itf=wlitf scaled 1200 + +\def\bcbox#1{\lower3pt\hbox{\itf +#1-}} + +\newbox\bsavebox +\newdimen\bcboxdepth +\bcboxdepth=4pt +\def\bdbox#1{\setbox\bsavebox\hbox{\itf +#1-} +\vbox{\hsize=\wd\bsavebox\offinterlineskip% +\copy\bsavebox% +\vskip-\ht\bsavebox\vskip\bcboxdepth% +\box\bsavebox\vskip-\bcboxdepth}} +\def\bebox#1{\setbox\bsavebox\hbox{\itf +#1-} +\vbox{\hsize=\wd\bsavebox\offinterlineskip% +\copy\bsavebox% +\copy\bsavebox% +\vskip-\ht\bsavebox\vskip\bcboxdepth% +\box\bsavebox\vskip-\bcboxdepth}} + +\def\tbs{{\tt\char92}} +\begin{document} +\title{Barcodes-FAQ} +\author{Peter Willadt} +\date{2003-05-24} +\maketitle +\begin{abstract} + +This file deals with questions about barcode fonts created for +\TeX{}. Its purpose is not to replace the regular documents, but to add +informations that may be of no interest for the casual reader. + +\end{abstract} + +\section{Changelog} + +\subsection{Changes of the barcode package in general} +\begin{tabular}{ll} +\em Date & \em Change\\ +2003-05-24 & new release with some corrections to codean.pl\\ + & Thanks to Jacek Ruzycka (uv\_centcom@yahoo.com)\\ +1999-05-29 & added license note to README\\ +1999-05-29 & added install.bat\\ +1998-11-28 & included wlcr39, wlcf39, and wlc93\\ +1998-04-21 & fixed wlitf bug\\ +1998-04-10 & switched partially to docstrip archive\\ + & added support for code 11\\ +1998-01-24 & added code 128 in MF format, changed codean.pl\\ +1997-11-08 & changed metrics of {\sc itf} start/stop chars\\ +1997-10-09 & released first version of the barcode package +\end{tabular} + +\subsection{Changes within this document} + +\begin{tabular}{ll} +\em Date & \em Change\\ +1999-05-29 & added short info about install.bat\\ +1998-11-28 & added docs about code 93\\ +1998-04-10 & added docs about code 11\\ +1998-01-24 & added information about code 128\\ +1997-12-08 & added contributions to {\sc ean} coding by Kalvis M. Jansons\\ + & changed section on plessey\\ +1997-11-09 & added several items, rearranged sections\\ +1997-11-08 & started writing first version +\end{tabular} + +\section{Introduction} + +The barcode package itself can be found on {\tt ctan} in the +subdirectory\\ {\tt fonts/barcodes/willadt}. It contains---among +others---several fonts in {\sc vpl} format, so your {\sc dvi} driver +should be able to handle virtual fonts. If it doesn't, you may perhaps +use {\em dvicopy} to resolve the references to virtual fonts, or you +may perhaps upgrade to a more modern \TeX{} package. + +\section{What about docs?} + +\subsection{Docs about barcodes} + +With the barcode package, there comes documentation about {\sc ean} +fonts. In the README file, there are short examples of the use of +the other fonts, too. Also the files {\tt examples.tex} shows the look +and basic usage of the barcodes. + +In {\sl TUGboat}, barcoding has been covered in several +articles \cite{bc:ean,bc:sauter,bc:vulis}. The barcode package itself +is covered in an article that has appeared in the december issue, +1997, of {\sl TUGboat}. As TUGboat is making the elder articles available +online, I recommend looking for it. + +\subsection{Some information about code 128} + +Code 128 is able to print all 128 ascii chars. There are a little more +than a hundred glyphs that are interpreted in three different +ways. Some of the glyphs are used as shift chars to determine which +interpretation to use. A checksum is mandatory. To use it, you must +install {\tt wlc128.mf}. + +The preprocessing---switching among the different character sets, +coding efficiently, calculating the checksum---is handled by the +newer versions of codean.pl. This is perhaps not as pleasing as to do +it with \TeX{} alone, but, alas, it works. + +The way to run the preprocessor is described in {\tt eandoc.tex}. To +use code 128, you have to write a line starting with {\tt\tbs cxxviii\{} +followed by the characters you want to code and followed by a closing +brace. Non-printing seven-bit ascii characters may be specified in hex +in C or \TeX{} style, like {\tt\tbs x3f} or \verb|^^3f|. Anything up to +the rightmost closing brace in this line will be coded---there is no +brace matching. But you will get a warning message if your text +includes a right brace. So you may want to code braces in hex form to +avoid this message. Please note that {\tt codean.pl} does almost no +checking for errors, so if you intend to produce garbage, there are +lots of ways. If you need code 128 escape characters, they may be +included as hex characters with codes starting at 0x80. + +\begin{tabular}{lllll} +\em Input Code & \em C128 number &\multicolumn{3}{c}{\em meaning}\\ +\em(hex) & \em(dec.) & \em Set A & \em Set B & \em Set C\\ +0x80 & 96 & FNC3 & FNC3 & 96\\ +0x81 & 97 & FNC2 & FNC2 & 97\\ +0x82 & 98 & SHIFT & SHIFT & 98\\ +0x83 & 99 & CODE C& CODE C& 99\\ +0x84 & 100 & CODE B& FNC4 & CODE B\\ +0x85 & 101 & FNC4 & CODE A& CODE A\\ +0x86 & 102 & FNC1 & FNC1 & FNC1\\ +0x87 & 103 & START A& START A& START A\\ +0x88 & 104 & START B& START B& START B\\ +0x89 & 105 & START C& START C& START C\\ +0x8a & 106 & STOP & STOP & STOP +\end{tabular} + +But please keep in mind that {\tt codean.pl} does almost anything for you, +you should not have the need to insert start/stop codes and the +like. Only if you use EAN128, you will need {\tt FNC1}. Just to make +it clear: For your barcode to include {\tt FNC1} you have to write +\verb|^^86| before preprocessing. + +{\tt codean.pl} will insert a sequence of hex digits; the original +text will be appended to the line as a comment. +Also, your \TeX{} file has to define some macros. They look like +this: + +\begin{verbatim} +\font\fntcxx=wlc128 scaled \magstep3 +\def\CXXVIII{\bgroup\fntcxx\let\next\hexchar\next} +\def\cxxviii{\message{OOPS, use codean.pl}} +\def\hexchar#1#2{\if#1@ + \global\let\next\egroup + \else\char"#1#2\fi\next} +\end{verbatim} + +If you do not like end recursion, you might use other ones. If +you dislike the hex format produced by {\tt codean.pl}, you are free to +change it---as long as you don't redistribute. + +\subsection{A little bit about code 11} + +Code 11 is a numeric-only barcode. It is almost as space-efficient as +{\sc itf}, and it comes with a checksum. The checksum should be +swallowed by the reading device. The checksum is a weighted mod-11 +checksum. There are apparently two kinds of checksum in use: such with +one checkdigit and such with two checkdigits. + +To use code 11, you should include {\tt barcode.sty}. \TeX{} will +calculate the checksum on its own. If you need two check digits, you +should say\\ +{\tt\tbs codexichecksumktrue}.\\ +How many check digits you +actually need should be made clear in the documentation to your +reading device\footnote{You may also want to check the documentation +to find out if your reading device supports code 11 at all; code 11 is +not that common.}. You may code the digits 0--9, and the minus +sign. The start and stop sign is mapped to the @ character. Here is a +full example. {Please note: If you do not use \LaTeX{}, you may +have to supply a definition for {\tt\tbs makeatletter} +and {\tt\tbs makeatother}}: + +\begin{verbatim} +\input barcodes.sty +%% with two check digits +\codexichecksumktrue +\codxi{12-1234} + +%% with only one check digit. +\codexichecksumkfalse +\codxi{12-1234} +\bye +\end{verbatim} + +\subsection{Which Code 39 should I use, there are different versions?} + +Well, you may \verb|\input code39| in your \TeX\ document to get the +macro version. It is absolutely flexible in repect of barcode size and +so on, but it is made of \TeX\ macros and there are probably +situations where you may prefer a {\em real} font. So there is {\tt +wlc39.mf} as a real font, {\tt wlcr39.mf} as a font running sideways, +and{\tt wlcf39.vpl} as a full ascii code 39 in vpl format. The +ltter two fonts are experimental, that means, they are not that much +tested as the others. + +I recommend using either the \TeX\ macro or {\tt wlc39.mf}. The others +are too special for normal use, rotation by the graohics driver is +mor robust than building towers of letters, and full ascii code~39 is +less than optimal. + +\subsection{About code 93} + +Code 93 is a little bit more compact than code 39 (as it uses also the +gap between the characters), but in other aspects it is quite +similiar. A checksum with two digits is mandatory. As with code 11, +checksumming works by weighing the characters different depending on +their position within the barcode. + +The version of code 93 that is included within the package resorts to +uppercase ascii, digits, and to some other signs. Start and stop sign +are mapped to {\tt<} and {\tt>}, respectively. + +Full ascii works similiar to full ascii with code 39 (that means with +escape characters), but fortunately the escape characters are +different from ordinary characters, so that you can hardly be +misunderstood. Unfortunately the escape characters are named (\$), +(\%), (/), and (+), so I decided to map them to opening and closing +parentheses and brackets, respectively. This may not seem very clever +when it comes to full ascii, but these characters may also appear as +checksum characters, so we need them when doing uppercase ascii, +too. For full ascii, it would be clever to redo the font in a +completely different way and to map start sign, stop sign and the four +escape characters to positions above 128, so that any 7 bit ascii +character can be input directly. + +Code 93 is supported by codean.pl in the same way as ean or code 128 +are. You have to write {\tt\tbs xciii\{YOUR DATA 123\}}, run the file +through {\tt codean.pl}, then you'll get\\ +{\tt\tbs XCIII\{YOUR DATA 123NN\}\%Code93(YOUR DATA 123)} + +The NN make up the two check characters. Normally, they are different, +but in this example they are equal, by incident. + +\subsection{Docs about VPL Files} + +VPL files are documented in the files {\tt VPtoVF.WEB} and {\tt +VFtoVP.WEB}. Both files can be found on {\sc ctan} under {\tt +SYSTEMS/KNUTH}. {\em WEAVE} may be used to produce \TeX{} files. The +documentation about the VPL/VF file formats is covered within the +first few sections. + +\section{I want other metrics etc.} + +\subsection{My barcodes should have depth} + +You have got several possibilities to obtain depth. The most simple +approach may be to set the barcodes with the regular barcode fonts into an +{\tt\tbs hbox} and then to {\tt\tbs lower} this hbox. + +Let's look at an example: + +\begin{verbatim} +\font\itf=wlitf scaled 1200 +\def\bcbox#1{\lower3pt\hbox{\itf +#1-}} + Example: +{\sc itf} barcode looks like \quad\bcbox{1009}\quad +for 1009, e.g. +\end{verbatim} + +This code yields the following result: + +{\sc itf} barcode looks like \quad\bcbox{1009}\quad for 1009, e.g. + +Another approach is to edit the font sources. In case of {\sc vpl} +files, this is quite painful. Rules in {\sc vpl} files do not have +depth, so you have to change the characters mapping in a way that you +add a {\em movedown} before you draw, and a {\em moveup} afterwards. +You may see the changes for an arbitrary character from {\tt +WLITF.VPL}: + +\begin{verbatim} +(CHARACTER D48 + (COMMENT from WLITF.VPL} + (CHARWD D 14) (CHARHT R 10) + (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +\end{verbatim} + +This character may be lowered by four units by editing in a way that the +following lines result. Please note that there were not only the {\em +moveup} and {\em movedown} commands added, but also the height an +depth have been changed. + +\begin{verbatim} +(CHARACTER D48 + (COMMENT Lowered to give some depth) + (CHARWD D 14) (CHARHT R 10) + (CHARDP R 4) (CHARIC R 0.0) + (MAP + (MOVEDOWN R 4) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (MOVEUP R 4) + ) + ) +\end{verbatim} + +\subsection{My barcodes are too tall} + +For the sake of the person who has to scan the barcodes, barcodes just +can't be tall enough. If the complete code is as tall as wide, the +reading device can be twisted against the code at an angle of 45 +degrees. If they are half as high, the angle reduces to 26 degrees. + +If you really want short codes, you have to edit the sources. In the +{\sc vpl} file, you have to change the {\em charht} and the first parameter +to the {\em setrule} command at well. You also should change the {\em +designsize} parameter. + +For the EAN font, search for {\tt bheight\#} and change {\tt22.85 +mm\#} to the height you need. To get an EAN font without the digits +(bars only), you also have to edit the character definitions by +leaving out the last lines (saying {\tt nuller;}, e.g. and you have to +change the formula for calculating {\tt totheight} to not include the +height of the digits any more, also you should remove any references +to {\tt klotz}. + +\subsection{My barcodes are not tall enough} + +You may also change the sources, like described in the previous +subsection. But there is another solution that is perhaps more +practical. The idea is simple that double black is still black and +that you may overlay several printouts of the same barcode. Here is +the example code (it may be made taller by adding more copies of the +barcode box, of course). There is an extra dimension {\em bcboxdepth} +added to yield depth for the barcodes. + +\begin{verbatim} +\newbox\bsavebox +\newdimen\bcboxdepth +\bcboxdepth=4pt +\def\bdbox#1{\setbox\bsavebox\hbox{\itf +#1-} +\vbox{\hsize=\wd\bsavebox\copy\bsavebox% +\vskip-\ht\bsavebox\vskip\bcboxdepth% +\box\bsavebox\vskip-\bcboxdepth}} +\def\bebox#1{\setbox\bsavebox\hbox{\itf +#1-} +\vbox{\hsize=\wd\bsavebox\copy\bsavebox% +\vskip0pt\copy\bsavebox% +\vskip-\ht\bsavebox\vskip\bcboxdepth% +\box\bsavebox\vskip-\bcboxdepth}} + Example: +Tall {\sc itf} barcode looks like \quad\bdbox{1009}\quad +or (still taller) \quad\bebox{1009}\quad for 1009, e.g. +\end{verbatim} + +And here is the result, you may compare it with the output of the +previous example: + +Tall {\sc itf} barcode looks like \quad\bdbox{1009}\quad or (still +taller) \quad\bebox{1009}\quad for 1009, e.g. + +\subsection{My barcodes are too wide/too narrow} + +Perhaps you should change the barcode size (by changing +{\tt\tbs magnification}) and then read the subsections above about too +tall bars and bars that are not tall enough. + +\subsection{My barcodes should run vertically} + +Vertically oriented barcode is a good idea for cans, bottles and +similiar things. + +It just depends on your {\sc dvi} driver. Perhaps there is a +possibility to handle rotation via {\tt\tbs special}, as with {\em +dvips} and the {\em rotate} macros. For experimantal purposes I have +included a code 39 version running down instead right ({\tt +wlcr39.mf}). You may perhaps use it with {\tt\tbs shortstack} or +similiar. Here is some code I used (successfully) with plain \TeX: + +\begin{verbatim} +\font\testfont=wlcr39 scaled 1200 +\def\bcbax{\let\next\bcbox\vbox\bgroup + \offinterlineskip\testfont\setbox0\hbox{@}\hsize=\wd0 + \noindent{}@\hfil\break\next} +\def\fertig{@\hfil\break\egroup} +\def\bcbox#1{\if @#1\let\next\fertig\else#1\hfil\break\fi\next} + +Look buddy, this is \bcbax1406632@ code 39 +stacked and running downwards. +\end{verbatim} + +\subsection{I heard something about full ascii code 39} + +Well, umh, now that you ask\dots The truth is: You may perhaps be able to +configure your reading device to accept full ascii code~39. Then you may +code any 7~bit character you may think of. The bad news is that most of +the symbols have to be coded by two +characters -- and as code 39 has already low density, you should not +expect to get much use of it. Perhaps you might want to try code 128 +instead---it features full 7-bit ascii without any compromise. + +Another anti-feature is that switching to reading full-ascii code~39 +may lead to some bad reads of `normal' code~39. In full ascii, the lower +case letters, e.g., are made by prepending the uppercase letters with a +plus sign, so {\tt+A} is read as {\tt a}. So, if you have got regular +code~39 that contains such character sequences, and you have switched +your reading device to full ascii, you may get bad results. + +But, now that you want it: With the barcode package there comes a font +{\tt wlcf39.vpl}. You may install it like the other vpl files. It has got +132 characters and has already taken all the coding for full ascii, so +when you typ {\tt e,\$4+A}, it will silently be mapped to what you +would have typed as {\tt+E/L/D/KA}, if you would use the plain code~39 +format\footnote{Please take note: 6 characters are blown up to 9, +think again about using another code}. In my version of full ascii +code~39, the start/stop sign is mapped to @@ (or \verb|\char128|). So +you actually had to add @@ to the front and the end of the example +string. If you can not exclude that the character sequence @@ appears +within the text you want to code, you have to avoid ligature +processing. You may do that like this: + +\begin{verbatim} +\font\fullas=wlcf39 scaled 1728 +\def\alphanolig{\char64\kern0pt} +\def\printacode#1{{\fullas@@{\catcode`\@=\active% +\let @=\alphanolig#1}@@}} +\end{verbatim} + +You also have to escape or circumscribe special characters to make +them really printable, of course, so that when you wanted a backspace, +a tab, a space, a dollar sign, a percent sign, and a bell character to +be coded, you would type something like + +\begin{verbatim} +{\fullas @@\char8\char9\char32\$\%\char7} +\end{verbatim} + +\section{Troubleshooting} + +\subsection{My barcodes can't be decoded} + +At the very, very first, check if you really have added start and stop +codes. If you haven't, you're lost. Then check if you have enabled +decoding of your special barcodes within your reading device. With +modern scanners, you can disable almost any coding scheme. + +At first, try to make them larger. If that does't help, make them +larger, again. If that will not help, obtain fonts in \TeX{} or +Metafont format and make them brighter. Or, perhaps better, obtain a +better printer. + +You also should check the contrast between bars and background, +especially when using a dot matrix printer or coloured background +or---still worse---red bars. + +\subsection{My decoder reads extra digits, sometimes} + +I guess you use {\sc itf} barcode with a number of digits that is +sometimes even and sometimes odd. As {\sc itf} always codes two digits +at once, you should take care just to code an even number of digits at +any time. If an excess zero at the beginning of your number is not +acceptable, you might try another kind of barcode instead of {\sc +itf}. + +\subsection{Can't run pdf\TeX\ with barcode fonts} + +Get a later version of pdf\TeX, and you're done. + +\section{Missing items} + +\subsection{I am missing two-of-five} + +I got specs for two-of-five (three bars). If you want it, let me know; +I might implement it. For other kinds of two-of-five, I haven't got +complete specs. + +\subsection{I am missing plessey} + +I got the specs but I haven't yet got the time to implement them. With +plessey, there also rise several questions due to the fact that +plessey has never been officialy standardized. The only thing that is +absolutely sure about plessey is how binary ones and zeros are +encoded. There are codes that are more wide-spread. Several modern +barcode readers can't cope with plessey code. + +\subsection{I am missing \dots{} some other barcode} + +I have checked out several two-dimensional barcodes. But for most of +them, support by \TeX{} seems to be rather pointless. Perhaps Metafont +could be called any time you have to code something to draw the +symbols, but you might as well use a custom drawing program that comes +from the barcode vendor. Also, most two-dimensional barcodes (and +other barcodes not mentioned here) are proprietary. Last not least the +reading devices I have access to can deal only with a finite range of +barcodes. + +I am sorry, but I haven't got the specs for further barcodes +not mentioned here. If you could be so kind as to send them to me, I +might perhaps implement them. + +\section{Contributions} + +\subsection{EAN without preprocessing} + +The following code is due to Kalvis M. Jansons. + +It handles printing of {\sc ean} without having to run a +preprocessor. Not only are the {\sc ean} bars drawn, also the checksum +checksum is checked. It can be easily +adapted to non-\LaTeX{} use by omitting anything before \verb|\font| + +\begin{verse} +Kalvis M. Jansons + +eMail: \verb|<kalvis@math.ucl.ac.uk>| + +\end{verse} + +An easy way to use the barcode fonts in \LaTeX{}: + +\begin{verbatim} +\documentclass[a4paper]{article} + +\pagestyle{empty} + +\setlength{\oddsidemargin}{0pt} +\setlength{\textwidth}{\paperwidth} +\addtolength{\textwidth}{-2in} +\setlength{\marginparwidth}{0pt} + +\setlength{\textheight}{\paperheight} +\addtolength{\textheight}{-2.5in} +\setlength{\topmargin}{0pt} + +\font\eanfont=WLEAN scaled 2000 +\def\ean#1{\vbox{\vskip20pt\eanfont#1\vskip20pt}} +\newcount\num +\def\a#1{\num=#1 \advance\num by `A \char\num} +\def\b#1{\num=#1 \advance\num by `a \char\num} +\def\c#1{\num=#1 \advance\num by `K \char\num} +\def\C#1#2#3#4#5#6{\c#1\c#2\c#3\c#4\c#5\c#6} + +\def\A#1#2#3#4#5#6#7{\ifcase #7 +{\a#1\a#2\a#3\a#4\a#5\a#6}% +\or {\a#1\a#2\b#3\a#4\b#5\b#6}% +\or {\a#1\a#2\b#3\b#4\a#5\b#6}% +\or {\a#1\a#2\b#3\b#4\b#5\a#6}% +\or {\a#1\b#2\a#3\a#4\b#5\b#6}% +\or {\a#1\b#2\b#3\a#4\a#5\b#6}% +\or {\a#1\b#2\b#3\b#4\a#5\a#6}% +\or {\a#1\b#2\a#3\b#4\a#5\b#6}% +\or {\a#1\b#2\a#3\b#4\b#5\a#6}% +\or {\a#1\b#2\b#3\a#4\b#5\a#6}% +\fi} + +\newcount\cha +\newcount\chb +\makeatletter +\long\def\for{\@for} +\makeatother +\gdef\mysix#1#2#3#4#5#6{,#1#2,#3#4,#5#6} +\gdef\mywork#1#2{\advance\cha by #1 \advance\chb by #2} +\gdef\barch#1.#2.#3.{ +\xdef\mylist{0#1\mysix#2\mysix#3} +\cha=0 +\chb=0 +\for \x:=\mylist\do{\expandafter\mywork\x} +\multiply\cha by 3 +\advance\chb by \cha +\cha=\chb +\divide\cha by 10 +\multiply\cha by -10 +\advance\chb by \cha} +\def\bar#1.#2.#3.{\barch#1.#2.#3. +\ifnum\chb>0 #1#2#3 has a bad check sum!\\[20pt] +\else \ean{#1 +\A#2#1-\C#3+}\fi} +\begin{document} + + Examples + +\bar3.034325.106199. + +\bar4.074400.410000. + +\bar5.449000.055521. + +\bar5.010027.522336. + +\bar8.410005.421052. + +\bar9.780192.828941. + +\end{document} +\end{verbatim} + +\section{Installation} + +Installation is described within the README file, in short. +Here I assume that you have a TDS compliant \TeX{} installation +already running. + +Installation consists of several steps: + +\begin{enumerate} + \item unpack barcodes.dtx by running barcodes.ins through \TeX (I +guess you have already done that, lest you would not be able to read +this text), like {\tt tex barcodes.ins} +\item run {\tt vptovf} on all the vpl files, e.g. type something like + {\tt vptovf wlitf.vpl wlitf.vf wlitf.tfm} +\item if your \TeX\ system does not support automatic generation of +{\tt tfm} files, run mf on all the .mf files. +\item move all the files to appropriate locations +\item install codean.pl for use with Perl +\item run the documentation through \LaTeX{} +\item clean up +\end{enumerate} + +Items 1,2,4,6, and part of 7 can be automatically executed on ms-dos or +ms windows systems by running {\tt install.bat}. If you do not supply +any parameters, {\tt install} will install to {\tt C:\char92TeXMF}. If +you do supply a parameter, it should be the path to your TEXMF tree +(no trailing backslash, please). + +Here are the appropriate locations mentioned above -- all of them +in the TEXMF tree: + +\begin{tabular}{ll} +\em move & \em to\\ +\tt *.mf & \tt fonts/source/public/misc\\ +\tt *.tfm & \tt fonts/tfm/public/misc\\ +\tt *.vf & \tt fonts/vf/public\\ +\tt code39.tex &\tt tex/generic/misc\\ +\tt barcodes.sty &\tt tex/latex/misc\\ +\end{tabular} + +Of course other locations might also work, but to me it seems fine +this way. + +Running plain \TeX{} on {\tt examples.tex} is the ultimate test: This +will only work when all the installation is well done. + +The installation of Perl programs is beyond the scope of this +documentation. If you do not need code 128, you can go without +{\tt codean.pl}, especially if you use the macros described above. + +\bibliography{bcfaq} + +\end{document} +\endinput +%% +%% End of file `bcfaq.tex'. diff --git a/Master/texmf-dist/doc/latex/barcodes/changes b/Master/texmf-dist/doc/latex/barcodes/changes new file mode 100644 index 00000000000..48b0bf5cec2 --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/changes @@ -0,0 +1,7 @@ +This file documents changes to the barcode package. +Its purpose is to make updating easier. + +2003-05-22 corrections to documentation, fixed codean.pl +1999-05-28 added install.bat +1999-05-28 added license +1998-04-21 fixed wlitf bug diff --git a/Master/texmf-dist/doc/latex/barcodes/code39.tex b/Master/texmf-dist/doc/latex/barcodes/code39.tex new file mode 100644 index 00000000000..cccabff27c4 --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/code39.tex @@ -0,0 +1,233 @@ +%% +%% This is file `code39.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% barcodes.dtx (with options: `code39mac') +%% As this is a generated file, you may perhaps not want to edit it. +%% This file belongs to the barcode package. +%% It may be of no great use without the rest of the barcode package. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +%%% ==================================================================== +%%% @TeX-file{ +%%% author = "Peter Willadt", +%%% version = "1", +%%% date = "16 August 1997", +%%% time = "10:00:00 GMT", +%%% filename = "code39.tex", +%%% address = "Peter Willadt +%%% 75177 Pforzheim +%%% Germany", +%%% email = "Willadt@t-online.de", +%%% codetable = "ISO/ASCII", +%%% keywords = "Barcode, Code39, TeX", +%%% abstract = "This file contains macros to support the inclusion +%%% of code 39 barcode in TeX documents.", +%%% } +%%% ==================================================================== +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% This code supports barcodes in Code 39 +%% Usage: +%% For alphanumerical barcodes: +%% \begincodethirtynine followed by +%% the stuff to code, +%% ended with \endcodethirtynine +%% For numerical only code: +%% modify the code for pharamceuticals +%% For german pharmaceutics: +%% \pzncode1234562@ when 1234562 is the +%% number to be coded as -1234562. +%% this will also verify the checksum +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% This file may be freely used without any +%% further permission. +%% It comes with absolutely no warranty. +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% this is the common stuff +\newdimen\dick +\newdimen\duenn +\newdimen\duennbar +\newdimen\dickbar +\newdimen\antibleed +\dick=1mm +\duenn=0.5mm +\antibleed=0mm +\dickbar=\dick +\advance\dickbar by -\antibleed +\duennbar=\duenn +\advance\duennbar by -\antibleed +\def\b{\vrule width\duennbar} +\def\B{\vrule width\dickbar} +\def\s{\hskip\duenn\hskip\antibleed} +\def\S{\hskip\dick\hskip\antibleed} +%% + \def\tnzero{\b\s\b\S\B\s\B\s\b\s} + \def\tnone{\B\s\b\S\b\s\b\s\B\s} + \def\tntwo{\b\s\B\S\b\s\b\s\B\s} +\def\tnthree{\B\s\B\S\b\s\b\s\b\s} + \def\tnfour{\b\s\b\S\B\s\b\s\B\s} + \def\tnfive{\B\s\b\S\B\s\b\s\b\s} + \def\tnsix{\b\s\B\S\B\s\b\s\b\s} +\def\tnseven{\b\s\b\S\b\s\B\s\B\s} +\def\tneight{\B\s\b\S\b\s\B\s\b\s} + \def\tnnine{\b\s\B\S\b\s\B\s\b\s} + \def\tninestart{\b\S\b\s\B\s\B\s\b\s} + \def\tnineminus{\b\S\b\s\b\s\B\s\B\s} + \def\tnineplus{\b\S\b\s\b\S\b\S\b\s} +\def\tninedollar{\b\S\b\S\b\S\b\s\b\s} + \def\tnineslash{\b\S\b\S\b\s\b\S\b\s} + \def\tninedot{\B\S\b\s\b\s\B\s\b\s} +\def\tninepercnt{\b\s\b\S\b\S\b\S\b\s} + \def\tninespace{\b\S\B\s\b\s\B\s\b\s} +\def\tninelettera{\B\s\b\s\b\S\b\s\B\s} +\def\tnineletterb{\b\s\B\s\b\S\b\s\B\s} +\def\tnineletterc{\B\s\B\s\b\S\b\s\b\s} +\def\tnineletterd{\b\s\b\s\B\S\b\s\B\s} +\def\tninelettere{\B\s\b\s\B\S\b\s\b\s} +\def\tnineletterf{\b\s\B\s\B\S\b\s\b\s} +\def\tnineletterg{\b\s\b\s\b\S\B\s\B\s} +\def\tnineletterh{\B\s\b\s\b\S\B\s\b\s} +\def\tnineletteri{\b\s\B\s\b\S\B\s\b\s} +\def\tnineletterj{\b\s\b\s\B\S\B\s\b\s} +\def\tnineletterk{\B\s\b\s\b\s\b\S\B\s} +\def\tnineletterl{\b\s\B\s\b\s\b\S\B\s} +\def\tnineletterm{\B\s\B\s\b\s\b\S\b\s} +\def\tninelettern{\b\s\b\s\B\s\b\S\B\s} +\def\tninelettero{\B\s\b\s\B\s\b\S\b\s} +\def\tnineletterp{\b\s\B\s\B\s\b\S\b\s} +\def\tnineletterq{\b\s\b\s\b\s\B\S\B\s} +\def\tnineletterr{\B\s\b\s\b\s\B\S\b\s} +\def\tnineletters{\b\s\B\s\b\s\B\S\b\s} +\def\tninelettert{\b\s\b\s\B\s\B\S\b\s} +\def\tnineletteru{\B\S\b\s\b\s\b\s\B\s} +\def\tnineletterv{\b\S\B\s\b\s\b\s\B\s} +\def\tnineletterw{\B\S\B\s\b\s\b\s\b\s} +\def\tnineletterx{\b\S\b\s\B\s\b\s\B\s} +\def\tninelettery{\B\S\b\s\B\s\b\s\b\s} +\def\tnineletterz{\b\S\B\s\B\s\b\s\b\s} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% this is the code for 39 mode +\def\activatethemall{ +\catcode`\A=\active \catcode`\B=\active +\catcode`\C=\active \catcode`\D=\active +\catcode`\E=\active \catcode`\F=\active +\catcode`\G=\active \catcode`\H=\active +\catcode`\I=\active \catcode`\J=\active +\catcode`\K=\active \catcode`\L=\active +\catcode`\M=\active \catcode`\N=\active +\catcode`\O=\active \catcode`\P=\active +\catcode`\Q=\active \catcode`\R=\active +\catcode`\S=\active \catcode`\T=\active +\catcode`\U=\active \catcode`\V=\active +\catcode`\W=\active \catcode`\X=\active +\catcode`\Y=\active \catcode`\Z=\active +\catcode`+=\active \catcode`-=\active +\catcode`\_=\active \catcode`.=\active +\catcode`\$=\active \catcode`\%=\active +\catcode`\/=\active +\catcode`\0=\active \catcode`\1=\active +\catcode`\2=\active \catcode`\3=\active +\catcode`\4=\active \catcode`\5=\active +\catcode`\6=\active \catcode`\7=\active +\catcode`\8=\active \catcode`\9=\active +} +{\activatethemall +\gdef\begincodethirtynine{ +\bgroup\activatethemall\strut\tninestart +\letA=\tninelettera \letB=\tnineletterb +\letC=\tnineletterc \letD=\tnineletterd +\letE=\tninelettere \letF=\tnineletterf +\letG=\tnineletterg \letH=\tnineletterh +\letI=\tnineletteri \letJ=\tnineletterj +\letK=\tnineletterk \letL=\tnineletterl +\letM=\tnineletterm \letN=\tninelettern +\letO=\tninelettero \letP=\tnineletterp +\letQ=\tnineletterq \letR=\tnineletterr +\letS=\tnineletters \letT=\tninelettert +\letU=\tnineletteru \letV=\tnineletterv +\letW=\tnineletterw \letX=\tnineletterx +\letY=\tninelettery \letZ=\tnineletterz +\let+=\tnineplus \let-=\tnineminus +\let_=\tninespace \let.=\tninedot +\let$=\tninedollar \let%=\tninepercnt +\let/=\tnineslash +\let0=\tnzero \let1=\tnone +\let2=\tntwo \let3=\tnthree +\let4=\tnfour \let5=\tnfive +\let6=\tnsix \let7=\tnseven +\let8=\tneight \let9=\tnnine +} +} +\def\endcodethirtynine{ +\tninestart\egroup +} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% this code is used for german pharmaceutics +\newcount\ziffern +\newcount\checksum +\newcount\multreg +\def\tndigit#1{% + \ifcase#1\tnzero\or\tnone% + \or\tntwo\or\tnthree% + \or\tnfour\or\tnfive% + \or\tnsix\or\tnseven% + \or\tneight\or\tnnine% + \fi} +\def\endtncode{% + \tninestart% + \ifnum\ziffern=9 + \else\message{wrong digit count} + \fi% + \ifnum\checksum=0 + \else\message{wrong checksum} + \fi% + \egroup} +\def\nexttn#1{% + \advance\ziffern by1 + \if@#1\let\next\endtncode + \else + \tndigit#1% + \ifnum\ziffern=8 + \multreg=\checksum + \divide\multreg by 11 + \multiply\multreg by 11 + \advance\checksum by-\multreg + \multreg=#1 + \advance\checksum by-\multreg + \ifnum\checksum=10 + \checksum=0 + \fi + \else + \multreg=#1 + \multiply\multreg by\ziffern + \advance\checksum by\multreg + \fi% + \fi% + \next} +\def\pzncode{ + \bgroup + \let\next\nexttn + \ziffern=1\checksum=0\multreg=0 + \strut + \tninestart\tnineminus% + \next% +} +\endinput +%% +%% End of file `code39.tex'. diff --git a/Master/texmf-dist/doc/latex/barcodes/codean.pl b/Master/texmf-dist/doc/latex/barcodes/codean.pl new file mode 100644 index 00000000000..0e3cd010158 --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/codean.pl @@ -0,0 +1,492 @@ +# your shell command goes here +# +# Hacking EAN numbers to a form usable with WLEAN.MF. +# +# September 3, 1997 +# Peter Willadt +# +# Added hacking any text for coding with code 128 +# 1998-01-24 +# +# Added checksumming for code 93 +# 1998-11-29 +# +# 2003-05-24 +# cleaned up the code in several places and +# corrected code 93 checksumming due to a hint by +# Jacek Ruzyczka <uv_centcom@yahoo.com> +# +# 2003-05-24 +# removed an error introduced the same day +# +# This file is free to use without any further permissions. +# This file comes with no warranty of any kind. +# +# The TeX file to be filtered may contain any number of lines +# that have one of the following commands +# starting at the leftmost position. +# +# \ean{12 or 13 digit number} +# the number gets coded as EAN, +# if it is only 12 digits long, the checksum gets calculated +# +# \embed{number} +# the number is used as a base for embedding article numbers & c. +# \eean{number} +# a number to be embedded with an ean. +# +# \isbn{number} +# an isbn to make an embedded ean of. +# +# \cxxviii{any 7 bit ascii values} +# code as barcode 128 (see rules below!) +# +# \xciii{uppercase text or number} +# text to be coded as code 128 +# +# example: +# You want the isbn 0-201-13448-9 to be embedded. +# so you say \isbn{0201134489}, +# but you may also say \embed{9780000000000} and, +# somewhere later in the file, \eean{020113448} +# In this case you have to leave the last digit out, +# as isbn loose their check digit in favour of the +# ean check digit. +# anyway you do it, you get your command replaced by +# \EAN{13-digit-number-coded-strange} +# in the output file. +# +# +# code 128 rules: +# you write a line starting with \cxxviii{ +# followed by arbitrary 7 bit characters, delimited by a right brace}. +# as perl is greedy, it will be the rightmost right brace (no fence matching), +# but as perl is also nice, you will be warned if there is another +# right brace. Please note that even the percent character % will be +# included. So it is better to write the \cxxviii{...} statement onto +# a line of its own. You may replace any character by ^^00 and +# similiar codes, preferably you will do this to non-printable ascii +# characters, or right braces and the like. This routine will try to find +# an efficent way to make code 128 (sorry, not necessarily the most +# efficient way) out of your input and then it will +# insert a line like \CXXVIII{3a 70 12 ... @@} in the output file. +# The code 128 special characters can be included by the following codes: +# ^^80 FNC3 +# ^^81 FNC2 +# ^^82 SHIFT +# ^^83 CODE C/CODE C/99 +# ^^84 CODE B/FNC4/CODE B +# ^^85 FNC4/CODE A/CODE A +# ^^86 FNC1 +# ^^87 START A +# ^^88 START B +# ^^89 START C +# ^^8a STOP + +use strict; + +use vars qw ( @ABTAB $ifname $ofname ); +# code switch table for ean + +@ABTAB=(0,0,0,0,0,0, #0 + 0,0,1,0,1,1, #1 + 0,0,1,1,0,1, #2 + 0,0,1,1,1,0, #3 + 0,1,0,0,1,1, #4 and so on + 0,1,1,0,0,1, + 0,1,1,1,0,0, + 0,1,0,1,0,1, + 0,1,0,1,1,0, + 0,1,1,0,1,0, + ); + +# command line processing: Need input file + +if($ARGV[0]){ + $ifname=$ARGV[0]; +}else{ + print "Enter name of file to be processed: "; + $ifname = <>; + chomp($ifname); +} + +# command line processing: need output file + +if($ARGV[1]){ + $ofname=">$ARGV[1]"; +}else{ + print "Enter name of output file: "; + $ofname = <>; + chomp($ofname); + $ofname = '>' . $ofname; +} + +# make an ean + +sub eancod{ + my ($i, $j, $checksum, $disone); + my $srcstr=shift; + # first digits first + my $precod=substr($srcstr,0,1); + # Starting output string + my $eastring=$precod . " +"; + # digits 2--7 + for($i=0;$i<6;$i++){ + my $disone=substr($srcstr,$i+1,1); + $disone =~ tr/0123456789/ABCDEFGHIJ/; + $disone= lc ($disone) if( @ABTAB[$precod*6 + $i]==1); + $eastring .=$disone; + }$eastring .= "-"; + # digits 8--13 + for($i=0;$i<6;$i++){ + # if checksum misses, do your own + if(($i==5) && (length($srcstr)==12)){ + for($j=0,$checksum=0;$j<12;$j++){ + $checksum+=substr($srcstr,$j,1)*(1+($j&1)*2); + }; + $checksum%=10; + $checksum=10-$checksum; + $checksum%=10; + $disone="$checksum"; + }else { + $disone=substr($srcstr,$i+7,1); + } + $disone =~ tr/0123456789/KLMNOPQRST/; + $eastring .=$disone; + }$eastring .="+"; + return $eastring; +} + +################################################## +# here starts the code 128 stuff +# +################################################## +# get the numerical value of a hex character, +# e.g. 65 from 41 +# +sub hexchar{ + my $src=shift; + my ($i, $j, $result); + $src =~ tr/a-f/A-F/; + $i=ord(substr($src,0,1)); + $j=ord(substr($src,1,1)); + if($i >= ord("A")){ + $i += (10-ord('A')); + }else{ + $i -= ord("0"); + } + if($j >= ord("A")){ + $j += (10-ord("A")); + }else{ + $j -= ord("0"); + } + $result=16*($i)+$j; + return $result; +} + + +# globals: +# @cxxchars holds the characters the user wants to code +# @cxxlength is the size of this array +# @ctbl holds the possible codings for these chars +# @cxxout holds the codes to be output for code 128 +# @cxxoutout holds the codes to be output for code 128 + +use vars qw ( @cxxchars $cxxlength @ctbl @cxxout @cxxoutout); + +################################################## +# build up the switching table for code 128 + +sub makectbl{ + # locals + my $i; + for($i=0;$i < $cxxlength; $i++){ + if(($cxxchars[$i] >= ord("0"))&&($cxxchars[$i] <= ord("9"))){ + # digits + $ctbl[$i]=7; + }elsif(($cxxchars[$i] >= ord(" "))&&($cxxchars[$i] <= ord("_"))){ + # common Chars + $ctbl[$i]=3; + }elsif($cxxchars[$i] < ord(" ")){ + # ascii control chars + $ctbl[$i]=1; + }elsif(($cxxchars[$i] >=ord("`"))&&($cxxchars[$i] <= ord("\x7f"))){ + # lowercase + $ctbl[$i]=2; + if($cxxchars[$i] == ord("}")){ + print "Encountered right brace in argument to cxxviii\n"; + } + }else{ # Function Codes + $ctbl[$i] =7; + } + } + $ctbl[$i]=0; # makes a stop. +} + +################################################## +# make a character array from a string +# looking like aBc\x41def^^41 or so. +# +sub unhex{ + my ($i, $j, $b); + my $srcstr=shift; + $j=0; + for($i=0;($b=ord(substr($srcstr,$i,1))) > 0;$i++){ + if($b == ord("\\")){ + if(substr($srcstr,$i+1,1) =~ /[xX]/){ # hex input + $cxxchars[$j] = hexchar(substr($srcstr,$i+2,2)); + $i += 3; + }else{ + $cxxchars[$j] = ord("\\"); + } + }elsif($b == ord("^")){ + if(ord(substr($srcstr,$i+1,1)) == ord("^")){ # hex input + $cxxchars[$j] = hexchar(substr($srcstr,$i+2,2)); + $i += 3; + }else{ + $cxxchars[$j] = ord("^"); + } + }else{ + $cxxchars[$j] = $b; + } + $j++; + } + return $j; +} + +################################################## +# write out a chunk of code 128 in hex symbols +# +sub cxxchunk{ + my $j=shift; + my ($i, $sum, $k); + $sum=7; + for($i=0;$sum & $ctbl[$j+$i]; $i++){ + $sum &= $ctbl[$j+$i]; + } + if($sum==1){ + $cxxout[$j]=101; + }else{ + $cxxout[$j]=100; + } + for($k=0;$k<$i;$k++){ + if(($sum==1)&&($cxxchars[$j+$k] < ord(" "))){ + $cxxout[$j+$k+1]=$cxxchars[$j+$k] + 64; + }else{ + $cxxout[$j+$k+1]=$cxxchars[$j+$k] - ord(" "); + } + } + $k++; + return $k; +} + +################################################## +# consecutive digits may perhaps be efficiently +# coded with charset C +# +sub pastedigits{ + my $digitcount=shift; + my $j=shift; + my $firstdigit=shift; + my $lastset=shift; + my $k; + if($digitcount==0){ # nothing to do + return $j; + }elsif($digitcount<4){ + # digits here, but unfortunately not enough digits. + # so just copy them + for($k=0;$k<$digitcount;$k++){ + $cxxoutout[$j] = $cxxout[$firstdigit+$k]; + $j++; + } + return $j; + }else{ + # is there an odd number of digits? + if(($digitcount & 1)==1){ + $cxxoutout[$j] = $cxxout[$firstdigit]; + $firstdigit++; + $digitcount--; + $j++; + }elsif(($cxxout[$j-1]>=99)&&($cxxout[$j-1]<=101)){ + # Switched immediately before digits. + # so overwrite the switch + $j--; + } + $cxxoutout[$j] = 99; # switch to set C + $j++; + # copy digits in compressed format + for($k=0;$k<$digitcount;$k+=2){ + $cxxoutout[$j] = ($cxxout[$firstdigit+$k]-16)*10 + +$cxxout[$firstdigit+$k+1]-16; + $j++; + } + # reset char set, if you have to + if($lastset > 0){ + $cxxoutout[$j] = $lastset; + $j++; + } + } + return $j; +} + +sub digitoptimize{ + # change to charset C if there are at least four numbers in a row. + # copy to @cxxoutout + my ($lastset, $firstdigit, $digitcount, $i,$j,$k); + $lastset =0; + $firstdigit=0; + $digitcount=0; + $j=0; + for($i = 0; $i < $cxxlength; $i++){ + if(($cxxout[$i]>=16)&&($cxxout[$i]<=25)){ + # it's a number + if($digitcount == 0){ + $firstdigit=$i; + } + $digitcount++; + next; + } + if($digitcount >0){ + $j=pastedigits($digitcount,$j,$firstdigit,$lastset); + $digitcount=0; + } + $cxxoutout[$j] = $cxxout[$i]; + $j++; + if(($cxxout[$i]>=99)&&($cxxout[$i]<=101)){ + # it's a code switch + $lastset=$cxxout[$i]; + }else { + $lastset=0; + } + } + # $lastset is zero here, as there is no further need + # to switch the char set any more - we're at the end + $j=pastedigits($digitcount,$j,$firstdigit, 0); + return $j; +} + +################################################## +# code 128 is a little complicated +# if you have read till here, you already know. +# +sub codcxxviii{ + # locals + my ($i, $j, $sum); + my $srcstr=shift; + # first step: unhexing + $cxxlength = unhex($srcstr); + # @cxxchars now holds the characters the user wants + makectbl(); + # @ctbl now contains the possible tables for the chars in $j; + for($i =0; $i < $cxxlength;){ + $i += cxxchunk($i); + } + # change codeset switch to start + $cxxlength=$i; + $j=digitoptimize(); + # Start symbols are different from switch symbols + if($cxxoutout[0]==99){ + $cxxoutout[0]=105; + }elsif($cxxoutout[0]==100){ + $cxxoutout[0]=104; + }else{ + $cxxoutout[0]=103; + } + # calculate checksum and build output string + for($i=1,$sum=$cxxoutout[0];$i<$j;$i++){ + $sum+=$cxxoutout[$i]*$i; + } + $sum %=103; + $cxxoutout[$j]=$sum; + $j++; + $cxxoutout[$j]=106; #stop sign + $srcstr=""; + for($i=0;$i<($j+1);$i++){ + $srcstr .= sprintf "%02X", $cxxoutout[$i]; + } + $srcstr .= "@@"; + return $srcstr; +} + +################################################## +# do code 93 -- it's easy +################################################## +sub codxciii{ + my $srcstr=shift; + my $cstbl='0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%()[]'; + my ($i, $j, $sumc, $sumh, $checkchar); + $sumc=$sumh=0; + for ($i=0;$i<length($srcstr);$i++){ + $j=index($cstbl, substr($srcstr,$i,1),0); + # $j is the check value of the character. + $sumh=$sumh+$j; + $sumc=$sumc+$sumh; + } + $srcstr=$srcstr . substr($cstbl,$sumc%47,1); + $sumc=$sumc+$sumh+($sumc%47); + $checkchar=substr($cstbl,$sumc%47,1); + $srcstr = $srcstr . $checkchar; + $srcstr =~ s/\$/\\\$/g; + $srcstr =~ s/%/\\%/g; + $srcstr =~ s/ /\\char\'040/g; + return $srcstr; +} + +################################################## +# we got both input and output file, +# we defined all subroutines, +# so here we go... +# +use vars qw ( $line $embedded $embtmp $mycod $eastring); + +open(EINGABE, $ifname) or die "No file"; +open(AUSGABE, $ofname) or die "Can't open output file"; +while($line=<EINGABE>){ + # save 0.0005 (est.) % running time + unless ($line =~ /^\\/){ + print AUSGABE $line; + next; + } + if($line =~ /^\\embed{(\d+)\}/){ + $embedded=$1; + print AUSGABE $line; + }elsif($line =~ /^\\eean\{(\d+)\}(.*)/){ + # embedded EAN + $embtmp=substr($embedded,0,12-length($1)); + $mycod=$embtmp . $1; + $eastring=eancod($mycod); + print AUSGABE "\\EAN{$eastring}$2 % embedded($1)\n"; + }elsif ($line =~ /^\\ean\{(\d+)\}(.*)/){ + # normal ean + $eastring=eancod($1); + print AUSGABE "\\EAN{$eastring}$2 %($1)\n"; + }elsif($line =~ /^\\isbn\{([\dxX]+)\}(.*)/){ + # isbn to be embedded + $embtmp=substr($1,0,9); + $mycod='978' . $embtmp; + $eastring=eancod($mycod); + print AUSGABE "\\EAN{$eastring}$2 % ISBN($1)\n"; + }elsif($line =~ /^\\cxxviii\{(.+)\}(.*)/){ + # code 128 + $eastring=codcxxviii($1); + print AUSGABE "\\CXXVIII $eastring $2 % Code128($1)\n"; + }elsif($line =~ /^\\xciii\{(.+)\}(.*)/){ + # code 93 + $eastring=codxciii($1); + print AUSGABE "\\XCIII{$eastring}$2 % Code93($1)\n"; + }else { + print AUSGABE $line; + } +} + +################################################## +# we're done, so we do some cleanup and quit. +close (EINGABE); +close (AUSGABE); +print "Done.\n"; + +################################################## +# what we do here is called +# 'falling off the edge of the world' +# in the camel book. +################################################## diff --git a/Master/texmf-dist/doc/latex/barcodes/eandoc.pdf b/Master/texmf-dist/doc/latex/barcodes/eandoc.pdf Binary files differnew file mode 100644 index 00000000000..5903a0c5084 --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/eandoc.pdf diff --git a/Master/texmf-dist/doc/latex/barcodes/eandoc.tex b/Master/texmf-dist/doc/latex/barcodes/eandoc.tex new file mode 100644 index 00000000000..97cadb569ba --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/eandoc.tex @@ -0,0 +1,357 @@ +%% +%% This is file `eandoc.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% barcodes.dtx (with options: `eandoc') +%% As this is a generated file, you may perhaps not want to edit it. +%% This file belongs to the barcode package. +%% It may be of no great use without the rest of the barcode package. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +\documentclass{article} +\begin{document} +\author{Peter Willadt} +\title{EAN Barcodes by \TeX{} an Metafont} +\date{1998-01-24} +\maketitle +\begin{abstract} +This article documents the use of the font {\tt wlean.mf}. With the font, +there also comes an auxiliary Perl file for preprocessing TeX source. +Its use is also documented here. +\end{abstract} + +\section{Legal Restrictions and Introduction} + +All the files in this package are subject to the \LaTeX\ Project Public +License. Also I got a special wish: If you find this package useful, +support TUG or your local \TeX\ user group. + +The complete contents of this package is +described in the file {\tt README}. That file also contains some +information about the use of the other barcode fonts that are +contained. For more information about these other files you may want +to read an article that has appeared in the december, 1997 issue of +{\em TUGboat}. Please see also the remarks in the section {\em +Address} later in this file. + +\section{About {\sc ean}} + +In stores, {\sc upc} and {\sc ean} codes are widely used for automatic +identification, pricing etc. {\sc ean} consist of either eight or +thirteen digits. Twelve digit {\sc upc} codes are like thirteen digit +{\sc ean} with the first digit equal to zero. {\sc ean} specifications +do not only +require bars, also the encoded number has to be written in plain text, +in case a reader is defective or the code is too hard to read. {\sc +ean} is a high-density code, and so it is highly vulnerable. + +\subsection{Coding} + +The last digit of an {\sc ean} is a weighted mod 10 checksum. Digits +are alternatingly multiplied by 1 or 3. The so calculated sum over all +digits has to be divisible by ten without any remainder. + +There are three different {\sc ean} character sets labeled A, B, and +C. Eight digit {\sc ean} codes use character sets A and C, {\sc ean} +codes with thirteen digits use all three character sets---see below. + +\begin{verse} +{\sc ean} with eight digits consists of:\\ +a sidebar\\ +the first four digits (coded in character set A),\\ +the middle separator,\\ +the other four digits (coded in character set C)\\ +another sidebar. +\end{verse} + +The first half of an {\sc ean} code with thirteen digits is coded in +the character sets A and B, the second half in character set C. The +coding of the very first digit is hidden in the varying use of the +character sets A and B. A C programmer might use the following table +and algorithm to decide which character set to use for digits 2--7: + +\begin{verbatim} +static UBYTE abtab[10][6]={ + {0,0,0,0,0,0}, /* 0 */ + {0,0,1,0,1,1}, /* 1 */ + {0,0,1,1,0,1}, /* 2 */ + {0,0,1,1,1,0}, /* 3 */ + {0,1,0,0,1,1}, /* 4 */ + {0,1,1,0,0,1}, /* 5 */ + {0,1,1,1,0,0}, /* 6 */ + {0,1,0,1,0,1}, /* 7 */ + {0,1,0,1,1,0}, /* 8 */ + {0,1,1,0,1,0} /* 9 */ +}; + +char eancode[18]; +char eansource[14]="4025700001030"; + +eancode[0]=eansource[0]; +eancode[1]=' '; +eancode[2]='+'; +for(i=1;i<7;i++) + eancode[i+2]='A'+eansource[i]-'0' + +abtab[eansource[0]-'0'][i-1]*('a'-'A'); +/* then the middle separator, digits 7--13, + * and the final + sign */ +\end{verbatim} + +A zero means to use character set A and a one means to use character +set B for the respective digit. The printed code of an {\sc ean} 13 +consist of the following elements, from left to right: + +\begin{verse} +The first digit in human-readable form\\ +an {\sc ean} sidebar\\ +six digits in character sets A or B\\ +the {\sc ean} middle separator\\ +six digits in character set C\\ +another {\sc ean} sidebar +\end{verse} + +Magazines or codes with pricing have a so called extension following +the main code with some fixed distance. This extension consists of one +sidebar and two or five digits. As I have no full {\sc ean} +documentation at hand at the time of this writing, I am sorry that I +am not able to tell you more about this. + +The {\sc ean} digits themselves obey to the following rules: Each +digit takes seven units of space. Some of the seven elements are +white, others are black. Digits from character set A always are white +at the left edge and black at the right, and they always have an odd numer +of black elements. Digits from character set B are quit similiar, but +they have an even number of black elements. Digits from Character set C +always start with a black element and have an even number of +black elements. The rightmost element in character set C is always white. +The sidebars are three elements wide, the middle separator takes five +elements. + +\subsection{What {\sc ean} numbers may I use?} + +For inhouse use, you may use any 13-digit {\sc ean} that starts with a +2. If you want to have your products sold elsewhere, you have to buy a +set of {\sc ean} numbers from the organisation in your country that +holds these numbers. For germany, this organisation is the {\em +Zentrale f\"ur Coorganisation} in Cologne. Almost any country has a +similiar organisation. + +The first digit or sometimes the first two digits code the country of +origin, the next five to six digits code the manufacturer, the eigth +to twelfth digits are for free use by the manufacturer. The +thirteenth digit is, as explained above, a checksum. {\sc ean} do not +contain any qualifiers, so if you get an {\sc ean} from somewhere, you +may find out about the country of origin and about the manufacturer of +the product, but if you want to know more, you have to contact the +manufacturer. + +\section{Using {\tt wlean.mf}} + +{\tt wlean.mf} is rather raw. It contains all three {\sc ean} +character sets within one single font, but at different places. +The character sets A, B, C, and the digits are +featured through the following characters: + +\begin{verse} +0 to 9 yield the digits from 0 to 9\\ +A to J yield the codes from character set A\\ +a to j yield the codes from character set B\\ +K to T yield the codes from character set C\\ ++ makes the left and right sidebar and\\ +- makes the middle sign +\end{verse} + +So, to code the number {\tt 2099993098253}, you have to write\\ +\verb*|{\eanfont2 +AJjjJd-KTSMPN+}|. The space is necessary to separate +the leading 2 from the barcode. + +{\tt wlean.mf} does not use true {\sc ocr} digits, as it should. As +the digits will not be used for {\sc ocr}, I do not consider this as +a serious restriction. If you really need {\sc ocr} digits, there is +an {\sc ocr} font on {\sc ctan}. And in {\em TUGboat}, there has been +a publication about {\sc ean}, where \TeX{} draws the bars and +the {\sc ocr} font prints the digits, see [1]. + +{\tt wlean.mf} uses the normal {\sc ean} dimensions. If you would like +lower bars---in contradiction to the {\sc ean} rules---you have to edit +the source. The rules also make recommendations about the scaling. To +be fully compatible, this font may be scaled 0.8, 0.9, 1, 1.2, 1.4, +1.5, 1.7, 1.85, or 2 times the original size. With a 300 dpi printer, +I do not recommend using sizes$<1.0$. + +\subsection{Installation} + +The installation itself is pretty mundane, like with any plain font. +Just copy {\tt wlean.mf} to a location where Metafont can find +it. Then invoke Metafont to create a {\sc tfm} file. Move this {\sc +tfm} file where \TeX{} can find it. Type in the example at the end of +this file and run it through \TeX{}. Then call Metafont again to +produce a font suitable for your printer or previewer and move this +font to an appropriate location. You may also want to edit {\tt +codean.pl} to run on your shell. For this purpose you have to read +your system's documentation or the documentation that comes with Perl. + +\subsection{Making readable output} + +Don't make {\sc ean} too small. With a 300 dpi printer, you should not +use this font with magnification$<1$; {\tt scaled 1200} will be okay. +If you want to do mass production, go to somebody with a barcode +reader and check your output, {\em before} you loose money. You also +should consider changes in the blackness that may be caused by +production printing devices. And, of course, you should only use +colours that can be used with barcode reading devices. Especially, do +not use red and watch for much contrast between the colour you print +and the colour of the paper. + +\subsection{Coding the numbers} + +You will perhaps not want to write something as ugly and error-prone +as \verb*|{\eanfont2 +AJjjJd-KTSMPN+}| manually. So you have to use a +preprocessor\footnote{See bcfaq.tex for \TeX{} code to go without +preprocessing. It is very fine.}. With {\tt wlean.mf} there comes a +tiny Perl program ({\tt codean.pl}) that does preprocessing within +your \TeX{} sources\footnote{codean.pl in the meantime also handles +code 128. See bcfaq.tex}. + +The \TeX{} file to be filtered may contain any number of lines +that have one of the following commands starting at the leftmost position. + +\begin{itemize} +\item \verb|\ean{|{\em12 or 13 digit number}\verb|}| +The number will be coded as {\sc ean}. If it is only 12 digits long, the +checksum will be calculated, too. + +\item \verb|\embed{|{\em12 or 13 digit number}\verb|}| +The number is used as a base for embedding article numbers \&c.\ +within an {\sc ean}. + +\item \verb|\eean{|{\em number with at most 11 digits}\verb|}| +This number is to be embedded within an {\sc ean}. + +\item \verb|\isbn{|{\em valid ISBN}\verb|}| An {\sc isbn} to +make an embedded {\sc ean} of. +\end{itemize} + +Let's look at an example: You want the {\sc isbn} {\tt0-201-13448-9} +to be embedded. So you write \verb|\isbn{0201134489}|, but you might +also use the embedding method and write +\verb|\embed{9780000000000}| and, somewhere later in the file, +\verb|\eean{020113448}|. In this latter case you have to omit the last digit, +as {\sc isbn} loose their check digit in favour of the {\sc ean} check digit. +Anyway you do it, you get your command replaced by +\verb|\EAN{|{\em13-digit-number-coded-strange}\verb|}| in the output +file. + +But embedding is especially useful if you also write the program that +reads the barcodes. This program might then extract your article +number from an {\sc ean} starting with {\tt20}, eg. + +What you have to do is, of course, to use stub definitions for the +three macros mentioned above---as they shall never actually be +typeset---and to use a valid definition for \verb|\EAN|. Then you run +your \TeX{} source through {\tt codean.pl}. This program takes as +first parameter the name of your original file and as second parameter +the name of your destination file. If you omit the parameters, you will +be asked for them. + +You may of course also peek the source of {\tt codean.pl} to see how +{\sc ean} checksums are calculated, and so on. + +\subsection{Example} + +Here is a full example. +Use this \TeX{} source: + +\begin{verbatim} +\font\eanfont=WLEAN +\def\ean#1{\message{Call codean.pl}} +\def\eean#1{\message{Call codean.pl}} +\def\isbn#1{\message{Call codean.pl}} +\def\embed#1{} +\def\EAN#1{\vbox{\vskip10pt\eanfont#1\vskip10pt}} + Now, something to do: +\ean{4025700001030} % or, without checksum: +\ean{402570000103} +\embed{2500000000000} +\eean{123} +\isbn{0201134489} +\end{verbatim} + +Having run your file through {\tt codean.pl}, the lines after the percent +sign look like this: + +\begin{verbatim} + Now, something to do: +\EAN{4 +AcFHaa-KKLKNK+} % or, without checksum: %(4025700001030) +\EAN{4 +AcFHaa-KKLKNK+} %(402570000103) +\embed{2500000000000} +\EAN{2 +FAaaAa-KKLMNT+} % embedded(123) +\EAN{9 +HiaCaB-LNOOSN+} % ISBN(0201134489) +\end{verbatim} + +Running this file through \TeX{}, you get {\sc dvi} output containig +{\sc ean} barcodes. Perhaps you wonder why there is not even a +single {\sc ean} contained within this documentation. The reason is +quite simple: You should be able to read the docs {\em before} you +have installed the font. But now is the right time to try the example +on your own. Better yet, you may code an {\sc ean} where you have +taken the number from something like your favourite candy and then, +having printed it, you may compare the bars. This is a nice way to +spend your evenings. I actually started deciphering {\sc ean} codes in +this way, several years ago. + +\section{The End} + +\subsection{Address} + +Just in case you want to write to me, here is my address---but +please note: I am not the {\sc ean} guru. + +\begin{verbatim} +Peter Willadt +75177 Pforzheim +Germany +email: Willadt@t-online.de +\end{verbatim} + +I also would appreciate if only one version of the material contained +in this package is distributed. So if you have any corrections, +suggestions, \&c., please do not hesitate to send them to me to +incorporate them within this package. + +\subsection{Acknowledgement} + +I want to express my special thanks to Barbara Beeton for proofreading +and making valuable suggestions. If there are still any typos or +illegibilities, that is due to the fact that I had to change some +things later on. + +\begin{thebibliography}{1} + +\bibitem{bc:ean} +Peter Ol{\v{s}}ak. +\newblock The {\sc ean} barcodes by {\TeX}. +\newblock {\em TUGboat}, 15(4):459--464, 1994. + +\end{thebibliography} + +\end{document} +\endinput +%% +%% End of file `eandoc.tex'. diff --git a/Master/texmf-dist/doc/latex/barcodes/examples.tex b/Master/texmf-dist/doc/latex/barcodes/examples.tex new file mode 100644 index 00000000000..e7d9b1a7d6a --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/examples.tex @@ -0,0 +1,139 @@ +%% +%% This is file `examples.tex', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% barcodes.dtx (with options: `example') +%% As this is a generated file, you may perhaps not want to edit it. +%% This file belongs to the barcode package. +%% It may be of no great use without the rest of the barcode package. +%% \CharacterTable +%% {Upper-case \A\B\C\D\E\F\G\H\I\J\K\L\M\N\O\P\Q\R\S\T\U\V\W\X\Y\Z +%% Lower-case \a\b\c\d\e\f\g\h\i\j\k\l\m\n\o\p\q\r\s\t\u\v\w\x\y\z +%% Digits \0\1\2\3\4\5\6\7\8\9 +%% Exclamation \! Double quote \" Hash (number) \# +%% Dollar \$ Percent \% Ampersand \& +%% Acute accent \' Left paren \( Right paren \) +%% Asterisk \* Plus \+ Comma \, +%% Minus \- Point \. Solidus \/ +%% Colon \: Semicolon \; Less than \< +%% Equals \= Greater than \> Question mark \? +%% Commercial at \@ Left bracket \[ Backslash \\ +%% Right bracket \] Circumflex \^ Underscore \_ +%% Grave accent \` Left brace \{ Vertical bar \| +%% Right brace \} Tilde \~} +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% This file documents look and use of +%% the barcodes this package belongs to. +%% It may be freely used without any +%% further permission. +%% You should have received this file as part of +%% the barcode package. +%% +%% Author: Peter Willadt +%% Date: 1997-11-29 +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% +%% Note: +%% 1. This file has already been run through codean.pl +%% +%% 2. You need to have the fonts installed, of course. +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Fonts +%% +\font\xlix=wlc39 scaled 2000 +\font\itf=wlitf scaled 2000 +\font\cdb=wlcdb scaled 2000 +\font\eanfont=WLEAN scaled 1200 +\font\fntcxx=wlc128 scaled \magstep3 +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Inputs +%% +\input code39.tex +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Def's +%% +%% for EAN +\def\ean#1{\message{Call codean.pl}} +\def\eean#1{\message{Call codean.pl}} +\def\isbn#1{\message{Call codean.pl}} +\def\embed#1{} +\def\EAN#1{\vbox{\hsize=0.4\hsize\vskip10pt\eanfont#1\vskip10pt}} +%% for Code 128 +\def\CXXVIII{\bgroup\fntcxx\let\next\hexchar\next} +\def\hexchar#1#2{\if#1@\global\let\next\egroup\else\char"#1#2\fi\next} +%% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +%% Here we go +\parindent0pt +Hello, this is a test sheet of the barcode fonts. + +At first, we deal with code 39. Code 39 is represented in this package +both in form of a native font (Metafont-source) and in form of +\TeX{}-macros. code 39 features low-density alphanumeric encoding. + +Here you may see how HELLO looks like in code 39 (the start and stop +sign is mapped to @, if you're curious, so in the source to this sheet +I have written {\tt@HELLO@} after having selected the proper +font). This first example uses the font. + +{\xlix@HELLO@} + +Another approach is to use \TeX{} macros to make up bars. Here is the +same HELLO with macros: Please note that for the macro version, you +have to use the underbar if you want to have a space coded. + +\begincodethirtynine{HELLO}\endcodethirtynine + +Interleaved two-of-five (ITF for short) features high-density +numerical-only encoding. Your code has to have an even number of +digits. The start sign is mapped to $+$, the end sign to $-$. +So, to code 0123456789, you type {\tt+0123456789-}, and the result +looks like this: + +{\itf+0123456789-} + +If you still have not got enough of barcoding, here is codabar. Here +you got four sets of start/stop signs that get decoded together with +the numbers. The start/stop sign pairs are a/t, b/n, c/*, and d/e. So +{\tt a12345t} looks like this:\bigskip + +{\cdb a12345t} + +Now you should have a look at code 128. The bars itself look sometimes +disrupted; this is due to the fact that the widest elements are four +times as wide as the narrowest. Code 128 enables you to code any 7-bit +ascii character. With digits only, it is as efficent as itf. The bad +news is the preprocessing required, so you have to read the docs. The +following bars mean {\tt Hallo123456}\bigskip + +\CXXVIII 6828414C4C4F630C2238506A@@ % Code128(Hallo123456) + +And, last and perhaps most important, the EAN font. Read {\tt +eandoc.tex} to find out how these are coded, here is just the output +of the example code mentioned there: +\embed{2500000000000} + +\line{ +\EAN{4 +AcFHaa-KKLKNK+} % or, without checksum: %(4025700001030) +\hfil +\EAN{4 +AcFHaa-KKLKNK+} %(402570000103) +} +\line{ +\EAN{2 +FAaaAa-KKLMNT+} % embedded(123) +\hfil +\EAN{9 +HiaCaB-LNOOSN+} % ISBN(0201134489) +} + +And that's all. Perhaps you may think that this is not a beautiful +document---but barcodes aren't beautiful. As long as reading devices +do not have \ae{}sthetic feelings, I don't regard this as a problem. +\bye +\endinput +%% +%% End of file `examples.tex'. diff --git a/Master/texmf-dist/doc/latex/barcodes/install.bat b/Master/texmf-dist/doc/latex/barcodes/install.bat new file mode 100644 index 00000000000..4c37d1d712c --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/install.bat @@ -0,0 +1,108 @@ +@echo off
+echo off
+rem Installation of the barcode fonts
+rem willadt 1999-05-29
+rem you have to set the following variable
+rem according to your system
+set TEXMF=C:\TEXMF
+rem further down, you need not change anything
+rem *******************************************
+rem under your TEXMF directory, there should be
+rem /fonts/source/public
+rem /fonts/tfm/public
+rem /fonts/vf/public
+rem /tex/generic/misc
+rem /tex/latex/misc
+rem plain TeX should be run by 'tex filename'
+rem latex2e should be run by 'latex filename'
+rem vptovf should be run by 'vptovf x y z'
+cls
+IF NOT %1a==a SET TEXMF=%1
+echo We are going to install the barcode fonts
+echo to the directory branch %TEXMF%
+echo If you don't want that,
+echo or if this is not correct, press CTRL-BREAK now,
+echo else
+pause
+echo Ok, we're going...
+echo *****************************************************
+echo checking/making directories..........................
+echo ...VF dir
+if not exist %TEXMF%\fonts\vf\public\NUL md %TEXMF%\fonts\vf\public
+if not exist %TEXMF%\fonts\vf\public\NUL goto error
+echo ...MF dir
+if not exist %TEXMF%\fonts\source\public\NUL md %TEXMF%\fonts\source\public
+if not exist %TEXMF%\fonts\source\public\misc\NUL md %TEXMF%\fonts\source\public\misc
+if not exist %TEXMF%\fonts\source\public\misc\NUL goto error
+echo ...TFM dir
+if not exist %TEXMF%\fonts\tfm\public\NUL md %TEXMF%\fonts\tfm\public
+if not exist %TEXMF%\fonts\tfm\public\misc\NUL md %TEXMF%\fonts\tfm\public\misc
+if not exist %TEXMF%\fonts\tfm\public\misc\NUL goto error
+echo ...sty dir
+if not exist %TEXMF%\tex\latex\misc\NUL md %TEXMF%\tex\latex\misc
+if not exist %TEXMF%\tex\latex\misc\NUL goto error
+echo ...tex (generic) dir
+if not exist %TEXMF%\tex\generic\misc\NUL md %TEXMF%\tex\generic\misc
+if not exist %TEXMF%\tex\generic\misc\NUL goto error
+echo *****************************************************
+echo Unpacking............................................
+call tex barcodes.ins
+rem *******************
+rem * at first the vf's
+echo *****************************************************
+echo Making and moving VF files...........................
+FOR %%a IN (wlcdb wlcf39 wlitf) DO vptovf %%a.vpl %%a.vf %%a.tfm
+copy *.vf %TEXMF%\fonts\vf\public
+del wl*.vf
+rem *******************
+rem * then the mf's
+echo *****************************************************
+echo Moving MF files......................................
+copy *.mf %TEXMF%\fonts\source\public\misc
+rem *******************
+rem * then the tfm's
+echo *****************************************************
+echo Moving tfm files.....................................
+copy *.tfm %TEXMF%\fonts\tfm\public\misc
+rem *******************
+rem * TeX files
+echo *****************************************************
+echo Moving .sty files....................................
+copy *.sty %TEXMF%\tex\latex\misc
+rem *******************
+rem * TeX files
+echo *****************************************************
+echo Moving TeX files.....................................
+copy code39.tex %TEXMF%\tex\generic\misc
+rem *******************
+rem * documentation
+echo *****************************************************
+echo Now running LaTeX on the documentation...............
+call latex bcfaq
+call latex bcfaq
+call latex eandoc
+call latex eandoc
+echo *****************************************************
+echo now comes the hardest part:
+echo running the examples file through TeX................
+call tex examples
+goto ende
+:error
+echo *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+echo There was an error, sorry.
+echo Please install by hand.
+echo *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
+goto schluss
+:ende
+cls
+echo *****************************************************
+echo We're done. Have fun.
+echo You should update your filename database, by the way.
+echo and you will perhaps want to install codean.pl.
+echo If you do not want to have temporary files removed,
+echo press CTRL-BREAK now!
+echo else
+pause
+for %%a in (*.log wl*.vf wl*.tfm) do del %%a
+echo perhaps you can do more cleanup, I'm really done now.
+:schluss
diff --git a/Master/texmf-dist/doc/latex/barcodes/wlcdb.vpl b/Master/texmf-dist/doc/latex/barcodes/wlcdb.vpl new file mode 100644 index 00000000000..6beb186f4a9 --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/wlcdb.vpl @@ -0,0 +1,231 @@ +(FAMILY BARCODE) +(DESIGNSIZE D 12) +(DESIGNUNITS D 14) +(COMMENT written by Peter Willadt August 16, 1997) +(COMMENT Sorry, e,n,t and star not coded) +(COMMENT Use @ as delimiter) +(FONTDIMEN + (SLANT R 0) + (SPACE D 10) + (SHRINK D 0) + (STRETCH D 0) + (XHEIGHT R 10) + (QUAD D 10) + ) +(CHARACTER C 0 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 1 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 2 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 3 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 2)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 4 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 5 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 6 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 7 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 8 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C 9 + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 45 (COMMENT Minus Sign) + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 36 (COMMENT Dollar) + (CHARWD D 10) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 58 (COMMENT Colon) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 47 (COMMENT Slash) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 46 (COMMENT Dot) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 43 (COMMENT Plus Sign) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C a (COMMENT Start a) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C b (COMMENT Start b) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C c (COMMENT Start c) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C d (COMMENT Start d) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 2)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C t (COMMENT Stop t) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C n (COMMENT Stop n) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 42 (COMMENT Stop Star) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C e (COMMENT Stop e) + (CHARWD D 11) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 16 R 1)(MOVERIGHT R 1) + (SETRULE R 16 R 1)(MOVERIGHT R 2) + (SETRULE R 16 R 2)(MOVERIGHT R 2) + (SETRULE R 16 R 1)(MOVERIGHT R 1) + ) + ) + diff --git a/Master/texmf-dist/doc/latex/barcodes/wlcf39.vpl b/Master/texmf-dist/doc/latex/barcodes/wlcf39.vpl new file mode 100644 index 00000000000..d81f877a55b --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/wlcf39.vpl @@ -0,0 +1,1334 @@ +(COMMENT Code 39, full ascii version) +(COMMENT written by Peter Willadt, 1998-04-22) +(COMMENT Start-Stop sign is character 128, also mapped to @@) +(FAMILY BARCODE) +(DESIGNSIZE D 12) +(DESIGNUNITS D 13) +(CODINGSCHEME ASCII) +(SEVENBITSAFEFLAG FALSE) +(FONTDIMEN + (SLANT R 0) + (SPACE D 14) + (SHRINK D 0) + (STRETCH D 0) + (XHEIGHT R 10) + (QUAD D 14) + ) +(MAPFONT D 0 (FONTNAME wlcf39)) +(LIGTABLE + (LABEL C @) + (LIG C @ D 128) + (STOP) + (LABEL C $) + (LIG/> C A D 129) (COMMENT replace by char 129 if followed by A) + (LIG/> C B D 129) (COMMENT replace by char 129 if followed by B) + (LIG/> C C D 129) + (LIG/> C D D 129) + (LIG/> C E D 129) + (LIG/> C F D 129) + (LIG/> C G D 129) + (LIG/> C H D 129) + (LIG/> C I D 129) + (LIG/> C J D 129) + (LIG/> C K D 129) + (LIG/> C L D 129) + (LIG/> C M D 129) + (LIG/> C N D 129) + (LIG/> C O D 129) + (LIG/> C P D 129) + (LIG/> C Q D 129) + (LIG/> C R D 129) + (LIG/> C S D 129) + (LIG/> C T D 129) + (LIG/> C U D 129) + (LIG/> C V D 129) + (LIG/> C W D 129) + (LIG/> C X D 129) + (LIG/> C Y D 129) + (LIG/> C Z D 129) + (STOP) + (LABEL C /) + (LIG/> C A D 130) (COMMENT replace by char 130 if followed by A) + (LIG/> C B D 130) (COMMENT replace by char 130 if followed by B) + (LIG/> C C D 130) + (LIG/> C D D 130) + (LIG/> C E D 130) + (LIG/> C F D 130) + (LIG/> C G D 130) + (LIG/> C H D 130) + (LIG/> C I D 130) + (LIG/> C J D 130) + (LIG/> C K D 130) + (LIG/> C L D 130) + (LIG/> C M D 130) + (LIG/> C N D 130) + (LIG/> C O D 130) + (LIG/> C P D 130) + (LIG/> C Q D 130) + (LIG/> C R D 130) + (LIG/> C S D 130) + (LIG/> C T D 130) + (LIG/> C U D 130) + (LIG/> C V D 130) + (LIG/> C W D 130) + (LIG/> C X D 130) + (LIG/> C Y D 130) + (LIG/> C Z D 130) + (STOP) + (LABEL C +) + (LIG/> C A D 131) (COMMENT replace by char 131 if followed by A) + (LIG/> C B D 131) (COMMENT replace by char 131 if followed by B) + (LIG/> C C D 131) + (LIG/> C D D 131) + (LIG/> C E D 131) + (LIG/> C F D 131) + (LIG/> C G D 131) + (LIG/> C H D 131) + (LIG/> C I D 131) + (LIG/> C J D 131) + (LIG/> C K D 131) + (LIG/> C L D 131) + (LIG/> C M D 131) + (LIG/> C N D 131) + (LIG/> C O D 131) + (LIG/> C P D 131) + (LIG/> C Q D 131) + (LIG/> C R D 131) + (LIG/> C S D 131) + (LIG/> C T D 131) + (LIG/> C U D 131) + (LIG/> C V D 131) + (LIG/> C W D 131) + (LIG/> C X D 131) + (LIG/> C Y D 131) + (LIG/> C Z D 131) + (STOP) + (LABEL C %) + (LIG/> C A D 132) (COMMENT replace by char 132 if followed by A) + (LIG/> C B D 132) (COMMENT replace by char 132 if followed by B) + (LIG/> C C D 132) + (LIG/> C D D 132) + (LIG/> C E D 132) + (LIG/> C F D 132) + (LIG/> C G D 132) + (LIG/> C H D 132) + (LIG/> C I D 132) + (LIG/> C J D 132) + (LIG/> C K D 132) + (LIG/> C L D 132) + (LIG/> C M D 132) + (LIG/> C N D 132) + (LIG/> C O D 132) + (LIG/> C P D 132) + (LIG/> C Q D 132) + (LIG/> C R D 132) + (LIG/> C S D 132) + (LIG/> C T D 132) + (LIG/> C U D 132) + (LIG/> C V D 132) + (LIG/> C W D 132) + (LIG/> C X D 132) + (LIG/> C Y D 132) + (LIG/> C Z D 132) + (STOP) + ) +(CHARACTER D 0 + (COMMENT NUL made from percent U) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C U ) + ) + ) +(CHARACTER D 1 + (COMMENT SOH made from dollar A) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C A ) + ) + ) +(CHARACTER D 2 + (COMMENT STX made from dollar B) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C B ) + ) + ) +(CHARACTER D 3 + (COMMENT ETX made from dollar C) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C C ) + ) + ) +(CHARACTER D 4 + (COMMENT EOT made from dollar D) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C D ) + ) + ) +(CHARACTER D 5 + (COMMENT ENQ made from dollar E) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C E ) + ) + ) +(CHARACTER D 6 + (COMMENT ACK made from dollar F) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C F ) + ) + ) +(CHARACTER D 7 + (COMMENT BEL made from dollar G) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C G ) + ) + ) +(CHARACTER D 8 + (COMMENT BS made from dollar H) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C H ) + ) + ) +(CHARACTER D 9 + (COMMENT Tab made from dollar I) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C I ) + ) + ) +(CHARACTER D 10 + (COMMENT LF made from dollar J) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C J ) + ) + ) +(CHARACTER D 11 + (COMMENT VTAB made from dollar K) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C K ) + ) + ) +(CHARACTER D 12 + (COMMENT FF made from dollar L) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C L ) + ) + ) +(CHARACTER D 13 + (COMMENT CR made from dollar M) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C M ) + ) + ) +(CHARACTER D 14 + (COMMENT SO made from dollar N) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C N ) + ) + ) +(CHARACTER D 15 + (COMMENT SI made from dollar O (O like Oppossum, not like zerO)) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR D 79) + ) + ) +(CHARACTER D 16 + (COMMENT DLE made from dollar P) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C P ) + ) + ) +(CHARACTER D 17 + (COMMENT DC1 made from dollar Q) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C Q ) + ) + ) +(CHARACTER D 18 + (COMMENT DC2 made from dollar R) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C R ) + ) + ) +(CHARACTER D 19 + (COMMENT DC3 made from dollar S) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C S ) + ) + ) +(CHARACTER D 20 + (COMMENT DC4 made from dollar T) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C T ) + ) + ) +(CHARACTER D 21 + (COMMENT NAK made from dollar U) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C U ) + ) + ) +(CHARACTER D 22 + (COMMENT SY made from dollar V) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C V ) + ) + ) +(CHARACTER D 23 + (COMMENT EB made from dollar W) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C W ) + ) + ) +(CHARACTER D 24 + (COMMENT CN made from dollar X) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C X ) + ) + ) +(CHARACTER D 25 + (COMMENT EM made from dollar Y) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C Y ) + ) + ) +(CHARACTER D 26 + (COMMENT SB made from dollar Z) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 36) + (SETCHAR C Z ) + ) + ) +(CHARACTER D 27 + (COMMENT ESC made from percent A) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C A ) + ) + ) +(CHARACTER D 28 + (COMMENT FS made from percent B) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C B ) + ) + ) +(CHARACTER D 29 + (COMMENT GS made from percent C) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C C ) + ) + ) +(CHARACTER D 30 + (COMMENT RS made from percent D) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C D ) + ) + ) +(CHARACTER D 31 + (COMMENT US made from percent E) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C E ) + ) + ) +(CHARACTER D 32 + (COMMENT SPC) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 33 + (COMMENT exclamation made from slash A) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C A ) + ) + ) +(CHARACTER D 34 + (COMMENT double quotes made from slash B) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C B ) + ) + ) +(CHARACTER D 35 + (COMMENT number sign made from slash C) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C C ) + ) + ) +(CHARACTER D 36 + (COMMENT dollar) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 37 + (COMMENT percent) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 38 + (COMMENT ampersand made from slash F) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C F ) + ) + ) +(CHARACTER D 39 + (COMMENT quote made from slash G) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C G ) + ) + ) +(CHARACTER D 40 + (COMMENT open brace made from slash H) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C H ) + ) + ) +(CHARACTER D 41 + (COMMENT close brace made from slash I) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C I ) + ) + ) +(CHARACTER D 42 + (COMMENT asterisk made from slash J) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C J ) + ) + ) +(CHARACTER D 43 + (COMMENT plus) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 44 + (COMMENT comma made from slash L) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C L ) + ) + ) +(CHARACTER D 45 + (COMMENT minus) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 46 + (COMMENT dot) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 47 + (COMMENT slash) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 48 + (COMMENT Digit 0) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 49 + (COMMENT digit 1) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 50 + (COMMENT digit 2) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 51 + (COMMENT digit 3) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 52 + (COMMENT digit 4) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 53 + (COMMENT digit 5) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 54 + (COMMENT digit 6) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 55 + (COMMENT digit 7) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 56 + (COMMENT digit 8) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 57 + (COMMENT digit 9) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 58 + (COMMENT colon made from slash Z) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 47) + (SETCHAR C Z ) + ) + ) +(CHARACTER D 59 + (COMMENT semicolon made from percent F) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C F ) + ) + ) +(CHARACTER D 60 + (COMMENT less made from percent G) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C G ) + ) + ) +(CHARACTER D 61 + (COMMENT equal made from percent H) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C H ) + ) + ) +(CHARACTER D 62 + (COMMENT greater made from percent I) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C I ) + ) + ) +(CHARACTER D 63 + (COMMENT question mark made from percent J) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C J ) + ) + ) +(CHARACTER D 64 + (COMMENT @ made from percent V) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C V ) + ) + ) +(CHARACTER C A + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C B + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C C + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C D + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C E + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C F + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C G + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C H + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C I + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C J + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C K + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C L + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C M + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C N + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C O + (COMMENT uppercase letter O like in Oppossum, not zerO) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C P + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C Q + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C R + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C S + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C T + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C U + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C V + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C W + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C X + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER C Y + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 2)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER C Z + (COMMENT uppercase letter) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 91 + (COMMENT open bracket made from percent K) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C K ) + ) + ) +(CHARACTER D 92 + (COMMENT backslash made from percent L) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C L ) + ) + ) +(CHARACTER D 93 + (COMMENT close bracket made from percent M) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C M ) + ) + ) +(CHARACTER D 94 + (COMMENT hat made from percent N) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C N ) + ) + ) +(CHARACTER D 95 + (COMMENT underbar made from percent Oh (like in Oppossum, not like zero)) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C O ) + ) + ) +(CHARACTER D 96 + (COMMENT open single quote made from percent W) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C W ) + ) + ) +(CHARACTER C a + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C A) + ) + ) +(CHARACTER C b + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C B) + ) + ) +(CHARACTER C c + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C C) + ) + ) +(CHARACTER C d + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C D) + ) + ) +(CHARACTER C e + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C E) + ) + ) +(CHARACTER C f + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C F) + ) + ) +(CHARACTER C g + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C G) + ) + ) +(CHARACTER C h + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C H) + ) + ) +(CHARACTER C i + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C I) + ) + ) +(CHARACTER C j + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C J) + ) + ) +(CHARACTER C k + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C K) + ) + ) +(CHARACTER C l + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C L) + ) + ) +(CHARACTER C m + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C M) + ) + ) +(CHARACTER C n + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C N) + ) + ) +(CHARACTER C o + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C O) + ) + ) +(CHARACTER C p + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C P) + ) + ) +(CHARACTER C q + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C Q) + ) + ) +(CHARACTER C r + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C R) + ) + ) +(CHARACTER C s + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C S) + ) + ) +(CHARACTER C t + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C T) + ) + ) +(CHARACTER C u + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C U) + ) + ) +(CHARACTER C v + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C V) + ) + ) +(CHARACTER C w + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C W) + ) + ) +(CHARACTER C x + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C X) + ) + ) +(CHARACTER C y + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C Y) + ) + ) +(CHARACTER C z + (COMMENT lowercase letter made from + and uppercase letter) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C +) + (SETCHAR C Z) + ) + ) +(CHARACTER D 123 + (COMMENT open curly made from percent P) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C P) + ) + ) +(CHARACTER D 124 + (COMMENT pipeline made from percent Q) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C Q) + ) + ) +(CHARACTER D 125 + (COMMENT close curly made from percent R) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C R) + ) + ) +(CHARACTER D 126 + (COMMENT tilde made from percent S) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C S) + ) + ) +(CHARACTER D 127 + (COMMENT DEL made from percent T) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR D 37) + (SETCHAR C T) + ) + ) +(CHARACTER D 128 + (COMMENT start/stop sign) + (CHARWD D 13) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETRULE R 13 R 1)(MOVERIGHT R 2) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 2)(MOVERIGHT R 1) + (SETRULE R 13 R 1)(MOVERIGHT R 1) + ) + ) +(COMMENT the following characters are used instead of the + real characters by the ligature program if use of the real + characters would lead to a misinterpretation) +(CHARACTER D 129 + (COMMENT dollar made from slash D) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C /) + (SETCHAR C D) + ) + ) +(CHARACTER D 130 + (COMMENT slash made from slash O (O like oppossum, not like zerO)) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C /) + (SETCHAR C O) + ) + ) +(CHARACTER D 131 + (COMMENT plus made from slash K) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C /) + (SETCHAR C K) + ) + ) +(CHARACTER D 132 + (COMMENT percent made from slash E) + (CHARWD D 26) (CHARHT D 13) (CHARDP R 0) (CHARIC R 0) + (MAP + (SETCHAR C /) + (SETCHAR C E) + ) + ) +(COMMENT EndOfFile) diff --git a/Master/texmf-dist/doc/latex/barcodes/wlitf.vpl b/Master/texmf-dist/doc/latex/barcodes/wlitf.vpl new file mode 100644 index 00000000000..fe1e42ac6b0 --- /dev/null +++ b/Master/texmf-dist/doc/latex/barcodes/wlitf.vpl @@ -0,0 +1,1363 @@ +(FAMILY BARCODE) +(DESIGNSIZE D 12) +(DESIGNUNITS D 14) +(COMMENT written by Peter Willadt August 16, 1997) +(COMMENT updated 1997-11-08 shrunk start/stop-signs) +(COMMENT updated 1998-04-21 fixed 06 - 07 bug) +(FONTDIMEN + (SLANT R 0) + (SPACE D 14) + (SHRINK D 0) + (STRETCH D 0) + (XHEIGHT R 10) + (QUAD D 14) + ) +(LIGTABLE + (LABEL C 0) + (LIG C 0 D 1) + (LIG C 1 D 2) + (LIG C 2 D 3) + (LIG C 3 D 4) + (LIG C 4 D 5) + (LIG C 5 D 6) + (LIG C 6 D 7) + (LIG C 7 D 8) + (LIG C 8 D 9) + (LIG C 9 D 10) + (STOP) + (LABEL C 1) + (LIG C 0 D 11) + (LIG C 1 D 12) + (LIG C 2 D 13) + (LIG C 3 D 14) + (LIG C 4 D 15) + (LIG C 5 D 16) + (LIG C 6 D 17) + (LIG C 7 D 18) + (LIG C 8 D 19) + (LIG C 9 D 20) + (STOP) + (LABEL C 2) + (LIG C 0 D 21) + (LIG C 1 D 22) + (LIG C 2 D 23) + (LIG C 3 D 24) + (LIG C 4 D 25) + (LIG C 5 D 26) + (LIG C 6 D 27) + (LIG C 7 D 28) + (LIG C 8 D 29) + (LIG C 9 D 30) + (STOP) + (LABEL C 3) + (LIG C 0 D 31) + (LIG C 1 D 32) + (LIG C 2 D 33) + (LIG C 3 D 34) + (LIG C 4 D 35) + (LIG C 5 D 36) + (LIG C 6 D 37) + (LIG C 7 D 38) + (LIG C 8 D 39) + (LIG C 9 D 40) + (STOP) + (LABEL C 4) + (LIG C 0 D 61) + (LIG C 1 D 62) + (LIG C 2 D 63) + (LIG C 3 D 64) + (LIG C 4 D 65) + (LIG C 5 D 66) + (LIG C 6 D 67) + (LIG C 7 D 68) + (LIG C 8 D 69) + (LIG C 9 D 70) + (STOP) + (LABEL C 5) + (LIG C 0 D 71) + (LIG C 1 D 72) + (LIG C 2 D 73) + (LIG C 3 D 74) + (LIG C 4 D 75) + (LIG C 5 D 76) + (LIG C 6 D 77) + (LIG C 7 D 78) + (LIG C 8 D 79) + (LIG C 9 D 80) + (STOP) + (LABEL C 6) + (LIG C 0 D 81) + (LIG C 1 D 82) + (LIG C 2 D 83) + (LIG C 3 D 84) + (LIG C 4 D 85) + (LIG C 5 D 86) + (LIG C 6 D 87) + (LIG C 7 D 88) + (LIG C 8 D 89) + (LIG C 9 D 90) + (STOP) + (LABEL C 7) + (LIG C 0 D 91) + (LIG C 1 D 92) + (LIG C 2 D 93) + (LIG C 3 D 94) + (LIG C 4 D 95) + (LIG C 5 D 96) + (LIG C 6 D 97) + (LIG C 7 D 98) + (LIG C 8 D 99) + (LIG C 9 D 100) + (STOP) + (LABEL C 8) + (LIG C 0 D 101) + (LIG C 1 D 102) + (LIG C 2 D 103) + (LIG C 3 D 104) + (LIG C 4 D 105) + (LIG C 5 D 106) + (LIG C 6 D 107) + (LIG C 7 D 108) + (LIG C 8 D 109) + (LIG C 9 D 110) + (STOP) + (LABEL C 9) + (LIG C 0 D 111) + (LIG C 1 D 112) + (LIG C 2 D 113) + (LIG C 3 D 114) + (LIG C 4 D 115) + (LIG C 5 D 116) + (LIG C 6 D 117) + (LIG C 7 D 118) + (LIG C 8 D 119) + (LIG C 9 D 120) + (STOP) + ) +(CHARACTER D 1 + (COMMENT 0 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 2 + (COMMENT 0 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 3 + (COMMENT 0 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 4 + (COMMENT 0 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 5 + (COMMENT 0 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 6 + (COMMENT 0 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 7 + (COMMENT 0 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 8 + (COMMENT 0 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 9 + (COMMENT 0 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 10 + (COMMENT 0 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 11 + (COMMENT 1 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 12 + (COMMENT 1 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 13 + (COMMENT 1 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 14 + (COMMENT 1 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 15 + (COMMENT 1 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 16 + (COMMENT 1 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 17 + (COMMENT 1 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 18 + (COMMENT 1 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 19 + (COMMENT 1 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 20 + (COMMENT 1 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 21 + (COMMENT 2 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 22 + (COMMENT 2 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 23 + (COMMENT 2 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 24 + (COMMENT 2 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 25 + (COMMENT 2 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 26 + (COMMENT 2 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 27 + (COMMENT 2 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 28 + (COMMENT 2 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 29 + (COMMENT 2 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 30 + (COMMENT 2 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 31 + (COMMENT 3 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 32 + (COMMENT 3 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 33 + (COMMENT 3 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 34 + (COMMENT 3 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 35 + (COMMENT 3 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 36 + (COMMENT 3 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 37 + (COMMENT 3 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 38 + (COMMENT 3 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 39 + (COMMENT 3 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 40 + (COMMENT 3 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 43 + (COMMENT Start+) + (CHARWD D 5) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 45 + (COMMENT Stop-) + (CHARWD D 5) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D48 + (COMMENT Fake numeric 0 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D49 + (COMMENT Fake numeric 1 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D50 + (COMMENT Fake numeric 2 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D51 + (COMMENT Fake numeric 3 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D52 + (COMMENT Fake numeric 4 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D53 + (COMMENT Fake numeric 5 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D54 + (COMMENT Fake numeric 6 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D55 + (COMMENT Fake numeric 7 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D56 + (COMMENT Fake numeric 8 for LIG Processing) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D57 + (COMMENT Fake numeric 9 for LIG Processing) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 61 + (COMMENT 4 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 62 + (COMMENT 4 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 63 + (COMMENT 4 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 64 + (COMMENT 4 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 65 + (COMMENT 4 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 66 + (COMMENT 4 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 67 + (COMMENT 4 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 68 + (COMMENT 4 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 69 + (COMMENT 4 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 70 + (COMMENT 4 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 71 + (COMMENT 5 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 72 + (COMMENT 5 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 73 + (COMMENT 5 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 74 + (COMMENT 5 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 75 + (COMMENT 5 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 76 + (COMMENT 5 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 77 + (COMMENT 5 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 78 + (COMMENT 5 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 79 + (COMMENT 5 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 80 + (COMMENT 5 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 81 + (COMMENT 6 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 82 + (COMMENT 6 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 83 + (COMMENT 6 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 84 + (COMMENT 6 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 85 + (COMMENT 6 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 86 + (COMMENT 6 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 87 + (COMMENT 6 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 88 + (COMMENT 6 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 89 + (COMMENT 6 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 90 + (COMMENT 6 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 91 + (COMMENT 7 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 92 + (COMMENT 7 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 93 + (COMMENT 7 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 94 + (COMMENT 7 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 95 + (COMMENT 7 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 96 + (COMMENT 7 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 97 + (COMMENT 7 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 98 + (COMMENT 7 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 99 + (COMMENT 7 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 100 + (COMMENT 7 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 101 + (COMMENT 8 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 102 + (COMMENT 8 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 103 + (COMMENT 8 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 104 + (COMMENT 8 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 105 + (COMMENT 8 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 106 + (COMMENT 8 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 107 + (COMMENT 8 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 108 + (COMMENT 8 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 109 + (COMMENT 8 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 110 + (COMMENT 8 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 111 + (COMMENT 9 and 0) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 112 + (COMMENT 9 and 1) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 113 + (COMMENT 9 and 2) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 114 + (COMMENT 9 and 3) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 115 + (COMMENT 9 and 4) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 116 + (COMMENT 9 and 5) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 117 + (COMMENT 9 and 6) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 118 + (COMMENT 9 and 7) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 2) + ) + ) +(CHARACTER D 119 + (COMMENT 9 and 8) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 2) + (SETRULE R 14 R 2)(MOVERIGHT R 1) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(CHARACTER D 120 + (COMMENT 9 and 9) + (CHARWD D 14) (CHARHT R 14) (CHARDP R 0) (CHARIC R 0.0) + (MAP + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + (SETRULE R 14 R 2)(MOVERIGHT R 2) + (SETRULE R 14 R 1)(MOVERIGHT R 1) + ) + ) +(COMMENT EndOfFile) |