Teva agrees to pay $126 million to US hospitals over opioids