Move buffering into pack parser