 url = require('url')
 qutil = require('./util')
 {inspect} = require('util')
+
+crypto = require('crypto')
 
 class SiteBuilder extends events.EventEmitter
   fsTaskQueue: qutil.taskQueue(35)

            delete trackerMap["#{relPath}"]
            @renderAnswerEx(renderDone, rx, arguments...)
          trackerMap["#{relPath}"] = renderAnswer
          citem.render(rx_vars, renderAnswer)
          statDone()

      tasks.seed() # add an empty task to start when no rendered items are added
      return true

  fs: qutil.fs
  renderAnswerEx: (done, rx, err, what)->
    if err?

    if mtime? and rx.mtime and mtime<=rx.mtime
      done()
      return @logUnchanged(rx)

    if rx.content?.dstHash and not what.pipe?
      hl = []
      for enc in ['utf8', 'binary']
        whatHash = @newHash().update(what, enc).digest('hex')
        if whatHash == rx.content.dstHash
          done()
          return @logUnchanged(rx)
        hl.push whatHash
      hl.push rx.content.dstHash

    @fsTaskQueue.do =>
      if what.pipe?
