>>> (indent 2)
  var results = checkProgram(uri,
      sdkDir: shouldMockSdk ? null : dartSdkPath,
      mockSdkSources: shouldMockSdk ? mockSdkSources : null,
      checkSdk: args['sdk-check'],
      useColors: useColors);
<<<
  var results = checkProgram(uri,
      sdkDir: shouldMockSdk ? null : dartSdkPath,
      mockSdkSources: shouldMockSdk ? mockSdkSources : null,
      checkSdk: args['sdk-check'],
      useColors: useColors);
>>>
var map = {
  /**
   * Date/time formatting symbols for locale en_ISO.
   */
  "en_ISO" : new DateSymbols(
      NAME: 'en_ISO',
      ERAS: const ['BC', 'AD'],
      ERANAMES: const ['Before Christ', 'Anno Domini'],
      NARROWMONTHS: const ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O',
        'N', 'D'],
      STANDALONENARROWMONTHS: const ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A',
        'S', 'O', 'N', 'D'],
      MONTHS: const ['January', 'February', 'March', 'April', 'May', 'June',
        'July', 'August', 'September', 'October', 'November', 'December'],
      STANDALONEMONTHS: const ['January', 'February', 'March', 'April', 'May',
        'June', 'July', 'August', 'September', 'October', 'November',
        'December'],
      SHORTMONTHS: const ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul',
        'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
      STANDALONESHORTMONTHS: const ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
        'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
      WEEKDAYS: const ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday',
        'Friday', 'Saturday'],
      STANDALONEWEEKDAYS: const ['Sunday', 'Monday', 'Tuesday', 'Wednesday',
        'Thursday', 'Friday', 'Saturday'],
      SHORTWEEKDAYS: const ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
      STANDALONESHORTWEEKDAYS: const ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri',
        'Sat'],
      NARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
      STANDALONENARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T',
        'F', 'S'],
      SHORTQUARTERS: const ['Q1', 'Q2', 'Q3', 'Q4'],
      QUARTERS: const ['1st quarter', '2nd quarter', '3rd quarter',
        '4th quarter'],
      AMPMS: const ['AM', 'PM'],
      DATEFORMATS: const ['EEEE, y MMMM dd', 'y MMMM d', 'y MMM d',
        'yyyy-MM-dd'],
      TIMEFORMATS: const ['HH:mm:ss v', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'],
      DATETIMEFORMATS: const ['{1} \'at\' {0}', '{1} \'at\' {0}',
        '{1}, {0}', '{1}, {0}'],
      AVAILABLEFORMATS: const {'Md': 'M/d', 'MMMMd': 'MMMM d', 'MMMd': 'MMM d'},
      FIRSTDAYOFWEEK: 0,
      WEEKENDRANGE: const [5, 6],
      FIRSTWEEKCUTOFFDAY: 3),
};
<<<
var map = {
  /**
   * Date/time formatting symbols for locale en_ISO.
   */
  "en_ISO": new DateSymbols(
      NAME: 'en_ISO',
      ERAS: const ['BC', 'AD'],
      ERANAMES: const ['Before Christ', 'Anno Domini'],
      NARROWMONTHS: const [
        'J',
        'F',
        'M',
        'A',
        'M',
        'J',
        'J',
        'A',
        'S',
        'O',
        'N',
        'D'
      ],
      STANDALONENARROWMONTHS: const [
        'J',
        'F',
        'M',
        'A',
        'M',
        'J',
        'J',
        'A',
        'S',
        'O',
        'N',
        'D'
      ],
      MONTHS: const [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'July',
        'August',
        'September',
        'October',
        'November',
        'December'
      ],
      STANDALONEMONTHS: const [
        'January',
        'February',
        'March',
        'April',
        'May',
        'June',
        'July',
        'August',
        'September',
        'October',
        'November',
        'December'
      ],
      SHORTMONTHS: const [
        'Jan',
        'Feb',
        'Mar',
        'Apr',
        'May',
        'Jun',
        'Jul',
        'Aug',
        'Sep',
        'Oct',
        'Nov',
        'Dec'
      ],
      STANDALONESHORTMONTHS: const [
        'Jan',
        'Feb',
        'Mar',
        'Apr',
        'May',
        'Jun',
        'Jul',
        'Aug',
        'Sep',
        'Oct',
        'Nov',
        'Dec'
      ],
      WEEKDAYS: const [
        'Sunday',
        'Monday',
        'Tuesday',
        'Wednesday',
        'Thursday',
        'Friday',
        'Saturday'
      ],
      STANDALONEWEEKDAYS: const [
        'Sunday',
        'Monday',
        'Tuesday',
        'Wednesday',
        'Thursday',
        'Friday',
        'Saturday'
      ],
      SHORTWEEKDAYS: const ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
      STANDALONESHORTWEEKDAYS: const [
        'Sun',
        'Mon',
        'Tue',
        'Wed',
        'Thu',
        'Fri',
        'Sat'
      ],
      NARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
      STANDALONENARROWWEEKDAYS: const ['S', 'M', 'T', 'W', 'T', 'F', 'S'],
      SHORTQUARTERS: const ['Q1', 'Q2', 'Q3', 'Q4'],
      QUARTERS: const [
        '1st quarter',
        '2nd quarter',
        '3rd quarter',
        '4th quarter'
      ],
      AMPMS: const ['AM', 'PM'],
      DATEFORMATS: const [
        'EEEE, y MMMM dd',
        'y MMMM d',
        'y MMM d',
        'yyyy-MM-dd'
      ],
      TIMEFORMATS: const ['HH:mm:ss v', 'HH:mm:ss z', 'HH:mm:ss', 'HH:mm'],
      DATETIMEFORMATS: const [
        '{1} \'at\' {0}',
        '{1} \'at\' {0}',
        '{1}, {0}',
        '{1}, {0}'
      ],
      AVAILABLEFORMATS: const {'Md': 'M/d', 'MMMMd': 'MMMM d', 'MMMd': 'MMM d'},
      FIRSTDAYOFWEEK: 0,
      WEEKENDRANGE: const [5, 6],
      FIRSTWEEKCUTOFFDAY: 3),
};