anchor.diff:  suite_block_offset_or_split(#file_block{offset = Offset, size = Size} = Block,
       ExpectedBeg, PossibleSplitPoint, AllBlocks) ->
       CanExtend = lists:any(fun(#file_block{offset = CheckO, size = CheckS}) ->
  +        % Verify if source provider posses data needed to extend beginning of the block
  +        % (it has been verified before that it has whole block)
           CheckO =< ExpectedBeg andalso CheckO + CheckS >= Offset
       end, AllBlocks),
   
  
positive.code: %% API
  -export([get_blocks_for_sync/2, get_remote_duplicated_blocks/1, get_all_blocks/1]).
  
  -define(BLOCK_SUITING_OPT, application:get_env(?APP_NAME, synchronizer_block_suiting, true)).
  -define(BLOCK_SUITING_MIN_SIZE, application:get_env(?APP_NAME, synchronizer_block_suiting_min_size, 0)).
  
  %%%===================================================================
  
negative.code: 
  -spec suite_blocks_sizes(fslogic_blocks:blocks(), fslogic_blocks:blocks(), non_neg_integer(), non_neg_integer()) ->
      fslogic_blocks:blocks().
  suite_blocks_sizes([], _AllBlocks, _StorageBlockSize, _MinSizeToSuite) ->
      [];
  suite_blocks_sizes([#file_block{size = Size} = Block | Blocks], AllBlocks, StorageBlockSize, MinSizeToSuite) when
      Size < MinSizeToSuite ->
      [Block | suite_blocks_sizes(Blocks, AllBlocks, StorageBlockSize, MinSizeToSuite)];
  suite_blocks_sizes([#file_block{offset = Offset, size = Size} = Block | Blocks], 
      AllBlocks, StorageBlockSize, MinSizeToSuite) ->
      Block2 = case (Offset + Size) rem StorageBlockSize of
          0 ->
              Block;
          EndRem ->
              ExpectedSize = Size - (StorageBlockSize - EndRem),
              suite_block_end(Block, ExpectedSize, AllBlocks)
      end,
  
      Suited = case Offset rem StorageBlockSize of
          0 ->
              [Block2];
          OffsetRem ->
              ExpectedBeg = Offset - OffsetRem,
              PossibleSplitPoint = ExpectedBeg + StorageBlockSize,
              suite_block_offset_or_split(Block2, ExpectedBeg, PossibleSplitPoint, AllBlocks)
      end,
  
      Suited ++ suite_blocks_sizes(Blocks, AllBlocks, StorageBlockSize, MinSizeToSuite).
  
  -spec suite_block_end(fslogic_blocks:block(), non_neg_integer(), fslogic_blocks:blocks()) -> fslogic_blocks:block().
  suite_block_end(#file_block{offset = Offset, size = Size} = Block, ExpectedSize, AllBlocks) ->
      CanExtend = lists:any(fun(#file_block{offset = CheckO, size = CheckS}) ->
          % Verify if source provider posses data needed to extend ending of the block
          % (it has been verified before that it has whole block)
          CheckO =< Offset + Size andalso CheckO + CheckS >= Offset + ExpectedSize
      end, AllBlocks),
  
  