<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_files(manager):
 """ Process a random number of files on a random number of systems across multiple data centers """


    # Get a top level progress bar
    enterprise = manager.counter(total=DATACENTERS, desc='Processing:', unit='datacenters')

    # Iterate through data centers
    for dnum in range(1, DATACENTERS + 1):
        systems = random.randint(*SYSTEMS)  # Random number of systems
        # Get a child progress bar. leave is False so it can be replaced
        currCenter = manager.counter(total=systems, desc='  Datacenter %d:' % dnum,
                                     unit='systems', leave=False)

        # Iterate through systems
        for snum in range(1, systems + 1):

            # Has no total, so will act as counter. Leave is False
            system = manager.counter(desc='    System %d:' % snum, unit='files', leave=False)
            files = random.randint(*FILES)  # Random file count

            # Iterate through files
            for fnum in range(files):  # pylint: disable=unused-variable
                system.update()  # Update count
                time.sleep(random.uniform(0.0001, 0.0005))  # Random processing time

            system.close()  # Close counter so it gets removed
            # Log status
            LOGGER.info('Updated %d files on System %d in Datacenter %d', files, snum, dnum)
            currCenter.update()  # Update count

        currCenter.close()  # Close counter so it gets removed

        enterprise.update()  # Update count

    enterprise.close()