      INTEGER LINE(102),FROM(128),TO(128)
      INTEGER ALLBUT,COLLAP,I,LASTTO,TOSIZE
      INTEGER ARGLIN,GETARG,GETLIN,LENGTH,MAKSET,XINDEX
      INTEGER AAAAA0
      INTEGER AAAAB0(41)
      INTEGER AAAAC0(21)
      INTEGER AAAAD0(19)
      INTEGER AAAAE0,AAAAF0,AAAAG0
      DATA AAAAB0/213,243,225,231,229,186,160,244,236,233,244,160,188,23
     *0,242,239,237,190,160,219,160,188,244,239,190,160,251,160,188,243,
     *244,242,233,238,231,190,160,253,160,221,0/
      DATA AAAAC0/188,230,242,239,237,190,160,243,229,244,160,244,239,23
     *9,160,236,225,242,231,229,0/
      DATA AAAAD0/188,244,239,190,160,243,229,244,160,244,239,239,160,23
     *6,225,242,231,229,0/
      IF((GETARG(1,LINE,102).NE.-1))GOTO 10001
        CALL ERROR(AAAAB0)
10001 IF((LINE(1).NE.254))GOTO 10002
        ALLBUT=1
        I=2
        GOTO 10003
10002   ALLBUT=0
        I=1
10003 IF((MAKSET(LINE,I,FROM,128).NE.0))GOTO 10004
        CALL ERROR(AAAAC0)
10004 IF((GETARG(2,LINE,102).NE.-1))GOTO 10005
        TO(1)=0
        GOTO 10006
10005   IF((MAKSET(LINE,1,TO,128).NE.0))GOTO 10007
          CALL ERROR(AAAAD0)
10007 CONTINUE
10006 CALL DELARG(1)
      CALL DELARG(1)
      TOSIZE=LENGTH(TO)
      IF((LENGTH(FROM).GT.TOSIZE))GOTO 10009
      IF((ALLBUT.EQ.1))GOTO 10009
      GOTO 10008
10009   COLLAP=1
        GOTO 10010
10008   COLLAP=0
10010 LASTTO=0
      I=1
      GOTO 10013
10011 I=I+(1)
10013 IF((ARGLIN(I,LINE,102).EQ.-1))GOTO 10012
        AAAAA0=1
        GOTO 10000
10014   CALL PUTLIN(LINE,-11)
      GOTO 10011
10012 IF((I.NE.1))GOTO 10015
10016   IF((GETLIN(LINE,-10).EQ.-1))GOTO 10017
          AAAAA0=2
          GOTO 10000
10018     CALL PUTLIN(LINE,-11)
        GOTO 10016
10017 CONTINUE
10015 CALL SWT
10000 AAAAE0=1
      AAAAF0=1
      GOTO 10021
10019 AAAAE0=AAAAE0+(1)
10021 IF((LINE(AAAAE0).EQ.0))GOTO 10020
        AAAAG0=XINDEX(FROM,LINE(AAAAE0),ALLBUT,TOSIZE)
        GOTO 10022
10023     IF((LASTTO.EQ.TOSIZE))GOTO 10024
            LINE(AAAAF0)=TO(TOSIZE)
            AAAAF0=AAAAF0+(1)
            LASTTO=TOSIZE
10024   GOTO 10025
10026     LASTTO=AAAAG0
          LINE(AAAAF0)=TO(AAAAG0)
          AAAAF0=AAAAF0+(1)
        GOTO 10025
10027     LASTTO=0
          LINE(AAAAF0)=LINE(AAAAE0)
          AAAAF0=AAAAF0+(1)
        GOTO 10025
10022   IF((COLLAP.NE.1))GOTO 10028
        IF((AAAAG0.LT.TOSIZE))GOTO 10028
        IF((TOSIZE.LE.0))GOTO 10028
        GOTO 10023
10028   IF((AAAAG0.LE.0))GOTO 10029
        IF((TOSIZE.LE.0))GOTO 10029
        GOTO 10026
10029   IF((AAAAG0.EQ.0))GOTO 10027
10025 GOTO 10019
10020 LINE(AAAAF0)=0
      GOTO 10030
10030 GOTO(10014,10018),AAAAA0
      GOTO 10030
      END
      INTEGER FUNCTION ARGLIN(ARG,LINE,SIZE)
      INTEGER ARG,SIZE
      INTEGER LINE(SIZE)
      INTEGER I
      INTEGER GETARG
      I=GETARG(ARG,LINE,SIZE-1)
      IF((I.NE.-1))GOTO 10031
        ARGLIN=I
        RETURN
10031 LINE(I+1)=138
      LINE(I+2)=0
      ARGLIN=I+1
      RETURN
      END
      INTEGER FUNCTION MAKSET(ARRAY,K,SET,SIZE)
      INTEGER K,SIZE
      INTEGER ARRAY(1),SET(SIZE)
      INTEGER I,J
      INTEGER ADDSET
      I=K
      J=1
      CALL FILSET(0,ARRAY,I,SET,J,SIZE)
      MAKSET=ADDSET(0,SET,J,SIZE)
      RETURN
      END
      INTEGER FUNCTION XINDEX(ARRAY,C,ALLBUT,TOSIZE)
      INTEGER ARRAY(1),C
      INTEGER ALLBUT,TOSIZE
      INTEGER INDEX
      IF((C.NE.0))GOTO 10032
        XINDEX=0
        GOTO 10033
10032   IF((ALLBUT.NE.0))GOTO 10034
          XINDEX=INDEX(ARRAY,C)
          GOTO 10035
10034     IF((INDEX(ARRAY,C).LE.0))GOTO 10036
            XINDEX=0
            GOTO 10037
10036       XINDEX=TOSIZE+1
10037   CONTINUE
10035 CONTINUE
10033 RETURN
      END
C ---- Long Name Map ----
C transliterate                  trans0