Marriott to buy Starwood Hotels in $17.37 billion deal