anchor.diff:  					charging_key => ChargingKey}} | Reservations2],
   			{0, B1#bucket{remain_amount = R - Price1,
   					last_modified = {Now, erlang:unique_integer([positive])},
  -					attributes = Attributes#{reservations => maps:from_list(NewReservations)}}};
  +					attributes = Attributes#{reservations => maps:from_list(NewReservations)}}, FromBucket};
   		{[{_, #{debit := DebitedAmount, reserve := ReservedAmount}}], Reservations2}
   				when R < Price1 ->
   			NewReservations = [{SessionId, #{ts => Now, debit => DebitedAmount + R,
  
positive.code: %% 	Tops up existing bucket for session if found,
  %% 	otherwise creates session bucket(s) of `Type'.
  %% @private
  convert(Price, Type, Size, ServiceId, ChargingKey, SessionId, Buckets) ->
  	Buckets1 = sort(Buckets),
  	Fcents = fun(#bucket{units = cents}) ->
  				true;
  
negative.code: 			({_, _}) ->
  				false
  	end,
  	{Price2, B2, FBAcc2} = case lists:partition(F, maps:to_list(Reservations1)) of
  		{[{_, #{debit := DebitedAmount, reserve := ReservedAmount}}], Reservations2}
  				when R >= Price1 ->
  			NewReservations = [{SessionId, #{ts => Now,
  