half merge