<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def from_dict(cls, parm, vrf = None):
 """ Create new VRF-object from dict. Suitable for creating objects from XML-RPC data. All available keys must exist. """


        if vrf is None:
            vrf = VRF()

        vrf.id = parm['id']
        vrf.rt = parm['rt']
        vrf.name = parm['name']
        vrf.description = parm['description']

        vrf.tags = {}
        for tag_name in parm['tags']:
            tag = Tag.from_dict({'name': tag_name })
            vrf.tags[tag_name] = tag
        vrf.avps = parm['avps']

        vrf.num_prefixes_v4 = int(parm['num_prefixes_v4'])
        vrf.num_prefixes_v6 = int(parm['num_prefixes_v6'])
        vrf.total_addresses_v4 = int(parm['total_addresses_v4'])
        vrf.total_addresses_v6 = int(parm['total_addresses_v6'])
        vrf.used_addresses_v4 = int(parm['used_addresses_v4'])
        vrf.used_addresses_v6 = int(parm['used_addresses_v6'])
        vrf.free_addresses_v4 = int(parm['free_addresses_v4'])
        vrf.free_addresses_v6 = int(parm['free_addresses_v6'])

        return vrf