optimize decode