def _read_mode_utopt(self, size, kind):
temp = self._read_fileng(size)<EOL>data = dict(<EOL>kind=kind,<EOL>length=size,<EOL>granularity='<STR_LIT>' if int(temp[<NUM_LIT:0>]) else '<STR_LIT>',<EOL>timeout=bytes(chr(int(temp[<NUM_LIT:0>:], base=<NUM_LIT:2>)), encoding='<STR_LIT:utf-8>'),<EOL>)<EOL>return data<EOL>
Read User Timeout option.

        Positional arguments:
            * size - int, length of option
            * kind - int, 28 (User Timeout Option)

        Returns:
            * dict -- extracted User Timeout (TIMEOUT) option

        Structure of TCP TIMEOUT [RFC 5482]:
             0                   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 = 28   |   Length = 4  |G|        User Timeout         |
            +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

            Octets      Bits        Name                    Description
              0           0     tcp.timeout.kind        Kind (28)
              1           8     tcp.timeout.length      Length (4)
              2          16     tcp.timeout.granularity Granularity
              2          17     tcp.timeout.timeout     User Timeout