code: def as_dict(self):
          
          out = dict({})
          for key in self.keys():
              if self._has_delimiter(key):
                  pk, ck = key.split(self._delimiter, 1)
                  if self._has_delimiter(ck):
                      ck = ck.split(self._delimiter, 1)[0]
                  if isinstance(self._values[pk], FlatterDict) and pk not in out:
                      out[pk] = dict()
                  if isinstance(self._values[pk][ck], FlatterDict):
                      if self._values[pk][ck].original_type == tuple:
                          out[pk][ck] = tuple(self._child_as_list(pk, ck))
                      elif self._values[pk][ck].original_type == list:
                          out[pk][ck] = self._child_as_list(pk, ck)
                      elif self._values[pk][ck].original_type == set:
                          out[pk][ck] = set(self._child_as_list(pk, ck))
                      elif self._values[pk][ck].original_type == dict:
                          out[pk][ck] = self._values[pk][ck].as_dict()
                  else:
                      out[pk][ck] = self._values[pk][ck]
              else:
                  out[key] = self._values[key]
          return out
docs: Return the :class:`~flatdict.FlatterDict` as a nested
          :class:`dict`.
  
          :rtype: dict