<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def thaw(self, tmp_dir):
 """Will perform some validation and copy a decrypted secret to it's final location"""

        for sfile in self.secrets():
            src_file = "%s/%s" % (tmp_dir, sfile)
            err_msg = "%s secret missing from icefile" % (self)
            if not os.path.exists(src_file):
                if hasattr(self.opt, 'ignore_missing') and \
                   self.opt.ignore_missing:
                    LOG.warning(err_msg)
                    continue
                else:
                    raise aomi_excep.IceFile(err_msg)

            dest_file = "%s/%s" % (self.opt.secrets, sfile)
            dest_dir = os.path.dirname(dest_file)
            if not os.path.exists(dest_dir):
                os.mkdir(dest_dir)

            shutil.copy(src_file, dest_file)
            LOG.debug("Thawed %s %s", self, sfile)