make packets be non-type templates
Generate login/user protocol
Generate client half of login/admin protocol
:%s/^\( *\)\([^ ].*\)\?\(LOG\|PRINTF\)[A-Z_]*(\(.*,\n\)\+\zs\(\1        [^ ]\)\@! */\1        /