anchor.diff:      {subject, Subject},
       {body, Dencrypted},
       {meta, jiffy:decode(MetaJson)}
  -  ]}.+  ]}.
  +
  +
  +hashPass(Password, Salt, 0) ->
  +  hash_md5:build(lists:concat([Password, Salt]));
  +
  +hashPass(Password, Salt, Factor) when (Factor rem 2) > 0 ->
  +  hashPass(hash_md5:build(lists:concat([Password, Salt])), Salt, Factor - 1);
  +
  +hashPass(Password, Salt, Factor) ->
  +  hashPass(hash_md5:build(lists:concat([Salt, Password])), Salt, Factor - 1).
positive.code:   {FoldedList}.
  
  fetchMsginfo(MessageID, Ukey) ->
    {ok, Compressed} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:messages"]), MessageID]),
    {ok, MetaJson} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:meta"]), MessageID]),
    {ok, Subject} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:subject"]), MessageID]),
    {ok, From} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:sender"]), MessageID]),
    {ok, IVec} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:ivec"]), MessageID]),
    {ok, Email} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":profile"]), "email"]),
    {ok, Timestamp} = {ok, 0}, %% qredis:q(["ZSCORE", lists:concat(["datasmart:users:", Ukey, ":inbox:list"]), MessageID]),
  
  %% TODO Fetch Date from the List
    Decompressed = doUncompress(Compressed),
    Encrypted = base64:decode_to_string(Decompressed),
    {ok, Dencrypted} = user_server:dencrypt(Ukey, IVec, Encrypted),
  
negative.code:   {ok, Result} = qredis:q(["ZREVRANGEBYSCORE", lists:concat(["datasmart:users:", Ukey, ":inbox:list"]), FromTS, ToTS]),
    KeyValList = ds_util:list_to_keyval_rev(Result),
    FoldedList = lists:foldl(fun({Timestamp, MessageID}, AccIn) ->
      SecretId = hashPass(MessageID, Ukey, 4),
      {ok, Subject} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:subject"]), SecretId]),
      {ok, From} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:sender"]), SecretId]),
      {ok, Copydrip} = qredis:q(["HGET", lists:concat(["datasmart:users:", Ukey, ":inbox:copydrip"]), SecretId]),
      AccIn ++ [
        {datetime, Timestamp},
        {messageID, MessageID},
  