The following is a list of commands that the Initech Employee Management System understands. Note that each command ends with a carriage return and a newline (\r\n). EXIT:1_byte_strlen_of_exit_message:exit_message FIRE:employee_name:mm:dd:yyyy:reason:SHA-1 - SHA1 begins at FIRE and ends before :SHA-1 (don't include the colon before SHA-1) HIRE:employee_name:mm:dd:yyyy:home_directory:[responsability_1:...responsibility_n:]SHA-1 - SHA1 begins at HIRE and ends before :SHA-1 (don't include the colon before SHA-1) - There can be 0 or more responsibilities separated by colons. Examples: (0 responsibilities) HIRE:John Doe:12:12:1998:/home/jdoe/: (2 responsibilities) HIRE:John Doe:12:12:1998:/home/jdoe/:Managing finances:Grabbing coffee: INFO:employee_name SEARCH:2_byte_little_endian_search_type:search_phrase - search types - \x00\x00 search by employee - \x01\x00 search by department This protocol is almost entirely text based. The only binary fields are: - EXIT's 1_byte_strlen_of_exit_message field - SEARCH's 2_byte_little_endian_search_type field