anchor.diff:    }
   }
   
  -void printHeader(Options opts) {
  -  var fromStamp = opts.from.toIso8601String().substring(0,10);
  -  var toStamp = opts.to.toIso8601String().substring(0,10);
  +void printHeader(Options opts, String which) {
  +  var fromStamp = opts.from.toIso8601String().substring(0, 10);
  +  var toStamp = opts.to.toIso8601String().substring(0, 10);
   
     print('\n\nTo: flutter-team@google.com, flutter-dart-tpm@google.com\n\n');
  -  if (DateTime.now().weekday == DateTime.tuesday) print('Subject: Flutter TODAY Tuesday report!\n');
  -  if (DateTime.now().weekday == DateTime.thursday) print('Subject: Flutter TODAY Thursday report!\n');
  +  if (DateTime.now().weekday == DateTime.tuesday)
  +    print('Subject: Flutter ${which} Tuesday report!\n');
  +  if (DateTime.now().weekday == DateTime.thursday)
  +    print('Subject: Flutter ${which} Thursday report!\n');
     if (DateTime.now().weekday != DateTime.tuesday &&
         DateTime.now().weekday != DateTime.thursday) {
  -    print('Subject: TODAY issues from ${fromStamp} to ${toStamp}\n\n');
  +    print('Subject: ${which} issues from ${fromStamp} to ${toStamp}\n\n');
     }
     print('\n\n---\n\n');
   }
  
positive.code:   if (opts.exitCode != null) exit(opts.exitCode);
    final token = Platform.environment['GITHUB_TOKEN'];
    final github = GitHub(token);
    final closedRange = DateRange(DateRangeType.range, start: opts.from, end: opts.to);
    final openedRange = DateRange(DateRangeType.range, start: opts.to.subtract(Duration(hours: 24 * 7)), end:opts.to);
  
    var openIssues = await github.search(owner: 'flutter', 
      name: 'flutter', 
      type: GitHubIssueType.issue,
      state: GitHubIssueState.open,
      labels: ['P0'],
    );
    
    var closedIssues = await github.search(owner: 'flutter', 
      name: 'flutter', 
      type: GitHubIssueType.issue,
      state: GitHubIssueState.closed,
      labels: ['P0'],
  
negative.code: import 'package:args/args.dart';
  import 'dart:io';
  
  class Options {
    final _parser = ArgParser(allowTrailingOptions: false);
    ArgResults _results;
    DateTime get from => DateTime.parse(_results['from']);
    DateTime get to => DateTime.parse(_results['to']);
    int get exitCode => _results == null ? -1 : _results['help'] ? 0 : null;
    bool get excludePerformance => _results['include-performance'] ?? false;
    Options(List<String> args) {
      _parser
        ..addFlag('help',
            defaultsTo: false, abbr: 'h', negatable: false, help: 'get usage')
        ..addOption('from',
            defaultsTo:
                DateTime.now().subtract(Duration(hours: 24 * 7)).toString(),
            abbr: 'f',
            help: 'from date, ISO format yyyy-mm-dd')
        ..addOption('to',
            defaultsTo: DateTime.now().toIso8601String(),
            abbr: 't',
            help: 'to date, ISO format yyyy-mm-dd')
        ..addOption('include-performance',
            abbr: 'p', help: 'include performance issues');
      try {
        _results = _parser.parse(args);
        if (_results['help']) _printUsage();
      } on ArgParserException catch (e) {
        print(e.message);
        _printUsage();
  