// 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 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 -> Main, s, String {{
    out.println("before -> Main, s, String ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Main, s, String {{
    out.println("after -> Main, s, String ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before BusRoute {{
    out.println("before BusRoute");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after BusRoute {{
    out.println("after BusRoute");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> BusRoute, name, Ident {{
    out.println("before -> BusRoute, name, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> BusRoute, name, Ident {{
    out.println("after -> BusRoute, name, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> BusRoute, buses, Bus_List {{
    out.println("before -> BusRoute, buses, Bus_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> BusRoute, buses, Bus_List {{
    out.println("after -> BusRoute, buses, Bus_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> BusRoute, towns, Town_List {{
    out.println("before -> BusRoute, towns, Town_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> BusRoute, towns, Town_List {{
    out.println("after -> BusRoute, towns, Town_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Bus {{
    out.println("before Bus");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Bus {{
    out.println("after Bus");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Bus, name, Ident {{
    out.println("before -> Bus, name, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Bus, name, Ident {{
    out.println("after -> Bus, name, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Bus, passengers, Person_List {{
    out.println("before -> Bus, passengers, Person_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Bus, passengers, Person_List {{
    out.println("after -> Bus, passengers, Person_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Town {{
    out.println("before Town");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Town {{
    out.println("after Town");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Town, name, Ident {{
    out.println("before -> Town, name, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Town, name, Ident {{
    out.println("after -> Town, name, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Town, busStops, BusStop_List {{
    out.println("before -> Town, busStops, BusStop_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Town, busStops, BusStop_List {{
    out.println("after -> Town, busStops, BusStop_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Person {{
    out.println("before Person");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Person {{
    out.println("after Person");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Person, name, Ident {{
    out.println("before -> Person, name, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Person, name, Ident {{
    out.println("after -> Person, name, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before BusStop {{
    out.println("before BusStop");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after BusStop {{
    out.println("after BusStop");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> BusStop, name, Ident {{
    out.println("before -> BusStop, name, Ident ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> BusStop, name, Ident {{
    out.println("after -> BusStop, name, Ident ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> BusStop, waiting, Person_List {{
    out.println("before -> BusStop, waiting, Person_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> BusStop, waiting, Person_List {{
    out.println("after -> BusStop, waiting, Person_List ");
    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 Bus_List {{
    out.println("before Bus_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Bus_List {{
    out.println("after Bus_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Bus_List, first, Nonempty_Bus_List {{
    out.println("before -> Bus_List, first, Nonempty_Bus_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Bus_List, first, Nonempty_Bus_List {{
    out.println("after -> Bus_List, first, Nonempty_Bus_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Town_List {{
    out.println("before Town_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Town_List {{
    out.println("after Town_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Town_List, first, Nonempty_Town_List {{
    out.println("before -> Town_List, first, Nonempty_Town_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Town_List, first, Nonempty_Town_List {{
    out.println("after -> Town_List, first, Nonempty_Town_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Person_List {{
    out.println("before Person_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Person_List {{
    out.println("after Person_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Person_List, first, Nonempty_Person_List {{
    out.println("before -> Person_List, first, Nonempty_Person_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Person_List, first, Nonempty_Person_List {{
    out.println("after -> Person_List, first, Nonempty_Person_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before BusStop_List {{
    out.println("before BusStop_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after BusStop_List {{
    out.println("after BusStop_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> BusStop_List, first, Nonempty_BusStop_List {{
    out.println("before -> BusStop_List, first, Nonempty_BusStop_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> BusStop_List, first, Nonempty_BusStop_List {{
    out.println("after -> BusStop_List, first, Nonempty_BusStop_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Bus_List {{
    out.println("before Nonempty_Bus_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Bus_List {{
    out.println("after Nonempty_Bus_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Bus_List, it, Bus {{
    out.println("before -> Nonempty_Bus_List, it, Bus ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Bus_List, it, Bus {{
    out.println("after -> Nonempty_Bus_List, it, Bus ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Bus_List, next, Nonempty_Bus_List {{
    out.println("before -> Nonempty_Bus_List, next, Nonempty_Bus_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Bus_List, next, Nonempty_Bus_List {{
    out.println("after -> Nonempty_Bus_List, next, Nonempty_Bus_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Town_List {{
    out.println("before Nonempty_Town_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Town_List {{
    out.println("after Nonempty_Town_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Town_List, it, Town {{
    out.println("before -> Nonempty_Town_List, it, Town ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Town_List, it, Town {{
    out.println("after -> Nonempty_Town_List, it, Town ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Town_List, next, Nonempty_Town_List {{
    out.println("before -> Nonempty_Town_List, next, Nonempty_Town_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Town_List, next, Nonempty_Town_List {{
    out.println("after -> Nonempty_Town_List, next, Nonempty_Town_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_Person_List {{
    out.println("before Nonempty_Person_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_Person_List {{
    out.println("after Nonempty_Person_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Person_List, it, Person {{
    out.println("before -> Nonempty_Person_List, it, Person ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Person_List, it, Person {{
    out.println("after -> Nonempty_Person_List, it, Person ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_Person_List, next, Nonempty_Person_List {{
    out.println("before -> Nonempty_Person_List, next, Nonempty_Person_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_Person_List, next, Nonempty_Person_List {{
    out.println("after -> Nonempty_Person_List, next, Nonempty_Person_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before Nonempty_BusStop_List {{
    out.println("before Nonempty_BusStop_List");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after Nonempty_BusStop_List {{
    out.println("after Nonempty_BusStop_List");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_BusStop_List, it, BusStop {{
    out.println("before -> Nonempty_BusStop_List, it, BusStop ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_BusStop_List, it, BusStop {{
    out.println("after -> Nonempty_BusStop_List, it, BusStop ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  before -> Nonempty_BusStop_List, next, Nonempty_BusStop_List {{
    out.println("before -> Nonempty_BusStop_List, next, Nonempty_BusStop_List ");
    indent++;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
  after -> Nonempty_BusStop_List, next, Nonempty_BusStop_List {{
    out.println("after -> Nonempty_BusStop_List, next, Nonempty_BusStop_List ");
    indent--;
    for (int i = 0; i < indent; i++) out.print(" ");
  }}
}