<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _read_join_ack(self, bits, size, kind):
 """Read Join Connection option for Third ACK. Positional arguments: * bits - str, 4-bit data * size - int, length of option * kind - int, 30 (Multipath TCP) Returns: * dict -- extracted Join Connection (MP_JOIN-ACK) option for Third ACK Structure of MP_JOIN-ACK [RFC 6824]: 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 | Kind | Length = 24 |Subtype| (reserved) | | | | | | Sender's HMAC (160 bits) | | | | | Octets Bits Name Description 0 0 tcp.mp.kind Kind (30) 1 8 tcp.mp.length Length (24) 2 16 tcp.mp.subtype Subtype (1|ACK) 2 20 - Reserved (must be zero) 4 32 tcp.mp.join.ack.hmac Sender's HMAC """

        temp = self._read_fileng(20)

        data = dict(
            kind=kind,
            length=size + 1,
            subtype='MP_JOIN-ACK',
            join=dict(
                ack=dict(
                    hmac=temp,
                ),
            ),
        )

        return data