import Control.Applicative import Text.Printf import Data.Maybe (fromJust) import qualified Data.ByteString.Lazy as L import qualified Data.ByteString.Lazy.Char8 as L8 main = do n <- fmap (read :: String -> Int) . words <$> getLine xs <- fmap (fmap (fst . fromJust . L8.readInteger) . L8.words) . L8.lines <$> L.getContents print $ solve xs solve [] = 0 solve ([c,d]:xs) = add (solve xs) (mul ((c+1) `div` 2) d) where add x y = (x + y) `mod` m mul x y = (x * y) `mod` m m = 1000000000 + 7