modernc.org/knuth@v0.0.4/mf/testdata/trap.log (about)

     1  This is METAFONT, Version 2.71828182 (preloaded base=trap 1776.7.4)  4 JUL 1776 12:00
     2  ** &trap  trap
     3  (trap.mf
     4  {if}
     5  {known(0)}
     6  {not(true)}
     7  {false}
     8  {known("")}
     9  {true}
    10  
    11  /*\`'@#->begingroup.message(SUFFIX1)&str(SUFFIX0)&jobname&char.ASCII'`&s
    12  tr(SUFFIX2)!endgroup
    13  (SUFFIX0)<-/*\
    14  (SUFFIX1)<-`'
    15  (SUFFIX2)<-pass2
    16  {begingroup}
    17  {message}
    18  
    19  `'->begingroup'`endgroup
    20  (SUFFIX0)<-
    21  (SUFFIX1)<-`'
    22  {begingroup}
    23  
    24  '`->"\*/"
    25  {endgroup}
    26  {("\*/")&("/*\")}
    27  {jobname}
    28  {("\*//*\")&("trap")}
    29  
    30  '`->"\*/"
    31  {ASCII("\*/")}
    32  {char(92)}
    33  {("\*//*\trap")&("\")}
    34  {("\*//*\trap\")&("pass2!")}
    35  
    36  \*//*\trap\pass2!
    37  {endgroup}
    38  {outer}
    39  {let}
    40  {delimiters}
    41  
    42  ! Missing symbolic token inserted.
    43  <inserted text> 
    44                   INACCESSIBLE
    45  l.21 ...t next=\; delimiters ^~7
    46                                  ! fi
    47  Sorry: You can't redefine a number, string, or expr.
    48  I've inserted an inaccessible symbol so that your
    49  definition will be completed without mixing me up too badly.
    50  
    51  ! Extra tokens will be flushed.
    52  <to be read again> 
    53                     !
    54  l.21 ... next=\; delimiters ^~7!
    55                                   fi
    56  I've just read as much of that statement as I could fathom,
    57  so a semicolon should have been next. It's very puzzling...
    58  but I'll try to get myself back together, by ignoring
    59  everything up to the next `;'. Please insert a semicolon
    60  now in front of anything that you don't want me to delete.
    61  (See Chapter 27 of The METAFONTbook for an example.)
    62  
    63  ! Forbidden token found while scanning to the end of the statement.
    64  <inserted text> 
    65                  ;
    66  <to be read again> 
    67                     \
    68  l.22 next\
    69            ; % the second pass will now compute silently; the ...
    70  A previous error seems to have propagated,
    71  causing me to read past where you wanted me to stop.
    72  I'll try to recover; but if the error is serious,
    73  you'd better type `E' or `X' now and fix your file.
    74  
    75  {\}
    76  {batchmode}
    77  
    78  ! An expression can't begin with `endgroup'.
    79  <inserted text> 
    80                  0
    81  <to be read again> 
    82                     endgroup
    83  l.23 batchmode; ^~7,endgroup
    84                               pausing:=1; exitif p exitif bool...
    85  I'm afraid I need some sort of value in order to continue,
    86  so I've tentatively inserted `0'. You may want to
    87  delete this zero and insert something else;
    88  see Chapter 27 of The METAFONTbook for an example.
    89  
    90  ! Missing ` INACCESSIBLE' has been inserted.
    91  <to be read again> 
    92                     endgroup
    93  l.23 batchmode; ^~7,endgroup
    94                               pausing:=1; exitif p exitif bool...
    95  I found no right delimiter to match a left one. So I've
    96  put one in, behind the scenes; this may fix the problem.
    97  
    98  ! Extra `endgroup'.
    99  <recently read> endgroup
   100                          
   101  l.23 batchmode; ^~7,endgroup
   102                               pausing:=1; exitif p exitif bool...
   103  I'm not currently working on a `begingroup',
   104  so I had better not try to end anything.
   105  
   106  {pausing:=1}
   107  {exitif}
   108  {exitif}
   109  {pencircle}
   110  {endfor}
   111  ! Extra `endfor'.
   112  l.23 ...ean pen pencircle endfor
   113                                  
   114  I'm not currently working on a for loop,
   115  so I had better not try to end anything.
   116  
   117  {scantokens}
   118  {begingroup}
   119  {message}
   120  {char(0)}
   121  {("^^@")&("watch this")}
   122  ^^@watch this
   123  {-(1)}
   124  {char(-1)}
   125  {("pair p[],';")&("^^ff")}
   126  {endgroup}
   127  {pen(future pen)}
   128  {boolean(true)}
   129  {true}
   130  ! No loop is in progress.
   131  <to be read again> 
   132                     pair
   133  <scantokens> pair
   134                    p[],';^^ff
   135  <to be read again> 
   136                     path
   137  l.25 path
   138            p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
   139  Why say `exitif' when there's nothing to exit from?
   140  
   141  >> p
   142  ! Undefined condition will be treated as `false'.
   143  <to be read again> 
   144                     pair
   145  <scantokens> pair
   146                    p[],';^^ff
   147  <to be read again> 
   148                     path
   149  l.25 path
   150            p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
   151  The expression shown above should have had a definite
   152  true-or-false value. I'm changing it to `false'.
   153  
   154  {false}
   155  ! Missing `;' has been inserted.
   156  <to be read again> 
   157                     pair
   158  <scantokens> pair
   159                    p[],';^^ff
   160  <to be read again> 
   161                     path
   162  l.25 path
   163            p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
   164  After `exitif <boolean expr>' I expect to see a semicolon.
   165  I shall pretend that one was there.
   166  
   167  {pair}
   168  ! Text line contains an invalid character.
   169  <scantokens> pair p[],';^^ff
   170                              
   171  <to be read again> 
   172                     path
   173  l.25 path
   174            p[][]p,w,qw; qw=(1,-2)..(2,-1)..(2.5,0.5)..(1,2)..(...
   175  A funny symbol that I can't read has just been input.
   176  Continue, and I'll forget that it ever happened.
   177  
   178  {path}
   179  {-(2)}
   180  {-(1)}
   181  {turningnumber((xpart ',ypart '))}
   182  Path at line 25, before choices:
   183  (1,-2){curl 1}
   184   ..(2,-1)
   185   ..(2.5,0.5)
   186   ..(1,2)
   187   ..{curl 1}(0,2.5)
   188  
   189  Path at line 25, after choices:
   190  (1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
   191   ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
   192   ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
   193   ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
   194   ..(0,2.5)
   195  
   196  {(unknown path qw)=(path)}
   197  {numeric}
   198  ! Enormous number has been reduced.
   199  l.26 ...[$] ]]=10000000000000000
   200                                  ; "this string constant is in...
   201  I can't handle numbers bigger than about 4095.99998;
   202  so I've changed your constant to that maximum amount.
   203  
   204  {(p[[ [-1] ]])=(4095.99998)}
   205  ## p[[ [-1] ]]=4095.99998
   206  ! Incomplete string token has been flushed.
   207  l.26 ...g constant is incomplete
   208                                  
   209  Strings should finish on the same line as they began.
   210  I've deleted the partial string; you might want to
   211  insert another by typing, e.g., `I"new string"'.
   212  
   213  {string}
   214  ! Declared variable conflicts with previous vardef.
   215  <to be read again> 
   216                     ,
   217  l.27 string foo[]p,
   218                     p~if true:[]; p~000=char34&char200&char34;
   219  You can't use, e.g., `numeric foo[]' after `vardef foo'.
   220  Proceed, and I'll ignore the illegal redeclaration.
   221  
   222  {if}
   223  {true}
   224  {true}
   225  {char(34)}
   226  {char(200)}
   227  {(""")&("^^c8")}
   228  {char(34)}
   229  {(""^^c8")&(""")}
   230  {(unknown string p~0)=(""^^c8"")}
   231  {boolean}
   232  {fi}
   233  {showvariable}
   234  boolean.boolean=unknown boolean
   235  ! OK.
   236  l.28 ...n; showvariable boolean;
   237                                   def\\= =end enddef;
   238  
   239  {def}
   240  {picture}
   241  {show}
   242  {scantokens}
   243  {length("^^c8")}
   244  >> 1
   245  ! OK.
   246  <recently read> ;
   247                   
   248  l.29 ...w length scantokens p~0;
   249                                  
   250  
   251  {pen}
   252  ! Illegal suffix of declared variable will be flushed.
   253  <to be read again> 
   254                     [
   255  <to be read again> 
   256                     "a"
   257  l.30 pen p~[]~,q["a"
   258                      ,qq; p~1~=q=pencircle scaled mexp(-3016.5...
   259  Variables in declarations must consist entirely of
   260  names and collective subscripts, e.g., `x[]a'.
   261  Are you trying to use a reserved word in a variable name?
   262  I'm going to discard the junk I found here,
   263  up to the next comma or the end of the declaration.
   264  
   265  {pencircle}
   266  {-(3016.57654)}
   267  {mexp(-3016.57654)}
   268  {(future pen)scaled(0)}
   269  Pen polygon at line 30 (newly created):
   270  (0.5,0)
   271   .. (0,0.5)
   272   .. (-0.5,0)
   273   .. (0,-0.5)
   274   .. cycle
   275  
   276  {(unknown pen q)=(pen)}
   277  {(unknown pen p~1~)=(pen)}
   278  {transform}
   279  ! Illegal suffix of declared variable will be flushed.
   280  <to be read again> 
   281                     0
   282  l.31 transform p,pp0
   283                      ; if p=p:qq=makepen((1,0)..cycle) xscaled...
   284  Variables in declarations must consist entirely of
   285  names and collective subscripts, e.g., `x[]a'.
   286  Explicit subscripts like `x15a' aren't permitted.
   287  I'm going to discard the junk I found here,
   288  up to the next comma or the end of the declaration.
   289  
   290  {if}
   291  {((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p))=((xpart p,ypart
   292   p,xxpart p,xypart p,yxpart p,yypart p))}
   293  {true}
   294  Path at line 31, before choices:
   295  (1,0)
   296   ..cycle
   297  
   298  Path at line 31, after choices:
   299  (1,0)..controls (1,0) and (1,0)
   300   ..cycle
   301  
   302  {makepen(path)}
   303  {hex("1000")}
   304  ! Number too large (4096).
   305  <to be read again> 
   306                     ;
   307  l.31 ...cle) xscaled hex "1000";
   308                                  fi
   309  I have trouble with numbers greater than 4095; watch out.
   310  
   311  {(future pen)xscaled(4096)}
   312  ! Pen too large.
   313  <to be read again> 
   314                     ;
   315  l.31 ...cle) xscaled hex "1000";
   316                                  fi
   317  The cycle you specified has a coordinate of 4095.5 or more.
   318  So I've replaced it by the trivial path `(0,0)..cycle'.
   319  
   320  Pen polygon at line 31 (newly created):
   321  (0,0)
   322   .. cycle
   323  
   324  {(unknown pen qq)=(pen)}
   325  {fi}
   326  Path at line 32, before choices:
   327  (0,0)
   328   ..(1,0)
   329   ..(0,1)
   330   ..(0,0)
   331   ..(1,0)
   332   ..(0,1)
   333   ..cycle
   334  
   335  Path at line 32, after choices:
   336  (0,0)..controls (0.29056,-0.29056) and (0.75859,-0.30772)
   337   ..(1,0)..controls (1.51964,0.66237) and (0.66237,1.51964)
   338   ..(0,1)..controls (-0.30772,0.75859) and (-0.29056,0.29056)
   339   ..(0,0)..controls (0.29056,-0.29056) and (0.75859,-0.30772)
   340   ..(1,0)..controls (1.51964,0.66237) and (0.66237,1.51964)
   341   ..(0,1)..controls (-0.30772,0.75859) and (-0.29056,0.29056)
   342   ..cycle
   343  
   344  {makepen(path)}
   345  ! Pen cycle must be convex.
   346  <to be read again> 
   347                     ;
   348  l.32 ...)..(1,0)..(0,1)..cycle);
   349                                  
   350  The cycle you specified either has consecutive equal points
   351  or turns right or turns through more than 360 degrees.
   352  So I've replaced it by the trivial path `(0,0)..cycle'.
   353  
   354  Pen polygon at line 32 (newly created):
   355  (0,0)
   356   .. cycle
   357  
   358  {qq:=pen}
   359  {vardef}
   360  ! Missing parameter type; `expr' will be assumed.
   361  <to be read again> 
   362                     )
   363  l.33 ...ext suffix a,b endtext()
   364                                  )suffix@=show #@; p.a.b() end...
   365  You should've had `expr' or `suffix' or `text' here.
   366  
   367  {expandafter}
   368  {\}
   369  {let}
   370  
   371  \\->=end
   372  {outer}
   373  {pencircle}
   374  {(future pen)scaled(4.5)}
   375  {(future pen)yscaled(2)}
   376  Pen polygon at line 34 (newly created):
   377  (0.5,-4.5)
   378   .. (1,-4)
   379   .. (2,-2.5)
   380   .. (2.5,0)
   381   .. (2,2.5)
   382   .. (1,4)
   383   .. (0.5,4.5)
   384   .. (-0.5,4.5)
   385   .. (-1,4)
   386   .. (-2,2.5)
   387   .. (-2.5,0)
   388   .. (-2,-2.5)
   389   .. (-1,-4)
   390   .. (-0.5,-4.5)
   391   .. cycle
   392  
   393  {qq:=pen}
   394  {((6,12))-((xpart p7,ypart p7))}
   395  {((0,1))transformed((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p
   396  ))}
   397  {(x)-(x)}
   398  {(2)/(0)}
   399  >> 2
   400  ! Division by zero.
   401  <to be read again> 
   402                     ,
   403  l.35 ...)transformed p=(2/(x-x),
   404                                  3/0)transformed p;
   405  You're trying to divide the quantity shown above the error
   406  message by zero. I'm going to divide it by one instead.
   407  
   408  ! Division by zero.
   409  l.35 ...ansformed p=(2/(x-x),3/0
   410                                  )transformed p;
   411  I'll pretend that you meant to divide by 1.
   412  
   413  {((2,3))transformed((xpart p,ypart p,xxpart p,xypart p,yxpart p,yypart p
   414  ))}
   415  {((linearform,linearform))=((linearform,linearform))}
   416  ## yxpart p=-yypart p
   417  ## xxpart p=-xypart p
   418  {((-xpart p7+6,-ypart p7+12))=((linearform,linearform))}
   419  ## ypart p7=-ypart p-yypart p+12
   420  ## xpart p7=-xpart p-xypart p+6
   421  {\}
   422  {if}
   423  {string(unknown string p~[-1])}
   424  {true}
   425  {(p0.1 0.2)-(p0.1 0.2)}
   426  ! The token `endtext' is no longer a right delimiter.
   427  l.36 ...1.2-p.1.199999,1 endtext
   428                                   transformed p;
   429  Strange: This token has lost its former meaning!
   430  I'll read it as a right delimiter this time;
   431  but watch out, I'll probably miss it later.
   432  
   433  {((0,1))transformed((xpart p,ypart p,-xypart p,xypart p,-yypart p,yypart
   434   p))}
   435  {((linearform,linearform))=((linearform,linearform))}
   436  ## ypart p=-yypart p+6
   437  #### ypart p7=6
   438  ## xpart p=-xypart p+3
   439  #### xpart p7=3
   440  {(unknown path p1 2p)=((3,6))}
   441  {showstopping:=0}
   442  {showvariable}
   443  p=(-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p)
   444  p[]=pair
   445  p[][]=numeric
   446  p[][]p=unknown path
   447  p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC.
   448  p[]~=unknown boolean
   449  p~=path
   450  p~[]=unknown string
   451  p~[]~=unknown pen
   452  p~[]~[][]=unknown picture
   453  p~[-1]=unknown string p~[-1]
   454  p~0=""^^c8""
   455  p~1~=pen
   456  p[[ [] ]]=numeric
   457  p[[ [-1] ]]=4095.99998
   458  p0.1 0.2=p0.1 0.2
   459  p1 2p=path
   460  p7=(3,6)
   461  {((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))=((-xy
   462  part p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))}
   463  {let}
   464  {let}
   465  {xxpart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))
   466  }
   467  {(-xypart p)+(0.002)}
   468  {yxpart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))
   469  }
   470  {((xpart p2,ypart p2))-((xpart p1,ypart p1))}
   471  {(1)*((linearform,linearform))}
   472  {((xpart p1,ypart p1))+((linearform,linearform))}
   473  {(y)+(0.00002)}
   474  {yypart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))
   475  }
   476  {xypart((-xypart p+3,-yypart p+6,-xypart p,xypart p,-yypart p,yypart p))
   477  }
   478  {((5,y))=((yypart p,xypart p))}
   479  ## y=xypart p
   480  ## yypart p=5
   481  #### ypart p=1
   482  #### yxpart p=-5
   483  {((5,xypart p+0.00002))=((5,xypart p))}
   484  {((xpart p2,ypart p2))=((5,xypart p))}
   485  ## ypart p2=xypart p
   486  ## xpart p2=5
   487  {((-xypart p+0.002,-5))=((5,xypart p))}
   488  ## xypart p=-5
   489  #### ypart p2=-5
   490  #### y=-5
   491  #### xpart p=8
   492  #### xxpart p=5
   493  ! Inconsistent equation (off by -0.002).
   494  <to be read again> 
   495                     ;
   496  l.38 ...,y)=(yypart p,xypart p);
   497                                  
   498  The equation I just read contradicts what was said before.
   499  But don't worry; continue and I'll just ignore it.
   500  
   501  Path at line 39, before choices:
   502  (0,0)..controls (15,4) and (-15,-12)
   503   ..(4,0)
   504   ..cycle
   505  
   506  Path at line 39, after choices:
   507  (0,0)..controls (15,4) and (-15,-12)
   508   ..(4,0)..controls (17.52783,8.54388) and (-15.45978,-4.12262)
   509   ..cycle
   510  
   511  {reverse(path)}
   512  {(path)transformed((8,1,5,-5,-5,5))}
   513  {(path)=(unknown path p2 3p)}
   514  
   515  p1 2p~(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup.show(SUFFIX0);p(SUFF
   516  IX2)(SUFFIX3)((EXPR4)endgroup
   517  (SUFFIX0)<-p1 2p
   518  (SUFFIX1)<-~
   519  (SUFFIX2)<-
   520  (SUFFIX3)<-2 3p~
   521  ! A primary expression can't begin with `right delimiter that matches ('
   522  .
   523  <inserted text> 
   524                  0
   525  <to be read again> 
   526                     )
   527  l.40 ...000000001]2p~(,[2]3p~,-)
   528                                  =p~1~2[pausing];
   529  I'm afraid I need some sort of value in order to continue,
   530  so I've tentatively inserted `0'. You may want to
   531  delete this zero and insert something else;
   532  see Chapter 27 of The METAFONTbook for an example.
   533  
   534  {-(0)}
   535  (EXPR4)<-0
   536  (SUFFIX5)<-
   537  {begingroup}
   538  {show}
   539  >> Path at line 40:
   540  (3,6)
   541  
   542  
   543  p2 3p~(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup.show(SUFFIX0);p(SUFF
   544  IX2)(SUFFIX3)((EXPR4)endgroup
   545  (SUFFIX0)<-p2 3p
   546  (SUFFIX1)<-~
   547  ! Missing `,' has been inserted.
   548  <to be read again> 
   549                     (0)
   550  p1 2p~->...IX2)(SUFFIX3)((EXPR4)
   551                                  endgroup
   552  <to be read again> 
   553                     =
   554  l.40 ...00000001]2p~(,[2]3p~,-)=
   555                                  p~1~2[pausing];
   556  I've finished reading a macro argument and am about to
   557  read another; the arguments weren't delimited correctly.
   558  You might want to delete some tokens before continuing.
   559  
   560  (SUFFIX2)<-
   561  ! Missing `,' has been inserted.
   562  <to be read again> 
   563                     (0)
   564  p1 2p~->...IX2)(SUFFIX3)((EXPR4)
   565                                  endgroup
   566  <to be read again> 
   567                     =
   568  l.40 ...00000001]2p~(,[2]3p~,-)=
   569                                  p~1~2[pausing];
   570  I've finished reading a macro argument and am about to
   571  read another; the arguments weren't delimited correctly.
   572  You might want to delete some tokens before continuing.
   573  
   574  (SUFFIX3)<-
   575  ! Missing `)' has been inserted.
   576  <to be read again> 
   577                     endgroup
   578  <to be read again> 
   579                     =
   580  l.40 ...00000001]2p~(,[2]3p~,-)=
   581                                  p~1~2[pausing];
   582  I've gotten to the end of the macro parameter list.
   583  You might want to delete some tokens before continuing.
   584  
   585  (EXPR4)<-0
   586  (SUFFIX5)<-
   587  {begingroup}
   588  {show}
   589  >> Path at line 40:
   590  (8,1)..controls (-48.68579,57.68579) and (52.91974,-43.91974)
   591   ..(28,-19)..controls (-7,16) and (63,-54)
   592   ..cycle
   593  
   594  >> (8,1,5,-5,-5,5)
   595  ! Isolated expression.
   596  <to be read again> 
   597                     (
   598  p2 3p~->...;p(SUFFIX2)(SUFFIX3)(
   599                                  (EXPR4)endgroup
   600  <to be read again> 
   601                     endgroup
   602  <to be read again> 
   603                     =
   604  l.40 ...00000001]2p~(,[2]3p~,-)=
   605                                  p~1~2[pausing];
   606  I couldn't find an `=' or `:=' after the
   607  expression that is shown above this error message,
   608  so I guess I'll just ignore it and carry on.
   609  
   610  ! Extra tokens will be flushed.
   611  <to be read again> 
   612                     (
   613  p2 3p~->...;p(SUFFIX2)(SUFFIX3)(
   614                                  (EXPR4)endgroup
   615  <to be read again> 
   616                     endgroup
   617  <to be read again> 
   618                     =
   619  l.40 ...00000001]2p~(,[2]3p~,-)=
   620                                  p~1~2[pausing];
   621  I've just read as much of that statement as I could fathom,
   622  so a semicolon should have been next. It's very puzzling...
   623  but I'll try to get myself back together, by ignoring
   624  everything up to the next `;'. Please insert a semicolon
   625  now in front of anything that you don't want me to delete.
   626  (See Chapter 27 of The METAFONTbook for an example.)
   627  
   628  {endgroup}
   629  {endgroup}
   630  {(vacuous)=(unknown picture p~1~2 1)}
   631  >> vacuous
   632  >> unknown picture p~1~2 1
   633  ! Equation cannot be performed (vacuous=unknown picture).
   634  <to be read again> 
   635                     ;
   636  l.40 ...2]3p~,-)=p~1~2[pausing];
   637                                  
   638  I'm sorry, but I don't know how to make such things equal.
   639  (See the two expressions just above the error message.)
   640  
   641  {vardef}
   642  Runaway definition?
   643  if.p(SUFFIX1)(SUFFIX1)=(SUFFIX1)(SUFFIX1)p.fi
   644  ! Forbidden token found while scanning the definition of p~[].
   645  <inserted text> 
   646                  enddef
   647  <to be read again> 
   648                     ;
   649  l.41 ...iary t:=if p@ @=@ @p fi;
   650                                   vardef p[][]p~[]=BAD; inner ;;
   651  I suspect you have forgotten an `enddef',
   652  causing me to read past where you wanted me to stop.
   653  I'll try to recover; but if the error is serious,
   654  you'd better type `E' or `X' now and fix your file.
   655  
   656  {vardef}
   657  ! This variable already starts with a macro.
   658  l.41 ...@p fi; vardef p[][]p~[]=
   659                                  BAD; inner ;;
   660  After `vardef a' you can't say `vardef a.b'.
   661  So I'll have to discard this definition.
   662  
   663  Runaway definition?
   664  BAD
   665  ! Forbidden token found while scanning the definition of a bad variable.
   666  <inserted text> 
   667                  enddef
   668  <to be read again> 
   669                     ;
   670  l.41 ...i; vardef p[][]p~[]=BAD;
   671                                   inner ;;
   672  I suspect you have forgotten an `enddef',
   673  causing me to read past where you wanted me to stop.
   674  I'll try to recover; but if the error is serious,
   675  you'd better type `E' or `X' now and fix your file.
   676  
   677  {inner}
   678  {show}
   679  {-(2)}
   680  
   681  p~[-2]@#<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1)=(SUFFIX1)(SUFFIX1)
   682  p.fi.endgroup
   683  (SUFFIX0)<-p~
   684  (SUFFIX1)<-[-2]
   685  (SUFFIX2)<-~
   686  ! A tertiary expression can't begin with `['.
   687  <inserted text> 
   688                  0
   689  <to be read again> 
   690                     [
   691  <to be read again> 
   692                     (3000)
   693  <to be read again> 
   694                     ,
   695  l.42 show p~[-2]~[3000,
   696                         x]++4000>path p3; showvariable p,P;
   697  I'm afraid I need some sort of value in order to continue,
   698  so I've tentatively inserted `0'. You may want to
   699  delete this zero and insert something else;
   700  see Chapter 27 of The METAFONTbook for an example.
   701  
   702  {(x)-(3000)}
   703  {(0)*(x-3000)}
   704  {(3000)+(0)}
   705  {(3000)++(4000)}
   706  (EXPR3)<-4999.99998
   707  {begingroup}
   708  {if}
   709  {(p[-2][-2])=(-2)}
   710  >> p[-2][-2]+2
   711  ! Unknown relation will be considered false.
   712  <to be read again> 
   713                     [-2]
   714  p~[-2]->...1)=(SUFFIX1)(SUFFIX1)
   715                                  p.fi.endgroup
   716  <to be read again> 
   717                     >
   718  l.42 show p~[-2]~[3000,x]++4000>
   719                                  path p3; showvariable p,P;
   720  Oh dear. I can't decide if the expression above is positive,
   721  negative, or zero. So this comparison test won't be `true'.
   722  
   723  {false}
   724  ! Missing `:' has been inserted.
   725  <to be read again> 
   726                     [-2]
   727  p~[-2]->...1)=(SUFFIX1)(SUFFIX1)
   728                                  p.fi.endgroup
   729  <to be read again> 
   730                     >
   731  l.42 show p~[-2]~[3000,x]++4000>
   732                                  path p3; showvariable p,P;
   733  There should've been a colon after the condition.
   734  I shall pretend that one was there.
   735  
   736  {endgroup}
   737  {path((xpart p3,ypart p3))}
   738  {(vacuous)>(false)}
   739  >> vacuous
   740  >> false
   741  ! Not implemented: (vacuous)>(boolean).
   742  <to be read again> 
   743                     ;
   744  l.42 ...~[3000,x]++4000>path p3;
   745                                   showvariable p,P;
   746  I'm afraid I don't know how to apply that operation to that
   747  combination of types. Continue, and I'll return the second
   748  argument (see above) as the result of the operation.
   749  
   750  >> false
   751  {showvariable}
   752  p=(8,1,5,-5,-5,5)
   753  p[]=pair
   754  p[][]=numeric
   755  p[][]p=unknown path
   756  p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC.
   757  p[]~=unknown boolean
   758  p~=path
   759  p~[]@#=macro:<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1) ETC.
   760  p[[ [] ]]=numeric
   761  p[[ [-1] ]]=4095.99998
   762  p[-2][-2]=p[-2][-2]
   763  p0.1 0.2=p0.1 0.2
   764  p1=(xpart p1,ypart p1)
   765  p1 2p=path
   766  p2=(5,-5)
   767  p2 3p=path
   768  p3=(xpart p3,ypart p3)
   769  p7=(3,6)
   770  > P=tag
   771  {numeric}
   772  {(2)*(alpha)}
   773  {(p3~)=(2alpha)}
   774  ## alpha=0.5p3~
   775  {(1)/(-1)}
   776  {(3)*(beta)}
   777  {(p[-1]~)=(3beta)}
   778  ## beta=0.33333p[-1]~
   779  {begingroup}
   780  {save}
   781  {showvariable}
   782  > p=tag
   783  {(3)*(0.33333(SAVED)p[-1]~)}
   784  {((SAVED)p[-1]~)=(1)}
   785  ## (SAVED)p[-1]~=1
   786  #### beta=0.33333
   787  {restoring p}
   788  {endgroup}
   789  {showvariable}
   790  p=(8,1,5,-5,-5,5)
   791  p[]=pair
   792  p[][]=numeric
   793  p[][]p=unknown path
   794  p[][]p~=macro:(SUFFIX2)(SUFFIX3)(EXPR4)<suffix>->begingroup ETC.
   795  p[]~=numeric
   796  p~=path
   797  p~[]@#=macro:<tertiary>->begingroup.if.p(SUFFIX1)(SUFFIX1) ETC.
   798  p[[ [] ]]=numeric
   799  p[[ [-1] ]]=4095.99998
   800  p[-2][-2]=p[-2][-2]
   801  p[-1]~=1
   802  p0.1 0.2=p0.1 0.2
   803  p1=(xpart p1,ypart p1)
   804  p1 2p=path
   805  p2=(5,-5)
   806  p2 3p=path
   807  p3=(xpart p3,ypart p3)
   808  p3~=p3~
   809  p7=(3,6)
   810  {def}
   811  {def}
   812  ! Missing `=' has been inserted.
   813  <to be read again> 
   814                     false
   815  l.45 ...enddef;def!primary!false
   816                                  ):!fi enddef;
   817  The next thing in this `def' should have been `=',
   818  because I've already looked at the definition heading.
   819  But don't worry; I'll pretend that an equals sign
   820  was present. Everything from here to `enddef'
   821  will be the replacement text of this macro.
   822  
   823  {def}
   824  {(path)scaled(-1)}
   825  Path at line 46, before choices:
   826  (1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
   827   ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
   828   ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
   829   ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
   830   ..(0,2.5)
   831   ..(-1,2)..controls (-1.37755,1.71404) and (-1.71404,1.37755)
   832   ..(-2,1)..controls (-2.33353,0.55965) and (-2.59729,0.04124)
   833   ..(-2.5,-0.5)..controls (-2.36812,-1.23369) and (-1.6712,-1.65662)
   834   ..(-1,-2)..controls (-0.66821,-2.16974) and (-0.33485,-2.33641)
   835   ..(0,-2.5)
   836   ..cycle
   837  
   838  Path at line 46, after choices:
   839  (1,-2)..controls (1.37755,-1.71404) and (1.71404,-1.37755)
   840   ..(2,-1)..controls (2.33353,-0.55965) and (2.59729,-0.04124)
   841   ..(2.5,0.5)..controls (2.36812,1.23369) and (1.6712,1.65662)
   842   ..(1,2)..controls (0.66821,2.16974) and (0.33485,2.33641)
   843   ..(0,2.5)..controls (-0.37186,2.68167) and (-0.668,2.25146)
   844   ..(-1,2)..controls (-1.37755,1.71404) and (-1.71404,1.37755)
   845   ..(-2,1)..controls (-2.33353,0.55965) and (-2.59729,0.04124)
   846   ..(-2.5,-0.5)..controls (-2.36812,-1.23369) and (-1.6712,-1.65662)
   847   ..(-1,-2)..controls (-0.66821,-2.16974) and (-0.33485,-2.33641)
   848   ..(0,-2.5)..controls (0.37186,-2.68167) and (0.668,-2.25146)
   849   ..cycle
   850  
   851  {makepen(path)}
   852  Pen polygon at line 46 (newly created):
   853  (1,-2)
   854   .. (2,-1)
   855   .. (2.5,0.5)
   856   .. (1,2)
   857   .. (0,2.5)
   858   .. (-1,2)
   859   .. (-2,1)
   860   .. (-2.5,-0.5)
   861   .. (-1,-2)
   862   .. (0,-2.5)
   863   .. cycle
   864  
   865  {qq:=pen}
   866  {primarydef}
   867  {secondarydef}
   868  
   869  //<expr>->
   870  
   871  //<expr>->
   872  {pencircle}
   873  {length(path)}
   874  {(future pen)slanted(1)}
   875  {((3,6))-((5,-5))}
   876  
   877  _aa__<secondary>->if(true
   878  {(0.1)*(15)}
   879  {odd(1.50009)}
   880  {not(false)}
   881  {known((8,1,5,-5,-5,5))}
   882  {(true)and(true)}
   883  (EXPR0)<-true
   884  {if}
   885  {true}
   886  
   887  !<primary>->false):(EXPR0)fi
   888  (EXPR0)<-(5,-5)
   889  {false}
   890  {(true)or(false)}
   891  {true}
   892  {fi}
   893  {-((5,-5))}
   894  {-((5,-5))}
   895  {+(1)}
   896  {-(1)}
   897  >> -1
   898  ! Improper curl has been replaced by 1.
   899  <to be read again> 
   900                     )
   901  l.51  {curl- +1)
   902                  ..tension atleast1..cycle sqrt2++sqrt2***[[]];
   903  A curl must be a known, nonnegative number.
   904  
   905  ! Missing `}' has been inserted.
   906  <to be read again> 
   907                     )
   908  l.51  {curl- +1)
   909                  ..tension atleast1..cycle sqrt2++sqrt2***[[]];
   910  I've scanned a direction spec for part of a path,
   911  so a right brace should have come next.
   912  I shall pretend that one was there.
   913  
   914  Path at line 51, before choices:
   915  (-5,5)
   916  
   917  Path at line 51, after choices:
   918  (-5,5)
   919  
   920  Path at line 51, before choices:
   921  (3,6)..controls (5,-5) and (-5,5)
   922   ..(-5,5)..tension atleast1
   923   ..{2896.30943,-2896.30934}cycle
   924  
   925  Path at line 51, after choices:
   926  (3,6)..controls (5,-5) and (-5,5)
   927   ..(-5,5)..controls (-3.29726,7.86205) and (0.64516,8.35484)
   928   ..cycle
   929  
   930  ! Missing `)' has been inserted.
   931  <to be read again> 
   932                     sqrt
   933  l.51 ...ion atleast1..cycle sqrt
   934                                  2++sqrt2***[[]];
   935  I found no right delimiter to match a left one. So I've
   936  put one in, behind the scenes; this may fix the problem.
   937  
   938  {((-2,11))subpath(path)}
   939  {reverse(path)}
   940  {makepen(path)}
   941  
   942  **->[[show(EXPR0)*(EXPR1)]]
   943  (EXPR0)<-future pen
   944  (EXPR1)<-future pen
   945  {begingroup}
   946  {show}
   947  {(future pen)*(future pen)}
   948  >> future pen
   949  >> future pen
   950  ! Not implemented: (future pen)*(future pen).
   951  <to be read again> 
   952                     ]]
   953  <to be read again> 
   954                     sqrt
   955  l.51 ...ion atleast1..cycle sqrt
   956                                  2++sqrt2***[[]];
   957  I'm afraid I don't know how to apply that operation to that
   958  combination of types. Continue, and I'll return the second
   959  argument (see above) as the result of the operation.
   960  
   961  ! Pen path must be a cycle.
   962  <to be read again> 
   963                     ]]
   964  <to be read again> 
   965                     sqrt
   966  l.51 ...ion atleast1..cycle sqrt
   967                                  2++sqrt2***[[]];
   968  I can't make a pen from the given path.
   969  So I've replaced it by the trivial path `(0,0)..cycle'.
   970  
   971  >> Pen polygon at line 51:
   972  (0,0)
   973   .. cycle
   974  
   975  {endgroup}
   976  (EXPR0)<-vacuous
   977  {sqrt(2)}
   978  {sqrt(2)}
   979  {(1.41422)++(1.41422)}
   980  {begingroup}
   981  {endgroup}
   982  
   983  ***->expandafter(EXPR1)scantokens"**oct"(EXPR0)
   984  (EXPR0)<-2
   985  (EXPR1)<-vacuous
   986  {expandafter}
   987  {scantokens}
   988  {oct(2)}
   989  >> 2
   990  ! Not implemented: oct(known numeric).
   991  <to be read again> 
   992                     ;
   993  l.51 ...cle sqrt2++sqrt2***[[]];
   994                                  
   995  I'm afraid I don't know how to apply that operation to that
   996  particular type. Continue, and I'll simply return the
   997  argument (shown above) as the result of the operation.
   998  
   999  
  1000  **->[[show(EXPR0)*(EXPR1)]]
  1001  (EXPR0)<-vacuous
  1002  (EXPR1)<-2
  1003  {begingroup}
  1004  {show}
  1005  {(vacuous)*(2)}
  1006  >> vacuous
  1007  >> 2
  1008  ! Not implemented: (vacuous)*(known numeric).
  1009  <to be read again> 
  1010                     ]]
  1011  <to be read again> 
  1012                     ;
  1013  l.51 ...cle sqrt2++sqrt2***[[]];
  1014                                  
  1015  I'm afraid I don't know how to apply that operation to that
  1016  combination of types. Continue, and I'll return the second
  1017  argument (see above) as the result of the operation.
  1018  
  1019  >> 2
  1020  {endgroup}
  1021  (EXPR0)<-vacuous
  1022  {begingroup}
  1023  {interim}
  1024  {-(20.5)}
  1025  {charcode:=-20.5}
  1026  {proofing:=-20.5}
  1027  {-(2048)}
  1028  {chardp:=-2048}
  1029  {shipout}
  1030  {nullpicture}
  1031  ! Enormous chardp has been reduced.
  1032  <to be read again> 
  1033                     ]]
  1034  l.52 ...48;shipout nullpicture]]
  1035                                  ;
  1036  Font metric dimensions must be less than 2048pt.
  1037  
  1038  {restoring proofing=0}
  1039  {endgroup}
  1040  {if}
  1041  {-(275.50002)}
  1042  {charexists(-275.50002)}
  1043  {known(unknown path p0 0p)}
  1044  {(true)>(false)}
  1045  {known(path)}
  1046  {(true)=(true)}
  1047  {true}
  1048  {randomseed}
  1049  ! Missing `:=' has been inserted.
  1050  <to be read again> 
  1051                     charcode
  1052  l.53 ... p~: randomseed charcode
  1053                                  ; fi
  1054  Always say `randomseed:=<numeric expression>'.
  1055  
  1056  {randomseed:=-20.5}
  1057  {fi}
  1058  {randomseed}
  1059  >> "goof"
  1060  ! Unknown value will be ignored.
  1061  <to be read again> 
  1062                     ;
  1063  l.54 randomseed:="goof";
  1064                           a[($,18++1+-+18),(2,3)]=b[(3,2),(1,$);
  1065  Your expression was too random for me to handle,
  1066  so I won't change the random seed just now.
  1067  
  1068  {(18)++(1)}
  1069  {(18.02776)+-+(18)}
  1070  {((2,3))-((-1,1))}
  1071  {(a)*((3,2))}
  1072  {((-1,1))+((3a,2a))}
  1073  ! Missing `]' has been inserted.
  1074  <to be read again> 
  1075                     ;
  1076  l.54 ...8),(2,3)]=b[(3,2),(1,$);
  1077                                  
  1078  I've scanned an expression of the form `a[b,c',
  1079  so a right bracket should have come next.
  1080  I shall pretend that one was there.
  1081  
  1082  {((1,-1))-((3,2))}
  1083  {(b)*((-2,-3))}
  1084  {((3,2))+((-2b,-3b))}
  1085  {((3a-1,2a+1))=((-2b+3,-3b+2))}
  1086  ## b=-0.66667a+0.33333
  1087  ## a=2
  1088  #### b=-1
  1089  {show}
  1090  {(^)+(1)}
  1091  {(~)+(2)}
  1092  {-(1)}
  1093  {((^+1,~+2))slanted(-1)}
  1094  {-(2)}
  1095  {((linearform,~+2))yscaled(-2)}
  1096  {-((3,4))}
  1097  {((linearform,-2~-4))zscaled((-3,-4))}
  1098  >> (-5~-3^-13,10~-4^+16)
  1099  {((xpart pp,ypart pp,xxpart pp,xypart pp,yxpart pp,yypart pp))xscaled(9)
  1100  }
  1101  {((8,1,5,-5,-5,5))transformed((9xpart pp,ypart pp,9xxpart pp,9xypart pp,
  1102  yxpart pp,yypart pp))}
  1103  >> (9xpart pp+72xxpart pp+9xypart pp,ypart pp+8yxpart pp+yypart pp,45xxp
  1104  art pp-45xypart pp,-45xxpart pp+45xypart pp,5yxpart pp-5yypart pp,-5yxpa
  1105  rt pp+5yypart pp)
  1106  {((xpart pp,ypart pp,xxpart pp,xypart pp,yxpart pp,yypart pp))shifted((1
  1107  ,2))}
  1108  {((8,1,5,-5,-5,5))transformed((8,1,5,-5,-5,5))}
  1109  {((xpart pp+1,ypart pp+2,xxpart pp,xypart pp,yxpart pp,yypart pp))transf
  1110  ormed((43,-34,50,-50,-50,50))}
  1111  >> (50xpart pp-50ypart pp-7,-50xpart pp+50ypart pp+16,50xxpart pp-50yxpa
  1112  rt pp,50xypart pp-50yypart pp,-50xxpart pp+50yxpart pp,-50xypart pp+50yy
  1113  part pp)
  1114  {(2)-(1)}
  1115  {(_0)*(1)}
  1116  {(1)+(_0)}
  1117  {-(_0+1)}
  1118  >> -_0-1
  1119  {show}
  1120  {normaldeviate}
  1121  {-(-2048)}
  1122  {uniformdeviate(2048)}
  1123  {angle((-0.41438,761.67789))}
  1124  {cosd(90.03117)}
  1125  {(200)*(-0.00055)}
  1126  {mexp(-0.10986)}
  1127  {sqrt(0.99957)}
  1128  {mlog(0.99979)}
  1129  {sind(-0.05469)}
  1130  {floor(-0.00096)}
  1131  >> -1
  1132  {string}
  1133  {(unknown string s2)=(unknown string s4)}
  1134  {(unknown string s1)=(unknown string s2)}
  1135  {(unknown string s3)=(unknown string s5)}
  1136  {(unknown string s2)=(unknown string s4)}
  1137  ! Redundant equation.
  1138  <to be read again> 
  1139                     ;
  1140  l.58 ... s1=s2=s4; s3=s5; s1=s2;
  1141                                   if s1<=s4<>(s1<>s3):show[[ch...
  1142  I already knew that this equation was true.
  1143  But perhaps no harm has been done; let's continue.
  1144  
  1145  {if}
  1146  {(unknown string s2)<=(unknown string s1)}
  1147  {(unknown string s2)<>(unknown string s5)}
  1148  >> unknown string s2
  1149  >> unknown string s5
  1150  ! Unknown relation will be considered false.
  1151  <to be read again> 
  1152                     )
  1153  l.58 ...=s2; if s1<=s4<>(s1<>s3)
  1154                                  :show[[char34=s2:=s3]]fi;
  1155  The quantities shown above have not been equated.
  1156  
  1157  {(true)<>(false)}
  1158  {true}
  1159  {show}
  1160  {begingroup}
  1161  {char(34)}
  1162  {s2:=unknown string s5}
  1163  {(""")=(unknown string s2)}
  1164  {endgroup}
  1165  {fi}
  1166  >> vacuous
  1167  {(0.1)point(path)}
  1168  {begingroup}
  1169  {pencircle}
  1170  Pen polygon at line 59 (newly created):
  1171  (0.5,0)
  1172   .. (0,0.5)
  1173   .. (-0.5,0)
  1174   .. (0,-0.5)
  1175   .. cycle
  1176  
  1177  {endgroup}
  1178  {((3.24413,0.64801))penoffset(pen)}
  1179  {((0,-0.5))rotated(540)}
  1180  {((0,0.5))/(0.33333)}
  1181  {-(1.5)}
  1182  ! Paths don't touch; `&' will be changed to `..'.
  1183  <to be read again> 
  1184                     )
  1185  l.60 ...tcontrol-1.5of(p~&cycle)
  1186                                  -precontrol1/2of p~(p~)=s1:=s...
  1187  When you join paths `p&q', the ending point of p
  1188  must be exactly equal to the starting point of q.
  1189  So I'm going to pretend that you said `p..q' instead.
  1190  
  1191  Path at line 60, before choices:
  1192  (0,0)..controls (15,4) and (-15,-12)
  1193   ..(4,0)
  1194   ..cycle
  1195  
  1196  Path at line 60, after choices:
  1197  (0,0)..controls (15,4) and (-15,-12)
  1198   ..(4,0)..controls (17.52783,8.54388) and (-15.45978,-4.12262)
  1199   ..cycle
  1200  
  1201  {(-1.5)postcontrol(path)}
  1202  {(0.5)precontrol(path)}
  1203  {((-2.75,-5))-((3.75,-1))}
  1204  ! Missing `of' has been inserted for directiontime.
  1205  <to be read again> 
  1206                     (
  1207  l.60 ...cle)-precontrol1/2of p~(
  1208                                  p~)=s1:=s4:=s4;
  1209  I've got the first argument; will look now for the other.
  1210  
  1211  {((-6.5,-4))directiontime(path)}
  1212  {decimal(0.5)}
  1213  {((0,1.50003))substring("0.5")}
  1214  {s4:=unknown string s1}
  1215  {s1:=unknown string s4}
  1216  {("0.")=(unknown string s1)}
  1217  {path}
  1218  {length("  ")}
  1219  ! Missing `,' has been inserted.
  1220  <to be read again> 
  1221                     }
  1222  l.61 ...p~[]; p~1=p2{length"  "}
  1223                                  &cycle; p~1=p2=p~0; p2..contr...
  1224  I've got the x coordinate of a path direction;
  1225  will look for the y coordinate next.
  1226  
  1227  ! An expression can't begin with `}'.
  1228  <inserted text> 
  1229                  0
  1230  <to be read again> 
  1231                     }
  1232  l.61 ...p~[]; p~1=p2{length"  "}
  1233                                  &cycle; p~1=p2=p~0; p2..contr...
  1234  I'm afraid I need some sort of value in order to continue,
  1235  so I've tentatively inserted `0'. You may want to
  1236  delete this zero and insert something else;
  1237  see Chapter 27 of The METAFONTbook for an example.
  1238  
  1239  Path at line 61, before choices:
  1240  (5,-5){4096,0}
  1241   ..{4096,0}cycle
  1242  
  1243  Path at line 61, after choices:
  1244  (5,-5)..controls (5,-5) and (5,-5)
  1245   ..cycle
  1246  
  1247  {(unknown path p~1)=(path)}
  1248  {((5,-5))=(unknown path p~0)}
  1249  {(path)=(path)}
  1250  ! Redundant or inconsistent equation.
  1251  <to be read again> 
  1252                     ;
  1253  l.61 ..."  "}&cycle; p~1=p2=p~0;
  1254                                   p2..controls-p2..cycle=p~2;(p7
  1255  An equation between already-known quantities can't help.
  1256  But don't worry; continue and I'll just ignore it.
  1257  
  1258  {-((5,-5))}
  1259  Path at line 61, before choices:
  1260  (5,-5)..controls (-5,5) and (-5,5)
  1261   ..cycle
  1262  
  1263  Path at line 61, after choices:
  1264  (5,-5)..controls (-5,5) and (-5,5)
  1265   ..cycle
  1266  
  1267  {(path)=(unknown path p~2)}
  1268  {length(path)}
  1269  Path at line 62, before choices:
  1270  (3,6)..tension 1.2
  1271   ..(5,-5)..controls (5,-5) and (5,-5)
  1272   ..(5,-5)
  1273   ..(5,-5)..controls (-5,5) and (-5,5)
  1274   ..(5,-5){0,4096}..tension 1 and atleast1
  1275   ..cycle
  1276  
  1277  Path at line 62, after choices:
  1278  (3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
  1279   ..(5,-5)..controls (5,-5) and (5,-5)
  1280   ..(5,-5)..controls (5,-5) and (5,-5)
  1281   ..(5,-5)..controls (-5,5) and (-5,5)
  1282   ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217)
  1283   ..cycle
  1284  
  1285  >> x
  1286  ! Improper tension has been set to 1.
  1287  <to be read again> 
  1288                     ..
  1289  l.63  x..
  1290           {curl1}-p7{curl hex "IsBad"}..tension.75and.74999..p...
  1291  The expression above should have been a number >=3/4.
  1292  
  1293  {-((3,6))}
  1294  {hex("IsBad")}
  1295  >> "IsBad"
  1296  ! String contains illegal digits.
  1297  <to be read again> 
  1298                     }
  1299  l.63 ...l1}-p7{curl hex "IsBad"}
  1300                                  ..tension.75and.74999..p2{0,1...
  1301  I zeroed out characters that weren't hex digits.
  1302  
  1303  >> 0.74998
  1304  ! Improper tension has been set to 1.
  1305  <to be read again> 
  1306                     ..
  1307  l.63 ...}..tension.75and.74999..
  1308                                  p2{0,1}&p2{_,'}..cycle:=p
  1309  The expression above should have been a number >=3/4.
  1310  
  1311  >> _
  1312  ! Undefined x coordinate has been replaced by 0.
  1313  <to be read again> 
  1314                     ,
  1315  l.63 ...and.74999..p2{0,1}&p2{_,
  1316                                  '}..cycle:=p
  1317  I need a `known' x value for this part of the path.
  1318  The value I found (see above) was no good;
  1319  so I'll try to keep going by using zero instead.
  1320  (Chapter 27 of The METAFONTbook explains that
  1321  you might want to type `I ???' now.)
  1322  
  1323  >> (xpart ',ypart ')
  1324  ! Undefined y coordinate has been replaced by 0.
  1325  <to be read again> 
  1326                     }
  1327  l.63 ...d.74999..p2{0,1}&p2{_,'}
  1328                                  ..cycle:=p
  1329  I need a `known' y value for this part of the path.
  1330  The value I found (see above) was no good;
  1331  so I'll try to keep going by using zero instead.
  1332  (Chapter 27 of The METAFONTbook explains that
  1333  you might want to type `I ???' now.)
  1334  
  1335  Path at line 63, before choices:
  1336  (3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
  1337   ..(5,-5)..controls (5,-5) and (5,-5)
  1338   ..(5,-5)..controls (5,-5) and (5,-5)
  1339   ..(5,-5)..controls (-5,5) and (-5,5)
  1340   ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217)
  1341   ..(3,6)
  1342   ..{curl 1}(-3,-6){curl 2989}..tension 0.75 and 1
  1343   ..{0,4096}(5,-5){curl 1}
  1344   ..cycle
  1345  
  1346  Path at line 63, after choices:
  1347  (3,6)..controls (-3.01212,4.82085) and (-1.0424,-6.01257)
  1348   ..(5,-5)..controls (5,-5) and (5,-5)
  1349   ..(5,-5)..controls (5,-5) and (5,-5)
  1350   ..(5,-5)..controls (-5,5) and (-5,5)
  1351   ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217)
  1352   ..(3,6)..controls (-2.44821,4.93144) and (-5.41408,-1.00029)
  1353   ..(-3,-6)..controls (-3.70045,-12.19485) and (5,-11.61679)
  1354   ..(5,-5)..controls (12.45406,-3.75087) and (10.41669,7.45464)
  1355   ..cycle
  1356  
  1357  >> path
  1358  ! Improper `:=' will be changed to `='.
  1359  l.63 ...p2{0,1}&p2{_,'}..cycle:=
  1360                                  p
  1361  I didn't find a variable name at the left of the `:=',
  1362  so I'm going to pretend that you said `=' instead.
  1363  
  1364  {(path)=(unknown path p~4)}
  1365  {-(9)}
  1366  {((3.5001,7.00002))subpath(path)}
  1367  {((-9,9))subpath(path)}
  1368  {(path)=(unknown path p~6)}
  1369  {show}
  1370  >> Path at line 65:
  1371  (-2.5,2.5)..controls (-2.49893,2.49893) and (0.00107,-0.00107)
  1372   ..(5,-5)..controls (5,0.02791) and (4.99951,6.39217)
  1373   ..(3,6)..controls (-2.44821,4.93144) and (-5.41408,-1.00029)
  1374   ..(-3,-6)..controls (-3.70045,-12.19485) and (5,-11.61679)
  1375   ..(5,-5)..controls (5.0001,-4.99998) and (5.00021,-4.99997)
  1376   ..(5.00032,-4.99995)
  1377  
  1378  {((1,2))directiontime(path)}
  1379  >> 1
  1380  {-(1.00002)}
  1381  {((1,-1.00002))directiontime(path)}
  1382  >> 3.24937
  1383  Path at line 66, before choices:
  1384  (0,0)..controls (1,1) and (0,1)
  1385   ..(1,0)
  1386  
  1387  Path at line 66, after choices:
  1388  (0,0)..controls (1,1) and (0,1)
  1389   ..(1,0)
  1390  
  1391  {(unknown path p~3)=(path)}
  1392  {show}
  1393  Path at line 66, before choices:
  1394  (5,-5){-2896.30943,-2896.30934}
  1395   ..{1831.78674,3663.57385}cycle
  1396  
  1397  Path at line 66, after choices:
  1398  (5,-5)..controls (5,-5) and (5,-5)
  1399   ..cycle
  1400  
  1401  >> Path at line 66:
  1402  (5,-5)..controls (5,-5) and (5,-5)
  1403   ..cycle
  1404  
  1405  {((0.31416,1))subpath(path)}
  1406  {((1,1))directiontime(path)}
  1407  {(1)-(0.31416)}
  1408  {(0.27097)*(0.68584)}
  1409  {(0.31416)+(0.18584)}
  1410  >> 0.5
  1411  {((0,0.25))subpath(path)}
  1412  {((0.25,1))subpath(path)}
  1413  Path at line 68, before choices:
  1414  (0,0)..controls (0.25,0.25) and (0.375,0.4375)
  1415   ..(0.4375,0.5625)..controls (0.625,0.9375) and (0.25,0.75)
  1416   ..(1,0)
  1417  
  1418  Path at line 68, after choices:
  1419  (0,0)..controls (0.25,0.25) and (0.375,0.4375)
  1420   ..(0.4375,0.5625)..controls (0.625,0.9375) and (0.25,0.75)
  1421   ..(1,0)
  1422  
  1423  ! Missing `endtext' has been inserted.
  1424  <to be read again> 
  1425                     ;
  1426  l.68 ...~3)shifted begintext1,0;
  1427                                  
  1428  I found no right delimiter to match a left one. So I've
  1429  put one in, behind the scenes; this may fix the problem.
  1430  
  1431  {(path)shifted((1,0))}
  1432  {(unknown path p~5)=(path)}
  1433  {(2/3)*((xpart ',ypart '))}
  1434  {((0.66667xpart ',0.66667ypart '))zscaled((xpart ',ypart '))}
  1435  >> (0,0,xpart ',-ypart ',ypart ',xpart ')
  1436  ! Transform components aren't all known.
  1437  <to be read again> 
  1438                     {
  1439  l.69 p~3:=2/3'zscaled'{
  1440                         p~3}..controls(2,2/3(3))and penoffset(...
  1441  I'm unable to apply a partially specified transformation
  1442  except to a fully known pair or transform.
  1443  Proceed, and I'll omit the transformation.
  1444  
  1445  >> 0.66667xpart '
  1446  ! Undefined x coordinate has been replaced by 0.
  1447  <to be read again> 
  1448                     {
  1449  l.69 p~3:=2/3'zscaled'{
  1450                         p~3}..controls(2,2/3(3))and penoffset(...
  1451  I need a `known' x value for this part of the path.
  1452  The value I found (see above) was no good;
  1453  so I'll try to keep going by using zero instead.
  1454  (Chapter 27 of The METAFONTbook explains that
  1455  you might want to type `I ???' now.)
  1456  
  1457  >> 0.66667ypart '
  1458  ! Undefined y coordinate has been replaced by 0.
  1459  <to be read again> 
  1460                     {
  1461  l.69 p~3:=2/3'zscaled'{
  1462                         p~3}..controls(2,2/3(3))and penoffset(...
  1463  I need a `known' y value for this part of the path.
  1464  The value I found (see above) was no good;
  1465  so I'll try to keep going by using zero instead.
  1466  (Chapter 27 of The METAFONTbook explains that
  1467  you might want to type `I ???' now.)
  1468  
  1469  >> path
  1470  ! Undefined coordinates have been replaced by (0,0).
  1471  <to be read again> 
  1472                     }
  1473  l.69 p~3:=2/3'zscaled'{p~3}
  1474                             ..controls(2,2/3(3))and penoffset(...
  1475  I need x and y numbers for this part of the path.
  1476  The value I found (see above) was no good;
  1477  so I'll try to keep going by using zero instead.
  1478  (Chapter 27 of The METAFONTbook explains that
  1479  you might want to type `I ???' now.)
  1480  
  1481  {(2/3)*(3)}
  1482  {(1/2)*(x)}
  1483  {((0.5x,-5))penoffset((0,1))}
  1484  >> (0.5x,-5)
  1485  >> (0,1)
  1486  ! Not implemented: penoffset(unknown pair)of(pair).
  1487  <to be read again> 
  1488                     (
  1489  l.69 ...enoffset(1/2x,y)of(0,1)(
  1490                                  1,0);
  1491  I'm afraid I don't know how to apply that operation to that
  1492  combination of types. Continue, and I'll return the second
  1493  argument (see above) as the result of the operation.
  1494  
  1495  ! Missing `..' has been inserted.
  1496  <to be read again> 
  1497                     (
  1498  l.69 ...enoffset(1/2x,y)of(0,1)(
  1499                                  1,0);
  1500  A path join command should end with two dots.
  1501  
  1502  Path at line 69, before choices:
  1503  (0,0)..controls (2,2) and (0,1)
  1504   ..(1,0)
  1505  
  1506  Path at line 69, after choices:
  1507  (0,0)..controls (2,2) and (0,1)
  1508   ..(1,0)
  1509  
  1510  {p~3:=path}
  1511  {show}
  1512  {reverse(path)}
  1513  {(path)intersectiontimes(path)}
  1514  >> (0.17227,0.28339)
  1515  {(0.17227)point(path)}
  1516  >> (0.71329,0.78188)
  1517  {(1)-(0.28339)}
  1518  {(0.71661)point(path)}
  1519  >> (0.7133,0.78189)
  1520  {show}
  1521  {(path)shifted((0.01,0))}
  1522  {(path)intersectiontimes(path)}
  1523  {xpart((1.47693,1.18973))}
  1524  {(1.47693)point(path)}
  1525  {(path)shifted((0.01,0))}
  1526  {(path)intersectiontimes(path)}
  1527  {ypart((1.47693,1.18973))}
  1528  {(1.18973)point(path)}
  1529  {((1.50499,0.71521))-((1.495,0.71521))}
  1530  >> (0.01,0)
  1531  {begingroup}
  1532  {interim}
  1533  {tracingedges:=1}
  1534  {-(1)}
  1535  {-(1.00002)}
  1536  {(-1)+-+(-1.00002)}
  1537  ! Pythagorean subtraction 1+-+1.00002 has been replaced by 0.
  1538  l.73 ...es:=1; e[-1+-+ -1.00001]
  1539                                  =nullpicture; addto e1 also[[
  1540  Since I don't take square roots of negative numbers,
  1541  I'm zeroing this one. Proceed, with fingers crossed.
  1542  
  1543  {nullpicture}
  1544  {(unknown picture e0)=(picture)}
  1545  {addto}
  1546  {begingroup}
  1547  {addto}
  1548  {(path)scaled(3)}
  1549  Path at line 74, before subdivision into octants:
  1550  (3,0)..controls (3.75,0.75) and (4.125,1.3125)
  1551   ..(4.3125,1.6875)..controls (4.875,2.8125) and (3.75,2.25)
  1552   ..(6,0)..controls (3.75,2.25) and (4.875,2.8125)
  1553   ..(4.3125,1.6875)..controls (4.125,1.3125) and (3.75,0.75)
  1554   ..cycle
  1555  
  1556  Cycle spec at line 74, after subdivision:
  1557  (3,0) % beginning in octant `NNE'
  1558     ..controls (3.75,0.75) and (4.125,1.3125)
  1559   ..(4.3125,1.6875) % segment 0
  1560     ..controls (4.5,2.0625) and (4.5,2.25)
  1561   ..(4.5,2.25) % segment 1
  1562  % entering octant `NNW'
  1563  % entering octant `WNW'
  1564  % entering octant `WSW'
  1565  % entering octant `SSW'
  1566  % entering octant `SSE'
  1567     ..controls (4.5,2.25) and (4.5,1.5)
  1568   ..(6,0) % segment 1
  1569  % entering octant `ESE'
  1570  % entering octant `ENE'
  1571  % entering octant `NNE'
  1572  % entering octant `NNW'
  1573     ..controls (4.5,1.5) and (4.5,2.25)
  1574   ..(4.5,2.25) % segment 2
  1575  % entering octant `WNW'
  1576  % entering octant `WSW'
  1577  % entering octant `SSW'
  1578     ..controls (4.5,2.25) and (4.5,2.0625)
  1579   ..(4.3125,1.6875) % segment 2
  1580     ..controls (4.125,1.3125) and (3.75,0.75)
  1581   ..(3,0) % segment 3
  1582  % entering octant `SSE'
  1583  % entering octant `ESE'
  1584  % entering octant `ENE'
  1585   & cycle
  1586  
  1587  Tracing edges at line 74: (weight 1)
  1588  (4,0)(4,1)(5,1)(5,3)(4,3)(4,1)(5,1)(5,0)(6,0)(6,1)(5,1)(5,3)
  1589  (4,3)(4,1)(3,1)(3,0).
  1590  
  1591  {(unknown picture e1)=(unknown picture e2)}
  1592  {(picture)=(unknown picture e1)}
  1593  {cull}
  1594  {nullpicture}
  1595  {endgroup}
  1596  {show}
  1597  {-(4095)}
  1598  {(picture)shifted((4089,-4095))}
  1599  >> Edge structure at line 75:
  1600  row -4093: | 4093+ 4094-
  1601  row -4094: | 4093+ 4094-
  1602  row -4095: | 4092+ 4093- 4094+ 4095-
  1603  
  1604  {-(4095)}
  1605  {(picture)shifted((-4095,4092))}
  1606  {-(3)}
  1607  {(picture)shifted((-3,0))}
  1608  >> Edge structure at line 75:
  1609  row 4094: -4094+ -4093- -4094+ -4093- |
  1610  row 4093: -4094+ -4093- -4094+ -4093- |
  1611  row 4092: -4095+ -4092- -4093+ -4094- |
  1612  
  1613  {-(4095)}
  1614  {(picture)shifted((4089,-4095))}
  1615  ! Too far to shift.
  1616  <to be read again> 
  1617                     ]]
  1618  l.76 e2 shifted(4089,-4095)]]
  1619                               ;addto e1 also  e2 shifted(-2,$)...
  1620  I can't shift the picture as requested---it would
  1621  make some coordinates too large or too small.
  1622  Proceed, and I'll omit the transformation.
  1623  
  1624  >> Edge structure at line 76:
  1625  row 2: 4+ 5- 4+ 5- |
  1626  row 1: 4+ 5- 4+ 5- |
  1627  row 0: 3+ 6- 5+ 4- |
  1628  
  1629  {restoring tracingedges=32767.99998}
  1630  {endgroup}
  1631  {addto}
  1632  {-(2)}
  1633  {(picture)shifted((-2,-1))}
  1634  {-(4)}
  1635  {(picture)shifted((-4,-1))}
  1636  {e1:=picture}
  1637  {addto}
  1638  {(picture)rotated(89.999)}
  1639  ! That transformation is too hard.
  1640  <to be read again> 
  1641                     +
  1642  l.77 ...e0 also e1rotated89.999+
  1643                                  e1scaled$; show e0 xscaled-10...
  1644  I can apply complicated transformations to paths,
  1645  but I can only do integer operations on pictures.
  1646  Proceed, and I'll omit the transformation.
  1647  
  1648  {(picture)scaled(-1)}
  1649  {(picture)+(picture)}
  1650  {show}
  1651  {-(10)}
  1652  {(picture)xscaled(-10)}
  1653  {(picture)yscaled(2)}
  1654  {(picture)xscaled(82)}
  1655  ! Scaled picture would be too big.
  1656  <to be read again> 
  1657                     yscaled
  1658  l.78 yscaled
  1659              683;addto e1 doublepath (0,9) withweight-3 withwe...
  1660  I can't xscale the picture as requested---it would
  1661  make some coordinates too large or too small.
  1662  Proceed, and I'll omit the transformation.
  1663  
  1664  {(picture)yscaled(683)}
  1665  ! Scaled picture would be too big.
  1666  <to be read again> 
  1667                     ;
  1668  l.78 yscaled683;
  1669                  addto e1 doublepath (0,9) withweight-3 withwe...
  1670  I can't yscale the picture as requested---it would
  1671  make some coordinates too large or too small.
  1672  Proceed, and I'll omit the transformation.
  1673  
  1674  >> Edge structure at line 78:
  1675  row 5: -40- -50+ -40- -50+ |
  1676  row 4: -40- -50+ -40- -50+ |
  1677  row 3: -30+ 0- -10+ -20- -40- -50+ -40- -50+ | -10+ 0-
  1678  row 2: -30+ 0- -10+ -20- -40- -50+ -40- -50+ | -10+ 0-
  1679  row 1: 20- 10+ 20- 10+ -20+ -10- -20+ -10- -30- -60+ -50- -40+ |
  1680   -10+ -10+ 0- 0- 10+ 20-
  1681  row 0: 20- 10+ 20- 10+ -20+ -10- -20+ -10- -30- -60+ -50- -40+ |
  1682   -10+ -10+ 0- 0- 10+ 20-
  1683  row -1: 20- 10+ 20- 10+ -20+ -10- -20+ -10- | -20+ -10- 0+ 0+ 10-
  1684   10-
  1685  row -2: 20- 10+ 20- 10+ -20+ -10- -20+ -10- | -20+ -10- 0+ 0+ 10-
  1686   10-
  1687  row -3: 30- 0+ 10- 20+ | 0+ 10-
  1688  row -4: 30- 0+ 10- 20+ | 0+ 10-
  1689  
  1690  {addto}
  1691  {-(3)}
  1692  {turningnumber(path)}
  1693  ! Weight must be -3, -2, -1, +1, +2, or +3.
  1694  <to be read again> 
  1695                     withpen
  1696  l.79  withpen
  1697                pencircle xscaled(oct"180"++1) rotated-angle(64...
  1698  I'll ignore the bad `with' clause and look for another.
  1699  
  1700  {pencircle}
  1701  {oct("180")}
  1702  >> "180"
  1703  ! String contains illegal digits.
  1704  <to be read again> 
  1705                     ++
  1706  l.79 ...ircle xscaled(oct"180"++
  1707                                  1) rotated-angle(64,$) shifte...
  1708  I zeroed out characters that weren't in the range 0..7.
  1709  
  1710  {(64)++(1)}
  1711  {(future pen)xscaled(64.00781)}
  1712  {angle((64,-1))}
  1713  {-(-0.89517)}
  1714  {(future pen)rotated(0.89517)}
  1715  {(future pen)shifted((9,8))}
  1716  Pen polygon at line 80 (newly created):
  1717  (9,7.5)
  1718   .. (37.5,8)
  1719   .. (41,8.5)
  1720   .. (9,8.5)
  1721   .. (-19.5,8)
  1722   .. (-23,7.5)
  1723   .. cycle
  1724  
  1725  Path at line 80, before choices:
  1726  (-1,-1){curl 1}
  1727   ..(1,0)
  1728   ..(1,1)
  1729   ..(-1,0)
  1730   ..{curl 1}cycle
  1731  
  1732  Path at line 80, after choices:
  1733  (-1,-1)..controls (-0.18568,-1.14464) and (0.62712,-0.73824)
  1734   ..(1,0)..controls (1.16457,0.32584) and (1.21637,0.71506)
  1735   ..(1,1)..controls (0.46898,1.69931) and (-0.7587,1.2167)
  1736   ..(-1,0)..controls (-1.06546,-0.33012) and (-1.06546,-0.66988)
  1737   ..cycle
  1738  
  1739  {makepen(path)}
  1740  {(future pen)xscaled(4095.49998)}
  1741  Pen polygon at line 80 (newly created):
  1742  (4095.49998,0)
  1743   .. (4095.49998,1)
  1744   .. (-4095.49998,0)
  1745   .. (-4095.49998,-1)
  1746   .. cycle
  1747  
  1748  Path at line 80, before subdivision into octants:
  1749  (0,9)..controls (0,9) and (0,9)
  1750   ..cycle
  1751  
  1752  ! Curve out of range.
  1753  <to be read again> 
  1754                     ;
  1755  l.80 ...cycle)xscaled4095.49999;
  1756                                  
  1757  At least one of the coordinates in the path I'm about to
  1758  digitize was really huge (potentially bigger than 4095).
  1759  So I've cut it back to the maximum size.
  1760  The results will probably be pretty wild.
  1761  
  1762  Cycle spec at line 80, after subdivision:
  1763  (0,0) % beginning in octant `ENE'
  1764  % entering octant `NNE'
  1765  % entering octant `NNW'
  1766  % entering octant `WNW'
  1767  % entering octant `WSW'
  1768  % entering octant `SSW'
  1769  % entering octant `SSE'
  1770  % entering octant `ESE'
  1771   & cycle
  1772  
  1773  Tracing edges at line 80: (weight -3)
  1774  @ Octant ENE (2 offsets), from (-4095.49998,-1) to (4095.49998,0)
  1775  @ transition line 0, from (-4095.49998,-1) to (-4095.49998,-1)
  1776  @ transition line 1, from (-4095.49998,-1) to (4095.49998,0)
  1777  @ transition line 2, from (4095.49998,0) to (4095.49998,0)
  1778  (0,-1)
  1779  @ Octant NNE (1 offset), from (4095.49998,0) to (4095.49998,1)
  1780  @ transition line 2, from (4095.49998,0) to (4095.49998,0)
  1781  @ transition line 1, from (4095.49998,0) to (4095.49998,1)
  1782  (0,0)(4095,0)
  1783  @ Octant NNW (0 offsets), from (4095.49998,1) to (4095.49998,1)
  1784  @ transition line 0, from (4095.49998,1) to (4095.49998,1)
  1785  @ Octant WNW (0 offsets), from (4095.49998,1) to (4095.49998,1)
  1786  @ transition line 1, from (4095.49998,1) to (4095.49998,1)
  1787  @ Octant WSW (2 offsets), from (4095.49998,1) to (-4095.49998,0)
  1788  @ transition line 0, from (4095.49998,1) to (4095.49998,1)
  1789  @ transition line 1, from (4095.49998,1) to (-4095.49998,0)
  1790  @ transition line 2, from (-4095.49998,0) to (-4095.49998,0)
  1791  (4095,1)(0,1)
  1792  @ Octant SSW (1 offset), from (-4095.49998,0) to (-4095.49998,-1)
  1793  @ transition line 2, from (-4095.49998,0) to (-4095.49998,0)
  1794  @ transition line 1, from (-4095.49998,0) to (-4095.49998,-1)
  1795  (0,0)(-4095,0)
  1796  @ Octant SSE (0 offsets), from (-4095.49998,-1) to (-4095.49998,-1)
  1797  @ transition line 0, from (-4095.49998,-1) to (-4095.49998,-1)
  1798  @ Octant ESE (0 offsets), from (-4095.49998,-1) to (-4095.49998,-1)
  1799  @ transition line 1, from (-4095.49998,-1) to (-4095.49998,-1)
  1800  (-4095,-1).
  1801  
  1802  {show}
  1803  >> Edge structure at line 81:
  1804  row 1: | 0+ 1-
  1805  row 0: 0--- 4095+++ -2+ -1- -2+ -1- | 0+ 1-
  1806  row -1: -4095--- 0+++ -2+ -1- -2+ -1- | -1+ 0- 1+ 2-
  1807  row -2: -3+ 0- -1+ -2- |
  1808  
  1809  {totalweight(picture)}
  1810  >> -0.37476
  1811  {charcode:=5}
  1812  {chardp:=5}
  1813  {-(1.5)}
  1814  {xoffset:=-1.5}
  1815  {shipout}
  1816  [5]
  1817  Edge structure at line 81 (just shipped out):
  1818  row 1: | -1+ 0-
  1819  row 0: | -3+ -3+ -2- -2- -1--- -1+ 0- 4094+++
  1820  row -1: | -4096--- -3+ -3+ -2- -2- -2+ -1- -1+++ 0+ 1-
  1821  row -2: | -4+ -3- -2+ -1-
  1822  
  1823  {showstats}
  1824  Memory usage 1084&202 (749 still untouched)
  1825  String usage 24&92 (859&11353 still untouched)
  1826  {addto}
  1827  {(path)yscaled(0.01666)}
  1828  Path at line 82, before subdivision into octants:
  1829  (0,0)..controls (15,0.06665) and (-15,-0.19995)
  1830   ..(4,0)..controls (-15,-0.19995) and (15,0.06665)
  1831   ..cycle
  1832  
  1833  Cycle spec at line 82, after subdivision:
  1834  (0,0) % beginning in octant `ENE'
  1835     ..controls (1.74272,0.00775) and (2.87802,0.01099)
  1836   ..(3.55333,0.01099) % segment 0
  1837  % entering octant `ESE'
  1838     ..controls (4.12251,0.01099) and (4.36491,0.00868)
  1839   ..(4.36877,0.00482) % segment 0
  1840  % entering octant `SSE'
  1841     ..controls (4.3688,0.00479) and (4.36882,0.00476)
  1842   ..(4.36882,0.00473) % segment 0
  1843  % entering octant `SSW'
  1844     ..controls (4.36882,0.0047) and (4.3688,0.00467)
  1845   ..(4.36877,0.00464) % segment 0
  1846  % entering octant `WSW'
  1847     ..controls (4.34875,-0.01538) and (-1.88759,-0.07579)
  1848   ..(-2.48894,-0.07579) % segment 0
  1849  % entering octant `WNW'
  1850     ..controls (-2.5191,-0.07579) and (-2.5351,-0.07564)
  1851   ..(-2.53542,-0.07532) % segment 0
  1852  % entering octant `NNW'
  1853  % entering octant `NNE'
  1854  % entering octant `ENE'
  1855     ..controls (-2.53209,-0.07199) and (-0.88672,-0.05144)
  1856   ..(4,0) % segment 0
  1857  % entering octant `NNE'
  1858  % entering octant `NNW'
  1859  % entering octant `WNW'
  1860  % entering octant `WSW'
  1861     ..controls (-0.88672,-0.05144) and (-2.5321,-0.072)
  1862   ..(-2.53542,-0.07532) % segment 1
  1863  % entering octant `SSW'
  1864  % entering octant `SSE'
  1865  % entering octant `ESE'
  1866     ..controls (-2.53511,-0.07562) and (-2.5191,-0.07579)
  1867   ..(-2.48894,-0.07579) % segment 1
  1868  % entering octant `ENE'
  1869     ..controls (-1.88759,-0.07579) and (4.34877,-0.01537)
  1870   ..(4.36877,0.00464) % segment 1
  1871  % entering octant `NNE'
  1872     ..controls (4.3688,0.00467) and (4.36882,0.0047)
  1873   ..(4.36882,0.00473) % segment 1
  1874  % entering octant `NNW'
  1875     ..controls (4.36882,0.00476) and (4.3688,0.00479)
  1876   ..(4.36877,0.00482) % segment 1
  1877  % entering octant `WNW'
  1878     ..controls (4.36491,0.00868) and (4.12251,0.01099)
  1879   ..(3.55333,0.01099) % segment 1
  1880  % entering octant `WSW'
  1881     ..controls (2.87802,0.01099) and (1.74272,0.00775)
  1882   ..(0,0) % segment 1
  1883  % entering octant `SSW'
  1884  % entering octant `SSE'
  1885  % entering octant `ESE'
  1886   & cycle
  1887  
  1888  Tracing edges at line 82: (weight 1)
  1889  (No new edges added.)
  1890  
  1891  {(picture)yscaled(0)}
  1892  {e3:=picture}
  1893  {autorounding:=2}
  1894  {addto}
  1895  Path at line 83, before choices:
  1896  (0.5,0){curl 1}
  1897   ..{curl 1}(3.5,1.5)
  1898  
  1899  Path at line 83, after choices:
  1900  (0.5,0)..controls (1.5,0.5) and (2.5,1)
  1901   ..(3.5,1.5)
  1902  
  1903  Path at line 83, before subdivision into octants:
  1904  (0.5,0)..controls (1.5,0.5) and (2.5,1)
  1905   ..(3.5,1.5)..controls (2.5,1) and (1.5,0.5)
  1906   ..cycle
  1907  
  1908  Cycle spec at line 83, after subdivision and double autorounding:
  1909  (0.5,0) % beginning in octant `ENE'
  1910     ..controls (1.5,0.5) and (2.5,1)
  1911   ..(3.5,1.5) % segment 0
  1912  % entering octant `NNE'
  1913  % entering octant `NNW'
  1914  % entering octant `WNW'
  1915  % entering octant `WSW'
  1916     ..controls (2.5,1) and (1.5,0.5)
  1917   ..(0.5,0) % segment 1
  1918  % entering octant `SSW'
  1919  % entering octant `SSE'
  1920  % entering octant `ESE'
  1921   & cycle
  1922  
  1923  Tracing edges at line 83: (weight 2)
  1924  (2,0)(2,1)(4,1)(4,2)(4,1)(2,1)(2,0).
  1925  
  1926  {tracingspecs:=0}
  1927  Path at line 84, before choices:
  1928  (1,1)
  1929   ..cycle
  1930  
  1931  Path at line 84, after choices:
  1932  (1,1)..controls (1,1) and (1,1)
  1933   ..cycle
  1934  
  1935  {makepen(path)}
  1936  {(future pen)yscaled(1.5)}
  1937  Pen polygon at line 84 (newly created):
  1938  (1,1.5)
  1939   .. cycle
  1940  
  1941  {q:=pen}
  1942  {((-1,yy))rotated((8,1,5,-5,-5,5))}
  1943  >> (8,1,5,-5,-5,5)
  1944  ! Improper transformation argument.
  1945  <to be read again> 
  1946                     {
  1947  l.85 p~8=(($,yy)rotated p{
  1948                            0,1}..{0,$}(1,0){0,$}..cycle)scaled...
  1949  The expression shown above has the wrong type,
  1950  so I can't transform anything using it.
  1951  Proceed, and I'll omit the transformation.
  1952  
  1953  >> yy
  1954  ! Undefined y coordinate has been replaced by 0.
  1955  <to be read again> 
  1956                     {
  1957  l.85 p~8=(($,yy)rotated p{
  1958                            0,1}..{0,$}(1,0){0,$}..cycle)scaled...
  1959  I need a `known' y value for this part of the path.
  1960  The value I found (see above) was no good;
  1961  so I'll try to keep going by using zero instead.
  1962  (Chapter 27 of The METAFONTbook explains that
  1963  you might want to type `I ???' now.)
  1964  
  1965  Path at line 85, before choices:
  1966  (-1,0){0,4096}
  1967   ..{0,-4096}(1,0){0,-4096}
  1968   ..{0,4096}cycle
  1969  
  1970  Path at line 85, after choices:
  1971  (-1,0)..controls (-1,1.33333) and (1,1.33333)
  1972   ..(1,0)..controls (1,-1.33333) and (-1,-1.33333)
  1973   ..cycle
  1974  
  1975  {(path)scaled(2)}
  1976  {(path)shifted((1000.49,9))}
  1977  {(unknown path p~8)=(path)}
  1978  {turningcheck:=1}
  1979  {addto}
  1980  >> (8,1,5,-5,-5,5)
  1981  ! Improper type.
  1982  <to be read again> 
  1983                     withpen
  1984  l.86 ...n q withweight p withpen
  1985                                   cycle p;
  1986  Next time say `withweight <known numeric expression>';
  1987  I'll ignore the bad `with' clause and look for another.
  1988  
  1989  {cycle((8,1,5,-5,-5,5))}
  1990  >> false
  1991  ! Improper type.
  1992  <to be read again> 
  1993                     ;
  1994  l.86 ...eight p withpen cycle p;
  1995                                  
  1996  Next time say `withpen <known pen expression>';
  1997  I'll ignore the bad `with' clause and look for another.
  1998  
  1999  Tracing edges at line 86: (weight 1)
  2000  @ Octant NNE (0 offsets), from (999,10.5) to (999.15451,11.65451)
  2001  @ transition line 1, from (999.15451,11.65451) to (999.15451,11.65451)
  2002  (999,11)
  2003  @ Octant ENE (0 offsets), from (999.15451,11.65451) to (1001,12)
  2004  @ transition line 0, from (999.15451,11.65451) to (999.15451,11.65451)
  2005  @ Octant ESE (0 offsets), from (1001,12) to (1002.8455,11.6545)
  2006  @ transition line 1, from (1002.8455,11.6545) to (1002.8455,11.6545)
  2007  @ Octant SSE (0 offsets), from (1002.8455,11.6545) to (1003,10.5)
  2008  @ transition line 0, from (1002.8455,11.6545) to (1002.8455,11.6545)
  2009  (999,12)(1003,12)
  2010  @ Octant SSW (0 offsets), from (1003,10.5) to (1002.84549,9.34549)
  2011  @ transition line 1, from (1002.84549,9.34549) to (1002.84549,9.34549)
  2012  @ Octant WSW (0 offsets), from (1002.84549,9.34549) to (1001,9)
  2013  @ transition line 0, from (1002.84549,9.34549) to (1002.84549,9.34549)
  2014  @ Octant WNW (0 offsets), from (1001,9) to (999.1545,9.3455)
  2015  @ transition line 1, from (999.1545,9.3455) to (999.1545,9.3455)
  2016  @ Octant NNW (0 offsets), from (999.1545,9.3455) to (999,10.5)
  2017  @ transition line 0, from (999.1545,9.3455) to (999.1545,9.3455)
  2018  (1003,9)(999,9)(999,11).
  2019  
  2020  Tracing edges at line 86: (weight 1)
  2021  @ Octant SSE (0 offsets), from (999,10.5) to (999.15451,9.34549)
  2022  @ transition line 0, from (999,10.5) to (999,10.5)
  2023  (999,11)
  2024  @ Octant ESE (0 offsets), from (999.15451,9.34549) to (1001,9)
  2025  @ transition line 1, from (1001,9) to (1001,9)
  2026  @ Octant ENE (0 offsets), from (1001,9) to (1002.8455,9.3455)
  2027  @ transition line 0, from (1001,9) to (1001,9)
  2028  @ Octant NNE (0 offsets), from (1002.8455,9.3455) to (1003,10.5)
  2029  @ transition line 1, from (1003,10.5) to (1003,10.5)
  2030  (999,9)(1003,9)
  2031  @ Octant NNW (0 offsets), from (1003,10.5) to (1002.84549,11.65451)
  2032  @ transition line 0, from (1003,10.5) to (1003,10.5)
  2033  @ Octant WNW (0 offsets), from (1002.84549,11.65451) to (1001,12)
  2034  @ transition line 1, from (1001,12) to (1001,12)
  2035  @ Octant WSW (0 offsets), from (1001,12) to (999.1545,11.6545)
  2036  @ transition line 0, from (1001,12) to (1001,12)
  2037  @ Octant SSW (0 offsets), from (999.1545,11.6545) to (999,10.5)
  2038  @ transition line 1, from (999,10.5) to (999,10.5)
  2039  (1003,12)(999,12)(999,11).
  2040  
  2041  {begingroup}
  2042  {interim}
  2043  {(xx)=(0.1)}
  2044  ## xx=0.1
  2045  {autorounding:=0.1}
  2046  {addto}
  2047  Tracing edges at line 87: (weight -2)
  2048  @ Octant NNE (0 offsets), from (999,10.5) to (999.38197,11.42706)
  2049  @ transition line 1, from (999.38197,11.42706) to (999.38197,11.42706)
  2050  @ Octant ENE (0 offsets), from (999.38197,11.42706) to (1001,12)
  2051  @ transition line 0, from (999.38197,11.42706) to (999.38197,11.42706)
  2052  (999,11)
  2053  @ Octant ESE (0 offsets), from (1001,12) to (1002.61804,11.42705)
  2054  @ transition line 1, from (1002.61804,11.42705) to (1002.61804,11.42705)
  2055  (999,12)(1003,12)
  2056  @ Octant SSE (0 offsets), from (1002.61804,11.42705) to (1003,10.5)
  2057  @ transition line 0, from (1002.61804,11.42705) to (1002.61804,11.42705)
  2058  @ Octant SSW (0 offsets), from (1003,10.5) to (1002.61803,9.57294)
  2059  @ transition line 1, from (1002.61803,9.57294) to (1002.61803,9.57294)
  2060  @ Octant WSW (0 offsets), from (1002.61803,9.57294) to (1001,9)
  2061  @ transition line 0, from (1002.61803,9.57294) to (1002.61803,9.57294)
  2062  @ Octant WNW (0 offsets), from (1001,9) to (999.38196,9.57295)
  2063  @ transition line 1, from (999.38196,9.57295) to (999.38196,9.57295)
  2064  (1003,9)(999,9)
  2065  @ Octant NNW (0 offsets), from (999.38196,9.57295) to (999,10.5)
  2066  @ transition line 0, from (999.38196,9.57295) to (999.38196,9.57295)
  2067  (999,11).
  2068  
  2069  {restoring autorounding=2}
  2070  {endgroup}
  2071  {-(14.5)}
  2072  {charext:=-14.5}
  2073  {chardp:=-14.5}
  2074  {chardx:=-14.5}
  2075  {shipout}
  2076  {-(picture)}
  2077  {(picture)-(picture)}
  2078  {-(picture)}
  2079  {turningnumber(path)}
  2080  {(6)*(-1)}
  2081  {(picture)shifted((0,-6))}
  2082  {(picture)+(picture)}
  2083  [5.-14]
  2084  Edge structure at line 88 (just shipped out):
  2085  row 11: | 998- 998+ 998++ 1002-- 1002- 1002+
  2086  row 10: | 998- 998+ 998++ 1002-- 1002- 1002+
  2087  row 9: | 998- 998+ 998++ 1002-- 1002- 1002+
  2088  row 5: | 998- 998+ 998++ 1002-- 1002- 1002+
  2089  row 4: | 998- 998+ 998++ 1002-- 1002- 1002+
  2090  row 3: | 998- 998+ 998++ 1002-- 1002- 1002+
  2091  row 2: | 3+ 3+ 3+ 3+ 4- 4- 4- 4-
  2092  row 1: | -1+ -1+ 0- 0- 1+ 2- 3+ 3+ 3+ 3+ 4- 4- 4- 4-
  2093  row 0: | -3+ -3+ -3+ -2- -2- -2- -1+ -1+ 0- 0- 0+ 0+ 1- 1- 2+ 2+
  2094   3- 3- 4+ 4+ 5- 5-
  2095  row -1: | -3+ -3+ -2- -2- -2+ -2+ -1- -1- 0+ 0+ 0+ 1- 1- 1-
  2096  row -2: | -4+ -3- -2+ -2+ -1- -1-
  2097  row -4: | 3+ 3+ 4- 4-
  2098  row -5: | 3+ 3+ 4- 4-
  2099  row -6: | 2+ 3- 4+ 5-
  2100  
  2101  Path at line 89, before choices:
  2102  (0,0){curl 1}
  2103   ..(1,0.5)
  2104   ..(5,1.5)
  2105   ..(7,2.5)
  2106   ..(12,3.5)
  2107   ..{curl 1}(13,4)
  2108  
  2109  Path at line 89, after choices:
  2110  (0,0)..controls (0.3153,0.20053) and (0.6504,0.36807)
  2111   ..(1,0.5)..controls (2.29114,0.98723) and (3.72412,0.97192)
  2112   ..(5,1.5)..controls (5.68967,1.78545) and (6.30771,2.22081)
  2113   ..(7,2.5)..controls (8.58867,3.1407) and (10.3946,2.90645)
  2114   ..(12,3.5)..controls (12.3506,3.62962) and (12.68594,3.7973)
  2115   ..(13,4)
  2116  
  2117  {(unknown path p~9)=(path)}
  2118  {addto}
  2119  Tracing edges at line 89: (weight 1)
  2120  (1,0)(1,1)(5,1)(5,2)(7,2)(7,3)(12,3)(12,4)(12,3)(7,3)(7,2)(5,2)
  2121  (5,1)(1,1)(1,0).
  2122  
  2123  {smoothing:=1}
  2124  {addto}
  2125  Tracing edges at line 90: (weight 1)
  2126  (1,0)(1,1)(4,1)(4,2)(8,2)(8,3)(12,3)(12,4)(12,3)(8,3)(8,2)(4,2)
  2127  (4,1)(1,1)(1,0).
  2128  
  2129  {addto}
  2130  {-(4095)}
  2131  Path at line 91, before choices:
  2132  (-4095,0){curl 1}..tension 0.75 and 999
  2133   ..{curl 1}(0,2)
  2134  
  2135  Path at line 91, after choices:
  2136  (-4095,0)..controls (-2275,0.88889) and (-1.36636,1.99933)
  2137   ..(0,2)
  2138  
  2139  Tracing edges at line 91: (weight 1)
  2140  (-3071,0)(-3071,1)(-1024,1)(-1024,2)(-1024,1)(-3071,1)(-3071,0).
  2141  
  2142  {show}
  2143  {-(90)}
  2144  {(picture)rotated(-90)}
  2145  >> Edge structure at line 91:
  2146  
  2147  {(picture)+(picture)}
  2148  {(90)*(-1)}
  2149  {(picture)rotated(-90)}
  2150  {(picture)rotated(90)}
  2151  >> Edge structure at line 91:
  2152  row 2: | 4+++ 4+ 5--- 5-
  2153  row 1: | 0+++ 0+ 1--- 1- 2++ 3-- 4+++ 4+ 5--- 5-
  2154  row 0: | -2+++ -2+++ -1--- -1--- 0+++ 0+ 2--- 2- 3++ 4-- 5++ 6--
  2155  row -1: | -2+++ -2+ 0--- 0- 1+++ 1+++ 2--- 2---
  2156  row -2: | -3++ -2-- -1+++ -1+ 0--- 0-
  2157  
  2158  {if}
  2159  {if}
  2160  {elseif}
  2161  ! Missing `:' has been inserted.
  2162  <inserted text> 
  2163                  :
  2164  <to be read again> 
  2165                     elseif
  2166  l.92 if "a" if "ab">"b" elseif
  2167                                 path reverse (3,4): >="aa":foo...
  2168  
  2169  {("ab")>("b")}
  2170  {false}
  2171  {reverse((3,4))}
  2172  {path(path)}
  2173  {true}
  2174  {("a")>=("aa")}
  2175  {false}
  2176  {if}
  2177  {((xpart ',ypart '))-((1,yy))}
  2178  {((xpart '-1,linearform))<((xpart ',ypart '))}
  2179  {true}
  2180  {fi}
  2181  {else}
  2182  ! Extra else.
  2183  l.93 ... if '-(1,yy)<': :fi else
  2184                                   def dup text t=[[t;save endd...
  2185  I'm ignoring this; it doesn't match any if.
  2186  
  2187  {def}
  2188  {def}
  2189  {def}
  2190  
  2191  ||<tertiary>->show.substring(EXPR0)of("a"
  2192  (EXPR0)<-(2,-1)
  2193  {show}
  2194  {("a")&("bc")}
  2195  {((2,-1))substring("abc")}
  2196  >> "ba"
  2197  {tertiarydef}
  2198  {def}
  2199  {show}
  2200  {((23.3,4.5))subpath(path)}
  2201  Path at line 100, before choices:
  2202  (0,0){curl 2}
  2203   ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
  2204   ..(12.51372,3.72261){curl 3}
  2205   ..{curl 4}(-1,-1){curl 4}
  2206   ..{curl 2}cycle
  2207  
  2208  Path at line 100, after choices:
  2209  (0,0)..controls (-40.15552,-36.7088) and (58.71173,33.50317)
  2210   ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
  2211   ..(12.51372,3.72261)..controls (8.00914,2.1484) and (3.50458,0.5742)
  2212   ..(-1,-1)..controls (-0.66667,-0.66667) and (-0.33333,-0.33333)
  2213   ..cycle
  2214  
  2215  >> Path at line 100:
  2216  (0,0)..controls (-40.15552,-36.7088) and (58.71173,33.50317)
  2217   ..(13,4)..controls (12.84297,3.89865) and (12.68063,3.80606)
  2218   ..(12.51372,3.72261)..controls (8.00914,2.1484) and (3.50458,0.5742)
  2219   ..(-1,-1)..controls (-0.66667,-0.66667) and (-0.33333,-0.33333)
  2220   ..cycle
  2221  
  2222  {numspecial}
  2223  {(2)+(3)}
  2224  
  2225  ++->[[dup.showtoken(EXPR0);]];def.x.expr.z.of(EXPR1)=z.enddef;texts(x=((
  2226  EXPR1)+0)(EXPR1)+(EXPR1))("xx",foo((EXPR0)))=0]]
  2227  (EXPR0)<-path
  2228  (EXPR1)<-5
  2229  {begingroup}
  2230  
  2231  dup<text>->[[(TEXT0);save
  2232  (TEXT0)<-showtoken(path)
  2233  {begingroup}
  2234  {showtoken}
  2235  > (path)
  2236  {save}
  2237  {restoring ;}
  2238  {endgroup}
  2239  {def}
  2240  ! Missing symbolic token inserted.
  2241  <inserted text> 
  2242                   INACCESSIBLE
  2243  ++->...]];def.x.expr.z.of(EXPR1)
  2244                                  =z.enddef;texts(x=((EXPR1)+0)...
  2245  <to be read again> 
  2246                     ;
  2247  l.100 ...cle;numspecial p~++2+3;
  2248                                  [[
  2249  Sorry: You can't redefine a number, string, or expr.
  2250  I've inserted an inaccessible symbol so that your
  2251  definition will be completed without mixing me up too badly.
  2252  
  2253  
  2254  texts(TEXT0)(TEXT1)<expr>->for.n:=,for.n"yy":n,length.if.false:endfor(TE
  2255  XT1),(TEXT0),:if.string.n:forsuffixes.n=foo1,[foo(n)],':show(TEXT0),(TEX
  2256  T1)|(n;exitif.not('<='+((EXPR2),yy))endfor.for.m= :+endfor.for.m=alpha.s
  2257  tep-1.1 3$:+m.endfor.fi.endfor
  2258  (TEXT0)<-x=((5)+0)(5)+(5)
  2259  (TEXT1)<-"xx",foo((path))
  2260  (EXPR2)<-0
  2261  {for}
  2262  {for}
  2263  ! Missing `=' has been inserted.
  2264  <to be read again> 
  2265                     "yy"
  2266  texts->for.n:=,for.n"yy"
  2267                          :n,length.if.false:endfor(TEXT1),(TEX...
  2268  <to be read again> 
  2269                     ]]
  2270  <to be read again> 
  2271                     ;
  2272  l.100 ...cle;numspecial p~++2+3;
  2273                                  [[
  2274  The next thing in this loop should have been `=' or `:='.
  2275  But don't worry; I'll pretend that an equals sign
  2276  was present, and I'll look for the values next.
  2277  
  2278  {loop value="yy"}
  2279  {if}
  2280  {false}
  2281  {false}
  2282  ! Incomplete if; all text was ignored after line 100.
  2283  <inserted text> 
  2284                  fi
  2285  <to be read again> 
  2286                      ENDFOR
  2287  <for("yy")> ....if.false: ENDFOR
  2288                                  
  2289  texts->...length.if.false:endfor
  2290                                  (TEXT1),(TEXT0),:if.string.n:...
  2291  <to be read again> 
  2292                     ]]
  2293  <to be read again> 
  2294                     ;
  2295  l.100 ...cle;numspecial p~++2+3;
  2296                                  [[
  2297  A forbidden `outer' token occurred in skipped text.
  2298  This kind of error happens when you say `if...' and forget
  2299  the matching `fi'. I've inserted a `fi'; this might work.
  2300  
  2301  {[repeat the loop]}
  2302  {length("xx")}
  2303  
  2304  foo(TEXT2)->begingroup(TEXT2)endgroup
  2305  (SUFFIX0)<-
  2306  (SUFFIX1)<-foo
  2307  (TEXT2)<-(path)
  2308  {begingroup}
  2309  {endgroup}
  2310  
  2311  x<expr>of<primary>->(EXPR0)
  2312  {(5)+(0)}
  2313  (EXPR0)<-5
  2314  ! Missing `of' has been inserted for x.
  2315  <to be read again> 
  2316                     (5)
  2317  <argument> x=((5)+0)(5)
  2318                         +(5)
  2319  texts->...:endfor(TEXT1),(TEXT0)
  2320                                  ,:if.string.n:forsuffixes.n=f...
  2321  <to be read again> 
  2322                     ]]
  2323  <to be read again> 
  2324                     ;
  2325  l.100 ...cle;numspecial p~++2+3;
  2326                                  [[
  2327  I've got the first argument; will look now for the other.
  2328  
  2329  (EXPR1)<-5
  2330  {(5)+(5)}
  2331  {loop value="yy"}
  2332  {if}
  2333  {string("yy")}
  2334  {true}
  2335  {forsuffixes}
  2336  ! Missing symbolic token inserted.
  2337  <inserted text> 
  2338                   INACCESSIBLE
  2339  <for("yy")> ...orsuffixes(EXPR0)
  2340                                  =foo1,[foo((EXPR0))],':show.x...
  2341  texts->...3$:+m.endfor.fi.endfor
  2342                                  
  2343  <to be read again> 
  2344                     ]]
  2345  <to be read again> 
  2346                     ;
  2347  l.100 ...cle;numspecial p~++2+3;
  2348                                  [[
  2349  Sorry: You can't redefine a number, string, or expr.
  2350  I've inserted an inaccessible symbol so that your
  2351  definition will be completed without mixing me up too badly.
  2352  
  2353  
  2354  foo(TEXT2)->begingroup(TEXT2)endgroup
  2355  (SUFFIX0)<-
  2356  (SUFFIX1)<-foo
  2357  (TEXT2)<-("yy")
  2358  {begingroup}
  2359  {endgroup}
  2360  >> "yy"
  2361  ! Improper subscript has been replaced by zero.
  2362  <for("yy")> ...o1,[foo((EXPR0))]
  2363                                  ,':show.x=((5)+0)(5)+(5),"xx"...
  2364  texts->...3$:+m.endfor.fi.endfor
  2365                                  
  2366  <to be read again> 
  2367                     ]]
  2368  <to be read again> 
  2369                     ;
  2370  l.100 ...cle;numspecial p~++2+3;
  2371                                  [[
  2372  A bracketed subscript must have a known numeric value;
  2373  unfortunately, what I found was the value that appears just
  2374  above this error message. So I'll try a zero subscript.
  2375  
  2376  {loop value=foo1}
  2377  {show}
  2378  
  2379  x<expr>of<primary>->(EXPR0)
  2380  {(5)+(0)}
  2381  (EXPR0)<-5
  2382  ! Missing `of' has been inserted for x.
  2383  <to be read again> 
  2384                     (5)
  2385  <for(foo1)> show.x=((5)+0)(5)
  2386                               +(5),"xx",foo((path))|(("yy");ex...
  2387  <for("yy")> ...'+((0),yy))endfor
  2388                                  .for.m= :+endfor.for.m=alpha....
  2389  texts->...3$:+m.endfor.fi.endfor
  2390                                  
  2391  <to be read again> 
  2392                     ]]
  2393  <to be read again> 
  2394                     ;
  2395  l.100 ...cle;numspecial p~++2+3;
  2396                                  [[
  2397  I've got the first argument; will look now for the other.
  2398  
  2399  (EXPR1)<-5
  2400  {(5)+(5)}
  2401  >> 10
  2402  >> "xx"
  2403  foo(TEXT2)->begingroup(TEXT2)endgroup
  2404  (SUFFIX0)<-
  2405  (SUFFIX1)<-foo
  2406  (TEXT2)<-(path)
  2407  {begingroup}
  2408  {endgroup}
  2409  
  2410  |<suffix>->,(SUFFIX0)
  2411  ! Missing `)' has been inserted.
  2412  <to be read again> 
  2413                     ("yy")
  2414  <for(foo1)> ...o((path))|(("yy")
  2415                                  ;exitif.not('<='+((0),yy)) EN...
  2416  <for("yy")> ...'+((0),yy))endfor
  2417                                  .for.m= :+endfor.for.m=alpha....
  2418  texts->...3$:+m.endfor.fi.endfor
  2419                                  
  2420  <to be read again> 
  2421                     ]]
  2422  <to be read again> 
  2423                     ;
  2424  l.100 ...cle;numspecial p~++2+3;
  2425                                  [[
  2426  I've gotten to the end of the macro parameter list.
  2427  You might want to delete some tokens before continuing.
  2428  
  2429  (SUFFIX0)<-
  2430  >> Path at line 100:
  2431  (0,0)..controls (15,4) and (-15,-12)
  2432   ..(4,0)
  2433  
  2434  >> "yy"
  2435  {exitif}
  2436  {((xpart ',ypart '))+((0,yy))}
  2437  {((xpart ',ypart '))<=((xpart ',linearform))}
  2438  >> -yy
  2439  ! Unknown relation will be considered false.
  2440  <to be read again> 
  2441                     )
  2442  <for(foo1)> ...ot('<='+((0),yy))
  2443                                   ENDFOR
  2444  <for("yy")> ...'+((0),yy))endfor
  2445                                  .for.m= :+endfor.for.m=alpha....
  2446  texts->...3$:+m.endfor.fi.endfor
  2447                                  
  2448  <to be read again> 
  2449                     ]]
  2450  <to be read again> 
  2451                     ;
  2452  l.100 ...cle;numspecial p~++2+3;
  2453                                  [[
  2454  Oh dear. I can't decide if the expression above is positive,
  2455  negative, or zero. So this comparison test won't be `true'.
  2456  
  2457  {[repeat the loop]}
  2458  {loop value=0}
  2459  {not(false)}
  2460  {true}
  2461  {for}
  2462  {for}
  2463  >> 0.5p3~
  2464  ! Improper initial value has been replaced by 0.
  2465  <to be read again> 
  2466                     step
  2467  <for("yy")> ....for.m=alpha.step
  2468                                  -1.1 3$:+m.endfor.fi ENDFOR
  2469  texts->...3$:+m.endfor.fi.endfor
  2470                                  
  2471  <to be read again> 
  2472                     ]]
  2473  <to be read again> 
  2474                     ;
  2475  l.100 ...cle;numspecial p~++2+3;
  2476                                  [[
  2477  When you say `for x=a step b until c',
  2478  the initial value `a' and the step size `b'
  2479  and the final value `c' must have known numeric values.
  2480  I'm zeroing this one. Proceed, with fingers crossed.
  2481  
  2482  {-(1.1)}
  2483  ! Missing `until' has been inserted.
  2484  <to be read again> 
  2485                     3
  2486  <for("yy")> ...=alpha.step-1.1 3
  2487                                  $:+m.endfor.fi ENDFOR
  2488  texts->...3$:+m.endfor.fi.endfor
  2489                                  
  2490  <to be read again> 
  2491                     ]]
  2492  <to be read again> 
  2493                     ;
  2494  l.100 ...cle;numspecial p~++2+3;
  2495                                  [[
  2496  I assume you meant to say `until' after `step'.
  2497  So I'll look for the final value and colon next.
  2498  
  2499  {(3)*(-1)}
  2500  {loop value=0}
  2501  {[repeat the loop]}
  2502  {loop value=-1.1}
  2503  {+(0)}
  2504  {[repeat the loop]}
  2505  {loop value=-2.20001}
  2506  {(0)+(-1.1)}
  2507  {[repeat the loop]}
  2508  {fi}
  2509  {[repeat the loop]}
  2510  {loop value=2}
  2511  {if}
  2512  {string(2)}
  2513  {false}
  2514  {[repeat the loop]}
  2515  {loop value=path}
  2516  {if}
  2517  {string(path)}
  2518  {false}
  2519  {[repeat the loop]}
  2520  {loop value=10}
  2521  {if}
  2522  {string(10)}
  2523  {false}
  2524  {[repeat the loop]}
  2525  {(-1.1)+(-2.20001)}
  2526  {endgroup}
  2527  {begingroup}
  2528  {let}
  2529  {save}
  2530  {def}
  2531  {def}
  2532  
  2533  texts->input
  2534  {input}
  2535  (trap.mf
  2536  if->endinput?
  2537  {endinput}
  2538  {if}
  2539  {known(0)}
  2540  {not(true)}
  2541  {false}
  2542  )
  2543  ! Incomplete if; all text was ignored after line 2.
  2544  <inserted text> 
  2545                  fi
  2546  l.101 ...input enddef;texts trap
  2547                                   ]];
  2548  The file ended while I was skipping conditional text.
  2549  This kind of error happens when you say `if...' and forget
  2550  the matching `fi'. I've inserted a `fi'; this might work.
  2551  
  2552  {restoring \}
  2553  {restoring if}
  2554  {endgroup}
  2555  
  2556  dup<text>->[[(TEXT0);save
  2557  Runaway text?
  2558  [[def.texts.secondary.x=primarydef.y++y=x@y.enddef;showtoken ETC.
  2559  ! Forbidden token found while scanning a text argument.
  2560  <inserted text> 
  2561                  endgroup
  2562  <to be read again> 
  2563                     \
  2564  l.102 ...showtoken++;x enddef]]\
  2565                                  ;
  2566  It seems that a right delimiter was left out,
  2567  causing me to read past where you wanted me to stop.
  2568  I'll try to recover; but if the error is serious,
  2569  you'd better type `E' or `X' now and fix your file.
  2570  
  2571  (TEXT0)<-[[def.texts.secondary.x=primarydef.y++y=x@y.enddef;showtoken++;
  2572  x.enddef]]
  2573  {begingroup}
  2574  {begingroup}
  2575  {def}
  2576  {endgroup}
  2577  {save}
  2578  ! Missing symbolic token inserted.
  2579  <inserted text> 
  2580                   INACCESSIBLE
  2581  <to be read again> 
  2582                     \
  2583  l.102 ...showtoken++;x enddef]]\
  2584                                  ;
  2585  Sorry: You can't redefine my error-recovery tokens.
  2586  I've inserted an inaccessible symbol so that your
  2587  definition will be completed without mixing me up too badly.
  2588  
  2589  {\}
  2590  {proofing:=1}
  2591  
  2592  texts<secondary>->primarydef.y++y=(EXPR0)@y.enddef;showtoken++;(EXPR0)
  2593  (EXPR0)<-"a"
  2594  {primarydef}
  2595  {showtoken}
  2596  > ++=primarydef'd macro:
  2597  ("a")@(EXPR1)
  2598  {("a")&("b")}
  2599  ab
  2600  texts<secondary>->primarydef.y++y=(EXPR0)@y.enddef;showtoken++;(EXPR0)
  2601  {(1.00002)*(a1)}
  2602  {-(1.00002a1)}
  2603  (EXPR0)<--1.00002a1
  2604  {primarydef}
  2605  {showtoken}
  2606  > ++=primarydef'd macro:
  2607  (-1.00002a1)@(EXPR1)
  2608  {(a2)+(a3)}
  2609  {(linearform)+(a4)}
  2610  {(linearform)+(a5)}
  2611  {(linearform)+(a6)}
  2612  {-(linearform)}
  2613  {(-1.00002a1)=(linearform)}
  2614  ## a1=0.99998a6+0.99998a5+0.99998a4+0.99998a3+0.99998a2
  2615  {-((a3,a2))}
  2616  {((-a3,-a2))/(0.99998)}
  2617  {(a4)+(a5)}
  2618  {begingroup}
  2619  {showdependencies}
  2620  a1=0.99998a6+0.99998a5+0.99998a4+0.99998a3+0.99998a2
  2621  alpha=0.5p3~
  2622  {endgroup}
  2623  {(linearform)+(a6)}
  2624  {(a3)+(a4)}
  2625  {(linearform)+(a5)}
  2626  {(linearform)+(a6)}
  2627  {-((linearform,linearform))}
  2628  {((-1.00002a3,-1.00002a2))=((linearform,linearform))}
  2629  ## a2=0.99998a6+0.99998a5+0.99998a4+0.99998a3
  2630  ## a3=0.99998a6+0.99998a5+0.99998a4
  2631  {restoring  INACCESSIBLE}
  2632  {endgroup}
  2633  {(1.00002)*(0.25a4*4)}
  2634  {(0.25a4*4)+(1)}
  2635  {(0.25a5*4)+(0.25a6*4)}
  2636  {(0.25a4*4+1)=(linearform)}
  2637  ## a4*4=0.99998a6*4+0.99998a5*4-3.99994
  2638  {(0.9)*(0.5p3~)}
  2639  {(0.45p3~)+(7)}
  2640  {alpha:=0.45p3~+7}
  2641  ## alpha=0.45p3~+7
  2642  {showdependencies}
  2643  alpha=0.45p3~+7
  2644  a4=0.25a6*4+0.25a5*4-0.99998
  2645  a3=0.49998a6*4+0.49998a5*4-0.99997
  2646  a2=0.99997a6*4+0.99997a5*4-1.99992
  2647  a1=1.99992a6*4+1.99992a5*4-3.99982
  2648  {(0.66667)-(0.25a6*4)}
  2649  {(0.25a6*4)=(-0.25a6*4+0.66667)}
  2650  ## a6*4=1.33334
  2651  {(0.25a5*4)=(0.33333)}
  2652  ## a5*4=1.33331
  2653  #### a4=-0.33333
  2654  #### a3=0.33333
  2655  #### a2=0.66664
  2656  #### a1=1.33328
  2657  {cull}
  2658  {(4)*(0.33333)}
  2659  {chardp:=27}
  2660  {charcode:=27}
  2661  {openwindow}
  2662  ! Improper `openwindow'.
  2663  <to be read again> 
  2664                     ;
  2665  l.107 ...) to (0,0) at "whoops";
  2666                                   addto p; shipout p; cull p;
  2667  Say `openwindow k from (r0,c0) to (r1,c1) at (x,y)',
  2668  where all quantities are known and k is between 0 and 15.
  2669  
  2670  {addto}
  2671  >> (8,1,5,-5,-5,5)
  2672  ! Not a suitable variable.
  2673  <to be read again> 
  2674                     ;
  2675  l.107 ...) at "whoops"; addto p;
  2676                                   shipout p; cull p;
  2677  At this point I needed to see the name of a picture variable.
  2678  (Or perhaps you have indeed presented me with one; I might
  2679  have missed it, if it wasn't followed by the proper token.)
  2680  So I'll not change anything just now.
  2681  
  2682  {shipout}
  2683  ! Variable p is the wrong type (transform).
  2684  <to be read again> 
  2685                     ;
  2686  l.107 ...s"; addto p; shipout p;
  2687                                   cull p;
  2688  I was looking for a "known" picture variable.
  2689  So I'll not change anything just now.
  2690  
  2691  {cull}
  2692  >> (8,1,5,-5,-5,5)
  2693  ! Not a suitable variable.
  2694  <to be read again> 
  2695                     ;
  2696  l.107 ...o p; shipout p; cull p;
  2697                                  
  2698  At this point I needed to see the name of a picture variable.
  2699  (Or perhaps you have indeed presented me with one; I might
  2700  have missed it, if it wasn't followed by the proper token.)
  2701  So I'll not change anything just now.
  2702  
  2703  {openwindow}
  2704  {-(0.5)}
  2705  
  2706  Calling BLANKRECTANGLE(0,0,0,0)
  2707  Calling UPDATESCREEN
  2708  {special}
  2709  >> (8,1,5,-5,-5,5)
  2710  ! Unsuitable expression.
  2711  <to be read again> 
  2712                     ;
  2713  l.108 ...$) at (0,0); special p;
  2714                                   numspecial "p";
  2715  The expression shown above has the wrong type to be output.
  2716  
  2717  {numspecial}
  2718  >> "p"
  2719  ! Unsuitable expression.
  2720  <to be read again> 
  2721                     ;
  2722  l.108 ...cial p; numspecial "p";
  2723                                  
  2724  The expression shown above has the wrong type to be output.
  2725  
  2726  {openwindow}
  2727  {(32)*(1024)}
  2728  ! Arithmetic overflow.
  2729  l.109 ....49999 from (0,32*1024)
  2730                                   to (1,31*1057) at (0,0); shi...
  2731  Uh, oh. A little while ago one of the quantities that I was
  2732  computing got too large, so I'm afraid your answers will be
  2733  somewhat askew. You'll probably have to adopt different
  2734  tactics next time. But I shall try to carry on anyway.
  2735  
  2736  {(31)*(1057)}
  2737  
  2738  Calling BLANKRECTANGLE(100,100,0,1)
  2739  Calling UPDATESCREEN
  2740  {shipout}
  2741  [27.-14]
  2742  Edge structure at line 109 (just shipped out):
  2743  row 0: | -3++ -2-- -1++ 4094--
  2744  row -1: | -4096++ -3-- -2++ -1--
  2745  
  2746  {openwindow}
  2747  Path at line 110, before choices:
  2748  (0,0)
  2749  
  2750  Path at line 110, after choices:
  2751  (0,0)
  2752  
  2753  {length(path)}
  2754  
  2755  Calling BLANKRECTANGLE(0,2,0,4)
  2756  Calling UPDATESCREEN
  2757  {openwindow}
  2758  {length((-1,0))}
  2759  {-(5)}
  2760  
  2761  Calling BLANKRECTANGLE(1,10,1,3)
  2762  Calling UPDATESCREEN
  2763  {display}
  2764  {nullpicture}
  2765  >> picture
  2766  ! Not a suitable variable.
  2767  <to be read again> 
  2768                     ;
  2769  l.112 display nullpicture;
  2770                             display p inwindow 3; display p in...
  2771  At this point I needed to see the name of a picture variable.
  2772  (Or perhaps you have indeed presented me with one; I might
  2773  have missed it, if it wasn't followed by the proper token.)
  2774  So I'll not change anything just now.
  2775  
  2776  {display}
  2777  >> 3
  2778  ! Bad window number.
  2779  <to be read again> 
  2780                     ;
  2781  l.112 ...; display p inwindow 3;
  2782                                   display p inwindow 6;
  2783  It should be the number of an open window.
  2784  
  2785  {display}
  2786  ! Variable p is the wrong type (transform).
  2787  <to be read again> 
  2788                     ;
  2789  l.112 ...; display p inwindow 6;
  2790                                  
  2791  I was looking for a "known" picture variable.
  2792  So I'll not change anything just now.
  2793  
  2794  {display}
  2795  
  2796  Calling BLANKRECTANGLE(1,10,1,3)
  2797  Calling PAINTROW(2,1;4,5,6,10)
  2798  Calling UPDATESCREEN
  2799  {cull}
  2800  ! Enormous number has been reduced.
  2801  l.113 ...opping (0.1,4095.999999
  2802                                  ) withweight 3.5
  2803  I can't handle numbers bigger than about 4095.99998;
  2804  so I've changed your constant to that maximum amount.
  2805  
  2806  ! Weight must be -3, -2, -1, +1, +2, or +3.
  2807  <to be read again> 
  2808                     withweight
  2809  l.114 withweight
  2810                  -3.5; display e0 inwindow 5.5; addto e0 also ...
  2811  I'll ignore the bad `with' clause and look for another.
  2812  
  2813  {-(3.5)}
  2814  ! Bad culling amounts.
  2815  <to be read again> 
  2816                     ;
  2817  l.114 withweight-3.5;
  2818                        display e0 inwindow 5.5; addto e0 also ...
  2819  Always cull by known amounts that exclude 0.
  2820  
  2821  {display}
  2822  
  2823  Calling BLANKRECTANGLE(1,10,1,3)
  2824  Calling PAINTROW(2,1;4,5,6,8,9,10)
  2825  Calling PAINTROW(1,1;6,7,8,9)
  2826  Calling UPDATESCREEN
  2827  {addto}
  2828  >> (8,1,5,-5,-5,5)
  2829  ! Improper `addto'.
  2830  <to be read again> 
  2831                     ;
  2832  l.114 ...w 5.5; addto e0 also p;
  2833                                   addto e0 contour 0;
  2834  This expression should have specified a known picture.
  2835  So I'll not change anything just now.
  2836  
  2837  {addto}
  2838  >> 0
  2839  ! Improper `addto'.
  2840  <to be read again> 
  2841                     ;
  2842  l.114 ... p; addto e0 contour 0;
  2843                                  
  2844  This expression should have been a known path.
  2845  So I'll not change anything just now.
  2846  
  2847  {display}
  2848  
  2849  Calling BLANKRECTANGLE(0,2,0,4)
  2850  Calling PAINTROW(2,1;0,1)
  2851  Calling PAINTROW(1,1;0,1)
  2852  Calling PAINTROW(0,1;1,2)
  2853  Calling UPDATESCREEN
  2854  {addto}
  2855  ! Not a cycle.
  2856  <to be read again> 
  2857                     ;
  2858  l.115 ...; addto e0 contour p~9;
  2859                                  
  2860  That contour should have ended with `..cycle' or `&cycle'.
  2861  So I'll not change anything just now.
  2862  
  2863  {display}
  2864  {(3)+(3)}
  2865  
  2866  Calling BLANKRECTANGLE(1,10,1,3)
  2867  Calling PAINTROW(2,1;4,5,6,10)
  2868  Calling UPDATESCREEN
  2869  {display}
  2870  {begingroup}
  2871  {vardef}
  2872  {endgroup}
  2873  ! Variable e0e0 has been obliterated.
  2874  <to be read again> 
  2875                     ;
  2876  l.116 ...vardef e[]e=enddef;6]];
  2877                                  
  2878  It seems you did a nasty thing---probably by accident,
  2879  but nevertheless you nearly hornswoggled me...
  2880  While I was evaluating the right-hand side of this
  2881  command, something happened, and the left-hand side
  2882  is no longer a variable! So I won't change anything.
  2883  
  2884  {addto}
  2885  {display}
  2886  Calling PAINTROW(1,1;0,1,2)
  2887  Calling PAINTROW(0,0;0,1,2)
  2888  Calling UPDATESCREEN
  2889  {ligtable}
  2890  {display}
  2891  {display}
  2892  Calling UPDATESCREEN
  2893  {show}
  2894  {begingroup}
  2895  {interim}
  2896  {tracingcommands:=0}
  2897  
  2898  lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
  2899  dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
  2900  ndarychar+51.29999
  2901  (TEXT0)<-"g"
  2902  (TEXT1)<-=:|
  2903  
  2904  lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
  2905  dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
  2906  ndarychar+51.29999
  2907  (TEXT0)<-"h":"i"
  2908  (TEXT1)<-|=:
  2909  ! Character h is already in a ligtable.
  2910  <to be read again> 
  2911                     :
  2912  <argument> "h":
  2913                 "i"
  2914  lig->...;ligtable(TEXT0):(TEXT0)
  2915                                  (TEXT1)0,skipto255;boundarych...
  2916  l.119 ...=:|); lig("h":"i")(|=:)
  2917                                  ;
  2918  It's not legal to label a character more than once.
  2919  So I'll not change anything just now.
  2920  
  2921  
  2922  lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
  2923  dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
  2924  ndarychar+51.29999
  2925  (TEXT0)<-"j"
  2926  (TEXT1)<-|=:>
  2927  
  2928  lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
  2929  dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
  2930  ndarychar+51.29999
  2931  (TEXT0)<-"k"
  2932  (TEXT1)<-=:|>
  2933  
  2934  lig(TEXT0)(TEXT1)->ligtable0::for*=1step1until60:0kern.boundarychar+*,en
  2935  dfor.skipto0;ligtable(TEXT0):(TEXT0)(TEXT1)0,skipto255;boundarychar:=bou
  2936  ndarychar+51.29999
  2937  (TEXT0)<-"l"
  2938  (TEXT1)<-|=:|>
  2939  {restoring tracingcommands=2.1}
  2940  {endgroup}
  2941  >> vacuous
  2942  {begingroup}
  2943  {let}
  2944  {vardef}
  2945  {endgroup}
  2946  ! Variable c.a1 has been obliterated.
  2947  <to be read again> 
  2948                     ;
  2949  l.121 ...;vardef b=enddef;1]] ];
  2950                                   ligtable"m":0=:0,skipto5;
  2951  It seems you did a nasty thing---probably by accident,
  2952  but nevertheless you nearly hornswoggled me...
  2953  While I was evaluating the suffix of this variable,
  2954  something was redefined, and it's no longer a variable!
  2955  In order to get back on my feet, I've inserted `0' instead.
  2956  
  2957  {b1:=0}
  2958  ! Variable b1 has been obliterated.
  2959  <to be read again> 
  2960                     ;
  2961  l.121 ...;vardef b=enddef;1]] ];
  2962                                   ligtable"m":0=:0,skipto5;
  2963  It seems you did a nasty thing---probably by accident,
  2964  but nevertheless you nearly hornswoggled me...
  2965  While I was evaluating the right-hand side of this
  2966  command, something happened, and the left-hand side
  2967  is no longer a variable! So I won't change anything.
  2968  
  2969  {ligtable}
  2970  ! A statement can't begin with `skipto'.
  2971  <to be read again> 
  2972                     !!
  2973  l.122 !!
  2974          ; errhelp 0; errmessage "Be like Jane";
  2975  I was looking for the beginning of a new statement.
  2976  If you just proceed without changing anything, I'll ignore
  2977  everything up to the next `;'. Please insert a semicolon
  2978  now in front of anything that you don't want me to delete.
  2979  (See Chapter 27 of The METAFONTbook for an example.)
  2980  
  2981  ! Extra tokens will be flushed.
  2982  <to be read again> 
  2983                     !!
  2984  l.122 !!
  2985          ; errhelp 0; errmessage "Be like Jane";
  2986  I've just read as much of that statement as I could fathom,
  2987  so a semicolon should have been next. It's very puzzling...
  2988  but I'll try to get myself back together, by ignoring
  2989  everything up to the next `;'. Please insert a semicolon
  2990  now in front of anything that you don't want me to delete.
  2991  (See Chapter 27 of The METAFONTbook for an example.)
  2992  
  2993  {errhelp}
  2994  >> 0
  2995  ! Not a string.
  2996  <to be read again> 
  2997                     ;
  2998  l.122 !!; errhelp 0;
  2999                       errmessage "Be like Jane";
  3000  A message should be a known string expression.
  3001  
  3002  {errmessage}
  3003  ! Be like Jane.
  3004  <to be read again> 
  3005                     ;
  3006  l.122 ...message "Be like Jane";
  3007                                  
  3008  This error message was generated by an `errmessage'
  3009  command, so I can't give any explicit help.
  3010  Pretend that you're Miss Marple: Examine all clues,
  3011  and deduce the truth by inspired guesses.
  3012  
  3013  {errhelp}
  3014  {errmessage}
  3015  ! .
  3016  <to be read again> 
  3017                     ;
  3018  l.123 ...e%%%lp%"; errmessage"";
  3019                                   errhelp ""; errmessage "Anot...
  3020  He%
  3021  lp
  3022  
  3023  
  3024  {errhelp}
  3025  {errmessage}
  3026  ! Another.
  3027  <to be read again> 
  3028                     ;
  3029  l.123 ...; errmessage "Another";
  3030                                  
  3031  (That was another `errmessage'.)
  3032  
  3033  {headerbyte}
  3034  >> 0
  3035  ! Improper location.
  3036  <to be read again> 
  3037                     ;
  3038  l.124 headerbyte 0;
  3039                      headerbyte(48.5)substring(-9,9)of"long"; ...
  3040  I was looking for a known, positive number.
  3041  For safety's sake I'll ignore the present command.
  3042  
  3043  {headerbyte}
  3044  ! Missing `:' has been inserted.
  3045  <to be read again> 
  3046                     substring
  3047  l.124 ...aderbyte(48.5)substring
  3048                                  (-9,9)of"long"; for\=0:\
  3049  A colon should follow a headerbyte or fontdimen location.
  3050  
  3051  {-(9)}
  3052  {((-9,9))substring("long")}
  3053  >> "long"
  3054  ! Invalid code has been replaced by 0.
  3055  <to be read again> 
  3056                     ;
  3057  l.124 ...ubstring(-9,9)of"long";
  3058                                   for\=0:\
  3059  I was looking for a number between 0 and 255, or for a
  3060  string of length 1. Didn't find it; will use 0 instead.
  3061  
  3062  {for}
  3063  Runaway loop?
  3064  ! Forbidden token found while scanning the text of a for loop.
  3065  <inserted text> 
  3066                  endfor
  3067  <to be read again> 
  3068                     \
  3069  l.124 ...-9,9)of"long"; for\=0:\
  3070                                  
  3071  I suspect you have forgotten an `endfor',
  3072  causing me to read past where you wanted me to stop.
  3073  I'll try to recover; but if the error is serious,
  3074  you'd better type `E' or `X' now and fix your file.
  3075  
  3076  {loop value=0}
  3077  {[repeat the loop]}
  3078  {\}
  3079  {headerbyte}
  3080  {(2)*(0.33333)}
  3081  {fontdimen}
  3082  {(2)*(0.33333)}
  3083  >> "q"
  3084  ! Improper font parameter.
  3085  <to be read again> 
  3086                     ;
  3087  l.125 ..."; fontdimen 9:2a6,"q";
  3088                                   fontdimen 1:2048;
  3089  I'm zeroing this one. Proceed, with fingers crossed.
  3090  
  3091  {fontdimen}
  3092  {fontmaking:=1}
  3093  {extensible}
  3094  ! Missing `:' has been inserted.
  3095  <to be read again> 
  3096                     5
  3097  l.126 ...king:=1; extensible 5 5
  3098                                  ,"c"255.5,"d"; charlist 0:5:"...
  3099  I'm processing `extensible c: t,m,b,r'.
  3100  
  3101  ! Missing `,' has been inserted.
  3102  <to be read again> 
  3103                     255.5
  3104  l.126 ...extensible 5 5,"c"255.5
  3105                                  ,"d"; charlist 0:5:"a":"d";
  3106  I'm processing `extensible c: t,m,b,r'.
  3107  
  3108  >> 255.5
  3109  ! Invalid code has been replaced by 0.
  3110  <to be read again> 
  3111                     ,
  3112  l.126 ...xtensible 5 5,"c"255.5,
  3113                                  "d"; charlist 0:5:"a":"d";
  3114  I was looking for a number between 0 and 255, or for a
  3115  string of length 1. Didn't find it; will use 0 instead.
  3116  
  3117  {charlist}
  3118  ! Character code 5 is already extensible.
  3119  <to be read again> 
  3120                     :
  3121  l.126 ...,"d"; charlist 0:5:"a":
  3122                                  "d";
  3123  It's not legal to label a character more than once.
  3124  So I'll not change anything just now.
  3125  
  3126  {ligtable}
  3127  ! Too far to skip.
  3128  l.127 ligtable255:255::
  3129                         "a"=:"b","d" kern -2048,"c":0:99.5:"e"...
  3130  At most 127 lig/kern steps can separate skipto1 from 1::.
  3131  
  3132  {-(2048)}
  3133  ! Character code 0 is already in a charlist.
  3134  <to be read again> 
  3135                     :
  3136  l.127 ...","d" kern -2048,"c":0:
  3137                                  99.5:"e"|=:|"f",0kern';
  3138  It's not legal to label a character more than once.
  3139  So I'll not change anything just now.
  3140  
  3141  >> (xpart ',ypart ')
  3142  ! Improper kern.
  3143  <to be read again> 
  3144                     ;
  3145  l.127 ...99.5:"e"|=:|"f",0kern';
  3146                                  
  3147  The amount of kern should be a known numeric value.
  3148  I'm zeroing this one. Proceed, with fingers crossed.
  3149  
  3150  {ligtable}
  3151  ! Character code 5 is already extensible.
  3152  <to be read again> 
  3153                     :
  3154  l.128 ligtable 5:
  3155                   0; def clear(text x)=interim x:=$ enddef; cl...
  3156  It's not legal to label a character more than once.
  3157  So I'll not change anything just now.
  3158  
  3159  ! Illegal ligtable step.
  3160  <to be read again> 
  3161                     ;
  3162  l.128 ligtable 5:0;
  3163                      def clear(text x)=interim x:=$ enddef; cl...
  3164  I was looking for `=:' or `kern' here.
  3165  
  3166  {def}
  3167  
  3168  clear(TEXT0)->interim(TEXT0):=$
  3169  (TEXT0)<-hppp
  3170  {interim}
  3171  {hppp:=-1}
  3172  {(0)=(0)}
  3173  ! Redundant equation.
  3174  <to be read again> 
  3175                     ;
  3176  l.128 ...f; clear(hppp); vppp=0;
  3177                                  
  3178  I already knew that this equation was true.
  3179  But perhaps no harm has been done; let's continue.
  3180  
  3181  {begingroup}
  3182  
  3183  clear(TEXT0)->interim(TEXT0):=$
  3184  (TEXT0)<-tracingmacros
  3185  {interim}
  3186  {tracingmacros:=-1}
  3187  {interim}
  3188  {tracingcommands:=-1}
  3189  Runaway text?
  3190  tracingoutput
  3191  ! Forbidden token found while scanning a text argument.
  3192  <inserted text> 
  3193                  )
  3194  <to be read again> 
  3195                     \
  3196  l.129 ...); clear(tracingoutput\
  3197                                  ;
  3198  It seems that a right delimiter was left out,
  3199  causing me to read past where you wanted me to stop.
  3200  I'll try to recover; but if the error is serious,
  3201  you'd better type `E' or `X' now and fix your file.
  3202  
  3203  {restoring proofing=1}
  3204  {restoring tracingoutput=1}
  3205  {restoring tracingcommands=2.1}
  3206  {restoring tracingmacros=1}
  3207  {endgroup}
  3208  {def}
  3209  {def}
  3210  {addto}
  3211  Path at line 139, before choices:
  3212  (0,0){4096,0}
  3213   ..{4096,0}(1,0){0,-4096}
  3214   ..{0,4096}cycle
  3215  
  3216  Path at line 139, after choices:
  3217  (0,0)..controls (0.33333,0) and (0.66667,0)
  3218   ..(1,0)..controls (1,-0.66667) and (0,-0.66667)
  3219   ..cycle
  3220  
  3221  > 0 ENE 1 (ESE SSE) SSW WSW WNW NNW 0 (NNE)
  3222  ! Backwards path (turning number is negative).
  3223  <to be read again> 
  3224                     ;
  3225  l.139 ....{0,1}cycle withpen qq;
  3226                                  
  3227  The path doesn't have a counterclockwise orientation,
  3228  so I'll probably have trouble drawing it.
  3229  (See Chapter 27 of The METAFONTbook for more help.)
  3230  
  3231  Tracing edges at line 139: (weight 1)
  3232  @ Octant ENE (2 offsets), from (2.5,-0.5) to (1.5,-2)
  3233  @ retrograde line from (2.5,-0.5) to (0.5,-2)
  3234  (3,0)(3,-1)(1,-1)
  3235  @ transition line 0, from (0.5,-2) to (0.5,-2)
  3236  @ transition line 1, from (1.5,-2) to (2.5,-1.5)
  3237  @ transition line 2, from (2.5,-1.5) to (3.5,-0.5)
  3238  (1,-2)(3,-2)(3,-1)(4,-1)
  3239  @ retrograde line from (3.5,-0.5) to (1.5,-2)
  3240  (4,0)(4,-1)(2,-1)
  3241  @ Octant ESE (2 offsets), from (1.5,-2) to (-1,0)
  3242  @ retrograde line from (1.5,-2) to (-1,0)
  3243  (2,-2)(1,-2)(1,-1)(0,-1)
  3244  @ transition line 3, from (-1,0) to (0.5,-1.5)
  3245  @ transition line 2, from (0.5,-1.5) to (1.5,-2)
  3246  @ transition line 1, from (1.5,-2) to (1.5,-2)
  3247  (0,0)(0,-1)(1,-1)
  3248  @ retrograde line from (1.5,-2) to (-1,0)
  3249  (1,-2)(1,-1)(0,-1)
  3250  @ Octant SSE (0 offsets), from (-1,0) to (-1,0)
  3251  @ transition line 0, from (-1,0) to (-1,0)
  3252  @ Octant SSW (2 offsets), from (-1,0) to (-0.82407,0.67593)
  3253  @ retrograde line from (-1,0) to (-0.5,1.5)
  3254  (0,0)(-1,0)(-1,1)(0,1)
  3255  @ transition line 3, from (-0.5,1.5) to (-0.5,1.5)
  3256  @ transition line 2, from (-0.5,1.5) to (-1,0)
  3257  @ transition line 1, from (-1.06265,-0.39499) to (-0.56265,1.10501)
  3258  @ transition line 2, from (-0.82407,0.67593) to (-1.32407,-0.82407)
  3259  @ transition line 1, from (-1.32407,-0.82407) to (-1.32407,-0.82407)
  3260  (0,2)(0,1)(-1,1)
  3261  @ retrograde line from (-1.32407,-0.82407) to (-0.82407,0.67593)
  3262  (-1,-1)
  3263  @ Octant WSW (2 offsets), from (-0.82407,0.67593) to (1,2)
  3264  @ retrograde line from (-0.82407,0.67593) to (1.17593,2.17593)
  3265  (-1,1)(0,1)
  3266  @ transition line 0, from (1.17593,2.17593) to (1.17593,2.17593)
  3267  @ transition line 1, from (1.17593,2.17593) to (0.17593,1.67593)
  3268  @ transition line 2, from (0,1.5) to (-1,0.5)
  3269  (0,2)
  3270  @ retrograde line from (-1,0.5) to (1,2)
  3271  (0,1)
  3272  @ Octant WNW (2 offsets), from (1,2) to (3.32407,0.17593)
  3273  @ retrograde line from (1,2) to (3.5,0)
  3274  (0,2)(2,2)(2,1)(3,1)
  3275  @ transition line 3, from (3.5,0) to (2,1.5)
  3276  @ transition line 2, from (1.82407,1.67593) to (0.82407,2.17593)
  3277  @ transition line 1, from (0.82407,2.17593) to (0.82407,2.17593)
  3278  (3,0)(3,1)(2,1)
  3279  @ retrograde line from (0.82407,2.17593) to (3.32407,0.17593)
  3280  (2,2)(2,1)(3,1)
  3281  @ Octant NNW (0 offsets), from (3.32407,0.17593) to (3,1)
  3282  @ transition line 0, from (3.32407,0.17593) to (3.32407,0.17593)
  3283  (3,0)
  3284  @ Octant NNE (2 offsets), from (3,1) to (2.5,-0.5)
  3285  @ retrograde line from (3,1) to (2.5,-0.5)
  3286  (3,1)
  3287  @ transition line 3, from (2.5,-0.5) to (2.5,-0.5)
  3288  @ transition line 2, from (2.5,-0.5) to (3,1)
  3289  @ transition line 1, from (3,1) to (3,1)
  3290  (3,0)
  3291  @ retrograde line from (3,1) to (2.5,-0.5)
  3292  (3,1)(3,0).
  3293  
  3294  
  3295  f(SUFFIX0)(EXPR1)(EXPR2)(TEXT3)->numeric.w;show(EXPR1);addto(SUFFIX0)con
  3296  tour(0,0)..(2,0)..(1,$)..(1,1)..cycle.withpen.qq;addto(SUFFIX0)doublepat
  3297  h(0,0){1,1}..{2,1}(2,1)withpen.qq;addto(SUFFIX0)doublepath(($,$){1,0}..(
  3298  1,1){1,0})scaled0.5withpen.nullpen;cull(SUFFIX0)keeping(4,4)withweight1.
  3299  5;
  3300  ! Missing `]' has been inserted.
  3301  <to be read again> 
  3302                     ,
  3303  l.140 f(e[3,
  3304              w); g(e3,transformed p,penoffset-(1,1.3)of(pencir...
  3305  I've seen a `[' and a subscript value, in a suffix,
  3306  so a right bracket should have come next.
  3307  I shall pretend that one was there.
  3308  
  3309  (SUFFIX0)<-e3
  3310  (EXPR1)<-unknown path w
  3311  ! Missing argument to f.
  3312  <to be read again> 
  3313                     ;
  3314  l.140 f(e[3,w);
  3315                  g(e3,transformed p,penoffset-(1,1.3)of(pencir...
  3316  That macro has more parameters than you thought.
  3317  I'll continue by pretending that each missing argument
  3318  is either zero or null.
  3319  
  3320  (EXPR2)<-0
  3321  ! Missing argument to f.
  3322  <to be read again> 
  3323                     ;
  3324  l.140 f(e[3,w);
  3325                  g(e3,transformed p,penoffset-(1,1.3)of(pencir...
  3326  That macro has more parameters than you thought.
  3327  I'll continue by pretending that each missing argument
  3328  is either zero or null.
  3329  
  3330  (TEXT3)<-
  3331  {numeric}
  3332  {show}
  3333  >> unknown path %CAPSULE1615
  3334  {addto}
  3335  Path at line 140, before choices:
  3336  (0,0)
  3337   ..(2,0)
  3338   ..(1,-1)
  3339   ..(1,1)
  3340   ..cycle
  3341  
  3342  Path at line 140, after choices:
  3343  (0,0)..controls (0.56189,-0.5286) and (1.43811,0.5286)
  3344   ..(2,0)..controls (2.70831,-0.66634) and (1.66634,-1.70831)
  3345   ..(1,-1)..controls (0.4714,-0.43811) and (1.5286,0.43811)
  3346   ..(1,1)..controls (0.33366,1.70831) and (-0.70831,0.66634)
  3347   ..cycle
  3348  
  3349  > 0 ESE ENE ESE 1 SSE SSW WSW WNW NNW 2 NNE NNW 3 WNW WSW SSW SSE ESE 0
  3350  ! Strange path (turning number is zero).
  3351  <to be read again> 
  3352                     ;
  3353  f->.....(1,1)..cycle.withpen.qq;
  3354                                  addto(SUFFIX0)doublepath(0,0)...
  3355  <to be read again> 
  3356                     ;
  3357  l.140 f(e[3,w);
  3358                  g(e3,transformed p,penoffset-(1,1.3)of(pencir...
  3359  The path doesn't have a counterclockwise orientation,
  3360  so I'll probably have trouble drawing it.
  3361  (See Chapter 27 of The METAFONTbook for more help.)
  3362  
  3363  Tracing edges at line 140: (weight 1)
  3364  @ Octant ENE (2 offsets), from (0.26321,-2.6526) to (1.73679,-2.34741)
  3365  @ transition line 0, from (0.26321,-2.6526) to (0.26321,-2.6526)
  3366  @ transition line 1, from (1.73679,-2.34741) to (2.73679,-1.84741)
  3367  @ transition line 2, from (2.73679,-1.84741) to (3.73679,-0.84741)
  3368  (1,-3)(1,-2)(3,-2)
  3369  @ retrograde line from (3.73679,-0.84741) to (1.73679,-2.34741)
  3370  (3,-1)
  3371  @ Octant ESE (2 offsets), from (1.73679,-2.34741) to (-0.25465,-0.56029)
  3372  @ retrograde line from (1.73679,-2.34741) to (-0.76321,-0.34741)
  3373  (3,-2)(1,-2)(1,-1)(-1,-1)
  3374  @ transition line 3, from (-0.76321,-0.34741) to (0.73679,-1.84741)
  3375  @ transition line 2, from (0.73679,-1.84741) to (1.73679,-2.34741)
  3376  @ transition line 1, from (2.05333,-2.41772) to (1.05333,-1.91772)
  3377  @ transition line 2, from (1.24535,-2.06029) to (2.24535,-2.56029)
  3378  @ transition line 1, from (2.24535,-2.56029) to (2.24535,-2.56029)
  3379  (-1,0)(-1,-1)(0,-1)(0,-2)(2,-2)
  3380  @ retrograde line from (2.24535,-2.56029) to (-0.25465,-0.56029)
  3381  (2,-3)(2,-2)(1,-2)
  3382  @ Octant SSE (0 offsets), from (-0.25465,-0.56029) to (0,-1.13196)
  3383  @ transition line 0, from (-0.25465,-0.56029) to (-0.25465,-0.56029)
  3384  @ Octant SSW (2 offsets), from (0,-1.13196) to (0.25,-0.25)
  3385  @ retrograde line from (0,-1.13196) to (0.5,0.36804)
  3386  (1,-1)(0,-1)
  3387  @ transition line 3, from (0.5,0.36804) to (0.5,0.36804)
  3388  @ transition line 2, from (0.5,0.36804) to (0,-1.13196)
  3389  @ transition line 1, from (-0.04594,-1.41693) to (0.45406,0.08307)
  3390  @ transition line 2, from (0.25,-0.25) to (-0.25,-1.75)
  3391  @ transition line 1, from (-0.25,-1.75) to (-0.25,-1.75)
  3392  (0,0)
  3393  @ retrograde line from (-0.25,-1.75) to (0.25,-0.25)
  3394  (0,-2)
  3395  @ Octant WSW (2 offsets), from (0.25,-0.25) to (1.63197,1)
  3396  @ retrograde line from (0.25,-0.25) to (2.25,1.25)
  3397  (0,0)(1,0)
  3398  @ transition line 0, from (2.25,1.25) to (2.25,1.25)
  3399  @ transition line 1, from (2.25,1.25) to (1.25,0.75)
  3400  @ transition line 2, from (1.03186,0.59352) to (2.03186,1.09352)
  3401  @ transition line 1, from (1.63197,1) to (0.63197,0.5)
  3402  @ transition line 2, from (0.63197,0.5) to (-0.36803,-0.5)
  3403  (1,1)
  3404  @ retrograde line from (-0.36803,-0.5) to (1.63197,1)
  3405  (1,0)
  3406  @ Octant WNW (2 offsets), from (1.63197,1) to (3.56024,-0.74529)
  3407  @ retrograde line from (1.63197,1) to (4.13197,-1)
  3408  (1,1)(2,1)(2,0)(4,0)
  3409  @ transition line 3, from (4.13197,-1) to (2.63197,0.5)
  3410  @ transition line 2, from (2.63197,0.5) to (1.63197,1)
  3411  @ transition line 1, from (1.29863,1.07983) to (2.29863,0.57983)
  3412  @ transition line 2, from (2.06024,0.75471) to (1.06024,1.25471)
  3413  @ transition line 1, from (1.06024,1.25471) to (1.06024,1.25471)
  3414  (4,-1)(4,0)(3,0)
  3415  @ retrograde line from (1.06024,1.25471) to (3.56024,-0.74529)
  3416  (3,1)(2,1)(2,0)(3,0)
  3417  @ Octant NNW (0 offsets), from (3.56024,-0.74529) to (3.3474,-0.23679)
  3418  @ transition line 0, from (3.56024,-0.74529) to (3.56024,-0.74529)
  3419  (3,-1)
  3420  @ Octant NNE (2 offsets), from (3.3474,-0.23679) to (3.65259,1.23679)
  3421  @ retrograde line from (3.3474,-0.23679) to (2.8474,-1.73679)
  3422  (3,0)
  3423  @ transition line 3, from (2.8474,-1.73679) to (2.8474,-1.73679)
  3424  @ transition line 2, from (2.8474,-1.73679) to (3.3474,-0.23679)
  3425  @ transition line 1, from (3.65259,1.23679) to (3.65259,1.23679)
  3426  (3,-2)
  3427  @ Octant NNW (0 offsets), from (3.65259,1.23679) to (3.43976,1.74529)
  3428  @ transition line 0, from (3.65259,1.23679) to (3.65259,1.23679)
  3429  (3,1)(4,1)
  3430  @ Octant WNW (2 offsets), from (3.43976,1.74529) to (0.36803,4)
  3431  @ transition line 3, from (3.43976,1.74529) to (1.93976,3.24529)
  3432  @ transition line 2, from (1.70137,3.42017) to (0.70137,3.92017)
  3433  @ transition line 1, from (0.36803,4) to (0.36803,4)
  3434  (4,2)(3,2)(3,3)(2,3)
  3435  @ Octant WSW (2 offsets), from (0.36803,4) to (-2.25,2.25)
  3436  @ transition line 0, from (0.36803,4) to (0.36803,4)
  3437  @ transition line 1, from (-0.03186,3.90648) to (-1.03186,3.40648)
  3438  @ transition line 2, from (-1.25,3.25) to (-2.25,2.25)
  3439  (2,4)(-1,4)(-1,3)(-2,3)
  3440  @ Octant SSW (2 offsets), from (-2.25,2.25) to (-3,0.13196)
  3441  @ transition line 3, from (-2.25,2.25) to (-2.25,2.25)
  3442  @ transition line 2, from (-2.45406,1.91695) to (-2.95406,0.41695)
  3443  @ transition line 1, from (-3,0.13196) to (-3,0.13196)
  3444  (-2,2)(-3,2)
  3445  @ Octant SSE (0 offsets), from (-3,0.13196) to (-2.74533,-0.43973)
  3446  @ transition line 0, from (-3,0.13196) to (-3,0.13196)
  3447  @ Octant ESE (2 offsets), from (-2.74533,-0.43973) to (0.26321,-2.6526)
  3448  @ transition line 3, from (-2.74533,-0.43973) to (-1.24533,-1.93973)
  3449  @ transition line 2, from (-1.05331,-2.08229) to (-0.05331,-2.58229)
  3450  @ transition line 1, from (0.26321,-2.6526) to (0.26321,-2.6526)
  3451  (-3,-1)(-2,-1)(-2,-2)(0,-2)(0,-3).
  3452  
  3453  {addto}
  3454  Path at line 140, before choices:
  3455  (0,0){2896.30943,2896.30934}
  3456   ..{3663.57385,1831.78674}(2,1)
  3457  
  3458  Path at line 140, after choices:
  3459  (0,0)..controls (0.53566,0.53566) and (1.32689,0.66344)
  3460   ..(2,1)
  3461  
  3462  Tracing edges at line 140: (weight 1)
  3463  @ Octant ENE (2 offsets), from (0,-2.5) to (4,0)
  3464  @ transition line 0, from (0,-2.5) to (0,-2.5)
  3465  @ transition line 1, from (0,-2.5) to (1,-2)
  3466  @ transition line 2, from (1.607,-1.57747) to (0.607,-2.07747)
  3467  @ transition line 1, from (2,-1.5) to (3,-1)
  3468  @ transition line 2, from (3,-1) to (4,0)
  3469  (2,-2)(2,-1)(4,-1)
  3470  @ Octant NNE (2 offsets), from (4,0) to (4.5,1.5)
  3471  @ transition line 3, from (4,0) to (4,0)
  3472  @ transition line 2, from (4,0) to (4.5,1.5)
  3473  @ transition line 1, from (4.5,1.5) to (4.5,1.5)
  3474  (4,1)(5,1)
  3475  @ Octant NNW (0 offsets), from (4.5,1.5) to (4.5,1.5)
  3476  @ transition line 0, from (4.5,1.5) to (4.5,1.5)
  3477  @ Octant WNW (2 offsets), from (4.5,1.5) to (2,3.5)
  3478  @ transition line 3, from (4.5,1.5) to (3,3)
  3479  @ transition line 2, from (3,3) to (2,3.5)
  3480  @ transition line 1, from (2,3.5) to (2,3.5)
  3481  (5,2)(4,2)(4,3)(2,3)
  3482  @ Octant WSW (2 offsets), from (2,3.5) to (-2,1)
  3483  @ transition line 0, from (2,3.5) to (2,3.5)
  3484  @ transition line 1, from (0.607,2.92253) to (-0.393,2.42253)
  3485  @ transition line 2, from (-1,2) to (-2,1)
  3486  (2,4)(2,3)(0,3)(0,2)(-1,2)
  3487  @ Octant SSW (2 offsets), from (-2,1) to (-2.5,-0.5)
  3488  @ transition line 3, from (-2,1) to (-2,1)
  3489  @ transition line 2, from (-2,1) to (-2.5,-0.5)
  3490  @ transition line 1, from (-2.5,-0.5) to (-2.5,-0.5)
  3491  (-1,1)(-2,1)
  3492  @ Octant SSE (0 offsets), from (-2.5,-0.5) to (-2.5,-0.5)
  3493  @ transition line 0, from (-2.5,-0.5) to (-2.5,-0.5)
  3494  @ Octant ESE (2 offsets), from (-2.5,-0.5) to (0,-2.5)
  3495  @ transition line 3, from (-2.5,-0.5) to (-1,-2)
  3496  @ transition line 2, from (-1,-2) to (0,-2.5)
  3497  @ transition line 1, from (0,-2.5) to (0,-2.5)
  3498  (-2,-1)(-1,-1)(-1,-2).
  3499  
  3500  {addto}
  3501  Path at line 140, before choices:
  3502  (-1,-1){4096,0}
  3503   ..{4096,0}(1,1)
  3504  
  3505  Path at line 140, after choices:
  3506  (-1,-1)..controls (0.10457,-1) and (-0.10457,1)
  3507   ..(1,1)
  3508  
  3509  {(path)scaled(0.5)}
  3510  {nullpen}
  3511  Tracing edges at line 140: (weight 1)
  3512  (0,0)(0,1)(0,0).
  3513  
  3514  {cull}
  3515  
  3516  g(SUFFIX0)->show(SUFFIX0)
  3517  (SUFFIX0)<-e3
  3518  ! Too many arguments to g;
  3519    Missing `)' has been inserted.
  3520  l.140 f(e[3,w); g(e3,
  3521                       transformed p,penoffset-(1,1.3)of(pencir...
  3522  I'm going to assume that the comma I just read was a
  3523  right delimiter, and then I'll begin expanding the macro.
  3524  You might want to delete some tokens before continuing.
  3525  
  3526  {show}
  3527  {(picture)transformed((8,1,5,-5,-5,5))}
  3528  >> Edge structure at line 140:
  3529  
  3530  {-((1,1.3))}
  3531  {pencircle}
  3532  {(future pen)scaled(20)}
  3533  {-(0.5)}
  3534  {(future pen)yscaled(-0.5)}
  3535  Pen polygon at line 140 (newly created):
  3536  (1.5,-5)
  3537   .. (4.5,-4.5)
  3538   .. (6,-4)
  3539   .. (8,-3)
  3540   .. (9.5,-1.5)
  3541   .. (10,-0.5)
  3542   .. (10,0.5)
  3543   .. (9.5,1.5)
  3544   .. (8,3)
  3545   .. (6,4)
  3546   .. (4.5,4.5)
  3547   .. (1.5,5)
  3548   .. (-1.5,5)
  3549   .. (-4.5,4.5)
  3550   .. (-6,4)
  3551   .. (-8,3)
  3552   .. (-9.5,1.5)
  3553   .. (-10,0.5)
  3554   .. (-10,-0.5)
  3555   .. (-9.5,-1.5)
  3556   .. (-8,-3)
  3557   .. (-6,-4)
  3558   .. (-4.5,-4.5)
  3559   .. (-1.5,-5)
  3560   .. cycle
  3561  
  3562  {((-1,-1.3))penoffset(pen)}
  3563  >> (-9.5,1.5)
  3564  Path at line 141, before choices:
  3565  (0,0)..controls (1,1) and (-1,1)
  3566   ..(3,0)
  3567  
  3568  Path at line 141, after choices:
  3569  (0,0)..controls (1,1) and (-1,1)
  3570   ..(3,0)
  3571  
  3572  {((0,1))directiontime(path)}
  3573  >> 0.33333
  3574  {(3.14159)point(path)}
  3575  {((3.14159,4))subpath(path)}
  3576  {((7.68668,2.72437))intersectiontimes(path)}
  3577  >> (0,0)
  3578  Path at line 143, before choices:
  3579  (-1,1.1){curl 1}
  3580   ..{curl 1}(1,-1)
  3581  
  3582  Path at line 143, after choices:
  3583  (-1,1.1)..controls (-0.33333,0.40001) and (0.33333,-0.3)
  3584   ..(1,-1)
  3585  
  3586  {(-1)precontrol((0,0))}
  3587  {(path)intersectiontimes((0,0))}
  3588  >> (-1,-1)
  3589  {addto}
  3590  {-(4094.99998)}
  3591  {-(0.00002)}
  3592  Path at line 144, before choices:
  3593  (-4094.99998,0){curl 1}
  3594   ..{curl 1}(4094.99998,-0.00002)
  3595  
  3596  Path at line 144, after choices:
  3597  (-4094.99998,0)..controls (-1365,0) and (1365,-0.00002)
  3598   ..(4094.99998,-0.00002)
  3599  
  3600  {pencircle}
  3601  {(0)penoffset(future pen)}
  3602  Pen polygon at line 145 (newly created):
  3603  (0.5,0)
  3604   .. (0,0.5)
  3605   .. (-0.5,0)
  3606   .. (0,-0.5)
  3607   .. cycle
  3608  
  3609  >> 0
  3610  >> pen
  3611  ! Not implemented: penoffset(known numeric)of(pen).
  3612  <to be read again> 
  3613                     ;
  3614  l.145 pencircle;
  3615                   addto e3 also e3 shifted (0,257); ,"flushed ...
  3616  I'm afraid I don't know how to apply that operation to that
  3617  combination of types. Continue, and I'll return the second
  3618  argument (see above) as the result of the operation.
  3619  
  3620  Tracing edges at line 145: (weight 1)
  3621  @ Octant ESE (1 offset), from (-4095.49998,0) to (4094.99998,-0.50002)
  3622  @ transition line 2, from (-4095.49998,0) to (-4094.99998,-0.5)
  3623  @ transition line 1, from (4094.99998,-0.50002) to (4094.99998,-0.50002)
  3624  (-4095,0)
  3625  @ Octant ENE (1 offset), from (4094.99998,-0.50002) to (4095.49998,-0.00
  3626  002)
  3627  @ transition line 0, from (4094.99998,-0.50002) to (4094.99998,-0.50002)
  3628  @ transition line 1, from (4094.99998,-0.50002) to (4095.49998,-0.00002)
  3629  (-4095,-1)(4095,-1)
  3630  @ Octant NNE (0 offsets), from (4095.49998,-0.00002) to (4095.49998,-0.0
  3631  0002)
  3632  @ transition line 1, from (4095.49998,-0.00002) to (4095.49998,-0.00002)
  3633  @ Octant NNW (0 offsets), from (4095.49998,-0.00002) to (4095.49998,-0.0
  3634  0002)
  3635  @ transition line 0, from (4095.49998,-0.00002) to (4095.49998,-0.00002)
  3636  @ Octant WNW (1 offset), from (4095.49998,-0.00002) to (-4094.99998,0.5)
  3637  @ transition line 2, from (4095.49998,-0.00002) to (4094.99998,0.49998)
  3638  @ transition line 1, from (-4094.99998,0.5) to (-4094.99998,0.5)
  3639  (4095,0)(-4095,0)
  3640  @ Octant WSW (1 offset), from (-4094.99998,0.5) to (-4095.49998,0)
  3641  @ transition line 0, from (-4094.99998,0.5) to (-4094.99998,0.5)
  3642  @ transition line 1, from (-4094.99998,0.5) to (-4095.49998,0)
  3643  (-4095,1)
  3644  @ Octant SSW (0 offsets), from (-4095.49998,0) to (-4095.49998,0)
  3645  @ transition line 1, from (-4095.49998,0) to (-4095.49998,0)
  3646  @ Octant SSE (0 offsets), from (-4095.49998,0) to (-4095.49998,0)
  3647  @ transition line 0, from (-4095.49998,0) to (-4095.49998,0)
  3648  (-4095,0).
  3649  
  3650  {addto}
  3651  {(picture)shifted((0,257))}
  3652  ! A statement can't begin with `,'.
  3653  <to be read again> 
  3654                     ,
  3655  l.145 ...o e3 shifted (0,257); ,
  3656                                  "flushed with pride"; numeric...
  3657  I was looking for the beginning of a new statement.
  3658  If you just proceed without changing anything, I'll ignore
  3659  everything up to the next `;'. Please insert a semicolon
  3660  now in front of anything that you don't want me to delete.
  3661  (See Chapter 27 of The METAFONTbook for an example.)
  3662  
  3663  ! Extra tokens will be flushed.
  3664  <to be read again> 
  3665                     ,
  3666  l.145 ...o e3 shifted (0,257); ,
  3667                                  "flushed with pride"; numeric...
  3668  I've just read as much of that statement as I could fathom,
  3669  so a semicolon should have been next. It's very puzzling...
  3670  but I'll try to get myself back together, by ignoring
  3671  everything up to the next `;'. Please insert a semicolon
  3672  now in front of anything that you don't want me to delete.
  3673  (See Chapter 27 of The METAFONTbook for an example.)
  3674  
  3675  {numeric}
  3676  {def}
  3677  
  3678  f(EXPR0)(EXPR1)(EXPR2)->showdependencies;tracingcapsules:=1;showdependen
  3679  cies;show1/3(3,6)*(((EXPR0)+(EXPR1))+((EXPR1)-(EXPR0))),(1,1)/sqrt2zscal
  3680  ed((EXPR0)+1,(EXPR0)+2)-((EXPR0)+1,(EXPR0)+2)rotated45,(0,1)zscaled(1,(E
  3681  XPR1)+2)-(1,(EXPR1)+2)rotated90
  3682  {(xx)+(1)}
  3683  {(xx+1)/(0.3)}
  3684  (EXPR0)<-3.3333xx+3.3333
  3685  {(yy)-(1)}
  3686  {(yy-1)/(0.5)}
  3687  (EXPR1)<-2yy-2
  3688  (EXPR2)<-(xx,0)
  3689  {showdependencies}
  3690  alpha=0.45p3~+7
  3691  {tracingcapsules:=1}
  3692  {showdependencies}
  3693  xpart %CAPSULE1370=xx
  3694  %CAPSULE1378=2yy-2
  3695  %CAPSULE1386 = 3.3333xx+3.3333
  3696  alpha=0.45p3~+7
  3697  {show}
  3698  {(1/3)*((3,6))}
  3699  {(3.3333xx+3.3333)+(2yy-2)}
  3700  {(2yy-2)-(3.3333xx+3.3333)}
  3701  {(linearform)+(linearform)}
  3702  {((1,2))*(4yy-4)}
  3703  >> (4yy-4,8yy-8)
  3704  {sqrt(2)}
  3705  {((1,1))/(1.41422)}
  3706  {(3.3333xx+3.3333)+(1)}
  3707  {(3.3333xx+3.3333)+(2)}
  3708  {((0.7071,0.7071))zscaled((3.3333xx+4.3333,3.3333xx+5.3333))}
  3709  {(3.3333xx+3.3333)+(1)}
  3710  {(3.3333xx+3.3333)+(2)}
  3711  {((3.3333xx+4.3333,3.3333xx+5.3333))rotated(45)}
  3712  {((-0.7071,4.71399xx+6.83531))-((-0.7071,4.71399xx+6.83531))}
  3713  >> (0,0)
  3714  {(2yy-2)+(2)}
  3715  {((0,1))zscaled((1,2yy))}
  3716  {(2yy-2)+(2)}
  3717  {((1,2yy))rotated(90)}
  3718  {((-2yy,1))-((-2yy,1))}
  3719  >> (0,0)
  3720  {(1000)*(o3)}
  3721  {(o1)-(o2)}
  3722  {(4000)*(linearform)}
  3723  {(1000o3)-(linearform)}
  3724  {(4000)*(o2)}
  3725  {(linearform)+(4000o2)}
  3726  {(linearform)+(9)}
  3727  {(0.01)*(o3)}
  3728  {-(0.01o3)}
  3729  {(3)*(ooo)}
  3730  {(-0.01o3)+(3ooo)}
  3731  {begingroup}
  3732  {(o2)+(o4)}
  3733  {(linearform)+(o5)}
  3734  {(linearform)-(20)}
  3735  {(9/10)*(linearform)}
  3736  {(oo)=(linearform)}
  3737  ## oo=0.9o5+0.9o4+0.9o2-18
  3738  {(0.5)*(o2)}
  3739  {(o1)+(0.5o2)}
  3740  {(8/9)*(linearform)}
  3741  {(o5)=(linearform)}
  3742  ## o5=0.44444o2+0.88889o1
  3743  {(o4)=(linearform)}
  3744  ## o4=0.44444o2+0.88889o1
  3745  {(0.0001)*(o2)}
  3746  {-(0.0001o2)}
  3747  {(o6)=(-0.0001o2)}
  3748  ## o6=-0.0001o2
  3749  {showdependencies}
  3750  o6=-0.0001o2
  3751  o4=0.44444o2+0.88889o1
  3752  o5=0.44444o2+0.88889o1
  3753  oo=1.7o2+1.6o1-18
  3754  %CAPSULE382 = 3ooo-0.01o3
  3755  xpart %CAPSULE604 = 8000o2-4000o1+1000o3+9
  3756  xpart %CAPSULE1394=xpart '
  3757  ypart %CAPSULE1394=ypart '
  3758  alpha=0.45p3~+7
  3759  {numeric}
  3760  ### 4000o1 = -xpart %CAPSULE604+8000o2+1000o3+9
  3761  ### -4.87383o2 = -oo-0.0004xpart %CAPSULE604+0.39673o3-17.99643
  3762  #### o6=-0.00027
  3763  ### -0.04366o3 = -o4+0.46689oo+8.40439
  3764  ### -o4 = -o5
  3765  ### 0.22894o5 = -%CAPSULE382+0.10689oo+3ooo+1.92412
  3766  {begingroup}
  3767  {pair}
  3768  ### -alfa=-xpart %CAPSULE368
  3769  {endgroup}
  3770  {xpart((xpart %CAPSULE368,0))}
  3771  ### -xpart %CAPSULE17=-%CAPSULE1376
  3772  {endgroup}
  3773  {(%CAPSULE382)+(%CAPSULE1376)}
  3774  ### -%CAPSULE382=-%CAPSULE1364+%CAPSULE1376
  3775  ### -%CAPSULE1364=-ypart %CAPSULE604
  3776  {begingroup}
  3777  {save}
  3778  {(1)-(p$)}
  3779  {restoring p}
  3780  ### p$=-ypart %CAPSULE1360+1
  3781  {endgroup}
  3782  {(2/3)*((-ypart %CAPSULE1360+1,ypart %CAPSULE1360))}
  3783  ### ypart %CAPSULE1360=-xpart %CAPSULE1360+1
  3784  ### -0.66667xpart %CAPSULE1360=-xpart %CAPSULE1744
  3785  {-((xpart %CAPSULE1744,-xpart %CAPSULE1744+0.66667))}
  3786  ### xpart %CAPSULE1744=-xpart %CAPSULE1675
  3787  {((xpart %CAPSULE604,ypart %CAPSULE604))=((xpart %CAPSULE1675,-xpart %CA
  3788  PSULE1675-0.66667))}
  3789  ## xpart %CAPSULE1675=-ypart %CAPSULE604-0.66667
  3790  ## ypart %CAPSULE604=-xpart %CAPSULE604-0.66667
  3791  ### -xpart %CAPSULE604=-xpart %CAPSULE1675
  3792  {((xpart ',ypart '))=((xpart %CAPSULE1675,-xpart %CAPSULE1675-0.66667))}
  3793  ## xpart %CAPSULE1675=-ypart '-0.66667
  3794  ## xpart '=-ypart '-0.66667
  3795  {begingroup}
  3796  {(0.5)*(ooo)}
  3797  {begingroup}
  3798  {numeric}
  3799  ### -ooo=-%CAPSULE1051
  3800  {endgroup}
  3801  {(%CAPSULE1051)+(1)}
  3802  ### -%CAPSULE1051=-%CAPSULE1378+1
  3803  {(1/2)*(%CAPSULE1378)}
  3804  ### -0.5%CAPSULE1378=-%CAPSULE1370
  3805  {-(%CAPSULE1370)}
  3806  ### %CAPSULE1370=-%CAPSULE1362
  3807  {(2)*(%CAPSULE1362)}
  3808  ### -2%CAPSULE1362=-%CAPSULE1354
  3809  {(-0.5%CAPSULE1354-0.5)=(%CAPSULE1354)}
  3810  ## %CAPSULE1354=-0.33333
  3811  {(oo)=(-0.33333)}
  3812  ## oo=-0.33333
  3813  {endgroup}
  3814  {(4000)*(-0.33333)}
  3815  {yoffset:=-1333.31299}
  3816  {xoffset:=-1333.31299}
  3817  {for}
  3818  {sqrt(-1)}
  3819  ! Square root of -1 has been replaced by 0.
  3820  l.153 for @=angle(sqrt$,
  3821                          mlog$):charext:=uniformdeviate$;charh...
  3822  Since I don't take square roots of negative numbers,
  3823  I'm zeroing this one. Proceed, with fingers crossed.
  3824  
  3825  {mlog(-1)}
  3826  ! Logarithm of -1 has been replaced by 0.
  3827  l.153 for @=angle(sqrt$,mlog$)
  3828                                :charext:=uniformdeviate$;charh...
  3829  Since I don't take logs of non-positive numbers,
  3830  I'm zeroing this one. Proceed, with fingers crossed.
  3831  
  3832  {angle((0,0))}
  3833  ! angle(0,0) is taken as zero.
  3834  l.153 for @=angle(sqrt$,mlog$):
  3835                                 charext:=uniformdeviate$;charh...
  3836  The `angle' between two identical points is undefined.
  3837  I'm zeroing this one. Proceed, with fingers crossed.
  3838  
  3839  Runaway loop?
  3840  charext:=uniformdeviate$;charht:=2048;granularity:=-8; ETC.
  3841  ! Forbidden token found while scanning the text of a for loop.
  3842  <inserted text> 
  3843                  endfor
  3844  <to be read again> 
  3845                     endtext
  3846  l.163 ... showstats; bye endtext
  3847                                  
  3848  I suspect you have forgotten an `endfor',
  3849  causing me to read past where you wanted me to stop.
  3850  I'll try to recover; but if the error is serious,
  3851  you'd better type `E' or `X' now and fix your file.
  3852  
  3853  {loop value=0}
  3854  {uniformdeviate(-1)}
  3855  {charext:=-0.00507}
  3856  {charht:=2048}
  3857  {-(8)}
  3858  {granularity:=-8}
  3859  {addto}
  3860  {-(100)}
  3861  {-(99)}
  3862  Path at line 163, before choices:
  3863  (0,-100)..tension 500
  3864   ..(100,-99)..tension 3000
  3865   ..cycle
  3866  
  3867  Path at line 163, after choices:
  3868  (0,-100)..controls (-36.92659,-103.51175) and (136.98943,-101.7726)
  3869   ..(100,-99)..controls (99.9889,-98.99916) and (0.01108,-99.99895)
  3870   ..cycle
  3871  
  3872  Tracing edges at line 163: (weight 1)
  3873  (-3,-101)(-3,-102)(71,-102)(71,-101)(99,-101)(99,-100)(103,-100)
  3874  (103,-99)(48,-99)(48,-100)(-7,-100)(-7,-101).
  3875  
  3876  {tracingoutput:=0}
  3877  {shipout}
  3878  ! Enormous charht has been reduced.
  3879  <to be read again> 
  3880                     ;
  3881  <for(0)> ...=(EXPR0);shipout.e3;
  3882                                  special"bye";interim.char99="...
  3883  <inserted text> endfor
  3884                        
  3885  <to be read again> 
  3886                     endtext
  3887  l.163 ... showstats; bye endtext
  3888                                  
  3889  Font metric dimensions must be less than 2048pt.
  3890  
  3891  [109]
  3892  {special}
  3893  {interim}
  3894  ! The token `char' isn't an internal quantity.
  3895  <to be read again> 
  3896                     char
  3897  <for(0)> ...al"bye";interim.char
  3898                                  99="c";true=false;[[clear(tra...
  3899  <inserted text> endfor
  3900                        
  3901  <to be read again> 
  3902                     endtext
  3903  l.163 ... showstats; bye endtext
  3904                                  
  3905  Something like `tracingonline' should follow `interim'.
  3906  
  3907  {char(99)}
  3908  {("c")=("c")}
  3909  ! Redundant equation.
  3910  <to be read again> 
  3911                     ;
  3912  <for(0)> ...;interim.char99="c";
  3913                                  true=false;[[clear(tracingcom...
  3914  <inserted text> endfor
  3915                        
  3916  <to be read again> 
  3917                     endtext
  3918  l.163 ... showstats; bye endtext
  3919                                  
  3920  I already knew that this equation was true.
  3921  But perhaps no harm has been done; let's continue.
  3922  
  3923  {true}
  3924  {false}
  3925  {(true)=(false)}
  3926  ! Inconsistent equation.
  3927  <to be read again> 
  3928                     ;
  3929  <for(0)> ...ar99="c";true=false;
  3930                                  [[clear(tracingcommands);char...
  3931  <inserted text> endfor
  3932                        
  3933  <to be read again> 
  3934                     endtext
  3935  l.163 ... showstats; bye endtext
  3936                                  
  3937  The equation I just read contradicts what was said before.
  3938  But don't worry; continue and I'll just ignore it.
  3939  
  3940  {begingroup}
  3941  
  3942  clear(TEXT0)->interim(TEXT0):=$
  3943  (TEXT0)<-tracingcommands
  3944  {interim}
  3945  {tracingcommands:=-1}
  3946  ! Enormous charht has been reduced.
  3947  <to be read again> 
  3948                     ;
  3949  <for(0)> ...shipout+nullpicture;
  3950                                  "careful"for.for=(EXPR0)step2...
  3951  <inserted text> endfor
  3952                        
  3953  <to be read again> 
  3954                     endtext
  3955  l.163 ... showstats; bye endtext
  3956                                  
  3957  Font metric dimensions must be less than 2048pt.
  3958  
  3959  [0]
  3960  careful METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
  3961  ETAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
  3962  ETAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT METAFONT M
  3963  ETAFONT METAFONT METAFONT METAFONT
  3964  {restoring tracingcommands=2.1}
  3965  {endgroup}
  3966  {scrollmode}
  3967  
  3968  {char(31)}
  3969  {("hello again")&("^^_")}
  3970  hello again^^_
  3971  {save}
  3972  ### -0.45p3~=-alpha+7
  3973  {-(0.043)}
  3974  {fillin:=-0.043}
  3975  {def}
  3976  {begingroup}
  3977  {tracingspecs:=1}
  3978  {show}
  3979  {nullpen}
  3980  
  3981  >> Pen polygon at line 163:
  3982  (0,0)
  3983   .. cycle
  3984  
  3985  {makepath(pen)}
  3986  
  3987  >> Path at line 163:
  3988  (1,-2)..controls (1,-2) and (2,-1)
  3989   ..(2,-1)..controls (2,-1) and (2.5,0.5)
  3990   ..(2.5,0.5)..controls (2.5,0.5) and (1,2)
  3991   ..(1,2)..controls (1,2) and (0,2.5)
  3992   ..(0,2.5)..controls (0,2.5) and (-1,2)
  3993   ..(-1,2)..controls (-1,2) and (-2,1)
  3994   ..(-2,1)..controls (-2,1) and (-2.5,-0.5)
  3995   ..(-2.5,-0.5)..controls (-2.5,-0.5) and (-1,-2)
  3996   ..(-1,-2)..controls (-1,-2) and (0,-2.5)
  3997   ..(0,-2.5)..controls (0,-2.5) and (1,-2)
  3998   ..cycle
  3999  
  4000  {(pen)rotated(1)}
  4001  Pen polygon at line 163 (newly created):
  4002  (0.97366,1.51723)
  4003   .. cycle
  4004  
  4005  {makepath(pen)}
  4006  
  4007  >> Path at line 163:
  4008  (0.97366,1.51723)..controls (0.97366,1.51723) and (0.97366,1.51723)
  4009   ..cycle
  4010  
  4011  {pencircle}
  4012  {makepath(future pen)}
  4013  Pen polygon at line 163 (newly created):
  4014  (0.5,-0.5)
  4015   .. (0.5,0.5)
  4016   .. (-0.5,0.5)
  4017   .. (-0.5,-0.5)
  4018   .. cycle
  4019  
  4020  {(path)rotated(-1)}
  4021  
  4022  >> Path at line 163:
  4023  (0.4912,-0.50865)..controls (0.4912,-0.50865) and (0.50865,0.4912)
  4024   ..(0.50865,0.4912)..controls (0.50865,0.4912) and (-0.4912,0.50865)
  4025   ..(-0.4912,0.50865)..controls (-0.4912,0.50865) and (-0.50865,-0.4912)
  4026   ..(-0.50865,-0.4912)..controls (-0.50865,-0.4912) and (0.4912,-0.50865)
  4027   ..cycle
  4028  
  4029  {addto}
  4030  Path at line 163, before choices:
  4031  (0,2){0,-4096}
  4032   ..{0,-4096}(0,1){0,-4096}
  4033   ..{4096,0}(3,0){4096,0}
  4034   ..{4096,0}(4,0){4096,0}
  4035   ..{0,-4096}cycle
  4036  
  4037  Path at line 163, after choices:
  4038  (0,2)..controls (0,1.66667) and (0,1.33333)
  4039   ..(0,1)..controls (0,-0.20886) and (1.63324,0)
  4040   ..(3,0)..controls (3.33333,0) and (3.66667,0)
  4041   ..(4,0)..controls (13.63031,0) and (0,10.64238)
  4042   ..cycle
  4043  
  4044  Path at line 163, before choices:
  4045  (0,0)
  4046   ..(5,2.9)
  4047   ..(4,3)
  4048   ..cycle
  4049  
  4050  Path at line 163, after choices:
  4051  (0,0)..controls (0.9363,-8.0181) and (11.81119,0.07109)
  4052   ..(5,2.9)..controls (4.68596,3.03043) and (4.33879,3.02028)
  4053   ..(4,3)..controls (1.86353,2.87216) and (-0.21431,1.83528)
  4054   ..cycle
  4055  
  4056  {makepen(path)}
  4057  Pen polygon at line 163 (newly created):
  4058  (5,2.9)
  4059   .. (4,3)
  4060   .. (0,0)
  4061   .. cycle
  4062  
  4063  Path at line 163, before subdivision into octants:
  4064  (0,2)..controls (0,1.66667) and (0,1.33333)
  4065   ..(0,1)..controls (0,-0.20886) and (1.63324,0)
  4066   ..(3,0)..controls (3.33333,0) and (3.66667,0)
  4067   ..(4,0)..controls (13.63031,0) and (0,10.64238)
  4068   ..cycle
  4069  
  4070  Cycle spec at line 163, after subdivision and double autorounding:
  4071  (1.5,0.00272) % beginning in octant `SSE'
  4072     ..controls (1.5,-0.49254) and (1.63411,-0.82727)
  4073   ..(1.8592,-1.05237) % segment 1
  4074  % entering octant `ESE'
  4075     ..controls (2.23936,-1.43253) and (2.87909,-1.5)
  4076   ..(3.57066,-1.5) % segment 1
  4077  % entering octant `ENE'
  4078     ..controls (3.95114,-1.5) and (4.3473,-1.47957)
  4079   ..(4.72458,-1.47957) % segment 1
  4080     ..controls (5.08287,-1.47957) and (5.44116,-1.47957)
  4081   ..(5.79944,-1.47957) % segment 2
  4082     ..controls (7.35368,-1.47957) and (8.34424,-1.12393)
  4083   ..(8.90538,-0.56279) % segment 3
  4084  % entering octant `NNE'
  4085     ..controls (9.31982,-0.14835) and (9.5,0.37819)
  4086   ..(9.5,0.95631) % segment 3
  4087  % entering octant `NNW'
  4088     ..controls (9.5,2.00116) and (8.61821,3.4318)
  4089   ..(7.41951,4.6305) % segment 3
  4090  % entering octant `WNW'
  4091     ..controls (6.32909,5.72092) and (5.11603,6.5)
  4092   ..(4.2104,6.5) % segment 3
  4093  % entering octant `WSW'
  4094     ..controls (3.64668,6.5) and (3.12122,6.31134)
  4095   ..(2.68588,5.876) % segment 3
  4096  % entering octant `SSW'
  4097     ..controls (1.97163,5.16176) and (1.5,3.78351)
  4098   ..(1.5,1.485) % segment 3
  4099     ..controls (1.5,0.99092) and (1.5,0.49681)
  4100   ..(1.5,0.00272) % segment 0
  4101   & cycle
  4102  
  4103  Tracing edges at line 163: (weight 1)
  4104  @ Octant SSE (0 offsets), from (1.5,0.00272) to (1.8592,-1.05237)
  4105  @ transition line 0, from (1.5,0.00272) to (1.5,0.00272)
  4106  (2,0)
  4107  @ Octant ESE (0 offsets), from (1.8592,-1.05237) to (3.57066,-1.5)
  4108  @ transition line 1, from (3.57066,-1.5) to (3.57066,-1.5)
  4109  @ Octant ENE (2 offsets), from (3.57066,-1.5) to (13.90538,2.3372)
  4110  @ transition line 0, from (3.57066,-1.5) to (3.57066,-1.5)
  4111  @ transition line 1, from (8.41534,-0.93503) to (13.41534,1.96497)
  4112  @ transition line 2, from (13.90538,2.3372) to (13.90538,2.3372)
  4113  (2,-1)(9,-1)(9,0)(11,0)(11,1)(13,1)
  4114  @ Octant NNE (0 offsets), from (13.90538,2.3372) to (14.5,3.85631)
  4115  @ transition line 1, from (14.5,3.85631) to (14.5,3.85631)
  4116  (13,2)(14,2)
  4117  @ Octant NNW (0 offsets), from (14.5,3.85631) to (12.41951,7.53049)
  4118  @ transition line 0, from (14.5,3.85631) to (14.5,3.85631)
  4119  (14,6)(13,6)(13,7)(12,7)
  4120  @ Octant WNW (2 offsets), from (12.41951,7.53049) to (8.2104,9.5)
  4121  @ transition line 3, from (12.41951,7.53049) to (12.41951,7.53049)
  4122  @ transition line 2, from (9.38113,9.39124) to (8.38113,9.49124)
  4123  @ transition line 1, from (8.2104,9.5) to (8.2104,9.5)
  4124  (12,8)(11,8)(11,9)(8,9)
  4125  @ Octant WSW (2 offsets), from (8.2104,9.5) to (2.68588,5.876)
  4126  @ transition line 0, from (8.2104,9.5) to (8.2104,9.5)
  4127  @ transition line 1, from (6.92668,9.08539) to (2.92668,6.08539)
  4128  @ transition line 2, from (2.68588,5.876) to (2.68588,5.876)
  4129  (8,10)(8,9)(6,9)(6,8)(5,8)(5,7)(3,7)
  4130  @ Octant SSW (0 offsets), from (2.68588,5.876) to (1.5,0.00272)
  4131  @ transition line 1, from (1.5,0.00272) to (1.5,0.00272)
  4132  (3,6)(2,6)(2,0).
  4133  
  4134  Path at line 163, before subdivision into octants:
  4135  (0,2)..controls (0,10.64238) and (13.63031,0)
  4136   ..(4,0)..controls (3.66667,0) and (3.33333,0)
  4137   ..(3,0)..controls (1.63324,0) and (0,-0.20886)
  4138   ..(0,1)..controls (0,1.33333) and (0,1.66667)
  4139   ..cycle
  4140  
  4141  Cycle spec at line 163, after subdivision and double autorounding:
  4142  (2.68588,5.876) % beginning in octant `ENE'
  4143     ..controls (3.12122,6.31134) and (3.64668,6.5)
  4144   ..(4.2104,6.5) % segment 0
  4145  % entering octant `ESE'
  4146     ..controls (5.11603,6.5) and (6.32909,5.72092)
  4147   ..(7.41953,4.63048) % segment 0
  4148  % entering octant `SSE'
  4149     ..controls (8.61824,3.43176) and (9.5,2.00116)
  4150   ..(9.5,0.95631) % segment 0
  4151  % entering octant `SSW'
  4152     ..controls (9.5,0.37819) and (9.31982,-0.14835)
  4153   ..(8.90538,-0.56279) % segment 0
  4154  % entering octant `WSW'
  4155     ..controls (8.34425,-1.12392) and (7.35368,-1.47957)
  4156   ..(5.79944,-1.47957) % segment 0
  4157     ..controls (5.44116,-1.47957) and (5.08287,-1.47957)
  4158   ..(4.72458,-1.47957) % segment 1
  4159     ..controls (4.3473,-1.47957) and (3.95114,-1.5)
  4160   ..(3.57066,-1.5) % segment 2
  4161  % entering octant `WNW'
  4162     ..controls (2.87909,-1.5) and (2.23936,-1.43253)
  4163   ..(1.85919,-1.05235) % segment 2
  4164  % entering octant `NNW'
  4165     ..controls (1.6341,-0.82726) and (1.5,-0.49254)
  4166   ..(1.5,0.00272) % segment 2
  4167  % entering octant `NNE'
  4168     ..controls (1.5,0.49681) and (1.5,0.99092)
  4169   ..(1.5,1.485) % segment 3
  4170     ..controls (1.5,3.78351) and (1.97165,5.16177)
  4171   ..(2.68588,5.876) % segment 0
  4172   & cycle
  4173  
  4174  Tracing edges at line 163: (weight 1)
  4175  @ Octant ENE (2 offsets), from (7.68588,8.776) to (4.2104,6.5)
  4176  @ retrograde line from (7.68588,8.776) to (2.68588,5.876)
  4177  (7,9)(7,8)(5,8)(5,7)(4,7)
  4178  @ transition line 0, from (2.68588,5.876) to (2.68588,5.876)
  4179  @ transition line 1, from (2.68588,5.876) to (7.68588,8.776)
  4180  @ transition line 2, from (8.13123,9.12088) to (3.13123,6.22089)
  4181  @ transition line 1, from (4.2104,6.5) to (9.2104,9.4)
  4182  @ transition line 2, from (9.2104,9.4) to (9.2104,9.4)
  4183  (4,6)(4,7)(6,7)(6,8)(8,8)
  4184  @ retrograde line from (9.2104,9.4) to (4.2104,6.5)
  4185  (8,9)(8,8)(6,8)
  4186  @ Octant ESE (0 offsets), from (4.2104,6.5) to (7.41953,4.63048)
  4187  @ transition line 1, from (7.41953,4.63048) to (7.41953,4.63048)
  4188  (6,7)(4,7)(4,6)(6,6)
  4189  @ Octant SSE (0 offsets), from (7.41953,4.63048) to (9.5,0.95631)
  4190  @ transition line 0, from (7.41953,4.63048) to (7.41953,4.63048)
  4191  (6,5)(8,5)(8,3)(9,3)
  4192  @ Octant SSW (0 offsets), from (9.5,0.95631) to (8.90538,-0.56279)
  4193  @ transition line 1, from (8.90538,-0.56279) to (8.90538,-0.56279)
  4194  @ Octant WSW (2 offsets), from (8.90538,-0.56279) to (7.57066,1.5)
  4195  @ retrograde line from (8.90538,-0.56279) to (12.90538,2.43721)
  4196  (9,-1)(9,0)(10,0)(10,1)(12,1)
  4197  @ transition line 0, from (12.90538,2.43721) to (12.90538,2.43721)
  4198  @ transition line 1, from (12.90538,2.43721) to (8.90538,-0.56279)
  4199  @ transition line 2, from (8.6665,-0.76936) to (12.6665,2.23064)
  4200  @ transition line 1, from (7.57066,1.5) to (3.57066,-1.5)
  4201  @ transition line 2, from (3.57066,-1.5) to (3.57066,-1.5)
  4202  (12,2)(8,2)(8,1)(6,1)(6,0)(5,0)
  4203  @ retrograde line from (3.57066,-1.5) to (7.57066,1.5)
  4204  (5,-1)(5,0)(6,0)(6,1)(8,1)
  4205  @ Octant WNW (2 offsets), from (7.57066,1.5) to (6.85919,1.84764)
  4206  @ retrograde line from (7.57066,1.5) to (8.57066,1.4)
  4207  (8,2)
  4208  @ transition line 3, from (8.57066,1.4) to (8.57066,1.4)
  4209  @ transition line 2, from (8.57066,1.4) to (7.57066,1.5)
  4210  @ transition line 1, from (6.95764,1.52585) to (7.95764,1.42584)
  4211  @ transition line 2, from (6.85919,1.84764) to (5.85919,1.94765)
  4212  @ transition line 1, from (5.85919,1.94765) to (5.85919,1.94765)
  4213  (8,1)
  4214  @ retrograde line from (5.85919,1.94765) to (6.85919,1.84764)
  4215  @ Octant NNW (0 offsets), from (6.85919,1.84764) to (6.5,2.90271)
  4216  @ transition line 0, from (6.85919,1.84764) to (6.85919,1.84764)
  4217  (8,2)(7,2)
  4218  @ Octant NNE (0 offsets), from (6.5,2.90271) to (7.68588,8.776)
  4219  @ transition line 1, from (7.68588,8.776) to (7.68588,8.776)
  4220  (7,9).
  4221  
  4222  {tracingonline:=1}
  4223  
  4224  f<expr>->let)=];let[=(;show._
  4225  (EXPR0)<-xx
  4226  {let}
  4227  {let}
  4228  {show}
  4229  >> _1
  4230  {showdependencies}
  4231  xpart '=-ypart '-0.66667
  4232  {qq:=pen}
  4233  {showstats}
  4234  Memory usage 1462&588 (104 still untouched)
  4235  String usage 41&161 (816&7678 still untouched)
  4236  {[repeat the loop]}
  4237  ! A group begun on line 163 never ended.
  4238  <to be read again> 
  4239                     endtext
  4240  l.163 ... showstats; bye endtext
  4241                                  
  4242  I saw a `begingroup' back there that hasn't been matched
  4243  by `endgroup'. So I've inserted `endgroup' now.
  4244  
  4245  {endgroup}
  4246   )
  4247  (end occurred when else on line 93 was incomplete)
  4248  (end occurred when if on line 36 was incomplete)
  4249  (end occurred when elseif on line 21 was incomplete) 
  4250  Here is how much of METAFONT's memory you used:
  4251   68 strings out of 884
  4252   3752 string characters out of 11430
  4253   2897 words of memory out of 3001
  4254   289 symbolic tokens out of 2100
  4255   8i,43n,14r,8p,167b stack positions out of 30i,100n,300r,150p,500b
  4256  
  4257  (illegal design size has been changed to 128pt)
  4258  (some chardp values had to be adjusted by as much as 0.5pt)
  4259  (local label 0:: was missing)
  4260  (local label 5:: was missing)
  4261  (4 font metric dimensions had to be decreased) 
  4262  (You used 3w,2h,16d,2i,312l,301k,1e,10p metric file positions
  4263    out of 256w,16h,16d,64i,5000l,500k,256e,50p)
  4264  
  4265  Font metrics written on trap.tfm.
  4266  Output written on trap.72270gf (5 characters, 1028 bytes).