anchor.diff:  %%  Extracts meta-info from the specified frame.
   %%
   fragment_metainfo(#ls1p_cmd_frame{addr = arduino, port = photo_data, data = Data}) ->
  -    <<BlockSize:8, From:16, Till:16>> = Data,
  -    {ok, BlockSize, From, Till}.
  +    <<BlkSz:8, From:16/little, Till:16/little>> = Data,
  +    {ok, BlkSz, From, Till};
  +
  +fragment_metainfo(#ls1p_cmd_frame{addr = arm, port = downlink, data = Data}) ->
  +    <<_BufId:8, BlkSz:8, From:16/little, Till:16/little>> = Data,
  +    {ok, BlkSz, From, Till}.
  +
  +
  +
  +%%
  +%%
  +%%
  +-spec merged_archive_fragments(
  +        [{#ls1p_cmd_frame{}, [#ls1p_data_frame{}]}]
  +        ) ->
  +        {ok, [{From :: integer(), Till :: integer(), Data :: binary()}]}.
  +
  +merged_archive_fragments(CommandsWithData) ->
  +    BlockSets = [ merge_to_blocks(C, D) || {C, D} <- CommandsWithData ],
  +
  +    % TODO: Implement overlay in a different way.
  +
  +    MergedBlocks = lists:foldl(fun overlay_block_sets/2, [], BlockSets),
  +    {ok, MergedBlocks}.
  
positive.code: %%  that are response to a single command frame.
  %%
  %%  Reverse with usort is needed here to drop old duplicated data.
  %%  TODO: Sort by time desc explicitly.
  %%
  merge_to_blocks(_CmdFrame, []) ->
      [];
  
negative.code:     {ok, PhotoSize}.
  
  
  %%
  %%
  %%
  -spec merged_response_fragments(
          [{#ls1p_cmd_frame{}, [#ls1p_data_frame{}]}]
          ) ->
  