code: def get_critical_path_timings(self):
      
      setup_workunit = WorkUnitLabel.SETUP.lower()
      transitive_dependencies = dict()
      for goal_info in self._sorted_goal_infos:
        deps = transitive_dependencies.setdefault(goal_info.goal.name, set())
        for dep in goal_info.goal_dependencies:
          deps.add(dep.name)
          deps.update(transitive_dependencies.get(dep.name))
        # Add setup workunit as a dep manually, as its unaccounted for, otherwise.
        deps.add(setup_workunit)
      raw_timings = dict()
      for entry in self.cumulative_timings.get_all():
        raw_timings[entry["label"]] = entry["timing"]
  
      critical_path_timings = AggregatedTimings()
  
      def add_to_timings(goal, dep):
        tracking_label = get_label(goal)
        timing_label = get_label(dep)
        critical_path_timings.add_timing(tracking_label, raw_timings.get(timing_label, 0.0))
  
      def get_label(dep):
        return "{}:{}".format(RunTracker.DEFAULT_ROOT_NAME, dep)
  
      # Add setup workunit to critical_path_timings manually, as its unaccounted for, otherwise.
      add_to_timings(setup_workunit, setup_workunit)
  
      for goal, deps in transitive_dependencies.items():
        add_to_timings(goal, goal)
        for dep in deps:
          add_to_timings(goal, dep)
  
      return critical_path_timings
docs: Get the cumulative timings of each goal and all of the goals it (transitively) depended on.