<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def spinn5_local_eth_coord(x, y, w, h, root_x=0, root_y=0):
 """Get the coordinates of a chip's local ethernet connected chip. Returns the coordinates of the ethernet connected chip on the same board as the supplied chip. .. note:: This function assumes the system is constructed from SpiNN-5 boards .. warning:: In general, applications should interrogate the machine to determine which Ethernet connected chip is considered 'local' to a particular SpiNNaker chip, e.g. using :py:class:`rig.machine_control.MachineController.get_system_info`:: >> from rig.machine_control import MachineController >> mc = MachineController("my-machine") >> si = mc.get_system_info() >> print(si[(3, 2)].local_ethernet_chip) (0, 0) :py:func:`.spinn5_local_eth_coord` will always produce the coordinates of the Ethernet-connected SpiNNaker chip on the same SpiNN-5 board as the supplied chip. In future versions of the low-level system software, some other method of choosing local Ethernet connected chips may be used. Parameters x, y : int Chip whose coordinates are of interest. w, h : int Width and height of the system in chips. root_x, root_y : int The coordinates of the root chip (i.e. the chip used to boot the machine), e.g. from :py:attr:`rig.machine_control.MachineController.root_chip`. """

    dx, dy = SPINN5_ETH_OFFSET[(y - root_y) % 12][(x - root_x) % 12]
    return ((x + int(dx)) % w), ((y + int(dy)) % h)