anchor.diff:      Data = [value_row(V, AttrCols) || V <- Values],
       frame(samples, stats_headers(AttrCols), Data, fun stats_display_f/1, ReportCfg).
   
  -range_graph(false,_Cols,_Pts,_Samples,_ReportCfg) -> [];
  -range_graph(true, Cols, Pts, Samples, ReportCfg) ->
  +range_graph(false,_Pts,_Samples,_ReportCfg) -> [];
  +range_graph(true, Pts, Samples, ReportCfg) ->
       AllSamples0 = Samples ++ [{Value, PVAttrs} || {_Pt, Value, PVAttrs} <- Pts],
       AllSamples1 = [value_row(V, true) || V <- AllSamples0],
       AllSamples = [Row || {_V,_C, MinTS,_MinK, MaxTS,_MaxK} = Row <- AllSamples1,
  
positive.code:     [{font, [{size, "+2"}], [br, {str, "Extended data (raw)"}, br, br]},
       {term, Ext}].
  
  histogram(Id, Title, Ext, ReportCfg) ->
      {show_table, ShowTable} = config_lookup(Id, show_table, ReportCfg),
      {width, Width} = config_lookup(report, width, ReportCfg),
      PngFile = ds_graphics:histogram_graph([{xsize, Width-36}], %% FIXME
                                            Ext),
      ds_graphics:gc_image_file(PngFile, ?IMAGE_GC_TIMEOUT),
      Link = config_link(Id, show_table, not ShowTable),
      LinkText = case ShowTable of
                     true  -> "[Hide table]";
                     false -> "[Show table]"
                 end,
      [{table, [{width, "100%"},
                {cellspacing, 0}],
       [{tr, [], [{td, [], [br]}]}, % vskip
        {tr, [],
         [{th, [{align, left}],
  
negative.code:     Data = frame_data(Data0, Sort, fun(T) -> T end),
  
      {width, Width} = config_lookup(report, width, ReportCfg),
      PngFile = ds_graphics:timestamp_range_graph([{xsize, Width-40}], %% FIXME
                                                  lists:reverse(Data)),
      ds_graphics:gc_image_file(PngFile, ?IMAGE_GC_TIMEOUT),
      [{tr, [], [{td, [], [br]}]}, % vskip
       {tr, [],
        [{th, [{align, left}],
          [{font, [{size, "+1"}], [{str, "Timeline of sampled values"}]}]}]},
       {tr, [],
        [{td, [{align, left}],
          [{img, [{src, PngFile}], []}]}]}].
  
  value_row({Value, PVAttrs}, false) ->
  