<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _process_config_item(item, dirname):
 """ Process one item from the configuration file, which contains multiple items saved as dictionary. This function reads additional data from the config and do some replacements - for example, if you specify url, it will download data from this url and so on. Args: item (dict):
 Item, which will be processed. Note: Returned data format:: { "link": "link to html page/file", "html": "html code from file/url", "vars": { "varname": { "data": "matching data..", } } } Returns: dict: Dictionary in format showed above. """

    item = copy.deepcopy(item)
    html = item.get("html", None)

    if not html:
        raise UserWarning("Can't find HTML source for item:\n%s" % str(item))

    # process HTML link
    link = html if "://" in html else os.path.join(dirname, html)
    del item["html"]

    # replace $name with the actual name of the field
    for key, val in item.items():
        if "notfoundmsg" in val:
            val["notfoundmsg"] = val["notfoundmsg"].replace("$name", key)

    return {
        "html": _get_source(link),
        "link": link,
        "vars": item
    }