anchor.diff:  %% @see //stdlib/gen_fsm:handle_info/3
   %% @private
   %%
  -handle_info({gen_event_EXIT, _Handler, Reason}, _StateName, StateData) ->
  +handle_info({gen_event_EXIT, _Handler, {swapped, _, _}},
  +		installed, StateData) ->
  +	{next_state, installed, StateData};
  +handle_info({gen_event_EXIT, _Handler, Reason}, installed,
  +		#statedata{backoff = Time} = StateData) ->
  +	NewStateData = StateData#statedata{reason = Reason},
  +	{next_state, backoff, NewStateData, Time};
  +handle_info({'EXIT', _Handler, Reason}, _StateName, StateData) ->
   	{stop, Reason, StateData}.
   
   -spec terminate(Reason, StateName, StateData) -> any()
  
positive.code: 		Reason :: normal | term().
  %% @doc Handle event received in `register' state.
  %% @private
  install(timeout, #statedata{profile = Profile, callback = Callback} = State) ->
  	case gen_event:add_sup_handler(ocs_event_log, ocs_event_log,
  			[self(), Profile, Callback]) of
  		ok ->
  			{next_state, backoff, State};
  		{'EXIT', Reason} ->
  			{stop, Reason, State}
  	end.
  
  -spec backoff(Event, State) -> Result
  	when
  		Event :: {Type, Resource, Category},
  		Type :: create_bucket | delete_bucket | charge | depleted | accumulated
  				| create_product | delete_product | create_service | delete_service
  				| create_offer | delete_offer | create_resource | delete_resource
  				| insert_gtt | delete_gtt | log_acct,
  		Resource :: ocs_log:acct_event() | ocs_log:auth_event(),
  		Category :: balance | product | service | resource | usage,
  		State :: statedata(),
  		Result :: {next_state, NextStateName, NewStateData}
  			| {next_state, NextStateName, NewStateData, timeout}
  			| {next_state, NextStateName, NewStateData, hibernate}
  
negative.code: 		{id :: string(),
  		profile :: atom(),
  		callback :: string(),
  		backoff :: pos_integer(),
  		reason :: term()}).
  -type statedata() :: #statedata{}.
  
  %%----------------------------------------------------------------------
  