anchor.diff:          {true, _} ->
               [#file_block{offset = ExpectedBeg, size = Size + Offset - ExpectedBeg}];
           {false, true} ->
  +            % Split block as rtransfer_link requires it to split requests optimally
               [Block#file_block{size = PossibleSplitPoint - Offset},
                   #file_block{offset = PossibleSplitPoint, size = Size + Offset - PossibleSplitPoint}];
           _ ->
  
positive.code:             case storage:get_block_size(LocalStorageId) of
                  undefined ->
                      Requests;
                  0 ->
                      Requests;
                  BlockSize ->
                      ProvidersAllBlocksMap = lists:foldl(fun({ProviderId, AllProviderBlocks, _StorageDetails}, Acc) ->
                          Acc#{ProviderId => AllProviderBlocks}
                      end, #{}, ProvidersAllBlocks),
  
                      MinSize = ?BLOCK_SUITING_MIN_SIZE,
                      lists:map(fun({ProviderId, Blocks, StorageDetails}) ->
                          FinalBlocks = suite_blocks_sizes(Blocks, maps:get(ProviderId, ProvidersAllBlocksMap),
                              BlockSize, MinSize),
                          {ProviderId, FinalBlocks, StorageDetails}
                      end, Requests)
              end;
  
negative.code: %% API
  -export([get_blocks_for_sync/2, get_remote_duplicated_blocks/1, get_all_blocks/1]).
  
  % Enable/disable suiting of requested blocks` range to storage block size. If true,
  % requested blocks will be enlarged to overlap with full storage system blocks to
  % optimize data writing to storage system. Blocks are enlarged only if source provider
  % posses data needed to enlarge block.
  -define(BLOCK_SUITING_OPT, application:get_env(?APP_NAME, synchronizer_block_suiting, true)).
  % Define minimal size of block that can be enlarged.
  % This option can be used to prevent system from enlarging small blocks because such
  % behaviour can result in significantly increased consumption of network bandwidth.
  % By default the system tries to suite all requested blocks to storage block size
  % (all blocks of size greater than 0).
  -define(BLOCK_SUITING_MIN_SIZE, application:get_env(?APP_NAME, synchronizer_block_suiting_min_size, 0)).
  
  %%%===================================================================
  