// This file is automatically generated by DemeterJ.

TraceVisitor {
  {{
    protected java.io.PrintWriter out = new java.io.PrintWriter(System.out, true);
    java.io.PrintWriter get_out()             { return out; }
    void set_out(java.io.PrintWriter new_out) { out = new_out; }
    TraceVisitor(java.io.PrintWriter out)     { set_out(out); }
    TraceVisitor(java.io.PrintStream out)
      { set_out(new java.io.PrintWriter(out, true)); }
  }}
  finish {{ out.flush(); }}


  before FileSystem {{
    out.println("before FileSystem");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after FileSystem {{
    out.println("after FileSystem");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> FileSystem, root, CompoundFile {{
    out.println("before -> FileSystem, root, CompoundFile ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> FileSystem, root, CompoundFile {{
    out.println("after -> FileSystem, root, CompoundFile ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before File {{
    out.println("before File");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after File {{
    out.println("after File");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> File, f, FileName {{
    out.println("before -> File, f, FileName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> File, f, FileName {{
    out.println("after -> File, f, FileName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before SimpleFile {{
    out.println("before SimpleFile");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after SimpleFile {{
    out.println("after SimpleFile");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before CompoundFile {{
    out.println("before CompoundFile");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CompoundFile {{
    out.println("after CompoundFile");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CompoundFile, contents, File_PList {{
    out.println("before -> CompoundFile, contents, File_PList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CompoundFile, contents, File_PList {{
    out.println("after -> CompoundFile, contents, File_PList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CompoundFile, parent, CompoundFile {{
    out.println("before -> CompoundFile, parent, CompoundFile ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CompoundFile, parent, CompoundFile {{
    out.println("after -> CompoundFile, parent, CompoundFile ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Commands {{
    out.println("before Commands");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Commands {{
    out.println("after Commands");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Commands, command_list, Command_List {{
    out.println("before -> Commands, command_list, Command_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Commands, command_list, Command_List {{
    out.println("after -> Commands, command_list, Command_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Command {{
    out.println("before Command");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Command {{
    out.println("after Command");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Simple {{
    out.println("before Simple");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Simple {{
    out.println("after Simple");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before MakeDirectory {{
    out.println("before MakeDirectory");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after MakeDirectory {{
    out.println("after MakeDirectory");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> MakeDirectory, directoryname, DirectoryName {{
    out.println("before -> MakeDirectory, directoryname, DirectoryName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> MakeDirectory, directoryname, DirectoryName {{
    out.println("after -> MakeDirectory, directoryname, DirectoryName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ChangeDirectoryUp {{
    out.println("before ChangeDirectoryUp");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ChangeDirectoryUp {{
    out.println("after ChangeDirectoryUp");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before ChangeDirectoryDown {{
    out.println("before ChangeDirectoryDown");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after ChangeDirectoryDown {{
    out.println("after ChangeDirectoryDown");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> ChangeDirectoryDown, directoryname, DirectoryName {{
    out.println("before -> ChangeDirectoryDown, directoryname, DirectoryName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> ChangeDirectoryDown, directoryname, DirectoryName {{
    out.println("after -> ChangeDirectoryDown, directoryname, DirectoryName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RecursiveCopy {{
    out.println("before RecursiveCopy");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RecursiveCopy {{
    out.println("after RecursiveCopy");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RecursiveCopy, source, FileName {{
    out.println("before -> RecursiveCopy, source, FileName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RecursiveCopy, source, FileName {{
    out.println("after -> RecursiveCopy, source, FileName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RecursiveCopy, target, FileName {{
    out.println("before -> RecursiveCopy, target, FileName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RecursiveCopy, target, FileName {{
    out.println("after -> RecursiveCopy, target, FileName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DiskUsage {{
    out.println("before DiskUsage");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DiskUsage {{
    out.println("after DiskUsage");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before SymbolicLink {{
    out.println("before SymbolicLink");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after SymbolicLink {{
    out.println("after SymbolicLink");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SymbolicLink, from, FileName {{
    out.println("before -> SymbolicLink, from, FileName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SymbolicLink, from, FileName {{
    out.println("after -> SymbolicLink, from, FileName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SymbolicLink, to, FileName {{
    out.println("before -> SymbolicLink, to, FileName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SymbolicLink, to, FileName {{
    out.println("after -> SymbolicLink, to, FileName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RemoveDirectory {{
    out.println("before RemoveDirectory");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RemoveDirectory {{
    out.println("after RemoveDirectory");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RemoveDirectory, directoryname, DirectoryName {{
    out.println("before -> RemoveDirectory, directoryname, DirectoryName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RemoveDirectory, directoryname, DirectoryName {{
    out.println("after -> RemoveDirectory, directoryname, DirectoryName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before CreateEmptyFile {{
    out.println("before CreateEmptyFile");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CreateEmptyFile {{
    out.println("after CreateEmptyFile");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CreateEmptyFile, filename, FileName {{
    out.println("before -> CreateEmptyFile, filename, FileName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CreateEmptyFile, filename, FileName {{
    out.println("after -> CreateEmptyFile, filename, FileName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before RemoveFile {{
    out.println("before RemoveFile");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after RemoveFile {{
    out.println("after RemoveFile");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> RemoveFile, filename, FileName {{
    out.println("before -> RemoveFile, filename, FileName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> RemoveFile, filename, FileName {{
    out.println("after -> RemoveFile, filename, FileName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Find {{
    out.println("before Find");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Find {{
    out.println("after Find");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Find, directoryname, DirectoryName {{
    out.println("before -> Find, directoryname, DirectoryName ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Find, directoryname, DirectoryName {{
    out.println("after -> Find, directoryname, DirectoryName ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Echo {{
    out.println("before Echo");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Echo {{
    out.println("after Echo");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Echo, message, Message {{
    out.println("before -> Echo, message, Message ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Echo, message, Message {{
    out.println("after -> Echo, message, Message ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before FileName {{
    out.println("before FileName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after FileName {{
    out.println("after FileName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> FileName, ident, Ident {{
    out.println("before -> FileName, ident, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> FileName, ident, Ident {{
    out.println("after -> FileName, ident, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DirectoryName {{
    out.println("before DirectoryName");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DirectoryName {{
    out.println("after DirectoryName");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> DirectoryName, ident, Ident {{
    out.println("before -> DirectoryName, ident, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> DirectoryName, ident, Ident {{
    out.println("after -> DirectoryName, ident, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Message {{
    out.println("before Message");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Message {{
    out.println("after Message");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Message, string, String {{
    out.println("before -> Message, string, String ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Message, string, String {{
    out.println("after -> Message, string, String ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Main {{
    out.println("before Main");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Main {{
    out.println("after Main");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before CommandVisitor {{
    out.println("before CommandVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CommandVisitor {{
    out.println("after CommandVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before FileNameVisitor {{
    out.println("before FileNameVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after FileNameVisitor {{
    out.println("after FileNameVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before PrintVisitor {{
    out.println("before PrintVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after PrintVisitor {{
    out.println("after PrintVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PrintVisitor, indent, int {{
    out.println("before -> PrintVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PrintVisitor, indent, int {{
    out.println("after -> PrintVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> PrintVisitor, needSpace, boolean {{
    out.println("before -> PrintVisitor, needSpace, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> PrintVisitor, needSpace, boolean {{
    out.println("after -> PrintVisitor, needSpace, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before CopyVisitor {{
    out.println("before CopyVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after CopyVisitor {{
    out.println("after CopyVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> CopyVisitor, copy, Object {{
    out.println("before -> CopyVisitor, copy, Object ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> CopyVisitor, copy, Object {{
    out.println("after -> CopyVisitor, copy, Object ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before SubgraphVisitor {{
    out.println("before SubgraphVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after SubgraphVisitor {{
    out.println("after SubgraphVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> SubgraphVisitor, is_equal, boolean {{
    out.println("before -> SubgraphVisitor, is_equal, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> SubgraphVisitor, is_equal, boolean {{
    out.println("after -> SubgraphVisitor, is_equal, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before EqualVisitor {{
    out.println("before EqualVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after EqualVisitor {{
    out.println("after EqualVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> EqualVisitor, is_equal, boolean {{
    out.println("before -> EqualVisitor, is_equal, boolean ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> EqualVisitor, is_equal, boolean {{
    out.println("after -> EqualVisitor, is_equal, boolean ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before DisplayVisitor {{
    out.println("before DisplayVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after DisplayVisitor {{
    out.println("after DisplayVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> DisplayVisitor, indent, int {{
    out.println("before -> DisplayVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> DisplayVisitor, indent, int {{
    out.println("after -> DisplayVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before TraceVisitor {{
    out.println("before TraceVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after TraceVisitor {{
    out.println("after TraceVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> TraceVisitor, indent, int {{
    out.println("before -> TraceVisitor, indent, int ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> TraceVisitor, indent, int {{
    out.println("after -> TraceVisitor, indent, int ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before UniversalVisitor {{
    out.println("before UniversalVisitor");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after UniversalVisitor {{
    out.println("after UniversalVisitor");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before File_PList {{
    out.println("before File_PList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after File_PList {{
    out.println("after File_PList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> File_PList, first, Nonempty_File_PList {{
    out.println("before -> File_PList, first, Nonempty_File_PList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> File_PList, first, Nonempty_File_PList {{
    out.println("after -> File_PList, first, Nonempty_File_PList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Command_List {{
    out.println("before Command_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Command_List {{
    out.println("after Command_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Command_List, first, Nonempty_Command_List {{
    out.println("before -> Command_List, first, Nonempty_Command_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Command_List, first, Nonempty_Command_List {{
    out.println("after -> Command_List, first, Nonempty_Command_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_File_PList {{
    out.println("before Nonempty_File_PList");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_File_PList {{
    out.println("after Nonempty_File_PList");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_File_PList, it, File {{
    out.println("before -> Nonempty_File_PList, it, File ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_File_PList, it, File {{
    out.println("after -> Nonempty_File_PList, it, File ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_File_PList, next, Nonempty_File_PList {{
    out.println("before -> Nonempty_File_PList, next, Nonempty_File_PList ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_File_PList, next, Nonempty_File_PList {{
    out.println("after -> Nonempty_File_PList, next, Nonempty_File_PList ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Command_List {{
    out.println("before Nonempty_Command_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Command_List {{
    out.println("after Nonempty_Command_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Command_List, it, Command {{
    out.println("before -> Nonempty_Command_List, it, Command ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Command_List, it, Command {{
    out.println("after -> Nonempty_Command_List, it, Command ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Command_List, next, Nonempty_Command_List {{
    out.println("before -> Nonempty_Command_List, next, Nonempty_Command_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Command_List, next, Nonempty_Command_List {{
    out.println("after -> Nonempty_Command_List, next, Nonempty_Command_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
}