anchor.diff:          throw new BadInputException("    ");
         }
       }
  + %>
  +  <c:set var="showDeleted" value="<%= showDeleted %>"/>
  +
  +<%
  +
  +    int filterMode = CommentViewer.FILTER_NONE;
  +
  +    if (!tmpl.getProf().getBoolean("showanonymous")) {
  +      filterMode += CommentViewer.FILTER_ANONYMOUS;
  +    }
  +
  +    if (!tmpl.getProf().getBoolean("showignored")) {
  +      filterMode += CommentViewer.FILTER_IGNORED;
  +    }
  +
  +    db = tmpl.getConnection();
  +
  +    String nick = Template.getNick(session);
  +
  +    if (nick == null || IgnoreList.getIgnoreListHash(db, nick).isEmpty()) {
  +      filterMode = filterMode & ~CommentViewer.FILTER_IGNORED;
  +    }
  +
  +    int defaultFilterMode = filterMode;
  +
  +    if (request.getParameter("filter") != null) {
  +      filterMode = CommentViewer.parseFilterChain(request.getParameter("filter"));
  +    }
  +
  +    Statement st = db.createStatement();
   
       int npage = 0;
       if (request.getParameter("page") != null) {
  
positive.code: 
      boolean showDeleted = request.getParameter("deleted") != null;
  
      int filterMode = CommentViewer.FILTER_NONE;
  
      if (!tmpl.getProf().getBoolean("showanonymous")) {
        filterMode += CommentViewer.FILTER_ANONYMOUS;
      }
  
      if (!tmpl.getProf().getBoolean("showignored")) {
        filterMode += CommentViewer.FILTER_IGNORED;
      }
  
      db = tmpl.getConnection();
  
      String nick = Template.getNick(session);
  
      if (nick == null || IgnoreList.getIgnoreListHash(db, nick).isEmpty()) {
        filterMode = filterMode & ~CommentViewer.FILTER_IGNORED;
      }
  
      int defaultFilterMode = filterMode;
  
      if (request.getParameter("filter") != null) {
        filterMode = CommentViewer.parseFilterChain(request.getParameter("filter"));
      }
  
      Statement st = db.createStatement();
  
      if (showDeleted && !"POST".equals(request.getMethod())) {
        response.setHeader("Location", tmpl.getMainUrl() + "view-message.jsp?msgid=" + msgid);
        response.setStatus(HttpServletResponse.SC_MOVED_TEMPORARILY);
  
negative.code:     if (message.isDeleted() && !Template.isSessionAuthorized(session)) {
        throw new AccessViolationException(" ");
      }
    %>
  <c:set var="message" value="<%= message %>"/>
  <title>${message.sectionTitle} - ${message.groupTitle} - ${message.title}</title>
  <link rel="parent" title="${message.sectionTitle} - ${message.groupTitle}" href="group.jsp?group=${message.groupId}">
  <%
  // count last modified time
      if (!message.isDeleted() && !showDeleted && message.getLastModified() != null) {
        response.setDateHeader("Last-Modified", message.getLastModified().getTime());
  