anchor.diff:  
   -author("Marc Worrell <marc@worrell.nl>").
   
  --export (
  -   [
  +-export([
       url_encode/1,
       url_decode/1,
       url_path_encode/1,
       url_valid_char/1,
  +    url_reserved_char/1,
       url_unreserved_char/1,
       percent_encode/1,
       percent_encode/2,
  
positive.code: -spec decode_data_url(binary()) -> {ok, Mime::binary(), Charset::binary(), Data::binary()} | {error, unknown_encoding}.
  decode_data_url(<<"data:", Data/binary>>) ->
      Parts = binary:split(Data, <<";">>, [global]),
      [Encoded|Args] = lists:reverse(Parts), 
      case decode_url_data(Encoded) of
          {ok, Decoded} ->
              {Mime, Charset} = decode_data_url_args(Args),
  
negative.code: 
  url_unreserved_char(Ch) when ?is_unreserved(Ch) ->
    true;
  url_unreserved_char(_) ->
    false.
  
  
  