function $AdfFireBugLogWriter$$($parentWindow$$3$$, $backupLogWriter$$5$$) {
  $AdfAssert$$.assert(window.console && window.console.firebug, "Firebug not installed");
  $AdfFireBugLogWriter$$.$_originalAssertionFailed$ = $AdfAssert$$.$assertionFailed$;
  $AdfAssert$$.$assertionFailed$ = $AdfFireBugLogWriter$$.$_assertionHook$;
  this.Init($parentWindow$$3$$, $backupLogWriter$$5$$)
}
$goog$exportSymbol$$("AdfFireBugLogWriter", $AdfFireBugLogWriter$$);
$AdfObject$$.$createSubclass$($AdfFireBugLogWriter$$, $AdfLogWriter$$);
$AdfFireBugLogWriter$$.prototype.Init = function $$AdfFireBugLogWriter$$$$Init$($parentWindow$$4$$, $backupLogWriter$$6$$) {
  $AdfFireBugLogWriter$$.$superclass$.Init.call(this, $parentWindow$$4$$, $backupLogWriter$$6$$);
  this.$_errorLogWriter$ = $AdfFireBugLogWriter$$.$WRITE_ERRORS_TO_CONSOLE$ ? new $AdfConsoleLogWriter$$($parentWindow$$4$$, $backupLogWriter$$6$$) : $JSCompiler_alias_NULL$$
};
$AdfObject$$.$exportPrototypeSymbol$("AdfFireBugLogWriter.prototype.Init", {Init:$AdfFireBugLogWriter$$.prototype.Init});
$AdfFireBugLogWriter$$.prototype.$PublishImpl$ = function $$AdfFireBugLogWriter$$$$$PublishImpl$$($logRecord$$13_when$$4$$) {
  this.$CheckIfClosed$();
  $AdfAssert$$.assert($logRecord$$13_when$$4$$, "null logRecord");
  var $errorLogWriter_firebugConsole$$ = this.$_errorLogWriter$, $error$$13$$ = $logRecord$$13_when$$4$$[$AdfLogRecord$$.$ERROR_FIELD$];
  if($error$$13$$ && $errorLogWriter_firebugConsole$$) {
    $errorLogWriter_firebugConsole$$.$publish$($logRecord$$13_when$$4$$)
  }else {
    var $errorLogWriter_firebugConsole$$ = window.console, $logFunc_severity$$8$$ = $logRecord$$13_when$$4$$[$AdfLogRecord$$.$LEVEL_FIELD$], $logFunc_severity$$8$$ = $logFunc_severity$$8$$ >= $AdfLogger$$.SEVERE ? $errorLogWriter_firebugConsole$$.error : $logFunc_severity$$8$$ >= $AdfLogger$$.WARNING ? $errorLogWriter_firebugConsole$$.warn : $logFunc_severity$$8$$ >= $AdfLogger$$.INFO ? $errorLogWriter_firebugConsole$$.info : $errorLogWriter_firebugConsole$$.debug, $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$;
    $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$ = $logRecord$$13_when$$4$$[$AdfLogRecord$$.$MESSAGE_FIELD$];
    if($formattedMessage_inTextArray$$inline_401_theText$$inline_400$$ == $JSCompiler_alias_NULL$$) {
      $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$ = $JSCompiler_alias_NULL$$
    }else {
      if($AdfAssert$$.$assertString$($formattedMessage_inTextArray$$inline_401_theText$$inline_400$$), !(100 >= $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$.length)) {
        $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$ = $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$.split("\n");
        for(var $outTextArray$$inline_402$$ = [], $inTextCount$$inline_403$$ = $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$.length, $inTextIndex$$inline_404$$ = 0;$inTextIndex$$inline_404$$ < $inTextCount$$inline_403$$;$inTextIndex$$inline_404$$++) {
          var $textStart$$inline_405$$ = 0, $inText$$inline_406$$ = $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$[$inTextIndex$$inline_404$$], $inTextLength$$inline_407$$ = $inText$$inline_406$$.length;
          if(100 > $inTextLength$$inline_407$$) {
            $outTextArray$$inline_402$$.push($inText$$inline_406$$)
          }else {
            for(;$textStart$$inline_405$$ < $inTextLength$$inline_407$$;) {
              var $endIndex$$inline_408_skip$$inline_411$$ = $textStart$$inline_405$$ + 100, $spaceIndex$$inline_409$$ = $inText$$inline_406$$.lastIndexOf(" ", $endIndex$$inline_408_skip$$inline_411$$), $tabIndex$$inline_410$$ = $inText$$inline_406$$.lastIndexOf("\t", $endIndex$$inline_408_skip$$inline_411$$);
              $tabIndex$$inline_410$$ > $spaceIndex$$inline_409$$ && ($spaceIndex$$inline_409$$ = $tabIndex$$inline_410$$);
              $spaceIndex$$inline_409$$ < $textStart$$inline_405$$ ? ($spaceIndex$$inline_409$$ = $endIndex$$inline_408_skip$$inline_411$$, $endIndex$$inline_408_skip$$inline_411$$ = 0) : $endIndex$$inline_408_skip$$inline_411$$ = 1;
              $outTextArray$$inline_402$$.push("\t" + $inText$$inline_406$$.substring($textStart$$inline_405$$, $spaceIndex$$inline_409$$));
              $textStart$$inline_405$$ = $spaceIndex$$inline_409$$ + $endIndex$$inline_408_skip$$inline_411$$
            }
          }
        }
        $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$ = $outTextArray$$inline_402$$.join("\n")
      }
    }
    $logRecord$$13_when$$4$$ = $logRecord$$13_when$$4$$[$AdfLogRecord$$.$WHEN_FIELD$];
    $error$$13$$ ? $logFunc_severity$$8$$.call($errorLogWriter_firebugConsole$$, "Message:%s\nError:%o\nWhen:%o", $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$, $error$$13$$, $logRecord$$13_when$$4$$) : $logFunc_severity$$8$$.call($errorLogWriter_firebugConsole$$, "Message:%s\nWhen:%o", $formattedMessage_inTextArray$$inline_401_theText$$inline_400$$, $logRecord$$13_when$$4$$)
  }
};
$AdfObject$$.$exportPrototypeSymbol$("AdfFireBugLogWriter.prototype.PublishImpl", {$PublishImpl$:$AdfFireBugLogWriter$$.prototype.$PublishImpl$});
$AdfFireBugLogWriter$$.prototype.flush = function $$AdfFireBugLogWriter$$$$flush$() {
  $AdfFireBugLogWriter$$.$superclass$.flush.call(this);
  var $errorLogWriter$$1$$ = this.$_errorLogWriter$;
  $errorLogWriter$$1$$ && $errorLogWriter$$1$$.flush()
};
$AdfObject$$.$exportPrototypeSymbol$("AdfFireBugLogWriter.prototype.flush", {flush:$AdfFireBugLogWriter$$.prototype.flush});
$AdfFireBugLogWriter$$.prototype.close = function $$AdfFireBugLogWriter$$$$close$() {
  $AdfFireBugLogWriter$$.$superclass$.close.call(this);
  var $errorLogWriter$$2$$ = this.$_errorLogWriter$;
  $errorLogWriter$$2$$ && $errorLogWriter$$2$$.close()
};
$AdfObject$$.$exportPrototypeSymbol$("AdfFireBugLogWriter.prototype.close", {close:$AdfFireBugLogWriter$$.prototype.close});
$AdfFireBugLogWriter$$.$_assertionHook$ = function $$AdfFireBugLogWriter$$$$_assertionHook$$($message$$48$$, $skipLevel$$2$$, $reason$$4$$) {
  var $theConsole$$ = window.console;
  if($theConsole$$) {
    var $consoleMessage_params$$12$$ = $message$$48$$, $format$$7$$ = "Assertion %sfailed ", $consoleMessage_params$$12$$ = [$JSCompiler_alias_NULL$$, $consoleMessage_params$$12$$ == $JSCompiler_alias_NULL$$ ? "" : $consoleMessage_params$$12$$ + " "];
    $reason$$4$$ != $JSCompiler_alias_NULL$$ && ($format$$7$$ += " because %s ", $consoleMessage_params$$12$$[2] = $reason$$4$$);
    $consoleMessage_params$$12$$[0] = $format$$7$$ + "at:";
    $theConsole$$.group.apply($theConsole$$, $consoleMessage_params$$12$$);
    $theConsole$$.trace();
    $theConsole$$.groupEnd()
  }
  $AdfFireBugLogWriter$$.$_originalAssertionFailed$($message$$48$$, $skipLevel$$2$$ + 1, $reason$$4$$)
};
$AdfFireBugLogWriter$$.$WRITE_ERRORS_TO_CONSOLE$ = $JSCompiler_alias_TRUE$$;
$goog$exportSymbol$$("AdfFireBugLogWriter.WRITE_ERRORS_TO_CONSOLE", $AdfFireBugLogWriter$$.$WRITE_ERRORS_TO_CONSOLE$);
