This file is part of the MMIXware package (c) Donald E Knuth 1999

    This file may be freely copied and distributed, provided that
    no changes whatsoever are made. All users are asked to help keep
    the MMIXware files consistent and ``uncorrupted,''
    identical everywhere in the world. Changes are permissible only
    if the modified file is given a new name, different from the names of
    existing files in the MMIXware package,
    and only if the modified file is clearly identified
    as not being part of that package.
    (The CWEB system has a ``change file'' facility by
    which users can easily make minor alterations without modifying
    the master source files in any way. Everybody is supposed to use
    change files instead of changing the files.)
    The author has tried his best to produce correct and useful programs,
    in order to help promote computer science research,
    but no warranty of any kind should be assumed.

