anchor.diff:      {ok, <<1:1, T:3, Size1:4, 0:1, Size2:7, Bin_/binary>>} ->
         {ok, 2, T, (Size2 bsl 4) bor Size1, Bin_};
       {ok, <<1:1, T:3, Size1:4, 1:1, Size2:7, 0:1, Size3:7, Bin_/binary>>} ->
  -      {ok, 3, T, (Size3 bsl 11) bor (Size2 bsl 4) bor Size1, Bin_}
  +      {ok, 3, T, (Size3 bsl 11) bor (Size2 bsl 4) bor Size1, Bin_};
  +    {ok, <<1:1, T:3, Size1:4, 1:1, Size2:7, 1:1, Size3:7, 0:1, Size4:7, Bin_/binary>>} ->
  +      {ok, 4, T, (Size4 bsl 18) bor (Size3 bsl 11) bor (Size2 bsl 4) bor Size1, Bin_}
     end,
     Type1 = unpack_type(TypeInt),
   
  
positive.code:   read_object(Git, list_to_binary(SHA1hex));
  
  read_object(Git, SHA1) when is_binary(SHA1)->
    {ok, Git1, Type, Content} = read_raw_object(Git, SHA1),
    C = case Type of
      tree -> parse_tree(Content);
      commit -> parse_commit(Content);
  
negative.code:     {ok, <<1:1, Base1:7, 0:1, Base2:7, Bin_/binary>>} ->
        {2, ((Base1 + 1) bsl 7) bor Base2, Bin_};
      {ok, <<1:1, Base1:7, 1:1, Base2:7, 0:1, Base3:7, Bin_/binary>>} ->
        {3, ((Base1 + 1) bsl 14) bor ((Base2 + 1) bsl 7) bor Base3, Bin_};
      {ok, <<1:1, Base1:7, 1:1, Base2:7, 1:1, Base3:7, 0:1, Base4:7, Bin_/binary>>} ->
        {4, ((Base1 + 1) bsl 21) bor ((Base2 + 1) bsl 14) bor ((Base3 + 1) bsl 7) bor Base4, Bin_}
    end,
    BaseOffset = OrigOffset - BackOffset,
    {ok, Type, Base} = unpack_object(F, BaseOffset, Index),
  