anchor.diff:  %%
   %% @end
   %%--------------------------------------------------------------------
  -handle_call({lease_req, new_lease, {User, Path, Public, Secret}}, _From, State) ->
  -    Reply = p_new_lease(User, Path, Public, Secret, State),
  +handle_call({lease_req, new_lease, {KeyId, Path, Public, Secret}}, _From, State) ->
  +    Reply = p_new_lease(KeyId, Path, Public, Secret, State),
       {reply, Reply, State};
   handle_call({lease_req, end_lease, Public}, _From, State) ->
       Reply = p_end_lease(Public),
  
positive.code:                             %% The old lease is expired. Delete it and insert the new one
                              false ->
                                  mnesia:delete({lease, Path}),
                                  p_write_row(User, Path, Public, Secret)
                          end;
                      %% No overlapping paths were found; just insert the new entry
                      _ ->
                          p_write_row(User, Path, Public, Secret)
                  end
          end,
      {atomic, Result} = mnesia:sync_transaction(T),
  
negative.code: %%
  %% @end
  %%--------------------------------------------------------------------
  -spec request_lease(KeyId, Path, Public, Secret) -> new_lease_result()
                                                         when KeyId :: binary(),
                                                              Path :: binary(),
                                                              Public :: binary(),
                                                              Secret :: binary().
  request_lease(KeyId, Path, Public, Secret) ->
      gen_server:call(?MODULE, {lease_req, new_lease, {KeyId, Path, Public, Secret}}).
  
  %%--------------------------------------------------------------------
  %% @doc
  