packages feed

yesod-bin (empty) → 1.2.0

raw patch · 21 files changed

+37093/−0 lines, 21 filesdep +Cabaldep +attoparsecdep +basesetup-changed

Dependencies added: Cabal, attoparsec, base, base64-bytestring, blaze-builder, bytestring, conduit, containers, directory, file-embed, filepath, fsnotify, ghc, ghc-paths, http-conduit, http-reverse-proxy, http-types, lifted-base, network, network-conduit, optparse-applicative, parsec, process, project-template, resourcet, shakespeare, shakespeare-css, shakespeare-js, shakespeare-text, split, system-fileio, system-filepath, tar, template-haskell, text, time, transformers, unix-compat, unordered-containers, wai, warp, yaml, zlib

Files

+ AddHandler.hs view
@@ -0,0 +1,113 @@+module AddHandler (addHandler) where++import Prelude hiding (readFile)+import System.IO (hFlush, stdout)+import Data.Char (isLower, toLower, isSpace)+import Data.List (isPrefixOf, isSuffixOf)+import qualified Data.Text as T+import qualified Data.Text.IO as TIO+import System.Directory (getDirectoryContents)++-- strict readFile+readFile :: FilePath -> IO String+readFile = fmap T.unpack . TIO.readFile++addHandler :: IO ()+addHandler = do+    allFiles <- getDirectoryContents "."+    cabal <-+        case filter (".cabal" `isSuffixOf`) allFiles of+            [x] -> return x+            [] -> error "No cabal file found"+            _ -> error "Too many cabal files found"++    putStr "Name of route (without trailing R): "+    hFlush stdout+    name <- getLine+    case name of+        [] -> error "Please provide a name"+        c:_+            | isLower c -> error "Name must start with an upper case letter"+            | otherwise -> return ()+    putStr "Enter route pattern (ex: /entry/#EntryId): "+    hFlush stdout+    pattern <- getLine+    putStr "Enter space-separated list of methods (ex: GET POST): "+    hFlush stdout+    methods <- getLine++    let modify fp f = readFile fp >>= writeFile fp . f++    modify "Application.hs" $ fixApp name+    modify cabal $ fixCabal name+    modify "config/routes" $ fixRoutes name pattern methods+    writeFile ("Handler/" ++ name ++ ".hs") $ mkHandler name pattern methods++fixApp :: String -> String -> String+fixApp name =+    unlines . reverse . go . reverse . lines+  where+    l = "import Handler." ++ name++    go [] = [l]+    go (x:xs)+        | "import Handler." `isPrefixOf` x = l : x : xs+        | otherwise = x : go xs++fixCabal :: String -> String -> String+fixCabal name =+    unlines . reverse . go . reverse . lines+  where+    l = "import Handler." ++ name++    go [] = [l]+    go (x:xs)+        | "Handler." `isPrefixOf` x' = (spaces ++ "Handler." ++ name) : x : xs+        | otherwise = x : go xs+      where+        (spaces, x') = span isSpace x++fixRoutes :: String -> String -> String -> String -> String+fixRoutes name pattern methods =+    (++ l)+  where+    l = concat+        [ pattern+        , " "+        , name+        , "R "+        , methods+        , "\n"+        ]++mkHandler :: String -> String -> String -> String+mkHandler name pattern methods = unlines+    $ ("module Handler." ++ name ++ " where")+    : ""+    : "import Import"+    : concatMap go (words methods)+  where+    go method =+        [ ""+        , concat $ func : " :: " : map toArrow types ++ ["Handler Html"]+        , concat+            [ func+            , " = error \"Not yet implemented: "+            , func+            , "\""+            ]+        ]+      where+        func = concat [map toLower method, name, "R"]++    types = getTypes pattern++    toArrow t = concat [t, " -> "]++    getTypes "" = []+    getTypes ('/':rest) = getTypes rest+    getTypes ('#':rest) =+        typ : getTypes rest'+      where+        (typ, rest') = break (== '/') rest+    getTypes rest = getTypes $ dropWhile (/= '/') rest
+ Build.hs view
@@ -0,0 +1,263 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE CPP #-}+{-# LANGUAGE ScopedTypeVariables #-}+module Build+    ( getDeps+    , touchDeps+    , touch+    , recompDeps+    , isNewerThan+    , safeReadFile+    ) where++import           Control.Applicative ((<|>), many, (<$>))+import qualified Data.Attoparsec.Text as A+import           Data.Char (isSpace, isUpper)+import qualified Data.Text as T+import           Data.Text.Encoding (decodeUtf8With)+import           Data.Text.Encoding.Error (lenientDecode)+import           Data.ByteString (ByteString)+import qualified Data.ByteString as S++import           Control.Exception (SomeException, try, IOException)+import           Control.Exception.Lifted (handle)+import           Control.Monad (when, filterM, forM, forM_, (>=>))+import           Control.Monad.Trans.State (StateT, get, put, execStateT)+import           Control.Monad.Trans.Writer (WriterT, tell, execWriterT)+import           Control.Monad.IO.Class (MonadIO, liftIO)+import           Control.Monad.Trans.Class (lift)++import           Data.Monoid (Monoid (mappend, mempty))+import qualified Data.Map as Map+import qualified Data.Set as Set++import qualified System.Posix.Types+import           System.Directory+import           System.FilePath (takeExtension, replaceExtension, (</>), takeDirectory)+import           System.PosixCompat.Files (getFileStatus, setFileTimes,+                                             accessTime, modificationTime)++import           Text.Shakespeare (Deref)+import           Text.Julius      (juliusUsedIdentifiers)+import           Text.Cassius     (cassiusUsedIdentifiers)+import           Text.Lucius      (luciusUsedIdentifiers)++safeReadFile :: MonadIO m => FilePath -> m (Either IOException ByteString)+safeReadFile = liftIO . try . S.readFile++touch :: IO ()+touch = do+    m <- handle (\(_ :: SomeException) -> return Map.empty) $ readFile touchCache >>= readIO+    x <- fmap snd (getDeps [])+    m' <- execStateT (execWriterT $ touchDeps id updateFileTime x) m+    createDirectoryIfMissing True $ takeDirectory touchCache+    writeFile touchCache $ show m'+  where+    touchCache = "dist/touchCache.txt"++-- | Returns True if any files were touched, otherwise False+recompDeps :: [FilePath] -> StateT (Map.Map FilePath (Set.Set Deref)) IO Bool+recompDeps =+    fmap toBool . execWriterT . (liftIO . getDeps >=> touchDeps hiFile removeHi . snd)+  where+    toBool NoFilesTouched = False+    toBool SomeFilesTouched = True++type Deps = Map.Map FilePath ([FilePath], ComparisonType)++getDeps :: [FilePath] -> IO ([FilePath], Deps)+getDeps hsSourceDirs = do+    let defSrcDirs = case hsSourceDirs of+                        [] -> ["."]+                        ds -> ds+    hss <- fmap concat $ mapM findHaskellFiles defSrcDirs+    deps' <- mapM determineDeps hss+    return $ (hss, fixDeps $ zip hss deps')++data AnyFilesTouched = NoFilesTouched | SomeFilesTouched+instance Monoid AnyFilesTouched where+    mempty = NoFilesTouched+    mappend NoFilesTouched NoFilesTouched = mempty+    mappend _ _ = SomeFilesTouched++touchDeps :: (FilePath -> FilePath) ->+             (FilePath -> FilePath -> IO ()) ->+             Deps -> WriterT AnyFilesTouched (StateT (Map.Map FilePath (Set.Set Deref)) IO) ()+touchDeps f action deps = (mapM_ go . Map.toList) deps+  where+    go (x, (ys, ct)) = do+        isChanged <- handle (\(_ :: SomeException) -> return True) $ lift $+            case ct of+                AlwaysOutdated -> return True+                CompareUsedIdentifiers getDerefs -> do+                    derefMap <- get+                    ebs <- safeReadFile x+                    let newDerefs =+                            case ebs of+                                Left _ -> Set.empty+                                Right bs -> Set.fromList $ getDerefs $ T.unpack $ decodeUtf8With lenientDecode bs+                    put $ Map.insert x newDerefs derefMap+                    case Map.lookup x derefMap of+                        Just oldDerefs | oldDerefs == newDerefs -> return False+                        _ -> return True+        when isChanged $ forM_ ys $ \y -> do+            n <- liftIO $ x `isNewerThan` f y+            when n $ do+                liftIO $ putStrLn ("Forcing recompile for " ++ y ++ " because of " ++ x)+                liftIO $ action x y+                tell SomeFilesTouched++-- | remove the .hi files for a .hs file, thereby forcing a recompile+removeHi :: FilePath -> FilePath -> IO ()+removeHi _ hs = mapM_ removeFile' hiFiles+    where+      removeFile' file = try' (removeFile file) >> return ()+      hiFiles          = map (\e -> "dist/build" </> replaceExtension hs e)+                             ["hi", "p_hi"]++-- | change file mtime of .hs file to that of the dependency+updateFileTime :: FilePath -> FilePath -> IO ()+updateFileTime x hs = do+  (_     , modx) <- getFileStatus' x+  (access, _   ) <- getFileStatus' hs+  _ <- try' (setFileTimes hs access modx)+  return ()++hiFile :: FilePath -> FilePath+hiFile hs = "dist/build" </> replaceExtension hs "hi"++try' :: IO x -> IO (Either SomeException x)+try' = try++isNewerThan :: FilePath -> FilePath -> IO Bool+isNewerThan f1 f2 = do+  (_, mod1) <- getFileStatus' f1+  (_, mod2) <- getFileStatus' f2+  return (mod1 > mod2)++getFileStatus' :: FilePath ->+                  IO (System.Posix.Types.EpochTime, System.Posix.Types.EpochTime)+getFileStatus' fp = do+    efs <- try' $ getFileStatus fp+    case efs of+        Left _ -> return (0, 0)+        Right fs -> return (accessTime fs, modificationTime fs)++fixDeps :: [(FilePath, [(ComparisonType, FilePath)])] -> Deps+fixDeps =+    Map.unionsWith combine . map go+  where+    go :: (FilePath, [(ComparisonType, FilePath)]) -> Deps+    go (x, ys) = Map.fromList $ map (\(ct, y) -> (y, ([x], ct))) ys++    combine (ys1, ct) (ys2, _) = (ys1 `mappend` ys2, ct)++findHaskellFiles :: FilePath -> IO [FilePath]+findHaskellFiles path = do+    contents <- getDirectoryContents path+    fmap concat $ mapM go contents+  where+    go ('.':_)          = return []+    go filename = do+        d <- doesDirectoryExist full+        if not d+          then if isHaskellFile+                  then return [full]+                  else return []+          else if isHaskellDir+                 then findHaskellFiles full+                 else return []+      where+        -- this could fail on unicode+        isHaskellDir  = isUpper (head filename)+        isHaskellFile = takeExtension filename `elem` watch_files+        full = path </> filename+        watch_files = [".hs", ".lhs"]++data TempType = StaticFiles FilePath+              | Verbatim | Messages FilePath | Hamlet | Widget | Julius | Cassius | Lucius+    deriving Show++-- | How to tell if a file is outdated.+data ComparisonType = AlwaysOutdated+                    | CompareUsedIdentifiers (String -> [Deref])++determineDeps :: FilePath -> IO [(ComparisonType, FilePath)]+determineDeps x = do+    y <- safeReadFile x+    case y of+        Left _ -> return []+        Right bs -> do+            let z = A.parseOnly (many $ (parser <|> (A.anyChar >> return Nothing)))+                  $ decodeUtf8With lenientDecode bs+            case z of+                Left _ -> return []+                Right r -> mapM go r >>= filterM (doesFileExist . snd) . concat+  where+    go (Just (StaticFiles fp, _)) = map ((,) AlwaysOutdated) <$> getFolderContents fp+    go (Just (Hamlet, f)) = return [(AlwaysOutdated, f)]+    go (Just (Widget, f)) = return+        [ (AlwaysOutdated, "templates/" ++ f ++ ".hamlet")+        , (CompareUsedIdentifiers $ map fst . juliusUsedIdentifiers, "templates/" ++ f ++ ".julius")+        , (CompareUsedIdentifiers $ map fst . luciusUsedIdentifiers, "templates/" ++ f ++ ".lucius")+        , (CompareUsedIdentifiers $ map fst . cassiusUsedIdentifiers, "templates/" ++ f ++ ".cassius")+        ]+    go (Just (Julius, f)) = return [(CompareUsedIdentifiers $ map fst . juliusUsedIdentifiers, f)]+    go (Just (Cassius, f)) = return [(CompareUsedIdentifiers $ map fst . cassiusUsedIdentifiers, f)]+    go (Just (Lucius, f)) = return [(CompareUsedIdentifiers $ map fst . luciusUsedIdentifiers, f)]+    go (Just (Verbatim, f)) = return [(AlwaysOutdated, f)]+    go (Just (Messages f, _)) = map ((,) AlwaysOutdated) <$> getFolderContents f+    go Nothing = return []++    parser = do+        ty <- (do _ <- A.string "\nstaticFiles \""+                  x' <- A.many1 $ A.satisfy (/= '"')+                  return $ StaticFiles x')+           <|> (A.string "$(parseRoutesFile " >> return Verbatim)+           <|> (A.string "$(hamletFile " >> return Hamlet)+           <|> (A.string "$(ihamletFile " >> return Hamlet)+           <|> (A.string "$(whamletFile " >> return Hamlet)+           <|> (A.string "$(html " >> return Hamlet)+           <|> (A.string "$(widgetFile " >> return Widget)+           <|> (A.string "$(Settings.hamletFile " >> return Hamlet)+           <|> (A.string "$(Settings.widgetFile " >> return Widget)+           <|> (A.string "$(juliusFile " >> return Julius)+           <|> (A.string "$(cassiusFile " >> return Cassius)+           <|> (A.string "$(luciusFile " >> return Lucius)+           <|> (A.string "$(persistFile " >> return Verbatim)+           <|> (+                   A.string "$(persistFileWith " >>+                   A.many1 (A.satisfy (/= '"')) >>+                   return Verbatim)+           <|> (do+                    _ <- A.string "\nmkMessage \""+                    A.skipWhile (/= '"')+                    _ <- A.string "\" \""+                    x' <- A.many1 $ A.satisfy (/= '"')+                    _ <- A.string "\" \""+                    _y <- A.many1 $ A.satisfy (/= '"')+                    _ <- A.string "\""+                    return $ Messages x')+        case ty of+            Messages{} -> return $ Just (ty, "")+            StaticFiles{} -> return $ Just (ty, "")+            _ -> do+                A.skipWhile isSpace+                _ <- A.char '"'+                y <- A.many1 $ A.satisfy (/= '"')+                _ <- A.char '"'+                A.skipWhile isSpace+                _ <- A.char ')'+                return $ Just (ty, y)++    getFolderContents :: FilePath -> IO [FilePath]+    getFolderContents fp = do+        cs <- getDirectoryContents fp+        let notHidden ('.':_) = False+            notHidden ('t':"mp") = False+            notHidden ('f':"ay") = False+            notHidden _ = True+        fmap concat $ forM (filter notHidden cs) $ \c -> do+            let f = fp ++ '/' : c+            isFile <- doesFileExist f+            if isFile then return [f] else getFolderContents f
+ Devel.hs view
@@ -0,0 +1,433 @@+{-# LANGUAGE CPP                 #-}+{-# LANGUAGE OverloadedStrings   #-}+{-# LANGUAGE ScopedTypeVariables #-}+module Devel+    ( devel+    , DevelOpts(..)+    , defaultDevelOpts+    ) where+++import qualified Distribution.Compiler                 as D+import qualified Distribution.ModuleName               as D+import qualified Distribution.PackageDescription       as D+import qualified Distribution.PackageDescription.Parse as D+import qualified Distribution.Simple.Configure         as D+import qualified Distribution.Simple.Program           as D+import qualified Distribution.Simple.Utils             as D+import qualified Distribution.Verbosity                as D++import           Control.Applicative                   ((<$>), (<*>))+import           Control.Concurrent                    (forkIO, threadDelay)+import           Control.Concurrent.MVar               (MVar, newEmptyMVar,+                                                        takeMVar, tryPutMVar)+import qualified Control.Exception                     as Ex+import           Control.Monad                         (forever, unless, void,+                                                        when)+import           Control.Monad.IO.Class                (liftIO)+import           Control.Monad.Trans.State             (evalStateT, get)+import qualified Data.IORef                            as I++import           Data.Char                             (isNumber, isUpper)+import qualified Data.List                             as L+import qualified Data.Map                              as Map+import           Data.Maybe                            (fromMaybe)+import qualified Data.Set                              as Set++import           System.Directory+import           System.Environment                    (getEnvironment)+import           System.Exit                           (ExitCode (..),+                                                        exitFailure,+                                                        exitSuccess)+import           System.FilePath                       (dropExtension,+                                                        splitDirectories,+                                                        takeExtension, (</>))+import           System.FSNotify+import           System.IO                             (Handle)+import           System.IO.Error                       (isDoesNotExistError)+import           System.Posix.Types                    (EpochTime)+import           System.PosixCompat.Files              (getFileStatus,+                                                        modificationTime)+import           System.Process                        (ProcessHandle,+                                                        createProcess, env,+                                                        getProcessExitCode,+                                                        proc, readProcess,+                                                        system,+                                                        terminateProcess)+import           System.Timeout                        (timeout)++import           Build                                 (getDeps, isNewerThan,+                                                        recompDeps)+import           GhcBuild                              (buildPackage,+                                                        getBuildFlags, getPackageArgs)++import qualified Config                                as GHC+import           Data.Conduit.Network                  (HostPreference (HostIPv4),+                                                        bindPort)+import           Network                               (withSocketsDo)+import           Network.HTTP.Conduit                  (def, newManager)+import           Network.HTTP.ReverseProxy             (ProxyDest (ProxyDest),+                                                        waiProxyToSettings, wpsTimeout, wpsOnExc)+import           Network.HTTP.Types                    (status200)+import           Network.Socket                        (sClose)+import           Network.Wai                           (responseLBS)+import           Network.Wai.Handler.Warp              (run)+import           SrcLoc                                (Located)++lockFile :: DevelOpts -> FilePath+lockFile _opts =  "yesod-devel/devel-terminate"++writeLock :: DevelOpts -> IO ()+writeLock opts = do+    createDirectoryIfMissing True "yesod-devel"+    writeFile (lockFile opts) ""+    createDirectoryIfMissing True "dist" -- for compatibility with old devel.hs+    writeFile "dist/devel-terminate" ""++removeLock :: DevelOpts -> IO ()+removeLock opts = do+    removeFileIfExists (lockFile opts)+    removeFileIfExists "dist/devel-terminate"  -- for compatibility with old devel.hs++data DevelOpts = DevelOpts+      { isCabalDev   :: Bool+      , forceCabal   :: Bool+      , verbose      :: Bool+      , eventTimeout :: Int -- negative value for no timeout+      , successHook  :: Maybe String+      , failHook     :: Maybe String+      , buildDir     :: Maybe String+      , develPort    :: Int+      , proxyTimeout :: Int+      } deriving (Show, Eq)++getBuildDir :: DevelOpts -> String+getBuildDir opts = fromMaybe "dist" (buildDir opts)++defaultDevelOpts :: DevelOpts+defaultDevelOpts = DevelOpts False False False (-1) Nothing Nothing Nothing 3000 10++cabalProgram :: DevelOpts -> FilePath+cabalProgram opts | isCabalDev opts = "cabal-dev"+                  | otherwise       = "cabal"++-- | Run a reverse proxy from port 3000 to 3001. If there is no response on+-- 3001, give an appropriate message to the user.+reverseProxy :: DevelOpts -> I.IORef Int -> IO ()+reverseProxy opts iappPort = do+    manager <- newManager def+    let loop = forever $ do+            run (develPort opts) $ waiProxyToSettings+                (const $ do+                    appPort <- liftIO $ I.readIORef iappPort+                    return $ Right $ ProxyDest "127.0.0.1" appPort)+                def+                    { wpsOnExc = onExc+                    , wpsTimeout =+                        if proxyTimeout opts == 0+                            then Nothing+                            else Just (1000000 * proxyTimeout opts)+                    }+                manager+            putStrLn "Reverse proxy stopped, but it shouldn't"+            threadDelay 1000000+            putStrLn "Restarting reverse proxy"+    loop `Ex.onException` exitFailure+  where+    onExc _ _ = return $ responseLBS+        status200+        [ ("content-type", "text/html")+        , ("Refresh", "1")+        ]+        "<h1>App not ready, please refresh</h1>"++checkPort :: Int -> IO Bool+checkPort p = do+    es <- Ex.try $ bindPort p HostIPv4+    case es of+        Left (_ :: Ex.IOException) -> return False+        Right s -> do+            sClose s+            return True++getPort :: Int -> IO Int+getPort p = do+    avail <- checkPort p+    if avail then return p else getPort (succ p)++devel :: DevelOpts -> [String] -> IO ()+devel opts passThroughArgs = withSocketsDo $ withManager $ \manager -> do+    avail <- checkPort $ develPort opts+    unless avail $ error "devel port unavailable"+    iappPort <- getPort 17834 >>= I.newIORef+    _ <- forkIO $ reverseProxy opts iappPort+    checkDevelFile+    writeLock opts++    putStrLn "Yesod devel server. Press ENTER to quit"+    _ <- forkIO $ do+      filesModified <- newEmptyMVar+      watchTree manager "." (const True) (\_ -> void (tryPutMVar filesModified ()))+      evalStateT (mainOuterLoop iappPort filesModified) Map.empty+    _ <- getLine+    writeLock opts+    exitSuccess+  where+    bd = getBuildDir opts++    -- outer loop re-reads the cabal file+    mainOuterLoop iappPort filesModified = do+      ghcVer <- liftIO ghcVersion+      cabal  <- liftIO $ D.findPackageDesc "."+      gpd    <- liftIO $ D.readPackageDescription D.normal cabal+      ldar   <- liftIO lookupLdAr+      (hsSourceDirs, _) <- liftIO $ checkCabalFile gpd+      liftIO $ removeFileIfExists (bd </> "setup-config")+      c <- liftIO $ configure opts passThroughArgs+      if c then do+             -- these files contain the wrong data after the configure step,+             -- remove them to force a cabal build first+             liftIO $ mapM_ removeFileIfExists [ "yesod-devel/ghcargs.txt"+                                               , "yesod-devel/arargs.txt"+                                               , "yesod-devel/ldargs.txt"+                                               ]+             rebuild <- liftIO $ mkRebuild ghcVer cabal opts ldar+             mainInnerLoop iappPort hsSourceDirs filesModified cabal rebuild+           else do+             liftIO (threadDelay 5000000)+             mainOuterLoop iappPort filesModified++    -- inner loop rebuilds after files change+    mainInnerLoop iappPort hsSourceDirs filesModified cabal rebuild = go+       where+         go = do+           _ <- recompDeps hsSourceDirs+           list <- liftIO $ getFileList hsSourceDirs [cabal]+           success <- liftIO rebuild+           pkgArgs <- liftIO (ghcPackageArgs opts)+           let devArgs = pkgArgs ++ ["devel.hs"]+           let loop list0 = do+                   (haskellFileChanged, list1) <- liftIO $+                       watchForChanges filesModified hsSourceDirs [cabal] list0 (eventTimeout opts)+                   anyTouched <- recompDeps hsSourceDirs+                   unless (anyTouched || haskellFileChanged) $ loop list1+           if not success+             then liftIO $ do+                   putStrLn "Build failure, pausing..."+                   runBuildHook $ failHook opts+             else do+                   liftIO $ runBuildHook $ successHook opts+                   liftIO $ removeLock opts+                   liftIO $ putStrLn+                            $ if verbose opts then "Starting development server: runghc " ++ L.unwords devArgs+                                              else "Starting development server..."+                   env0 <- liftIO getEnvironment++                   -- get a new port for the new process to listen on+                   appPort <- liftIO $ I.readIORef iappPort >>= getPort . (+ 1)+                   liftIO $ I.writeIORef iappPort appPort++                   (_,_,_,ph) <- liftIO $ createProcess (proc "runghc" devArgs)+                        { env = Just $ ("PORT", show appPort) : ("DISPLAY_PORT", show $ develPort opts) : env0+                        }+                   derefMap <- get+                   watchTid <- liftIO . forkIO . try_ $ flip evalStateT derefMap $ do+                      loop list+                      liftIO $ do+                         putStrLn "Stopping development server..."+                         writeLock opts+                         threadDelay 1000000+                         putStrLn "Terminating development server..."+                         terminateProcess ph+                   ec <- liftIO $ waitForProcess' ph+                   liftIO $ putStrLn $ "Exit code: " ++ show ec+                   liftIO $ Ex.throwTo watchTid (userError "process finished")+           loop list+           n <- liftIO $ cabal `isNewerThan` (bd </> "setup-config")+           if n then mainOuterLoop iappPort filesModified else go++runBuildHook :: Maybe String -> IO ()+runBuildHook (Just s) = do+             ret <- system s+             case ret of+                  ExitFailure _ -> putStrLn ("Error executing hook: " ++ s)+                  _             -> return ()+runBuildHook Nothing = return ()++{-+   run `cabal configure' with our wrappers+-}+configure :: DevelOpts -> [String] -> IO Bool+configure opts extraArgs =+  checkExit =<< (createProcess $ proc (cabalProgram opts)+                                ([ "configure"+                                 , "-flibrary-only"+                                 , "-fdevel"+                                 , "--disable-library-profiling"+                                 , "--with-ld=yesod-ld-wrapper"+                                 , "--with-ghc=yesod-ghc-wrapper"+                                 , "--with-ar=yesod-ar-wrapper"+                                 , "--with-hc-pkg=ghc-pkg"+                                 ] ++ extraArgs)+               )++removeFileIfExists :: FilePath -> IO ()+removeFileIfExists file = removeFile file `Ex.catch` handler+    where+      handler :: IOError -> IO ()+      handler e | isDoesNotExistError e = return ()+                | otherwise             = Ex.throw e++mkRebuild :: String -> FilePath -> DevelOpts -> (FilePath, FilePath) -> IO (IO Bool)+mkRebuild ghcVer cabalFile opts (ldPath, arPath)+  | GHC.cProjectVersion /= ghcVer =+       failWith "Yesod has been compiled with a different GHC version, please reinstall"+  | forceCabal opts               = return (rebuildCabal opts)+  | otherwise                     = do+      return $ do+        ns <- mapM (cabalFile `isNewerThan`)+           [ "yesod-devel/ghcargs.txt", "yesod-devel/arargs.txt", "yesod-devel/ldargs.txt" ]+        if or ns+          then rebuildCabal opts+          else do+            bf <- getBuildFlags+            rebuildGhc bf ldPath arPath+++rebuildGhc :: [Located String] -> FilePath -> FilePath -> IO Bool+rebuildGhc bf ld ar = do+  putStrLn "Rebuilding application... (using GHC API)"+  buildPackage bf ld ar++rebuildCabal :: DevelOpts -> IO Bool+rebuildCabal opts = do+  putStrLn $ "Rebuilding application... (using " ++ cabalProgram opts ++ ")"+  checkExit =<< createProcess (proc (cabalProgram opts) args)+    where+      args | verbose opts = [ "build" ]+           | otherwise    = [ "build", "-v0" ]++try_ :: forall a. IO a -> IO ()+try_ x = (Ex.try x :: IO (Either Ex.SomeException a)) >> return ()++type FileList = Map.Map FilePath EpochTime++getFileList :: [FilePath] -> [FilePath] -> IO FileList+getFileList hsSourceDirs extraFiles = do+    (files, deps) <- getDeps hsSourceDirs+    let files' = extraFiles ++ files ++ map fst (Map.toList deps)+    fmap Map.fromList $ flip mapM files' $ \f -> do+        efs <- Ex.try $ getFileStatus f+        return $ case efs of+            Left (_ :: Ex.SomeException) -> (f, 0)+            Right fs -> (f, modificationTime fs)++-- | Returns @True@ if a .hs file changed.+watchForChanges :: MVar () -> [FilePath] -> [FilePath] -> FileList -> Int -> IO (Bool, FileList)+watchForChanges filesModified hsSourceDirs extraFiles list t = do+    newList <- getFileList hsSourceDirs extraFiles+    if list /= newList+      then do+        let haskellFileChanged = not $ Map.null $ Map.filterWithKey isHaskell $+                Map.differenceWith compareTimes newList list `Map.union`+                Map.differenceWith compareTimes list newList+        return (haskellFileChanged, newList)+      else timeout (1000000*t) (takeMVar filesModified) >>+           watchForChanges filesModified hsSourceDirs extraFiles list t+  where+    compareTimes x y+        | x == y = Nothing+        | otherwise = Just x++    isHaskell filename _ = takeExtension filename `elem` [".hs", ".lhs", ".hsc", ".cabal"]++checkDevelFile :: IO ()+checkDevelFile = do+  e <- doesFileExist "devel.hs"+  unless e $ failWith "file devel.hs not found"++checkCabalFile :: D.GenericPackageDescription -> IO ([FilePath], D.Library)+checkCabalFile gpd = case D.condLibrary gpd of+    Nothing -> failWith "incorrect cabal file, no library"+    Just ct ->+      case lookupDevelLib gpd ct of+        Nothing   ->+          failWith "no development flag found in your configuration file. Expected a 'library-only' flag or the older 'devel' flag"+        Just dLib -> do+           let hsSourceDirs = D.hsSourceDirs . D.libBuildInfo $ dLib+           fl <- getFileList hsSourceDirs []+           let unlisted = checkFileList fl dLib+           unless (null unlisted) $ do+                putStrLn "WARNING: the following source files are not listed in exposed-modules or other-modules:"+                mapM_ putStrLn unlisted+           when (D.fromString "Application" `notElem` D.exposedModules dLib) $+                putStrLn "WARNING: no exposed module Application"+           return (hsSourceDirs, dLib)++failWith :: String -> IO a+failWith msg = do+    putStrLn $ "ERROR: " ++ msg+    exitFailure++checkFileList :: FileList -> D.Library -> [FilePath]+checkFileList fl lib = filter isUnlisted . filter isSrcFile $ sourceFiles+  where+    al = allModules lib+    -- a file is only a possible 'module file' if all path pieces start with a capital letter+    sourceFiles = filter isSrcFile . map fst . Map.toList $ fl+    isSrcFile file = let dirs = filter (/=".") $ splitDirectories file+                     in  all (isUpper . head) dirs && (takeExtension file `elem` [".hs", ".lhs"])+    isUnlisted file = not (toModuleName file `Set.member` al)+    toModuleName = L.intercalate "." . filter (/=".") . splitDirectories . dropExtension++allModules :: D.Library -> Set.Set String+allModules lib = Set.fromList $ map toString $ D.exposedModules lib ++ (D.otherModules . D.libBuildInfo) lib+    where+      toString = L.intercalate "." . D.components++ghcVersion :: IO String+ghcVersion = fmap getNumber $ readProcess "runghc" ["--numeric-version", "0"] []+    where+      getNumber = filter (\x -> isNumber x || x == '.')++ghcPackageArgs :: DevelOpts -> IO [String]+ghcPackageArgs opts = getBuildFlags >>= getPackageArgs (buildDir opts)++lookupDevelLib :: D.GenericPackageDescription -> D.CondTree D.ConfVar c a -> Maybe a+lookupDevelLib gpd ct | found     = Just (D.condTreeData ct)+                      | otherwise = Nothing+  where+    flags = map (unFlagName . D.flagName) $ D.genPackageFlags gpd+    unFlagName (D.FlagName x) = x+    found = any (`elem` ["library-only", "devel"]) flags++-- location of `ld' and `ar' programs+lookupLdAr :: IO (FilePath, FilePath)+lookupLdAr = do+  mla <- lookupLdAr'+  case mla of+    Nothing -> failWith "Cannot determine location of `ar' or `ld' program"+    Just la -> return la++lookupLdAr' :: IO (Maybe (FilePath, FilePath))+lookupLdAr' = do+  (_, pgmc) <- D.configCompiler (Just D.GHC) Nothing Nothing D.defaultProgramConfiguration D.silent+  pgmc' <- D.configureAllKnownPrograms D.silent pgmc+  return $ (,) <$> look D.ldProgram pgmc' <*> look D.arProgram pgmc'+     where+       look pgm pdb = fmap D.programPath (D.lookupProgram pgm pdb)++-- | nonblocking version of @waitForProcess@+waitForProcess' :: ProcessHandle -> IO ExitCode+waitForProcess' pid = go+  where+    go = do+      mec <- getProcessExitCode pid+      case mec of+        Just ec -> return ec+        Nothing -> threadDelay 100000 >> go++-- | wait for process started by @createProcess@, return True for ExitSuccess+checkExit :: (Maybe Handle, Maybe Handle, Maybe Handle, ProcessHandle) -> IO Bool+checkExit (_,_,_,h) = (==ExitSuccess) <$> waitForProcess' h+
+ GhcBuild.hs view
@@ -0,0 +1,480 @@+{-# OPTIONS_GHC -fno-warn-unused-do-bind #-}+{-# OPTIONS_GHC -fno-warn-unused-binds #-}+{-# OPTIONS_GHC -fno-warn-unused-imports #-}+{-# OPTIONS_GHC -fno-warn-unused-matches #-}+{-+  There is a lot of code copied from GHC here, and some conditional+  compilation. Instead of fixing all warnings and making it much more+  difficult to compare the code to the original, just ignore unused+  binds and imports.+-}+{-# LANGUAGE CPP                 #-}+{-# LANGUAGE PatternGuards       #-}+{-# LANGUAGE ScopedTypeVariables #-}++{-+  build package with the GHC API+-}++module GhcBuild (getBuildFlags, buildPackage, getPackageArgs) where++import qualified Control.Exception as Ex+import           Control.Monad      (when)+import           Data.IORef+import           System.Process     (rawSystem)+import           System.Environment (getEnvironment)++import           CmdLineParser+import           Data.Char          (toLower)+import           Data.List          (isPrefixOf, isSuffixOf, partition)+import           Data.Maybe         (fromMaybe)+import           DriverPhases       (Phase (..), anyHsc, isHaskellSrcFilename,+                                     isSourceFilename, startPhase)+import           DriverPipeline     (compileFile, link, linkBinary, oneShot)+import           DynFlags           (DynFlags, compilerInfo)+import qualified DynFlags+import qualified DynFlags           as DF+import qualified GHC+import           GHC.Paths          (libdir)+import           HscTypes           (HscEnv (..), emptyHomePackageTable)+import qualified Module+import           MonadUtils         (liftIO)+import           Panic              (ghcError, panic)+import           SrcLoc             (Located, mkGeneralLocated)+import qualified StaticFlags+import           StaticFlags        (v_Ld_inputs)+import           System.FilePath    (normalise, (</>))+import           Util               (consIORef, looksLikeModuleName)++{-+  This contains a huge hack:+  GHC only accepts setting static flags once per process, however it has no way to+  get the remaining options from the command line, without setting the static flags.+  This code overwrites the IORef to disable the check. This will likely cause+  problems if the flags are modified, but fortunately that's relatively uncommon.+-}+getBuildFlags :: IO [Located String]+getBuildFlags = do+  argv0 <- fmap read $ readFile "yesod-devel/ghcargs.txt" -- generated by yesod-ghc-wrapper+  argv0' <- prependHsenvArgv argv0+  let (minusB_args, argv1) = partition ("-B" `isPrefixOf`) argv0'+      mbMinusB | null minusB_args = Nothing+               | otherwise = Just (drop 2 (last minusB_args))+  let argv1' = map (mkGeneralLocated "on the commandline") argv1+  writeIORef StaticFlags.v_opt_C_ready False -- the huge hack+  (argv2, staticFlagWarnings) <- GHC.parseStaticFlags argv1'+  return argv2++prependHsenvArgv :: [String] -> IO [String]+prependHsenvArgv argv = do+  env <- getEnvironment+  return $ case (lookup "HSENV" env) of+             Nothing -> argv+             _       -> hsenvArgv ++ argv+                 where hsenvArgv = words $ fromMaybe "" (lookup "PACKAGE_DB_FOR_GHC" env)++-- construct a command line for loading the right packages+getPackageArgs :: Maybe String -> [Located String] -> IO [String]+getPackageArgs buildDir argv2 = do+  (mode, argv3, modeFlagWarnings) <- parseModeFlags argv2+  GHC.runGhc (Just libdir) $ do+    dflags0 <- GHC.getSessionDynFlags+    (dflags1, _, _) <- GHC.parseDynamicFlags dflags0 argv3+    let pkgFlags = map convertPkgFlag (GHC.packageFlags dflags1)+        hideAll | gopt DF.Opt_HideAllPackages dflags1 = [ "-hide-all-packages"]+                | otherwise                           = []+        ownPkg = "-package-id" ++ Module.packageIdString (DF.thisPackage dflags1) ++ "-inplace"+    return (extra dflags1 ++ hideAll ++ pkgFlags ++ [ownPkg])+  where+    convertPkgFlag (DF.ExposePackage p)   = "-package" ++ p+    convertPkgFlag (DF.ExposePackageId p) = "-package-id" ++ p+    convertPkgFlag (DF.HidePackage p)     = "-hide-package" ++ p+    convertPkgFlag (DF.IgnorePackage p)   = "-ignore-package" ++ p+    convertPkgFlag (DF.TrustPackage p)    = "-trust" ++ p+    convertPkgFlag (DF.DistrustPackage p) ="-distrust" ++ p+#if __GLASGOW_HASKELL__ >= 705+    extra df = inplaceConf ++ extra'+      where+         extra' = concatMap convertExtra (extraConfs df)+         -- old cabal-install sometimes misses the .inplace db, fix it here+         inplaceConf+           | any (".inplace" `isSuffixOf`) extra' = []+           | otherwise = ["-package-db" ++ fromMaybe "dist" buildDir+                           ++ "/package.conf.inplace"]+    extraConfs df = GHC.extraPkgConfs df []+    convertExtra DF.GlobalPkgConf      = [ ]+    convertExtra DF.UserPkgConf        = [ ]+    convertExtra (DF.PkgConfFile file) = [ "-package-db" ++ file ]+#else+    extra df  = inplaceConf ++ extra'+      where+        extra' = map ("-package-conf"++) (GHC.extraPkgConfs df)+         -- old cabal-install sometimes misses the .inplace db, fix it here+        inplaceConf+          | any (".inplace" `isSuffixOf`) extra' = []+          | otherwise = ["-package-conf" ++ fromMaybe "dist" buildDir+                           ++ "/package.conf.inplace"]+#endif++#if __GLASGOW_HASKELL__ >= 707+    gopt = DF.gopt+#else+    gopt = DF.dopt+#endif+++buildPackage :: [Located String] -> FilePath -> FilePath -> IO Bool+buildPackage a ld ar = buildPackage' a ld ar `Ex.catch` \e -> do+  putStrLn ("exception building package: " ++ show (e :: Ex.SomeException))+  return False++buildPackage' :: [Located String] -> FilePath -> FilePath -> IO Bool+buildPackage' argv2 ld ar = do+  (mode, argv3, modeFlagWarnings) <- parseModeFlags argv2+  GHC.runGhc (Just libdir) $ do+    dflags0 <- GHC.getSessionDynFlags+    (dflags1, _, _) <- GHC.parseDynamicFlags dflags0 argv3+    let dflags2 = dflags1 { GHC.ghcMode   = GHC.CompManager+                          , GHC.hscTarget = GHC.hscTarget dflags1+                          , GHC.ghcLink   = GHC.LinkBinary+                          , GHC.verbosity = 1+                          }+    (dflags3, fileish_args, _) <- GHC.parseDynamicFlags dflags2 argv3+    GHC.setSessionDynFlags dflags3+    let normal_fileish_paths = map (normalise . GHC.unLoc) fileish_args+        (srcs, objs)         = partition_args normal_fileish_paths [] []+        (hs_srcs, non_hs_srcs) = partition haskellish srcs+        haskellish (f,Nothing) =+          looksLikeModuleName f || isHaskellSrcFilename f || '.' `notElem` f+        haskellish (_,Just phase) =+#if MIN_VERSION_ghc(7,4,0)+          phase `notElem` [As, Cc, Cobjc, Cobjcpp, CmmCpp, Cmm, StopLn]+#else+          phase `notElem` [As, Cc, CmmCpp, Cmm, StopLn]+#endif+    hsc_env <- GHC.getSession+--    if (null hs_srcs)+--       then liftIO (oneShot hsc_env StopLn srcs)+--       else do+#if MIN_VERSION_ghc(7,2,0)+    o_files <- mapM (\x -> liftIO $ compileFile hsc_env StopLn x)+#else+    o_files <- mapM (\x -> compileFile hsc_env StopLn x)+#endif+                 non_hs_srcs+    liftIO $ mapM_ (consIORef v_Ld_inputs) (reverse o_files)+    targets <- mapM (uncurry GHC.guessTarget) hs_srcs+    GHC.setTargets targets+    ok_flag <- GHC.load GHC.LoadAllTargets+    if GHC.failed ok_flag+      then return False+      else liftIO (linkPkg ld ar) >> return True++linkPkg :: FilePath -> FilePath -> IO ()+linkPkg ld ar = do+  arargs <- fmap read $ readFile "yesod-devel/arargs.txt"+  rawSystem ar arargs+  ldargs <- fmap read $ readFile "yesod-devel/ldargs.txt"+  rawSystem ld ldargs+  return ()++--------------------------------------------------------------------------------------------+-- stuff below copied from ghc main.hs+--------------------------------------------------------------------------------------------++partition_args :: [String] -> [(String, Maybe Phase)] -> [String]+               -> ([(String, Maybe Phase)], [String])+partition_args [] srcs objs = (reverse srcs, reverse objs)+partition_args ("-x":suff:args) srcs objs+  | "none" <- suff      = partition_args args srcs objs+  | StopLn <- phase     = partition_args args srcs (slurp ++ objs)+  | otherwise           = partition_args rest (these_srcs ++ srcs) objs+        where phase = startPhase suff+              (slurp,rest) = break (== "-x") args+              these_srcs = zip slurp (repeat (Just phase))+partition_args (arg:args) srcs objs+  | looks_like_an_input arg = partition_args args ((arg,Nothing):srcs) objs+  | otherwise               = partition_args args srcs (arg:objs)++    {-+      We split out the object files (.o, .dll) and add them+      to v_Ld_inputs for use by the linker.++      The following things should be considered compilation manager inputs:++       - haskell source files (strings ending in .hs, .lhs or other+         haskellish extension),++       - module names (not forgetting hierarchical module names),++       - and finally we consider everything not containing a '.' to be+         a comp manager input, as shorthand for a .hs or .lhs filename.++      Everything else is considered to be a linker object, and passed+      straight through to the linker.+    -}+looks_like_an_input :: String -> Bool+looks_like_an_input m =  isSourceFilename m+                      || looksLikeModuleName m+                      || '.' `notElem` m++++-- Parsing the mode flag++parseModeFlags :: [Located String]+               -> IO (Mode,+                      [Located String],+                      [Located String])+parseModeFlags args = do+  let ((leftover, errs1, warns), (mModeFlag, errs2, flags')) =+          runCmdLine (processArgs mode_flags args)+                     (Nothing, [], [])+      mode = case mModeFlag of+             Nothing     -> doMakeMode+             Just (m, _) -> m+      errs = errs1 ++ map (mkGeneralLocated "on the commandline") errs2+  when (not (null errs)) $ ghcError $ errorsToGhcException errs+  return (mode, flags' ++ leftover, warns)++type ModeM = CmdLineP (Maybe (Mode, String), [String], [Located String])+  -- mode flags sometimes give rise to new DynFlags (eg. -C, see below)+  -- so we collect the new ones and return them.++mode_flags :: [Flag ModeM]+mode_flags =+  [  ------- help / version ----------------------------------------------+    Flag "?"                     (PassFlag (setMode showGhcUsageMode))+  , Flag "-help"                 (PassFlag (setMode showGhcUsageMode))+  , Flag "V"                     (PassFlag (setMode showVersionMode))+  , Flag "-version"              (PassFlag (setMode showVersionMode))+  , Flag "-numeric-version"      (PassFlag (setMode showNumVersionMode))+  , Flag "-info"                 (PassFlag (setMode showInfoMode))+  , Flag "-supported-languages"  (PassFlag (setMode showSupportedExtensionsMode))+  , Flag "-supported-extensions" (PassFlag (setMode showSupportedExtensionsMode))+  ] +++  [ Flag k'                      (PassFlag (setMode (printSetting k)))+  | k <- ["Project version",+          "Booter version",+          "Stage",+          "Build platform",+          "Host platform",+          "Target platform",+          "Have interpreter",+          "Object splitting supported",+          "Have native code generator",+          "Support SMP",+          "Unregisterised",+          "Tables next to code",+          "RTS ways",+          "Leading underscore",+          "Debug on",+          "LibDir",+          "Global Package DB",+          "C compiler flags",+          "Gcc Linker flags",+          "Ld Linker flags"],+    let k' = "-print-" ++ map (replaceSpace . toLower) k+        replaceSpace ' ' = '-'+        replaceSpace c   = c+  ] +++      ------- interfaces ----------------------------------------------------+  [ Flag "-show-iface"  (HasArg (\f -> setMode (showInterfaceMode f)+                                               "--show-iface"))++      ------- primary modes ------------------------------------------------+  , Flag "c"            (PassFlag (\f -> do setMode (stopBeforeMode StopLn) f+                                            addFlag "-no-link" f))+  , Flag "M"            (PassFlag (setMode doMkDependHSMode))+  , Flag "E"            (PassFlag (setMode (stopBeforeMode anyHsc)))+  , Flag "C"            (PassFlag (\f -> do setMode (stopBeforeMode HCc) f+                                            addFlag "-fvia-C" f))+  , Flag "S"            (PassFlag (setMode (stopBeforeMode As)))+  , Flag "-make"        (PassFlag (setMode doMakeMode))+  , Flag "-interactive" (PassFlag (setMode doInteractiveMode))+  , Flag "-abi-hash"    (PassFlag (setMode doAbiHashMode))+  , Flag "e"            (SepArg   (\s -> setMode (doEvalMode s) "-e"))+  ]++setMode :: Mode -> String -> EwM ModeM ()+setMode newMode newFlag = liftEwM $ do+    (mModeFlag, errs, flags') <- getCmdLineState+    let (modeFlag', errs') =+            case mModeFlag of+            Nothing -> ((newMode, newFlag), errs)+            Just (oldMode, oldFlag) ->+                case (oldMode, newMode) of+                    -- -c/--make are allowed together, and mean --make -no-link+                    _ |  isStopLnMode oldMode && isDoMakeMode newMode+                      || isStopLnMode newMode && isDoMakeMode oldMode ->+                      ((doMakeMode, "--make"), [])++                    -- If we have both --help and --interactive then we+                    -- want showGhciUsage+                    _ | isShowGhcUsageMode oldMode &&+                        isDoInteractiveMode newMode ->+                            ((showGhciUsageMode, oldFlag), [])+                      | isShowGhcUsageMode newMode &&+                        isDoInteractiveMode oldMode ->+                            ((showGhciUsageMode, newFlag), [])+                    -- Otherwise, --help/--version/--numeric-version always win+                      | isDominantFlag oldMode -> ((oldMode, oldFlag), [])+                      | isDominantFlag newMode -> ((newMode, newFlag), [])+                    -- We need to accumulate eval flags like "-e foo -e bar"+                    (Right (Right (DoEval esOld)),+                     Right (Right (DoEval [eNew]))) ->+                        ((Right (Right (DoEval (eNew : esOld))), oldFlag),+                         errs)+                    -- Saying e.g. --interactive --interactive is OK+                    _ | oldFlag == newFlag -> ((oldMode, oldFlag), errs)+                    -- Otherwise, complain+                    _ -> let err = flagMismatchErr oldFlag newFlag+                         in ((oldMode, oldFlag), err : errs)+    putCmdLineState (Just modeFlag', errs', flags')+  where isDominantFlag f = isShowGhcUsageMode   f ||+                           isShowGhciUsageMode  f ||+                           isShowVersionMode    f ||+                           isShowNumVersionMode f++flagMismatchErr :: String -> String -> String+flagMismatchErr oldFlag newFlag+    = "cannot use `" ++ oldFlag ++  "' with `" ++ newFlag ++ "'"++addFlag :: String -> String -> EwM ModeM ()+addFlag s flag = liftEwM $ do+  (m, e, flags') <- getCmdLineState+  putCmdLineState (m, e, mkGeneralLocated loc s : flags')+    where loc = "addFlag by " ++ flag ++ " on the commandline"++type Mode = Either PreStartupMode PostStartupMode+type PostStartupMode = Either PreLoadMode PostLoadMode++data PreStartupMode+  = ShowVersion             -- ghc -V/--version+  | ShowNumVersion          -- ghc --numeric-version+  | ShowSupportedExtensions -- ghc --supported-extensions+  | Print String            -- ghc --print-foo++showVersionMode, showNumVersionMode, showSupportedExtensionsMode :: Mode+showVersionMode             = mkPreStartupMode ShowVersion+showNumVersionMode          = mkPreStartupMode ShowNumVersion+showSupportedExtensionsMode = mkPreStartupMode ShowSupportedExtensions++mkPreStartupMode :: PreStartupMode -> Mode+mkPreStartupMode = Left++isShowVersionMode :: Mode -> Bool+isShowVersionMode (Left ShowVersion) = True+isShowVersionMode _ = False++isShowNumVersionMode :: Mode -> Bool+isShowNumVersionMode (Left ShowNumVersion) = True+isShowNumVersionMode _ = False++data PreLoadMode+  = ShowGhcUsage                           -- ghc -?+  | ShowGhciUsage                          -- ghci -?+  | ShowInfo                               -- ghc --info+  | PrintWithDynFlags (DynFlags -> String) -- ghc --print-foo++showGhcUsageMode, showGhciUsageMode, showInfoMode :: Mode+showGhcUsageMode = mkPreLoadMode ShowGhcUsage+showGhciUsageMode = mkPreLoadMode ShowGhciUsage+showInfoMode = mkPreLoadMode ShowInfo++printSetting :: String -> Mode+printSetting k = mkPreLoadMode (PrintWithDynFlags f)+    where f dflags = fromMaybe (panic ("Setting not found: " ++ show k))+#if MIN_VERSION_ghc(7,2,0)+                   $ lookup k (compilerInfo dflags)+#else+                   $ fmap convertPrintable (lookup k compilerInfo)+              where+                convertPrintable (DynFlags.String s) = s+                convertPrintable (DynFlags.FromDynFlags f) = f dflags+#endif++mkPreLoadMode :: PreLoadMode -> Mode+mkPreLoadMode = Right . Left++isShowGhcUsageMode :: Mode -> Bool+isShowGhcUsageMode (Right (Left ShowGhcUsage)) = True+isShowGhcUsageMode _ = False++isShowGhciUsageMode :: Mode -> Bool+isShowGhciUsageMode (Right (Left ShowGhciUsage)) = True+isShowGhciUsageMode _ = False++data PostLoadMode+  = ShowInterface FilePath  -- ghc --show-iface+  | DoMkDependHS            -- ghc -M+  | StopBefore Phase        -- ghc -E | -C | -S+                            -- StopBefore StopLn is the default+  | DoMake                  -- ghc --make+  | DoInteractive           -- ghc --interactive+  | DoEval [String]         -- ghc -e foo -e bar => DoEval ["bar", "foo"]+  | DoAbiHash               -- ghc --abi-hash++doMkDependHSMode, doMakeMode, doInteractiveMode, doAbiHashMode :: Mode+doMkDependHSMode = mkPostLoadMode DoMkDependHS+doMakeMode = mkPostLoadMode DoMake+doInteractiveMode = mkPostLoadMode DoInteractive+doAbiHashMode = mkPostLoadMode DoAbiHash+++showInterfaceMode :: FilePath -> Mode+showInterfaceMode fp = mkPostLoadMode (ShowInterface fp)++stopBeforeMode :: Phase -> Mode+stopBeforeMode phase = mkPostLoadMode (StopBefore phase)++doEvalMode :: String -> Mode+doEvalMode str = mkPostLoadMode (DoEval [str])++mkPostLoadMode :: PostLoadMode -> Mode+mkPostLoadMode = Right . Right++isDoInteractiveMode :: Mode -> Bool+isDoInteractiveMode (Right (Right DoInteractive)) = True+isDoInteractiveMode _ = False++isStopLnMode :: Mode -> Bool+isStopLnMode (Right (Right (StopBefore StopLn))) = True+isStopLnMode _ = False++isDoMakeMode :: Mode -> Bool+isDoMakeMode (Right (Right DoMake)) = True+isDoMakeMode _ = False++#ifdef GHCI+isInteractiveMode :: PostLoadMode -> Bool+isInteractiveMode DoInteractive = True+isInteractiveMode _             = False+#endif++-- isInterpretiveMode: byte-code compiler involved+isInterpretiveMode :: PostLoadMode -> Bool+isInterpretiveMode DoInteractive = True+isInterpretiveMode (DoEval _)    = True+isInterpretiveMode _             = False++needsInputsMode :: PostLoadMode -> Bool+needsInputsMode DoMkDependHS    = True+needsInputsMode (StopBefore _)  = True+needsInputsMode DoMake          = True+needsInputsMode _               = False++-- True if we are going to attempt to link in this mode.+-- (we might not actually link, depending on the GhcLink flag)+isLinkMode :: PostLoadMode -> Bool+isLinkMode (StopBefore StopLn) = True+isLinkMode DoMake              = True+isLinkMode DoInteractive       = True+isLinkMode (DoEval _)          = True+isLinkMode _                   = False++isCompManagerMode :: PostLoadMode -> Bool+isCompManagerMode DoMake        = True+isCompManagerMode DoInteractive = True+isCompManagerMode (DoEval _)    = True+isCompManagerMode _             = False
+ Keter.hs view
@@ -0,0 +1,69 @@+{-# LANGUAGE OverloadedStrings #-}+module Keter+    ( keter+    ) where++import Data.Yaml+import qualified Data.HashMap.Strict as Map+import qualified Data.Text as T+import System.Exit+import System.Cmd+import Control.Monad+import System.Directory+import Data.Maybe (mapMaybe)+import qualified Filesystem.Path.CurrentOS as F+import qualified Filesystem as F+import qualified Codec.Archive.Tar as Tar+import Control.Exception+import qualified Data.ByteString.Lazy as L+import Codec.Compression.GZip (compress)++run :: String -> [String] -> IO ()+run a b = do+    ec <- rawSystem a b+    unless (ec == ExitSuccess) $ exitWith ec++keter :: String -- ^ cabal command+      -> Bool -- ^ no build?+      -> IO ()+keter cabal noBuild = do+    mvalue <- decodeFile "config/keter.yaml"+    value <-+        case mvalue of+            Nothing -> error "No config/keter.yaml found"+            Just (Object value) ->+                case Map.lookup "host" value of+                    Just (String s) | "<<" `T.isPrefixOf` s ->+                        error "Please set your hostname in config/keter.yaml"+                    _ -> return value+            Just _ -> error "config/keter.yaml is not an object"++    files <- getDirectoryContents "."+    project <-+        case mapMaybe (T.stripSuffix ".cabal" . T.pack) files of+            [x] -> return x+            [] -> error "No cabal file found"+            _ -> error "Too many cabal files found"++    exec <-+        case Map.lookup "exec" value of+            Just (String s) -> return $ F.collapse $ "config" F.</> F.fromText s+            _ -> error "exec not found in config/keter.yaml"++    unless noBuild $ do+        run cabal ["clean"]+        run cabal ["configure"]+        run cabal ["build"]++    _ <- try' $ F.removeTree "static/tmp"++    archive <- Tar.pack "" [F.encodeString exec, "config", "static"]+    let fp = T.unpack project ++ ".keter"+    L.writeFile fp $ compress $ Tar.write archive++    case Map.lookup "copy-to" value of+        Just (String s) -> run "scp" [fp, T.unpack s]+        _ -> return ()++try' :: IO a -> IO (Either SomeException a)+try' = try
+ LICENSE view
@@ -0,0 +1,20 @@+Copyright (c) 2012 Michael Snoyman, http://www.yesodweb.com/++Permission is hereby granted, free of charge, to any person obtaining+a copy of this software and associated documentation files (the+"Software"), to deal in the Software without restriction, including+without limitation the rights to use, copy, modify, merge, publish,+distribute, sublicense, and/or sell copies of the Software, and to+permit persons to whom the Software is furnished to do so, subject to+the following conditions:++The above copyright notice and this permission notice shall be+included in all copies or substantial portions of the Software.++THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND+NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE+LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION+OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION+WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ Options.hs view
@@ -0,0 +1,90 @@+{-# LANGUAGE PatternGuards       #-}+{-# LANGUAGE ScopedTypeVariables #-}+{-# LANGUAGE CPP                 #-}++module Options (injectDefaults) where++import           Control.Applicative+import qualified Control.Exception         as E+import           Control.Monad+import           Data.Char                 (isAlphaNum, isSpace, toLower)+import           Data.List                 (foldl')+import           Data.List.Split           (splitOn)+import qualified Data.Map                  as M+import           Data.Maybe                (catMaybes)+import           Data.Monoid+import           Options.Applicative+import           Options.Applicative.Types+import           System.Directory+import           System.Environment+import           System.FilePath           ((</>))++-- | inject defaults from either files or environments+--   in order of priority:+--    1. command line arguments: --long-option=value+--    2. environment variables: PREFIX_COMMAND_LONGOPTION=value+--    3. $HOME/.prefix/config:  prefix.command.longoption=value+--+-- note: this automatically injects values for standard options and flags+--       (also inside subcommands), but not for more complex parsers that use BindP+--       (like `many'). As a workaround a single special case is supported,+--       for `many' arguments that generate a list of strings.++injectDefaults :: String                                     -- ^ prefix, program name+               -> [(String, a -> [String] -> a)]             -- ^ append extra options for arguments that are lists of strings+               -> ParserInfo a                               -- ^ original parsers+               -> IO (ParserInfo a)+injectDefaults prefix lenses parser = do+  e      <- getEnvironment+  config <- (readFile . (</> "config") =<< getAppUserDataDirectory prefix)+              `E.catch` \(_::E.SomeException) -> return ""+  let env = M.fromList . filter ((==[prefix]) . take 1 . fst) $+               configLines config <>                              -- config first+               map (\(k,v) -> (splitOn "_" $ map toLower k, v)) e -- env vars override config+      p' =  parser { infoParser = injectDefaultP env [prefix] (infoParser parser) }+  return $ foldl' (\p (key,l) -> fmap (updateA env key l) p) p' lenses++updateA :: M.Map [String] String -> String -> (a -> [String] -> a) -> a -> a+updateA env key upd a =+  case M.lookup (splitOn "." key) env of+    Nothing -> a+    Just v  -> upd a (splitOn ":" v)++-- | really simple key/value file reader:   x.y = z -> (["x","y"],"z")+configLines :: String -> [([String], String)]+configLines = catMaybes . map (mkLine . takeWhile (/='#')) . lines+  where+    trim = let f = reverse . dropWhile isSpace in f . f+    mkLine l | (k, ('=':v)) <- break (=='=') l = Just (splitOn "." (trim k), trim v)+             | otherwise                       = Nothing++-- | inject the environment into the parser+--   the map contains the paths with the value that's passed into the reader if the+--   command line parser gives no result+injectDefaultP :: M.Map [String] String -> [String] -> Parser a -> Parser a+injectDefaultP _env _path n@(NilP{})   = n+injectDefaultP env path p@(OptP o)+  | (Option (CmdReader cmds f) props) <- o  =+     let cmdMap = M.fromList (map (\c -> (c, mkCmd c)) cmds)+         mkCmd cmd =+           let (Just parseri) = f cmd+           in  parseri { infoParser = injectDefaultP env (path ++ [normalizeName cmd]) (infoParser parseri) }+     in  OptP (Option (CmdReader cmds (`M.lookup` cmdMap)) props)+  | (Option (OptReader names (CReader _ rdr) _) _) <- o =+     p <|> either (const empty) pure (msum $ map (rdr <=< (maybe (Left $ ErrorMsg "Missing environment variable") Right . getEnvValue env path)) names)+  | (Option (FlagReader names a) _) <- o =+     p <|> if any ((==Just "1") . getEnvValue env path) names then pure a else empty+  | otherwise = p+injectDefaultP env path (MultP p1 p2) =+   MultP (injectDefaultP env path p1) (injectDefaultP env path p2)+injectDefaultP env path (AltP p1 p2) =+   AltP (injectDefaultP env path p1) (injectDefaultP env path p2)+injectDefaultP _env _path b@(BindP {}) = b++getEnvValue :: M.Map [String] String -> [String] -> OptName -> Maybe String+getEnvValue env path (OptLong l) = M.lookup (path ++ [normalizeName l]) env+getEnvValue _ _ _                = Nothing++normalizeName :: String -> String+normalizeName = map toLower . filter isAlphaNum+
+ Scaffolding/Scaffolder.hs view
@@ -0,0 +1,101 @@+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE TemplateHaskell   #-}+module Scaffolding.Scaffolder (scaffold) where++import           Control.Arrow         ((&&&))+import qualified Data.ByteString.Char8 as S+import           Data.Conduit          (runResourceT, yield, ($$), ($$+-))+import           Data.FileEmbed        (embedFile)+import           Data.String           (fromString)+import qualified Data.Text             as T+import qualified Data.Text.Lazy        as LT+import qualified Data.Text.Lazy.IO     as TLIO+import           Text.ProjectTemplate  (unpackTemplate, receiveFS)+import           System.IO+import           Text.Shakespeare.Text (renderTextUrl, textFile)+import Network.HTTP.Conduit (withManager, http, parseUrl, responseBody)++prompt :: (String -> Maybe a) -> IO a+prompt f = do+    s <- getLine+    case f s of+        Just a -> return a+        Nothing -> do+            putStr "That was not a valid entry, please try again: "+            hFlush stdout+            prompt f++data Backend = Sqlite+             | Postgresql+             | PostgresqlFay+             | Mysql+             | MongoDB+             | Simple+  deriving (Eq, Read, Show, Enum, Bounded)++puts :: LT.Text -> IO ()+puts s = TLIO.putStr (LT.init s) >> hFlush stdout++backends :: [Backend]+backends = [minBound .. maxBound]++showBackend :: Backend -> String+showBackend Sqlite = "s"+showBackend Postgresql = "p"+showBackend PostgresqlFay = "pf"+showBackend Mysql = "mysql"+showBackend MongoDB = "mongo"+showBackend Simple = "simple"++readBackend :: String -> Maybe Backend+readBackend s = lookup s $ map (showBackend &&& id) backends++backendBS :: Backend -> S.ByteString+backendBS Sqlite = $(embedFile "hsfiles/sqlite.hsfiles")+backendBS Postgresql = $(embedFile "hsfiles/postgres.hsfiles")+backendBS PostgresqlFay = $(embedFile "hsfiles/postgres-fay.hsfiles")+backendBS Mysql = $(embedFile "hsfiles/mysql.hsfiles")+backendBS MongoDB = $(embedFile "hsfiles/mongo.hsfiles")+backendBS Simple = $(embedFile "hsfiles/simple.hsfiles")++-- | Is the character valid for a project name?+validPN :: Char -> Bool+validPN c+    | 'A' <= c && c <= 'Z' = True+    | 'a' <= c && c <= 'z' = True+    | '0' <= c && c <= '9' = True+validPN '-' = True+validPN _ = False++scaffold :: IO ()+scaffold = do+    puts $ renderTextUrl undefined $(textFile "input/welcome.cg")+    project <- prompt $ \s ->+        if all validPN s && not (null s) && s /= "test"+            then Just s+            else Nothing+    let dir = project++    puts $ renderTextUrl undefined $(textFile "input/database.cg")++    ebackend' <- prompt $ \s -> if s == "url" then Just (Left ()) else fmap Right $ readBackend s++    ebackend <-+        case ebackend' of+            Left () -> do+                puts "Please enter the URL:  "+                fmap Left $ prompt parseUrl+            Right backend -> return $ Right backend++    putStrLn "That's it! I'm creating your files now..."++    let sink = unpackTemplate+                (receiveFS $ fromString project)+                (T.replace "PROJECTNAME" (T.pack project))+    case ebackend of+        Left req -> withManager $ \m -> do+            res <- http req m+            responseBody res $$+- sink+        Right backend -> runResourceT $ yield (backendBS backend) $$ sink++    TLIO.putStr $ LT.replace "PROJECTNAME" (LT.pack project) $ renderTextUrl undefined $(textFile "input/done.cg")
+ Setup.lhs view
@@ -0,0 +1,7 @@+#!/usr/bin/env runhaskell++> module Main where+> import Distribution.Simple++> main :: IO ()+> main = defaultMain
+ ghcwrapper.hs view
@@ -0,0 +1,60 @@+{-+  wrapper executable that captures arguments to ghc, ar or ld+-}++{-# LANGUAGE CPP #-}+module Main where++import           Control.Monad                     (when)+import           Data.Maybe                        (fromMaybe)++import           Distribution.Compiler             (CompilerFlavor (..))+import           Distribution.Simple.Configure     (configCompiler)+import           Distribution.Simple.Program       (arProgram,+                                                    defaultProgramConfiguration,+                                                    ghcProgram, ldProgram,+                                                    programPath)+import           Distribution.Simple.Program.Db    (configureAllKnownPrograms,+                                                    lookupProgram)+import           Distribution.Simple.Program.Types (Program (..))+import           Distribution.Verbosity            (silent)++import           System.Directory                  (doesDirectoryExist)+import           System.Environment                (getArgs)+import           System.Exit                       (ExitCode (..), exitWith)+import           System.IO                         (hPutStrLn, stderr)+import           System.Process                    (rawSystem, readProcess)+++#ifdef LDCMD+cmd :: Program+cmd = ldProgram+outFile = "yesod-devel/ldargs.txt"+#else+#ifdef ARCMD+cmd :: Program+cmd = arProgram+outFile ="yesod-devel/arargs.txt"+#else+cmd :: Program+cmd = ghcProgram+outFile = "yesod-devel/ghcargs.txt"+#endif+#endif++runProgram :: Program -> [String] -> IO ExitCode+runProgram pgm args = do+  (comp, pgmc) <- configCompiler (Just GHC) Nothing Nothing defaultProgramConfiguration silent+  pgmc' <- configureAllKnownPrograms silent pgmc+  case lookupProgram pgm pgmc' of+    Nothing -> do+      hPutStrLn stderr ("cannot find program '" ++ programName pgm ++ "'")+      return (ExitFailure 1)+    Just p -> rawSystem (programPath p) args++main = do+  args <- getArgs+  e <- doesDirectoryExist "yesod-devel"+  when e $ writeFile outFile (show args ++ "\n")+  ex <- runProgram cmd args+  exitWith ex
+ hsfiles/mongo.hsfiles view
@@ -0,0 +1,5855 @@+{-# START_FILE .ghci #-}+:set -i.:config:dist/build/autogen+:set -XCPP -XTemplateHaskell -XQuasiQuotes -XTypeFamilies -XFlexibleContexts -XGADTs -XOverloadedStrings -XMultiParamTypeClasses -XGeneralizedNewtypeDeriving -XEmptyDataDecls++{-# START_FILE .gitignore #-}+dist*+static/tmp/+config/client_session_key.aes+*.hi+*.o+*.sqlite3+.hsenv*+yesod-devel/++{-# START_FILE Application.hs #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Application+    ( makeApplication+    , getApplicationDev+    , makeFoundation+    ) where++import Import+import Settings+import Yesod.Auth+import Yesod.Default.Config+import Yesod.Default.Main+import Yesod.Default.Handlers+import Network.Wai.Middleware.RequestLogger+import qualified Database.Persist+import Network.HTTP.Conduit (newManager, def)+import System.IO (stdout)+import System.Log.FastLogger (mkLogger)++-- Import all relevant handler modules here.+-- Don't forget to add new modules to your cabal file!+import Handler.Home++-- This line actually creates our YesodDispatch instance. It is the second half+-- of the call to mkYesodData which occurs in Foundation.hs. Please see the+-- comments there for more details.+mkYesodDispatch "App" resourcesApp++-- This function allocates resources (such as a database connection pool),+-- performs initialization and creates a WAI application. This is also the+-- place to put your migrate statements to have automatic database+-- migrations handled by Yesod.+makeApplication :: AppConfig DefaultEnv Extra -> IO Application+makeApplication conf = do+    foundation <- makeFoundation conf++    -- Initialize the logging middleware+    logWare <- mkRequestLogger def+        { outputFormat =+            if development+                then Detailed True+                else Apache FromSocket+        , destination = Logger $ appLogger foundation+        }++    -- Create the WAI application and apply middlewares+    app <- toWaiAppPlain foundation+    return $ logWare app++-- | Loads up any necessary settings, creates your foundation datatype, and+-- performs some initialization.+makeFoundation :: AppConfig DefaultEnv Extra -> IO App+makeFoundation conf = do+    manager <- newManager def+    s <- staticSite+    dbconf <- withYamlEnvironment "config/mongoDB.yml" (appEnv conf)+              Database.Persist.loadConfig >>=+              Database.Persist.applyEnv+    p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)+    logger <- mkLogger True stdout+    let foundation = App conf s p manager dbconf logger++    return foundation++-- for yesod devel+getApplicationDev :: IO (Int, Application)+getApplicationDev =+    defaultDevelApp loader makeApplication+  where+    loader = Yesod.Default.Config.loadConfig (configSettings Development)+        { csParseExtra = parseExtra+        }++{-# START_FILE Foundation.hs #-}+module Foundation where++import Prelude+import Yesod+import Yesod.Static+import Yesod.Auth+import Yesod.Auth.BrowserId+import Yesod.Auth.GoogleEmail+import Yesod.Default.Config+import Yesod.Default.Util (addStaticContentExternal)+import Network.HTTP.Conduit (Manager)+import qualified Settings+import Settings.Development (development)+import qualified Database.Persist+import Database.Persist.Sql (SqlPersistT)+import Settings.StaticFiles+import Database.Persist.MongoDB hiding (master)+import Settings (widgetFile, Extra (..))+import Model+import Text.Jasmine (minifym)+import Text.Hamlet (hamletFile)+import System.Log.FastLogger (Logger)++-- | The site argument for your application. This can be a good place to+-- keep settings and values requiring initialization before your application+-- starts running, such as database connections. Every handler will have+-- access to the data present here.+data App = App+    { settings :: AppConfig DefaultEnv Extra+    , getStatic :: Static -- ^ Settings for static file serving.+    , connPool :: Database.Persist.PersistConfigPool Settings.PersistConf -- ^ Database connection pool.+    , httpManager :: Manager+    , persistConfig :: Settings.PersistConf+    , appLogger :: Logger+    }++-- Set up i18n messages. See the message folder.+mkMessage "App" "messages" "en"++-- This is where we define all of the routes in our application. For a full+-- explanation of the syntax, please see:+-- http://www.yesodweb.com/book/handler+--+-- This function does three things:+--+-- * Creates the route datatype AppRoute. Every valid URL in your+--   application can be represented as a value of this type.+-- * Creates the associated type:+--       type instance Route App = AppRoute+-- * Creates the value resourcesApp which contains information on the+--   resources declared below. This is used in Handler.hs by the call to+--   mkYesodDispatch+--+-- What this function does *not* do is create a YesodSite instance for+-- App. Creating that instance requires all of the handler functions+-- for our application to be in scope. However, the handler functions+-- usually require access to the AppRoute datatype. Therefore, we+-- split these actions into two functions and place them in separate files.+mkYesodData "App" $(parseRoutesFile "config/routes")++type Form x = Html -> MForm (HandlerT App IO) (FormResult x, Widget)++-- Please see the documentation for the Yesod typeclass. There are a number+-- of settings which can be configured by overriding methods here.+instance Yesod App where+    approot = ApprootMaster $ appRoot . settings++    -- Store session data on the client in encrypted cookies,+    -- default session idle timeout is 120 minutes+    makeSessionBackend _ = fmap Just $ defaultClientSessionBackend+        (120 * 60) -- 120 minutes+        "config/client_session_key.aes"++    defaultLayout widget = do+        master <- getYesod+        mmsg <- getMessage++        -- We break up the default layout into two components:+        -- default-layout is the contents of the body tag, and+        -- default-layout-wrapper is the entire page. Since the final+        -- value passed to hamletToRepHtml cannot be a widget, this allows+        -- you to use normal widget features in default-layout.++        pc <- widgetToPageContent $ do+            $(combineStylesheets 'StaticR+                [ css_normalize_css+                , css_bootstrap_css+                ])+            $(widgetFile "default-layout")+        hamletToRepHtml $(hamletFile "templates/default-layout-wrapper.hamlet")++    -- This is done to provide an optimization for serving static files from+    -- a separate domain. Please see the staticRoot setting in Settings.hs+    urlRenderOverride y (StaticR s) =+        Just $ uncurry (joinPath y (Settings.staticRoot $ settings y)) $ renderRoute s+    urlRenderOverride _ _ = Nothing++    -- The page to be redirected to when authentication is required.+    authRoute _ = Just $ AuthR LoginR++    -- This function creates static content files in the static folder+    -- and names them based on a hash of their content. This allows+    -- expiration dates to be set far in the future without worry of+    -- users receiving stale content.+    addStaticContent =+        addStaticContentExternal minifym genFileName Settings.staticDir (StaticR . flip StaticRoute [])+      where+        -- Generate a unique filename based on the content itself+        genFileName lbs+            | development = "autogen-" ++ base64md5 lbs+            | otherwise   = base64md5 lbs++    -- Place Javascript at bottom of the body tag so the rest of the page loads first+    jsLoader _ = BottomOfBody++    -- What messages should be logged. The following includes all messages when+    -- in development, and warnings and errors in production.+    shouldLog _ _source level =+        development || level == LevelWarn || level == LevelError++    makeLogger = return . appLogger++-- How to run database actions.+instance YesodPersist App where+    type YesodPersistBackend App = Action+    runDB = defaultRunDB persistConfig connPool++instance YesodAuth App where+    type AuthId App = UserId++    -- Where to send a user after successful login+    loginDest _ = HomeR+    -- Where to send a user after logout+    logoutDest _ = HomeR++    getAuthId creds = runDB $ do+        x <- getBy $ UniqueUser $ credsIdent creds+        case x of+            Just (Entity uid _) -> return $ Just uid+            Nothing -> do+                fmap Just $ insert $ User (credsIdent creds) Nothing++    -- You can add other plugins like BrowserID, email or OAuth here+    authPlugins _ = [authBrowserId def, authGoogleEmail]++    authHttpManager = httpManager++-- This instance is required to use forms. You can modify renderMessage to+-- achieve customized and internationalized form validation messages.+instance RenderMessage App FormMessage where+    renderMessage _ _ = defaultFormMessage++-- | Get the 'Extra' value, used to hold data from the settings.yml file.+getExtra :: Handler Extra+getExtra = fmap (appExtra . settings) getYesod++-- Note: previous versions of the scaffolding included a deliver function to+-- send emails. Unfortunately, there are too many different options for us to+-- give a reasonable default. Instead, the information is available on the+-- wiki:+--+-- https://github.com/yesodweb/yesod/wiki/Sending-email++{-# START_FILE Handler/Home.hs #-}+{-# LANGUAGE TupleSections, OverloadedStrings #-}+module Handler.Home where++import Import++-- This is a handler function for the GET request method on the HomeR+-- resource pattern. All of your resource patterns are defined in+-- config/routes+--+-- The majority of the code you will write in Yesod lives in these handler+-- functions. You can spread them across multiple files if you are so+-- inclined, or create a single monolithic file.+getHomeR :: Handler RepHtml+getHomeR = do+    (formWidget, formEnctype) <- generateFormPost sampleForm+    let submission = Nothing :: Maybe (FileInfo, Text)+        handlerName = "getHomeR" :: Text+    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++postHomeR :: Handler RepHtml+postHomeR = do+    ((result, formWidget), formEnctype) <- runFormPost sampleForm+    let handlerName = "postHomeR" :: Text+        submission = case result of+            FormSuccess res -> Just res+            _ -> Nothing++    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++sampleForm :: Form (FileInfo, Text)+sampleForm = renderDivs $ (,)+    <$> fileAFormReq "Choose a file"+    <*> areq textField "What's on the file?" Nothing++{-# START_FILE Import.hs #-}+module Import+    ( module Import+    ) where++import           Prelude              as Import hiding (head, init, last,+                                                 readFile, tail, writeFile)+import           Yesod                as Import hiding (Route (..))++import           Control.Applicative  as Import (pure, (<$>), (<*>))+import           Data.Text            as Import (Text)++import           Foundation           as Import+import           Model                as Import+import           Settings             as Import+import           Settings.Development as Import+import           Settings.StaticFiles as Import++#if __GLASGOW_HASKELL__ >= 704+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat),+                                                 (<>))+#else+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat))++infixr 5 <>+(<>) :: Monoid m => m -> m -> m+(<>) = mappend+#endif++{-# START_FILE Model.hs #-}+module Model where++import Prelude+import Yesod+import Data.Text (Text)+import Database.Persist.Quasi+import Database.Persist.MongoDB hiding (master)+import Language.Haskell.TH.Syntax+import Data.Typeable (Typeable)++-- You can define all of your database entities in the entities file.+-- You can find more information on persistent and how to declare entities+-- at:+-- http://www.yesodweb.com/book/persistent/+let mongoSettings = (mkPersistSettings (ConT ''MongoBackend))+                        { mpsGeneric = False+                        }+ in share [mkPersist mongoSettings]+    $(persistFileWith lowerCaseSettings "config/models")++{-# START_FILE PROJECTNAME.cabal #-}+name:              PROJECTNAME+version:           0.0.0+cabal-version:     >= 1.8+build-type:        Simple++Flag dev+    Description:   Turn on development settings, like auto-reload templates.+    Default:       False++Flag library-only+    Description:   Build for use with "yesod devel"+    Default:       False++library+    exposed-modules: Application+                     Foundation+                     Import+                     Model+                     Settings+                     Settings.StaticFiles+                     Settings.Development+                     Handler.Home++    if flag(dev) || flag(library-only)+        cpp-options:   -DDEVELOPMENT+        ghc-options:   -Wall -O0+    else+        ghc-options:   -Wall -O2++    extensions: TemplateHaskell+                QuasiQuotes+                OverloadedStrings+                NoImplicitPrelude+                CPP+                MultiParamTypeClasses+                TypeFamilies+                GADTs+                GeneralizedNewtypeDeriving+                FlexibleContexts+                EmptyDataDecls+                NoMonomorphismRestriction+                DeriveDataTypeable++    build-depends: base                          >= 4          && < 5+                 -- , yesod-platform                >= 1.1        && < 1.2+                 , yesod                         >= 1.2        && < 1.3+                 , yesod-core                    >= 1.2        && < 1.3+                 , yesod-auth                    >= 1.2        && < 1.3+                 , yesod-static                  >= 1.2        && < 1.3+                 , yesod-form                    >= 1.3        && < 1.4+                 , bytestring                    >= 0.9        && < 0.11+                 , text                          >= 0.11       && < 0.12+                 , persistent                    >= 1.2        && < 1.3+                 , persistent-mongoDB            >= 1.2        && < 1.3+                 , persistent-template           >= 1.2        && < 1.3+                 , template-haskell+                 , hamlet                        >= 1.1        && < 1.2+                 , shakespeare-css               >= 1.0        && < 1.1+                 , shakespeare-js                >= 1.0.2      && < 1.2+                 , shakespeare-text              >= 1.0        && < 1.1+                 , hjsmin                        >= 0.1        && < 0.2+                 , monad-control                 >= 0.3        && < 0.4+                 , wai-extra                     >= 1.3        && < 1.4+                 , yaml                          >= 0.8        && < 0.9+                 , http-conduit                  >= 1.9        && < 1.10+                 , directory                     >= 1.1        && < 1.3+                 , warp                          >= 1.3        && < 1.4+                 , data-default+                 , aeson+                 , conduit                       >= 1.0+                 , monad-logger                  >= 0.3+                 , fast-logger                   >= 0.3++executable         PROJECTNAME+    if flag(library-only)+        Buildable: False++    main-is:           main.hs+    hs-source-dirs:    app+    build-depends:     base+                     , PROJECTNAME+                     , yesod++    ghc-options:       -threaded -O2++test-suite test+    type:              exitcode-stdio-1.0+    main-is:           main.hs+    hs-source-dirs:    tests+    ghc-options:       -Wall++    build-depends: base+                 , PROJECTNAME+                 , yesod-test >= 1.2 && < 1.3+                 , yesod-core+                 , yesod+                 , persistent+                 , persistent-mongoDB+                 , resourcet+                 , monad-logger+                 , transformers+                 , hspec++{-# START_FILE Settings.hs #-}+-- | Settings are centralized, as much as possible, into this file. This+-- includes database connection settings, static file locations, etc.+-- In addition, you can configure a number of different aspects of Yesod+-- by overriding methods in the Yesod typeclass. That instance is+-- declared in the Foundation.hs file.+module Settings where++import Prelude+import Text.Shakespeare.Text (st)+import Language.Haskell.TH.Syntax+import Database.Persist.MongoDB (MongoConf)+import Yesod.Default.Config+import Yesod.Default.Util+import Data.Text (Text)+import Data.Yaml+import Control.Applicative+import Settings.Development+import Data.Default (def)+import Text.Hamlet++-- | Which Persistent backend this site is using.+type PersistConf = MongoConf++-- Static setting below. Changing these requires a recompile++-- | The location of static files on your system. This is a file system+-- path. The default value works properly with your scaffolded site.+staticDir :: FilePath+staticDir = "static"++-- | The base URL for your static files. As you can see by the default+-- value, this can simply be "static" appended to your application root.+-- A powerful optimization can be serving static files from a separate+-- domain name. This allows you to use a web server optimized for static+-- files, more easily set expires and cache values, and avoid possibly+-- costly transference of cookies on static files. For more information,+-- please see:+--   http://code.google.com/speed/page-speed/docs/request.html#ServeFromCookielessDomain+--+-- If you change the resource pattern for StaticR in Foundation.hs, you will+-- have to make a corresponding change here.+--+-- To see how this value is used, see urlRenderOverride in Foundation.hs+staticRoot :: AppConfig DefaultEnv x -> Text+staticRoot conf = [st|#{appRoot conf}/static|]++-- | Settings for 'widgetFile', such as which template languages to support and+-- default Hamlet settings.+--+-- For more information on modifying behavior, see:+--+-- https://github.com/yesodweb/yesod/wiki/Overriding-widgetFile+widgetFileSettings :: WidgetFileSettings+widgetFileSettings = def+    { wfsHamletSettings = defaultHamletSettings+        { hamletNewlines = AlwaysNewlines+        }+    }++-- The rest of this file contains settings which rarely need changing by a+-- user.++widgetFile :: String -> Q Exp+widgetFile = (if development then widgetFileReload+                             else widgetFileNoReload)+              widgetFileSettings++data Extra = Extra+    { extraCopyright :: Text+    , extraAnalytics :: Maybe Text -- ^ Google Analytics+    } deriving Show++parseExtra :: DefaultEnv -> Object -> Parser Extra+parseExtra _ o = Extra+    <$> o .:  "copyright"+    <*> o .:? "analytics"++{-# START_FILE Settings/Development.hs #-}+module Settings.Development where++import Prelude++development :: Bool+development =+#if DEVELOPMENT+  True+#else+  False+#endif++production :: Bool+production = not development++{-# START_FILE Settings/StaticFiles.hs #-}+module Settings.StaticFiles where++import Prelude (IO)+import Yesod.Static+import qualified Yesod.Static as Static+import Settings (staticDir)+import Settings.Development+import Language.Haskell.TH (Q, Exp, Name)+import Data.Default (def)++-- | use this to create your static file serving site+staticSite :: IO Static.Static+staticSite = if development then Static.staticDevel staticDir+                            else Static.static      staticDir++-- | This generates easy references to files in the static directory at compile time,+--   giving you compile-time verification that referenced files exist.+--   Warning: any files added to your static directory during run-time can't be+--   accessed this way. You'll have to use their FilePath or URL to access them.+$(staticFiles Settings.staticDir)++combineSettings :: CombineSettings+combineSettings = def++-- The following two functions can be used to combine multiple CSS or JS files+-- at compile time to decrease the number of http requests.+-- Sample usage (inside a Widget):+--+-- > $(combineStylesheets 'StaticR [style1_css, style2_css])++combineStylesheets :: Name -> [Route Static] -> Q Exp+combineStylesheets = combineStylesheets' development combineSettings++combineScripts :: Name -> [Route Static] -> Q Exp+combineScripts = combineScripts' development combineSettings++{-# START_FILE app/main.hs #-}+import Prelude              (IO)+import Yesod.Default.Config (fromArgs)+import Yesod.Default.Main   (defaultMain)+import Settings             (parseExtra)+import Application          (makeApplication)++main :: IO ()+main = defaultMain (fromArgs parseExtra) makeApplication++{-# START_FILE BASE64 config/favicon.ico #-}+AAABAAIAEBAAAAEAIABoBAAAJgAAABAQAgABAAEAsAAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAApl4sAAAAAAAAAAAAAAAAAUEpGyNpSjaIg2NO2ZBvWfqTc13/+jW1X9YNhTMZrSTNkUTMfDwAAAAAAAAAAAAAAAAAAAAAAAAAANR0NClk6JmF+W0Txj2xV/41qVP+M+aVP/jGlS/4xpUv+MaVL/i2dQ/3pVPdNeOiEzQRsBAgAAAAAAAAAAMBgHAlIxG1h5UDb/h15D9n5W+PPZ4TzXmeVE303hQNtV4UDbVeFA11XdQNdV5UTfbbUUpx1UsEBgAAAAAAAAFADIVAwlULxY/f1M1+4dOffryecFHMXTIVhAAAAAURAAAOEwAADxQAAA8TAAAPEAAADigEABFNJAkZTSQJCRAHAQdKIARt+OxUAC1kvE3qQYEDfzJt5wXtOL9pQJAa0UScKjVInCo1SJwqNUSYJjVElCY1RJQmLUSUHslEjBGcu+EgAuVSQC/00eAGAYAAAPXzAQuLGAXs6ygV/PYTESwkMXAFRGHgI3Rx4BPEceATxHHQE7RBsBMkwf+AqlUIQHgQhoAaVUhAP9TIQDhSBwAI0EXAD5xQSHbzJp4wJRiQtBRIgKuRxsAb0kdAGpJHQBqSR0A+e04fAJNJHQClVCEA/0YcAIRVIgD/VSIA7E0fADQyDQAyaToa1MqXdMLJl3bBc0Ii6UscAJFFGgBE+RRoAQUIZAFlRIADpVSIA/1UiAP9JHwN9WicG/1QhAIMAAAAMVywPoaBtTNi6imnEsIBfya9+Xc1m+OBm2UycIilgqDYVVKQ2DVigJ4FwqCf5cKgr/Qx8GUGAwEc08EwAPTSgQY4dXN+LPnXy9g1c54XtM+LevJl3a/k2RE3WY5Gv9mNxn/Zjga/2c5G/9oOhz/Zzka/DQYBRFZLRA1JhAAJHhML9XJlnTCqXxe+zXFHLPtxRyv/n3BR2MuZd7uFWjzmc0gt/nRKLv90Sy//dUww/21CJcIAAAAATCsURXRONdR+Vjr5+j2ZL5oJbQfN+Vz3/flg//4NcQfePZkrogVk/8n5YP/6BW0H/gVtD/oBaQf9qQCRIJAgAAFAxHRt4+VDzVjWpS/4lmT/6LZ1D/jGlS/4xpU/6MaVL/i2hS/otpUv6Na1T+jmtV/o9tV/98Vj2cYzoeBgAA+AAAGAgAAZ0cyMIVkTtqae2f/mXpm/5l5Zf6Zemb+mXpm/5p6Zv+ae2f+mnxp/5p7Z/+HZE2qdE84+FAAAAAAAAAAAAAAAAAAAAABrTDgfhWVQnp2Abf+njHv/pot6/6aMev+njHv/qI18/5t+avOHZU9y+fFc/DgAAAAAAAAAAJhABAAAAAAAAAAAAyqmXADYdCQNoSDQjh2hUbpd6aJ+Zfmurl3pnlYZkTlpw+TDYTX0IxAbNeMwAAAAAAsoFfAPgfAADwBwAA4AMAAOH/AADwAQAAsPwAAJh4AAAYOAAAkAAAALAA+AADgAAAAwAEAAMABAADgAwAA8A8AAP4/AAAoAAAAEAAAACAAAAABAAEAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==++{-# START_FILE config/keter.yaml #-}+exec: ../dist/build/PROJECTNAME/PROJECTNAME+args:+    - production+host: <<HOST-NOT-SET>>++# Use the following to automatically copy your bundle upon creation via `yesod+# keter`. Uses `scp` internally, so you can set it to a remote destination+# copy-to: user@host:/opt/keter/incoming++{-# START_FILE config/models #-}+User+    ident Text+    password Text Maybe+    UniqueUser ident+    deriving Typeable+Email+    email Text+    user UserId Maybe+    verkey Text Maybe+    UniqueEmail email++ -- By default this file is used in Model.hs (which is imported by Foundation.hs)++{-# START_FILE config/mongoDB.yml #-}+Default: &defaults+  user: PROJECTNAME+  password: PROJECTNAME+  host: localhost+  database: PROJECTNAME+  connections: 10++Development:+  <<: *defaults++Testing:+  database: PROJECTNAME_test+  <<: *defaults++Staging:+  database: PROJECTNAME_staging+  connections: 100+  <<: *defaults++Production:+  database: PROJECTNAME_production+  connections: 100+  host: localhost+  <<: *defaults++{-# START_FILE config/robots.txt #-}+User-agent: *++{-# START_FILE config/routes #-}+/static StaticR Static getStatic+/auth   AuthR   Auth   getAuth++/favicon.ico FaviconR GET+/robots.txt RobotsR GET++/ HomeR GET POST++{-# START_FILE config/settings.yml #-}+Default: &defaults+  host: "*4" # any IPv4 host+  port: 3000+  approot: "http://localhost:3000"+  copyright: Insert copyright statement here+  #analytics: UA-YOURCODE++Development:+  <<: *defaults++Testing:+  <<: *defaults++Staging:+  <<: *defaults++Production:+  #approot: "http://www.example.com"+  <<: *defaults++{-# START_FILE deploy/Procfile #-}+# Free deployment to Heroku.+#+#   !! Warning: You must use a 64 bit machine to compile !!+#+#   This could mean using a virtual machine. Give your VM as much memory as you can to speed up linking.+#+# Basic Yesod setup:+#+# * Move this file out of the deploy directory and into your root directory+#+#     mv deploy/Procfile ./+#+# * Create an empty package.json+#     echo '{ "name": "PROJECTNAME", "version": "0.0.1", "dependencies": {} }' >> package.json+#+# Postgresql Yesod setup:+#+# * add dependencies on the "heroku", "aeson" and "unordered-containers" packages in your cabal file+#+# * add code in Application.hs to use the heroku package and load the connection parameters.+#   The below works for Postgresql.+#+#   import Data.HashMap.Strict as H+#   import Data.Aeson.Types as AT+#   #ifndef DEVELOPMENT+#   import qualified Web.Heroku+#   #endif+#+#+#+#   makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO App+#   makeFoundation conf setLogger = do+#       manager <- newManager def+#       s <- staticSite+#       hconfig <- loadHerokuConfig+#       dbconf <- withYamlEnvironment "config/postgresql.yml" (appEnv conf)+#                 (Database.Persist.Store.loadConfig . combineMappings hconfig) >>=+#                 Database.Persist.Store.applyEnv+#       p <- Database.Persist.Store.createPoolConfig (dbconf :: Settings.PersistConfig)+#       Database.Persist.Store.runPool dbconf (runMigration migrateAll) p+#       return $ App conf setLogger s p manager dbconf+#+#   #ifndef DEVELOPMENT+#   canonicalizeKey :: (Text, val) -> (Text, val)+#   canonicalizeKey ("dbname", val) = ("database", val)+#   canonicalizeKey pair = pair+#+#   toMapping :: [(Text, Text)] -> AT.Value+#   toMapping xs = AT.Object $ M.fromList $ map (\(key, val) -> (key, AT.String val)) xs+#   #endif+#+#   combineMappings :: AT.Value -> AT.Value -> AT.Value+#   combineMappings (AT.Object m1) (AT.Object m2) = AT.Object $ m1 `M.union` m2+#   combineMappings _ _ = error "Data.Object is not a Mapping."+#+#   loadHerokuConfig :: IO AT.Value+#   loadHerokuConfig = do+#   #ifdef DEVELOPMENT+#       return $ AT.Object M.empty+#   #else+#       Web.Heroku.dbConnParams >>= return . toMapping . map canonicalizeKey+#   #endif++++# Heroku setup:+# Find the Heroku guide. Roughly:+#+# * sign up for a heroku account and register your ssh key+# * create a new application on the *cedar* stack+#+# * make your Yesod project the git repository for that application+# * create a deploy branch+#+#     git checkout -b deploy+#+# Repeat these steps to deploy:+# * add your web executable binary (referenced below) to the git repository+#+#     git checkout deploy+#     git add ./dist/build/PROJECTNAME/PROJECTNAME+#     git commit -m deploy+#+# * push to Heroku+#+#     git push heroku deploy:master+++# Heroku configuration that runs your app+web: ./dist/build/PROJECTNAME/PROJECTNAME production -p $PORT++{-# START_FILE devel.hs #-}+{-# LANGUAGE PackageImports #-}+import "PROJECTNAME" Application (getApplicationDev)+import Network.Wai.Handler.Warp+    (runSettings, defaultSettings, settingsPort)+import Control.Concurrent (forkIO)+import System.Directory (doesFileExist, removeFile)+import System.Exit (exitSuccess)+import Control.Concurrent (threadDelay)++main :: IO ()+main = do+    putStrLn "Starting devel application"+    (port, app) <- getApplicationDev+    forkIO $ runSettings defaultSettings+        { settingsPort = port+        } app+    loop++loop :: IO ()+loop = do+  threadDelay 100000+  e <- doesFileExist "yesod-devel/devel-terminate"+  if e then terminateDevel else loop++terminateDevel :: IO ()+terminateDevel = exitSuccess++{-# START_FILE messages/en.msg #-}+Hello: Hello++{-# START_FILE static/css/bootstrap.css #-}+/*!+ * Bootstrap v2.0.2+ *+ * Copyright 2012 Twitter, Inc+ * Licensed under the Apache License v2.0+ * http://www.apache.org/licenses/LICENSE-2.0+ *+ * Designed and built with all the love in the world @twitter by @mdo and @fat.+ */+article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+  display: block;+}+audio,+canvas,+video {+  display: inline-block;+  *display: inline;+  *zoom: 1;+}+audio:not([controls]) {+  display: none;+}+html {+  font-size: 100%;+  -webkit-text-size-adjust: 100%;+  -ms-text-size-adjust: 100%;+}+a:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+a:hover,+a:active {+  outline: 0;+}+sub,+sup {+  position: relative;+  font-size: 75%;+  line-height: 0;+  vertical-align: baseline;+}+sup {+  top: -0.5em;+}+sub {+  bottom: -0.25em;+}+img {+  height: auto;+  border: 0;+  -ms-interpolation-mode: bicubic;+  vertical-align: middle;+}+button,+input,+select,+textarea {+  margin: 0;+  font-size: 100%;+  vertical-align: middle;+}+button,+input {+  *overflow: visible;+  line-height: normal;+}+button::-moz-focus-inner,+input::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button,+input[type="button"],+input[type="reset"],+input[type="submit"] {+  cursor: pointer;+  -webkit-appearance: button;+}+input[type="search"] {+  -webkit-appearance: textfield;+  -webkit-box-sizing: content-box;+  -moz-box-sizing: content-box;+  box-sizing: content-box;+}+input[type="search"]::-webkit-search-decoration,+input[type="search"]::-webkit-search-cancel-button {+  -webkit-appearance: none;+}+textarea {+  overflow: auto;+  vertical-align: top;+}+.clearfix {+  *zoom: 1;+}+.clearfix:before,+.clearfix:after {+  display: table;+  content: "";+}+.clearfix:after {+  clear: both;+}+.hide-text {+  overflow: hidden;+  text-indent: 100%;+  white-space: nowrap;+}+.input-block-level {+  display: block;+  width: 100%;+  min-height: 28px;+  /* Make inputs at least the height of their button counterpart */++  /* Makes inputs behave like true block-level elements */++  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+}+body {+  margin: 0;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  background-color: #ffffff;+}+a {+  color: #0088cc;+  text-decoration: none;+}+a:hover {+  color: #005580;+  text-decoration: underline;+}+.row {+  margin-left: -20px;+  *zoom: 1;+}+.row:before,+.row:after {+  display: table;+  content: "";+}+.row:after {+  clear: both;+}+[class*="span"] {+  float: left;+  margin-left: 20px;+}+.container,+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.span12 {+  width: 940px;+}+.span11 {+  width: 860px;+}+.span10 {+  width: 780px;+}+.span9 {+  width: 700px;+}+.span8 {+  width: 620px;+}+.span7 {+  width: 540px;+}+.span6 {+  width: 460px;+}+.span5 {+  width: 380px;+}+.span4 {+  width: 300px;+}+.span3 {+  width: 220px;+}+.span2 {+  width: 140px;+}+.span1 {+  width: 60px;+}+.offset12 {+  margin-left: 980px;+}+.offset11 {+  margin-left: 900px;+}+.offset10 {+  margin-left: 820px;+}+.offset9 {+  margin-left: 740px;+}+.offset8 {+  margin-left: 660px;+}+.offset7 {+  margin-left: 580px;+}+.offset6 {+  margin-left: 500px;+}+.offset5 {+  margin-left: 420px;+}+.offset4 {+  margin-left: 340px;+}+.offset3 {+  margin-left: 260px;+}+.offset2 {+  margin-left: 180px;+}+.offset1 {+  margin-left: 100px;+}+.row-fluid {+  width: 100%;+  *zoom: 1;+}+.row-fluid:before,+.row-fluid:after {+  display: table;+  content: "";+}+.row-fluid:after {+  clear: both;+}+.row-fluid > [class*="span"] {+  float: left;+  margin-left: 2.127659574%;+}+.row-fluid > [class*="span"]:first-child {+  margin-left: 0;+}+.row-fluid > .span12 {+  width: 99.99999998999999%;+}+.row-fluid > .span11 {+  width: 91.489361693%;+}+.row-fluid > .span10 {+  width: 82.97872339599999%;+}+.row-fluid > .span9 {+  width: 74.468085099%;+}+.row-fluid > .span8 {+  width: 65.95744680199999%;+}+.row-fluid > .span7 {+  width: 57.446808505%;+}+.row-fluid > .span6 {+  width: 48.93617020799999%;+}+.row-fluid > .span5 {+  width: 40.425531911%;+}+.row-fluid > .span4 {+  width: 31.914893614%;+}+.row-fluid > .span3 {+  width: 23.404255317%;+}+.row-fluid > .span2 {+  width: 14.89361702%;+}+.row-fluid > .span1 {+  width: 6.382978723%;+}+.container {+  margin-left: auto;+  margin-right: auto;+  *zoom: 1;+}+.container:before,+.container:after {+  display: table;+  content: "";+}+.container:after {+  clear: both;+}+.container-fluid {+  padding-left: 20px;+  padding-right: 20px;+  *zoom: 1;+}+.container-fluid:before,+.container-fluid:after {+  display: table;+  content: "";+}+.container-fluid:after {+  clear: both;+}+p {+  margin: 0 0 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+}+p small {+  font-size: 11px;+  color: #999999;+}+.lead {+  margin-bottom: 18px;+  font-size: 20px;+  font-weight: 200;+  line-height: 27px;+}+h1,+h2,+h3,+h4,+h5,+h6 {+  margin: 0;+  font-family: inherit;+  font-weight: bold;+  color: inherit;+  text-rendering: optimizelegibility;+}+h1 small,+h2 small,+h3 small,+h4 small,+h5 small,+h6 small {+  font-weight: normal;+  color: #999999;+}+h1 {+  font-size: 30px;+  line-height: 36px;+}+h1 small {+  font-size: 18px;+}+h2 {+  font-size: 24px;+  line-height: 36px;+}+h2 small {+  font-size: 18px;+}+h3 {+  line-height: 27px;+  font-size: 18px;+}+h3 small {+  font-size: 14px;+}+h4,+h5,+h6 {+  line-height: 18px;+}+h4 {+  font-size: 14px;+}+h4 small {+  font-size: 12px;+}+h5 {+  font-size: 12px;+}+h6 {+  font-size: 11px;+  color: #999999;+  text-transform: uppercase;+}+.page-header {+  padding-bottom: 17px;+  margin: 18px 0;+  border-bottom: 1px solid #eeeeee;+}+.page-header h1 {+  line-height: 1;+}+ul,+ol {+  padding: 0;+  margin: 0 0 9px 25px;+}+ul ul,+ul ol,+ol ol,+ol ul {+  margin-bottom: 0;+}+ul {+  list-style: disc;+}+ol {+  list-style: decimal;+}+li {+  line-height: 18px;+}+ul.unstyled,+ol.unstyled {+  margin-left: 0;+  list-style: none;+}+dl {+  margin-bottom: 18px;+}+dt,+dd {+  line-height: 18px;+}+dt {+  font-weight: bold;+  line-height: 17px;+}+dd {+  margin-left: 9px;+}+.dl-horizontal dt {+  float: left;+  clear: left;+  width: 120px;+  text-align: right;+}+.dl-horizontal dd {+  margin-left: 130px;+}+hr {+  margin: 18px 0;+  border: 0;+  border-top: 1px solid #eeeeee;+  border-bottom: 1px solid #ffffff;+}+strong {+  font-weight: bold;+}+em {+  font-style: italic;+}+.muted {+  color: #999999;+}+abbr[title] {+  border-bottom: 1px dotted #ddd;+  cursor: help;+}+abbr.initialism {+  font-size: 90%;+  text-transform: uppercase;+}+blockquote {+  padding: 0 0 0 15px;+  margin: 0 0 18px;+  border-left: 5px solid #eeeeee;+}+blockquote p {+  margin-bottom: 0;+  font-size: 16px;+  font-weight: 300;+  line-height: 22.5px;+}+blockquote small {+  display: block;+  line-height: 18px;+  color: #999999;+}+blockquote small:before {+  content: '\2014 \00A0';+}+blockquote.pull-right {+  float: right;+  padding-left: 0;+  padding-right: 15px;+  border-left: 0;+  border-right: 5px solid #eeeeee;+}+blockquote.pull-right p,+blockquote.pull-right small {+  text-align: right;+}+q:before,+q:after,+blockquote:before,+blockquote:after {+  content: "";+}+address {+  display: block;+  margin-bottom: 18px;+  line-height: 18px;+  font-style: normal;+}+small {+  font-size: 100%;+}+cite {+  font-style: normal;+}+code,+pre {+  padding: 0 3px 2px;+  font-family: Menlo, Monaco, "Courier New", monospace;+  font-size: 12px;+  color: #333333;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+code {+  padding: 2px 4px;+  color: #d14;+  background-color: #f7f7f9;+  border: 1px solid #e1e1e8;+}+pre {+  display: block;+  padding: 8.5px;+  margin: 0 0 9px;+  font-size: 12.025px;+  line-height: 18px;+  background-color: #f5f5f5;+  border: 1px solid #ccc;+  border: 1px solid rgba(0, 0, 0, 0.15);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  white-space: pre;+  white-space: pre-wrap;+  word-break: break-all;+  word-wrap: break-word;+}+pre.prettyprint {+  margin-bottom: 18px;+}+pre code {+  padding: 0;+  color: inherit;+  background-color: transparent;+  border: 0;+}+.pre-scrollable {+  max-height: 340px;+  overflow-y: scroll;+}+form {+  margin: 0 0 18px;+}+fieldset {+  padding: 0;+  margin: 0;+  border: 0;+}+legend {+  display: block;+  width: 100%;+  padding: 0;+  margin-bottom: 27px;+  font-size: 19.5px;+  line-height: 36px;+  color: #333333;+  border: 0;+  border-bottom: 1px solid #eee;+}+legend small {+  font-size: 13.5px;+  color: #999999;+}+label,+input,+button,+select,+textarea {+  font-size: 13px;+  font-weight: normal;+  line-height: 18px;+}+input,+button,+select,+textarea {+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+}+label {+  display: block;+  margin-bottom: 5px;+  color: #333333;+}+input,+textarea,+select,+.uneditable-input {+  display: inline-block;+  width: 210px;+  height: 18px;+  padding: 4px;+  margin-bottom: 9px;+  font-size: 13px;+  line-height: 18px;+  color: #555555;+  border: 1px solid #cccccc;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.uneditable-textarea {+  width: auto;+  height: auto;+}+label input,+label textarea,+label select {+  display: block;+}+input[type="image"],+input[type="checkbox"],+input[type="radio"] {+  width: auto;+  height: auto;+  padding: 0;+  margin: 3px 0;+  *margin-top: 0;+  /* IE7 */++  line-height: normal;+  cursor: pointer;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+  border: 0 \9;+  /* IE9 and down */++}+input[type="image"] {+  border: 0;+}+input[type="file"] {+  width: auto;+  padding: initial;+  line-height: initial;+  border: initial;+  background-color: #ffffff;+  background-color: initial;+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+input[type="button"],+input[type="reset"],+input[type="submit"] {+  width: auto;+  height: auto;+}+select,+input[type="file"] {+  height: 28px;+  /* In IE7, the height of the select element cannot be changed by height, only font-size */++  *margin-top: 4px;+  /* For IE7, add top margin to align select with labels */++  line-height: 28px;+}+input[type="file"] {+  line-height: 18px \9;+}+select {+  width: 220px;+  background-color: #ffffff;+}+select[multiple],+select[size] {+  height: auto;+}+input[type="image"] {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+textarea {+  height: auto;+}+input[type="hidden"] {+  display: none;+}+.radio,+.checkbox {+  padding-left: 18px;+}+.radio input[type="radio"],+.checkbox input[type="checkbox"] {+  float: left;+  margin-left: -18px;+}+.controls > .radio:first-child,+.controls > .checkbox:first-child {+  padding-top: 5px;+}+.radio.inline,+.checkbox.inline {+  display: inline-block;+  padding-top: 5px;+  margin-bottom: 0;+  vertical-align: middle;+}+.radio.inline + .radio.inline,+.checkbox.inline + .checkbox.inline {+  margin-left: 10px;+}+input,+textarea {+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;+  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;+  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;+  -o-transition: border linear 0.2s, box-shadow linear 0.2s;+  transition: border linear 0.2s, box-shadow linear 0.2s;+}+input:focus,+textarea:focus {+  border-color: rgba(82, 168, 236, 0.8);+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  outline: 0;+  outline: thin dotted \9;+  /* IE6-9 */++}+input[type="file"]:focus,+input[type="radio"]:focus,+input[type="checkbox"]:focus,+select:focus {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.input-mini {+  width: 60px;+}+.input-small {+  width: 90px;+}+.input-medium {+  width: 150px;+}+.input-large {+  width: 210px;+}+.input-xlarge {+  width: 270px;+}+.input-xxlarge {+  width: 530px;+}+input[class*="span"],+select[class*="span"],+textarea[class*="span"],+.uneditable-input {+  float: none;+  margin-left: 0;+}+input,+textarea,+.uneditable-input {+  margin-left: 0;+}+input.span12, textarea.span12, .uneditable-input.span12 {+  width: 930px;+}+input.span11, textarea.span11, .uneditable-input.span11 {+  width: 850px;+}+input.span10, textarea.span10, .uneditable-input.span10 {+  width: 770px;+}+input.span9, textarea.span9, .uneditable-input.span9 {+  width: 690px;+}+input.span8, textarea.span8, .uneditable-input.span8 {+  width: 610px;+}+input.span7, textarea.span7, .uneditable-input.span7 {+  width: 530px;+}+input.span6, textarea.span6, .uneditable-input.span6 {+  width: 450px;+}+input.span5, textarea.span5, .uneditable-input.span5 {+  width: 370px;+}+input.span4, textarea.span4, .uneditable-input.span4 {+  width: 290px;+}+input.span3, textarea.span3, .uneditable-input.span3 {+  width: 210px;+}+input.span2, textarea.span2, .uneditable-input.span2 {+  width: 130px;+}+input.span1, textarea.span1, .uneditable-input.span1 {+  width: 50px;+}+input[disabled],+select[disabled],+textarea[disabled],+input[readonly],+select[readonly],+textarea[readonly] {+  background-color: #eeeeee;+  border-color: #ddd;+  cursor: not-allowed;+}+.control-group.warning > label,+.control-group.warning .help-block,+.control-group.warning .help-inline {+  color: #c09853;+}+.control-group.warning input,+.control-group.warning select,+.control-group.warning textarea {+  color: #c09853;+  border-color: #c09853;+}+.control-group.warning input:focus,+.control-group.warning select:focus,+.control-group.warning textarea:focus {+  border-color: #a47e3c;+  -webkit-box-shadow: 0 0 6px #dbc59e;+  -moz-box-shadow: 0 0 6px #dbc59e;+  box-shadow: 0 0 6px #dbc59e;+}+.control-group.warning .input-prepend .add-on,+.control-group.warning .input-append .add-on {+  color: #c09853;+  background-color: #fcf8e3;+  border-color: #c09853;+}+.control-group.error > label,+.control-group.error .help-block,+.control-group.error .help-inline {+  color: #b94a48;+}+.control-group.error input,+.control-group.error select,+.control-group.error textarea {+  color: #b94a48;+  border-color: #b94a48;+}+.control-group.error input:focus,+.control-group.error select:focus,+.control-group.error textarea:focus {+  border-color: #953b39;+  -webkit-box-shadow: 0 0 6px #d59392;+  -moz-box-shadow: 0 0 6px #d59392;+  box-shadow: 0 0 6px #d59392;+}+.control-group.error .input-prepend .add-on,+.control-group.error .input-append .add-on {+  color: #b94a48;+  background-color: #f2dede;+  border-color: #b94a48;+}+.control-group.success > label,+.control-group.success .help-block,+.control-group.success .help-inline {+  color: #468847;+}+.control-group.success input,+.control-group.success select,+.control-group.success textarea {+  color: #468847;+  border-color: #468847;+}+.control-group.success input:focus,+.control-group.success select:focus,+.control-group.success textarea:focus {+  border-color: #356635;+  -webkit-box-shadow: 0 0 6px #7aba7b;+  -moz-box-shadow: 0 0 6px #7aba7b;+  box-shadow: 0 0 6px #7aba7b;+}+.control-group.success .input-prepend .add-on,+.control-group.success .input-append .add-on {+  color: #468847;+  background-color: #dff0d8;+  border-color: #468847;+}+input:focus:required:invalid,+textarea:focus:required:invalid,+select:focus:required:invalid {+  color: #b94a48;+  border-color: #ee5f5b;+}+input:focus:required:invalid:focus,+textarea:focus:required:invalid:focus,+select:focus:required:invalid:focus {+  border-color: #e9322d;+  -webkit-box-shadow: 0 0 6px #f8b9b7;+  -moz-box-shadow: 0 0 6px #f8b9b7;+  box-shadow: 0 0 6px #f8b9b7;+}+.form-actions {+  padding: 17px 20px 18px;+  margin-top: 18px;+  margin-bottom: 18px;+  background-color: #eeeeee;+  border-top: 1px solid #ddd;+  *zoom: 1;+}+.form-actions:before,+.form-actions:after {+  display: table;+  content: "";+}+.form-actions:after {+  clear: both;+}+.uneditable-input {+  display: block;+  background-color: #ffffff;+  border-color: #eee;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  cursor: not-allowed;+}+:-moz-placeholder {+  color: #999999;+}+::-webkit-input-placeholder {+  color: #999999;+}+.help-block,+.help-inline {+  color: #555555;+}+.help-block {+  display: block;+  margin-bottom: 9px;+}+.help-inline {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  vertical-align: middle;+  padding-left: 5px;+}+.input-prepend,+.input-append {+  margin-bottom: 5px;+}+.input-prepend input,+.input-append input,+.input-prepend select,+.input-append select,+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  *margin-left: 0;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend input:focus,+.input-append input:focus,+.input-prepend select:focus,+.input-append select:focus,+.input-prepend .uneditable-input:focus,+.input-append .uneditable-input:focus {+  position: relative;+  z-index: 2;+}+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  border-left-color: #ccc;+}+.input-prepend .add-on,+.input-append .add-on {+  display: inline-block;+  width: auto;+  min-width: 16px;+  height: 18px;+  padding: 4px 5px;+  font-weight: normal;+  line-height: 18px;+  text-align: center;+  text-shadow: 0 1px 0 #ffffff;+  vertical-align: middle;+  background-color: #eeeeee;+  border: 1px solid #ccc;+}+.input-prepend .add-on,+.input-append .add-on,+.input-prepend .btn,+.input-append .btn {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend .active,+.input-append .active {+  background-color: #a9dba9;+  border-color: #46a546;+}+.input-prepend .add-on,+.input-prepend .btn {+  margin-right: -1px;+}+.input-append input,+.input-append select .uneditable-input {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-append .uneditable-input {+  border-left-color: #eee;+  border-right-color: #ccc;+}+.input-append .add-on,+.input-append .btn {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend.input-append input,+.input-prepend.input-append select,+.input-prepend.input-append .uneditable-input {+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.input-prepend.input-append .add-on:first-child,+.input-prepend.input-append .btn:first-child {+  margin-right: -1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend.input-append .add-on:last-child,+.input-prepend.input-append .btn:last-child {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.search-query {+  padding-left: 14px;+  padding-right: 14px;+  margin-bottom: 0;+  -webkit-border-radius: 14px;+  -moz-border-radius: 14px;+  border-radius: 14px;+}+.form-search input,+.form-inline input,+.form-horizontal input,+.form-search textarea,+.form-inline textarea,+.form-horizontal textarea,+.form-search select,+.form-inline select,+.form-horizontal select,+.form-search .help-inline,+.form-inline .help-inline,+.form-horizontal .help-inline,+.form-search .uneditable-input,+.form-inline .uneditable-input,+.form-horizontal .uneditable-input,+.form-search .input-prepend,+.form-inline .input-prepend,+.form-horizontal .input-prepend,+.form-search .input-append,+.form-inline .input-append,+.form-horizontal .input-append {+  display: inline-block;+  margin-bottom: 0;+}+.form-search .hide,+.form-inline .hide,+.form-horizontal .hide {+  display: none;+}+.form-search label,+.form-inline label {+  display: inline-block;+}+.form-search .input-append,+.form-inline .input-append,+.form-search .input-prepend,+.form-inline .input-prepend {+  margin-bottom: 0;+}+.form-search .radio,+.form-search .checkbox,+.form-inline .radio,+.form-inline .checkbox {+  padding-left: 0;+  margin-bottom: 0;+  vertical-align: middle;+}+.form-search .radio input[type="radio"],+.form-search .checkbox input[type="checkbox"],+.form-inline .radio input[type="radio"],+.form-inline .checkbox input[type="checkbox"] {+  float: left;+  margin-left: 0;+  margin-right: 3px;+}+.control-group {+  margin-bottom: 9px;+}+legend + .control-group {+  margin-top: 18px;+  -webkit-margin-top-collapse: separate;+}+.form-horizontal .control-group {+  margin-bottom: 18px;+  *zoom: 1;+}+.form-horizontal .control-group:before,+.form-horizontal .control-group:after {+  display: table;+  content: "";+}+.form-horizontal .control-group:after {+  clear: both;+}+.form-horizontal .control-label {+  float: left;+  width: 140px;+  padding-top: 5px;+  text-align: right;+}+.form-horizontal .controls {+  margin-left: 160px;+  /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */++  *display: inline-block;+  *margin-left: 0;+  *padding-left: 20px;+}+.form-horizontal .help-block {+  margin-top: 9px;+  margin-bottom: 0;+}+.form-horizontal .form-actions {+  padding-left: 160px;+}+table {+  max-width: 100%;+  border-collapse: collapse;+  border-spacing: 0;+  background-color: transparent;+}+.table {+  width: 100%;+  margin-bottom: 18px;+}+.table th,+.table td {+  padding: 8px;+  line-height: 18px;+  text-align: left;+  vertical-align: top;+  border-top: 1px solid #dddddd;+}+.table th {+  font-weight: bold;+}+.table thead th {+  vertical-align: bottom;+}+.table colgroup + thead tr:first-child th,+.table colgroup + thead tr:first-child td,+.table thead:first-child tr:first-child th,+.table thead:first-child tr:first-child td {+  border-top: 0;+}+.table tbody + tbody {+  border-top: 2px solid #dddddd;+}+.table-condensed th,+.table-condensed td {+  padding: 4px 5px;+}+.table-bordered {+  border: 1px solid #dddddd;+  border-left: 0;+  border-collapse: separate;+  *border-collapse: collapsed;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.table-bordered th,+.table-bordered td {+  border-left: 1px solid #dddddd;+}+.table-bordered thead:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child td {+  border-top: 0;+}+.table-bordered thead:first-child tr:first-child th:first-child,+.table-bordered tbody:first-child tr:first-child td:first-child {+  -webkit-border-radius: 4px 0 0 0;+  -moz-border-radius: 4px 0 0 0;+  border-radius: 4px 0 0 0;+}+.table-bordered thead:first-child tr:first-child th:last-child,+.table-bordered tbody:first-child tr:first-child td:last-child {+  -webkit-border-radius: 0 4px 0 0;+  -moz-border-radius: 0 4px 0 0;+  border-radius: 0 4px 0 0;+}+.table-bordered thead:last-child tr:last-child th:first-child,+.table-bordered tbody:last-child tr:last-child td:first-child {+  -webkit-border-radius: 0 0 0 4px;+  -moz-border-radius: 0 0 0 4px;+  border-radius: 0 0 0 4px;+}+.table-bordered thead:last-child tr:last-child th:last-child,+.table-bordered tbody:last-child tr:last-child td:last-child {+  -webkit-border-radius: 0 0 4px 0;+  -moz-border-radius: 0 0 4px 0;+  border-radius: 0 0 4px 0;+}+.table-striped tbody tr:nth-child(odd) td,+.table-striped tbody tr:nth-child(odd) th {+  background-color: #f9f9f9;+}+.table tbody tr:hover td,+.table tbody tr:hover th {+  background-color: #f5f5f5;+}+table .span1 {+  float: none;+  width: 44px;+  margin-left: 0;+}+table .span2 {+  float: none;+  width: 124px;+  margin-left: 0;+}+table .span3 {+  float: none;+  width: 204px;+  margin-left: 0;+}+table .span4 {+  float: none;+  width: 284px;+  margin-left: 0;+}+table .span5 {+  float: none;+  width: 364px;+  margin-left: 0;+}+table .span6 {+  float: none;+  width: 444px;+  margin-left: 0;+}+table .span7 {+  float: none;+  width: 524px;+  margin-left: 0;+}+table .span8 {+  float: none;+  width: 604px;+  margin-left: 0;+}+table .span9 {+  float: none;+  width: 684px;+  margin-left: 0;+}+table .span10 {+  float: none;+  width: 764px;+  margin-left: 0;+}+table .span11 {+  float: none;+  width: 844px;+  margin-left: 0;+}+table .span12 {+  float: none;+  width: 924px;+  margin-left: 0;+}+table .span13 {+  float: none;+  width: 1004px;+  margin-left: 0;+}+table .span14 {+  float: none;+  width: 1084px;+  margin-left: 0;+}+table .span15 {+  float: none;+  width: 1164px;+  margin-left: 0;+}+table .span16 {+  float: none;+  width: 1244px;+  margin-left: 0;+}+table .span17 {+  float: none;+  width: 1324px;+  margin-left: 0;+}+table .span18 {+  float: none;+  width: 1404px;+  margin-left: 0;+}+table .span19 {+  float: none;+  width: 1484px;+  margin-left: 0;+}+table .span20 {+  float: none;+  width: 1564px;+  margin-left: 0;+}+table .span21 {+  float: none;+  width: 1644px;+  margin-left: 0;+}+table .span22 {+  float: none;+  width: 1724px;+  margin-left: 0;+}+table .span23 {+  float: none;+  width: 1804px;+  margin-left: 0;+}+table .span24 {+  float: none;+  width: 1884px;+  margin-left: 0;+}+[class^="icon-"],+[class*=" icon-"] {+  display: inline-block;+  width: 14px;+  height: 14px;+  line-height: 14px;+  vertical-align: text-top;+  background-image: url("../img/glyphicons-halflings.png");+  background-position: 14px 14px;+  background-repeat: no-repeat;+  *margin-right: .3em;+}+[class^="icon-"]:last-child,+[class*=" icon-"]:last-child {+  *margin-left: 0;+}+.icon-white {+  background-image: url("../img/glyphicons-halflings-white.png");+}+.icon-glass {+  background-position: 0      0;+}+.icon-music {+  background-position: -24px 0;+}+.icon-search {+  background-position: -48px 0;+}+.icon-envelope {+  background-position: -72px 0;+}+.icon-heart {+  background-position: -96px 0;+}+.icon-star {+  background-position: -120px 0;+}+.icon-star-empty {+  background-position: -144px 0;+}+.icon-user {+  background-position: -168px 0;+}+.icon-film {+  background-position: -192px 0;+}+.icon-th-large {+  background-position: -216px 0;+}+.icon-th {+  background-position: -240px 0;+}+.icon-th-list {+  background-position: -264px 0;+}+.icon-ok {+  background-position: -288px 0;+}+.icon-remove {+  background-position: -312px 0;+}+.icon-zoom-in {+  background-position: -336px 0;+}+.icon-zoom-out {+  background-position: -360px 0;+}+.icon-off {+  background-position: -384px 0;+}+.icon-signal {+  background-position: -408px 0;+}+.icon-cog {+  background-position: -432px 0;+}+.icon-trash {+  background-position: -456px 0;+}+.icon-home {+  background-position: 0 -24px;+}+.icon-file {+  background-position: -24px -24px;+}+.icon-time {+  background-position: -48px -24px;+}+.icon-road {+  background-position: -72px -24px;+}+.icon-download-alt {+  background-position: -96px -24px;+}+.icon-download {+  background-position: -120px -24px;+}+.icon-upload {+  background-position: -144px -24px;+}+.icon-inbox {+  background-position: -168px -24px;+}+.icon-play-circle {+  background-position: -192px -24px;+}+.icon-repeat {+  background-position: -216px -24px;+}+.icon-refresh {+  background-position: -240px -24px;+}+.icon-list-alt {+  background-position: -264px -24px;+}+.icon-lock {+  background-position: -287px -24px;+}+.icon-flag {+  background-position: -312px -24px;+}+.icon-headphones {+  background-position: -336px -24px;+}+.icon-volume-off {+  background-position: -360px -24px;+}+.icon-volume-down {+  background-position: -384px -24px;+}+.icon-volume-up {+  background-position: -408px -24px;+}+.icon-qrcode {+  background-position: -432px -24px;+}+.icon-barcode {+  background-position: -456px -24px;+}+.icon-tag {+  background-position: 0 -48px;+}+.icon-tags {+  background-position: -25px -48px;+}+.icon-book {+  background-position: -48px -48px;+}+.icon-bookmark {+  background-position: -72px -48px;+}+.icon-print {+  background-position: -96px -48px;+}+.icon-camera {+  background-position: -120px -48px;+}+.icon-font {+  background-position: -144px -48px;+}+.icon-bold {+  background-position: -167px -48px;+}+.icon-italic {+  background-position: -192px -48px;+}+.icon-text-height {+  background-position: -216px -48px;+}+.icon-text-width {+  background-position: -240px -48px;+}+.icon-align-left {+  background-position: -264px -48px;+}+.icon-align-center {+  background-position: -288px -48px;+}+.icon-align-right {+  background-position: -312px -48px;+}+.icon-align-justify {+  background-position: -336px -48px;+}+.icon-list {+  background-position: -360px -48px;+}+.icon-indent-left {+  background-position: -384px -48px;+}+.icon-indent-right {+  background-position: -408px -48px;+}+.icon-facetime-video {+  background-position: -432px -48px;+}+.icon-picture {+  background-position: -456px -48px;+}+.icon-pencil {+  background-position: 0 -72px;+}+.icon-map-marker {+  background-position: -24px -72px;+}+.icon-adjust {+  background-position: -48px -72px;+}+.icon-tint {+  background-position: -72px -72px;+}+.icon-edit {+  background-position: -96px -72px;+}+.icon-share {+  background-position: -120px -72px;+}+.icon-check {+  background-position: -144px -72px;+}+.icon-move {+  background-position: -168px -72px;+}+.icon-step-backward {+  background-position: -192px -72px;+}+.icon-fast-backward {+  background-position: -216px -72px;+}+.icon-backward {+  background-position: -240px -72px;+}+.icon-play {+  background-position: -264px -72px;+}+.icon-pause {+  background-position: -288px -72px;+}+.icon-stop {+  background-position: -312px -72px;+}+.icon-forward {+  background-position: -336px -72px;+}+.icon-fast-forward {+  background-position: -360px -72px;+}+.icon-step-forward {+  background-position: -384px -72px;+}+.icon-eject {+  background-position: -408px -72px;+}+.icon-chevron-left {+  background-position: -432px -72px;+}+.icon-chevron-right {+  background-position: -456px -72px;+}+.icon-plus-sign {+  background-position: 0 -96px;+}+.icon-minus-sign {+  background-position: -24px -96px;+}+.icon-remove-sign {+  background-position: -48px -96px;+}+.icon-ok-sign {+  background-position: -72px -96px;+}+.icon-question-sign {+  background-position: -96px -96px;+}+.icon-info-sign {+  background-position: -120px -96px;+}+.icon-screenshot {+  background-position: -144px -96px;+}+.icon-remove-circle {+  background-position: -168px -96px;+}+.icon-ok-circle {+  background-position: -192px -96px;+}+.icon-ban-circle {+  background-position: -216px -96px;+}+.icon-arrow-left {+  background-position: -240px -96px;+}+.icon-arrow-right {+  background-position: -264px -96px;+}+.icon-arrow-up {+  background-position: -289px -96px;+}+.icon-arrow-down {+  background-position: -312px -96px;+}+.icon-share-alt {+  background-position: -336px -96px;+}+.icon-resize-full {+  background-position: -360px -96px;+}+.icon-resize-small {+  background-position: -384px -96px;+}+.icon-plus {+  background-position: -408px -96px;+}+.icon-minus {+  background-position: -433px -96px;+}+.icon-asterisk {+  background-position: -456px -96px;+}+.icon-exclamation-sign {+  background-position: 0 -120px;+}+.icon-gift {+  background-position: -24px -120px;+}+.icon-leaf {+  background-position: -48px -120px;+}+.icon-fire {+  background-position: -72px -120px;+}+.icon-eye-open {+  background-position: -96px -120px;+}+.icon-eye-close {+  background-position: -120px -120px;+}+.icon-warning-sign {+  background-position: -144px -120px;+}+.icon-plane {+  background-position: -168px -120px;+}+.icon-calendar {+  background-position: -192px -120px;+}+.icon-random {+  background-position: -216px -120px;+}+.icon-comment {+  background-position: -240px -120px;+}+.icon-magnet {+  background-position: -264px -120px;+}+.icon-chevron-up {+  background-position: -288px -120px;+}+.icon-chevron-down {+  background-position: -313px -119px;+}+.icon-retweet {+  background-position: -336px -120px;+}+.icon-shopping-cart {+  background-position: -360px -120px;+}+.icon-folder-close {+  background-position: -384px -120px;+}+.icon-folder-open {+  background-position: -408px -120px;+}+.icon-resize-vertical {+  background-position: -432px -119px;+}+.icon-resize-horizontal {+  background-position: -456px -118px;+}+.dropdown {+  position: relative;+}+.dropdown-toggle {+  *margin-bottom: -3px;+}+.dropdown-toggle:active,+.open .dropdown-toggle {+  outline: 0;+}+.caret {+  display: inline-block;+  width: 0;+  height: 0;+  vertical-align: top;+  border-left: 4px solid transparent;+  border-right: 4px solid transparent;+  border-top: 4px solid #000000;+  opacity: 0.3;+  filter: alpha(opacity=30);+  content: "";+}+.dropdown .caret {+  margin-top: 8px;+  margin-left: 2px;+}+.dropdown:hover .caret,+.open.dropdown .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.dropdown-menu {+  position: absolute;+  top: 100%;+  left: 0;+  z-index: 1000;+  float: left;+  display: none;+  min-width: 160px;+  padding: 4px 0;+  margin: 0;+  list-style: none;+  background-color: #ffffff;+  border-color: #ccc;+  border-color: rgba(0, 0, 0, 0.2);+  border-style: solid;+  border-width: 1px;+  -webkit-border-radius: 0 0 5px 5px;+  -moz-border-radius: 0 0 5px 5px;+  border-radius: 0 0 5px 5px;+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding;+  background-clip: padding-box;+  *border-right-width: 2px;+  *border-bottom-width: 2px;+}+.dropdown-menu.pull-right {+  right: 0;+  left: auto;+}+.dropdown-menu .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.dropdown-menu a {+  display: block;+  padding: 3px 15px;+  clear: both;+  font-weight: normal;+  line-height: 18px;+  color: #333333;+  white-space: nowrap;+}+.dropdown-menu li > a:hover,+.dropdown-menu .active > a,+.dropdown-menu .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #0088cc;+}+.dropdown.open {+  *z-index: 1000;+}+.dropdown.open .dropdown-toggle {+  color: #ffffff;+  background: #ccc;+  background: rgba(0, 0, 0, 0.3);+}+.dropdown.open .dropdown-menu {+  display: block;+}+.pull-right .dropdown-menu {+  left: auto;+  right: 0;+}+.dropup .caret,+.navbar-fixed-bottom .dropdown .caret {+  border-top: 0;+  border-bottom: 4px solid #000000;+  content: "\2191";+}+.dropup .dropdown-menu,+.navbar-fixed-bottom .dropdown .dropdown-menu {+  top: auto;+  bottom: 100%;+  margin-bottom: 1px;+}+.typeahead {+  margin-top: 2px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.well {+  min-height: 20px;+  padding: 19px;+  margin-bottom: 20px;+  background-color: #f5f5f5;+  border: 1px solid #eee;+  border: 1px solid rgba(0, 0, 0, 0.05);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+}+.well blockquote {+  border-color: #ddd;+  border-color: rgba(0, 0, 0, 0.15);+}+.well-large {+  padding: 24px;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.well-small {+  padding: 9px;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.fade {+  -webkit-transition: opacity 0.15s linear;+  -moz-transition: opacity 0.15s linear;+  -ms-transition: opacity 0.15s linear;+  -o-transition: opacity 0.15s linear;+  transition: opacity 0.15s linear;+  opacity: 0;+}+.fade.in {+  opacity: 1;+}+.collapse {+  -webkit-transition: height 0.35s ease;+  -moz-transition: height 0.35s ease;+  -ms-transition: height 0.35s ease;+  -o-transition: height 0.35s ease;+  transition: height 0.35s ease;+  position: relative;+  overflow: hidden;+  height: 0;+}+.collapse.in {+  height: auto;+}+.close {+  float: right;+  font-size: 20px;+  font-weight: bold;+  line-height: 18px;+  color: #000000;+  text-shadow: 0 1px 0 #ffffff;+  opacity: 0.2;+  filter: alpha(opacity=20);+}+.close:hover {+  color: #000000;+  text-decoration: none;+  opacity: 0.4;+  filter: alpha(opacity=40);+  cursor: pointer;+}+.btn {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  padding: 4px 10px 4px;+  margin-bottom: 0;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  text-align: center;+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);+  vertical-align: middle;+  background-color: #f5f5f5;+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: linear-gradient(top, #ffffff, #e6e6e6);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  border: 1px solid #cccccc;+  border-bottom-color: #b3b3b3;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  cursor: pointer;+  *margin-left: .3em;+}+.btn:hover,+.btn:active,+.btn.active,+.btn.disabled,+.btn[disabled] {+  background-color: #e6e6e6;+}+.btn:active,+.btn.active {+  background-color: #cccccc \9;+}+.btn:first-child {+  *margin-left: 0;+}+.btn:hover {+  color: #333333;+  text-decoration: none;+  background-color: #e6e6e6;+  background-position: 0 -15px;+  -webkit-transition: background-position 0.1s linear;+  -moz-transition: background-position 0.1s linear;+  -ms-transition: background-position 0.1s linear;+  -o-transition: background-position 0.1s linear;+  transition: background-position 0.1s linear;+}+.btn:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.btn.active,+.btn:active {+  background-image: none;+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  background-color: #e6e6e6;+  background-color: #d9d9d9 \9;+  outline: 0;+}+.btn.disabled,+.btn[disabled] {+  cursor: default;+  background-image: none;+  background-color: #e6e6e6;+  opacity: 0.65;+  filter: alpha(opacity=65);+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+.btn-large {+  padding: 9px 14px;+  font-size: 15px;+  line-height: normal;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-large [class^="icon-"] {+  margin-top: 1px;+}+.btn-small {+  padding: 5px 9px;+  font-size: 11px;+  line-height: 16px;+}+.btn-small [class^="icon-"] {+  margin-top: -1px;+}+.btn-mini {+  padding: 2px 6px;+  font-size: 11px;+  line-height: 14px;+}+.btn-primary,+.btn-primary:hover,+.btn-warning,+.btn-warning:hover,+.btn-danger,+.btn-danger:hover,+.btn-success,+.btn-success:hover,+.btn-info,+.btn-info:hover,+.btn-inverse,+.btn-inverse:hover {+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  color: #ffffff;+}+.btn-primary.active,+.btn-warning.active,+.btn-danger.active,+.btn-success.active,+.btn-info.active,+.btn-inverse.active {+  color: rgba(255, 255, 255, 0.75);+}+.btn-primary {+  background-color: #0074cc;+  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);+  background-image: -ms-linear-gradient(top, #0088cc, #0055cc);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));+  background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);+  background-image: -o-linear-gradient(top, #0088cc, #0055cc);+  background-image: linear-gradient(top, #0088cc, #0055cc);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);+  border-color: #0055cc #0055cc #003580;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-primary:hover,+.btn-primary:active,+.btn-primary.active,+.btn-primary.disabled,+.btn-primary[disabled] {+  background-color: #0055cc;+}+.btn-primary:active,+.btn-primary.active {+  background-color: #004099 \9;+}+.btn-warning {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+  border-color: #f89406 #f89406 #ad6704;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-warning:hover,+.btn-warning:active,+.btn-warning.active,+.btn-warning.disabled,+.btn-warning[disabled] {+  background-color: #f89406;+}+.btn-warning:active,+.btn-warning.active {+  background-color: #c67605 \9;+}+.btn-danger {+  background-color: #da4f49;+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: linear-gradient(top, #ee5f5b, #bd362f);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);+  border-color: #bd362f #bd362f #802420;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-danger:hover,+.btn-danger:active,+.btn-danger.active,+.btn-danger.disabled,+.btn-danger[disabled] {+  background-color: #bd362f;+}+.btn-danger:active,+.btn-danger.active {+  background-color: #942a25 \9;+}+.btn-success {+  background-color: #5bb75b;+  background-image: -moz-linear-gradient(top, #62c462, #51a351);+  background-image: -ms-linear-gradient(top, #62c462, #51a351);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);+  background-image: -o-linear-gradient(top, #62c462, #51a351);+  background-image: linear-gradient(top, #62c462, #51a351);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);+  border-color: #51a351 #51a351 #387038;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-success:hover,+.btn-success:active,+.btn-success.active,+.btn-success.disabled,+.btn-success[disabled] {+  background-color: #51a351;+}+.btn-success:active,+.btn-success.active {+  background-color: #408140 \9;+}+.btn-info {+  background-color: #49afcd;+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: linear-gradient(top, #5bc0de, #2f96b4);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);+  border-color: #2f96b4 #2f96b4 #1f6377;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-info:hover,+.btn-info:active,+.btn-info.active,+.btn-info.disabled,+.btn-info[disabled] {+  background-color: #2f96b4;+}+.btn-info:active,+.btn-info.active {+  background-color: #24748c \9;+}+.btn-inverse {+  background-color: #414141;+  background-image: -moz-linear-gradient(top, #555555, #222222);+  background-image: -ms-linear-gradient(top, #555555, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));+  background-image: -webkit-linear-gradient(top, #555555, #222222);+  background-image: -o-linear-gradient(top, #555555, #222222);+  background-image: linear-gradient(top, #555555, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-inverse:hover,+.btn-inverse:active,+.btn-inverse.active,+.btn-inverse.disabled,+.btn-inverse[disabled] {+  background-color: #222222;+}+.btn-inverse:active,+.btn-inverse.active {+  background-color: #080808 \9;+}+button.btn,+input[type="submit"].btn {+  *padding-top: 2px;+  *padding-bottom: 2px;+}+button.btn::-moz-focus-inner,+input[type="submit"].btn::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button.btn.btn-large,+input[type="submit"].btn.btn-large {+  *padding-top: 7px;+  *padding-bottom: 7px;+}+button.btn.btn-small,+input[type="submit"].btn.btn-small {+  *padding-top: 3px;+  *padding-bottom: 3px;+}+button.btn.btn-mini,+input[type="submit"].btn.btn-mini {+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group {+  position: relative;+  *zoom: 1;+  *margin-left: .3em;+}+.btn-group:before,+.btn-group:after {+  display: table;+  content: "";+}+.btn-group:after {+  clear: both;+}+.btn-group:first-child {+  *margin-left: 0;+}+.btn-group + .btn-group {+  margin-left: 5px;+}+.btn-toolbar {+  margin-top: 9px;+  margin-bottom: 9px;+}+.btn-toolbar .btn-group {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+}+.btn-group .btn {+  position: relative;+  float: left;+  margin-left: -1px;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.btn-group .btn:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 4px;+  -moz-border-radius-topleft: 4px;+  border-top-left-radius: 4px;+  -webkit-border-bottom-left-radius: 4px;+  -moz-border-radius-bottomleft: 4px;+  border-bottom-left-radius: 4px;+}+.btn-group .btn:last-child,+.btn-group .dropdown-toggle {+  -webkit-border-top-right-radius: 4px;+  -moz-border-radius-topright: 4px;+  border-top-right-radius: 4px;+  -webkit-border-bottom-right-radius: 4px;+  -moz-border-radius-bottomright: 4px;+  border-bottom-right-radius: 4px;+}+.btn-group .btn.large:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 6px;+  -moz-border-radius-topleft: 6px;+  border-top-left-radius: 6px;+  -webkit-border-bottom-left-radius: 6px;+  -moz-border-radius-bottomleft: 6px;+  border-bottom-left-radius: 6px;+}+.btn-group .btn.large:last-child,+.btn-group .large.dropdown-toggle {+  -webkit-border-top-right-radius: 6px;+  -moz-border-radius-topright: 6px;+  border-top-right-radius: 6px;+  -webkit-border-bottom-right-radius: 6px;+  -moz-border-radius-bottomright: 6px;+  border-bottom-right-radius: 6px;+}+.btn-group .btn:hover,+.btn-group .btn:focus,+.btn-group .btn:active,+.btn-group .btn.active {+  z-index: 2;+}+.btn-group .dropdown-toggle:active,+.btn-group.open .dropdown-toggle {+  outline: 0;+}+.btn-group .dropdown-toggle {+  padding-left: 8px;+  padding-right: 8px;+  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  *padding-top: 3px;+  *padding-bottom: 3px;+}+.btn-group .btn-mini.dropdown-toggle {+  padding-left: 5px;+  padding-right: 5px;+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group .btn-small.dropdown-toggle {+  *padding-top: 4px;+  *padding-bottom: 4px;+}+.btn-group .btn-large.dropdown-toggle {+  padding-left: 12px;+  padding-right: 12px;+}+.btn-group.open {+  *z-index: 1000;+}+.btn-group.open .dropdown-menu {+  display: block;+  margin-top: 1px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-group.open .dropdown-toggle {+  background-image: none;+  -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+}+.btn .caret {+  margin-top: 7px;+  margin-left: 0;+}+.btn:hover .caret,+.open.btn-group .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.btn-mini .caret {+  margin-top: 5px;+}+.btn-small .caret {+  margin-top: 6px;+}+.btn-large .caret {+  margin-top: 6px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.btn-primary .caret,+.btn-warning .caret,+.btn-danger .caret,+.btn-info .caret,+.btn-success .caret,+.btn-inverse .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 0.75;+  filter: alpha(opacity=75);+}+.alert {+  padding: 8px 35px 8px 14px;+  margin-bottom: 18px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  background-color: #fcf8e3;+  border: 1px solid #fbeed5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  color: #c09853;+}+.alert-heading {+  color: inherit;+}+.alert .close {+  position: relative;+  top: -2px;+  right: -21px;+  line-height: 18px;+}+.alert-success {+  background-color: #dff0d8;+  border-color: #d6e9c6;+  color: #468847;+}+.alert-danger,+.alert-error {+  background-color: #f2dede;+  border-color: #eed3d7;+  color: #b94a48;+}+.alert-info {+  background-color: #d9edf7;+  border-color: #bce8f1;+  color: #3a87ad;+}+.alert-block {+  padding-top: 14px;+  padding-bottom: 14px;+}+.alert-block > p,+.alert-block > ul {+  margin-bottom: 0;+}+.alert-block p + p {+  margin-top: 5px;+}+.nav {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+}+.nav > li > a {+  display: block;+}+.nav > li > a:hover {+  text-decoration: none;+  background-color: #eeeeee;+}+.nav .nav-header {+  display: block;+  padding: 3px 15px;+  font-size: 11px;+  font-weight: bold;+  line-height: 18px;+  color: #999999;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  text-transform: uppercase;+}+.nav li + .nav-header {+  margin-top: 9px;+}+.nav-list {+  padding-left: 15px;+  padding-right: 15px;+  margin-bottom: 0;+}+.nav-list > li > a,+.nav-list .nav-header {+  margin-left: -15px;+  margin-right: -15px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+}+.nav-list > li > a {+  padding: 3px 15px;+}+.nav-list > .active > a,+.nav-list > .active > a:hover {+  color: #ffffff;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);+  background-color: #0088cc;+}+.nav-list [class^="icon-"] {+  margin-right: 2px;+}+.nav-list .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.nav-tabs,+.nav-pills {+  *zoom: 1;+}+.nav-tabs:before,+.nav-pills:before,+.nav-tabs:after,+.nav-pills:after {+  display: table;+  content: "";+}+.nav-tabs:after,+.nav-pills:after {+  clear: both;+}+.nav-tabs > li,+.nav-pills > li {+  float: left;+}+.nav-tabs > li > a,+.nav-pills > li > a {+  padding-right: 12px;+  padding-left: 12px;+  margin-right: 2px;+  line-height: 14px;+}+.nav-tabs {+  border-bottom: 1px solid #ddd;+}+.nav-tabs > li {+  margin-bottom: -1px;+}+.nav-tabs > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  line-height: 18px;+  border: 1px solid transparent;+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #dddddd;+}+.nav-tabs > .active > a,+.nav-tabs > .active > a:hover {+  color: #555555;+  background-color: #ffffff;+  border: 1px solid #ddd;+  border-bottom-color: transparent;+  cursor: default;+}+.nav-pills > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  margin-top: 2px;+  margin-bottom: 2px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.nav-pills > .active > a,+.nav-pills > .active > a:hover {+  color: #ffffff;+  background-color: #0088cc;+}+.nav-stacked > li {+  float: none;+}+.nav-stacked > li > a {+  margin-right: 0;+}+.nav-tabs.nav-stacked {+  border-bottom: 0;+}+.nav-tabs.nav-stacked > li > a {+  border: 1px solid #ddd;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.nav-tabs.nav-stacked > li:first-child > a {+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs.nav-stacked > li:last-child > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.nav-tabs.nav-stacked > li > a:hover {+  border-color: #ddd;+  z-index: 2;+}+.nav-pills.nav-stacked > li > a {+  margin-bottom: 3px;+}+.nav-pills.nav-stacked > li:last-child > a {+  margin-bottom: 1px;+}+.nav-tabs .dropdown-menu,+.nav-pills .dropdown-menu {+  margin-top: 1px;+  border-width: 1px;+}+.nav-pills .dropdown-menu {+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.nav-tabs .dropdown-toggle .caret,+.nav-pills .dropdown-toggle .caret {+  border-top-color: #0088cc;+  border-bottom-color: #0088cc;+  margin-top: 6px;+}+.nav-tabs .dropdown-toggle:hover .caret,+.nav-pills .dropdown-toggle:hover .caret {+  border-top-color: #005580;+  border-bottom-color: #005580;+}+.nav-tabs .active .dropdown-toggle .caret,+.nav-pills .active .dropdown-toggle .caret {+  border-top-color: #333333;+  border-bottom-color: #333333;+}+.nav > .dropdown.active > a:hover {+  color: #000000;+  cursor: pointer;+}+.nav-tabs .open .dropdown-toggle,+.nav-pills .open .dropdown-toggle,+.nav > .open.active > a:hover {+  color: #ffffff;+  background-color: #999999;+  border-color: #999999;+}+.nav .open .caret,+.nav .open.active .caret,+.nav .open a:hover .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 1;+  filter: alpha(opacity=100);+}+.tabs-stacked .open > a:hover {+  border-color: #999999;+}+.tabbable {+  *zoom: 1;+}+.tabbable:before,+.tabbable:after {+  display: table;+  content: "";+}+.tabbable:after {+  clear: both;+}+.tab-content {+  display: table;+  width: 100%;+}+.tabs-below .nav-tabs,+.tabs-right .nav-tabs,+.tabs-left .nav-tabs {+  border-bottom: 0;+}+.tab-content > .tab-pane,+.pill-content > .pill-pane {+  display: none;+}+.tab-content > .active,+.pill-content > .active {+  display: block;+}+.tabs-below .nav-tabs {+  border-top: 1px solid #ddd;+}+.tabs-below .nav-tabs > li {+  margin-top: -1px;+  margin-bottom: 0;+}+.tabs-below .nav-tabs > li > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.tabs-below .nav-tabs > li > a:hover {+  border-bottom-color: transparent;+  border-top-color: #ddd;+}+.tabs-below .nav-tabs .active > a,+.tabs-below .nav-tabs .active > a:hover {+  border-color: transparent #ddd #ddd #ddd;+}+.tabs-left .nav-tabs > li,+.tabs-right .nav-tabs > li {+  float: none;+}+.tabs-left .nav-tabs > li > a,+.tabs-right .nav-tabs > li > a {+  min-width: 74px;+  margin-right: 0;+  margin-bottom: 3px;+}+.tabs-left .nav-tabs {+  float: left;+  margin-right: 19px;+  border-right: 1px solid #ddd;+}+.tabs-left .nav-tabs > li > a {+  margin-right: -1px;+  -webkit-border-radius: 4px 0 0 4px;+  -moz-border-radius: 4px 0 0 4px;+  border-radius: 4px 0 0 4px;+}+.tabs-left .nav-tabs > li > a:hover {+  border-color: #eeeeee #dddddd #eeeeee #eeeeee;+}+.tabs-left .nav-tabs .active > a,+.tabs-left .nav-tabs .active > a:hover {+  border-color: #ddd transparent #ddd #ddd;+  *border-right-color: #ffffff;+}+.tabs-right .nav-tabs {+  float: right;+  margin-left: 19px;+  border-left: 1px solid #ddd;+}+.tabs-right .nav-tabs > li > a {+  margin-left: -1px;+  -webkit-border-radius: 0 4px 4px 0;+  -moz-border-radius: 0 4px 4px 0;+  border-radius: 0 4px 4px 0;+}+.tabs-right .nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #eeeeee #dddddd;+}+.tabs-right .nav-tabs .active > a,+.tabs-right .nav-tabs .active > a:hover {+  border-color: #ddd #ddd #ddd transparent;+  *border-left-color: #ffffff;+}+.navbar {+  *position: relative;+  *z-index: 2;+  overflow: visible;+  margin-bottom: 18px;+}+.navbar-inner {+  padding-left: 20px;+  padding-right: 20px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+}+.navbar .container {+  width: auto;+}+.btn-navbar {+  display: none;+  float: right;+  padding: 7px 10px;+  margin-left: 5px;+  margin-right: 5px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+}+.btn-navbar:hover,+.btn-navbar:active,+.btn-navbar.active,+.btn-navbar.disabled,+.btn-navbar[disabled] {+  background-color: #222222;+}+.btn-navbar:active,+.btn-navbar.active {+  background-color: #080808 \9;+}+.btn-navbar .icon-bar {+  display: block;+  width: 18px;+  height: 2px;+  background-color: #f5f5f5;+  -webkit-border-radius: 1px;+  -moz-border-radius: 1px;+  border-radius: 1px;+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+}+.btn-navbar .icon-bar + .icon-bar {+  margin-top: 3px;+}+.nav-collapse.collapse {+  height: auto;+}+.navbar {+  color: #999999;+}+.navbar .brand:hover {+  text-decoration: none;+}+.navbar .brand {+  float: left;+  display: block;+  padding: 8px 20px 12px;+  margin-left: -20px;+  font-size: 20px;+  font-weight: 200;+  line-height: 1;+  color: #ffffff;+}+.navbar .navbar-text {+  margin-bottom: 0;+  line-height: 40px;+}+.navbar .btn,+.navbar .btn-group {+  margin-top: 5px;+}+.navbar .btn-group .btn {+  margin-top: 0;+}+.navbar-form {+  margin-bottom: 0;+  *zoom: 1;+}+.navbar-form:before,+.navbar-form:after {+  display: table;+  content: "";+}+.navbar-form:after {+  clear: both;+}+.navbar-form input,+.navbar-form select,+.navbar-form .radio,+.navbar-form .checkbox {+  margin-top: 5px;+}+.navbar-form input,+.navbar-form select {+  display: inline-block;+  margin-bottom: 0;+}+.navbar-form input[type="image"],+.navbar-form input[type="checkbox"],+.navbar-form input[type="radio"] {+  margin-top: 3px;+}+.navbar-form .input-append,+.navbar-form .input-prepend {+  margin-top: 6px;+  white-space: nowrap;+}+.navbar-form .input-append input,+.navbar-form .input-prepend input {+  margin-top: 0;+}+.navbar-search {+  position: relative;+  float: left;+  margin-top: 6px;+  margin-bottom: 0;+}+.navbar-search .search-query {+  padding: 4px 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  font-weight: normal;+  line-height: 1;+  color: #ffffff;+  background-color: #626262;+  border: 1px solid #151515;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -webkit-transition: none;+  -moz-transition: none;+  -ms-transition: none;+  -o-transition: none;+  transition: none;+}+.navbar-search .search-query:-moz-placeholder {+  color: #cccccc;+}+.navbar-search .search-query::-webkit-input-placeholder {+  color: #cccccc;+}+.navbar-search .search-query:focus,+.navbar-search .search-query.focused {+  padding: 5px 10px;+  color: #333333;+  text-shadow: 0 1px 0 #ffffff;+  background-color: #ffffff;+  border: 0;+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  outline: 0;+}+.navbar-fixed-top,+.navbar-fixed-bottom {+  position: fixed;+  right: 0;+  left: 0;+  z-index: 1030;+  margin-bottom: 0;+}+.navbar-fixed-top .navbar-inner,+.navbar-fixed-bottom .navbar-inner {+  padding-left: 0;+  padding-right: 0;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.navbar-fixed-top {+  top: 0;+}+.navbar-fixed-bottom {+  bottom: 0;+}+.navbar .nav {+  position: relative;+  left: 0;+  display: block;+  float: left;+  margin: 0 10px 0 0;+}+.navbar .nav.pull-right {+  float: right;+}+.navbar .nav > li {+  display: block;+  float: left;+}+.navbar .nav > li > a {+  float: none;+  padding: 10px 10px 11px;+  line-height: 19px;+  color: #999999;+  text-decoration: none;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+}+.navbar .nav > li > a:hover {+  background-color: transparent;+  color: #ffffff;+  text-decoration: none;+}+.navbar .nav .active > a,+.navbar .nav .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #222222;+}+.navbar .divider-vertical {+  height: 40px;+  width: 1px;+  margin: 0 9px;+  overflow: hidden;+  background-color: #222222;+  border-right: 1px solid #333333;+}+.navbar .nav.pull-right {+  margin-left: 10px;+  margin-right: 0;+}+.navbar .dropdown-menu {+  margin-top: 1px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.navbar .dropdown-menu:before {+  content: '';+  display: inline-block;+  border-left: 7px solid transparent;+  border-right: 7px solid transparent;+  border-bottom: 7px solid #ccc;+  border-bottom-color: rgba(0, 0, 0, 0.2);+  position: absolute;+  top: -7px;+  left: 9px;+}+.navbar .dropdown-menu:after {+  content: '';+  display: inline-block;+  border-left: 6px solid transparent;+  border-right: 6px solid transparent;+  border-bottom: 6px solid #ffffff;+  position: absolute;+  top: -6px;+  left: 10px;+}+.navbar-fixed-bottom .dropdown-menu:before {+  border-top: 7px solid #ccc;+  border-top-color: rgba(0, 0, 0, 0.2);+  border-bottom: 0;+  bottom: -7px;+  top: auto;+}+.navbar-fixed-bottom .dropdown-menu:after {+  border-top: 6px solid #ffffff;+  border-bottom: 0;+  bottom: -6px;+  top: auto;+}+.navbar .nav .dropdown-toggle .caret,+.navbar .nav .open.dropdown .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+}+.navbar .nav .active .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.navbar .nav .open > .dropdown-toggle,+.navbar .nav .active > .dropdown-toggle,+.navbar .nav .open.active > .dropdown-toggle {+  background-color: transparent;+}+.navbar .nav .active > .dropdown-toggle:hover {+  color: #ffffff;+}+.navbar .nav.pull-right .dropdown-menu,+.navbar .nav .dropdown-menu.pull-right {+  left: auto;+  right: 0;+}+.navbar .nav.pull-right .dropdown-menu:before,+.navbar .nav .dropdown-menu.pull-right:before {+  left: auto;+  right: 12px;+}+.navbar .nav.pull-right .dropdown-menu:after,+.navbar .nav .dropdown-menu.pull-right:after {+  left: auto;+  right: 13px;+}+.breadcrumb {+  padding: 7px 14px;+  margin: 0 0 18px;+  list-style: none;+  background-color: #fbfbfb;+  background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));+  background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: linear-gradient(top, #ffffff, #f5f5f5);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);+  border: 1px solid #ddd;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+}+.breadcrumb li {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  text-shadow: 0 1px 0 #ffffff;+}+.breadcrumb .divider {+  padding: 0 5px;+  color: #999999;+}+.breadcrumb .active a {+  color: #333333;+}+.pagination {+  height: 36px;+  margin: 18px 0;+}+.pagination ul {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  margin-left: 0;+  margin-bottom: 0;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+}+.pagination li {+  display: inline;+}+.pagination a {+  float: left;+  padding: 0 14px;+  line-height: 34px;+  text-decoration: none;+  border: 1px solid #ddd;+  border-left-width: 0;+}+.pagination a:hover,+.pagination .active a {+  background-color: #f5f5f5;+}+.pagination .active a {+  color: #999999;+  cursor: default;+}+.pagination .disabled span,+.pagination .disabled a,+.pagination .disabled a:hover {+  color: #999999;+  background-color: transparent;+  cursor: default;+}+.pagination li:first-child a {+  border-left-width: 1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.pagination li:last-child a {+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.pagination-centered {+  text-align: center;+}+.pagination-right {+  text-align: right;+}+.pager {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+  text-align: center;+  *zoom: 1;+}+.pager:before,+.pager:after {+  display: table;+  content: "";+}+.pager:after {+  clear: both;+}+.pager li {+  display: inline;+}+.pager a {+  display: inline-block;+  padding: 5px 14px;+  background-color: #fff;+  border: 1px solid #ddd;+  -webkit-border-radius: 15px;+  -moz-border-radius: 15px;+  border-radius: 15px;+}+.pager a:hover {+  text-decoration: none;+  background-color: #f5f5f5;+}+.pager .next a {+  float: right;+}+.pager .previous a {+  float: left;+}+.pager .disabled a,+.pager .disabled a:hover {+  color: #999999;+  background-color: #fff;+  cursor: default;+}+.modal-open .dropdown-menu {+  z-index: 2050;+}+.modal-open .dropdown.open {+  *z-index: 2050;+}+.modal-open .popover {+  z-index: 2060;+}+.modal-open .tooltip {+  z-index: 2070;+}+.modal-backdrop {+  position: fixed;+  top: 0;+  right: 0;+  bottom: 0;+  left: 0;+  z-index: 1040;+  background-color: #000000;+}+.modal-backdrop.fade {+  opacity: 0;+}+.modal-backdrop,+.modal-backdrop.fade.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.modal {+  position: fixed;+  top: 50%;+  left: 50%;+  z-index: 1050;+  overflow: auto;+  width: 560px;+  margin: -250px 0 0 -280px;+  background-color: #ffffff;+  border: 1px solid #999;+  border: 1px solid rgba(0, 0, 0, 0.3);+  *border: 1px solid #999;+  /* IE6-7 */++  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.modal.fade {+  -webkit-transition: opacity .3s linear, top .3s ease-out;+  -moz-transition: opacity .3s linear, top .3s ease-out;+  -ms-transition: opacity .3s linear, top .3s ease-out;+  -o-transition: opacity .3s linear, top .3s ease-out;+  transition: opacity .3s linear, top .3s ease-out;+  top: -25%;+}+.modal.fade.in {+  top: 50%;+}+.modal-header {+  padding: 9px 15px;+  border-bottom: 1px solid #eee;+}+.modal-header .close {+  margin-top: 2px;+}+.modal-body {+  overflow-y: auto;+  max-height: 400px;+  padding: 15px;+}+.modal-form {+  margin-bottom: 0;+}+.modal-footer {+  padding: 14px 15px 15px;+  margin-bottom: 0;+  text-align: right;+  background-color: #f5f5f5;+  border-top: 1px solid #ddd;+  -webkit-border-radius: 0 0 6px 6px;+  -moz-border-radius: 0 0 6px 6px;+  border-radius: 0 0 6px 6px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+  *zoom: 1;+}+.modal-footer:before,+.modal-footer:after {+  display: table;+  content: "";+}+.modal-footer:after {+  clear: both;+}+.modal-footer .btn + .btn {+  margin-left: 5px;+  margin-bottom: 0;+}+.modal-footer .btn-group .btn + .btn {+  margin-left: -1px;+}+.tooltip {+  position: absolute;+  z-index: 1020;+  display: block;+  visibility: visible;+  padding: 5px;+  font-size: 11px;+  opacity: 0;+  filter: alpha(opacity=0);+}+.tooltip.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.tooltip.top {+  margin-top: -2px;+}+.tooltip.right {+  margin-left: 2px;+}+.tooltip.bottom {+  margin-top: 2px;+}+.tooltip.left {+  margin-left: -2px;+}+.tooltip.top .tooltip-arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.tooltip.left .tooltip-arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.tooltip.bottom .tooltip-arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.tooltip.right .tooltip-arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.tooltip-inner {+  max-width: 200px;+  padding: 3px 8px;+  color: #ffffff;+  text-align: center;+  text-decoration: none;+  background-color: #000000;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.tooltip-arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover {+  position: absolute;+  top: 0;+  left: 0;+  z-index: 1010;+  display: none;+  padding: 5px;+}+.popover.top {+  margin-top: -5px;+}+.popover.right {+  margin-left: 5px;+}+.popover.bottom {+  margin-top: 5px;+}+.popover.left {+  margin-left: -5px;+}+.popover.top .arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.popover.right .arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.popover.bottom .arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.popover.left .arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.popover .arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover-inner {+  padding: 3px;+  width: 280px;+  overflow: hidden;+  background: #000000;+  background: rgba(0, 0, 0, 0.8);+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+}+.popover-title {+  padding: 9px 15px;+  line-height: 1;+  background-color: #f5f5f5;+  border-bottom: 1px solid #eee;+  -webkit-border-radius: 3px 3px 0 0;+  -moz-border-radius: 3px 3px 0 0;+  border-radius: 3px 3px 0 0;+}+.popover-content {+  padding: 14px;+  background-color: #ffffff;+  -webkit-border-radius: 0 0 3px 3px;+  -moz-border-radius: 0 0 3px 3px;+  border-radius: 0 0 3px 3px;+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.popover-content p,+.popover-content ul,+.popover-content ol {+  margin-bottom: 0;+}+.thumbnails {+  margin-left: -20px;+  list-style: none;+  *zoom: 1;+}+.thumbnails:before,+.thumbnails:after {+  display: table;+  content: "";+}+.thumbnails:after {+  clear: both;+}+.thumbnails > li {+  float: left;+  margin: 0 0 18px 20px;+}+.thumbnail {+  display: block;+  padding: 4px;+  line-height: 1;+  border: 1px solid #ddd;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+}+a.thumbnail:hover {+  border-color: #0088cc;+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+}+.thumbnail > img {+  display: block;+  max-width: 100%;+  margin-left: auto;+  margin-right: auto;+}+.thumbnail .caption {+  padding: 9px;+}+.label {+  padding: 1px 4px 2px;+  font-size: 10.998px;+  font-weight: bold;+  line-height: 13px;+  color: #ffffff;+  vertical-align: middle;+  white-space: nowrap;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #999999;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.label:hover {+  color: #ffffff;+  text-decoration: none;+}+.label-important {+  background-color: #b94a48;+}+.label-important:hover {+  background-color: #953b39;+}+.label-warning {+  background-color: #f89406;+}+.label-warning:hover {+  background-color: #c67605;+}+.label-success {+  background-color: #468847;+}+.label-success:hover {+  background-color: #356635;+}+.label-info {+  background-color: #3a87ad;+}+.label-info:hover {+  background-color: #2d6987;+}+.label-inverse {+  background-color: #333333;+}+.label-inverse:hover {+  background-color: #1a1a1a;+}+.badge {+  padding: 1px 9px 2px;+  font-size: 12.025px;+  font-weight: bold;+  white-space: nowrap;+  color: #ffffff;+  background-color: #999999;+  -webkit-border-radius: 9px;+  -moz-border-radius: 9px;+  border-radius: 9px;+}+.badge:hover {+  color: #ffffff;+  text-decoration: none;+  cursor: pointer;+}+.badge-error {+  background-color: #b94a48;+}+.badge-error:hover {+  background-color: #953b39;+}+.badge-warning {+  background-color: #f89406;+}+.badge-warning:hover {+  background-color: #c67605;+}+.badge-success {+  background-color: #468847;+}+.badge-success:hover {+  background-color: #356635;+}+.badge-info {+  background-color: #3a87ad;+}+.badge-info:hover {+  background-color: #2d6987;+}+.badge-inverse {+  background-color: #333333;+}+.badge-inverse:hover {+  background-color: #1a1a1a;+}+@-webkit-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-moz-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-ms-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+.progress {+  overflow: hidden;+  height: 18px;+  margin-bottom: 18px;+  background-color: #f7f7f7;+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.progress .bar {+  width: 0%;+  height: 18px;+  color: #ffffff;+  font-size: 12px;+  text-align: center;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #0e90d2;+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);+  background-image: -ms-linear-gradient(top, #149bdf, #0480be);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);+  background-image: -o-linear-gradient(top, #149bdf, #0480be);+  background-image: linear-gradient(top, #149bdf, #0480be);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+  -webkit-transition: width 0.6s ease;+  -moz-transition: width 0.6s ease;+  -ms-transition: width 0.6s ease;+  -o-transition: width 0.6s ease;+  transition: width 0.6s ease;+}+.progress-striped .bar {+  background-color: #149bdf;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  -webkit-background-size: 40px 40px;+  -moz-background-size: 40px 40px;+  -o-background-size: 40px 40px;+  background-size: 40px 40px;+}+.progress.active .bar {+  -webkit-animation: progress-bar-stripes 2s linear infinite;+  -moz-animation: progress-bar-stripes 2s linear infinite;+  animation: progress-bar-stripes 2s linear infinite;+}+.progress-danger .bar {+  background-color: #dd514c;+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: linear-gradient(top, #ee5f5b, #c43c35);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);+}+.progress-danger.progress-striped .bar {+  background-color: #ee5f5b;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-success .bar {+  background-color: #5eb95e;+  background-image: -moz-linear-gradient(top, #62c462, #57a957);+  background-image: -ms-linear-gradient(top, #62c462, #57a957);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);+  background-image: -o-linear-gradient(top, #62c462, #57a957);+  background-image: linear-gradient(top, #62c462, #57a957);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);+}+.progress-success.progress-striped .bar {+  background-color: #62c462;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-info .bar {+  background-color: #4bb1cf;+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);+  background-image: linear-gradient(top, #5bc0de, #339bb9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);+}+.progress-info.progress-striped .bar {+  background-color: #5bc0de;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-warning .bar {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+}+.progress-warning.progress-striped .bar {+  background-color: #fbb450;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.accordion {+  margin-bottom: 18px;+}+.accordion-group {+  margin-bottom: 2px;+  border: 1px solid #e5e5e5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.accordion-heading {+  border-bottom: 0;+}+.accordion-heading .accordion-toggle {+  display: block;+  padding: 8px 15px;+}+.accordion-inner {+  padding: 9px 15px;+  border-top: 1px solid #e5e5e5;+}+.carousel {+  position: relative;+  margin-bottom: 18px;+  line-height: 1;+}+.carousel-inner {+  overflow: hidden;+  width: 100%;+  position: relative;+}+.carousel .item {+  display: none;+  position: relative;+  -webkit-transition: 0.6s ease-in-out left;+  -moz-transition: 0.6s ease-in-out left;+  -ms-transition: 0.6s ease-in-out left;+  -o-transition: 0.6s ease-in-out left;+  transition: 0.6s ease-in-out left;+}+.carousel .item > img {+  display: block;+  line-height: 1;+}+.carousel .active,+.carousel .next,+.carousel .prev {+  display: block;+}+.carousel .active {+  left: 0;+}+.carousel .next,+.carousel .prev {+  position: absolute;+  top: 0;+  width: 100%;+}+.carousel .next {+  left: 100%;+}+.carousel .prev {+  left: -100%;+}+.carousel .next.left,+.carousel .prev.right {+  left: 0;+}+.carousel .active.left {+  left: -100%;+}+.carousel .active.right {+  left: 100%;+}+.carousel-control {+  position: absolute;+  top: 40%;+  left: 15px;+  width: 40px;+  height: 40px;+  margin-top: -20px;+  font-size: 60px;+  font-weight: 100;+  line-height: 30px;+  color: #ffffff;+  text-align: center;+  background: #222222;+  border: 3px solid #ffffff;+  -webkit-border-radius: 23px;+  -moz-border-radius: 23px;+  border-radius: 23px;+  opacity: 0.5;+  filter: alpha(opacity=50);+}+.carousel-control.right {+  left: auto;+  right: 15px;+}+.carousel-control:hover {+  color: #ffffff;+  text-decoration: none;+  opacity: 0.9;+  filter: alpha(opacity=90);+}+.carousel-caption {+  position: absolute;+  left: 0;+  right: 0;+  bottom: 0;+  padding: 10px 15px 5px;+  background: #333333;+  background: rgba(0, 0, 0, 0.75);+}+.carousel-caption h4,+.carousel-caption p {+  color: #ffffff;+}+.hero-unit {+  padding: 60px;+  margin-bottom: 30px;+  background-color: #eeeeee;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.hero-unit h1 {+  margin-bottom: 0;+  font-size: 60px;+  line-height: 1;+  color: inherit;+  letter-spacing: -1px;+}+.hero-unit p {+  font-size: 18px;+  font-weight: 200;+  line-height: 27px;+  color: inherit;+}+.pull-right {+  float: right;+}+.pull-left {+  float: left;+}+.hide {+  display: none;+}+.show {+  display: block;+}+.invisible {+  visibility: hidden;+}++{-# START_FILE static/css/normalize.css #-}+/*! normalize.css 2011-08-12T17:28 UTC · http://github.com/necolas/normalize.css */++/* =============================================================================+   HTML5 display definitions+   ========================================================================== */++/*+ * Corrects block display not defined in IE6/7/8/9 & FF3+ */++article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+    display: block;+}++/*+ * Corrects inline-block display not defined in IE6/7/8/9 & FF3+ */++audio,+canvas,+video {+    display: inline-block;+    *display: inline;+    *zoom: 1;+}++/*+ * Prevents modern browsers from displaying 'audio' without controls+ */++audio:not([controls]) {+    display: none;+}++/*+ * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4+ * Known issue: no IE6 support+ */++[hidden] {+    display: none;+}+++/* =============================================================================+   Base+   ========================================================================== */++/*+ * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units+ *    http://clagnut.com/blog/348/#c790+ * 2. Keeps page centred in all browsers regardless of content height+ * 3. Prevents iOS text size adjust after orientation change, without disabling user zoom+ *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/+ */++html {+    font-size: 100%; /* 1 */+    overflow-y: scroll; /* 2 */+    -webkit-text-size-adjust: 100%; /* 3 */+    -ms-text-size-adjust: 100%; /* 3 */+}++/*+ * Addresses margins handled incorrectly in IE6/7+ */++body {+    margin: 0;+}++/* + * Addresses font-family inconsistency between 'textarea' and other form elements.+ */++body,+button,+input,+select,+textarea {+    font-family: sans-serif;+}+++/* =============================================================================+   Links+   ========================================================================== */++a {+    color: #00e;+}++a:visited {+    color: #551a8b;+}++/*+ * Addresses outline displayed oddly in Chrome+ */++a:focus {+    outline: thin dotted;+}++/*+ * Improves readability when focused and also mouse hovered in all browsers+ * people.opera.com/patrickl/experiments/keyboard/test+ */++a:hover,+a:active {+    outline: 0;+}+++/* =============================================================================+   Typography+   ========================================================================== */++/*+ * Addresses styling not present in IE7/8/9, S5, Chrome+ */++abbr[title] {+    border-bottom: 1px dotted;+}++/*+ * Addresses style set to 'bolder' in FF3/4, S4/5, Chrome+*/++b, +strong { +    font-weight: bold; +}++blockquote {+    margin: 1em 40px;+}++/*+ * Addresses styling not present in S5, Chrome+ */++dfn {+    font-style: italic;+}++/*+ * Addresses styling not present in IE6/7/8/9+ */++mark {+    background: #ff0;+    color: #000;+}++/*+ * Corrects font family set oddly in IE6, S4/5, Chrome+ * en.wikipedia.org/wiki/User:Davidgothberg/Test59+ */++pre,+code,+kbd,+samp {+    font-family: monospace, serif;+    _font-family: 'courier new', monospace;+    font-size: 1em;+}++/*+ * Improves readability of pre-formatted text in all browsers+ */++pre {+    white-space: pre;+    white-space: pre-wrap;+    word-wrap: break-word;+}++/*+ * 1. Addresses CSS quotes not supported in IE6/7+ * 2. Addresses quote property not supported in S4+ */++/* 1 */++q {+    quotes: none;+}++/* 2 */++q:before,+q:after {+    content: '';+    content: none;+}++small {+    font-size: 75%;+}++/*+ * Prevents sub and sup affecting line-height in all browsers+ * gist.github.com/413930+ */++sub,+sup {+    font-size: 75%;+    line-height: 0;+    position: relative;+    vertical-align: baseline;+}++sup {+    top: -0.5em;+}++sub {+    bottom: -0.25em;+}+++/* =============================================================================+   Lists+   ========================================================================== */++ul,+ol {+    margin: 1em 0;+    padding: 0 0 0 40px;+}++dd {+    margin: 0 0 0 40px;+}++nav ul,+nav ol {+    list-style: none;+    list-style-image: none;+}+++/* =============================================================================+   Embedded content+   ========================================================================== */++/*+ * 1. Removes border when inside 'a' element in IE6/7/8/9+ * 2. Improves image quality when scaled in IE7+ *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/+ */++img {+    border: 0; /* 1 */+    -ms-interpolation-mode: bicubic; /* 2 */+}++/*+ * Corrects overflow displayed oddly in IE9 + */++svg:not(:root) {+    overflow: hidden;+}+++/* =============================================================================+   Figures+   ========================================================================== */++/*+ * Addresses margin not present in IE6/7/8/9, S5, O11+ */++figure {+    margin: 0;+}+++/* =============================================================================+   Forms+   ========================================================================== */++/*+ * Corrects margin displayed oddly in IE6/7+ */++form {+    margin: 0;+}++/*+ * Define consistent margin and padding+ */++fieldset {+    margin: 0 2px;+    padding: 0.35em 0.625em 0.75em;+}++/*+ * 1. Corrects color not being inherited in IE6/7/8/9+ * 2. Corrects alignment displayed oddly in IE6/7+ */++legend {+    border: 0; /* 1 */+    *margin-left: -7px; /* 2 */+}++/*+ * 1. Corrects font size not being inherited in all browsers+ * 2. Addresses margins set differently in IE6/7, F3/4, S5, Chrome+ * 3. Improves appearance and consistency in all browsers+ */++button,+input,+select,+textarea {+    font-size: 100%; /* 1 */+    margin: 0; /* 2 */+    vertical-align: baseline; /* 3 */+    *vertical-align: middle; /* 3 */+}++/*+ * 1. Addresses FF3/4 setting line-height using !important in the UA stylesheet+ * 2. Corrects inner spacing displayed oddly in IE6/7+ */++button,+input {+    line-height: normal; /* 1 */+    *overflow: visible;  /* 2 */+}++/*+ * Corrects overlap and whitespace issue for buttons and inputs in IE6/7+ * Known issue: reintroduces inner spacing+ */++table button,+table input {+    *overflow: auto;+}++/*+ * 1. Improves usability and consistency of cursor style between image-type 'input' and others+ * 2. Corrects inability to style clickable 'input' types in iOS+ */++button,+html input[type="button"], +input[type="reset"], +input[type="submit"] {+    cursor: pointer; /* 1 */+    -webkit-appearance: button; /* 2 */+}++/*+ * 1. Addresses box sizing set to content-box in IE8/9+ * 2. Addresses excess padding in IE8/9+ */++input[type="checkbox"],+input[type="radio"] {+    box-sizing: border-box; /* 1 */+    padding: 0; /* 2 */+}++/*+ * 1. Addresses appearance set to searchfield in S5, Chrome+ * 2. Addresses box sizing set to border-box in S5, Chrome (include -moz to future-proof)+ */++input[type="search"] {+    -webkit-appearance: textfield; /* 1 */+    -moz-box-sizing: content-box;+    -webkit-box-sizing: content-box; /* 2 */+    box-sizing: content-box;+}++/*+ * Corrects inner padding displayed oddly in S5, Chrome on OSX+ */++input[type="search"]::-webkit-search-decoration {+    -webkit-appearance: none;+}++/*+ * Corrects inner padding and border displayed oddly in FF3/4+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/+ */++button::-moz-focus-inner,+input::-moz-focus-inner {+    border: 0;+    padding: 0;+}++/*+ * 1. Removes default vertical scrollbar in IE6/7/8/9+ * 2. Improves readability and alignment in all browsers+ */++textarea {+    overflow: auto; /* 1 */+    vertical-align: top; /* 2 */+}+++/* =============================================================================+   Tables+   ========================================================================== */++/* + * Remove most spacing between table cells+ */++table {+    border-collapse: collapse;+    border-spacing: 0;+}++{-# START_FILE BASE64 static/img/glyphicons-halflings-white.png #-}+iVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAMAAACY07N7AAAC2VBMVEX///8AAAAAAAD5+fn///8A+AAD////9/f1tbW0AAAD///////////8AAAAAAAD////w8PD+/v729vYAAAD8/PwAAAAAAAD/////+///a2toAAADCwsL09PT////////09PT39/f///8AAAAAAACzs7P9/f0AAADi4uKwsLD////////7++/vn5+f+/v7///8AAADt7e0AAADPz88AAAD9/f329vbt7e37+/vn5+f6+vrh4eGSkpL+/v7+/v7B+wcGYmJh0dHTh4eHQ0NAAAADz8/O7u7uhoaGAgID9/f3U1NRiYmL////V1dX4+Pjc3Nz6+vr7+/vp+6en7+/v9/f39/f3R0dHy8vL8/Pz4+Pjr6+v8/Py2trbGxsbl5eXu7u719fX9/f1lZWVnZ2fw8PC2+trbg4OD39/f6+vrp6enl5eX6+vr4+PjLy8v///+EhITx8fF4eHj39/fd3d35+fnIyMjS0tLs7Oz6++vre3t7i4uLm5ubz8/Obm5uoqKilpaXc3Nzu7u7////x8fHJycnw8PD////////e3t7Gxsa8vLzr+6+vW1tbQ0NDi4uL5+fn09PTi4uLs7Oz19fW0tLT////9/f37+/v8/Pz6+vrm5uYAAADk5OT8/Pz3+9/ewsLCZmZn9/f3s7Oz8/PzBwcHp6en////a2trw8PDw8PD19fXx8fH+/v74+Pj+/v6Ojo7i4uL7++/v5+fnc3Nz////y8vL6+vqfn5/t7e339/f29vbo6Ojz8/P6+vr19fX19fWmpqbLy8v6+vr4+PjT+09Pr6+v6+vrr6+uqqqrz8/Pt7e2ioqLPz8/a2trW1taioqLr6+vi4uL5+flVVVXNzc3////W1tbj+4+Ph4eHq6ur8/Pz////29vb7+/vz8/P09PTMzMz////////5+fn19fX////y8vL9/f0AAADZ2dn8+/Pz7+/v8/Pzp6em/v7/7+/vq6urp6en+/v7////4ck/mAAAA8nRSTlMAGgDUzwIP8SMQ759fCgUv+qfDGFeIYA78fbxNTt98/hsV/BhdD4Q1rRI+vwo3ATxJTD18IoKWasozTETbQ4D40IX5hC6dAMR7R+XydvEsRuotKLkZCATYahkzOxQlFqmbZwJiUhFWy1wyJY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++{-# START_FILE BASE64 static/img/glyphicons-halflings.png #-}+iVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAQAAAAFBIvCAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJ+bWFnZVJlYWR5ccllPAAAA/dpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp+bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6+eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0+MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJo+dHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlw+dGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu+MC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVz+b3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5z+OmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1wTU06T3JpZ2luYWxEb2N1+bWVudElEPSJ1dWlkOjY1RTYzOTA2ODZDRjExREJBNkUyRDg4N0NFQUNCNDA3IiB4bXBNTTpEb2N1+bWVudElEPSJ4bXAuZGlkOkZGMjM5QjMzN0VCMTExRTE4MTlBQjZENkFGQkE4NDFGIiB4bXBNTTpJ+bnN0YW5jZUlEPSJ4bXAuaWlkOkZGMjM5QjMyN0VCMTExRTE4MTlBQjZENkFGQkE4NDFGIiB4bXA6+Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2+ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6RkM3RjExNzQwNzIwNjgxMTg4QzZCNDlB+QkI4MTk1Q0EiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDM4MDExNzQwNzIwNjgxMThDMTRB+NDlEMDJBQzk3NTUiLz4gPGRjOnRpdGxlPiA8cmRmOkFsdD4gPHJkZjpsaSB4bWw6bGFuZz0ieC1k+ZWZhdWx0Ij5nbHlwaGljb25zX3NtYWxsX2Rhcms8L3JkZjpsaT4gPC9yZGY6QWx0PiA8L2RjOnRp+dGxlPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0+IGVuZD0iciI/PjUYa9IAADGhSURBVHja7X1vbFxFtqdXsrReyXqORCR8Xxx3J/5Dd+z+Rzse4zS2+weTPPOMxy8bJBpx1mMSzjDZDgsgAIoHAIMbS5kUOyrwwCiI9GfGA9yzhtwoT7/vABJIFZjNv0gkw+oGCNEgjg/fTsuPW+7Jfac2519b3dvrfqVKc7MUudq8Rt+3fr1q17flWnznX9qqrKmDFjS86sOmvO+YvYx5/wwk/tR4ZEhFjhkTWAJClyvNWVdgYtPWb1LqkGmKoWHljljt+MZq8443g0/J03/0fc3axT++MfRj/KRdP6ZigI2K0b1/4LYEY314JJySL/T1zCRZ4dEzc6FPcVmboivYKhZiUThD3gxB1sbiLAH/+B5mVVpSs2XVYAXgg0PdYE/D5oN0XTVkBUgPH2pg1pPFANPAN70XsloywhvfUj9nrIOADanQeHyj8+SsYTruDRTaXlHRT8PsMRgM0oPULLf0rAQx2a4P6Sth83MVE3uiUVDOBXWX22+RylZGztFVAib/ek+0/6supisSFRWLS9OUBSPzqysolZvEyD2jmMPcWhPZzascHe9rsOqa7zaBogE1Me60gpfk/CAGucp+TdL6K8C+SX8gOvhIvu4RpnrMrC/JnnvGOfhPZG7BD1bjfJa7kYMVX6l4yhWKn0jDxTBruOj/BKx0+GHwHEYiNsrCUTrr+o4uHbhXq0DMjCNczg3UrL1VhADmzAjwhAhSEOGtOXhofTYsP/qvqI9uQboJ4+R7apiCoeaH9m7OiJnSwlq2jrO0m2+yVWb19p2fjuJGv5RFZy40mvrqPxpDc68Hg8j3M+JVjgcQKd+vk6y9gV6Dxr5umeGiqc7edLuOe95yDn4T9QlF36W4xd/peF1qcrJlwQq+j2xqqrE50kb0XCRY+F5+fa72HxxZKP6j62/WKBKVdQjCsQ4kq14YrGqfvgvurrvvAmVc9YlpWO3xHZysndnjO1gtpXKH9gDX+46wB0bKKJr6BPro+f6Vl2BCyksOskKycqGGfc7oPF7sUP7oP+z8aMWGP26RekZu8+z0cN/7INjVe+n6o4hhZSlTaq0qgq+uTirzR8Ua9OJCo+tXNrVXFTlEUJ0y3uP5aNRLKq/Efg+aHGr/kgCc/VTbgj+26ALn9aZpcqfgFUXse/y9NbTW/szSFZVd59kI78p/Od+QEBWvCCNqLaDLXN/J0EWhcddl+XOm2Ru+sgqi+p0z8IQ3VQee8HXF+lObi0Psnhm473oZvnt27Cg4bC3r2zvemZXhubmjlFs7qlZ+rgrpkil0+PjdRZVOowimXarrF/ce5T6X/aOJjC51Z7vOiQ2K1ndnENzrjqewJWL0N7+HvJwdZDas5n8LPDe9Z+MXmpPUcK/xU2YK09R6mlVtH/u0JbfxZcr9d5rFHWPau6+XVv88fJH+O6t/2bgtVjP1V89GdkRIIm+6xiedNDDk6xDdt+IH3qrxQ6KrKEm9h//QY63z0nlZ5Qpyqi6ynXIR1X3OEcZ8yo9V7Vigfk2nHkG+aETl+U0kED+6Lg/cJsNy/8EWwXZR+4/A80ON75rtWNSZdmST2XJR9YHUXX/E329s5XeOn+/6Y/em+G6AqLY+1mJyYgpadN/YzcMR5TlYrELwE1HhVXvLgNAtZaRxZcUS10iw0OO1/hfOpxWPk+ZSq/s/c+7+AfflR9v4j/mx3WmXu30/Dufp0yqhamlWSjqm4GuNJz1aZTCTuYXcmoRHVGXzFnlQWEwn9s4hH8+R9ffev6UYIVjnBVLEOeTFKqyWj6SBt+302j2CHs+5Y5JbxJVgVKQEJfOlZYPTicwaZ6xMvxxhq7L+hn9O1LAdBmPoi/lBJCstnKLlr3k2F2a0s/g/JauLeBjvvlkFAa0aD+/1roj6wPu93srMVWkZ4ErP+VT/s0m19Z/QVc1ZZxlXXf3Txo88m2eqz7p+shnF59Fmd8VTxBKr5DHUFwyywHfNVq8ouC1XhjeoV+p9cPE+ZjLLR3HCf3GIqMpGEewALz/o3HiYqlIk35VySrrCkcstKIyrO/I2nWNXYUs8A6+IQCD33n+RJC589LgNhP+48Z3fa6q3/rrTwmsOHP9qfL5j7a/1ffMRPAVSiwXI56JYEa4Xmc8VTEntuBM0/oz+sQV1N1AWqq6ej7ucY3iyP7Pp3PEdiplbPczusG/uYkHMNduNF/B/61YcfIUVL7KFu1CJasU6v4WX+TEE4s+HEztQXqjdvOviGq6FF9Q+xhqu3KgNc+fequq2PMRLH8jMxjiqf/+jjsQ4R1ohZ/blGFlH++AdBikqqYw1Is/tlAf6Y/89kA9N2pG6Cq+LuIJOEvU1JfIG7saK4SzXDpdmoyynkxlPpi9+1+D9Lz+FbDqYVZPDnbPQpatmlKHDXd9fJ+oM6u90PdQb/nwcc+MdJzJR9XCtNJ37b0qUm5wmkbU3DPu4Fig+a4fq2er5jz4e67B3vD/Tke2a3XQO/niiQ34f+lTlV3lm5+EttBbqzLZCic4/V9Sq8w4t1181VJVs+rPbUZvpjJZdaA31oDbUG7qvDo6otH977b03827R0PC0DfHPeq0KbhMr9RMvlPxQ8jMMw2oEHtctf+wjkvdRb/rzxvGXVIg5oUtn6q6lYZ0Kq6ypixm+Q/xt+MGTNmzJgxY8aMGTNmzJgxY8aMGTNmzJgx+Y8aMGTNmzJgxY8aWnpUiq2jMmLGbTdR0E0GI0UaWIjg5CsuMUJn1DKVDgIVkWP5BOPBrHb1WlamP+Hh6WCRbLWA1VpD5zcMaUrU2RJpcPeBTTpD1fqrho7jnx42BlhhGo+Rk4pr5rA4q7BWnisfxfXpeY+FekM86VnYRJZ3astKHiuswqLarMd2Qij6Kyu/jGW3jvRO4FfV/+Y0iR0XT3d+ujio78uXpUiX4xe+an1QVqQN8XNhRi0f8StYlNGeL21ljVXX6sK1qhVxmb34HjvimPA+Rf3PNIFkLIpz2ve7xGTQ5arT+yZz0tliB43znhxfCDWLVTsHKHWeNKIWs7sdHweOq//4MipCy1Imd/Rm1zmroUyx9y9iWMXu156fl+papufXTxuAzdvS4CdA6+rlx9cDWm/L6L8ap2Kqy9yrWEXhCUD7q7NIka0JGebwVSN6JGxhkrE1bU+PwLL+k9vxXqc3jqSjpB0emGReEaLcDaeJvbuxluBlVIp0mRuZLSFS/vc35VA1cLF3GryFa6YVOFR+ZxUkKuKsFqsIy8ni6Iyym7MCXNCDr91EQQ9KA1Kp6q4PiE8q6+PCT1gTBHwgbgtAO9YzE2f+KgRO++fidTn3wu5bXE6oxz4W36tR4x7ncwZp8abkQ0GPLqFRN5NfxRhS7M1gHowzWkAb5AkdYIxPcOx5V+htnWwUY7duCeo/YfgV/JiFtt5PCN85HhwenWr+R3i0vkkswhbIlUXay6oCKfm6rqZd+os3p4i6gE+2uEtcp3VO/bx0g/t4b10kt2xr3xUddeH4+X1EXirN4QK/r0qPNa+UIAEBUranlTXBwLfGL0+OZqE+VKtJ3Xh7Valy9alwJ/daVYks25xblCD3aU5VPj28Dl8DlYiCNaSsfnA6fE0+N+QhOR/xrNGVks7e+jUdVk9Z3KHNPgd/2Wuh3Lzwg64qdlhGEtRTSAT5U9ZJHUZHVwVFSDo7OqqieSmc1dI2X/kDqgZxE+Z+iaovkyllMjRdjjrg+vkbw+HA87jnxpz5u/tOoU+P+ZZD/6pfsnP/oliGB9qK5PFAPCg6r6JL8R+eJo55VNNb1RNePhPgpWPqnH22Pbinz22PU5QyUDZmb3jTTC7hVG5hoKvqnr0ocgCNaZE/I+3tjGU+5fUXC3WmE7av2ZMJWWfpS1XsZRc3tXyk1Ek5uHVWk3lay3RWrZiQPIFgsFaESXKJ40IhLnlTi/pY+tjAVJ7asPhwP41GXXacuXKQsw+MOOiOb3T8Z2SzbucbdPvDIX1PVB5NDHiPbFd/wNLVYQwBVhMo1+quomobyoKlPqTbKJxuKfTTTS6lNVdc9j+PWex6jUu2+gI6tD1fsG+N3cN+Db/n3ujC7v9mTDm3Su+qtfQunhHZ1U8drnOKpf9FGN2Pq/4K9k1dIS4RH1wuwO+BYK8Pk79xZ3K8bbmK9adK9H2Wrb4qn8b+OeV3z8LmIs2q8vsueOnW9r+vk0CR69zqjaqlUNWq688c2H9664H9XEbv2HZpkqva7dp2hqGaVh8r+gCMqjqz+AXBhrdccW39Wh6prjm06Z8UwApQFzNyX3Xng5I1QVWT6yk1VXZ1VzJ/ynhbrw5V6YVT6+Wj53WMH4pkYrlCG5qA+rHUmDXGitqj5O/cWdyvH5bYTG7bsZV7WRUz5IrS1Tl+/dng/vV77ZS9Pa+/2aMqhCjxNlySBEtV8voFcuMOQ7sN4rhMZLmATDkjetZPfxfQ8ED9a7v2yH3/kJ85Ouxn7W8Dr5a+S3lZI9q2pAC4OCFTfqrq6axaQyL87fkTH3PyIfAQrTY8GUWpDwx3QbXuqwtvb6ygwjvvF530g1R9+3Sm/mqJDq69by5WaX3iAjq/0qKozcx5Je1F1RPGWggVP7MQ8vMgbq64i8Kc2y3Xvi/FTDzyRaF94+9Be0lzVifBUh8RKjqp7Oatubosy7/ojf8/0+ZH9GUFyXoELtX1/3VQ/v7bqyGlW2PlgjfPeqg6/8+XJVuqL68mKr4U8V5tbgRo8Z1bDxV89LBsxqgdz3lZQ1/r8ozwTJFSvFboYZYVYXDz02hqo7OavuC+KHPoFfx+6BXxvZ+mvb6r6Oq+6uH1qVpqfTAh1Z9R4+FlR2rv+KZzdJ3bxX9W6F9/Z88755DvtqBH+VffUo/jz0jA5vd2vZyw75qPtb+D8iSFmO3JjvTt2Jmm+9unvvUnVWXUpoAZ5n6rSQtVT0dWtjz5e+V9f3BurThartBN3akI1v19G51dAlTnmgU/Lytcnguj51r9clQ+RC3eZlcJCVmJ3opsqYMWPGjBkz+ZsyYMWPGjBkzZsyYMWPGjBkzZsyYMWPGjBkzZsyYMWPGjBkzZqzAXH+UndbHW2mCBm0dCqrQdWX1+NGhz56Tz6CsVaylUu41ptRCzJsilj+bOyKju1LuNZMqypbSosSVnuFJhcDqppQLs4Flo3duqsxou+xhdQepIqVqm7cgfNWZETZ3SBSD0LX1OpUXDj4m2H9hzY3zMTIktYs/qxo0m26Zx86ZY1Ebbpr7N2+R1PVtwRKl9IRgCxnyR2NEh/Q7ZwWCWNL77X4zAoNncX1T6L0ZKg/Q1cBLsSryRpl9mpJRhWr1Kcq+SpC4RNx26TUIsQmHkrDca811AulsiU1YQbH8AnRJ7X+mPqTOV5NMqUHQDCU3o2ApiLv0ifWPqMBb+KGjqNh1scevTu3vds1hN6R2NCl9cNmVhJ3V5XTEqyXSppyrfa11TklMVNQUiGirAxXgVWb2arbxU+bXvSjZYJl3IxTKugdEsph4kW+t3A6Z6ZBKNsxCDqjGLW8QUqVRN/8JL88nIqcPQOvoIxr7q4zH80+1sEWL4EjRgR9N34WtWwKXn+hphBSodVah6re3uzPF75nRfGGIjmqIvn0VICL8XKyVpaqSDQU9HSO+H5yX9V3O+Nszw3UOR36jksPEcK2NvfDAtr9VdQRuqlqxxpOgCXyWSlVsVZWIW3HL6Sy0Jkqaa+5Y+ox2gBkoIaCseACcZNdIqRpVCVZT0ldXE3pTmWi7PY0vz2Ffh8066CrA3XkbWylLV1p39piBY+IYS+UO0dnxycHNw7nszLL8vsjn0odfVLEBhtI8yF+VjdyLDJVSGtE8Tj1IJCuMpSVVfDQjdA9QpOb20A+zOf+xVqElPrkST6h0z5ce1v2fJFjw68iUXETkMC8VWfjWUiPrH54f7JWnqrxgv4zTnj0PTMHOlay+lexAh1AQVoS/1za9Y/XG1yO6+UWKu+P+KpgoavqYthlS/L8m2b3/49ZTVVfDQl/1Qj+grVwAjP4C+qb+0oySoU3veqlY6JBmJF3vzurdV4qL2HghBJGrUFkBvuJjDe5Fv3duSyvrg173tfVblqarfS3dd+3tiKXze2dl0mBNm9ceiOUGAtmg9N1KQAiayG4ckoC7xAItLxJNtw9NZTtaRXZZpn6ASolQ2AkXDD+kyzkDoBp9+pKA4WgBF96ewji2/yRhuJ18GIw0PRgNHeGa1efYvKBcJZ0HxovvJVe97b3WaVRtWfm+9FbKiFcaVaOQJz699fTW8K4ooTsI/T3IcfbxncjsMbyXSooHIeEV+4hCpNhnuPdd5ahqjdrB1yiF+0Lr5XN0zdALUygfAmFF3B8C0ey0YBZv12hP544+3Yg1XWyHiu+N/edbfTT4VUb3w/kQtjaq2Tn6N+2OBCHWwWp7bVj76JBS4FLjWR9g8Ns13PCyfbdA720Pl7UlopYI22XE+yu39PoRJ2GQ/1Vo6qTbm7+1g+AK5EBXioBcHEGmC4CqJsB7gR1SX5w/vjjG3NTuIhfVyPIRyFqMV5GVG+qDk7Lbk5saCE2uCDQ+Ys4V7ASSJDHMKIuS5DAxj3sg/3pj4O/subnkr5asPTyttBKIkSAmlvg5z/61EgebQztJDNpIyfFu+F5OlQUoKOJca/oYzwNT6qKnqqDgCA+2jlLRe0VWQfFSiuvHWqIyofiGAP9698wwnq6opiv8EQlsM+UyKHaR3EfF3jvFCz5/niwLx/jVoKNk6CPz9Q6rVbGX5Ow1VlmzdDizfrjJQi6eE+Qkzn1Vr5A9Sl+lQEWVC2lPqWoGpeBqnbmKaRTLMeDxmyonCFV4RZRKFCtrEdtQfn15Wy6nBJxKr9VsVLptqAuXZSN+FeCPFHJoSpv7B2PeeJ70cB+YSClnwLnU8Po+t/gcWn1KUTUuJQO/RJWA1X8GYEyrPZvVPzFmzJgx+Y8aMGTNmzJgxY8aMGTNmzJgxY8aMGTNmzJgxY8aMGTNm7NYYrJYLLIl6TJlnYcyYhKgNF8Ufp0tx+o9YU6L5MUWTBbPQZ6wqsfzlDw+NybpBGGSq5sxlaAi2ZpikrGzNWkpOvbeq6nJCuHOFu2AQqQxH4+16TUOETJ7iZcfZdNwP+Az1AkTJo+BmmUryhIawg6AeYIXmNns0qy/NuFP4OrSrXKn8NODNbo16mJ+GiYqK7u1ZbGt9LHqs/TwcL+9S8Yj895C85vFeL4kjnYWBetqzzRNjMdpdXrnDWXL7hedPHBpcrBn+JvWFfIzEhWH9mZE0LrQOK1ZMokJMfwZEu1NinWjDRWVFD0ZtzaTAy2oircotxeXrXK26gdvWn+qZ+8ZPpFPjO7NhRXDu4kll7KOXvHR+c7swe38FqrXSr8g641JWODLpo/yjTxVLO0sPHYTkRxEvkaZBY+u1mqwIvsHPQW7rLOJ5ktxvMlcbSzKFinPcOkGrnbn9x5g/9I7pcXBlpAQNYLfbKC1nxgC3fjE21H+sq75QEbrKMfWOmvxogpyW72tOWRIGQQ3fwXyoOncUqGOgdsaLjZcPLcWlpVVK/Ap1gBhOQhgtaBb+1inLh6V+uBSOk3D9KXlDo5BVTp8iRJFB54o6XPZKD0s7Sw+P12jDNbrEnQGctZulqiLKsMJlk4xC+Vi88Zb0qHetuzyiRrAIvVy1zjEul+ZTuFNZ1efft8oVoKCUx9Ar/jKoIESan9eEtxY9Irqa7+ksH+uXpe3hQ44rGg+x66Lg/cpsajwmoT42MfuOVJJX7CDn1tosoW4EO5U2HmHv/C0q5AIJ32V7u5g6Wd+pYvnLZ8A2VUIwnpvNVWFyyZJ1PDC01qVinW3J42sDl5XY8WjdKcwtwaDn6HoiRD3in2E5/hjYwud+Wb4s2/2IEt/IxuE4w7FaOIxc8c9pWn4PWH8ZVQU+8EIEsHxDj8Hpc2sVo9hECPVYp8LK5m642JZT+7E/mv7YpAmZbAeJilCzD5WApZ7kdi3YV5zlFMRROq0eyylKVuyyNGl54qrgZDetuT0qN9IkqIase+Uauq1p/l22FAesXeEkMWDnbNdmQ9HlFWNg4PTuNYnRdguUafu3Giyogh8GsnT2+FMDnemd07DuFq+tRz/zP2dkBRrE1pSkvB9/SkvuQ15wCwEJKlUjbrcRH1W40k9fDGVwkohmcpTtfCe/WMgbzxdh5CC+LSSqOvsi2h9E3zU1Vrpni+5Xl6hVVft2cEW11pyq2vF7/bE9f0rkRcOcm+u7IAuvNxztnXCwcUah+auDxaK7+8qRJfueWEKvBr6c2s3oZ9XJaULXHd2AswYkqUzPivaF7Oyd1b8rbnk5VB0s569xaPXwx+lQanP77v1lPVfQ/+MZA3nk5VCjYvr+M+OtTtH2d6L++sdLzwfvnrGR2i4gZFw5NOM0PSpcYfO/os+zDfPFj+i0Wdl4XX7nw+vc5QFkySqdh/eO87rH1U++oJ7qcEXTwRqA1m5JlGTokZC5VWcqQ57ECmE+VClO5WApZwndR/pVkq59fUDGLaTyispTFX0zSRpOvPBUqtKwurv6OO0fZjova8LF9xt4nL+eoRMV+7d2EeOSQ3Q1KHbe+Z8YOlmPuvksmVbb+bJSt+m3fBYGW7+SCQQJmKmFSVc+qUZccQw01Pp8EAkVC+Gh4k0JrV5XOy4l5eublqWh322ONvNUX1uBhLO0sXLwRX4XVWB0XGrdJU5b5JG0688NRYhY7VU0TU+J6sHUWFm+Kl4PaMjP8aqj2zDca979nxKhcVqRnCH1Tmn75LhT27ozIbzgsWdWZE/9gnGn8QNokTf+tsLeLGrfk7cOX5gUoCUSckE2QfV4MZZ2lh4er7HpHEwNGpbCyxrhrrS4zwtPoR8dW4qioENWnZc1+BfdrBXCGt+1vVa9nPC4OAWH37LHt6vNQHnTveH+mI9s9u+kcJHE65OewmlOb8c8NuKuDw9RK0csP+7OfTb6G8e2A/W37r8G6yUjN++SBbqXrshaWcJVD2a34l3lYvbpdNa7yc1/lKw9McXbirVUeL+xyU+80lNPx1sacZbXedlTdH97r7dzoM2lCLoCQFhl5xG7jAYZtUpwLdTVHphY6ZQTlo7pHYYthzKdSvv+Lr+1eKe5qRk/x1nVqsdeWIpWMkfx56zC09SLb46560zxUgfl+qQe9TSwN0JWnZc1RR0TNEBNlTFj+xm5Gt1NdObQxY8aMGTNmzJgxY8aMGTNmzJgxY8aMGTNmzJgxY8aMGTNmzJgxY8aMldl0dXq/b3j7+HLLs5NKsf8V9KAA1ium0psVuQq3SuleyYtbEUqVpTqc3zmg6vd83vDiLy4jR2zOZ7cjq1KdS+Jtl+gUsgYXmJWhfqgrmCO8/o7/vwwgN6V7JigXnQyZy4lV0N398iJ9gacLVosVaMSqe3NDxf1Ib/V6b8+ZF7UrNzlc3HmFTZ2xZxat9/RPWapEzv7M5T6lIrfO07TVbYfeUbbZTSoYU1ElbpHN0rVKAqeau2b+gMSjXwlGYMAnwEufub8S9acSle9vYQ8Nscb5vAwa6vTyywo9ILlOr4N3O7sK3zPzyUZcv/nJRlxg+Sy9fCEGp8bCKFETNTuyk1592v2iNJ9sXkBRJ9sjLIHYq1zDO6R5vuAu/23AXiyP55PUROsn2wkIN+vBVruU6pPwqPN85HtR2LTg1rKJQXTaOF5LqubvVae1C/chWjh6eCeCd2Dk5T8GEQQEA8CrPfOqqu+bYov4P4WWD7WP76wtsn+Ber0OpdV6/Q6ePchx3dmce0drt/ENXs4stLK75n5+D5OERUeJGCWW3us+GKvla+0p5QsBUJUusVUXZrtfYvU2vRseebnluqyhue4x9IYoypmG/2OHt6jqI3Qu+NYKVLxwRGwh+ua6yNbEKXFDfsajUsAKr552n1nKdMhbruDooY84FQVo9L+NOHO1bfyWIR1/iD6J+OyirsCtHVVaD+knuJnLSuXX++UDW2IEYYG5Ybafx1eh28ONT4hCssajyZIJSP8lv9GST4WD9SW4WHcYWFrnVvsuqi+jFJ/cQdqXWIUaUnijJAd2nNojwUOk5DOUrjuMasdnMY9a2DVP3yGhv9Gjofr7LECuLVC40kiPkdU+eJD1MjwGviFX56SS7XJjqNQIXEq4um0YES6V09Vx45FEURTXeJXk9M3DkzTiuevU8rp6jmoVtShl+XksTTUN0o+t+Eyh1xPFds8VNJtfpLQ3vKMpw1RgVfnKQLYMgr5o7pBqftBWP2LLGkyqdYYG3CqII+f7zjIFCjZWo1IKF7zO+T33dHVlYfxFt7WthKFs0JSRLwDlFr5fjGq1Et2S4vrIoaXG7T1QV2KGbA+ha4u3+qqN7yoPj0zx7bTsrismUJUkSXODT4hNZ11RND0tKS8r2D/oudPoskE/+U6vQ7e3b/I8Z1Z+R7n13FocJVXlB+xMYp6oSjweEKqxsFJn2MG7m8Ufz/o+G7Bnwn2WPbKi6pNM1IPrHlsxHFFxZMXP+CWl9ED8VxsCdq+kQ8KNuosrxx7Y7irilUlVNDZ1xcnLQLRzbmZ0clAax72DGYngSYxqhSwytVFuO+LG4pWeLKU5X1ndjptFD3LCQQubehTu9i1/XX6XXw7kOOT9hi/jh3w+xWglC+Lf/fK4hKq487oFXj+RcCv1iVm1YPTmExC3Nqfti/sfknW0Fz3mNVCA8PcHP6vXX1WVR/AwxzedkEQ6VDjmwqSH3I8q8WS+3UG/XHiseGpDoYYeVVnNU087nvPU03LJoDbUme6C0dGOaVR7IehlcUvJEhe2DVGvUEvf0Arw+vOO+LI4bsPDpB+r0FqdZZDq9Dt7d66rwUXjNgXO3FXNRYvm4W0pCqz569XfHBHJdYowEBk435VImmGCS+Ppac7rHIAONWIar6ID50J7ogjMEEPNYE6mGPqCq8rZ8V2juOj14/raSmRimzT7ZcSL6DCLpCVA6I+GsxHFDM4My9fFreULHHl00q7b099gfXnKa7ObOqL3bfnfuUortN0ekvDi4xWpcqvHJ47O4bBSfbJ+RrXioqN7bM01sgipPrp4O9FFxHOCH9+hFiBdFGwTqFGa87JmHvCzZiUy6L5z6ksUejJJN0t8EzLA+EGGhpK49atee2uxSLhQ6vZ1Und7vGV6cxdXpKUihe9ylVZ9K4Z1AWNdpaIFvac57ZFv3rHyW6nXn+5cni3kiWuPJUFTqiOW3lmqK71tPp/f7hxYyDjF2K9a/WdxktdJ9WC6GKdAWEbSlZ3GKy6hNV926N+GTNmzJgxY8aMGTNmzJgxY8aMGTNmzJgxY8aMGTNmzJgxY8aMGTNmzFgZDJbN7TGtYMxYIS00dGVB+6QYlPHrtz732mv6DGlfqhfPPqGUZcWVr9+GK3/eUxahymFDrM1plZ1QKB3kk8/6sca10GdvkeTy8+v/tO+nbs5igOq5/RDT8lXV3c2Ec9M/GFIKyytyaCoKfWMxP7iHSVUXTeIGtld/9evSYh8HKU/Xir+RgcwhVSC/3t18O3/9+6rtD9Kt0Yj0Dp0aUsrwMU21TS1ClQ1kiXpy4LaxJT3U4Pul3kcc/5l9RzB+w/u776K1PYm6HVLPnFO3Sul4QVRcr32DZNXVxY2wXc/j6kcUIMSVfruej6gdMtZwtYnx62w61/dP+aqquAdnMdQ/ZY1mdsummgqyNIZXaoCvwc1ov/J3s/jcKRJF9z+EynqAGQRyDWQ1tmZSuAIhwEq5j+DyPGHCd4m89TS3iWn2DlpipXWyxlfJGPNuK3Qv9IKeO2qGtqkcjZcJm7RL5VKDJxeniHqDnp1dLJ+KnRxYZkvLOoRCgwSHVpbv68RMM8989wzqKfWlBcV83+Mgfl4Tilm7/jD+8NAcdWoh83R9mZV1d2/+l3ccGCi3FbhhG8uLHBPwDz/adFSGF2N8AtR3+zOgxvcytWVpVF0s5iFfXJVXBQQZD0d7Co/1p+hd+gaxe0NsFnQXdhd/JWjXM1O24eHyRjzbOb1lIyM7I6993YfG9Dr2i2/7+T0C/Pe2rhLjEC215XmFr+5L8TurjxBfwuvqDSxXX0i+556J6HHF0j2aW5oGhnduwo6+o81CSVHeM2Fsn1QRPr3o1K58IN70Vh+nBbi3lwLCOKC96j411b3pGV4PnahPOcbP3zjh7bUJmlfFr5xhnrrDM/wlMldC2WyUl/E1wupEXwm+IGMaKo9rFdaANGbU8cgsSiCrVZf43BlfxGiT+FwxFkGkhO7u6Br5lb/p9cX3umVMt/0tiUxc96xe+5+p+EtRQuWhyw8kqdHFhMK+DZlTq4joP301V+cXbF3DUPrV5ZLN1pVXZz1lD1kERPoYYjoDha/4p+LhQs+bAryaYeQALaYh332mpFByn41Few4r7ZH88NhcZG0itB/nMkjaJlFKI2XOS1UTlvSX00yHg8+95NVLtVCP6KWQtXC36vrI4iaJJEV5Uh47AYueCUslcxhIa5SCFRod2cUZDV68MnF9/pEQrf9ZYqO+j/4Csi5MNwNApSrvngoVQXNkdXR0A48HHlfr4lZVYeCLB1JVfJaPSQl4GEe2Bd+HJFSu/MPr/PEt+n6ydxBvrmREjX5z5SUb3TsCM9l9YdX9m1W/32cJRsElEzbp/SbLeCT9812WOv//lJNt8HH/qjxcJ+pe7ZaXucn450z0bU207EuNwbd94Vc7JxGB1x8T/VA+3u5EQd371tjX0Hb5cvYNOjqkNUsWkJnazx+PFH9UntceVnH6cf6i+8URsGa8lEVSqtv/cr7nG2v3ThVczrZRYf9fB1d3Jb8VgPyABUpWnxI3WpT+Z3bX84H5SL50pJM/Pmr3t0jBffkeMr7eb17Vn8ER8Xyq438H7ZLPp3DkhCsE/fAQUKcRj+M75pit+tD9eJJRe/Cmr3nRu0zlW/eJP7a0e6mRExcBUjPGbztnzypj/A+RZ38J/qq4gkCNq08eNdtn+GeDK+UtUhKozrXXw2qd7uyiGrnKh+Di6rEe5NUHin/e/rRzX+5cOY2hv3OUc2AFGpyufkhRKvuZhJV0e3+qmoV4wdSVHyWXnxZ34Uml7R/Z/Z8SnVL2Bh3/54td5Tt/dDnUz0zrSzwApyCNxYPPN4Kj9//CoiH+BMh7b/wQnYUtsw6GpXhMKAFF4foP7394P94Nkk+231lgviMLEt/tuZq3H9jfkQ3Ml2tUxZBIyGeO+RXAjokZpBrjYccUz8L8C308PMq69kF9O8+7Gn3TrT+WIGnJSP94JLi+yqoi62MExE5wTh/VJRYHm+lMvRO7MDf1dOqsKY+o73GdAGNeWYq2Irur/PT250dXR156r41jZSkPQBgU7pwxHj0b4dfOM6PEf++0Deda4VxGN/zWldawLFkj5+LY0fsbSfu+bMVaGVCKts7E40vpE5uwM9NkOvGryc3dGZhFPN9f7v++LEhDLhd1hy2vlp/avP5suUZVQTVbDtPeiEieAUbH5c/0swGXC0s6S955hyHx25jbrQC7KJljOTPl+wu9UZJW1vPt+8/M2VyaYdhWcfMnfzutS1Qq0+Zzx2HbpKydFB1PYpj7f6eri6lG14WLX5dNbQZ0O+8paYq1QLQJ/cgMQG0cxlLa/z+jjbaHg/dNYOm1G9n/hD4g/97x/aU5iC8MRDuuI+SOpvPbSxFfCS+GjV9jAm3lfluDL+utCOEpo99y2/H3lUotuN4CgKR7eUaVQXV8ps8pgqCJJ9rqEcv97jBx1XXdKVe+8SIi5Ped6jmo6+SuifPaRna38BIrT+5GOGuisZxUbTrqjYfhbZkqrKV2MLIm09LF1aNq12Vwkpqc+W5FEHFnNx/cBuetxBtYzQ9O5hW0S2iEEjsP/y0jXWLYRuoGfbQASLZP1yVHm9yijipc2XfZeIyd2+ds2qXFF/rrrYpK5bp0NUPkkYnhQbMQxPyqcrlbailyIhdXcAz7TP2emP9dG8mUrVNde98bueV4e1+N0hU0ZPSdWXzzXYbHMq3SnpOku88anJX6qDr3Gpeo5kpBamhc+mTHNKzoS1rudqtliv2laYvK3Xd+apqod8EZzbkZXwo+VVd950y0oLoldf8EonAm7DrUvAmVgagVbbTv4IM2ZsyYMWPGjBkzZsyYMWPG+jBkzZsyYMWPGjBkzZsyYMWPGjBkzZsyYsf9/DVcFWROmHYzJnCRQLDtBVZ7TukqdXXadhuuCgIyO+89r6xHPf1acQAgmZkK/axaJ7JWvl5fCo8zxH03leovgp6MquwP+jWj53xm6jg2X1ZC0trPxZGRuZ+oZW++Gr2N5HhYuHJpge1iL4Hya5AgYQJli0XL8k3cABdt+Fiw8UQs69A0cGrC10fO5pgGo8xk2uG+gxqdwRzZteb0HATWgNTgPyqaqsPk6DwniDrPSxHf+lXfPw2/uu/J+36rxjvW8B6ulIZljkFJ6do6+yaUtr4jaa32iBLHZwvLECiFeyK8XLfD6NdHZoW9cycJf7b5d5TDBLxO5biB4SVXu2iZYH5rBZWa4+BM3KrGRrm9S1CbzQkf1lV5IkkW29gmqu60+xvueeGZ5sJY1loIlw5c5/furpJlJn0MSeevrOf4ZR+oJdOVdDV+dZeIE+ozchvnEPpsJo6z6Xie2aENG35ywfBnFDso+ivI19TBGGEf6JE0NBbuMzRn9wJ+5m5LPJAasi4fZPqKiT2k7gqSrECcfU7mB3z8taPKDB9Rc34d+6yYqrHPCI6bXrHQ+mXi/3T9a5yx+apWmXdy9zlPRJ7KanpmoCw+LdpVjjRVrZY+8jPEBZTxaf1Qosm7YMvKTu/8SfF9Z/tSq+X1Psva2+N2WKFI4NTre9ydr3Pblq3poijMAMhVGqqvY98Z/Sd34AHdUZVW1amThC1+VxitB55gub889gVI13+dHcp+M7skW1HtvFVrrTyHYEgFb4zi8vD3/jhsd5j21F2IMoosc3AbVzzEhUwV/hSozPrtCU/kBwy+QRu2XOiUCPUsttwfrSuZnmTcR7suD9w2cFvXZR43iVHVY9m0xK3smW2Qtc/+4F/j9uYZrqJ8rPVe+d+mt9yrmqKy414UrTshHyeCXoFXQgPGButeC/v+IqO+rgXseeuTF2L/5b2Rll/Z8GwOZmeXWqC0g+zY8Jv9rjYeNG2fJPNrbB2fLZTMv1A/tRp66q6rXgzwf+22M//4V8twKrN7LgiK8MnPbXbUITOs82+OUJ7xzmZ1nwgx3dmYUl/yDlThU+y3S+hdMDul6h4/gTU5bdDh7H+LC6lZDUbW4X0ezuhw2w8ycte+BfTzX+Dvs/5Uupz+wy5HJqcz+2EXdapC0m6C4Bfjk6g9AYzasUpu3a3V61WQX+DWxIRCb9wlbKai+auLpgh7laRn23UShfAwPrd5NyEfJOEOtAnu5eN/kCKr+06jKqn8eGfgvD/5jixJvO0u9eJSnt0a++9kJHvnYpGNVj+fxsWftsey30OySRvaS79vLtT3TIW3P1l0897awCZiH5/JzrPIsZFavHLUwgblqQ+4XtmQLmp3pknqfC2EIm9tJrV8xFHhS+mqj8+8U2S/eA8/9z8IkWnOteh5eS+ueTMse3lm6vicxrf+Lcoe311elQm0C30oohS1I0r8LJxr3KugyLh3IT0zQjW+8LLyS6/51I1e86k8bOGDvvvAYIBCJbvp+/0N8c+SVpJJ6Igxn/35L78hPkkRqW39lDVp/QX2lobe80ENvrcAH/RdA/ZU4X0VVFkx8Yw0JFQH2+77AzlKW2+t/H8T33XbW1St72HdnCq2+4C9u3IyvDd13ecFdhC8jxtuoR4zEIFwlT4SFo7ONjCA+z+/fGd3yZxW68ApPSutP85P5Z9SyPq4PSJnSD+E/dX7HDPVZ1RVZWeZMuGJ7H84UmVQJDjxXgFGlWd+0JeHwaKX+8iLqn57u6H0hy5VrYOLAlpJbhR3gFsckPvvFFNIJRhz1t21Z82/jR2V4dcd65nBrS/s+1zsglbVKMjcpLD+UjB3u/NZ+nM2e7WOP653fxg6HklSqVlW9+FP3tlVWWjZTgjz3z6w0Jreg24iv+/FF4u7xsvoeLSPhbo4H5qFTnGfFRVC4eFS8Kkkr84lFShW/LzTZxSiHH97+Pv2+82jvx6C+iRG1f+h6gwVa2VZzrcc1VnVFXtqYTRH17h3YQKJ0Ttn3tm686tO53v5Ik0EfryMFg4V9wzVo/Lbi7JDuwf+nnQCVRlVrdHWRdRrlaQF0NmLFRT9iOEx6tV3bb3js9QXrEGaal99ZFtswdqzZQy385PPTdzlW9XJ+4cQH3uNp4dia+CA5bFVTqcqWrT+7Iu8m7QvHd/hjd7+0ivGZbfMDof9+x/urIbyTle3oPANhp4Qe+s7/OM8cn8CXKlHOmCl9MVTUeZM9jVqzlugr/8H4+3WqFM0bSrO+zgb3jcrlTN1HVM9pS5qo8CLYn+Fko5IqGUXXzIX+yI0JeHwSXH6tgv3v8joFTH6a1jR3FuIqPqW61jR1EN0ZmG92fGjr7VKmnqAFbU+IWpU+jIlH9CiyHR1aGPklSg7sk3Z0LWPvHzH9ScSCVLGuOdIZxZlLYOrU7va2THlC5hjve0stSu4+mo+QaqqiIKkThv3nEzKBNXu+HLKpenXNtY2vY3gnLbneacs2gs6zg29zd5YEPE1HWuDxtV3wUkKj+/AQbeAIp0j4tw+sRtbS5quMZNJSWzrBnBtieXhQnkzGNIEvL8L22+FwWZBwbQOMQZh0jaf/eBzCg+hvjZwKE9h/ZA0iUF3zXIeqPdt4P7dYj3dNgh7L5d4orYBwaxt018/tfwIQRbQFFETKfCHdk79hE3+VQwe39G+gDPU1YpNPMTrpv7Mals9GEdIrJ36Jbn7dQHtLSy8JOuCDlNZG12d55uFj7KoZvmtX8GL+l8ydn8vwekRd/F6VNlflz4Dy4k53dwN8snYdYKppa03avmP7aXFRlp3elr5XwvlYsDg1og4YVs2v+mqfoF3Jp0eFJDACGJ+0OgXZWRy54CVIeEave9loLYU4iRuF8oBQn4eOF0tp6vS8Fjek9Yt3zOs8Y+0ah1lZcmftO57tnOb0O/2/W8HI/hsY7ebvF7VepcVa69XHqAnfT8w0L7WZcaq+sbXEmjVNSfRT3a+qoqZPdrdUjnqRaM3+c/UhicbrmI3Ri6d6zxjRFP/HcW3QwxB0KnmEwQtryzR/yuj6lvsAaUqQxtb+KsRuxuDXtMP3x/4fRZt8AbWN8fwAAAAASUVORK5CYII=++{-# START_FILE templates/default-layout-wrapper.hamlet #-}+$newline never+\<!doctype html>+\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->+\<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->+\<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->+\<!--[if gt IE 8]><!-->+<html class="no-js" lang="en"> <!--<![endif]-->+    <head>+        <meta charset="UTF-8">++        <title>#{pageTitle pc}+        <meta name="description" content="">+        <meta name="author" content="">++        <meta name="viewport" content="width=device-width,initial-scale=1">++        ^{pageHead pc}++        \<!--[if lt IE 9]>+        \<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>+        \<![endif]-->++        <script>+          document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');+    <body>+        <div class="container">+            <header>+            <div id="main" role="main">+              ^{pageBody pc}+            <footer>+                #{extraCopyright $ appExtra $ settings master}++        $maybe analytics <- extraAnalytics $ appExtra $ settings master+            <script>+              if(!window.location.href.match(/localhost/)){+                window._gaq = [['_setAccount','#{analytics}'],['_trackPageview'],['_trackPageLoadTime']];+                (function() {+                \  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;+                \  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';+                \  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);+                })();+              }+        \<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.  chromium.org/developers/how-tos/chrome-frame-getting-started -->+        \<!--[if lt IE 7 ]>+            <script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">+            <script>+                window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})+        \<![endif]-->++{-# START_FILE templates/default-layout.hamlet #-}+$maybe msg <- mmsg+    <div #message>#{msg}+^{widget}++{-# START_FILE templates/homepage.hamlet #-}+<h1>_{MsgHello}++<ol>+  <li>Now that you have a working project you should use the #+    \<a href="http://www.yesodweb.com/book/">Yesod book</a> to learn more. #+    You can also use this scaffolded site to explore some basic concepts.++  <li> This page was generated by the #{handlerName} handler in #+    \<em>Handler/Home.hs</em>.++  <li> The #{handlerName} handler is set to generate your site's home screen in Routes file #+    <em>config/routes++  <li> The HTML you are seeing now is actually composed by a number of <em>widgets</em>, #+    most of them are brought together by the <em>defaultLayout</em> function which #+    is defined in the <em>Foundation.hs</em> module, and used by <em>#{handlerName}</em>. #+    All the files for templates and wigdets are in <em>templates</em>.++  <li>+    A Widget's Html, Css and Javascript are separated in three files with the #+    \<em>.hamlet</em>, <em>.lucius</em> and <em>.julius</em> extensions. ++  <li ##{aDomId}>If you had javascript enabled then you wouldn't be seeing this.+    +  <li #form>+    This is an example trivial Form. Read the #+    \<a href="http://www.yesodweb.com/book/forms">Forms chapter</a> #+    on the yesod book to learn more about them.+    $maybe (info,con) <- submission+      <div .message>+        Your file's type was <em>#{fileContentType info}</em>. You say it has: <em>#{con}</em>+    <form method=post action=@{HomeR}#form enctype=#{formEnctype}>+      ^{formWidget}+      <input type="submit" value="Send it!">++  <li> And last but not least, Testing. In <em>tests/main.hs</em> you will find a #+    test suite that performs tests on this page. #+    You can run your tests by doing: <pre>yesod test</pre>++{-# START_FILE templates/homepage.julius #-}+document.getElementById(#{toJSON aDomId}).innerHTML = "This text was added by the Javascript part of the homepage widget.";++{-# START_FILE templates/homepage.lucius #-}+h1 {+    text-align: center+}+h2##{aDomId} {+    color: #990+}++{-# START_FILE tests/HomeTest.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module HomeTest+    ( homeSpecs+    ) where++import TestImport+import qualified Data.List as L++homeSpecs :: Specs+homeSpecs =+    ydescribe "These are some example tests" $ do++        yit "loads the index and checks it looks right" $ do+            get HomeR+            statusIs 200+            htmlAllContain "h1" "Hello"++            request $ do+                setMethod "POST"+                setUrl HomeR+                addNonce+                fileByLabel "Choose a file" "tests/main.hs" "text/plain" -- talk about self-reference+                byLabel "What's on the file?" "Some Content"++            statusIs 200+            printBody+            htmlCount ".message" 1+            htmlAllContain ".message" "Some Content"+            htmlAllContain ".message" "text/plain"++        -- This is a simple example of using a database access in a test.  The+        -- test will succeed for a fresh scaffolded site with an empty database,+        -- but will fail on an existing database with a non-empty user table.+        yit "leaves the user table empty" $ do+            get HomeR+            statusIs 200+            users <- runDB $ selectList ([] :: [Filter User]) []+            assertEqual "user table empty" 0 $ L.length users++{-# START_FILE tests/TestImport.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module TestImport+    ( module Yesod.Test+    , module Model+    , module Foundation+    , module Database.Persist+    , runDB+    , Specs+    ) where++import Yesod.Test+import Database.Persist hiding (get)+import Database.Persist.MongoDB hiding (master)+import Control.Monad.Trans.Resource (ResourceT, runResourceT)+import Control.Monad.Logger (NoLoggingT, runNoLoggingT)+import Control.Monad.IO.Class (liftIO)++import Foundation+import Model++type Specs = YesodSpec App++runDB :: Action (NoLoggingT (ResourceT IO)) a -> YesodExample App a+runDB query = do+    pool <- fmap connPool getTestYesod+    liftIO $ runResourceT $ runNoLoggingT $ runMongoDBPoolDef query pool++{-# START_FILE tests/main.hs #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Main where++import Import+import Yesod.Default.Config+import Yesod.Test+import Test.Hspec (hspec)+import Application (makeFoundation)++import HomeTest++main :: IO ()+main = do+    conf <- Yesod.Default.Config.loadConfig $ (configSettings Testing)+                { csParseExtra = parseExtra+                }+    foundation <- makeFoundation conf+    hspec $ do+        yesodSpec foundation $ do+            homeSpecs+
+ hsfiles/mysql.hsfiles view
@@ -0,0 +1,5884 @@+{-# START_FILE .ghci #-}+:set -i.:config:dist/build/autogen+:set -XCPP -XTemplateHaskell -XQuasiQuotes -XTypeFamilies -XFlexibleContexts -XGADTs -XOverloadedStrings -XMultiParamTypeClasses -XGeneralizedNewtypeDeriving -XEmptyDataDecls++{-# START_FILE .gitignore #-}+dist*+static/tmp/+config/client_session_key.aes+*.hi+*.o+*.sqlite3+.hsenv*+yesod-devel/++{-# START_FILE Application.hs #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Application+    ( makeApplication+    , getApplicationDev+    , makeFoundation+    ) where++import Import+import Settings+import Yesod.Auth+import Yesod.Default.Config+import Yesod.Default.Main+import Yesod.Default.Handlers+import Network.Wai.Middleware.RequestLogger+import qualified Database.Persist+import Database.Persist.Sql (runMigration)+import Network.HTTP.Conduit (newManager, def)+import Control.Monad.Logger (runLoggingT)+import System.IO (stdout)+import System.Log.FastLogger (mkLogger)++-- Import all relevant handler modules here.+-- Don't forget to add new modules to your cabal file!+import Handler.Home++-- This line actually creates our YesodDispatch instance. It is the second half+-- of the call to mkYesodData which occurs in Foundation.hs. Please see the+-- comments there for more details.+mkYesodDispatch "App" resourcesApp++-- This function allocates resources (such as a database connection pool),+-- performs initialization and creates a WAI application. This is also the+-- place to put your migrate statements to have automatic database+-- migrations handled by Yesod.+makeApplication :: AppConfig DefaultEnv Extra -> IO Application+makeApplication conf = do+    foundation <- makeFoundation conf++    -- Initialize the logging middleware+    logWare <- mkRequestLogger def+        { outputFormat =+            if development+                then Detailed True+                else Apache FromSocket+        , destination = Logger $ appLogger foundation+        }++    -- Create the WAI application and apply middlewares+    app <- toWaiAppPlain foundation+    return $ logWare app++-- | Loads up any necessary settings, creates your foundation datatype, and+-- performs some initialization.+makeFoundation :: AppConfig DefaultEnv Extra -> IO App+makeFoundation conf = do+    manager <- newManager def+    s <- staticSite+    dbconf <- withYamlEnvironment "config/mysql.yml" (appEnv conf)+              Database.Persist.loadConfig >>=+              Database.Persist.applyEnv+    p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)+    logger <- mkLogger True stdout+    let foundation = App conf s p manager dbconf logger++    -- Perform database migration using our application's logging settings.+    runLoggingT+        (Database.Persist.runPool dbconf (runMigration migrateAll) p)+        (messageLoggerSource foundation logger)++    return foundation++-- for yesod devel+getApplicationDev :: IO (Int, Application)+getApplicationDev =+    defaultDevelApp loader makeApplication+  where+    loader = Yesod.Default.Config.loadConfig (configSettings Development)+        { csParseExtra = parseExtra+        }++{-# START_FILE Foundation.hs #-}+module Foundation where++import Prelude+import Yesod+import Yesod.Static+import Yesod.Auth+import Yesod.Auth.BrowserId+import Yesod.Auth.GoogleEmail+import Yesod.Default.Config+import Yesod.Default.Util (addStaticContentExternal)+import Network.HTTP.Conduit (Manager)+import qualified Settings+import Settings.Development (development)+import qualified Database.Persist+import Database.Persist.Sql (SqlPersistT)+import Settings.StaticFiles+import Settings (widgetFile, Extra (..))+import Model+import Text.Jasmine (minifym)+import Text.Hamlet (hamletFile)+import System.Log.FastLogger (Logger)++-- | The site argument for your application. This can be a good place to+-- keep settings and values requiring initialization before your application+-- starts running, such as database connections. Every handler will have+-- access to the data present here.+data App = App+    { settings :: AppConfig DefaultEnv Extra+    , getStatic :: Static -- ^ Settings for static file serving.+    , connPool :: Database.Persist.PersistConfigPool Settings.PersistConf -- ^ Database connection pool.+    , httpManager :: Manager+    , persistConfig :: Settings.PersistConf+    , appLogger :: Logger+    }++-- Set up i18n messages. See the message folder.+mkMessage "App" "messages" "en"++-- This is where we define all of the routes in our application. For a full+-- explanation of the syntax, please see:+-- http://www.yesodweb.com/book/handler+--+-- This function does three things:+--+-- * Creates the route datatype AppRoute. Every valid URL in your+--   application can be represented as a value of this type.+-- * Creates the associated type:+--       type instance Route App = AppRoute+-- * Creates the value resourcesApp which contains information on the+--   resources declared below. This is used in Handler.hs by the call to+--   mkYesodDispatch+--+-- What this function does *not* do is create a YesodSite instance for+-- App. Creating that instance requires all of the handler functions+-- for our application to be in scope. However, the handler functions+-- usually require access to the AppRoute datatype. Therefore, we+-- split these actions into two functions and place them in separate files.+mkYesodData "App" $(parseRoutesFile "config/routes")++type Form x = Html -> MForm (HandlerT App IO) (FormResult x, Widget)++-- Please see the documentation for the Yesod typeclass. There are a number+-- of settings which can be configured by overriding methods here.+instance Yesod App where+    approot = ApprootMaster $ appRoot . settings++    -- Store session data on the client in encrypted cookies,+    -- default session idle timeout is 120 minutes+    makeSessionBackend _ = fmap Just $ defaultClientSessionBackend+        (120 * 60) -- 120 minutes+        "config/client_session_key.aes"++    defaultLayout widget = do+        master <- getYesod+        mmsg <- getMessage++        -- We break up the default layout into two components:+        -- default-layout is the contents of the body tag, and+        -- default-layout-wrapper is the entire page. Since the final+        -- value passed to hamletToRepHtml cannot be a widget, this allows+        -- you to use normal widget features in default-layout.++        pc <- widgetToPageContent $ do+            $(combineStylesheets 'StaticR+                [ css_normalize_css+                , css_bootstrap_css+                ])+            $(widgetFile "default-layout")+        hamletToRepHtml $(hamletFile "templates/default-layout-wrapper.hamlet")++    -- This is done to provide an optimization for serving static files from+    -- a separate domain. Please see the staticRoot setting in Settings.hs+    urlRenderOverride y (StaticR s) =+        Just $ uncurry (joinPath y (Settings.staticRoot $ settings y)) $ renderRoute s+    urlRenderOverride _ _ = Nothing++    -- The page to be redirected to when authentication is required.+    authRoute _ = Just $ AuthR LoginR++    -- This function creates static content files in the static folder+    -- and names them based on a hash of their content. This allows+    -- expiration dates to be set far in the future without worry of+    -- users receiving stale content.+    addStaticContent =+        addStaticContentExternal minifym genFileName Settings.staticDir (StaticR . flip StaticRoute [])+      where+        -- Generate a unique filename based on the content itself+        genFileName lbs+            | development = "autogen-" ++ base64md5 lbs+            | otherwise   = base64md5 lbs++    -- Place Javascript at bottom of the body tag so the rest of the page loads first+    jsLoader _ = BottomOfBody++    -- What messages should be logged. The following includes all messages when+    -- in development, and warnings and errors in production.+    shouldLog _ _source level =+        development || level == LevelWarn || level == LevelError++    makeLogger = return . appLogger++-- How to run database actions.+instance YesodPersist App where+    type YesodPersistBackend App = SqlPersistT+    runDB = defaultRunDB persistConfig connPool+instance YesodPersistRunner App where+    getDBRunner = defaultGetDBRunner connPool++instance YesodAuth App where+    type AuthId App = UserId++    -- Where to send a user after successful login+    loginDest _ = HomeR+    -- Where to send a user after logout+    logoutDest _ = HomeR++    getAuthId creds = runDB $ do+        x <- getBy $ UniqueUser $ credsIdent creds+        case x of+            Just (Entity uid _) -> return $ Just uid+            Nothing -> do+                fmap Just $ insert $ User (credsIdent creds) Nothing++    -- You can add other plugins like BrowserID, email or OAuth here+    authPlugins _ = [authBrowserId def, authGoogleEmail]++    authHttpManager = httpManager++-- This instance is required to use forms. You can modify renderMessage to+-- achieve customized and internationalized form validation messages.+instance RenderMessage App FormMessage where+    renderMessage _ _ = defaultFormMessage++-- | Get the 'Extra' value, used to hold data from the settings.yml file.+getExtra :: Handler Extra+getExtra = fmap (appExtra . settings) getYesod++-- Note: previous versions of the scaffolding included a deliver function to+-- send emails. Unfortunately, there are too many different options for us to+-- give a reasonable default. Instead, the information is available on the+-- wiki:+--+-- https://github.com/yesodweb/yesod/wiki/Sending-email++{-# START_FILE Handler/Home.hs #-}+{-# LANGUAGE TupleSections, OverloadedStrings #-}+module Handler.Home where++import Import++-- This is a handler function for the GET request method on the HomeR+-- resource pattern. All of your resource patterns are defined in+-- config/routes+--+-- The majority of the code you will write in Yesod lives in these handler+-- functions. You can spread them across multiple files if you are so+-- inclined, or create a single monolithic file.+getHomeR :: Handler RepHtml+getHomeR = do+    (formWidget, formEnctype) <- generateFormPost sampleForm+    let submission = Nothing :: Maybe (FileInfo, Text)+        handlerName = "getHomeR" :: Text+    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++postHomeR :: Handler RepHtml+postHomeR = do+    ((result, formWidget), formEnctype) <- runFormPost sampleForm+    let handlerName = "postHomeR" :: Text+        submission = case result of+            FormSuccess res -> Just res+            _ -> Nothing++    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++sampleForm :: Form (FileInfo, Text)+sampleForm = renderDivs $ (,)+    <$> fileAFormReq "Choose a file"+    <*> areq textField "What's on the file?" Nothing++{-# START_FILE Import.hs #-}+module Import+    ( module Import+    ) where++import           Prelude              as Import hiding (head, init, last,+                                                 readFile, tail, writeFile)+import           Yesod                as Import hiding (Route (..))++import           Control.Applicative  as Import (pure, (<$>), (<*>))+import           Data.Text            as Import (Text)++import           Foundation           as Import+import           Model                as Import+import           Settings             as Import+import           Settings.Development as Import+import           Settings.StaticFiles as Import++#if __GLASGOW_HASKELL__ >= 704+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat),+                                                 (<>))+#else+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat))++infixr 5 <>+(<>) :: Monoid m => m -> m -> m+(<>) = mappend+#endif++{-# START_FILE Model.hs #-}+module Model where++import Prelude+import Yesod+import Data.Text (Text)+import Database.Persist.Quasi+import Data.Typeable (Typeable)++-- You can define all of your database entities in the entities file.+-- You can find more information on persistent and how to declare entities+-- at:+-- http://www.yesodweb.com/book/persistent/+share [mkPersist sqlOnlySettings, mkMigrate "migrateAll"]+    $(persistFileWith lowerCaseSettings "config/models")++{-# START_FILE PROJECTNAME.cabal #-}+name:              PROJECTNAME+version:           0.0.0+cabal-version:     >= 1.8+build-type:        Simple++Flag dev+    Description:   Turn on development settings, like auto-reload templates.+    Default:       False++Flag library-only+    Description:   Build for use with "yesod devel"+    Default:       False++library+    exposed-modules: Application+                     Foundation+                     Import+                     Model+                     Settings+                     Settings.StaticFiles+                     Settings.Development+                     Handler.Home++    if flag(dev) || flag(library-only)+        cpp-options:   -DDEVELOPMENT+        ghc-options:   -Wall -O0+    else+        ghc-options:   -Wall -O2++    extensions: TemplateHaskell+                QuasiQuotes+                OverloadedStrings+                NoImplicitPrelude+                CPP+                MultiParamTypeClasses+                TypeFamilies+                GADTs+                GeneralizedNewtypeDeriving+                FlexibleContexts+                EmptyDataDecls+                NoMonomorphismRestriction+                DeriveDataTypeable++    build-depends: base                          >= 4          && < 5+                 -- , yesod-platform                >= 1.1        && < 1.2+                 , yesod                         >= 1.2        && < 1.3+                 , yesod-core                    >= 1.2        && < 1.3+                 , yesod-auth                    >= 1.2        && < 1.3+                 , yesod-static                  >= 1.2        && < 1.3+                 , yesod-form                    >= 1.3        && < 1.4+                 , bytestring                    >= 0.9        && < 0.11+                 , text                          >= 0.11       && < 0.12+                 , persistent                    >= 1.2        && < 1.3+                 , persistent-mysql              >= 1.2        && < 1.3+                 , persistent-template           >= 1.2        && < 1.3+                 , template-haskell+                 , hamlet                        >= 1.1        && < 1.2+                 , shakespeare-css               >= 1.0        && < 1.1+                 , shakespeare-js                >= 1.0.2      && < 1.2+                 , shakespeare-text              >= 1.0        && < 1.1+                 , hjsmin                        >= 0.1        && < 0.2+                 , monad-control                 >= 0.3        && < 0.4+                 , wai-extra                     >= 1.3        && < 1.4+                 , yaml                          >= 0.8        && < 0.9+                 , http-conduit                  >= 1.9        && < 1.10+                 , directory                     >= 1.1        && < 1.3+                 , warp                          >= 1.3        && < 1.4+                 , data-default+                 , aeson+                 , conduit                       >= 1.0+                 , monad-logger                  >= 0.3+                 , fast-logger                   >= 0.3++executable         PROJECTNAME+    if flag(library-only)+        Buildable: False++    main-is:           main.hs+    hs-source-dirs:    app+    build-depends:     base+                     , PROJECTNAME+                     , yesod++    ghc-options:       -threaded -O2++test-suite test+    type:              exitcode-stdio-1.0+    main-is:           main.hs+    hs-source-dirs:    tests+    ghc-options:       -Wall++    build-depends: base+                 , PROJECTNAME+                 , yesod-test >= 1.2 && < 1.3+                 , yesod-core+                 , yesod+                 , persistent+                 , persistent-mysql+                 , resourcet+                 , monad-logger+                 , transformers+                 , hspec++{-# START_FILE Settings.hs #-}+-- | Settings are centralized, as much as possible, into this file. This+-- includes database connection settings, static file locations, etc.+-- In addition, you can configure a number of different aspects of Yesod+-- by overriding methods in the Yesod typeclass. That instance is+-- declared in the Foundation.hs file.+module Settings where++import Prelude+import Text.Shakespeare.Text (st)+import Language.Haskell.TH.Syntax+import Database.Persist.MySQL (MySQLConf)+import Yesod.Default.Config+import Yesod.Default.Util+import Data.Text (Text)+import Data.Yaml+import Control.Applicative+import Settings.Development+import Data.Default (def)+import Text.Hamlet++-- | Which Persistent backend this site is using.+type PersistConf = MySQLConf++-- Static setting below. Changing these requires a recompile++-- | The location of static files on your system. This is a file system+-- path. The default value works properly with your scaffolded site.+staticDir :: FilePath+staticDir = "static"++-- | The base URL for your static files. As you can see by the default+-- value, this can simply be "static" appended to your application root.+-- A powerful optimization can be serving static files from a separate+-- domain name. This allows you to use a web server optimized for static+-- files, more easily set expires and cache values, and avoid possibly+-- costly transference of cookies on static files. For more information,+-- please see:+--   http://code.google.com/speed/page-speed/docs/request.html#ServeFromCookielessDomain+--+-- If you change the resource pattern for StaticR in Foundation.hs, you will+-- have to make a corresponding change here.+--+-- To see how this value is used, see urlRenderOverride in Foundation.hs+staticRoot :: AppConfig DefaultEnv x -> Text+staticRoot conf = [st|#{appRoot conf}/static|]++-- | Settings for 'widgetFile', such as which template languages to support and+-- default Hamlet settings.+--+-- For more information on modifying behavior, see:+--+-- https://github.com/yesodweb/yesod/wiki/Overriding-widgetFile+widgetFileSettings :: WidgetFileSettings+widgetFileSettings = def+    { wfsHamletSettings = defaultHamletSettings+        { hamletNewlines = AlwaysNewlines+        }+    }++-- The rest of this file contains settings which rarely need changing by a+-- user.++widgetFile :: String -> Q Exp+widgetFile = (if development then widgetFileReload+                             else widgetFileNoReload)+              widgetFileSettings++data Extra = Extra+    { extraCopyright :: Text+    , extraAnalytics :: Maybe Text -- ^ Google Analytics+    } deriving Show++parseExtra :: DefaultEnv -> Object -> Parser Extra+parseExtra _ o = Extra+    <$> o .:  "copyright"+    <*> o .:? "analytics"++{-# START_FILE Settings/Development.hs #-}+module Settings.Development where++import Prelude++development :: Bool+development =+#if DEVELOPMENT+  True+#else+  False+#endif++production :: Bool+production = not development++{-# START_FILE Settings/StaticFiles.hs #-}+module Settings.StaticFiles where++import Prelude (IO)+import Yesod.Static+import qualified Yesod.Static as Static+import Settings (staticDir)+import Settings.Development+import Language.Haskell.TH (Q, Exp, Name)+import Data.Default (def)++-- | use this to create your static file serving site+staticSite :: IO Static.Static+staticSite = if development then Static.staticDevel staticDir+                            else Static.static      staticDir++-- | This generates easy references to files in the static directory at compile time,+--   giving you compile-time verification that referenced files exist.+--   Warning: any files added to your static directory during run-time can't be+--   accessed this way. You'll have to use their FilePath or URL to access them.+$(staticFiles Settings.staticDir)++combineSettings :: CombineSettings+combineSettings = def++-- The following two functions can be used to combine multiple CSS or JS files+-- at compile time to decrease the number of http requests.+-- Sample usage (inside a Widget):+--+-- > $(combineStylesheets 'StaticR [style1_css, style2_css])++combineStylesheets :: Name -> [Route Static] -> Q Exp+combineStylesheets = combineStylesheets' development combineSettings++combineScripts :: Name -> [Route Static] -> Q Exp+combineScripts = combineScripts' development combineSettings++{-# START_FILE app/main.hs #-}+import Prelude              (IO)+import Yesod.Default.Config (fromArgs)+import Yesod.Default.Main   (defaultMain)+import Settings             (parseExtra)+import Application          (makeApplication)++main :: IO ()+main = defaultMain (fromArgs parseExtra) makeApplication++{-# START_FILE BASE64 config/favicon.ico #-}+AAABAAIAEBAAAAEAIABoBAAAJgAAABAQAgABAAEAsAAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAApl4sAAAAAAAAAAAAAAAAAUEpGyNpSjaIg2NO2ZBvWfqTc13/+jW1X9YNhTMZrSTNkUTMfDwAAAAAAAAAAAAAAAAAAAAAAAAAANR0NClk6JmF+W0Txj2xV/41qVP+M+aVP/jGlS/4xpUv+MaVL/i2dQ/3pVPdNeOiEzQRsBAgAAAAAAAAAAMBgHAlIxG1h5UDb/h15D9n5W+PPZ4TzXmeVE303hQNtV4UDbVeFA11XdQNdV5UTfbbUUpx1UsEBgAAAAAAAAFADIVAwlULxY/f1M1+4dOffryecFHMXTIVhAAAAAURAAAOEwAADxQAAA8TAAAPEAAADigEABFNJAkZTSQJCRAHAQdKIARt+OxUAC1kvE3qQYEDfzJt5wXtOL9pQJAa0UScKjVInCo1SJwqNUSYJjVElCY1RJQmLUSUHslEjBGcu+EgAuVSQC/00eAGAYAAAPXzAQuLGAXs6ygV/PYTESwkMXAFRGHgI3Rx4BPEceATxHHQE7RBsBMkwf+AqlUIQHgQhoAaVUhAP9TIQDhSBwAI0EXAD5xQSHbzJp4wJRiQtBRIgKuRxsAb0kdAGpJHQBqSR0A+e04fAJNJHQClVCEA/0YcAIRVIgD/VSIA7E0fADQyDQAyaToa1MqXdMLJl3bBc0Ii6UscAJFFGgBE+RRoAQUIZAFlRIADpVSIA/1UiAP9JHwN9WicG/1QhAIMAAAAMVywPoaBtTNi6imnEsIBfya9+Xc1m+OBm2UycIilgqDYVVKQ2DVigJ4FwqCf5cKgr/Qx8GUGAwEc08EwAPTSgQY4dXN+LPnXy9g1c54XtM+LevJl3a/k2RE3WY5Gv9mNxn/Zjga/2c5G/9oOhz/Zzka/DQYBRFZLRA1JhAAJHhML9XJlnTCqXxe+zXFHLPtxRyv/n3BR2MuZd7uFWjzmc0gt/nRKLv90Sy//dUww/21CJcIAAAAATCsURXRONdR+Vjr5+j2ZL5oJbQfN+Vz3/flg//4NcQfePZkrogVk/8n5YP/6BW0H/gVtD/oBaQf9qQCRIJAgAAFAxHRt4+VDzVjWpS/4lmT/6LZ1D/jGlS/4xpU/6MaVL/i2hS/otpUv6Na1T+jmtV/o9tV/98Vj2cYzoeBgAA+AAAGAgAAZ0cyMIVkTtqae2f/mXpm/5l5Zf6Zemb+mXpm/5p6Zv+ae2f+mnxp/5p7Z/+HZE2qdE84+FAAAAAAAAAAAAAAAAAAAAABrTDgfhWVQnp2Abf+njHv/pot6/6aMev+njHv/qI18/5t+avOHZU9y+fFc/DgAAAAAAAAAAJhABAAAAAAAAAAAAyqmXADYdCQNoSDQjh2hUbpd6aJ+Zfmurl3pnlYZkTlpw+TDYTX0IxAbNeMwAAAAAAsoFfAPgfAADwBwAA4AMAAOH/AADwAQAAsPwAAJh4AAAYOAAAkAAAALAA+AADgAAAAwAEAAMABAADgAwAA8A8AAP4/AAAoAAAAEAAAACAAAAABAAEAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==++{-# START_FILE config/keter.yaml #-}+exec: ../dist/build/PROJECTNAME/PROJECTNAME+args:+    - production+host: <<HOST-NOT-SET>>++# Use the following to automatically copy your bundle upon creation via `yesod+# keter`. Uses `scp` internally, so you can set it to a remote destination+# copy-to: user@host:/opt/keter/incoming++{-# START_FILE config/models #-}+User+    ident Text+    password Text Maybe+    UniqueUser ident+    deriving Typeable+Email+    email Text+    user UserId Maybe+    verkey Text Maybe+    UniqueEmail email++ -- By default this file is used in Model.hs (which is imported by Foundation.hs)++{-# START_FILE config/mysql.yml #-}+Default: &defaults+  user: PROJECTNAME+  password: PROJECTNAME+  host: localhost+  port: 3306+  database: PROJECTNAME+  poolsize: 10++Development:+  <<: *defaults++Testing:+  database: PROJECTNAME_test+  <<: *defaults++Staging:+  database: PROJECTNAME_staging+  poolsize: 100+  <<: *defaults++Production:+  database: PROJECTNAME_production+  poolsize: 100+  <<: *defaults++{-# START_FILE config/postgresql.yml #-}+Default: &defaults+  user: PROJECTNAME+  password: PROJECTNAME+  host: localhost+  port: 5432+  database: PROJECTNAME+  poolsize: 10++Development:+  <<: *defaults++Testing:+  database: PROJECTNAME_test+  <<: *defaults++Staging:+  database: PROJECTNAME_staging+  poolsize: 100+  <<: *defaults++Production:+  database: PROJECTNAME_production+  poolsize: 100+  <<: *defaults++{-# START_FILE config/robots.txt #-}+User-agent: *++{-# START_FILE config/routes #-}+/static StaticR Static getStatic+/auth   AuthR   Auth   getAuth++/favicon.ico FaviconR GET+/robots.txt RobotsR GET++/ HomeR GET POST++{-# START_FILE config/settings.yml #-}+Default: &defaults+  host: "*4" # any IPv4 host+  port: 3000+  approot: "http://localhost:3000"+  copyright: Insert copyright statement here+  #analytics: UA-YOURCODE++Development:+  <<: *defaults++Testing:+  <<: *defaults++Staging:+  <<: *defaults++Production:+  #approot: "http://www.example.com"+  <<: *defaults++{-# START_FILE deploy/Procfile #-}+# Free deployment to Heroku.+#+#   !! Warning: You must use a 64 bit machine to compile !!+#+#   This could mean using a virtual machine. Give your VM as much memory as you can to speed up linking.+#+# Basic Yesod setup:+#+# * Move this file out of the deploy directory and into your root directory+#+#     mv deploy/Procfile ./+#+# * Create an empty package.json+#     echo '{ "name": "PROJECTNAME", "version": "0.0.1", "dependencies": {} }' >> package.json+#+# Postgresql Yesod setup:+#+# * add dependencies on the "heroku", "aeson" and "unordered-containers" packages in your cabal file+#+# * add code in Application.hs to use the heroku package and load the connection parameters.+#   The below works for Postgresql.+#+#   import Data.HashMap.Strict as H+#   import Data.Aeson.Types as AT+#   #ifndef DEVELOPMENT+#   import qualified Web.Heroku+#   #endif+#+#+#+#   makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO App+#   makeFoundation conf setLogger = do+#       manager <- newManager def+#       s <- staticSite+#       hconfig <- loadHerokuConfig+#       dbconf <- withYamlEnvironment "config/postgresql.yml" (appEnv conf)+#                 (Database.Persist.Store.loadConfig . combineMappings hconfig) >>=+#                 Database.Persist.Store.applyEnv+#       p <- Database.Persist.Store.createPoolConfig (dbconf :: Settings.PersistConfig)+#       Database.Persist.Store.runPool dbconf (runMigration migrateAll) p+#       return $ App conf setLogger s p manager dbconf+#+#   #ifndef DEVELOPMENT+#   canonicalizeKey :: (Text, val) -> (Text, val)+#   canonicalizeKey ("dbname", val) = ("database", val)+#   canonicalizeKey pair = pair+#+#   toMapping :: [(Text, Text)] -> AT.Value+#   toMapping xs = AT.Object $ M.fromList $ map (\(key, val) -> (key, AT.String val)) xs+#   #endif+#+#   combineMappings :: AT.Value -> AT.Value -> AT.Value+#   combineMappings (AT.Object m1) (AT.Object m2) = AT.Object $ m1 `M.union` m2+#   combineMappings _ _ = error "Data.Object is not a Mapping."+#+#   loadHerokuConfig :: IO AT.Value+#   loadHerokuConfig = do+#   #ifdef DEVELOPMENT+#       return $ AT.Object M.empty+#   #else+#       Web.Heroku.dbConnParams >>= return . toMapping . map canonicalizeKey+#   #endif++++# Heroku setup:+# Find the Heroku guide. Roughly:+#+# * sign up for a heroku account and register your ssh key+# * create a new application on the *cedar* stack+#+# * make your Yesod project the git repository for that application+# * create a deploy branch+#+#     git checkout -b deploy+#+# Repeat these steps to deploy:+# * add your web executable binary (referenced below) to the git repository+#+#     git checkout deploy+#     git add ./dist/build/PROJECTNAME/PROJECTNAME+#     git commit -m deploy+#+# * push to Heroku+#+#     git push heroku deploy:master+++# Heroku configuration that runs your app+web: ./dist/build/PROJECTNAME/PROJECTNAME production -p $PORT++{-# START_FILE devel.hs #-}+{-# LANGUAGE PackageImports #-}+import "PROJECTNAME" Application (getApplicationDev)+import Network.Wai.Handler.Warp+    (runSettings, defaultSettings, settingsPort)+import Control.Concurrent (forkIO)+import System.Directory (doesFileExist, removeFile)+import System.Exit (exitSuccess)+import Control.Concurrent (threadDelay)++main :: IO ()+main = do+    putStrLn "Starting devel application"+    (port, app) <- getApplicationDev+    forkIO $ runSettings defaultSettings+        { settingsPort = port+        } app+    loop++loop :: IO ()+loop = do+  threadDelay 100000+  e <- doesFileExist "yesod-devel/devel-terminate"+  if e then terminateDevel else loop++terminateDevel :: IO ()+terminateDevel = exitSuccess++{-# START_FILE messages/en.msg #-}+Hello: Hello++{-# START_FILE static/css/bootstrap.css #-}+/*!+ * Bootstrap v2.0.2+ *+ * Copyright 2012 Twitter, Inc+ * Licensed under the Apache License v2.0+ * http://www.apache.org/licenses/LICENSE-2.0+ *+ * Designed and built with all the love in the world @twitter by @mdo and @fat.+ */+article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+  display: block;+}+audio,+canvas,+video {+  display: inline-block;+  *display: inline;+  *zoom: 1;+}+audio:not([controls]) {+  display: none;+}+html {+  font-size: 100%;+  -webkit-text-size-adjust: 100%;+  -ms-text-size-adjust: 100%;+}+a:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+a:hover,+a:active {+  outline: 0;+}+sub,+sup {+  position: relative;+  font-size: 75%;+  line-height: 0;+  vertical-align: baseline;+}+sup {+  top: -0.5em;+}+sub {+  bottom: -0.25em;+}+img {+  height: auto;+  border: 0;+  -ms-interpolation-mode: bicubic;+  vertical-align: middle;+}+button,+input,+select,+textarea {+  margin: 0;+  font-size: 100%;+  vertical-align: middle;+}+button,+input {+  *overflow: visible;+  line-height: normal;+}+button::-moz-focus-inner,+input::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button,+input[type="button"],+input[type="reset"],+input[type="submit"] {+  cursor: pointer;+  -webkit-appearance: button;+}+input[type="search"] {+  -webkit-appearance: textfield;+  -webkit-box-sizing: content-box;+  -moz-box-sizing: content-box;+  box-sizing: content-box;+}+input[type="search"]::-webkit-search-decoration,+input[type="search"]::-webkit-search-cancel-button {+  -webkit-appearance: none;+}+textarea {+  overflow: auto;+  vertical-align: top;+}+.clearfix {+  *zoom: 1;+}+.clearfix:before,+.clearfix:after {+  display: table;+  content: "";+}+.clearfix:after {+  clear: both;+}+.hide-text {+  overflow: hidden;+  text-indent: 100%;+  white-space: nowrap;+}+.input-block-level {+  display: block;+  width: 100%;+  min-height: 28px;+  /* Make inputs at least the height of their button counterpart */++  /* Makes inputs behave like true block-level elements */++  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+}+body {+  margin: 0;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  background-color: #ffffff;+}+a {+  color: #0088cc;+  text-decoration: none;+}+a:hover {+  color: #005580;+  text-decoration: underline;+}+.row {+  margin-left: -20px;+  *zoom: 1;+}+.row:before,+.row:after {+  display: table;+  content: "";+}+.row:after {+  clear: both;+}+[class*="span"] {+  float: left;+  margin-left: 20px;+}+.container,+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.span12 {+  width: 940px;+}+.span11 {+  width: 860px;+}+.span10 {+  width: 780px;+}+.span9 {+  width: 700px;+}+.span8 {+  width: 620px;+}+.span7 {+  width: 540px;+}+.span6 {+  width: 460px;+}+.span5 {+  width: 380px;+}+.span4 {+  width: 300px;+}+.span3 {+  width: 220px;+}+.span2 {+  width: 140px;+}+.span1 {+  width: 60px;+}+.offset12 {+  margin-left: 980px;+}+.offset11 {+  margin-left: 900px;+}+.offset10 {+  margin-left: 820px;+}+.offset9 {+  margin-left: 740px;+}+.offset8 {+  margin-left: 660px;+}+.offset7 {+  margin-left: 580px;+}+.offset6 {+  margin-left: 500px;+}+.offset5 {+  margin-left: 420px;+}+.offset4 {+  margin-left: 340px;+}+.offset3 {+  margin-left: 260px;+}+.offset2 {+  margin-left: 180px;+}+.offset1 {+  margin-left: 100px;+}+.row-fluid {+  width: 100%;+  *zoom: 1;+}+.row-fluid:before,+.row-fluid:after {+  display: table;+  content: "";+}+.row-fluid:after {+  clear: both;+}+.row-fluid > [class*="span"] {+  float: left;+  margin-left: 2.127659574%;+}+.row-fluid > [class*="span"]:first-child {+  margin-left: 0;+}+.row-fluid > .span12 {+  width: 99.99999998999999%;+}+.row-fluid > .span11 {+  width: 91.489361693%;+}+.row-fluid > .span10 {+  width: 82.97872339599999%;+}+.row-fluid > .span9 {+  width: 74.468085099%;+}+.row-fluid > .span8 {+  width: 65.95744680199999%;+}+.row-fluid > .span7 {+  width: 57.446808505%;+}+.row-fluid > .span6 {+  width: 48.93617020799999%;+}+.row-fluid > .span5 {+  width: 40.425531911%;+}+.row-fluid > .span4 {+  width: 31.914893614%;+}+.row-fluid > .span3 {+  width: 23.404255317%;+}+.row-fluid > .span2 {+  width: 14.89361702%;+}+.row-fluid > .span1 {+  width: 6.382978723%;+}+.container {+  margin-left: auto;+  margin-right: auto;+  *zoom: 1;+}+.container:before,+.container:after {+  display: table;+  content: "";+}+.container:after {+  clear: both;+}+.container-fluid {+  padding-left: 20px;+  padding-right: 20px;+  *zoom: 1;+}+.container-fluid:before,+.container-fluid:after {+  display: table;+  content: "";+}+.container-fluid:after {+  clear: both;+}+p {+  margin: 0 0 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+}+p small {+  font-size: 11px;+  color: #999999;+}+.lead {+  margin-bottom: 18px;+  font-size: 20px;+  font-weight: 200;+  line-height: 27px;+}+h1,+h2,+h3,+h4,+h5,+h6 {+  margin: 0;+  font-family: inherit;+  font-weight: bold;+  color: inherit;+  text-rendering: optimizelegibility;+}+h1 small,+h2 small,+h3 small,+h4 small,+h5 small,+h6 small {+  font-weight: normal;+  color: #999999;+}+h1 {+  font-size: 30px;+  line-height: 36px;+}+h1 small {+  font-size: 18px;+}+h2 {+  font-size: 24px;+  line-height: 36px;+}+h2 small {+  font-size: 18px;+}+h3 {+  line-height: 27px;+  font-size: 18px;+}+h3 small {+  font-size: 14px;+}+h4,+h5,+h6 {+  line-height: 18px;+}+h4 {+  font-size: 14px;+}+h4 small {+  font-size: 12px;+}+h5 {+  font-size: 12px;+}+h6 {+  font-size: 11px;+  color: #999999;+  text-transform: uppercase;+}+.page-header {+  padding-bottom: 17px;+  margin: 18px 0;+  border-bottom: 1px solid #eeeeee;+}+.page-header h1 {+  line-height: 1;+}+ul,+ol {+  padding: 0;+  margin: 0 0 9px 25px;+}+ul ul,+ul ol,+ol ol,+ol ul {+  margin-bottom: 0;+}+ul {+  list-style: disc;+}+ol {+  list-style: decimal;+}+li {+  line-height: 18px;+}+ul.unstyled,+ol.unstyled {+  margin-left: 0;+  list-style: none;+}+dl {+  margin-bottom: 18px;+}+dt,+dd {+  line-height: 18px;+}+dt {+  font-weight: bold;+  line-height: 17px;+}+dd {+  margin-left: 9px;+}+.dl-horizontal dt {+  float: left;+  clear: left;+  width: 120px;+  text-align: right;+}+.dl-horizontal dd {+  margin-left: 130px;+}+hr {+  margin: 18px 0;+  border: 0;+  border-top: 1px solid #eeeeee;+  border-bottom: 1px solid #ffffff;+}+strong {+  font-weight: bold;+}+em {+  font-style: italic;+}+.muted {+  color: #999999;+}+abbr[title] {+  border-bottom: 1px dotted #ddd;+  cursor: help;+}+abbr.initialism {+  font-size: 90%;+  text-transform: uppercase;+}+blockquote {+  padding: 0 0 0 15px;+  margin: 0 0 18px;+  border-left: 5px solid #eeeeee;+}+blockquote p {+  margin-bottom: 0;+  font-size: 16px;+  font-weight: 300;+  line-height: 22.5px;+}+blockquote small {+  display: block;+  line-height: 18px;+  color: #999999;+}+blockquote small:before {+  content: '\2014 \00A0';+}+blockquote.pull-right {+  float: right;+  padding-left: 0;+  padding-right: 15px;+  border-left: 0;+  border-right: 5px solid #eeeeee;+}+blockquote.pull-right p,+blockquote.pull-right small {+  text-align: right;+}+q:before,+q:after,+blockquote:before,+blockquote:after {+  content: "";+}+address {+  display: block;+  margin-bottom: 18px;+  line-height: 18px;+  font-style: normal;+}+small {+  font-size: 100%;+}+cite {+  font-style: normal;+}+code,+pre {+  padding: 0 3px 2px;+  font-family: Menlo, Monaco, "Courier New", monospace;+  font-size: 12px;+  color: #333333;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+code {+  padding: 2px 4px;+  color: #d14;+  background-color: #f7f7f9;+  border: 1px solid #e1e1e8;+}+pre {+  display: block;+  padding: 8.5px;+  margin: 0 0 9px;+  font-size: 12.025px;+  line-height: 18px;+  background-color: #f5f5f5;+  border: 1px solid #ccc;+  border: 1px solid rgba(0, 0, 0, 0.15);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  white-space: pre;+  white-space: pre-wrap;+  word-break: break-all;+  word-wrap: break-word;+}+pre.prettyprint {+  margin-bottom: 18px;+}+pre code {+  padding: 0;+  color: inherit;+  background-color: transparent;+  border: 0;+}+.pre-scrollable {+  max-height: 340px;+  overflow-y: scroll;+}+form {+  margin: 0 0 18px;+}+fieldset {+  padding: 0;+  margin: 0;+  border: 0;+}+legend {+  display: block;+  width: 100%;+  padding: 0;+  margin-bottom: 27px;+  font-size: 19.5px;+  line-height: 36px;+  color: #333333;+  border: 0;+  border-bottom: 1px solid #eee;+}+legend small {+  font-size: 13.5px;+  color: #999999;+}+label,+input,+button,+select,+textarea {+  font-size: 13px;+  font-weight: normal;+  line-height: 18px;+}+input,+button,+select,+textarea {+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+}+label {+  display: block;+  margin-bottom: 5px;+  color: #333333;+}+input,+textarea,+select,+.uneditable-input {+  display: inline-block;+  width: 210px;+  height: 18px;+  padding: 4px;+  margin-bottom: 9px;+  font-size: 13px;+  line-height: 18px;+  color: #555555;+  border: 1px solid #cccccc;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.uneditable-textarea {+  width: auto;+  height: auto;+}+label input,+label textarea,+label select {+  display: block;+}+input[type="image"],+input[type="checkbox"],+input[type="radio"] {+  width: auto;+  height: auto;+  padding: 0;+  margin: 3px 0;+  *margin-top: 0;+  /* IE7 */++  line-height: normal;+  cursor: pointer;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+  border: 0 \9;+  /* IE9 and down */++}+input[type="image"] {+  border: 0;+}+input[type="file"] {+  width: auto;+  padding: initial;+  line-height: initial;+  border: initial;+  background-color: #ffffff;+  background-color: initial;+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+input[type="button"],+input[type="reset"],+input[type="submit"] {+  width: auto;+  height: auto;+}+select,+input[type="file"] {+  height: 28px;+  /* In IE7, the height of the select element cannot be changed by height, only font-size */++  *margin-top: 4px;+  /* For IE7, add top margin to align select with labels */++  line-height: 28px;+}+input[type="file"] {+  line-height: 18px \9;+}+select {+  width: 220px;+  background-color: #ffffff;+}+select[multiple],+select[size] {+  height: auto;+}+input[type="image"] {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+textarea {+  height: auto;+}+input[type="hidden"] {+  display: none;+}+.radio,+.checkbox {+  padding-left: 18px;+}+.radio input[type="radio"],+.checkbox input[type="checkbox"] {+  float: left;+  margin-left: -18px;+}+.controls > .radio:first-child,+.controls > .checkbox:first-child {+  padding-top: 5px;+}+.radio.inline,+.checkbox.inline {+  display: inline-block;+  padding-top: 5px;+  margin-bottom: 0;+  vertical-align: middle;+}+.radio.inline + .radio.inline,+.checkbox.inline + .checkbox.inline {+  margin-left: 10px;+}+input,+textarea {+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;+  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;+  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;+  -o-transition: border linear 0.2s, box-shadow linear 0.2s;+  transition: border linear 0.2s, box-shadow linear 0.2s;+}+input:focus,+textarea:focus {+  border-color: rgba(82, 168, 236, 0.8);+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  outline: 0;+  outline: thin dotted \9;+  /* IE6-9 */++}+input[type="file"]:focus,+input[type="radio"]:focus,+input[type="checkbox"]:focus,+select:focus {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.input-mini {+  width: 60px;+}+.input-small {+  width: 90px;+}+.input-medium {+  width: 150px;+}+.input-large {+  width: 210px;+}+.input-xlarge {+  width: 270px;+}+.input-xxlarge {+  width: 530px;+}+input[class*="span"],+select[class*="span"],+textarea[class*="span"],+.uneditable-input {+  float: none;+  margin-left: 0;+}+input,+textarea,+.uneditable-input {+  margin-left: 0;+}+input.span12, textarea.span12, .uneditable-input.span12 {+  width: 930px;+}+input.span11, textarea.span11, .uneditable-input.span11 {+  width: 850px;+}+input.span10, textarea.span10, .uneditable-input.span10 {+  width: 770px;+}+input.span9, textarea.span9, .uneditable-input.span9 {+  width: 690px;+}+input.span8, textarea.span8, .uneditable-input.span8 {+  width: 610px;+}+input.span7, textarea.span7, .uneditable-input.span7 {+  width: 530px;+}+input.span6, textarea.span6, .uneditable-input.span6 {+  width: 450px;+}+input.span5, textarea.span5, .uneditable-input.span5 {+  width: 370px;+}+input.span4, textarea.span4, .uneditable-input.span4 {+  width: 290px;+}+input.span3, textarea.span3, .uneditable-input.span3 {+  width: 210px;+}+input.span2, textarea.span2, .uneditable-input.span2 {+  width: 130px;+}+input.span1, textarea.span1, .uneditable-input.span1 {+  width: 50px;+}+input[disabled],+select[disabled],+textarea[disabled],+input[readonly],+select[readonly],+textarea[readonly] {+  background-color: #eeeeee;+  border-color: #ddd;+  cursor: not-allowed;+}+.control-group.warning > label,+.control-group.warning .help-block,+.control-group.warning .help-inline {+  color: #c09853;+}+.control-group.warning input,+.control-group.warning select,+.control-group.warning textarea {+  color: #c09853;+  border-color: #c09853;+}+.control-group.warning input:focus,+.control-group.warning select:focus,+.control-group.warning textarea:focus {+  border-color: #a47e3c;+  -webkit-box-shadow: 0 0 6px #dbc59e;+  -moz-box-shadow: 0 0 6px #dbc59e;+  box-shadow: 0 0 6px #dbc59e;+}+.control-group.warning .input-prepend .add-on,+.control-group.warning .input-append .add-on {+  color: #c09853;+  background-color: #fcf8e3;+  border-color: #c09853;+}+.control-group.error > label,+.control-group.error .help-block,+.control-group.error .help-inline {+  color: #b94a48;+}+.control-group.error input,+.control-group.error select,+.control-group.error textarea {+  color: #b94a48;+  border-color: #b94a48;+}+.control-group.error input:focus,+.control-group.error select:focus,+.control-group.error textarea:focus {+  border-color: #953b39;+  -webkit-box-shadow: 0 0 6px #d59392;+  -moz-box-shadow: 0 0 6px #d59392;+  box-shadow: 0 0 6px #d59392;+}+.control-group.error .input-prepend .add-on,+.control-group.error .input-append .add-on {+  color: #b94a48;+  background-color: #f2dede;+  border-color: #b94a48;+}+.control-group.success > label,+.control-group.success .help-block,+.control-group.success .help-inline {+  color: #468847;+}+.control-group.success input,+.control-group.success select,+.control-group.success textarea {+  color: #468847;+  border-color: #468847;+}+.control-group.success input:focus,+.control-group.success select:focus,+.control-group.success textarea:focus {+  border-color: #356635;+  -webkit-box-shadow: 0 0 6px #7aba7b;+  -moz-box-shadow: 0 0 6px #7aba7b;+  box-shadow: 0 0 6px #7aba7b;+}+.control-group.success .input-prepend .add-on,+.control-group.success .input-append .add-on {+  color: #468847;+  background-color: #dff0d8;+  border-color: #468847;+}+input:focus:required:invalid,+textarea:focus:required:invalid,+select:focus:required:invalid {+  color: #b94a48;+  border-color: #ee5f5b;+}+input:focus:required:invalid:focus,+textarea:focus:required:invalid:focus,+select:focus:required:invalid:focus {+  border-color: #e9322d;+  -webkit-box-shadow: 0 0 6px #f8b9b7;+  -moz-box-shadow: 0 0 6px #f8b9b7;+  box-shadow: 0 0 6px #f8b9b7;+}+.form-actions {+  padding: 17px 20px 18px;+  margin-top: 18px;+  margin-bottom: 18px;+  background-color: #eeeeee;+  border-top: 1px solid #ddd;+  *zoom: 1;+}+.form-actions:before,+.form-actions:after {+  display: table;+  content: "";+}+.form-actions:after {+  clear: both;+}+.uneditable-input {+  display: block;+  background-color: #ffffff;+  border-color: #eee;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  cursor: not-allowed;+}+:-moz-placeholder {+  color: #999999;+}+::-webkit-input-placeholder {+  color: #999999;+}+.help-block,+.help-inline {+  color: #555555;+}+.help-block {+  display: block;+  margin-bottom: 9px;+}+.help-inline {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  vertical-align: middle;+  padding-left: 5px;+}+.input-prepend,+.input-append {+  margin-bottom: 5px;+}+.input-prepend input,+.input-append input,+.input-prepend select,+.input-append select,+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  *margin-left: 0;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend input:focus,+.input-append input:focus,+.input-prepend select:focus,+.input-append select:focus,+.input-prepend .uneditable-input:focus,+.input-append .uneditable-input:focus {+  position: relative;+  z-index: 2;+}+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  border-left-color: #ccc;+}+.input-prepend .add-on,+.input-append .add-on {+  display: inline-block;+  width: auto;+  min-width: 16px;+  height: 18px;+  padding: 4px 5px;+  font-weight: normal;+  line-height: 18px;+  text-align: center;+  text-shadow: 0 1px 0 #ffffff;+  vertical-align: middle;+  background-color: #eeeeee;+  border: 1px solid #ccc;+}+.input-prepend .add-on,+.input-append .add-on,+.input-prepend .btn,+.input-append .btn {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend .active,+.input-append .active {+  background-color: #a9dba9;+  border-color: #46a546;+}+.input-prepend .add-on,+.input-prepend .btn {+  margin-right: -1px;+}+.input-append input,+.input-append select .uneditable-input {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-append .uneditable-input {+  border-left-color: #eee;+  border-right-color: #ccc;+}+.input-append .add-on,+.input-append .btn {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend.input-append input,+.input-prepend.input-append select,+.input-prepend.input-append .uneditable-input {+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.input-prepend.input-append .add-on:first-child,+.input-prepend.input-append .btn:first-child {+  margin-right: -1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend.input-append .add-on:last-child,+.input-prepend.input-append .btn:last-child {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.search-query {+  padding-left: 14px;+  padding-right: 14px;+  margin-bottom: 0;+  -webkit-border-radius: 14px;+  -moz-border-radius: 14px;+  border-radius: 14px;+}+.form-search input,+.form-inline input,+.form-horizontal input,+.form-search textarea,+.form-inline textarea,+.form-horizontal textarea,+.form-search select,+.form-inline select,+.form-horizontal select,+.form-search .help-inline,+.form-inline .help-inline,+.form-horizontal .help-inline,+.form-search .uneditable-input,+.form-inline .uneditable-input,+.form-horizontal .uneditable-input,+.form-search .input-prepend,+.form-inline .input-prepend,+.form-horizontal .input-prepend,+.form-search .input-append,+.form-inline .input-append,+.form-horizontal .input-append {+  display: inline-block;+  margin-bottom: 0;+}+.form-search .hide,+.form-inline .hide,+.form-horizontal .hide {+  display: none;+}+.form-search label,+.form-inline label {+  display: inline-block;+}+.form-search .input-append,+.form-inline .input-append,+.form-search .input-prepend,+.form-inline .input-prepend {+  margin-bottom: 0;+}+.form-search .radio,+.form-search .checkbox,+.form-inline .radio,+.form-inline .checkbox {+  padding-left: 0;+  margin-bottom: 0;+  vertical-align: middle;+}+.form-search .radio input[type="radio"],+.form-search .checkbox input[type="checkbox"],+.form-inline .radio input[type="radio"],+.form-inline .checkbox input[type="checkbox"] {+  float: left;+  margin-left: 0;+  margin-right: 3px;+}+.control-group {+  margin-bottom: 9px;+}+legend + .control-group {+  margin-top: 18px;+  -webkit-margin-top-collapse: separate;+}+.form-horizontal .control-group {+  margin-bottom: 18px;+  *zoom: 1;+}+.form-horizontal .control-group:before,+.form-horizontal .control-group:after {+  display: table;+  content: "";+}+.form-horizontal .control-group:after {+  clear: both;+}+.form-horizontal .control-label {+  float: left;+  width: 140px;+  padding-top: 5px;+  text-align: right;+}+.form-horizontal .controls {+  margin-left: 160px;+  /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */++  *display: inline-block;+  *margin-left: 0;+  *padding-left: 20px;+}+.form-horizontal .help-block {+  margin-top: 9px;+  margin-bottom: 0;+}+.form-horizontal .form-actions {+  padding-left: 160px;+}+table {+  max-width: 100%;+  border-collapse: collapse;+  border-spacing: 0;+  background-color: transparent;+}+.table {+  width: 100%;+  margin-bottom: 18px;+}+.table th,+.table td {+  padding: 8px;+  line-height: 18px;+  text-align: left;+  vertical-align: top;+  border-top: 1px solid #dddddd;+}+.table th {+  font-weight: bold;+}+.table thead th {+  vertical-align: bottom;+}+.table colgroup + thead tr:first-child th,+.table colgroup + thead tr:first-child td,+.table thead:first-child tr:first-child th,+.table thead:first-child tr:first-child td {+  border-top: 0;+}+.table tbody + tbody {+  border-top: 2px solid #dddddd;+}+.table-condensed th,+.table-condensed td {+  padding: 4px 5px;+}+.table-bordered {+  border: 1px solid #dddddd;+  border-left: 0;+  border-collapse: separate;+  *border-collapse: collapsed;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.table-bordered th,+.table-bordered td {+  border-left: 1px solid #dddddd;+}+.table-bordered thead:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child td {+  border-top: 0;+}+.table-bordered thead:first-child tr:first-child th:first-child,+.table-bordered tbody:first-child tr:first-child td:first-child {+  -webkit-border-radius: 4px 0 0 0;+  -moz-border-radius: 4px 0 0 0;+  border-radius: 4px 0 0 0;+}+.table-bordered thead:first-child tr:first-child th:last-child,+.table-bordered tbody:first-child tr:first-child td:last-child {+  -webkit-border-radius: 0 4px 0 0;+  -moz-border-radius: 0 4px 0 0;+  border-radius: 0 4px 0 0;+}+.table-bordered thead:last-child tr:last-child th:first-child,+.table-bordered tbody:last-child tr:last-child td:first-child {+  -webkit-border-radius: 0 0 0 4px;+  -moz-border-radius: 0 0 0 4px;+  border-radius: 0 0 0 4px;+}+.table-bordered thead:last-child tr:last-child th:last-child,+.table-bordered tbody:last-child tr:last-child td:last-child {+  -webkit-border-radius: 0 0 4px 0;+  -moz-border-radius: 0 0 4px 0;+  border-radius: 0 0 4px 0;+}+.table-striped tbody tr:nth-child(odd) td,+.table-striped tbody tr:nth-child(odd) th {+  background-color: #f9f9f9;+}+.table tbody tr:hover td,+.table tbody tr:hover th {+  background-color: #f5f5f5;+}+table .span1 {+  float: none;+  width: 44px;+  margin-left: 0;+}+table .span2 {+  float: none;+  width: 124px;+  margin-left: 0;+}+table .span3 {+  float: none;+  width: 204px;+  margin-left: 0;+}+table .span4 {+  float: none;+  width: 284px;+  margin-left: 0;+}+table .span5 {+  float: none;+  width: 364px;+  margin-left: 0;+}+table .span6 {+  float: none;+  width: 444px;+  margin-left: 0;+}+table .span7 {+  float: none;+  width: 524px;+  margin-left: 0;+}+table .span8 {+  float: none;+  width: 604px;+  margin-left: 0;+}+table .span9 {+  float: none;+  width: 684px;+  margin-left: 0;+}+table .span10 {+  float: none;+  width: 764px;+  margin-left: 0;+}+table .span11 {+  float: none;+  width: 844px;+  margin-left: 0;+}+table .span12 {+  float: none;+  width: 924px;+  margin-left: 0;+}+table .span13 {+  float: none;+  width: 1004px;+  margin-left: 0;+}+table .span14 {+  float: none;+  width: 1084px;+  margin-left: 0;+}+table .span15 {+  float: none;+  width: 1164px;+  margin-left: 0;+}+table .span16 {+  float: none;+  width: 1244px;+  margin-left: 0;+}+table .span17 {+  float: none;+  width: 1324px;+  margin-left: 0;+}+table .span18 {+  float: none;+  width: 1404px;+  margin-left: 0;+}+table .span19 {+  float: none;+  width: 1484px;+  margin-left: 0;+}+table .span20 {+  float: none;+  width: 1564px;+  margin-left: 0;+}+table .span21 {+  float: none;+  width: 1644px;+  margin-left: 0;+}+table .span22 {+  float: none;+  width: 1724px;+  margin-left: 0;+}+table .span23 {+  float: none;+  width: 1804px;+  margin-left: 0;+}+table .span24 {+  float: none;+  width: 1884px;+  margin-left: 0;+}+[class^="icon-"],+[class*=" icon-"] {+  display: inline-block;+  width: 14px;+  height: 14px;+  line-height: 14px;+  vertical-align: text-top;+  background-image: url("../img/glyphicons-halflings.png");+  background-position: 14px 14px;+  background-repeat: no-repeat;+  *margin-right: .3em;+}+[class^="icon-"]:last-child,+[class*=" icon-"]:last-child {+  *margin-left: 0;+}+.icon-white {+  background-image: url("../img/glyphicons-halflings-white.png");+}+.icon-glass {+  background-position: 0      0;+}+.icon-music {+  background-position: -24px 0;+}+.icon-search {+  background-position: -48px 0;+}+.icon-envelope {+  background-position: -72px 0;+}+.icon-heart {+  background-position: -96px 0;+}+.icon-star {+  background-position: -120px 0;+}+.icon-star-empty {+  background-position: -144px 0;+}+.icon-user {+  background-position: -168px 0;+}+.icon-film {+  background-position: -192px 0;+}+.icon-th-large {+  background-position: -216px 0;+}+.icon-th {+  background-position: -240px 0;+}+.icon-th-list {+  background-position: -264px 0;+}+.icon-ok {+  background-position: -288px 0;+}+.icon-remove {+  background-position: -312px 0;+}+.icon-zoom-in {+  background-position: -336px 0;+}+.icon-zoom-out {+  background-position: -360px 0;+}+.icon-off {+  background-position: -384px 0;+}+.icon-signal {+  background-position: -408px 0;+}+.icon-cog {+  background-position: -432px 0;+}+.icon-trash {+  background-position: -456px 0;+}+.icon-home {+  background-position: 0 -24px;+}+.icon-file {+  background-position: -24px -24px;+}+.icon-time {+  background-position: -48px -24px;+}+.icon-road {+  background-position: -72px -24px;+}+.icon-download-alt {+  background-position: -96px -24px;+}+.icon-download {+  background-position: -120px -24px;+}+.icon-upload {+  background-position: -144px -24px;+}+.icon-inbox {+  background-position: -168px -24px;+}+.icon-play-circle {+  background-position: -192px -24px;+}+.icon-repeat {+  background-position: -216px -24px;+}+.icon-refresh {+  background-position: -240px -24px;+}+.icon-list-alt {+  background-position: -264px -24px;+}+.icon-lock {+  background-position: -287px -24px;+}+.icon-flag {+  background-position: -312px -24px;+}+.icon-headphones {+  background-position: -336px -24px;+}+.icon-volume-off {+  background-position: -360px -24px;+}+.icon-volume-down {+  background-position: -384px -24px;+}+.icon-volume-up {+  background-position: -408px -24px;+}+.icon-qrcode {+  background-position: -432px -24px;+}+.icon-barcode {+  background-position: -456px -24px;+}+.icon-tag {+  background-position: 0 -48px;+}+.icon-tags {+  background-position: -25px -48px;+}+.icon-book {+  background-position: -48px -48px;+}+.icon-bookmark {+  background-position: -72px -48px;+}+.icon-print {+  background-position: -96px -48px;+}+.icon-camera {+  background-position: -120px -48px;+}+.icon-font {+  background-position: -144px -48px;+}+.icon-bold {+  background-position: -167px -48px;+}+.icon-italic {+  background-position: -192px -48px;+}+.icon-text-height {+  background-position: -216px -48px;+}+.icon-text-width {+  background-position: -240px -48px;+}+.icon-align-left {+  background-position: -264px -48px;+}+.icon-align-center {+  background-position: -288px -48px;+}+.icon-align-right {+  background-position: -312px -48px;+}+.icon-align-justify {+  background-position: -336px -48px;+}+.icon-list {+  background-position: -360px -48px;+}+.icon-indent-left {+  background-position: -384px -48px;+}+.icon-indent-right {+  background-position: -408px -48px;+}+.icon-facetime-video {+  background-position: -432px -48px;+}+.icon-picture {+  background-position: -456px -48px;+}+.icon-pencil {+  background-position: 0 -72px;+}+.icon-map-marker {+  background-position: -24px -72px;+}+.icon-adjust {+  background-position: -48px -72px;+}+.icon-tint {+  background-position: -72px -72px;+}+.icon-edit {+  background-position: -96px -72px;+}+.icon-share {+  background-position: -120px -72px;+}+.icon-check {+  background-position: -144px -72px;+}+.icon-move {+  background-position: -168px -72px;+}+.icon-step-backward {+  background-position: -192px -72px;+}+.icon-fast-backward {+  background-position: -216px -72px;+}+.icon-backward {+  background-position: -240px -72px;+}+.icon-play {+  background-position: -264px -72px;+}+.icon-pause {+  background-position: -288px -72px;+}+.icon-stop {+  background-position: -312px -72px;+}+.icon-forward {+  background-position: -336px -72px;+}+.icon-fast-forward {+  background-position: -360px -72px;+}+.icon-step-forward {+  background-position: -384px -72px;+}+.icon-eject {+  background-position: -408px -72px;+}+.icon-chevron-left {+  background-position: -432px -72px;+}+.icon-chevron-right {+  background-position: -456px -72px;+}+.icon-plus-sign {+  background-position: 0 -96px;+}+.icon-minus-sign {+  background-position: -24px -96px;+}+.icon-remove-sign {+  background-position: -48px -96px;+}+.icon-ok-sign {+  background-position: -72px -96px;+}+.icon-question-sign {+  background-position: -96px -96px;+}+.icon-info-sign {+  background-position: -120px -96px;+}+.icon-screenshot {+  background-position: -144px -96px;+}+.icon-remove-circle {+  background-position: -168px -96px;+}+.icon-ok-circle {+  background-position: -192px -96px;+}+.icon-ban-circle {+  background-position: -216px -96px;+}+.icon-arrow-left {+  background-position: -240px -96px;+}+.icon-arrow-right {+  background-position: -264px -96px;+}+.icon-arrow-up {+  background-position: -289px -96px;+}+.icon-arrow-down {+  background-position: -312px -96px;+}+.icon-share-alt {+  background-position: -336px -96px;+}+.icon-resize-full {+  background-position: -360px -96px;+}+.icon-resize-small {+  background-position: -384px -96px;+}+.icon-plus {+  background-position: -408px -96px;+}+.icon-minus {+  background-position: -433px -96px;+}+.icon-asterisk {+  background-position: -456px -96px;+}+.icon-exclamation-sign {+  background-position: 0 -120px;+}+.icon-gift {+  background-position: -24px -120px;+}+.icon-leaf {+  background-position: -48px -120px;+}+.icon-fire {+  background-position: -72px -120px;+}+.icon-eye-open {+  background-position: -96px -120px;+}+.icon-eye-close {+  background-position: -120px -120px;+}+.icon-warning-sign {+  background-position: -144px -120px;+}+.icon-plane {+  background-position: -168px -120px;+}+.icon-calendar {+  background-position: -192px -120px;+}+.icon-random {+  background-position: -216px -120px;+}+.icon-comment {+  background-position: -240px -120px;+}+.icon-magnet {+  background-position: -264px -120px;+}+.icon-chevron-up {+  background-position: -288px -120px;+}+.icon-chevron-down {+  background-position: -313px -119px;+}+.icon-retweet {+  background-position: -336px -120px;+}+.icon-shopping-cart {+  background-position: -360px -120px;+}+.icon-folder-close {+  background-position: -384px -120px;+}+.icon-folder-open {+  background-position: -408px -120px;+}+.icon-resize-vertical {+  background-position: -432px -119px;+}+.icon-resize-horizontal {+  background-position: -456px -118px;+}+.dropdown {+  position: relative;+}+.dropdown-toggle {+  *margin-bottom: -3px;+}+.dropdown-toggle:active,+.open .dropdown-toggle {+  outline: 0;+}+.caret {+  display: inline-block;+  width: 0;+  height: 0;+  vertical-align: top;+  border-left: 4px solid transparent;+  border-right: 4px solid transparent;+  border-top: 4px solid #000000;+  opacity: 0.3;+  filter: alpha(opacity=30);+  content: "";+}+.dropdown .caret {+  margin-top: 8px;+  margin-left: 2px;+}+.dropdown:hover .caret,+.open.dropdown .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.dropdown-menu {+  position: absolute;+  top: 100%;+  left: 0;+  z-index: 1000;+  float: left;+  display: none;+  min-width: 160px;+  padding: 4px 0;+  margin: 0;+  list-style: none;+  background-color: #ffffff;+  border-color: #ccc;+  border-color: rgba(0, 0, 0, 0.2);+  border-style: solid;+  border-width: 1px;+  -webkit-border-radius: 0 0 5px 5px;+  -moz-border-radius: 0 0 5px 5px;+  border-radius: 0 0 5px 5px;+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding;+  background-clip: padding-box;+  *border-right-width: 2px;+  *border-bottom-width: 2px;+}+.dropdown-menu.pull-right {+  right: 0;+  left: auto;+}+.dropdown-menu .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.dropdown-menu a {+  display: block;+  padding: 3px 15px;+  clear: both;+  font-weight: normal;+  line-height: 18px;+  color: #333333;+  white-space: nowrap;+}+.dropdown-menu li > a:hover,+.dropdown-menu .active > a,+.dropdown-menu .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #0088cc;+}+.dropdown.open {+  *z-index: 1000;+}+.dropdown.open .dropdown-toggle {+  color: #ffffff;+  background: #ccc;+  background: rgba(0, 0, 0, 0.3);+}+.dropdown.open .dropdown-menu {+  display: block;+}+.pull-right .dropdown-menu {+  left: auto;+  right: 0;+}+.dropup .caret,+.navbar-fixed-bottom .dropdown .caret {+  border-top: 0;+  border-bottom: 4px solid #000000;+  content: "\2191";+}+.dropup .dropdown-menu,+.navbar-fixed-bottom .dropdown .dropdown-menu {+  top: auto;+  bottom: 100%;+  margin-bottom: 1px;+}+.typeahead {+  margin-top: 2px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.well {+  min-height: 20px;+  padding: 19px;+  margin-bottom: 20px;+  background-color: #f5f5f5;+  border: 1px solid #eee;+  border: 1px solid rgba(0, 0, 0, 0.05);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+}+.well blockquote {+  border-color: #ddd;+  border-color: rgba(0, 0, 0, 0.15);+}+.well-large {+  padding: 24px;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.well-small {+  padding: 9px;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.fade {+  -webkit-transition: opacity 0.15s linear;+  -moz-transition: opacity 0.15s linear;+  -ms-transition: opacity 0.15s linear;+  -o-transition: opacity 0.15s linear;+  transition: opacity 0.15s linear;+  opacity: 0;+}+.fade.in {+  opacity: 1;+}+.collapse {+  -webkit-transition: height 0.35s ease;+  -moz-transition: height 0.35s ease;+  -ms-transition: height 0.35s ease;+  -o-transition: height 0.35s ease;+  transition: height 0.35s ease;+  position: relative;+  overflow: hidden;+  height: 0;+}+.collapse.in {+  height: auto;+}+.close {+  float: right;+  font-size: 20px;+  font-weight: bold;+  line-height: 18px;+  color: #000000;+  text-shadow: 0 1px 0 #ffffff;+  opacity: 0.2;+  filter: alpha(opacity=20);+}+.close:hover {+  color: #000000;+  text-decoration: none;+  opacity: 0.4;+  filter: alpha(opacity=40);+  cursor: pointer;+}+.btn {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  padding: 4px 10px 4px;+  margin-bottom: 0;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  text-align: center;+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);+  vertical-align: middle;+  background-color: #f5f5f5;+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: linear-gradient(top, #ffffff, #e6e6e6);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  border: 1px solid #cccccc;+  border-bottom-color: #b3b3b3;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  cursor: pointer;+  *margin-left: .3em;+}+.btn:hover,+.btn:active,+.btn.active,+.btn.disabled,+.btn[disabled] {+  background-color: #e6e6e6;+}+.btn:active,+.btn.active {+  background-color: #cccccc \9;+}+.btn:first-child {+  *margin-left: 0;+}+.btn:hover {+  color: #333333;+  text-decoration: none;+  background-color: #e6e6e6;+  background-position: 0 -15px;+  -webkit-transition: background-position 0.1s linear;+  -moz-transition: background-position 0.1s linear;+  -ms-transition: background-position 0.1s linear;+  -o-transition: background-position 0.1s linear;+  transition: background-position 0.1s linear;+}+.btn:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.btn.active,+.btn:active {+  background-image: none;+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  background-color: #e6e6e6;+  background-color: #d9d9d9 \9;+  outline: 0;+}+.btn.disabled,+.btn[disabled] {+  cursor: default;+  background-image: none;+  background-color: #e6e6e6;+  opacity: 0.65;+  filter: alpha(opacity=65);+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+.btn-large {+  padding: 9px 14px;+  font-size: 15px;+  line-height: normal;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-large [class^="icon-"] {+  margin-top: 1px;+}+.btn-small {+  padding: 5px 9px;+  font-size: 11px;+  line-height: 16px;+}+.btn-small [class^="icon-"] {+  margin-top: -1px;+}+.btn-mini {+  padding: 2px 6px;+  font-size: 11px;+  line-height: 14px;+}+.btn-primary,+.btn-primary:hover,+.btn-warning,+.btn-warning:hover,+.btn-danger,+.btn-danger:hover,+.btn-success,+.btn-success:hover,+.btn-info,+.btn-info:hover,+.btn-inverse,+.btn-inverse:hover {+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  color: #ffffff;+}+.btn-primary.active,+.btn-warning.active,+.btn-danger.active,+.btn-success.active,+.btn-info.active,+.btn-inverse.active {+  color: rgba(255, 255, 255, 0.75);+}+.btn-primary {+  background-color: #0074cc;+  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);+  background-image: -ms-linear-gradient(top, #0088cc, #0055cc);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));+  background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);+  background-image: -o-linear-gradient(top, #0088cc, #0055cc);+  background-image: linear-gradient(top, #0088cc, #0055cc);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);+  border-color: #0055cc #0055cc #003580;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-primary:hover,+.btn-primary:active,+.btn-primary.active,+.btn-primary.disabled,+.btn-primary[disabled] {+  background-color: #0055cc;+}+.btn-primary:active,+.btn-primary.active {+  background-color: #004099 \9;+}+.btn-warning {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+  border-color: #f89406 #f89406 #ad6704;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-warning:hover,+.btn-warning:active,+.btn-warning.active,+.btn-warning.disabled,+.btn-warning[disabled] {+  background-color: #f89406;+}+.btn-warning:active,+.btn-warning.active {+  background-color: #c67605 \9;+}+.btn-danger {+  background-color: #da4f49;+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: linear-gradient(top, #ee5f5b, #bd362f);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);+  border-color: #bd362f #bd362f #802420;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-danger:hover,+.btn-danger:active,+.btn-danger.active,+.btn-danger.disabled,+.btn-danger[disabled] {+  background-color: #bd362f;+}+.btn-danger:active,+.btn-danger.active {+  background-color: #942a25 \9;+}+.btn-success {+  background-color: #5bb75b;+  background-image: -moz-linear-gradient(top, #62c462, #51a351);+  background-image: -ms-linear-gradient(top, #62c462, #51a351);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);+  background-image: -o-linear-gradient(top, #62c462, #51a351);+  background-image: linear-gradient(top, #62c462, #51a351);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);+  border-color: #51a351 #51a351 #387038;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-success:hover,+.btn-success:active,+.btn-success.active,+.btn-success.disabled,+.btn-success[disabled] {+  background-color: #51a351;+}+.btn-success:active,+.btn-success.active {+  background-color: #408140 \9;+}+.btn-info {+  background-color: #49afcd;+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: linear-gradient(top, #5bc0de, #2f96b4);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);+  border-color: #2f96b4 #2f96b4 #1f6377;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-info:hover,+.btn-info:active,+.btn-info.active,+.btn-info.disabled,+.btn-info[disabled] {+  background-color: #2f96b4;+}+.btn-info:active,+.btn-info.active {+  background-color: #24748c \9;+}+.btn-inverse {+  background-color: #414141;+  background-image: -moz-linear-gradient(top, #555555, #222222);+  background-image: -ms-linear-gradient(top, #555555, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));+  background-image: -webkit-linear-gradient(top, #555555, #222222);+  background-image: -o-linear-gradient(top, #555555, #222222);+  background-image: linear-gradient(top, #555555, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-inverse:hover,+.btn-inverse:active,+.btn-inverse.active,+.btn-inverse.disabled,+.btn-inverse[disabled] {+  background-color: #222222;+}+.btn-inverse:active,+.btn-inverse.active {+  background-color: #080808 \9;+}+button.btn,+input[type="submit"].btn {+  *padding-top: 2px;+  *padding-bottom: 2px;+}+button.btn::-moz-focus-inner,+input[type="submit"].btn::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button.btn.btn-large,+input[type="submit"].btn.btn-large {+  *padding-top: 7px;+  *padding-bottom: 7px;+}+button.btn.btn-small,+input[type="submit"].btn.btn-small {+  *padding-top: 3px;+  *padding-bottom: 3px;+}+button.btn.btn-mini,+input[type="submit"].btn.btn-mini {+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group {+  position: relative;+  *zoom: 1;+  *margin-left: .3em;+}+.btn-group:before,+.btn-group:after {+  display: table;+  content: "";+}+.btn-group:after {+  clear: both;+}+.btn-group:first-child {+  *margin-left: 0;+}+.btn-group + .btn-group {+  margin-left: 5px;+}+.btn-toolbar {+  margin-top: 9px;+  margin-bottom: 9px;+}+.btn-toolbar .btn-group {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+}+.btn-group .btn {+  position: relative;+  float: left;+  margin-left: -1px;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.btn-group .btn:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 4px;+  -moz-border-radius-topleft: 4px;+  border-top-left-radius: 4px;+  -webkit-border-bottom-left-radius: 4px;+  -moz-border-radius-bottomleft: 4px;+  border-bottom-left-radius: 4px;+}+.btn-group .btn:last-child,+.btn-group .dropdown-toggle {+  -webkit-border-top-right-radius: 4px;+  -moz-border-radius-topright: 4px;+  border-top-right-radius: 4px;+  -webkit-border-bottom-right-radius: 4px;+  -moz-border-radius-bottomright: 4px;+  border-bottom-right-radius: 4px;+}+.btn-group .btn.large:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 6px;+  -moz-border-radius-topleft: 6px;+  border-top-left-radius: 6px;+  -webkit-border-bottom-left-radius: 6px;+  -moz-border-radius-bottomleft: 6px;+  border-bottom-left-radius: 6px;+}+.btn-group .btn.large:last-child,+.btn-group .large.dropdown-toggle {+  -webkit-border-top-right-radius: 6px;+  -moz-border-radius-topright: 6px;+  border-top-right-radius: 6px;+  -webkit-border-bottom-right-radius: 6px;+  -moz-border-radius-bottomright: 6px;+  border-bottom-right-radius: 6px;+}+.btn-group .btn:hover,+.btn-group .btn:focus,+.btn-group .btn:active,+.btn-group .btn.active {+  z-index: 2;+}+.btn-group .dropdown-toggle:active,+.btn-group.open .dropdown-toggle {+  outline: 0;+}+.btn-group .dropdown-toggle {+  padding-left: 8px;+  padding-right: 8px;+  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  *padding-top: 3px;+  *padding-bottom: 3px;+}+.btn-group .btn-mini.dropdown-toggle {+  padding-left: 5px;+  padding-right: 5px;+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group .btn-small.dropdown-toggle {+  *padding-top: 4px;+  *padding-bottom: 4px;+}+.btn-group .btn-large.dropdown-toggle {+  padding-left: 12px;+  padding-right: 12px;+}+.btn-group.open {+  *z-index: 1000;+}+.btn-group.open .dropdown-menu {+  display: block;+  margin-top: 1px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-group.open .dropdown-toggle {+  background-image: none;+  -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+}+.btn .caret {+  margin-top: 7px;+  margin-left: 0;+}+.btn:hover .caret,+.open.btn-group .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.btn-mini .caret {+  margin-top: 5px;+}+.btn-small .caret {+  margin-top: 6px;+}+.btn-large .caret {+  margin-top: 6px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.btn-primary .caret,+.btn-warning .caret,+.btn-danger .caret,+.btn-info .caret,+.btn-success .caret,+.btn-inverse .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 0.75;+  filter: alpha(opacity=75);+}+.alert {+  padding: 8px 35px 8px 14px;+  margin-bottom: 18px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  background-color: #fcf8e3;+  border: 1px solid #fbeed5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  color: #c09853;+}+.alert-heading {+  color: inherit;+}+.alert .close {+  position: relative;+  top: -2px;+  right: -21px;+  line-height: 18px;+}+.alert-success {+  background-color: #dff0d8;+  border-color: #d6e9c6;+  color: #468847;+}+.alert-danger,+.alert-error {+  background-color: #f2dede;+  border-color: #eed3d7;+  color: #b94a48;+}+.alert-info {+  background-color: #d9edf7;+  border-color: #bce8f1;+  color: #3a87ad;+}+.alert-block {+  padding-top: 14px;+  padding-bottom: 14px;+}+.alert-block > p,+.alert-block > ul {+  margin-bottom: 0;+}+.alert-block p + p {+  margin-top: 5px;+}+.nav {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+}+.nav > li > a {+  display: block;+}+.nav > li > a:hover {+  text-decoration: none;+  background-color: #eeeeee;+}+.nav .nav-header {+  display: block;+  padding: 3px 15px;+  font-size: 11px;+  font-weight: bold;+  line-height: 18px;+  color: #999999;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  text-transform: uppercase;+}+.nav li + .nav-header {+  margin-top: 9px;+}+.nav-list {+  padding-left: 15px;+  padding-right: 15px;+  margin-bottom: 0;+}+.nav-list > li > a,+.nav-list .nav-header {+  margin-left: -15px;+  margin-right: -15px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+}+.nav-list > li > a {+  padding: 3px 15px;+}+.nav-list > .active > a,+.nav-list > .active > a:hover {+  color: #ffffff;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);+  background-color: #0088cc;+}+.nav-list [class^="icon-"] {+  margin-right: 2px;+}+.nav-list .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.nav-tabs,+.nav-pills {+  *zoom: 1;+}+.nav-tabs:before,+.nav-pills:before,+.nav-tabs:after,+.nav-pills:after {+  display: table;+  content: "";+}+.nav-tabs:after,+.nav-pills:after {+  clear: both;+}+.nav-tabs > li,+.nav-pills > li {+  float: left;+}+.nav-tabs > li > a,+.nav-pills > li > a {+  padding-right: 12px;+  padding-left: 12px;+  margin-right: 2px;+  line-height: 14px;+}+.nav-tabs {+  border-bottom: 1px solid #ddd;+}+.nav-tabs > li {+  margin-bottom: -1px;+}+.nav-tabs > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  line-height: 18px;+  border: 1px solid transparent;+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #dddddd;+}+.nav-tabs > .active > a,+.nav-tabs > .active > a:hover {+  color: #555555;+  background-color: #ffffff;+  border: 1px solid #ddd;+  border-bottom-color: transparent;+  cursor: default;+}+.nav-pills > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  margin-top: 2px;+  margin-bottom: 2px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.nav-pills > .active > a,+.nav-pills > .active > a:hover {+  color: #ffffff;+  background-color: #0088cc;+}+.nav-stacked > li {+  float: none;+}+.nav-stacked > li > a {+  margin-right: 0;+}+.nav-tabs.nav-stacked {+  border-bottom: 0;+}+.nav-tabs.nav-stacked > li > a {+  border: 1px solid #ddd;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.nav-tabs.nav-stacked > li:first-child > a {+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs.nav-stacked > li:last-child > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.nav-tabs.nav-stacked > li > a:hover {+  border-color: #ddd;+  z-index: 2;+}+.nav-pills.nav-stacked > li > a {+  margin-bottom: 3px;+}+.nav-pills.nav-stacked > li:last-child > a {+  margin-bottom: 1px;+}+.nav-tabs .dropdown-menu,+.nav-pills .dropdown-menu {+  margin-top: 1px;+  border-width: 1px;+}+.nav-pills .dropdown-menu {+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.nav-tabs .dropdown-toggle .caret,+.nav-pills .dropdown-toggle .caret {+  border-top-color: #0088cc;+  border-bottom-color: #0088cc;+  margin-top: 6px;+}+.nav-tabs .dropdown-toggle:hover .caret,+.nav-pills .dropdown-toggle:hover .caret {+  border-top-color: #005580;+  border-bottom-color: #005580;+}+.nav-tabs .active .dropdown-toggle .caret,+.nav-pills .active .dropdown-toggle .caret {+  border-top-color: #333333;+  border-bottom-color: #333333;+}+.nav > .dropdown.active > a:hover {+  color: #000000;+  cursor: pointer;+}+.nav-tabs .open .dropdown-toggle,+.nav-pills .open .dropdown-toggle,+.nav > .open.active > a:hover {+  color: #ffffff;+  background-color: #999999;+  border-color: #999999;+}+.nav .open .caret,+.nav .open.active .caret,+.nav .open a:hover .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 1;+  filter: alpha(opacity=100);+}+.tabs-stacked .open > a:hover {+  border-color: #999999;+}+.tabbable {+  *zoom: 1;+}+.tabbable:before,+.tabbable:after {+  display: table;+  content: "";+}+.tabbable:after {+  clear: both;+}+.tab-content {+  display: table;+  width: 100%;+}+.tabs-below .nav-tabs,+.tabs-right .nav-tabs,+.tabs-left .nav-tabs {+  border-bottom: 0;+}+.tab-content > .tab-pane,+.pill-content > .pill-pane {+  display: none;+}+.tab-content > .active,+.pill-content > .active {+  display: block;+}+.tabs-below .nav-tabs {+  border-top: 1px solid #ddd;+}+.tabs-below .nav-tabs > li {+  margin-top: -1px;+  margin-bottom: 0;+}+.tabs-below .nav-tabs > li > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.tabs-below .nav-tabs > li > a:hover {+  border-bottom-color: transparent;+  border-top-color: #ddd;+}+.tabs-below .nav-tabs .active > a,+.tabs-below .nav-tabs .active > a:hover {+  border-color: transparent #ddd #ddd #ddd;+}+.tabs-left .nav-tabs > li,+.tabs-right .nav-tabs > li {+  float: none;+}+.tabs-left .nav-tabs > li > a,+.tabs-right .nav-tabs > li > a {+  min-width: 74px;+  margin-right: 0;+  margin-bottom: 3px;+}+.tabs-left .nav-tabs {+  float: left;+  margin-right: 19px;+  border-right: 1px solid #ddd;+}+.tabs-left .nav-tabs > li > a {+  margin-right: -1px;+  -webkit-border-radius: 4px 0 0 4px;+  -moz-border-radius: 4px 0 0 4px;+  border-radius: 4px 0 0 4px;+}+.tabs-left .nav-tabs > li > a:hover {+  border-color: #eeeeee #dddddd #eeeeee #eeeeee;+}+.tabs-left .nav-tabs .active > a,+.tabs-left .nav-tabs .active > a:hover {+  border-color: #ddd transparent #ddd #ddd;+  *border-right-color: #ffffff;+}+.tabs-right .nav-tabs {+  float: right;+  margin-left: 19px;+  border-left: 1px solid #ddd;+}+.tabs-right .nav-tabs > li > a {+  margin-left: -1px;+  -webkit-border-radius: 0 4px 4px 0;+  -moz-border-radius: 0 4px 4px 0;+  border-radius: 0 4px 4px 0;+}+.tabs-right .nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #eeeeee #dddddd;+}+.tabs-right .nav-tabs .active > a,+.tabs-right .nav-tabs .active > a:hover {+  border-color: #ddd #ddd #ddd transparent;+  *border-left-color: #ffffff;+}+.navbar {+  *position: relative;+  *z-index: 2;+  overflow: visible;+  margin-bottom: 18px;+}+.navbar-inner {+  padding-left: 20px;+  padding-right: 20px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+}+.navbar .container {+  width: auto;+}+.btn-navbar {+  display: none;+  float: right;+  padding: 7px 10px;+  margin-left: 5px;+  margin-right: 5px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+}+.btn-navbar:hover,+.btn-navbar:active,+.btn-navbar.active,+.btn-navbar.disabled,+.btn-navbar[disabled] {+  background-color: #222222;+}+.btn-navbar:active,+.btn-navbar.active {+  background-color: #080808 \9;+}+.btn-navbar .icon-bar {+  display: block;+  width: 18px;+  height: 2px;+  background-color: #f5f5f5;+  -webkit-border-radius: 1px;+  -moz-border-radius: 1px;+  border-radius: 1px;+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+}+.btn-navbar .icon-bar + .icon-bar {+  margin-top: 3px;+}+.nav-collapse.collapse {+  height: auto;+}+.navbar {+  color: #999999;+}+.navbar .brand:hover {+  text-decoration: none;+}+.navbar .brand {+  float: left;+  display: block;+  padding: 8px 20px 12px;+  margin-left: -20px;+  font-size: 20px;+  font-weight: 200;+  line-height: 1;+  color: #ffffff;+}+.navbar .navbar-text {+  margin-bottom: 0;+  line-height: 40px;+}+.navbar .btn,+.navbar .btn-group {+  margin-top: 5px;+}+.navbar .btn-group .btn {+  margin-top: 0;+}+.navbar-form {+  margin-bottom: 0;+  *zoom: 1;+}+.navbar-form:before,+.navbar-form:after {+  display: table;+  content: "";+}+.navbar-form:after {+  clear: both;+}+.navbar-form input,+.navbar-form select,+.navbar-form .radio,+.navbar-form .checkbox {+  margin-top: 5px;+}+.navbar-form input,+.navbar-form select {+  display: inline-block;+  margin-bottom: 0;+}+.navbar-form input[type="image"],+.navbar-form input[type="checkbox"],+.navbar-form input[type="radio"] {+  margin-top: 3px;+}+.navbar-form .input-append,+.navbar-form .input-prepend {+  margin-top: 6px;+  white-space: nowrap;+}+.navbar-form .input-append input,+.navbar-form .input-prepend input {+  margin-top: 0;+}+.navbar-search {+  position: relative;+  float: left;+  margin-top: 6px;+  margin-bottom: 0;+}+.navbar-search .search-query {+  padding: 4px 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  font-weight: normal;+  line-height: 1;+  color: #ffffff;+  background-color: #626262;+  border: 1px solid #151515;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -webkit-transition: none;+  -moz-transition: none;+  -ms-transition: none;+  -o-transition: none;+  transition: none;+}+.navbar-search .search-query:-moz-placeholder {+  color: #cccccc;+}+.navbar-search .search-query::-webkit-input-placeholder {+  color: #cccccc;+}+.navbar-search .search-query:focus,+.navbar-search .search-query.focused {+  padding: 5px 10px;+  color: #333333;+  text-shadow: 0 1px 0 #ffffff;+  background-color: #ffffff;+  border: 0;+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  outline: 0;+}+.navbar-fixed-top,+.navbar-fixed-bottom {+  position: fixed;+  right: 0;+  left: 0;+  z-index: 1030;+  margin-bottom: 0;+}+.navbar-fixed-top .navbar-inner,+.navbar-fixed-bottom .navbar-inner {+  padding-left: 0;+  padding-right: 0;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.navbar-fixed-top {+  top: 0;+}+.navbar-fixed-bottom {+  bottom: 0;+}+.navbar .nav {+  position: relative;+  left: 0;+  display: block;+  float: left;+  margin: 0 10px 0 0;+}+.navbar .nav.pull-right {+  float: right;+}+.navbar .nav > li {+  display: block;+  float: left;+}+.navbar .nav > li > a {+  float: none;+  padding: 10px 10px 11px;+  line-height: 19px;+  color: #999999;+  text-decoration: none;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+}+.navbar .nav > li > a:hover {+  background-color: transparent;+  color: #ffffff;+  text-decoration: none;+}+.navbar .nav .active > a,+.navbar .nav .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #222222;+}+.navbar .divider-vertical {+  height: 40px;+  width: 1px;+  margin: 0 9px;+  overflow: hidden;+  background-color: #222222;+  border-right: 1px solid #333333;+}+.navbar .nav.pull-right {+  margin-left: 10px;+  margin-right: 0;+}+.navbar .dropdown-menu {+  margin-top: 1px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.navbar .dropdown-menu:before {+  content: '';+  display: inline-block;+  border-left: 7px solid transparent;+  border-right: 7px solid transparent;+  border-bottom: 7px solid #ccc;+  border-bottom-color: rgba(0, 0, 0, 0.2);+  position: absolute;+  top: -7px;+  left: 9px;+}+.navbar .dropdown-menu:after {+  content: '';+  display: inline-block;+  border-left: 6px solid transparent;+  border-right: 6px solid transparent;+  border-bottom: 6px solid #ffffff;+  position: absolute;+  top: -6px;+  left: 10px;+}+.navbar-fixed-bottom .dropdown-menu:before {+  border-top: 7px solid #ccc;+  border-top-color: rgba(0, 0, 0, 0.2);+  border-bottom: 0;+  bottom: -7px;+  top: auto;+}+.navbar-fixed-bottom .dropdown-menu:after {+  border-top: 6px solid #ffffff;+  border-bottom: 0;+  bottom: -6px;+  top: auto;+}+.navbar .nav .dropdown-toggle .caret,+.navbar .nav .open.dropdown .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+}+.navbar .nav .active .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.navbar .nav .open > .dropdown-toggle,+.navbar .nav .active > .dropdown-toggle,+.navbar .nav .open.active > .dropdown-toggle {+  background-color: transparent;+}+.navbar .nav .active > .dropdown-toggle:hover {+  color: #ffffff;+}+.navbar .nav.pull-right .dropdown-menu,+.navbar .nav .dropdown-menu.pull-right {+  left: auto;+  right: 0;+}+.navbar .nav.pull-right .dropdown-menu:before,+.navbar .nav .dropdown-menu.pull-right:before {+  left: auto;+  right: 12px;+}+.navbar .nav.pull-right .dropdown-menu:after,+.navbar .nav .dropdown-menu.pull-right:after {+  left: auto;+  right: 13px;+}+.breadcrumb {+  padding: 7px 14px;+  margin: 0 0 18px;+  list-style: none;+  background-color: #fbfbfb;+  background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));+  background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: linear-gradient(top, #ffffff, #f5f5f5);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);+  border: 1px solid #ddd;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+}+.breadcrumb li {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  text-shadow: 0 1px 0 #ffffff;+}+.breadcrumb .divider {+  padding: 0 5px;+  color: #999999;+}+.breadcrumb .active a {+  color: #333333;+}+.pagination {+  height: 36px;+  margin: 18px 0;+}+.pagination ul {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  margin-left: 0;+  margin-bottom: 0;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+}+.pagination li {+  display: inline;+}+.pagination a {+  float: left;+  padding: 0 14px;+  line-height: 34px;+  text-decoration: none;+  border: 1px solid #ddd;+  border-left-width: 0;+}+.pagination a:hover,+.pagination .active a {+  background-color: #f5f5f5;+}+.pagination .active a {+  color: #999999;+  cursor: default;+}+.pagination .disabled span,+.pagination .disabled a,+.pagination .disabled a:hover {+  color: #999999;+  background-color: transparent;+  cursor: default;+}+.pagination li:first-child a {+  border-left-width: 1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.pagination li:last-child a {+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.pagination-centered {+  text-align: center;+}+.pagination-right {+  text-align: right;+}+.pager {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+  text-align: center;+  *zoom: 1;+}+.pager:before,+.pager:after {+  display: table;+  content: "";+}+.pager:after {+  clear: both;+}+.pager li {+  display: inline;+}+.pager a {+  display: inline-block;+  padding: 5px 14px;+  background-color: #fff;+  border: 1px solid #ddd;+  -webkit-border-radius: 15px;+  -moz-border-radius: 15px;+  border-radius: 15px;+}+.pager a:hover {+  text-decoration: none;+  background-color: #f5f5f5;+}+.pager .next a {+  float: right;+}+.pager .previous a {+  float: left;+}+.pager .disabled a,+.pager .disabled a:hover {+  color: #999999;+  background-color: #fff;+  cursor: default;+}+.modal-open .dropdown-menu {+  z-index: 2050;+}+.modal-open .dropdown.open {+  *z-index: 2050;+}+.modal-open .popover {+  z-index: 2060;+}+.modal-open .tooltip {+  z-index: 2070;+}+.modal-backdrop {+  position: fixed;+  top: 0;+  right: 0;+  bottom: 0;+  left: 0;+  z-index: 1040;+  background-color: #000000;+}+.modal-backdrop.fade {+  opacity: 0;+}+.modal-backdrop,+.modal-backdrop.fade.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.modal {+  position: fixed;+  top: 50%;+  left: 50%;+  z-index: 1050;+  overflow: auto;+  width: 560px;+  margin: -250px 0 0 -280px;+  background-color: #ffffff;+  border: 1px solid #999;+  border: 1px solid rgba(0, 0, 0, 0.3);+  *border: 1px solid #999;+  /* IE6-7 */++  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.modal.fade {+  -webkit-transition: opacity .3s linear, top .3s ease-out;+  -moz-transition: opacity .3s linear, top .3s ease-out;+  -ms-transition: opacity .3s linear, top .3s ease-out;+  -o-transition: opacity .3s linear, top .3s ease-out;+  transition: opacity .3s linear, top .3s ease-out;+  top: -25%;+}+.modal.fade.in {+  top: 50%;+}+.modal-header {+  padding: 9px 15px;+  border-bottom: 1px solid #eee;+}+.modal-header .close {+  margin-top: 2px;+}+.modal-body {+  overflow-y: auto;+  max-height: 400px;+  padding: 15px;+}+.modal-form {+  margin-bottom: 0;+}+.modal-footer {+  padding: 14px 15px 15px;+  margin-bottom: 0;+  text-align: right;+  background-color: #f5f5f5;+  border-top: 1px solid #ddd;+  -webkit-border-radius: 0 0 6px 6px;+  -moz-border-radius: 0 0 6px 6px;+  border-radius: 0 0 6px 6px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+  *zoom: 1;+}+.modal-footer:before,+.modal-footer:after {+  display: table;+  content: "";+}+.modal-footer:after {+  clear: both;+}+.modal-footer .btn + .btn {+  margin-left: 5px;+  margin-bottom: 0;+}+.modal-footer .btn-group .btn + .btn {+  margin-left: -1px;+}+.tooltip {+  position: absolute;+  z-index: 1020;+  display: block;+  visibility: visible;+  padding: 5px;+  font-size: 11px;+  opacity: 0;+  filter: alpha(opacity=0);+}+.tooltip.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.tooltip.top {+  margin-top: -2px;+}+.tooltip.right {+  margin-left: 2px;+}+.tooltip.bottom {+  margin-top: 2px;+}+.tooltip.left {+  margin-left: -2px;+}+.tooltip.top .tooltip-arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.tooltip.left .tooltip-arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.tooltip.bottom .tooltip-arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.tooltip.right .tooltip-arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.tooltip-inner {+  max-width: 200px;+  padding: 3px 8px;+  color: #ffffff;+  text-align: center;+  text-decoration: none;+  background-color: #000000;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.tooltip-arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover {+  position: absolute;+  top: 0;+  left: 0;+  z-index: 1010;+  display: none;+  padding: 5px;+}+.popover.top {+  margin-top: -5px;+}+.popover.right {+  margin-left: 5px;+}+.popover.bottom {+  margin-top: 5px;+}+.popover.left {+  margin-left: -5px;+}+.popover.top .arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.popover.right .arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.popover.bottom .arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.popover.left .arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.popover .arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover-inner {+  padding: 3px;+  width: 280px;+  overflow: hidden;+  background: #000000;+  background: rgba(0, 0, 0, 0.8);+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+}+.popover-title {+  padding: 9px 15px;+  line-height: 1;+  background-color: #f5f5f5;+  border-bottom: 1px solid #eee;+  -webkit-border-radius: 3px 3px 0 0;+  -moz-border-radius: 3px 3px 0 0;+  border-radius: 3px 3px 0 0;+}+.popover-content {+  padding: 14px;+  background-color: #ffffff;+  -webkit-border-radius: 0 0 3px 3px;+  -moz-border-radius: 0 0 3px 3px;+  border-radius: 0 0 3px 3px;+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.popover-content p,+.popover-content ul,+.popover-content ol {+  margin-bottom: 0;+}+.thumbnails {+  margin-left: -20px;+  list-style: none;+  *zoom: 1;+}+.thumbnails:before,+.thumbnails:after {+  display: table;+  content: "";+}+.thumbnails:after {+  clear: both;+}+.thumbnails > li {+  float: left;+  margin: 0 0 18px 20px;+}+.thumbnail {+  display: block;+  padding: 4px;+  line-height: 1;+  border: 1px solid #ddd;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+}+a.thumbnail:hover {+  border-color: #0088cc;+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+}+.thumbnail > img {+  display: block;+  max-width: 100%;+  margin-left: auto;+  margin-right: auto;+}+.thumbnail .caption {+  padding: 9px;+}+.label {+  padding: 1px 4px 2px;+  font-size: 10.998px;+  font-weight: bold;+  line-height: 13px;+  color: #ffffff;+  vertical-align: middle;+  white-space: nowrap;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #999999;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.label:hover {+  color: #ffffff;+  text-decoration: none;+}+.label-important {+  background-color: #b94a48;+}+.label-important:hover {+  background-color: #953b39;+}+.label-warning {+  background-color: #f89406;+}+.label-warning:hover {+  background-color: #c67605;+}+.label-success {+  background-color: #468847;+}+.label-success:hover {+  background-color: #356635;+}+.label-info {+  background-color: #3a87ad;+}+.label-info:hover {+  background-color: #2d6987;+}+.label-inverse {+  background-color: #333333;+}+.label-inverse:hover {+  background-color: #1a1a1a;+}+.badge {+  padding: 1px 9px 2px;+  font-size: 12.025px;+  font-weight: bold;+  white-space: nowrap;+  color: #ffffff;+  background-color: #999999;+  -webkit-border-radius: 9px;+  -moz-border-radius: 9px;+  border-radius: 9px;+}+.badge:hover {+  color: #ffffff;+  text-decoration: none;+  cursor: pointer;+}+.badge-error {+  background-color: #b94a48;+}+.badge-error:hover {+  background-color: #953b39;+}+.badge-warning {+  background-color: #f89406;+}+.badge-warning:hover {+  background-color: #c67605;+}+.badge-success {+  background-color: #468847;+}+.badge-success:hover {+  background-color: #356635;+}+.badge-info {+  background-color: #3a87ad;+}+.badge-info:hover {+  background-color: #2d6987;+}+.badge-inverse {+  background-color: #333333;+}+.badge-inverse:hover {+  background-color: #1a1a1a;+}+@-webkit-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-moz-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-ms-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+.progress {+  overflow: hidden;+  height: 18px;+  margin-bottom: 18px;+  background-color: #f7f7f7;+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.progress .bar {+  width: 0%;+  height: 18px;+  color: #ffffff;+  font-size: 12px;+  text-align: center;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #0e90d2;+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);+  background-image: -ms-linear-gradient(top, #149bdf, #0480be);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);+  background-image: -o-linear-gradient(top, #149bdf, #0480be);+  background-image: linear-gradient(top, #149bdf, #0480be);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+  -webkit-transition: width 0.6s ease;+  -moz-transition: width 0.6s ease;+  -ms-transition: width 0.6s ease;+  -o-transition: width 0.6s ease;+  transition: width 0.6s ease;+}+.progress-striped .bar {+  background-color: #149bdf;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  -webkit-background-size: 40px 40px;+  -moz-background-size: 40px 40px;+  -o-background-size: 40px 40px;+  background-size: 40px 40px;+}+.progress.active .bar {+  -webkit-animation: progress-bar-stripes 2s linear infinite;+  -moz-animation: progress-bar-stripes 2s linear infinite;+  animation: progress-bar-stripes 2s linear infinite;+}+.progress-danger .bar {+  background-color: #dd514c;+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: linear-gradient(top, #ee5f5b, #c43c35);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);+}+.progress-danger.progress-striped .bar {+  background-color: #ee5f5b;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-success .bar {+  background-color: #5eb95e;+  background-image: -moz-linear-gradient(top, #62c462, #57a957);+  background-image: -ms-linear-gradient(top, #62c462, #57a957);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);+  background-image: -o-linear-gradient(top, #62c462, #57a957);+  background-image: linear-gradient(top, #62c462, #57a957);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);+}+.progress-success.progress-striped .bar {+  background-color: #62c462;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-info .bar {+  background-color: #4bb1cf;+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);+  background-image: linear-gradient(top, #5bc0de, #339bb9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);+}+.progress-info.progress-striped .bar {+  background-color: #5bc0de;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-warning .bar {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+}+.progress-warning.progress-striped .bar {+  background-color: #fbb450;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.accordion {+  margin-bottom: 18px;+}+.accordion-group {+  margin-bottom: 2px;+  border: 1px solid #e5e5e5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.accordion-heading {+  border-bottom: 0;+}+.accordion-heading .accordion-toggle {+  display: block;+  padding: 8px 15px;+}+.accordion-inner {+  padding: 9px 15px;+  border-top: 1px solid #e5e5e5;+}+.carousel {+  position: relative;+  margin-bottom: 18px;+  line-height: 1;+}+.carousel-inner {+  overflow: hidden;+  width: 100%;+  position: relative;+}+.carousel .item {+  display: none;+  position: relative;+  -webkit-transition: 0.6s ease-in-out left;+  -moz-transition: 0.6s ease-in-out left;+  -ms-transition: 0.6s ease-in-out left;+  -o-transition: 0.6s ease-in-out left;+  transition: 0.6s ease-in-out left;+}+.carousel .item > img {+  display: block;+  line-height: 1;+}+.carousel .active,+.carousel .next,+.carousel .prev {+  display: block;+}+.carousel .active {+  left: 0;+}+.carousel .next,+.carousel .prev {+  position: absolute;+  top: 0;+  width: 100%;+}+.carousel .next {+  left: 100%;+}+.carousel .prev {+  left: -100%;+}+.carousel .next.left,+.carousel .prev.right {+  left: 0;+}+.carousel .active.left {+  left: -100%;+}+.carousel .active.right {+  left: 100%;+}+.carousel-control {+  position: absolute;+  top: 40%;+  left: 15px;+  width: 40px;+  height: 40px;+  margin-top: -20px;+  font-size: 60px;+  font-weight: 100;+  line-height: 30px;+  color: #ffffff;+  text-align: center;+  background: #222222;+  border: 3px solid #ffffff;+  -webkit-border-radius: 23px;+  -moz-border-radius: 23px;+  border-radius: 23px;+  opacity: 0.5;+  filter: alpha(opacity=50);+}+.carousel-control.right {+  left: auto;+  right: 15px;+}+.carousel-control:hover {+  color: #ffffff;+  text-decoration: none;+  opacity: 0.9;+  filter: alpha(opacity=90);+}+.carousel-caption {+  position: absolute;+  left: 0;+  right: 0;+  bottom: 0;+  padding: 10px 15px 5px;+  background: #333333;+  background: rgba(0, 0, 0, 0.75);+}+.carousel-caption h4,+.carousel-caption p {+  color: #ffffff;+}+.hero-unit {+  padding: 60px;+  margin-bottom: 30px;+  background-color: #eeeeee;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.hero-unit h1 {+  margin-bottom: 0;+  font-size: 60px;+  line-height: 1;+  color: inherit;+  letter-spacing: -1px;+}+.hero-unit p {+  font-size: 18px;+  font-weight: 200;+  line-height: 27px;+  color: inherit;+}+.pull-right {+  float: right;+}+.pull-left {+  float: left;+}+.hide {+  display: none;+}+.show {+  display: block;+}+.invisible {+  visibility: hidden;+}++{-# START_FILE static/css/normalize.css #-}+/*! normalize.css 2011-08-12T17:28 UTC · http://github.com/necolas/normalize.css */++/* =============================================================================+   HTML5 display definitions+   ========================================================================== */++/*+ * Corrects block display not defined in IE6/7/8/9 & FF3+ */++article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+    display: block;+}++/*+ * Corrects inline-block display not defined in IE6/7/8/9 & FF3+ */++audio,+canvas,+video {+    display: inline-block;+    *display: inline;+    *zoom: 1;+}++/*+ * Prevents modern browsers from displaying 'audio' without controls+ */++audio:not([controls]) {+    display: none;+}++/*+ * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4+ * Known issue: no IE6 support+ */++[hidden] {+    display: none;+}+++/* =============================================================================+   Base+   ========================================================================== */++/*+ * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units+ *    http://clagnut.com/blog/348/#c790+ * 2. Keeps page centred in all browsers regardless of content height+ * 3. Prevents iOS text size adjust after orientation change, without disabling user zoom+ *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/+ */++html {+    font-size: 100%; /* 1 */+    overflow-y: scroll; /* 2 */+    -webkit-text-size-adjust: 100%; /* 3 */+    -ms-text-size-adjust: 100%; /* 3 */+}++/*+ * Addresses margins handled incorrectly in IE6/7+ */++body {+    margin: 0;+}++/* + * Addresses font-family inconsistency between 'textarea' and other form elements.+ */++body,+button,+input,+select,+textarea {+    font-family: sans-serif;+}+++/* =============================================================================+   Links+   ========================================================================== */++a {+    color: #00e;+}++a:visited {+    color: #551a8b;+}++/*+ * Addresses outline displayed oddly in Chrome+ */++a:focus {+    outline: thin dotted;+}++/*+ * Improves readability when focused and also mouse hovered in all browsers+ * people.opera.com/patrickl/experiments/keyboard/test+ */++a:hover,+a:active {+    outline: 0;+}+++/* =============================================================================+   Typography+   ========================================================================== */++/*+ * Addresses styling not present in IE7/8/9, S5, Chrome+ */++abbr[title] {+    border-bottom: 1px dotted;+}++/*+ * Addresses style set to 'bolder' in FF3/4, S4/5, Chrome+*/++b, +strong { +    font-weight: bold; +}++blockquote {+    margin: 1em 40px;+}++/*+ * Addresses styling not present in S5, Chrome+ */++dfn {+    font-style: italic;+}++/*+ * Addresses styling not present in IE6/7/8/9+ */++mark {+    background: #ff0;+    color: #000;+}++/*+ * Corrects font family set oddly in IE6, S4/5, Chrome+ * en.wikipedia.org/wiki/User:Davidgothberg/Test59+ */++pre,+code,+kbd,+samp {+    font-family: monospace, serif;+    _font-family: 'courier new', monospace;+    font-size: 1em;+}++/*+ * Improves readability of pre-formatted text in all browsers+ */++pre {+    white-space: pre;+    white-space: pre-wrap;+    word-wrap: break-word;+}++/*+ * 1. Addresses CSS quotes not supported in IE6/7+ * 2. Addresses quote property not supported in S4+ */++/* 1 */++q {+    quotes: none;+}++/* 2 */++q:before,+q:after {+    content: '';+    content: none;+}++small {+    font-size: 75%;+}++/*+ * Prevents sub and sup affecting line-height in all browsers+ * gist.github.com/413930+ */++sub,+sup {+    font-size: 75%;+    line-height: 0;+    position: relative;+    vertical-align: baseline;+}++sup {+    top: -0.5em;+}++sub {+    bottom: -0.25em;+}+++/* =============================================================================+   Lists+   ========================================================================== */++ul,+ol {+    margin: 1em 0;+    padding: 0 0 0 40px;+}++dd {+    margin: 0 0 0 40px;+}++nav ul,+nav ol {+    list-style: none;+    list-style-image: none;+}+++/* =============================================================================+   Embedded content+   ========================================================================== */++/*+ * 1. Removes border when inside 'a' element in IE6/7/8/9+ * 2. Improves image quality when scaled in IE7+ *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/+ */++img {+    border: 0; /* 1 */+    -ms-interpolation-mode: bicubic; /* 2 */+}++/*+ * Corrects overflow displayed oddly in IE9 + */++svg:not(:root) {+    overflow: hidden;+}+++/* =============================================================================+   Figures+   ========================================================================== */++/*+ * Addresses margin not present in IE6/7/8/9, S5, O11+ */++figure {+    margin: 0;+}+++/* =============================================================================+   Forms+   ========================================================================== */++/*+ * Corrects margin displayed oddly in IE6/7+ */++form {+    margin: 0;+}++/*+ * Define consistent margin and padding+ */++fieldset {+    margin: 0 2px;+    padding: 0.35em 0.625em 0.75em;+}++/*+ * 1. Corrects color not being inherited in IE6/7/8/9+ * 2. Corrects alignment displayed oddly in IE6/7+ */++legend {+    border: 0; /* 1 */+    *margin-left: -7px; /* 2 */+}++/*+ * 1. Corrects font size not being inherited in all browsers+ * 2. Addresses margins set differently in IE6/7, F3/4, S5, Chrome+ * 3. Improves appearance and consistency in all browsers+ */++button,+input,+select,+textarea {+    font-size: 100%; /* 1 */+    margin: 0; /* 2 */+    vertical-align: baseline; /* 3 */+    *vertical-align: middle; /* 3 */+}++/*+ * 1. Addresses FF3/4 setting line-height using !important in the UA stylesheet+ * 2. Corrects inner spacing displayed oddly in IE6/7+ */++button,+input {+    line-height: normal; /* 1 */+    *overflow: visible;  /* 2 */+}++/*+ * Corrects overlap and whitespace issue for buttons and inputs in IE6/7+ * Known issue: reintroduces inner spacing+ */++table button,+table input {+    *overflow: auto;+}++/*+ * 1. Improves usability and consistency of cursor style between image-type 'input' and others+ * 2. Corrects inability to style clickable 'input' types in iOS+ */++button,+html input[type="button"], +input[type="reset"], +input[type="submit"] {+    cursor: pointer; /* 1 */+    -webkit-appearance: button; /* 2 */+}++/*+ * 1. Addresses box sizing set to content-box in IE8/9+ * 2. Addresses excess padding in IE8/9+ */++input[type="checkbox"],+input[type="radio"] {+    box-sizing: border-box; /* 1 */+    padding: 0; /* 2 */+}++/*+ * 1. Addresses appearance set to searchfield in S5, Chrome+ * 2. Addresses box sizing set to border-box in S5, Chrome (include -moz to future-proof)+ */++input[type="search"] {+    -webkit-appearance: textfield; /* 1 */+    -moz-box-sizing: content-box;+    -webkit-box-sizing: content-box; /* 2 */+    box-sizing: content-box;+}++/*+ * Corrects inner padding displayed oddly in S5, Chrome on OSX+ */++input[type="search"]::-webkit-search-decoration {+    -webkit-appearance: none;+}++/*+ * Corrects inner padding and border displayed oddly in FF3/4+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/+ */++button::-moz-focus-inner,+input::-moz-focus-inner {+    border: 0;+    padding: 0;+}++/*+ * 1. Removes default vertical scrollbar in IE6/7/8/9+ * 2. Improves readability and alignment in all browsers+ */++textarea {+    overflow: auto; /* 1 */+    vertical-align: top; /* 2 */+}+++/* =============================================================================+   Tables+   ========================================================================== */++/* + * Remove most spacing between table cells+ */++table {+    border-collapse: collapse;+    border-spacing: 0;+}++{-# START_FILE BASE64 static/img/glyphicons-halflings-white.png #-}+iVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAMAAACY07N7AAAC2VBMVEX///8AAAAAAAD5+fn///8A+AAD////9/f1tbW0AAAD///////////8AAAAAAAD////w8PD+/v729vYAAAD8/PwAAAAAAAD/////+///a2toAAADCwsL09PT////////09PT39/f///8AAAAAAACzs7P9/f0AAADi4uKwsLD////////7++/vn5+f+/v7///8AAADt7e0AAADPz88AAAD9/f329vbt7e37+/vn5+f6+vrh4eGSkpL+/v7+/v7B+wcGYmJh0dHTh4eHQ0NAAAADz8/O7u7uhoaGAgID9/f3U1NRiYmL////V1dX4+Pjc3Nz6+vr7+/vp+6en7+/v9/f39/f3R0dHy8vL8/Pz4+Pjr6+v8/Py2trbGxsbl5eXu7u719fX9/f1lZWVnZ2fw8PC2+trbg4OD39/f6+vrp6enl5eX6+vr4+PjLy8v///+EhITx8fF4eHj39/fd3d35+fnIyMjS0tLs7Oz6++vre3t7i4uLm5ubz8/Obm5uoqKilpaXc3Nzu7u7////x8fHJycnw8PD////////e3t7Gxsa8vLzr+6+vW1tbQ0NDi4uL5+fn09PTi4uLs7Oz19fW0tLT////9/f37+/v8/Pz6+vrm5uYAAADk5OT8/Pz3+9/ewsLCZmZn9/f3s7Oz8/PzBwcHp6en////a2trw8PDw8PD19fXx8fH+/v74+Pj+/v6Ojo7i4uL7++/v5+fnc3Nz////y8vL6+vqfn5/t7e339/f29vbo6Ojz8/P6+vr19fX19fWmpqbLy8v6+vr4+PjT+09Pr6+v6+vrr6+uqqqrz8/Pt7e2ioqLPz8/a2trW1taioqLr6+vi4uL5+flVVVXNzc3////W1tbj+4+Ph4eHq6ur8/Pz////29vb7+/vz8/P09PTMzMz////////5+fn19fX////y8vL9/f0AAADZ2dn8+/Pz7+/v8/Pzp6em/v7/7+/vq6urp6en+/v7////4ck/mAAAA8nRSTlMAGgDUzwIP8SMQ759fCgUv+qfDGFeIYA78fbxNTt98/hsV/BhdD4Q1rRI+vwo3ATxJTD18IoKWasozTETbQ4D40IX5hC6dAMR7R+XydvEsRuotKLkZCATYahkzOxQlFqmbZwJiUhFWy1wyJY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++{-# START_FILE BASE64 static/img/glyphicons-halflings.png #-}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++{-# START_FILE templates/default-layout-wrapper.hamlet #-}+$newline never+\<!doctype html>+\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->+\<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->+\<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->+\<!--[if gt IE 8]><!-->+<html class="no-js" lang="en"> <!--<![endif]-->+    <head>+        <meta charset="UTF-8">++        <title>#{pageTitle pc}+        <meta name="description" content="">+        <meta name="author" content="">++        <meta name="viewport" content="width=device-width,initial-scale=1">++        ^{pageHead pc}++        \<!--[if lt IE 9]>+        \<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>+        \<![endif]-->++        <script>+          document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');+    <body>+        <div class="container">+            <header>+            <div id="main" role="main">+              ^{pageBody pc}+            <footer>+                #{extraCopyright $ appExtra $ settings master}++        $maybe analytics <- extraAnalytics $ appExtra $ settings master+            <script>+              if(!window.location.href.match(/localhost/)){+                window._gaq = [['_setAccount','#{analytics}'],['_trackPageview'],['_trackPageLoadTime']];+                (function() {+                \  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;+                \  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';+                \  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);+                })();+              }+        \<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.  chromium.org/developers/how-tos/chrome-frame-getting-started -->+        \<!--[if lt IE 7 ]>+            <script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">+            <script>+                window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})+        \<![endif]-->++{-# START_FILE templates/default-layout.hamlet #-}+$maybe msg <- mmsg+    <div #message>#{msg}+^{widget}++{-# START_FILE templates/homepage.hamlet #-}+<h1>_{MsgHello}++<ol>+  <li>Now that you have a working project you should use the #+    \<a href="http://www.yesodweb.com/book/">Yesod book</a> to learn more. #+    You can also use this scaffolded site to explore some basic concepts.++  <li> This page was generated by the #{handlerName} handler in #+    \<em>Handler/Home.hs</em>.++  <li> The #{handlerName} handler is set to generate your site's home screen in Routes file #+    <em>config/routes++  <li> The HTML you are seeing now is actually composed by a number of <em>widgets</em>, #+    most of them are brought together by the <em>defaultLayout</em> function which #+    is defined in the <em>Foundation.hs</em> module, and used by <em>#{handlerName}</em>. #+    All the files for templates and wigdets are in <em>templates</em>.++  <li>+    A Widget's Html, Css and Javascript are separated in three files with the #+    \<em>.hamlet</em>, <em>.lucius</em> and <em>.julius</em> extensions. ++  <li ##{aDomId}>If you had javascript enabled then you wouldn't be seeing this.+    +  <li #form>+    This is an example trivial Form. Read the #+    \<a href="http://www.yesodweb.com/book/forms">Forms chapter</a> #+    on the yesod book to learn more about them.+    $maybe (info,con) <- submission+      <div .message>+        Your file's type was <em>#{fileContentType info}</em>. You say it has: <em>#{con}</em>+    <form method=post action=@{HomeR}#form enctype=#{formEnctype}>+      ^{formWidget}+      <input type="submit" value="Send it!">++  <li> And last but not least, Testing. In <em>tests/main.hs</em> you will find a #+    test suite that performs tests on this page. #+    You can run your tests by doing: <pre>yesod test</pre>++{-# START_FILE templates/homepage.julius #-}+document.getElementById(#{toJSON aDomId}).innerHTML = "This text was added by the Javascript part of the homepage widget.";++{-# START_FILE templates/homepage.lucius #-}+h1 {+    text-align: center+}+h2##{aDomId} {+    color: #990+}++{-# START_FILE tests/HomeTest.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module HomeTest+    ( homeSpecs+    ) where++import TestImport+import qualified Data.List as L++homeSpecs :: Specs+homeSpecs =+    ydescribe "These are some example tests" $ do++        yit "loads the index and checks it looks right" $ do+            get HomeR+            statusIs 200+            htmlAllContain "h1" "Hello"++            request $ do+                setMethod "POST"+                setUrl HomeR+                addNonce+                fileByLabel "Choose a file" "tests/main.hs" "text/plain" -- talk about self-reference+                byLabel "What's on the file?" "Some Content"++            statusIs 200+            printBody+            htmlCount ".message" 1+            htmlAllContain ".message" "Some Content"+            htmlAllContain ".message" "text/plain"++        -- This is a simple example of using a database access in a test.  The+        -- test will succeed for a fresh scaffolded site with an empty database,+        -- but will fail on an existing database with a non-empty user table.+        yit "leaves the user table empty" $ do+            get HomeR+            statusIs 200+            users <- runDB $ selectList ([] :: [Filter User]) []+            assertEqual "user table empty" 0 $ L.length users++{-# START_FILE tests/TestImport.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module TestImport+    ( module Yesod.Test+    , module Model+    , module Foundation+    , module Database.Persist+    , runDB+    , Specs+    ) where++import Yesod.Test+import Database.Persist hiding (get)+import Database.Persist.Sql (runSqlPool, SqlPersist, Connection)+import Control.Monad.Trans.Resource (ResourceT, runResourceT)+import Control.Monad.Logger (NoLoggingT, runNoLoggingT)+import Control.Monad.IO.Class (liftIO)++import Foundation+import Model++type Specs = YesodSpec App++runDB :: SqlPersist (NoLoggingT (ResourceT IO)) a -> YesodExample App a+runDB query = do+    pool <- fmap connPool getTestYesod+    liftIO $ runResourceT $ runNoLoggingT $ runSqlPool query pool++{-# START_FILE tests/main.hs #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Main where++import Import+import Yesod.Default.Config+import Yesod.Test+import Test.Hspec (hspec)+import Application (makeFoundation)++import HomeTest++main :: IO ()+main = do+    conf <- Yesod.Default.Config.loadConfig $ (configSettings Testing)+                { csParseExtra = parseExtra+                }+    foundation <- makeFoundation conf+    hspec $ do+        yesodSpec foundation $ do+            homeSpecs+
+ hsfiles/postgres-fay.hsfiles view
@@ -0,0 +1,5970 @@+{-# START_FILE .ghci #-}+:set -i.:config:dist/build/autogen+:set -XCPP -XTemplateHaskell -XQuasiQuotes -XTypeFamilies -XFlexibleContexts -XGADTs -XOverloadedStrings -XMultiParamTypeClasses -XGeneralizedNewtypeDeriving -XEmptyDataDecls++{-# START_FILE .gitignore #-}+dist*+static/tmp/+config/client_session_key.aes+*.hi+*.o+*.sqlite3+fay/Language/Fay/Yesod.hs+.hsenv*+yesod-devel/++{-# START_FILE Application.hs #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Application+    ( makeApplication+    , getApplicationDev+    , makeFoundation+    ) where++import Import+import Settings+import Yesod.Auth+import Yesod.Default.Config+import Yesod.Default.Main+import Yesod.Default.Handlers+import Network.Wai.Middleware.RequestLogger+import qualified Database.Persist+import Database.Persist.Sql (runMigration)+import Network.HTTP.Conduit (newManager, def)+import Yesod.Fay (getFaySite)+import Control.Monad.Logger (runLoggingT)+import System.IO (stdout)+import System.Log.FastLogger (mkLogger)++-- Import all relevant handler modules here.+-- Don't forget to add new modules to your cabal file!+import Handler.Fay+import Handler.Home++-- This line actually creates our YesodDispatch instance. It is the second half+-- of the call to mkYesodData which occurs in Foundation.hs. Please see the+-- comments there for more details.+mkYesodDispatch "App" resourcesApp++-- This function allocates resources (such as a database connection pool),+-- performs initialization and creates a WAI application. This is also the+-- place to put your migrate statements to have automatic database+-- migrations handled by Yesod.+makeApplication :: AppConfig DefaultEnv Extra -> IO Application+makeApplication conf = do+    foundation <- makeFoundation conf++    -- Initialize the logging middleware+    logWare <- mkRequestLogger def+        { outputFormat =+            if development+                then Detailed True+                else Apache FromSocket+        , destination = Logger $ appLogger foundation+        }++    -- Create the WAI application and apply middlewares+    app <- toWaiAppPlain foundation+    return $ logWare app++-- | Loads up any necessary settings, creates your foundation datatype, and+-- performs some initialization.+makeFoundation :: AppConfig DefaultEnv Extra -> IO App+makeFoundation conf = do+    manager <- newManager def+    s <- staticSite+    dbconf <- withYamlEnvironment "config/postgresql.yml" (appEnv conf)+              Database.Persist.loadConfig >>=+              Database.Persist.applyEnv+    p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)+    logger <- mkLogger True stdout+    let foundation = App conf s p manager dbconf onCommand logger++    -- Perform database migration using our application's logging settings.+    runLoggingT+        (Database.Persist.runPool dbconf (runMigration migrateAll) p)+        (messageLoggerSource foundation logger)++    return foundation++-- for yesod devel+getApplicationDev :: IO (Int, Application)+getApplicationDev =+    defaultDevelApp loader makeApplication+  where+    loader = Yesod.Default.Config.loadConfig (configSettings Development)+        { csParseExtra = parseExtra+        }++{-# START_FILE Foundation.hs #-}+module Foundation where++import Prelude+import Yesod+import Yesod.Static+import Yesod.Auth+import Yesod.Auth.BrowserId+import Yesod.Auth.GoogleEmail+import Yesod.Default.Config+import Yesod.Default.Util (addStaticContentExternal)+import Network.HTTP.Conduit (Manager)+import qualified Settings+import Settings.Development (development)+import qualified Database.Persist+import Database.Persist.Sql (SqlPersistT)+import Settings.StaticFiles+import Settings (widgetFile, Extra (..))+import Model+import Text.Hamlet (hamletFile)+import Yesod.Fay+import System.Log.FastLogger (Logger)++-- | The site argument for your application. This can be a good place to+-- keep settings and values requiring initialization before your application+-- starts running, such as database connections. Every handler will have+-- access to the data present here.+data App = App+    { settings :: AppConfig DefaultEnv Extra+    , getStatic :: Static -- ^ Settings for static file serving.+    , connPool :: Database.Persist.PersistConfigPool Settings.PersistConf -- ^ Database connection pool.+    , httpManager :: Manager+    , persistConfig :: Settings.PersistConf+    , fayCommandHandler :: CommandHandler App+    , appLogger :: Logger+    }++-- Set up i18n messages. See the message folder.+mkMessage "App" "messages" "en"++-- This is where we define all of the routes in our application. For a full+-- explanation of the syntax, please see:+-- http://www.yesodweb.com/book/handler+--+-- This function does three things:+--+-- * Creates the route datatype AppRoute. Every valid URL in your+--   application can be represented as a value of this type.+-- * Creates the associated type:+--       type instance Route App = AppRoute+-- * Creates the value resourcesApp which contains information on the+--   resources declared below. This is used in Handler.hs by the call to+--   mkYesodDispatch+--+-- What this function does *not* do is create a YesodSite instance for+-- App. Creating that instance requires all of the handler functions+-- for our application to be in scope. However, the handler functions+-- usually require access to the AppRoute datatype. Therefore, we+-- split these actions into two functions and place them in separate files.+mkYesodData "App" $(parseRoutesFile "config/routes")++type Form x = Html -> MForm (HandlerT App IO) (FormResult x, Widget)++-- Please see the documentation for the Yesod typeclass. There are a number+-- of settings which can be configured by overriding methods here.+instance Yesod App where+    approot = ApprootMaster $ appRoot . settings++    -- Store session data on the client in encrypted cookies,+    -- default session idle timeout is 120 minutes+    makeSessionBackend _ = fmap Just $ defaultClientSessionBackend+        (120 * 60) -- 120 minutes+        "config/client_session_key.aes"++    defaultLayout widget = do+        master <- getYesod+        mmsg <- getMessage++        -- We break up the default layout into two components:+        -- default-layout is the contents of the body tag, and+        -- default-layout-wrapper is the entire page. Since the final+        -- value passed to hamletToRepHtml cannot be a widget, this allows+        -- you to use normal widget features in default-layout.++        pc <- widgetToPageContent $ do+            $(combineStylesheets 'StaticR+                [ css_normalize_css+                , css_bootstrap_css+                ])+            $(widgetFile "default-layout")+        hamletToRepHtml $(hamletFile "templates/default-layout-wrapper.hamlet")++    -- This is done to provide an optimization for serving static files from+    -- a separate domain. Please see the staticRoot setting in Settings.hs+    urlRenderOverride y (StaticR s) =+        Just $ uncurry (joinPath y (Settings.staticRoot $ settings y)) $ renderRoute s+    urlRenderOverride _ _ = Nothing++    -- The page to be redirected to when authentication is required.+    authRoute _ = Just $ AuthR LoginR++    -- This function creates static content files in the static folder+    -- and names them based on a hash of their content. This allows+    -- expiration dates to be set far in the future without worry of+    -- users receiving stale content.+    addStaticContent =+        addStaticContentExternal Right genFileName Settings.staticDir (StaticR . flip StaticRoute [])+      where+        -- Generate a unique filename based on the content itself+        genFileName lbs+            | development = "autogen-" ++ base64md5 lbs+            | otherwise   = base64md5 lbs++    -- Place Javascript at bottom of the body tag so the rest of the page loads first+    jsLoader _ = BottomOfBody++    -- What messages should be logged. The following includes all messages when+    -- in development, and warnings and errors in production.+    shouldLog _ _source level =+        development || level == LevelWarn || level == LevelError++    makeLogger = return . appLogger++instance YesodJquery App+instance YesodFay App where++    fayRoute = FaySiteR++    yesodFayCommand render command = do+        master <- getYesod+        fayCommandHandler master render command++-- How to run database actions.+instance YesodPersist App where+    type YesodPersistBackend App = SqlPersistT+    runDB = defaultRunDB persistConfig connPool+instance YesodPersistRunner App where+    getDBRunner = defaultGetDBRunner connPool++instance YesodAuth App where+    type AuthId App = UserId++    -- Where to send a user after successful login+    loginDest _ = HomeR+    -- Where to send a user after logout+    logoutDest _ = HomeR++    getAuthId creds = runDB $ do+        x <- getBy $ UniqueUser $ credsIdent creds+        case x of+            Just (Entity uid _) -> return $ Just uid+            Nothing -> do+                fmap Just $ insert $ User (credsIdent creds) Nothing++    -- You can add other plugins like BrowserID, email or OAuth here+    authPlugins _ = [authBrowserId def, authGoogleEmail]++    authHttpManager = httpManager++-- This instance is required to use forms. You can modify renderMessage to+-- achieve customized and internationalized form validation messages.+instance RenderMessage App FormMessage where+    renderMessage _ _ = defaultFormMessage++-- | Get the 'Extra' value, used to hold data from the settings.yml file.+getExtra :: Handler Extra+getExtra = fmap (appExtra . settings) getYesod++-- Note: previous versions of the scaffolding included a deliver function to+-- send emails. Unfortunately, there are too many different options for us to+-- give a reasonable default. Instead, the information is available on the+-- wiki:+--+-- https://github.com/yesodweb/yesod/wiki/Sending-email++{-# START_FILE Handler/Fay.hs #-}+module Handler.Fay where++import Import+import Yesod.Fay+import Fay.Convert (readFromFay)++fibs :: [Int]+fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs)++onCommand :: CommandHandler App+onCommand render command =+    case readFromFay command of+      Just (GetFib index r) -> render r $ fibs !! index+      Nothing               -> invalidArgs ["Invalid command"]++{-# START_FILE Handler/Home.hs #-}+{-# LANGUAGE TupleSections, OverloadedStrings #-}+module Handler.Home where++import Import+import Language.Haskell.TH ( Exp(..) )++-- This is a handler function for the GET request method on the HomeR+-- resource pattern. All of your resource patterns are defined in+-- config/routes+--+-- The majority of the code you will write in Yesod lives in these handler+-- functions. You can spread them across multiple files if you are so+-- inclined, or create a single monolithic file.+getHomeR :: Handler RepHtml+getHomeR = do+    (formWidget, formEnctype) <- generateFormPost sampleForm+    let submission = Nothing :: Maybe (FileInfo, Text)+        handlerName = "getHomeR" :: Text+    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")+        $(fayFile' (ConE 'StaticR) "Home")++postHomeR :: Handler RepHtml+postHomeR = do+    ((result, formWidget), formEnctype) <- runFormPost sampleForm+    let handlerName = "postHomeR" :: Text+        submission = case result of+            FormSuccess res -> Just res+            _ -> Nothing++    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++sampleForm :: Form (FileInfo, Text)+sampleForm = renderDivs $ (,)+    <$> fileAFormReq "Choose a file"+    <*> areq textField "What's on the file?" Nothing++{-# START_FILE Import.hs #-}+module Import+    ( module Import+    ) where++import           Prelude              as Import hiding (head, init, last,+                                                 readFile, tail, writeFile)+import           Yesod                as Import hiding (Route (..))++import           Control.Applicative  as Import (pure, (<$>), (<*>))+import           Data.Text            as Import (Text)++import           Foundation           as Import+import           Model                as Import+import           Settings             as Import+import           Settings.Development as Import+import           Settings.StaticFiles as Import+import           SharedTypes          as Import++#if __GLASGOW_HASKELL__ >= 704+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat),+                                                 (<>))+#else+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat))++infixr 5 <>+(<>) :: Monoid m => m -> m -> m+(<>) = mappend+#endif++{-# START_FILE Model.hs #-}+module Model where++import Prelude+import Yesod+import Data.Text (Text)+import Database.Persist.Quasi+import Data.Typeable (Typeable)++-- You can define all of your database entities in the entities file.+-- You can find more information on persistent and how to declare entities+-- at:+-- http://www.yesodweb.com/book/persistent/+share [mkPersist sqlOnlySettings, mkMigrate "migrateAll"]+    $(persistFileWith lowerCaseSettings "config/models")++{-# START_FILE PROJECTNAME.cabal #-}+name:              PROJECTNAME+version:           0.0.0+cabal-version:     >= 1.8+build-type:        Simple++Flag dev+    Description:   Turn on development settings, like auto-reload templates.+    Default:       False++Flag library-only+    Description:   Build for use with "yesod devel"+    Default:       False++library+    hs-source-dirs: ., fay-shared+    exposed-modules: Application+                     Foundation+                     Import+                     Model+                     Settings+                     Settings.StaticFiles+                     Settings.Development+                     SharedTypes+                     Handler.Fay+                     Handler.Home++    if flag(dev) || flag(library-only)+        cpp-options:   -DDEVELOPMENT+        ghc-options:   -Wall -O0+    else+        ghc-options:   -Wall -O2++    extensions: TemplateHaskell+                QuasiQuotes+                OverloadedStrings+                NoImplicitPrelude+                CPP+                MultiParamTypeClasses+                TypeFamilies+                GADTs+                GeneralizedNewtypeDeriving+                FlexibleContexts+                EmptyDataDecls+                NoMonomorphismRestriction+                RankNTypes+                DeriveDataTypeable++    build-depends: base                          >= 4          && < 5+                 -- , yesod-platform                >= 1.1        && < 1.2+                 , yesod                         >= 1.2        && < 1.3+                 , yesod-core                    >= 1.2        && < 1.3+                 , yesod-auth                    >= 1.2        && < 1.3+                 , yesod-static                  >= 1.2        && < 1.3+                 , yesod-form                    >= 1.3        && < 1.4+                 , yesod-fay                     >= 0.1+                 , fay                           >= 0.9+                 , bytestring                    >= 0.9        && < 0.11+                 , text                          >= 0.11       && < 0.12+                 , persistent                    >= 1.2        && < 1.3+                 , persistent-postgresql         >= 1.2        && < 1.3+                 , persistent-template           >= 1.2        && < 1.3+                 , template-haskell+                 , hamlet                        >= 1.1        && < 1.2+                 , shakespeare-css               >= 1.0        && < 1.1+                 , shakespeare-js                >= 1.0.2      && < 1.2+                 , shakespeare-text              >= 1.0        && < 1.1+                 , monad-control                 >= 0.3        && < 0.4+                 , wai-extra                     >= 1.3        && < 1.4+                 , yaml                          >= 0.8        && < 0.9+                 , http-conduit                  >= 1.9        && < 1.10+                 , directory                     >= 1.1        && < 1.3+                 , warp                          >= 1.3        && < 1.4+                 , data-default+                 , aeson+                 , conduit                       >= 1.0+                 , monad-logger                  >= 0.3+                 , fast-logger                   >= 0.3++executable         PROJECTNAME+    if flag(library-only)+        Buildable: False++    main-is:           main.hs+    hs-source-dirs:    app+    build-depends:     base+                     , PROJECTNAME+                     , yesod++    ghc-options:       -threaded -O2++test-suite test+    type:              exitcode-stdio-1.0+    main-is:           main.hs+    hs-source-dirs:    tests+    ghc-options:       -Wall++    build-depends: base+                 , PROJECTNAME+                 , yesod-test >= 1.2 && < 1.3+                 , yesod-core+                 , yesod+                 , persistent+                 , persistent-postgresql+                 , resourcet+                 , monad-logger+                 , transformers+                 , hspec++{-# START_FILE Settings.hs #-}+-- | Settings are centralized, as much as possible, into this file. This+-- includes database connection settings, static file locations, etc.+-- In addition, you can configure a number of different aspects of Yesod+-- by overriding methods in the Yesod typeclass. That instance is+-- declared in the Foundation.hs file.+module Settings where++import Prelude+import Text.Shakespeare.Text (st)+import Language.Haskell.TH.Syntax+import Database.Persist.Postgresql (PostgresConf)+import Yesod.Default.Config+import Yesod.Default.Util+import Data.Text (Text)+import Data.Yaml+import Control.Applicative+import Settings.Development+import Data.Default (def)+import Text.Hamlet+import Yesod.Fay++-- | Which Persistent backend this site is using.+type PersistConf = PostgresConf++-- Static setting below. Changing these requires a recompile++-- | The location of static files on your system. This is a file system+-- path. The default value works properly with your scaffolded site.+staticDir :: FilePath+staticDir = "static"++-- | The base URL for your static files. As you can see by the default+-- value, this can simply be "static" appended to your application root.+-- A powerful optimization can be serving static files from a separate+-- domain name. This allows you to use a web server optimized for static+-- files, more easily set expires and cache values, and avoid possibly+-- costly transference of cookies on static files. For more information,+-- please see:+--   http://code.google.com/speed/page-speed/docs/request.html#ServeFromCookielessDomain+--+-- If you change the resource pattern for StaticR in Foundation.hs, you will+-- have to make a corresponding change here.+--+-- To see how this value is used, see urlRenderOverride in Foundation.hs+staticRoot :: AppConfig DefaultEnv x -> Text+staticRoot conf = [st|#{appRoot conf}/static|]++-- | Settings for 'widgetFile', such as which template languages to support and+-- default Hamlet settings.+--+-- For more information on modifying behavior, see:+--+-- https://github.com/yesodweb/yesod/wiki/Overriding-widgetFile+widgetFileSettings :: WidgetFileSettings+widgetFileSettings = def+    { wfsHamletSettings = defaultHamletSettings+        { hamletNewlines = AlwaysNewlines+        }+    }++-- The rest of this file contains settings which rarely need changing by a+-- user.++widgetFile :: String -> Q Exp+widgetFile = (if development then widgetFileReload+                             else widgetFileNoReload)+              widgetFileSettings++fayFile' :: Exp -> FayFile+fayFile' staticR moduleName+    | development = fayFileReload settings+    | otherwise   = fayFileProd settings+  where+    settings = (yesodFaySettings moduleName)+        { yfsSeparateRuntime = Just ("static", staticR)+        -- , yfsPostProcess = readProcess "java" ["-jar", "closure-compiler.jar"]+        , yfsExternal = Just ("static", staticR)+        }++data Extra = Extra+    { extraCopyright :: Text+    , extraAnalytics :: Maybe Text -- ^ Google Analytics+    } deriving Show++parseExtra :: DefaultEnv -> Object -> Parser Extra+parseExtra _ o = Extra+    <$> o .:  "copyright"+    <*> o .:? "analytics"++{-# START_FILE Settings/Development.hs #-}+module Settings.Development where++import Prelude++development :: Bool+development =+#if DEVELOPMENT+  True+#else+  False+#endif++production :: Bool+production = not development++{-# START_FILE Settings/StaticFiles.hs #-}+module Settings.StaticFiles where++import Prelude (IO)+import Yesod.Static+import qualified Yesod.Static as Static+import Settings (staticDir)+import Settings.Development+import Language.Haskell.TH (Q, Exp, Name)+import Data.Default (def)++-- | use this to create your static file serving site+staticSite :: IO Static.Static+staticSite = if development then Static.staticDevel staticDir+                            else Static.static      staticDir++-- | This generates easy references to files in the static directory at compile time,+--   giving you compile-time verification that referenced files exist.+--   Warning: any files added to your static directory during run-time can't be+--   accessed this way. You'll have to use their FilePath or URL to access them.+$(staticFiles Settings.staticDir)++combineSettings :: CombineSettings+combineSettings = def++-- The following two functions can be used to combine multiple CSS or JS files+-- at compile time to decrease the number of http requests.+-- Sample usage (inside a Widget):+--+-- > $(combineStylesheets 'StaticR [style1_css, style2_css])++combineStylesheets :: Name -> [Route Static] -> Q Exp+combineStylesheets = combineStylesheets' development combineSettings++combineScripts :: Name -> [Route Static] -> Q Exp+combineScripts = combineScripts' development combineSettings++{-# START_FILE app/main.hs #-}+import Prelude              (IO)+import Yesod.Default.Config (fromArgs)+import Yesod.Default.Main   (defaultMain)+import Settings             (parseExtra)+import Application          (makeApplication)++main :: IO ()+main = defaultMain (fromArgs parseExtra) makeApplication++{-# START_FILE BASE64 config/favicon.ico #-}+AAABAAIAEBAAAAEAIABoBAAAJgAAABAQAgABAAEAsAAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAApl4sAAAAAAAAAAAAAAAAAUEpGyNpSjaIg2NO2ZBvWfqTc13/+jW1X9YNhTMZrSTNkUTMfDwAAAAAAAAAAAAAAAAAAAAAAAAAANR0NClk6JmF+W0Txj2xV/41qVP+M+aVP/jGlS/4xpUv+MaVL/i2dQ/3pVPdNeOiEzQRsBAgAAAAAAAAAAMBgHAlIxG1h5UDb/h15D9n5W+PPZ4TzXmeVE303hQNtV4UDbVeFA11XdQNdV5UTfbbUUpx1UsEBgAAAAAAAAFADIVAwlULxY/f1M1+4dOffryecFHMXTIVhAAAAAURAAAOEwAADxQAAA8TAAAPEAAADigEABFNJAkZTSQJCRAHAQdKIARt+OxUAC1kvE3qQYEDfzJt5wXtOL9pQJAa0UScKjVInCo1SJwqNUSYJjVElCY1RJQmLUSUHslEjBGcu+EgAuVSQC/00eAGAYAAAPXzAQuLGAXs6ygV/PYTESwkMXAFRGHgI3Rx4BPEceATxHHQE7RBsBMkwf+AqlUIQHgQhoAaVUhAP9TIQDhSBwAI0EXAD5xQSHbzJp4wJRiQtBRIgKuRxsAb0kdAGpJHQBqSR0A+e04fAJNJHQClVCEA/0YcAIRVIgD/VSIA7E0fADQyDQAyaToa1MqXdMLJl3bBc0Ii6UscAJFFGgBE+RRoAQUIZAFlRIADpVSIA/1UiAP9JHwN9WicG/1QhAIMAAAAMVywPoaBtTNi6imnEsIBfya9+Xc1m+OBm2UycIilgqDYVVKQ2DVigJ4FwqCf5cKgr/Qx8GUGAwEc08EwAPTSgQY4dXN+LPnXy9g1c54XtM+LevJl3a/k2RE3WY5Gv9mNxn/Zjga/2c5G/9oOhz/Zzka/DQYBRFZLRA1JhAAJHhML9XJlnTCqXxe+zXFHLPtxRyv/n3BR2MuZd7uFWjzmc0gt/nRKLv90Sy//dUww/21CJcIAAAAATCsURXRONdR+Vjr5+j2ZL5oJbQfN+Vz3/flg//4NcQfePZkrogVk/8n5YP/6BW0H/gVtD/oBaQf9qQCRIJAgAAFAxHRt4+VDzVjWpS/4lmT/6LZ1D/jGlS/4xpU/6MaVL/i2hS/otpUv6Na1T+jmtV/o9tV/98Vj2cYzoeBgAA+AAAGAgAAZ0cyMIVkTtqae2f/mXpm/5l5Zf6Zemb+mXpm/5p6Zv+ae2f+mnxp/5p7Z/+HZE2qdE84+FAAAAAAAAAAAAAAAAAAAAABrTDgfhWVQnp2Abf+njHv/pot6/6aMev+njHv/qI18/5t+avOHZU9y+fFc/DgAAAAAAAAAAJhABAAAAAAAAAAAAyqmXADYdCQNoSDQjh2hUbpd6aJ+Zfmurl3pnlYZkTlpw+TDYTX0IxAbNeMwAAAAAAsoFfAPgfAADwBwAA4AMAAOH/AADwAQAAsPwAAJh4AAAYOAAAkAAAALAA+AADgAAAAwAEAAMABAADgAwAA8A8AAP4/AAAoAAAAEAAAACAAAAABAAEAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==++{-# START_FILE config/keter.yaml #-}+exec: ../dist/build/PROJECTNAME/PROJECTNAME+args:+    - production+host: <<HOST-NOT-SET>>++# Use the following to automatically copy your bundle upon creation via `yesod+# keter`. Uses `scp` internally, so you can set it to a remote destination+# copy-to: user@host:/opt/keter/incoming++{-# START_FILE config/models #-}+User+    ident Text+    password Text Maybe+    UniqueUser ident+    deriving Typeable+Email+    email Text+    user UserId Maybe+    verkey Text Maybe+    UniqueEmail email++ -- By default this file is used in Model.hs (which is imported by Foundation.hs)++{-# START_FILE config/postgresql.yml #-}+Default: &defaults+  user: PROJECTNAME+  password: PROJECTNAME+  host: localhost+  port: 5432+  database: PROJECTNAME+  poolsize: 10++Development:+  <<: *defaults++Testing:+  database: PROJECTNAME_test+  <<: *defaults++Staging:+  database: PROJECTNAME_staging+  poolsize: 100+  <<: *defaults++Production:+  database: PROJECTNAME_production+  poolsize: 100+  <<: *defaults++{-# START_FILE config/robots.txt #-}+User-agent: *++{-# START_FILE config/routes #-}+/static      StaticR  Static  getStatic+/auth        AuthR    Auth    getAuth+/fay-command FaySiteR FaySite getFaySite++/favicon.ico FaviconR GET+/robots.txt RobotsR GET++/ HomeR GET POST++{-# START_FILE config/settings.yml #-}+Default: &defaults+  host: "*4" # any IPv4 host+  port: 3000+  approot: "http://localhost:3000"+  copyright: Insert copyright statement here+  #analytics: UA-YOURCODE++Development:+  <<: *defaults++Testing:+  <<: *defaults++Staging:+  <<: *defaults++Production:+  #approot: "http://www.example.com"+  <<: *defaults++{-# START_FILE deploy/Procfile #-}+# Free deployment to Heroku.+#+#   !! Warning: You must use a 64 bit machine to compile !!+#+#   This could mean using a virtual machine. Give your VM as much memory as you can to speed up linking.+#+# Basic Yesod setup:+#+# * Move this file out of the deploy directory and into your root directory+#+#     mv deploy/Procfile ./+#+# * Create an empty package.json+#     echo '{ "name": "PROJECTNAME", "version": "0.0.1", "dependencies": {} }' >> package.json+#+# Postgresql Yesod setup:+#+# * add dependencies on the "heroku", "aeson" and "unordered-containers" packages in your cabal file+#+# * add code in Application.hs to use the heroku package and load the connection parameters.+#   The below works for Postgresql.+#+#   import Data.HashMap.Strict as H+#   import Data.Aeson.Types as AT+#   #ifndef DEVELOPMENT+#   import qualified Web.Heroku+#   #endif+#+#+#+#   makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO App+#   makeFoundation conf setLogger = do+#       manager <- newManager def+#       s <- staticSite+#       hconfig <- loadHerokuConfig+#       dbconf <- withYamlEnvironment "config/postgresql.yml" (appEnv conf)+#                 (Database.Persist.Store.loadConfig . combineMappings hconfig) >>=+#                 Database.Persist.Store.applyEnv+#       p <- Database.Persist.Store.createPoolConfig (dbconf :: Settings.PersistConfig)+#       Database.Persist.Store.runPool dbconf (runMigration migrateAll) p+#       return $ App conf setLogger s p manager dbconf+#+#   #ifndef DEVELOPMENT+#   canonicalizeKey :: (Text, val) -> (Text, val)+#   canonicalizeKey ("dbname", val) = ("database", val)+#   canonicalizeKey pair = pair+#+#   toMapping :: [(Text, Text)] -> AT.Value+#   toMapping xs = AT.Object $ M.fromList $ map (\(key, val) -> (key, AT.String val)) xs+#   #endif+#+#   combineMappings :: AT.Value -> AT.Value -> AT.Value+#   combineMappings (AT.Object m1) (AT.Object m2) = AT.Object $ m1 `M.union` m2+#   combineMappings _ _ = error "Data.Object is not a Mapping."+#+#   loadHerokuConfig :: IO AT.Value+#   loadHerokuConfig = do+#   #ifdef DEVELOPMENT+#       return $ AT.Object M.empty+#   #else+#       Web.Heroku.dbConnParams >>= return . toMapping . map canonicalizeKey+#   #endif++++# Heroku setup:+# Find the Heroku guide. Roughly:+#+# * sign up for a heroku account and register your ssh key+# * create a new application on the *cedar* stack+#+# * make your Yesod project the git repository for that application+# * create a deploy branch+#+#     git checkout -b deploy+#+# Repeat these steps to deploy:+# * add your web executable binary (referenced below) to the git repository+#+#     git checkout deploy+#     git add ./dist/build/PROJECTNAME/PROJECTNAME+#     git commit -m deploy+#+# * push to Heroku+#+#     git push heroku deploy:master+++# Heroku configuration that runs your app+web: ./dist/build/PROJECTNAME/PROJECTNAME production -p $PORT++{-# START_FILE devel.hs #-}+{-# LANGUAGE PackageImports #-}+import "PROJECTNAME" Application (getApplicationDev)+import Network.Wai.Handler.Warp+    (runSettings, defaultSettings, settingsPort)+import Control.Concurrent (forkIO)+import System.Directory (doesFileExist, removeFile)+import System.Exit (exitSuccess)+import Control.Concurrent (threadDelay)++main :: IO ()+main = do+    putStrLn "Starting devel application"+    (port, app) <- getApplicationDev+    forkIO $ runSettings defaultSettings+        { settingsPort = port+        } app+    loop++loop :: IO ()+loop = do+  threadDelay 100000+  e <- doesFileExist "yesod-devel/devel-terminate"+  if e then terminateDevel else loop++terminateDevel :: IO ()+terminateDevel = exitSuccess++{-# START_FILE fay-shared/SharedTypes.hs #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE DeriveDataTypeable #-}+module SharedTypes where++import Prelude+import Data.Data+import Language.Fay.Yesod+#ifdef FAY+import FFI+#else+import Language.Fay.FFI+#endif++data Command = GetFib Int (Returns Int)+    deriving (Read, Typeable, Data)+++{-# START_FILE fay/Home.hs #-}+{-# LANGUAGE NoImplicitPrelude #-}+{-# LANGUAGE EmptyDataDecls    #-}+module Home where++import Prelude+import Language.Fay.FFI+import Language.Fay.Yesod+import SharedTypes++data Element++getElementById :: String -> Fay Element+getElementById = ffi "document.getElementById(%1)"++getAttribute :: String -> Element -> Fay String+getAttribute = ffi "%2[%1]"++setInnerHTML :: Element -> String -> Fay ()+setInnerHTML = ffi "%1.innerHTML=%2"++onKeyUp :: Element -> Fay () -> Fay ()+onKeyUp = ffi "%1.onkeyup=%2"++alert :: String -> Fay ()+alert = ffi "window.alert(%1)"++parseInt :: String -> Fay Int+parseInt = ffi "window.parseInt(%1, 10)"++main :: Fay ()+main = do+    input <- getElementById "fibindex"+    result <- getElementById "fibresult"+    onKeyUp input $ do+        indexS <- getAttribute "value" input+        index <- parseInt indexS+        call (GetFib index) $ setInnerHTML result . show++{-# START_FILE messages/en.msg #-}+Hello: Hello++{-# START_FILE static/css/bootstrap.css #-}+/*!+ * Bootstrap v2.0.2+ *+ * Copyright 2012 Twitter, Inc+ * Licensed under the Apache License v2.0+ * http://www.apache.org/licenses/LICENSE-2.0+ *+ * Designed and built with all the love in the world @twitter by @mdo and @fat.+ */+article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+  display: block;+}+audio,+canvas,+video {+  display: inline-block;+  *display: inline;+  *zoom: 1;+}+audio:not([controls]) {+  display: none;+}+html {+  font-size: 100%;+  -webkit-text-size-adjust: 100%;+  -ms-text-size-adjust: 100%;+}+a:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+a:hover,+a:active {+  outline: 0;+}+sub,+sup {+  position: relative;+  font-size: 75%;+  line-height: 0;+  vertical-align: baseline;+}+sup {+  top: -0.5em;+}+sub {+  bottom: -0.25em;+}+img {+  height: auto;+  border: 0;+  -ms-interpolation-mode: bicubic;+  vertical-align: middle;+}+button,+input,+select,+textarea {+  margin: 0;+  font-size: 100%;+  vertical-align: middle;+}+button,+input {+  *overflow: visible;+  line-height: normal;+}+button::-moz-focus-inner,+input::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button,+input[type="button"],+input[type="reset"],+input[type="submit"] {+  cursor: pointer;+  -webkit-appearance: button;+}+input[type="search"] {+  -webkit-appearance: textfield;+  -webkit-box-sizing: content-box;+  -moz-box-sizing: content-box;+  box-sizing: content-box;+}+input[type="search"]::-webkit-search-decoration,+input[type="search"]::-webkit-search-cancel-button {+  -webkit-appearance: none;+}+textarea {+  overflow: auto;+  vertical-align: top;+}+.clearfix {+  *zoom: 1;+}+.clearfix:before,+.clearfix:after {+  display: table;+  content: "";+}+.clearfix:after {+  clear: both;+}+.hide-text {+  overflow: hidden;+  text-indent: 100%;+  white-space: nowrap;+}+.input-block-level {+  display: block;+  width: 100%;+  min-height: 28px;+  /* Make inputs at least the height of their button counterpart */++  /* Makes inputs behave like true block-level elements */++  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+}+body {+  margin: 0;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  background-color: #ffffff;+}+a {+  color: #0088cc;+  text-decoration: none;+}+a:hover {+  color: #005580;+  text-decoration: underline;+}+.row {+  margin-left: -20px;+  *zoom: 1;+}+.row:before,+.row:after {+  display: table;+  content: "";+}+.row:after {+  clear: both;+}+[class*="span"] {+  float: left;+  margin-left: 20px;+}+.container,+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.span12 {+  width: 940px;+}+.span11 {+  width: 860px;+}+.span10 {+  width: 780px;+}+.span9 {+  width: 700px;+}+.span8 {+  width: 620px;+}+.span7 {+  width: 540px;+}+.span6 {+  width: 460px;+}+.span5 {+  width: 380px;+}+.span4 {+  width: 300px;+}+.span3 {+  width: 220px;+}+.span2 {+  width: 140px;+}+.span1 {+  width: 60px;+}+.offset12 {+  margin-left: 980px;+}+.offset11 {+  margin-left: 900px;+}+.offset10 {+  margin-left: 820px;+}+.offset9 {+  margin-left: 740px;+}+.offset8 {+  margin-left: 660px;+}+.offset7 {+  margin-left: 580px;+}+.offset6 {+  margin-left: 500px;+}+.offset5 {+  margin-left: 420px;+}+.offset4 {+  margin-left: 340px;+}+.offset3 {+  margin-left: 260px;+}+.offset2 {+  margin-left: 180px;+}+.offset1 {+  margin-left: 100px;+}+.row-fluid {+  width: 100%;+  *zoom: 1;+}+.row-fluid:before,+.row-fluid:after {+  display: table;+  content: "";+}+.row-fluid:after {+  clear: both;+}+.row-fluid > [class*="span"] {+  float: left;+  margin-left: 2.127659574%;+}+.row-fluid > [class*="span"]:first-child {+  margin-left: 0;+}+.row-fluid > .span12 {+  width: 99.99999998999999%;+}+.row-fluid > .span11 {+  width: 91.489361693%;+}+.row-fluid > .span10 {+  width: 82.97872339599999%;+}+.row-fluid > .span9 {+  width: 74.468085099%;+}+.row-fluid > .span8 {+  width: 65.95744680199999%;+}+.row-fluid > .span7 {+  width: 57.446808505%;+}+.row-fluid > .span6 {+  width: 48.93617020799999%;+}+.row-fluid > .span5 {+  width: 40.425531911%;+}+.row-fluid > .span4 {+  width: 31.914893614%;+}+.row-fluid > .span3 {+  width: 23.404255317%;+}+.row-fluid > .span2 {+  width: 14.89361702%;+}+.row-fluid > .span1 {+  width: 6.382978723%;+}+.container {+  margin-left: auto;+  margin-right: auto;+  *zoom: 1;+}+.container:before,+.container:after {+  display: table;+  content: "";+}+.container:after {+  clear: both;+}+.container-fluid {+  padding-left: 20px;+  padding-right: 20px;+  *zoom: 1;+}+.container-fluid:before,+.container-fluid:after {+  display: table;+  content: "";+}+.container-fluid:after {+  clear: both;+}+p {+  margin: 0 0 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+}+p small {+  font-size: 11px;+  color: #999999;+}+.lead {+  margin-bottom: 18px;+  font-size: 20px;+  font-weight: 200;+  line-height: 27px;+}+h1,+h2,+h3,+h4,+h5,+h6 {+  margin: 0;+  font-family: inherit;+  font-weight: bold;+  color: inherit;+  text-rendering: optimizelegibility;+}+h1 small,+h2 small,+h3 small,+h4 small,+h5 small,+h6 small {+  font-weight: normal;+  color: #999999;+}+h1 {+  font-size: 30px;+  line-height: 36px;+}+h1 small {+  font-size: 18px;+}+h2 {+  font-size: 24px;+  line-height: 36px;+}+h2 small {+  font-size: 18px;+}+h3 {+  line-height: 27px;+  font-size: 18px;+}+h3 small {+  font-size: 14px;+}+h4,+h5,+h6 {+  line-height: 18px;+}+h4 {+  font-size: 14px;+}+h4 small {+  font-size: 12px;+}+h5 {+  font-size: 12px;+}+h6 {+  font-size: 11px;+  color: #999999;+  text-transform: uppercase;+}+.page-header {+  padding-bottom: 17px;+  margin: 18px 0;+  border-bottom: 1px solid #eeeeee;+}+.page-header h1 {+  line-height: 1;+}+ul,+ol {+  padding: 0;+  margin: 0 0 9px 25px;+}+ul ul,+ul ol,+ol ol,+ol ul {+  margin-bottom: 0;+}+ul {+  list-style: disc;+}+ol {+  list-style: decimal;+}+li {+  line-height: 18px;+}+ul.unstyled,+ol.unstyled {+  margin-left: 0;+  list-style: none;+}+dl {+  margin-bottom: 18px;+}+dt,+dd {+  line-height: 18px;+}+dt {+  font-weight: bold;+  line-height: 17px;+}+dd {+  margin-left: 9px;+}+.dl-horizontal dt {+  float: left;+  clear: left;+  width: 120px;+  text-align: right;+}+.dl-horizontal dd {+  margin-left: 130px;+}+hr {+  margin: 18px 0;+  border: 0;+  border-top: 1px solid #eeeeee;+  border-bottom: 1px solid #ffffff;+}+strong {+  font-weight: bold;+}+em {+  font-style: italic;+}+.muted {+  color: #999999;+}+abbr[title] {+  border-bottom: 1px dotted #ddd;+  cursor: help;+}+abbr.initialism {+  font-size: 90%;+  text-transform: uppercase;+}+blockquote {+  padding: 0 0 0 15px;+  margin: 0 0 18px;+  border-left: 5px solid #eeeeee;+}+blockquote p {+  margin-bottom: 0;+  font-size: 16px;+  font-weight: 300;+  line-height: 22.5px;+}+blockquote small {+  display: block;+  line-height: 18px;+  color: #999999;+}+blockquote small:before {+  content: '\2014 \00A0';+}+blockquote.pull-right {+  float: right;+  padding-left: 0;+  padding-right: 15px;+  border-left: 0;+  border-right: 5px solid #eeeeee;+}+blockquote.pull-right p,+blockquote.pull-right small {+  text-align: right;+}+q:before,+q:after,+blockquote:before,+blockquote:after {+  content: "";+}+address {+  display: block;+  margin-bottom: 18px;+  line-height: 18px;+  font-style: normal;+}+small {+  font-size: 100%;+}+cite {+  font-style: normal;+}+code,+pre {+  padding: 0 3px 2px;+  font-family: Menlo, Monaco, "Courier New", monospace;+  font-size: 12px;+  color: #333333;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+code {+  padding: 2px 4px;+  color: #d14;+  background-color: #f7f7f9;+  border: 1px solid #e1e1e8;+}+pre {+  display: block;+  padding: 8.5px;+  margin: 0 0 9px;+  font-size: 12.025px;+  line-height: 18px;+  background-color: #f5f5f5;+  border: 1px solid #ccc;+  border: 1px solid rgba(0, 0, 0, 0.15);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  white-space: pre;+  white-space: pre-wrap;+  word-break: break-all;+  word-wrap: break-word;+}+pre.prettyprint {+  margin-bottom: 18px;+}+pre code {+  padding: 0;+  color: inherit;+  background-color: transparent;+  border: 0;+}+.pre-scrollable {+  max-height: 340px;+  overflow-y: scroll;+}+form {+  margin: 0 0 18px;+}+fieldset {+  padding: 0;+  margin: 0;+  border: 0;+}+legend {+  display: block;+  width: 100%;+  padding: 0;+  margin-bottom: 27px;+  font-size: 19.5px;+  line-height: 36px;+  color: #333333;+  border: 0;+  border-bottom: 1px solid #eee;+}+legend small {+  font-size: 13.5px;+  color: #999999;+}+label,+input,+button,+select,+textarea {+  font-size: 13px;+  font-weight: normal;+  line-height: 18px;+}+input,+button,+select,+textarea {+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+}+label {+  display: block;+  margin-bottom: 5px;+  color: #333333;+}+input,+textarea,+select,+.uneditable-input {+  display: inline-block;+  width: 210px;+  height: 18px;+  padding: 4px;+  margin-bottom: 9px;+  font-size: 13px;+  line-height: 18px;+  color: #555555;+  border: 1px solid #cccccc;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.uneditable-textarea {+  width: auto;+  height: auto;+}+label input,+label textarea,+label select {+  display: block;+}+input[type="image"],+input[type="checkbox"],+input[type="radio"] {+  width: auto;+  height: auto;+  padding: 0;+  margin: 3px 0;+  *margin-top: 0;+  /* IE7 */++  line-height: normal;+  cursor: pointer;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+  border: 0 \9;+  /* IE9 and down */++}+input[type="image"] {+  border: 0;+}+input[type="file"] {+  width: auto;+  padding: initial;+  line-height: initial;+  border: initial;+  background-color: #ffffff;+  background-color: initial;+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+input[type="button"],+input[type="reset"],+input[type="submit"] {+  width: auto;+  height: auto;+}+select,+input[type="file"] {+  height: 28px;+  /* In IE7, the height of the select element cannot be changed by height, only font-size */++  *margin-top: 4px;+  /* For IE7, add top margin to align select with labels */++  line-height: 28px;+}+input[type="file"] {+  line-height: 18px \9;+}+select {+  width: 220px;+  background-color: #ffffff;+}+select[multiple],+select[size] {+  height: auto;+}+input[type="image"] {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+textarea {+  height: auto;+}+input[type="hidden"] {+  display: none;+}+.radio,+.checkbox {+  padding-left: 18px;+}+.radio input[type="radio"],+.checkbox input[type="checkbox"] {+  float: left;+  margin-left: -18px;+}+.controls > .radio:first-child,+.controls > .checkbox:first-child {+  padding-top: 5px;+}+.radio.inline,+.checkbox.inline {+  display: inline-block;+  padding-top: 5px;+  margin-bottom: 0;+  vertical-align: middle;+}+.radio.inline + .radio.inline,+.checkbox.inline + .checkbox.inline {+  margin-left: 10px;+}+input,+textarea {+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;+  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;+  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;+  -o-transition: border linear 0.2s, box-shadow linear 0.2s;+  transition: border linear 0.2s, box-shadow linear 0.2s;+}+input:focus,+textarea:focus {+  border-color: rgba(82, 168, 236, 0.8);+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  outline: 0;+  outline: thin dotted \9;+  /* IE6-9 */++}+input[type="file"]:focus,+input[type="radio"]:focus,+input[type="checkbox"]:focus,+select:focus {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.input-mini {+  width: 60px;+}+.input-small {+  width: 90px;+}+.input-medium {+  width: 150px;+}+.input-large {+  width: 210px;+}+.input-xlarge {+  width: 270px;+}+.input-xxlarge {+  width: 530px;+}+input[class*="span"],+select[class*="span"],+textarea[class*="span"],+.uneditable-input {+  float: none;+  margin-left: 0;+}+input,+textarea,+.uneditable-input {+  margin-left: 0;+}+input.span12, textarea.span12, .uneditable-input.span12 {+  width: 930px;+}+input.span11, textarea.span11, .uneditable-input.span11 {+  width: 850px;+}+input.span10, textarea.span10, .uneditable-input.span10 {+  width: 770px;+}+input.span9, textarea.span9, .uneditable-input.span9 {+  width: 690px;+}+input.span8, textarea.span8, .uneditable-input.span8 {+  width: 610px;+}+input.span7, textarea.span7, .uneditable-input.span7 {+  width: 530px;+}+input.span6, textarea.span6, .uneditable-input.span6 {+  width: 450px;+}+input.span5, textarea.span5, .uneditable-input.span5 {+  width: 370px;+}+input.span4, textarea.span4, .uneditable-input.span4 {+  width: 290px;+}+input.span3, textarea.span3, .uneditable-input.span3 {+  width: 210px;+}+input.span2, textarea.span2, .uneditable-input.span2 {+  width: 130px;+}+input.span1, textarea.span1, .uneditable-input.span1 {+  width: 50px;+}+input[disabled],+select[disabled],+textarea[disabled],+input[readonly],+select[readonly],+textarea[readonly] {+  background-color: #eeeeee;+  border-color: #ddd;+  cursor: not-allowed;+}+.control-group.warning > label,+.control-group.warning .help-block,+.control-group.warning .help-inline {+  color: #c09853;+}+.control-group.warning input,+.control-group.warning select,+.control-group.warning textarea {+  color: #c09853;+  border-color: #c09853;+}+.control-group.warning input:focus,+.control-group.warning select:focus,+.control-group.warning textarea:focus {+  border-color: #a47e3c;+  -webkit-box-shadow: 0 0 6px #dbc59e;+  -moz-box-shadow: 0 0 6px #dbc59e;+  box-shadow: 0 0 6px #dbc59e;+}+.control-group.warning .input-prepend .add-on,+.control-group.warning .input-append .add-on {+  color: #c09853;+  background-color: #fcf8e3;+  border-color: #c09853;+}+.control-group.error > label,+.control-group.error .help-block,+.control-group.error .help-inline {+  color: #b94a48;+}+.control-group.error input,+.control-group.error select,+.control-group.error textarea {+  color: #b94a48;+  border-color: #b94a48;+}+.control-group.error input:focus,+.control-group.error select:focus,+.control-group.error textarea:focus {+  border-color: #953b39;+  -webkit-box-shadow: 0 0 6px #d59392;+  -moz-box-shadow: 0 0 6px #d59392;+  box-shadow: 0 0 6px #d59392;+}+.control-group.error .input-prepend .add-on,+.control-group.error .input-append .add-on {+  color: #b94a48;+  background-color: #f2dede;+  border-color: #b94a48;+}+.control-group.success > label,+.control-group.success .help-block,+.control-group.success .help-inline {+  color: #468847;+}+.control-group.success input,+.control-group.success select,+.control-group.success textarea {+  color: #468847;+  border-color: #468847;+}+.control-group.success input:focus,+.control-group.success select:focus,+.control-group.success textarea:focus {+  border-color: #356635;+  -webkit-box-shadow: 0 0 6px #7aba7b;+  -moz-box-shadow: 0 0 6px #7aba7b;+  box-shadow: 0 0 6px #7aba7b;+}+.control-group.success .input-prepend .add-on,+.control-group.success .input-append .add-on {+  color: #468847;+  background-color: #dff0d8;+  border-color: #468847;+}+input:focus:required:invalid,+textarea:focus:required:invalid,+select:focus:required:invalid {+  color: #b94a48;+  border-color: #ee5f5b;+}+input:focus:required:invalid:focus,+textarea:focus:required:invalid:focus,+select:focus:required:invalid:focus {+  border-color: #e9322d;+  -webkit-box-shadow: 0 0 6px #f8b9b7;+  -moz-box-shadow: 0 0 6px #f8b9b7;+  box-shadow: 0 0 6px #f8b9b7;+}+.form-actions {+  padding: 17px 20px 18px;+  margin-top: 18px;+  margin-bottom: 18px;+  background-color: #eeeeee;+  border-top: 1px solid #ddd;+  *zoom: 1;+}+.form-actions:before,+.form-actions:after {+  display: table;+  content: "";+}+.form-actions:after {+  clear: both;+}+.uneditable-input {+  display: block;+  background-color: #ffffff;+  border-color: #eee;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  cursor: not-allowed;+}+:-moz-placeholder {+  color: #999999;+}+::-webkit-input-placeholder {+  color: #999999;+}+.help-block,+.help-inline {+  color: #555555;+}+.help-block {+  display: block;+  margin-bottom: 9px;+}+.help-inline {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  vertical-align: middle;+  padding-left: 5px;+}+.input-prepend,+.input-append {+  margin-bottom: 5px;+}+.input-prepend input,+.input-append input,+.input-prepend select,+.input-append select,+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  *margin-left: 0;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend input:focus,+.input-append input:focus,+.input-prepend select:focus,+.input-append select:focus,+.input-prepend .uneditable-input:focus,+.input-append .uneditable-input:focus {+  position: relative;+  z-index: 2;+}+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  border-left-color: #ccc;+}+.input-prepend .add-on,+.input-append .add-on {+  display: inline-block;+  width: auto;+  min-width: 16px;+  height: 18px;+  padding: 4px 5px;+  font-weight: normal;+  line-height: 18px;+  text-align: center;+  text-shadow: 0 1px 0 #ffffff;+  vertical-align: middle;+  background-color: #eeeeee;+  border: 1px solid #ccc;+}+.input-prepend .add-on,+.input-append .add-on,+.input-prepend .btn,+.input-append .btn {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend .active,+.input-append .active {+  background-color: #a9dba9;+  border-color: #46a546;+}+.input-prepend .add-on,+.input-prepend .btn {+  margin-right: -1px;+}+.input-append input,+.input-append select .uneditable-input {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-append .uneditable-input {+  border-left-color: #eee;+  border-right-color: #ccc;+}+.input-append .add-on,+.input-append .btn {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend.input-append input,+.input-prepend.input-append select,+.input-prepend.input-append .uneditable-input {+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.input-prepend.input-append .add-on:first-child,+.input-prepend.input-append .btn:first-child {+  margin-right: -1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend.input-append .add-on:last-child,+.input-prepend.input-append .btn:last-child {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.search-query {+  padding-left: 14px;+  padding-right: 14px;+  margin-bottom: 0;+  -webkit-border-radius: 14px;+  -moz-border-radius: 14px;+  border-radius: 14px;+}+.form-search input,+.form-inline input,+.form-horizontal input,+.form-search textarea,+.form-inline textarea,+.form-horizontal textarea,+.form-search select,+.form-inline select,+.form-horizontal select,+.form-search .help-inline,+.form-inline .help-inline,+.form-horizontal .help-inline,+.form-search .uneditable-input,+.form-inline .uneditable-input,+.form-horizontal .uneditable-input,+.form-search .input-prepend,+.form-inline .input-prepend,+.form-horizontal .input-prepend,+.form-search .input-append,+.form-inline .input-append,+.form-horizontal .input-append {+  display: inline-block;+  margin-bottom: 0;+}+.form-search .hide,+.form-inline .hide,+.form-horizontal .hide {+  display: none;+}+.form-search label,+.form-inline label {+  display: inline-block;+}+.form-search .input-append,+.form-inline .input-append,+.form-search .input-prepend,+.form-inline .input-prepend {+  margin-bottom: 0;+}+.form-search .radio,+.form-search .checkbox,+.form-inline .radio,+.form-inline .checkbox {+  padding-left: 0;+  margin-bottom: 0;+  vertical-align: middle;+}+.form-search .radio input[type="radio"],+.form-search .checkbox input[type="checkbox"],+.form-inline .radio input[type="radio"],+.form-inline .checkbox input[type="checkbox"] {+  float: left;+  margin-left: 0;+  margin-right: 3px;+}+.control-group {+  margin-bottom: 9px;+}+legend + .control-group {+  margin-top: 18px;+  -webkit-margin-top-collapse: separate;+}+.form-horizontal .control-group {+  margin-bottom: 18px;+  *zoom: 1;+}+.form-horizontal .control-group:before,+.form-horizontal .control-group:after {+  display: table;+  content: "";+}+.form-horizontal .control-group:after {+  clear: both;+}+.form-horizontal .control-label {+  float: left;+  width: 140px;+  padding-top: 5px;+  text-align: right;+}+.form-horizontal .controls {+  margin-left: 160px;+  /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */++  *display: inline-block;+  *margin-left: 0;+  *padding-left: 20px;+}+.form-horizontal .help-block {+  margin-top: 9px;+  margin-bottom: 0;+}+.form-horizontal .form-actions {+  padding-left: 160px;+}+table {+  max-width: 100%;+  border-collapse: collapse;+  border-spacing: 0;+  background-color: transparent;+}+.table {+  width: 100%;+  margin-bottom: 18px;+}+.table th,+.table td {+  padding: 8px;+  line-height: 18px;+  text-align: left;+  vertical-align: top;+  border-top: 1px solid #dddddd;+}+.table th {+  font-weight: bold;+}+.table thead th {+  vertical-align: bottom;+}+.table colgroup + thead tr:first-child th,+.table colgroup + thead tr:first-child td,+.table thead:first-child tr:first-child th,+.table thead:first-child tr:first-child td {+  border-top: 0;+}+.table tbody + tbody {+  border-top: 2px solid #dddddd;+}+.table-condensed th,+.table-condensed td {+  padding: 4px 5px;+}+.table-bordered {+  border: 1px solid #dddddd;+  border-left: 0;+  border-collapse: separate;+  *border-collapse: collapsed;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.table-bordered th,+.table-bordered td {+  border-left: 1px solid #dddddd;+}+.table-bordered thead:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child td {+  border-top: 0;+}+.table-bordered thead:first-child tr:first-child th:first-child,+.table-bordered tbody:first-child tr:first-child td:first-child {+  -webkit-border-radius: 4px 0 0 0;+  -moz-border-radius: 4px 0 0 0;+  border-radius: 4px 0 0 0;+}+.table-bordered thead:first-child tr:first-child th:last-child,+.table-bordered tbody:first-child tr:first-child td:last-child {+  -webkit-border-radius: 0 4px 0 0;+  -moz-border-radius: 0 4px 0 0;+  border-radius: 0 4px 0 0;+}+.table-bordered thead:last-child tr:last-child th:first-child,+.table-bordered tbody:last-child tr:last-child td:first-child {+  -webkit-border-radius: 0 0 0 4px;+  -moz-border-radius: 0 0 0 4px;+  border-radius: 0 0 0 4px;+}+.table-bordered thead:last-child tr:last-child th:last-child,+.table-bordered tbody:last-child tr:last-child td:last-child {+  -webkit-border-radius: 0 0 4px 0;+  -moz-border-radius: 0 0 4px 0;+  border-radius: 0 0 4px 0;+}+.table-striped tbody tr:nth-child(odd) td,+.table-striped tbody tr:nth-child(odd) th {+  background-color: #f9f9f9;+}+.table tbody tr:hover td,+.table tbody tr:hover th {+  background-color: #f5f5f5;+}+table .span1 {+  float: none;+  width: 44px;+  margin-left: 0;+}+table .span2 {+  float: none;+  width: 124px;+  margin-left: 0;+}+table .span3 {+  float: none;+  width: 204px;+  margin-left: 0;+}+table .span4 {+  float: none;+  width: 284px;+  margin-left: 0;+}+table .span5 {+  float: none;+  width: 364px;+  margin-left: 0;+}+table .span6 {+  float: none;+  width: 444px;+  margin-left: 0;+}+table .span7 {+  float: none;+  width: 524px;+  margin-left: 0;+}+table .span8 {+  float: none;+  width: 604px;+  margin-left: 0;+}+table .span9 {+  float: none;+  width: 684px;+  margin-left: 0;+}+table .span10 {+  float: none;+  width: 764px;+  margin-left: 0;+}+table .span11 {+  float: none;+  width: 844px;+  margin-left: 0;+}+table .span12 {+  float: none;+  width: 924px;+  margin-left: 0;+}+table .span13 {+  float: none;+  width: 1004px;+  margin-left: 0;+}+table .span14 {+  float: none;+  width: 1084px;+  margin-left: 0;+}+table .span15 {+  float: none;+  width: 1164px;+  margin-left: 0;+}+table .span16 {+  float: none;+  width: 1244px;+  margin-left: 0;+}+table .span17 {+  float: none;+  width: 1324px;+  margin-left: 0;+}+table .span18 {+  float: none;+  width: 1404px;+  margin-left: 0;+}+table .span19 {+  float: none;+  width: 1484px;+  margin-left: 0;+}+table .span20 {+  float: none;+  width: 1564px;+  margin-left: 0;+}+table .span21 {+  float: none;+  width: 1644px;+  margin-left: 0;+}+table .span22 {+  float: none;+  width: 1724px;+  margin-left: 0;+}+table .span23 {+  float: none;+  width: 1804px;+  margin-left: 0;+}+table .span24 {+  float: none;+  width: 1884px;+  margin-left: 0;+}+[class^="icon-"],+[class*=" icon-"] {+  display: inline-block;+  width: 14px;+  height: 14px;+  line-height: 14px;+  vertical-align: text-top;+  background-image: url("../img/glyphicons-halflings.png");+  background-position: 14px 14px;+  background-repeat: no-repeat;+  *margin-right: .3em;+}+[class^="icon-"]:last-child,+[class*=" icon-"]:last-child {+  *margin-left: 0;+}+.icon-white {+  background-image: url("../img/glyphicons-halflings-white.png");+}+.icon-glass {+  background-position: 0      0;+}+.icon-music {+  background-position: -24px 0;+}+.icon-search {+  background-position: -48px 0;+}+.icon-envelope {+  background-position: -72px 0;+}+.icon-heart {+  background-position: -96px 0;+}+.icon-star {+  background-position: -120px 0;+}+.icon-star-empty {+  background-position: -144px 0;+}+.icon-user {+  background-position: -168px 0;+}+.icon-film {+  background-position: -192px 0;+}+.icon-th-large {+  background-position: -216px 0;+}+.icon-th {+  background-position: -240px 0;+}+.icon-th-list {+  background-position: -264px 0;+}+.icon-ok {+  background-position: -288px 0;+}+.icon-remove {+  background-position: -312px 0;+}+.icon-zoom-in {+  background-position: -336px 0;+}+.icon-zoom-out {+  background-position: -360px 0;+}+.icon-off {+  background-position: -384px 0;+}+.icon-signal {+  background-position: -408px 0;+}+.icon-cog {+  background-position: -432px 0;+}+.icon-trash {+  background-position: -456px 0;+}+.icon-home {+  background-position: 0 -24px;+}+.icon-file {+  background-position: -24px -24px;+}+.icon-time {+  background-position: -48px -24px;+}+.icon-road {+  background-position: -72px -24px;+}+.icon-download-alt {+  background-position: -96px -24px;+}+.icon-download {+  background-position: -120px -24px;+}+.icon-upload {+  background-position: -144px -24px;+}+.icon-inbox {+  background-position: -168px -24px;+}+.icon-play-circle {+  background-position: -192px -24px;+}+.icon-repeat {+  background-position: -216px -24px;+}+.icon-refresh {+  background-position: -240px -24px;+}+.icon-list-alt {+  background-position: -264px -24px;+}+.icon-lock {+  background-position: -287px -24px;+}+.icon-flag {+  background-position: -312px -24px;+}+.icon-headphones {+  background-position: -336px -24px;+}+.icon-volume-off {+  background-position: -360px -24px;+}+.icon-volume-down {+  background-position: -384px -24px;+}+.icon-volume-up {+  background-position: -408px -24px;+}+.icon-qrcode {+  background-position: -432px -24px;+}+.icon-barcode {+  background-position: -456px -24px;+}+.icon-tag {+  background-position: 0 -48px;+}+.icon-tags {+  background-position: -25px -48px;+}+.icon-book {+  background-position: -48px -48px;+}+.icon-bookmark {+  background-position: -72px -48px;+}+.icon-print {+  background-position: -96px -48px;+}+.icon-camera {+  background-position: -120px -48px;+}+.icon-font {+  background-position: -144px -48px;+}+.icon-bold {+  background-position: -167px -48px;+}+.icon-italic {+  background-position: -192px -48px;+}+.icon-text-height {+  background-position: -216px -48px;+}+.icon-text-width {+  background-position: -240px -48px;+}+.icon-align-left {+  background-position: -264px -48px;+}+.icon-align-center {+  background-position: -288px -48px;+}+.icon-align-right {+  background-position: -312px -48px;+}+.icon-align-justify {+  background-position: -336px -48px;+}+.icon-list {+  background-position: -360px -48px;+}+.icon-indent-left {+  background-position: -384px -48px;+}+.icon-indent-right {+  background-position: -408px -48px;+}+.icon-facetime-video {+  background-position: -432px -48px;+}+.icon-picture {+  background-position: -456px -48px;+}+.icon-pencil {+  background-position: 0 -72px;+}+.icon-map-marker {+  background-position: -24px -72px;+}+.icon-adjust {+  background-position: -48px -72px;+}+.icon-tint {+  background-position: -72px -72px;+}+.icon-edit {+  background-position: -96px -72px;+}+.icon-share {+  background-position: -120px -72px;+}+.icon-check {+  background-position: -144px -72px;+}+.icon-move {+  background-position: -168px -72px;+}+.icon-step-backward {+  background-position: -192px -72px;+}+.icon-fast-backward {+  background-position: -216px -72px;+}+.icon-backward {+  background-position: -240px -72px;+}+.icon-play {+  background-position: -264px -72px;+}+.icon-pause {+  background-position: -288px -72px;+}+.icon-stop {+  background-position: -312px -72px;+}+.icon-forward {+  background-position: -336px -72px;+}+.icon-fast-forward {+  background-position: -360px -72px;+}+.icon-step-forward {+  background-position: -384px -72px;+}+.icon-eject {+  background-position: -408px -72px;+}+.icon-chevron-left {+  background-position: -432px -72px;+}+.icon-chevron-right {+  background-position: -456px -72px;+}+.icon-plus-sign {+  background-position: 0 -96px;+}+.icon-minus-sign {+  background-position: -24px -96px;+}+.icon-remove-sign {+  background-position: -48px -96px;+}+.icon-ok-sign {+  background-position: -72px -96px;+}+.icon-question-sign {+  background-position: -96px -96px;+}+.icon-info-sign {+  background-position: -120px -96px;+}+.icon-screenshot {+  background-position: -144px -96px;+}+.icon-remove-circle {+  background-position: -168px -96px;+}+.icon-ok-circle {+  background-position: -192px -96px;+}+.icon-ban-circle {+  background-position: -216px -96px;+}+.icon-arrow-left {+  background-position: -240px -96px;+}+.icon-arrow-right {+  background-position: -264px -96px;+}+.icon-arrow-up {+  background-position: -289px -96px;+}+.icon-arrow-down {+  background-position: -312px -96px;+}+.icon-share-alt {+  background-position: -336px -96px;+}+.icon-resize-full {+  background-position: -360px -96px;+}+.icon-resize-small {+  background-position: -384px -96px;+}+.icon-plus {+  background-position: -408px -96px;+}+.icon-minus {+  background-position: -433px -96px;+}+.icon-asterisk {+  background-position: -456px -96px;+}+.icon-exclamation-sign {+  background-position: 0 -120px;+}+.icon-gift {+  background-position: -24px -120px;+}+.icon-leaf {+  background-position: -48px -120px;+}+.icon-fire {+  background-position: -72px -120px;+}+.icon-eye-open {+  background-position: -96px -120px;+}+.icon-eye-close {+  background-position: -120px -120px;+}+.icon-warning-sign {+  background-position: -144px -120px;+}+.icon-plane {+  background-position: -168px -120px;+}+.icon-calendar {+  background-position: -192px -120px;+}+.icon-random {+  background-position: -216px -120px;+}+.icon-comment {+  background-position: -240px -120px;+}+.icon-magnet {+  background-position: -264px -120px;+}+.icon-chevron-up {+  background-position: -288px -120px;+}+.icon-chevron-down {+  background-position: -313px -119px;+}+.icon-retweet {+  background-position: -336px -120px;+}+.icon-shopping-cart {+  background-position: -360px -120px;+}+.icon-folder-close {+  background-position: -384px -120px;+}+.icon-folder-open {+  background-position: -408px -120px;+}+.icon-resize-vertical {+  background-position: -432px -119px;+}+.icon-resize-horizontal {+  background-position: -456px -118px;+}+.dropdown {+  position: relative;+}+.dropdown-toggle {+  *margin-bottom: -3px;+}+.dropdown-toggle:active,+.open .dropdown-toggle {+  outline: 0;+}+.caret {+  display: inline-block;+  width: 0;+  height: 0;+  vertical-align: top;+  border-left: 4px solid transparent;+  border-right: 4px solid transparent;+  border-top: 4px solid #000000;+  opacity: 0.3;+  filter: alpha(opacity=30);+  content: "";+}+.dropdown .caret {+  margin-top: 8px;+  margin-left: 2px;+}+.dropdown:hover .caret,+.open.dropdown .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.dropdown-menu {+  position: absolute;+  top: 100%;+  left: 0;+  z-index: 1000;+  float: left;+  display: none;+  min-width: 160px;+  padding: 4px 0;+  margin: 0;+  list-style: none;+  background-color: #ffffff;+  border-color: #ccc;+  border-color: rgba(0, 0, 0, 0.2);+  border-style: solid;+  border-width: 1px;+  -webkit-border-radius: 0 0 5px 5px;+  -moz-border-radius: 0 0 5px 5px;+  border-radius: 0 0 5px 5px;+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding;+  background-clip: padding-box;+  *border-right-width: 2px;+  *border-bottom-width: 2px;+}+.dropdown-menu.pull-right {+  right: 0;+  left: auto;+}+.dropdown-menu .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.dropdown-menu a {+  display: block;+  padding: 3px 15px;+  clear: both;+  font-weight: normal;+  line-height: 18px;+  color: #333333;+  white-space: nowrap;+}+.dropdown-menu li > a:hover,+.dropdown-menu .active > a,+.dropdown-menu .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #0088cc;+}+.dropdown.open {+  *z-index: 1000;+}+.dropdown.open .dropdown-toggle {+  color: #ffffff;+  background: #ccc;+  background: rgba(0, 0, 0, 0.3);+}+.dropdown.open .dropdown-menu {+  display: block;+}+.pull-right .dropdown-menu {+  left: auto;+  right: 0;+}+.dropup .caret,+.navbar-fixed-bottom .dropdown .caret {+  border-top: 0;+  border-bottom: 4px solid #000000;+  content: "\2191";+}+.dropup .dropdown-menu,+.navbar-fixed-bottom .dropdown .dropdown-menu {+  top: auto;+  bottom: 100%;+  margin-bottom: 1px;+}+.typeahead {+  margin-top: 2px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.well {+  min-height: 20px;+  padding: 19px;+  margin-bottom: 20px;+  background-color: #f5f5f5;+  border: 1px solid #eee;+  border: 1px solid rgba(0, 0, 0, 0.05);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+}+.well blockquote {+  border-color: #ddd;+  border-color: rgba(0, 0, 0, 0.15);+}+.well-large {+  padding: 24px;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.well-small {+  padding: 9px;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.fade {+  -webkit-transition: opacity 0.15s linear;+  -moz-transition: opacity 0.15s linear;+  -ms-transition: opacity 0.15s linear;+  -o-transition: opacity 0.15s linear;+  transition: opacity 0.15s linear;+  opacity: 0;+}+.fade.in {+  opacity: 1;+}+.collapse {+  -webkit-transition: height 0.35s ease;+  -moz-transition: height 0.35s ease;+  -ms-transition: height 0.35s ease;+  -o-transition: height 0.35s ease;+  transition: height 0.35s ease;+  position: relative;+  overflow: hidden;+  height: 0;+}+.collapse.in {+  height: auto;+}+.close {+  float: right;+  font-size: 20px;+  font-weight: bold;+  line-height: 18px;+  color: #000000;+  text-shadow: 0 1px 0 #ffffff;+  opacity: 0.2;+  filter: alpha(opacity=20);+}+.close:hover {+  color: #000000;+  text-decoration: none;+  opacity: 0.4;+  filter: alpha(opacity=40);+  cursor: pointer;+}+.btn {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  padding: 4px 10px 4px;+  margin-bottom: 0;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  text-align: center;+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);+  vertical-align: middle;+  background-color: #f5f5f5;+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: linear-gradient(top, #ffffff, #e6e6e6);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  border: 1px solid #cccccc;+  border-bottom-color: #b3b3b3;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  cursor: pointer;+  *margin-left: .3em;+}+.btn:hover,+.btn:active,+.btn.active,+.btn.disabled,+.btn[disabled] {+  background-color: #e6e6e6;+}+.btn:active,+.btn.active {+  background-color: #cccccc \9;+}+.btn:first-child {+  *margin-left: 0;+}+.btn:hover {+  color: #333333;+  text-decoration: none;+  background-color: #e6e6e6;+  background-position: 0 -15px;+  -webkit-transition: background-position 0.1s linear;+  -moz-transition: background-position 0.1s linear;+  -ms-transition: background-position 0.1s linear;+  -o-transition: background-position 0.1s linear;+  transition: background-position 0.1s linear;+}+.btn:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.btn.active,+.btn:active {+  background-image: none;+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  background-color: #e6e6e6;+  background-color: #d9d9d9 \9;+  outline: 0;+}+.btn.disabled,+.btn[disabled] {+  cursor: default;+  background-image: none;+  background-color: #e6e6e6;+  opacity: 0.65;+  filter: alpha(opacity=65);+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+.btn-large {+  padding: 9px 14px;+  font-size: 15px;+  line-height: normal;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-large [class^="icon-"] {+  margin-top: 1px;+}+.btn-small {+  padding: 5px 9px;+  font-size: 11px;+  line-height: 16px;+}+.btn-small [class^="icon-"] {+  margin-top: -1px;+}+.btn-mini {+  padding: 2px 6px;+  font-size: 11px;+  line-height: 14px;+}+.btn-primary,+.btn-primary:hover,+.btn-warning,+.btn-warning:hover,+.btn-danger,+.btn-danger:hover,+.btn-success,+.btn-success:hover,+.btn-info,+.btn-info:hover,+.btn-inverse,+.btn-inverse:hover {+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  color: #ffffff;+}+.btn-primary.active,+.btn-warning.active,+.btn-danger.active,+.btn-success.active,+.btn-info.active,+.btn-inverse.active {+  color: rgba(255, 255, 255, 0.75);+}+.btn-primary {+  background-color: #0074cc;+  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);+  background-image: -ms-linear-gradient(top, #0088cc, #0055cc);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));+  background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);+  background-image: -o-linear-gradient(top, #0088cc, #0055cc);+  background-image: linear-gradient(top, #0088cc, #0055cc);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);+  border-color: #0055cc #0055cc #003580;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-primary:hover,+.btn-primary:active,+.btn-primary.active,+.btn-primary.disabled,+.btn-primary[disabled] {+  background-color: #0055cc;+}+.btn-primary:active,+.btn-primary.active {+  background-color: #004099 \9;+}+.btn-warning {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+  border-color: #f89406 #f89406 #ad6704;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-warning:hover,+.btn-warning:active,+.btn-warning.active,+.btn-warning.disabled,+.btn-warning[disabled] {+  background-color: #f89406;+}+.btn-warning:active,+.btn-warning.active {+  background-color: #c67605 \9;+}+.btn-danger {+  background-color: #da4f49;+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: linear-gradient(top, #ee5f5b, #bd362f);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);+  border-color: #bd362f #bd362f #802420;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-danger:hover,+.btn-danger:active,+.btn-danger.active,+.btn-danger.disabled,+.btn-danger[disabled] {+  background-color: #bd362f;+}+.btn-danger:active,+.btn-danger.active {+  background-color: #942a25 \9;+}+.btn-success {+  background-color: #5bb75b;+  background-image: -moz-linear-gradient(top, #62c462, #51a351);+  background-image: -ms-linear-gradient(top, #62c462, #51a351);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);+  background-image: -o-linear-gradient(top, #62c462, #51a351);+  background-image: linear-gradient(top, #62c462, #51a351);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);+  border-color: #51a351 #51a351 #387038;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-success:hover,+.btn-success:active,+.btn-success.active,+.btn-success.disabled,+.btn-success[disabled] {+  background-color: #51a351;+}+.btn-success:active,+.btn-success.active {+  background-color: #408140 \9;+}+.btn-info {+  background-color: #49afcd;+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: linear-gradient(top, #5bc0de, #2f96b4);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);+  border-color: #2f96b4 #2f96b4 #1f6377;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-info:hover,+.btn-info:active,+.btn-info.active,+.btn-info.disabled,+.btn-info[disabled] {+  background-color: #2f96b4;+}+.btn-info:active,+.btn-info.active {+  background-color: #24748c \9;+}+.btn-inverse {+  background-color: #414141;+  background-image: -moz-linear-gradient(top, #555555, #222222);+  background-image: -ms-linear-gradient(top, #555555, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));+  background-image: -webkit-linear-gradient(top, #555555, #222222);+  background-image: -o-linear-gradient(top, #555555, #222222);+  background-image: linear-gradient(top, #555555, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-inverse:hover,+.btn-inverse:active,+.btn-inverse.active,+.btn-inverse.disabled,+.btn-inverse[disabled] {+  background-color: #222222;+}+.btn-inverse:active,+.btn-inverse.active {+  background-color: #080808 \9;+}+button.btn,+input[type="submit"].btn {+  *padding-top: 2px;+  *padding-bottom: 2px;+}+button.btn::-moz-focus-inner,+input[type="submit"].btn::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button.btn.btn-large,+input[type="submit"].btn.btn-large {+  *padding-top: 7px;+  *padding-bottom: 7px;+}+button.btn.btn-small,+input[type="submit"].btn.btn-small {+  *padding-top: 3px;+  *padding-bottom: 3px;+}+button.btn.btn-mini,+input[type="submit"].btn.btn-mini {+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group {+  position: relative;+  *zoom: 1;+  *margin-left: .3em;+}+.btn-group:before,+.btn-group:after {+  display: table;+  content: "";+}+.btn-group:after {+  clear: both;+}+.btn-group:first-child {+  *margin-left: 0;+}+.btn-group + .btn-group {+  margin-left: 5px;+}+.btn-toolbar {+  margin-top: 9px;+  margin-bottom: 9px;+}+.btn-toolbar .btn-group {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+}+.btn-group .btn {+  position: relative;+  float: left;+  margin-left: -1px;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.btn-group .btn:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 4px;+  -moz-border-radius-topleft: 4px;+  border-top-left-radius: 4px;+  -webkit-border-bottom-left-radius: 4px;+  -moz-border-radius-bottomleft: 4px;+  border-bottom-left-radius: 4px;+}+.btn-group .btn:last-child,+.btn-group .dropdown-toggle {+  -webkit-border-top-right-radius: 4px;+  -moz-border-radius-topright: 4px;+  border-top-right-radius: 4px;+  -webkit-border-bottom-right-radius: 4px;+  -moz-border-radius-bottomright: 4px;+  border-bottom-right-radius: 4px;+}+.btn-group .btn.large:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 6px;+  -moz-border-radius-topleft: 6px;+  border-top-left-radius: 6px;+  -webkit-border-bottom-left-radius: 6px;+  -moz-border-radius-bottomleft: 6px;+  border-bottom-left-radius: 6px;+}+.btn-group .btn.large:last-child,+.btn-group .large.dropdown-toggle {+  -webkit-border-top-right-radius: 6px;+  -moz-border-radius-topright: 6px;+  border-top-right-radius: 6px;+  -webkit-border-bottom-right-radius: 6px;+  -moz-border-radius-bottomright: 6px;+  border-bottom-right-radius: 6px;+}+.btn-group .btn:hover,+.btn-group .btn:focus,+.btn-group .btn:active,+.btn-group .btn.active {+  z-index: 2;+}+.btn-group .dropdown-toggle:active,+.btn-group.open .dropdown-toggle {+  outline: 0;+}+.btn-group .dropdown-toggle {+  padding-left: 8px;+  padding-right: 8px;+  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  *padding-top: 3px;+  *padding-bottom: 3px;+}+.btn-group .btn-mini.dropdown-toggle {+  padding-left: 5px;+  padding-right: 5px;+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group .btn-small.dropdown-toggle {+  *padding-top: 4px;+  *padding-bottom: 4px;+}+.btn-group .btn-large.dropdown-toggle {+  padding-left: 12px;+  padding-right: 12px;+}+.btn-group.open {+  *z-index: 1000;+}+.btn-group.open .dropdown-menu {+  display: block;+  margin-top: 1px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-group.open .dropdown-toggle {+  background-image: none;+  -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+}+.btn .caret {+  margin-top: 7px;+  margin-left: 0;+}+.btn:hover .caret,+.open.btn-group .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.btn-mini .caret {+  margin-top: 5px;+}+.btn-small .caret {+  margin-top: 6px;+}+.btn-large .caret {+  margin-top: 6px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.btn-primary .caret,+.btn-warning .caret,+.btn-danger .caret,+.btn-info .caret,+.btn-success .caret,+.btn-inverse .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 0.75;+  filter: alpha(opacity=75);+}+.alert {+  padding: 8px 35px 8px 14px;+  margin-bottom: 18px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  background-color: #fcf8e3;+  border: 1px solid #fbeed5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  color: #c09853;+}+.alert-heading {+  color: inherit;+}+.alert .close {+  position: relative;+  top: -2px;+  right: -21px;+  line-height: 18px;+}+.alert-success {+  background-color: #dff0d8;+  border-color: #d6e9c6;+  color: #468847;+}+.alert-danger,+.alert-error {+  background-color: #f2dede;+  border-color: #eed3d7;+  color: #b94a48;+}+.alert-info {+  background-color: #d9edf7;+  border-color: #bce8f1;+  color: #3a87ad;+}+.alert-block {+  padding-top: 14px;+  padding-bottom: 14px;+}+.alert-block > p,+.alert-block > ul {+  margin-bottom: 0;+}+.alert-block p + p {+  margin-top: 5px;+}+.nav {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+}+.nav > li > a {+  display: block;+}+.nav > li > a:hover {+  text-decoration: none;+  background-color: #eeeeee;+}+.nav .nav-header {+  display: block;+  padding: 3px 15px;+  font-size: 11px;+  font-weight: bold;+  line-height: 18px;+  color: #999999;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  text-transform: uppercase;+}+.nav li + .nav-header {+  margin-top: 9px;+}+.nav-list {+  padding-left: 15px;+  padding-right: 15px;+  margin-bottom: 0;+}+.nav-list > li > a,+.nav-list .nav-header {+  margin-left: -15px;+  margin-right: -15px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+}+.nav-list > li > a {+  padding: 3px 15px;+}+.nav-list > .active > a,+.nav-list > .active > a:hover {+  color: #ffffff;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);+  background-color: #0088cc;+}+.nav-list [class^="icon-"] {+  margin-right: 2px;+}+.nav-list .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.nav-tabs,+.nav-pills {+  *zoom: 1;+}+.nav-tabs:before,+.nav-pills:before,+.nav-tabs:after,+.nav-pills:after {+  display: table;+  content: "";+}+.nav-tabs:after,+.nav-pills:after {+  clear: both;+}+.nav-tabs > li,+.nav-pills > li {+  float: left;+}+.nav-tabs > li > a,+.nav-pills > li > a {+  padding-right: 12px;+  padding-left: 12px;+  margin-right: 2px;+  line-height: 14px;+}+.nav-tabs {+  border-bottom: 1px solid #ddd;+}+.nav-tabs > li {+  margin-bottom: -1px;+}+.nav-tabs > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  line-height: 18px;+  border: 1px solid transparent;+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #dddddd;+}+.nav-tabs > .active > a,+.nav-tabs > .active > a:hover {+  color: #555555;+  background-color: #ffffff;+  border: 1px solid #ddd;+  border-bottom-color: transparent;+  cursor: default;+}+.nav-pills > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  margin-top: 2px;+  margin-bottom: 2px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.nav-pills > .active > a,+.nav-pills > .active > a:hover {+  color: #ffffff;+  background-color: #0088cc;+}+.nav-stacked > li {+  float: none;+}+.nav-stacked > li > a {+  margin-right: 0;+}+.nav-tabs.nav-stacked {+  border-bottom: 0;+}+.nav-tabs.nav-stacked > li > a {+  border: 1px solid #ddd;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.nav-tabs.nav-stacked > li:first-child > a {+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs.nav-stacked > li:last-child > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.nav-tabs.nav-stacked > li > a:hover {+  border-color: #ddd;+  z-index: 2;+}+.nav-pills.nav-stacked > li > a {+  margin-bottom: 3px;+}+.nav-pills.nav-stacked > li:last-child > a {+  margin-bottom: 1px;+}+.nav-tabs .dropdown-menu,+.nav-pills .dropdown-menu {+  margin-top: 1px;+  border-width: 1px;+}+.nav-pills .dropdown-menu {+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.nav-tabs .dropdown-toggle .caret,+.nav-pills .dropdown-toggle .caret {+  border-top-color: #0088cc;+  border-bottom-color: #0088cc;+  margin-top: 6px;+}+.nav-tabs .dropdown-toggle:hover .caret,+.nav-pills .dropdown-toggle:hover .caret {+  border-top-color: #005580;+  border-bottom-color: #005580;+}+.nav-tabs .active .dropdown-toggle .caret,+.nav-pills .active .dropdown-toggle .caret {+  border-top-color: #333333;+  border-bottom-color: #333333;+}+.nav > .dropdown.active > a:hover {+  color: #000000;+  cursor: pointer;+}+.nav-tabs .open .dropdown-toggle,+.nav-pills .open .dropdown-toggle,+.nav > .open.active > a:hover {+  color: #ffffff;+  background-color: #999999;+  border-color: #999999;+}+.nav .open .caret,+.nav .open.active .caret,+.nav .open a:hover .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 1;+  filter: alpha(opacity=100);+}+.tabs-stacked .open > a:hover {+  border-color: #999999;+}+.tabbable {+  *zoom: 1;+}+.tabbable:before,+.tabbable:after {+  display: table;+  content: "";+}+.tabbable:after {+  clear: both;+}+.tab-content {+  display: table;+  width: 100%;+}+.tabs-below .nav-tabs,+.tabs-right .nav-tabs,+.tabs-left .nav-tabs {+  border-bottom: 0;+}+.tab-content > .tab-pane,+.pill-content > .pill-pane {+  display: none;+}+.tab-content > .active,+.pill-content > .active {+  display: block;+}+.tabs-below .nav-tabs {+  border-top: 1px solid #ddd;+}+.tabs-below .nav-tabs > li {+  margin-top: -1px;+  margin-bottom: 0;+}+.tabs-below .nav-tabs > li > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.tabs-below .nav-tabs > li > a:hover {+  border-bottom-color: transparent;+  border-top-color: #ddd;+}+.tabs-below .nav-tabs .active > a,+.tabs-below .nav-tabs .active > a:hover {+  border-color: transparent #ddd #ddd #ddd;+}+.tabs-left .nav-tabs > li,+.tabs-right .nav-tabs > li {+  float: none;+}+.tabs-left .nav-tabs > li > a,+.tabs-right .nav-tabs > li > a {+  min-width: 74px;+  margin-right: 0;+  margin-bottom: 3px;+}+.tabs-left .nav-tabs {+  float: left;+  margin-right: 19px;+  border-right: 1px solid #ddd;+}+.tabs-left .nav-tabs > li > a {+  margin-right: -1px;+  -webkit-border-radius: 4px 0 0 4px;+  -moz-border-radius: 4px 0 0 4px;+  border-radius: 4px 0 0 4px;+}+.tabs-left .nav-tabs > li > a:hover {+  border-color: #eeeeee #dddddd #eeeeee #eeeeee;+}+.tabs-left .nav-tabs .active > a,+.tabs-left .nav-tabs .active > a:hover {+  border-color: #ddd transparent #ddd #ddd;+  *border-right-color: #ffffff;+}+.tabs-right .nav-tabs {+  float: right;+  margin-left: 19px;+  border-left: 1px solid #ddd;+}+.tabs-right .nav-tabs > li > a {+  margin-left: -1px;+  -webkit-border-radius: 0 4px 4px 0;+  -moz-border-radius: 0 4px 4px 0;+  border-radius: 0 4px 4px 0;+}+.tabs-right .nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #eeeeee #dddddd;+}+.tabs-right .nav-tabs .active > a,+.tabs-right .nav-tabs .active > a:hover {+  border-color: #ddd #ddd #ddd transparent;+  *border-left-color: #ffffff;+}+.navbar {+  *position: relative;+  *z-index: 2;+  overflow: visible;+  margin-bottom: 18px;+}+.navbar-inner {+  padding-left: 20px;+  padding-right: 20px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+}+.navbar .container {+  width: auto;+}+.btn-navbar {+  display: none;+  float: right;+  padding: 7px 10px;+  margin-left: 5px;+  margin-right: 5px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+}+.btn-navbar:hover,+.btn-navbar:active,+.btn-navbar.active,+.btn-navbar.disabled,+.btn-navbar[disabled] {+  background-color: #222222;+}+.btn-navbar:active,+.btn-navbar.active {+  background-color: #080808 \9;+}+.btn-navbar .icon-bar {+  display: block;+  width: 18px;+  height: 2px;+  background-color: #f5f5f5;+  -webkit-border-radius: 1px;+  -moz-border-radius: 1px;+  border-radius: 1px;+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+}+.btn-navbar .icon-bar + .icon-bar {+  margin-top: 3px;+}+.nav-collapse.collapse {+  height: auto;+}+.navbar {+  color: #999999;+}+.navbar .brand:hover {+  text-decoration: none;+}+.navbar .brand {+  float: left;+  display: block;+  padding: 8px 20px 12px;+  margin-left: -20px;+  font-size: 20px;+  font-weight: 200;+  line-height: 1;+  color: #ffffff;+}+.navbar .navbar-text {+  margin-bottom: 0;+  line-height: 40px;+}+.navbar .btn,+.navbar .btn-group {+  margin-top: 5px;+}+.navbar .btn-group .btn {+  margin-top: 0;+}+.navbar-form {+  margin-bottom: 0;+  *zoom: 1;+}+.navbar-form:before,+.navbar-form:after {+  display: table;+  content: "";+}+.navbar-form:after {+  clear: both;+}+.navbar-form input,+.navbar-form select,+.navbar-form .radio,+.navbar-form .checkbox {+  margin-top: 5px;+}+.navbar-form input,+.navbar-form select {+  display: inline-block;+  margin-bottom: 0;+}+.navbar-form input[type="image"],+.navbar-form input[type="checkbox"],+.navbar-form input[type="radio"] {+  margin-top: 3px;+}+.navbar-form .input-append,+.navbar-form .input-prepend {+  margin-top: 6px;+  white-space: nowrap;+}+.navbar-form .input-append input,+.navbar-form .input-prepend input {+  margin-top: 0;+}+.navbar-search {+  position: relative;+  float: left;+  margin-top: 6px;+  margin-bottom: 0;+}+.navbar-search .search-query {+  padding: 4px 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  font-weight: normal;+  line-height: 1;+  color: #ffffff;+  background-color: #626262;+  border: 1px solid #151515;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -webkit-transition: none;+  -moz-transition: none;+  -ms-transition: none;+  -o-transition: none;+  transition: none;+}+.navbar-search .search-query:-moz-placeholder {+  color: #cccccc;+}+.navbar-search .search-query::-webkit-input-placeholder {+  color: #cccccc;+}+.navbar-search .search-query:focus,+.navbar-search .search-query.focused {+  padding: 5px 10px;+  color: #333333;+  text-shadow: 0 1px 0 #ffffff;+  background-color: #ffffff;+  border: 0;+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  outline: 0;+}+.navbar-fixed-top,+.navbar-fixed-bottom {+  position: fixed;+  right: 0;+  left: 0;+  z-index: 1030;+  margin-bottom: 0;+}+.navbar-fixed-top .navbar-inner,+.navbar-fixed-bottom .navbar-inner {+  padding-left: 0;+  padding-right: 0;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.navbar-fixed-top {+  top: 0;+}+.navbar-fixed-bottom {+  bottom: 0;+}+.navbar .nav {+  position: relative;+  left: 0;+  display: block;+  float: left;+  margin: 0 10px 0 0;+}+.navbar .nav.pull-right {+  float: right;+}+.navbar .nav > li {+  display: block;+  float: left;+}+.navbar .nav > li > a {+  float: none;+  padding: 10px 10px 11px;+  line-height: 19px;+  color: #999999;+  text-decoration: none;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+}+.navbar .nav > li > a:hover {+  background-color: transparent;+  color: #ffffff;+  text-decoration: none;+}+.navbar .nav .active > a,+.navbar .nav .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #222222;+}+.navbar .divider-vertical {+  height: 40px;+  width: 1px;+  margin: 0 9px;+  overflow: hidden;+  background-color: #222222;+  border-right: 1px solid #333333;+}+.navbar .nav.pull-right {+  margin-left: 10px;+  margin-right: 0;+}+.navbar .dropdown-menu {+  margin-top: 1px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.navbar .dropdown-menu:before {+  content: '';+  display: inline-block;+  border-left: 7px solid transparent;+  border-right: 7px solid transparent;+  border-bottom: 7px solid #ccc;+  border-bottom-color: rgba(0, 0, 0, 0.2);+  position: absolute;+  top: -7px;+  left: 9px;+}+.navbar .dropdown-menu:after {+  content: '';+  display: inline-block;+  border-left: 6px solid transparent;+  border-right: 6px solid transparent;+  border-bottom: 6px solid #ffffff;+  position: absolute;+  top: -6px;+  left: 10px;+}+.navbar-fixed-bottom .dropdown-menu:before {+  border-top: 7px solid #ccc;+  border-top-color: rgba(0, 0, 0, 0.2);+  border-bottom: 0;+  bottom: -7px;+  top: auto;+}+.navbar-fixed-bottom .dropdown-menu:after {+  border-top: 6px solid #ffffff;+  border-bottom: 0;+  bottom: -6px;+  top: auto;+}+.navbar .nav .dropdown-toggle .caret,+.navbar .nav .open.dropdown .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+}+.navbar .nav .active .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.navbar .nav .open > .dropdown-toggle,+.navbar .nav .active > .dropdown-toggle,+.navbar .nav .open.active > .dropdown-toggle {+  background-color: transparent;+}+.navbar .nav .active > .dropdown-toggle:hover {+  color: #ffffff;+}+.navbar .nav.pull-right .dropdown-menu,+.navbar .nav .dropdown-menu.pull-right {+  left: auto;+  right: 0;+}+.navbar .nav.pull-right .dropdown-menu:before,+.navbar .nav .dropdown-menu.pull-right:before {+  left: auto;+  right: 12px;+}+.navbar .nav.pull-right .dropdown-menu:after,+.navbar .nav .dropdown-menu.pull-right:after {+  left: auto;+  right: 13px;+}+.breadcrumb {+  padding: 7px 14px;+  margin: 0 0 18px;+  list-style: none;+  background-color: #fbfbfb;+  background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));+  background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: linear-gradient(top, #ffffff, #f5f5f5);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);+  border: 1px solid #ddd;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+}+.breadcrumb li {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  text-shadow: 0 1px 0 #ffffff;+}+.breadcrumb .divider {+  padding: 0 5px;+  color: #999999;+}+.breadcrumb .active a {+  color: #333333;+}+.pagination {+  height: 36px;+  margin: 18px 0;+}+.pagination ul {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  margin-left: 0;+  margin-bottom: 0;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+}+.pagination li {+  display: inline;+}+.pagination a {+  float: left;+  padding: 0 14px;+  line-height: 34px;+  text-decoration: none;+  border: 1px solid #ddd;+  border-left-width: 0;+}+.pagination a:hover,+.pagination .active a {+  background-color: #f5f5f5;+}+.pagination .active a {+  color: #999999;+  cursor: default;+}+.pagination .disabled span,+.pagination .disabled a,+.pagination .disabled a:hover {+  color: #999999;+  background-color: transparent;+  cursor: default;+}+.pagination li:first-child a {+  border-left-width: 1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.pagination li:last-child a {+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.pagination-centered {+  text-align: center;+}+.pagination-right {+  text-align: right;+}+.pager {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+  text-align: center;+  *zoom: 1;+}+.pager:before,+.pager:after {+  display: table;+  content: "";+}+.pager:after {+  clear: both;+}+.pager li {+  display: inline;+}+.pager a {+  display: inline-block;+  padding: 5px 14px;+  background-color: #fff;+  border: 1px solid #ddd;+  -webkit-border-radius: 15px;+  -moz-border-radius: 15px;+  border-radius: 15px;+}+.pager a:hover {+  text-decoration: none;+  background-color: #f5f5f5;+}+.pager .next a {+  float: right;+}+.pager .previous a {+  float: left;+}+.pager .disabled a,+.pager .disabled a:hover {+  color: #999999;+  background-color: #fff;+  cursor: default;+}+.modal-open .dropdown-menu {+  z-index: 2050;+}+.modal-open .dropdown.open {+  *z-index: 2050;+}+.modal-open .popover {+  z-index: 2060;+}+.modal-open .tooltip {+  z-index: 2070;+}+.modal-backdrop {+  position: fixed;+  top: 0;+  right: 0;+  bottom: 0;+  left: 0;+  z-index: 1040;+  background-color: #000000;+}+.modal-backdrop.fade {+  opacity: 0;+}+.modal-backdrop,+.modal-backdrop.fade.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.modal {+  position: fixed;+  top: 50%;+  left: 50%;+  z-index: 1050;+  overflow: auto;+  width: 560px;+  margin: -250px 0 0 -280px;+  background-color: #ffffff;+  border: 1px solid #999;+  border: 1px solid rgba(0, 0, 0, 0.3);+  *border: 1px solid #999;+  /* IE6-7 */++  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.modal.fade {+  -webkit-transition: opacity .3s linear, top .3s ease-out;+  -moz-transition: opacity .3s linear, top .3s ease-out;+  -ms-transition: opacity .3s linear, top .3s ease-out;+  -o-transition: opacity .3s linear, top .3s ease-out;+  transition: opacity .3s linear, top .3s ease-out;+  top: -25%;+}+.modal.fade.in {+  top: 50%;+}+.modal-header {+  padding: 9px 15px;+  border-bottom: 1px solid #eee;+}+.modal-header .close {+  margin-top: 2px;+}+.modal-body {+  overflow-y: auto;+  max-height: 400px;+  padding: 15px;+}+.modal-form {+  margin-bottom: 0;+}+.modal-footer {+  padding: 14px 15px 15px;+  margin-bottom: 0;+  text-align: right;+  background-color: #f5f5f5;+  border-top: 1px solid #ddd;+  -webkit-border-radius: 0 0 6px 6px;+  -moz-border-radius: 0 0 6px 6px;+  border-radius: 0 0 6px 6px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+  *zoom: 1;+}+.modal-footer:before,+.modal-footer:after {+  display: table;+  content: "";+}+.modal-footer:after {+  clear: both;+}+.modal-footer .btn + .btn {+  margin-left: 5px;+  margin-bottom: 0;+}+.modal-footer .btn-group .btn + .btn {+  margin-left: -1px;+}+.tooltip {+  position: absolute;+  z-index: 1020;+  display: block;+  visibility: visible;+  padding: 5px;+  font-size: 11px;+  opacity: 0;+  filter: alpha(opacity=0);+}+.tooltip.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.tooltip.top {+  margin-top: -2px;+}+.tooltip.right {+  margin-left: 2px;+}+.tooltip.bottom {+  margin-top: 2px;+}+.tooltip.left {+  margin-left: -2px;+}+.tooltip.top .tooltip-arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.tooltip.left .tooltip-arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.tooltip.bottom .tooltip-arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.tooltip.right .tooltip-arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.tooltip-inner {+  max-width: 200px;+  padding: 3px 8px;+  color: #ffffff;+  text-align: center;+  text-decoration: none;+  background-color: #000000;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.tooltip-arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover {+  position: absolute;+  top: 0;+  left: 0;+  z-index: 1010;+  display: none;+  padding: 5px;+}+.popover.top {+  margin-top: -5px;+}+.popover.right {+  margin-left: 5px;+}+.popover.bottom {+  margin-top: 5px;+}+.popover.left {+  margin-left: -5px;+}+.popover.top .arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.popover.right .arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.popover.bottom .arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.popover.left .arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.popover .arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover-inner {+  padding: 3px;+  width: 280px;+  overflow: hidden;+  background: #000000;+  background: rgba(0, 0, 0, 0.8);+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+}+.popover-title {+  padding: 9px 15px;+  line-height: 1;+  background-color: #f5f5f5;+  border-bottom: 1px solid #eee;+  -webkit-border-radius: 3px 3px 0 0;+  -moz-border-radius: 3px 3px 0 0;+  border-radius: 3px 3px 0 0;+}+.popover-content {+  padding: 14px;+  background-color: #ffffff;+  -webkit-border-radius: 0 0 3px 3px;+  -moz-border-radius: 0 0 3px 3px;+  border-radius: 0 0 3px 3px;+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.popover-content p,+.popover-content ul,+.popover-content ol {+  margin-bottom: 0;+}+.thumbnails {+  margin-left: -20px;+  list-style: none;+  *zoom: 1;+}+.thumbnails:before,+.thumbnails:after {+  display: table;+  content: "";+}+.thumbnails:after {+  clear: both;+}+.thumbnails > li {+  float: left;+  margin: 0 0 18px 20px;+}+.thumbnail {+  display: block;+  padding: 4px;+  line-height: 1;+  border: 1px solid #ddd;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+}+a.thumbnail:hover {+  border-color: #0088cc;+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+}+.thumbnail > img {+  display: block;+  max-width: 100%;+  margin-left: auto;+  margin-right: auto;+}+.thumbnail .caption {+  padding: 9px;+}+.label {+  padding: 1px 4px 2px;+  font-size: 10.998px;+  font-weight: bold;+  line-height: 13px;+  color: #ffffff;+  vertical-align: middle;+  white-space: nowrap;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #999999;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.label:hover {+  color: #ffffff;+  text-decoration: none;+}+.label-important {+  background-color: #b94a48;+}+.label-important:hover {+  background-color: #953b39;+}+.label-warning {+  background-color: #f89406;+}+.label-warning:hover {+  background-color: #c67605;+}+.label-success {+  background-color: #468847;+}+.label-success:hover {+  background-color: #356635;+}+.label-info {+  background-color: #3a87ad;+}+.label-info:hover {+  background-color: #2d6987;+}+.label-inverse {+  background-color: #333333;+}+.label-inverse:hover {+  background-color: #1a1a1a;+}+.badge {+  padding: 1px 9px 2px;+  font-size: 12.025px;+  font-weight: bold;+  white-space: nowrap;+  color: #ffffff;+  background-color: #999999;+  -webkit-border-radius: 9px;+  -moz-border-radius: 9px;+  border-radius: 9px;+}+.badge:hover {+  color: #ffffff;+  text-decoration: none;+  cursor: pointer;+}+.badge-error {+  background-color: #b94a48;+}+.badge-error:hover {+  background-color: #953b39;+}+.badge-warning {+  background-color: #f89406;+}+.badge-warning:hover {+  background-color: #c67605;+}+.badge-success {+  background-color: #468847;+}+.badge-success:hover {+  background-color: #356635;+}+.badge-info {+  background-color: #3a87ad;+}+.badge-info:hover {+  background-color: #2d6987;+}+.badge-inverse {+  background-color: #333333;+}+.badge-inverse:hover {+  background-color: #1a1a1a;+}+@-webkit-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-moz-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-ms-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+.progress {+  overflow: hidden;+  height: 18px;+  margin-bottom: 18px;+  background-color: #f7f7f7;+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.progress .bar {+  width: 0%;+  height: 18px;+  color: #ffffff;+  font-size: 12px;+  text-align: center;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #0e90d2;+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);+  background-image: -ms-linear-gradient(top, #149bdf, #0480be);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);+  background-image: -o-linear-gradient(top, #149bdf, #0480be);+  background-image: linear-gradient(top, #149bdf, #0480be);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+  -webkit-transition: width 0.6s ease;+  -moz-transition: width 0.6s ease;+  -ms-transition: width 0.6s ease;+  -o-transition: width 0.6s ease;+  transition: width 0.6s ease;+}+.progress-striped .bar {+  background-color: #149bdf;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  -webkit-background-size: 40px 40px;+  -moz-background-size: 40px 40px;+  -o-background-size: 40px 40px;+  background-size: 40px 40px;+}+.progress.active .bar {+  -webkit-animation: progress-bar-stripes 2s linear infinite;+  -moz-animation: progress-bar-stripes 2s linear infinite;+  animation: progress-bar-stripes 2s linear infinite;+}+.progress-danger .bar {+  background-color: #dd514c;+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: linear-gradient(top, #ee5f5b, #c43c35);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);+}+.progress-danger.progress-striped .bar {+  background-color: #ee5f5b;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-success .bar {+  background-color: #5eb95e;+  background-image: -moz-linear-gradient(top, #62c462, #57a957);+  background-image: -ms-linear-gradient(top, #62c462, #57a957);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);+  background-image: -o-linear-gradient(top, #62c462, #57a957);+  background-image: linear-gradient(top, #62c462, #57a957);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);+}+.progress-success.progress-striped .bar {+  background-color: #62c462;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-info .bar {+  background-color: #4bb1cf;+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);+  background-image: linear-gradient(top, #5bc0de, #339bb9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);+}+.progress-info.progress-striped .bar {+  background-color: #5bc0de;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-warning .bar {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+}+.progress-warning.progress-striped .bar {+  background-color: #fbb450;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.accordion {+  margin-bottom: 18px;+}+.accordion-group {+  margin-bottom: 2px;+  border: 1px solid #e5e5e5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.accordion-heading {+  border-bottom: 0;+}+.accordion-heading .accordion-toggle {+  display: block;+  padding: 8px 15px;+}+.accordion-inner {+  padding: 9px 15px;+  border-top: 1px solid #e5e5e5;+}+.carousel {+  position: relative;+  margin-bottom: 18px;+  line-height: 1;+}+.carousel-inner {+  overflow: hidden;+  width: 100%;+  position: relative;+}+.carousel .item {+  display: none;+  position: relative;+  -webkit-transition: 0.6s ease-in-out left;+  -moz-transition: 0.6s ease-in-out left;+  -ms-transition: 0.6s ease-in-out left;+  -o-transition: 0.6s ease-in-out left;+  transition: 0.6s ease-in-out left;+}+.carousel .item > img {+  display: block;+  line-height: 1;+}+.carousel .active,+.carousel .next,+.carousel .prev {+  display: block;+}+.carousel .active {+  left: 0;+}+.carousel .next,+.carousel .prev {+  position: absolute;+  top: 0;+  width: 100%;+}+.carousel .next {+  left: 100%;+}+.carousel .prev {+  left: -100%;+}+.carousel .next.left,+.carousel .prev.right {+  left: 0;+}+.carousel .active.left {+  left: -100%;+}+.carousel .active.right {+  left: 100%;+}+.carousel-control {+  position: absolute;+  top: 40%;+  left: 15px;+  width: 40px;+  height: 40px;+  margin-top: -20px;+  font-size: 60px;+  font-weight: 100;+  line-height: 30px;+  color: #ffffff;+  text-align: center;+  background: #222222;+  border: 3px solid #ffffff;+  -webkit-border-radius: 23px;+  -moz-border-radius: 23px;+  border-radius: 23px;+  opacity: 0.5;+  filter: alpha(opacity=50);+}+.carousel-control.right {+  left: auto;+  right: 15px;+}+.carousel-control:hover {+  color: #ffffff;+  text-decoration: none;+  opacity: 0.9;+  filter: alpha(opacity=90);+}+.carousel-caption {+  position: absolute;+  left: 0;+  right: 0;+  bottom: 0;+  padding: 10px 15px 5px;+  background: #333333;+  background: rgba(0, 0, 0, 0.75);+}+.carousel-caption h4,+.carousel-caption p {+  color: #ffffff;+}+.hero-unit {+  padding: 60px;+  margin-bottom: 30px;+  background-color: #eeeeee;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.hero-unit h1 {+  margin-bottom: 0;+  font-size: 60px;+  line-height: 1;+  color: inherit;+  letter-spacing: -1px;+}+.hero-unit p {+  font-size: 18px;+  font-weight: 200;+  line-height: 27px;+  color: inherit;+}+.pull-right {+  float: right;+}+.pull-left {+  float: left;+}+.hide {+  display: none;+}+.show {+  display: block;+}+.invisible {+  visibility: hidden;+}++{-# START_FILE static/css/normalize.css #-}+/*! normalize.css 2011-08-12T17:28 UTC · http://github.com/necolas/normalize.css */++/* =============================================================================+   HTML5 display definitions+   ========================================================================== */++/*+ * Corrects block display not defined in IE6/7/8/9 & FF3+ */++article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+    display: block;+}++/*+ * Corrects inline-block display not defined in IE6/7/8/9 & FF3+ */++audio,+canvas,+video {+    display: inline-block;+    *display: inline;+    *zoom: 1;+}++/*+ * Prevents modern browsers from displaying 'audio' without controls+ */++audio:not([controls]) {+    display: none;+}++/*+ * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4+ * Known issue: no IE6 support+ */++[hidden] {+    display: none;+}+++/* =============================================================================+   Base+   ========================================================================== */++/*+ * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units+ *    http://clagnut.com/blog/348/#c790+ * 2. Keeps page centred in all browsers regardless of content height+ * 3. Prevents iOS text size adjust after orientation change, without disabling user zoom+ *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/+ */++html {+    font-size: 100%; /* 1 */+    overflow-y: scroll; /* 2 */+    -webkit-text-size-adjust: 100%; /* 3 */+    -ms-text-size-adjust: 100%; /* 3 */+}++/*+ * Addresses margins handled incorrectly in IE6/7+ */++body {+    margin: 0;+}++/* + * Addresses font-family inconsistency between 'textarea' and other form elements.+ */++body,+button,+input,+select,+textarea {+    font-family: sans-serif;+}+++/* =============================================================================+   Links+   ========================================================================== */++a {+    color: #00e;+}++a:visited {+    color: #551a8b;+}++/*+ * Addresses outline displayed oddly in Chrome+ */++a:focus {+    outline: thin dotted;+}++/*+ * Improves readability when focused and also mouse hovered in all browsers+ * people.opera.com/patrickl/experiments/keyboard/test+ */++a:hover,+a:active {+    outline: 0;+}+++/* =============================================================================+   Typography+   ========================================================================== */++/*+ * Addresses styling not present in IE7/8/9, S5, Chrome+ */++abbr[title] {+    border-bottom: 1px dotted;+}++/*+ * Addresses style set to 'bolder' in FF3/4, S4/5, Chrome+*/++b, +strong { +    font-weight: bold; +}++blockquote {+    margin: 1em 40px;+}++/*+ * Addresses styling not present in S5, Chrome+ */++dfn {+    font-style: italic;+}++/*+ * Addresses styling not present in IE6/7/8/9+ */++mark {+    background: #ff0;+    color: #000;+}++/*+ * Corrects font family set oddly in IE6, S4/5, Chrome+ * en.wikipedia.org/wiki/User:Davidgothberg/Test59+ */++pre,+code,+kbd,+samp {+    font-family: monospace, serif;+    _font-family: 'courier new', monospace;+    font-size: 1em;+}++/*+ * Improves readability of pre-formatted text in all browsers+ */++pre {+    white-space: pre;+    white-space: pre-wrap;+    word-wrap: break-word;+}++/*+ * 1. Addresses CSS quotes not supported in IE6/7+ * 2. Addresses quote property not supported in S4+ */++/* 1 */++q {+    quotes: none;+}++/* 2 */++q:before,+q:after {+    content: '';+    content: none;+}++small {+    font-size: 75%;+}++/*+ * Prevents sub and sup affecting line-height in all browsers+ * gist.github.com/413930+ */++sub,+sup {+    font-size: 75%;+    line-height: 0;+    position: relative;+    vertical-align: baseline;+}++sup {+    top: -0.5em;+}++sub {+    bottom: -0.25em;+}+++/* =============================================================================+   Lists+   ========================================================================== */++ul,+ol {+    margin: 1em 0;+    padding: 0 0 0 40px;+}++dd {+    margin: 0 0 0 40px;+}++nav ul,+nav ol {+    list-style: none;+    list-style-image: none;+}+++/* =============================================================================+   Embedded content+   ========================================================================== */++/*+ * 1. Removes border when inside 'a' element in IE6/7/8/9+ * 2. Improves image quality when scaled in IE7+ *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/+ */++img {+    border: 0; /* 1 */+    -ms-interpolation-mode: bicubic; /* 2 */+}++/*+ * Corrects overflow displayed oddly in IE9 + */++svg:not(:root) {+    overflow: hidden;+}+++/* =============================================================================+   Figures+   ========================================================================== */++/*+ * Addresses margin not present in IE6/7/8/9, S5, O11+ */++figure {+    margin: 0;+}+++/* =============================================================================+   Forms+   ========================================================================== */++/*+ * Corrects margin displayed oddly in IE6/7+ */++form {+    margin: 0;+}++/*+ * Define consistent margin and padding+ */++fieldset {+    margin: 0 2px;+    padding: 0.35em 0.625em 0.75em;+}++/*+ * 1. Corrects color not being inherited in IE6/7/8/9+ * 2. Corrects alignment displayed oddly in IE6/7+ */++legend {+    border: 0; /* 1 */+    *margin-left: -7px; /* 2 */+}++/*+ * 1. Corrects font size not being inherited in all browsers+ * 2. Addresses margins set differently in IE6/7, F3/4, S5, Chrome+ * 3. Improves appearance and consistency in all browsers+ */++button,+input,+select,+textarea {+    font-size: 100%; /* 1 */+    margin: 0; /* 2 */+    vertical-align: baseline; /* 3 */+    *vertical-align: middle; /* 3 */+}++/*+ * 1. Addresses FF3/4 setting line-height using !important in the UA stylesheet+ * 2. Corrects inner spacing displayed oddly in IE6/7+ */++button,+input {+    line-height: normal; /* 1 */+    *overflow: visible;  /* 2 */+}++/*+ * Corrects overlap and whitespace issue for buttons and inputs in IE6/7+ * Known issue: reintroduces inner spacing+ */++table button,+table input {+    *overflow: auto;+}++/*+ * 1. Improves usability and consistency of cursor style between image-type 'input' and others+ * 2. Corrects inability to style clickable 'input' types in iOS+ */++button,+html input[type="button"], +input[type="reset"], +input[type="submit"] {+    cursor: pointer; /* 1 */+    -webkit-appearance: button; /* 2 */+}++/*+ * 1. Addresses box sizing set to content-box in IE8/9+ * 2. Addresses excess padding in IE8/9+ */++input[type="checkbox"],+input[type="radio"] {+    box-sizing: border-box; /* 1 */+    padding: 0; /* 2 */+}++/*+ * 1. Addresses appearance set to searchfield in S5, Chrome+ * 2. Addresses box sizing set to border-box in S5, Chrome (include -moz to future-proof)+ */++input[type="search"] {+    -webkit-appearance: textfield; /* 1 */+    -moz-box-sizing: content-box;+    -webkit-box-sizing: content-box; /* 2 */+    box-sizing: content-box;+}++/*+ * Corrects inner padding displayed oddly in S5, Chrome on OSX+ */++input[type="search"]::-webkit-search-decoration {+    -webkit-appearance: none;+}++/*+ * Corrects inner padding and border displayed oddly in FF3/4+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/+ */++button::-moz-focus-inner,+input::-moz-focus-inner {+    border: 0;+    padding: 0;+}++/*+ * 1. Removes default vertical scrollbar in IE6/7/8/9+ * 2. Improves readability and alignment in all browsers+ */++textarea {+    overflow: auto; /* 1 */+    vertical-align: top; /* 2 */+}+++/* =============================================================================+   Tables+   ========================================================================== */++/* + * Remove most spacing between table cells+ */++table {+    border-collapse: collapse;+    border-spacing: 0;+}++{-# START_FILE BASE64 static/img/glyphicons-halflings-white.png #-}+iVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAMAAACY07N7AAAC2VBMVEX///8AAAAAAAD5+fn///8A+AAD////9/f1tbW0AAAD///////////8AAAAAAAD////w8PD+/v729vYAAAD8/PwAAAAAAAD/////+///a2toAAADCwsL09PT////////09PT39/f///8AAAAAAACzs7P9/f0AAADi4uKwsLD////////7++/vn5+f+/v7///8AAADt7e0AAADPz88AAAD9/f329vbt7e37+/vn5+f6+vrh4eGSkpL+/v7+/v7B+wcGYmJh0dHTh4eHQ0NAAAADz8/O7u7uhoaGAgID9/f3U1NRiYmL////V1dX4+Pjc3Nz6+vr7+/vp+6en7+/v9/f39/f3R0dHy8vL8/Pz4+Pjr6+v8/Py2trbGxsbl5eXu7u719fX9/f1lZWVnZ2fw8PC2+trbg4OD39/f6+vrp6enl5eX6+vr4+PjLy8v///+EhITx8fF4eHj39/fd3d35+fnIyMjS0tLs7Oz6++vre3t7i4uLm5ubz8/Obm5uoqKilpaXc3Nzu7u7////x8fHJycnw8PD////////e3t7Gxsa8vLzr+6+vW1tbQ0NDi4uL5+fn09PTi4uLs7Oz19fW0tLT////9/f37+/v8/Pz6+vrm5uYAAADk5OT8/Pz3+9/ewsLCZmZn9/f3s7Oz8/PzBwcHp6en////a2trw8PDw8PD19fXx8fH+/v74+Pj+/v6Ojo7i4uL7++/v5+fnc3Nz////y8vL6+vqfn5/t7e339/f29vbo6Ojz8/P6+vr19fX19fWmpqbLy8v6+vr4+PjT+09Pr6+v6+vrr6+uqqqrz8/Pt7e2ioqLPz8/a2trW1taioqLr6+vi4uL5+flVVVXNzc3////W1tbj+4+Ph4eHq6ur8/Pz////29vb7+/vz8/P09PTMzMz////////5+fn19fX////y8vL9/f0AAADZ2dn8+/Pz7+/v8/Pzp6em/v7/7+/vq6urp6en+/v7////4ck/mAAAA8nRSTlMAGgDUzwIP8SMQ759fCgUv+qfDGFeIYA78fbxNTt98/hsV/BhdD4Q1rRI+vwo3ATxJTD18IoKWasozTETbQ4D40IX5hC6dAMR7R+XydvEsRuotKLkZCATYahkzOxQlFqmbZwJiUhFWy1wyJY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++{-# START_FILE BASE64 static/img/glyphicons-halflings.png #-}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++{-# START_FILE templates/default-layout-wrapper.hamlet #-}+$newline never+\<!doctype html>+\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->+\<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->+\<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->+\<!--[if gt IE 8]><!-->+<html class="no-js" lang="en"> <!--<![endif]-->+    <head>+        <meta charset="UTF-8">++        <title>#{pageTitle pc}+        <meta name="description" content="">+        <meta name="author" content="">++        <meta name="viewport" content="width=device-width,initial-scale=1">++        ^{pageHead pc}++        \<!--[if lt IE 9]>+        \<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>+        \<![endif]-->++        <script>+          document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');+    <body>+        <div class="container">+            <header>+            <div id="main" role="main">+              ^{pageBody pc}+            <footer>+                #{extraCopyright $ appExtra $ settings master}++        $maybe analytics <- extraAnalytics $ appExtra $ settings master+            <script>+              if(!window.location.href.match(/localhost/)){+                window._gaq = [['_setAccount','#{analytics}'],['_trackPageview'],['_trackPageLoadTime']];+                (function() {+                \  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;+                \  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';+                \  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);+                })();+              }+        \<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.  chromium.org/developers/how-tos/chrome-frame-getting-started -->+        \<!--[if lt IE 7 ]>+            <script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">+            <script>+                window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})+        \<![endif]-->++{-# START_FILE templates/default-layout.hamlet #-}+$maybe msg <- mmsg+    <div #message>#{msg}+^{widget}++{-# START_FILE templates/homepage.hamlet #-}+<h1>_{MsgHello}++<ol>+  <li>Now that you have a working project you should use the #+    \<a href="http://www.yesodweb.com/book/">Yesod book</a> to learn more. #+    You can also use this scaffolded site to explore some basic concepts.++  <li> This page was generated by the #{handlerName} handler in #+    \<em>Handler/Home.hs</em>.++  <li> The #{handlerName} handler is set to generate your site's home screen in Routes file #+    <em>config/routes++  <li> The HTML you are seeing now is actually composed by a number of <em>widgets</em>, #+    most of them are brought together by the <em>defaultLayout</em> function which #+    is defined in the <em>Foundation.hs</em> module, and used by <em>#{handlerName}</em>. #+    All the files for templates and wigdets are in <em>templates</em>.++  <li>+    A Widget's Html, Css and Javascript are separated in three files with the #+    \<em>.hamlet</em>, <em>.lucius</em> and <em>.julius</em> extensions. ++  <li ##{aDomId}>If you had javascript enabled then you wouldn't be seeing this.+    +  <li #form>+    This is an example trivial Form. Read the #+    \<a href="http://www.yesodweb.com/book/forms">Forms chapter</a> #+    on the yesod book to learn more about them.+    $maybe (info,con) <- submission+      <div .message>+        Your file's type was <em>#{fileContentType info}</em>. You say it has: <em>#{con}</em>+    <form method=post action=@{HomeR}#form enctype=#{formEnctype}>+      ^{formWidget}+      <input type="submit" value="Send it!">++  <li> And last but not least, Testing. In <em>tests/main.hs</em> you will find a #+    test suite that performs tests on this page. #+    You can run your tests by doing: <pre>yesod test</pre>++  <li>+    Let's test out some Fay! Enter a number in this box and we'll calculate the Fibonacci value.+    <input #fibindex placeholder="Fibonacci Index">+    <span #fibresult>++{-# START_FILE templates/homepage.julius #-}+document.getElementById(#{toJSON aDomId}).innerHTML = "This text was added by the Javascript part of the homepage widget.";++{-# START_FILE templates/homepage.lucius #-}+h1 {+    text-align: center+}+h2##{aDomId} {+    color: #990+}++{-# START_FILE tests/HomeTest.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module HomeTest+    ( homeSpecs+    ) where++import TestImport+import qualified Data.List as L++homeSpecs :: Specs+homeSpecs =+    ydescribe "These are some example tests" $ do++        yit "loads the index and checks it looks right" $ do+            get HomeR+            statusIs 200+            htmlAllContain "h1" "Hello"++            request $ do+                setMethod "POST"+                setUrl HomeR+                addNonce+                fileByLabel "Choose a file" "tests/main.hs" "text/plain" -- talk about self-reference+                byLabel "What's on the file?" "Some Content"++            statusIs 200+            printBody+            htmlCount ".message" 1+            htmlAllContain ".message" "Some Content"+            htmlAllContain ".message" "text/plain"++        -- This is a simple example of using a database access in a test.  The+        -- test will succeed for a fresh scaffolded site with an empty database,+        -- but will fail on an existing database with a non-empty user table.+        yit "leaves the user table empty" $ do+            get HomeR+            statusIs 200+            users <- runDB $ selectList ([] :: [Filter User]) []+            assertEqual "user table empty" 0 $ L.length users++{-# START_FILE tests/TestImport.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module TestImport+    ( module Yesod.Test+    , module Model+    , module Foundation+    , module Database.Persist+    , runDB+    , Specs+    ) where++import Yesod.Test+import Database.Persist hiding (get)+import Database.Persist.Sql (runSqlPool, SqlPersist, Connection)+import Control.Monad.Trans.Resource (ResourceT, runResourceT)+import Control.Monad.Logger (NoLoggingT, runNoLoggingT)+import Control.Monad.IO.Class (liftIO)++import Foundation+import Model++type Specs = YesodSpec App++runDB :: SqlPersist (NoLoggingT (ResourceT IO)) a -> YesodExample App a+runDB query = do+    pool <- fmap connPool getTestYesod+    liftIO $ runResourceT $ runNoLoggingT $ runSqlPool query pool++{-# START_FILE tests/main.hs #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Main where++import Import+import Yesod.Default.Config+import Yesod.Test+import Test.Hspec (hspec)+import Application (makeFoundation)++import HomeTest++main :: IO ()+main = do+    conf <- Yesod.Default.Config.loadConfig $ (configSettings Testing)+                { csParseExtra = parseExtra+                }+    foundation <- makeFoundation conf+    hspec $ do+        yesodSpec foundation $ do+            homeSpecs+
+ hsfiles/postgres.hsfiles view
@@ -0,0 +1,5858 @@+{-# START_FILE .ghci #-}+:set -i.:config:dist/build/autogen+:set -XCPP -XTemplateHaskell -XQuasiQuotes -XTypeFamilies -XFlexibleContexts -XGADTs -XOverloadedStrings -XMultiParamTypeClasses -XGeneralizedNewtypeDeriving -XEmptyDataDecls++{-# START_FILE .gitignore #-}+dist*+static/tmp/+config/client_session_key.aes+*.hi+*.o+*.sqlite3+.hsenv*+yesod-devel/++{-# START_FILE Application.hs #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Application+    ( makeApplication+    , getApplicationDev+    , makeFoundation+    ) where++import Import+import Settings+import Yesod.Auth+import Yesod.Default.Config+import Yesod.Default.Main+import Yesod.Default.Handlers+import Network.Wai.Middleware.RequestLogger+import qualified Database.Persist+import Database.Persist.Sql (runMigration)+import Network.HTTP.Conduit (newManager, def)+import Control.Monad.Logger (runLoggingT)+import System.IO (stdout)+import System.Log.FastLogger (mkLogger)++-- Import all relevant handler modules here.+-- Don't forget to add new modules to your cabal file!+import Handler.Home++-- This line actually creates our YesodDispatch instance. It is the second half+-- of the call to mkYesodData which occurs in Foundation.hs. Please see the+-- comments there for more details.+mkYesodDispatch "App" resourcesApp++-- This function allocates resources (such as a database connection pool),+-- performs initialization and creates a WAI application. This is also the+-- place to put your migrate statements to have automatic database+-- migrations handled by Yesod.+makeApplication :: AppConfig DefaultEnv Extra -> IO Application+makeApplication conf = do+    foundation <- makeFoundation conf++    -- Initialize the logging middleware+    logWare <- mkRequestLogger def+        { outputFormat =+            if development+                then Detailed True+                else Apache FromSocket+        , destination = Logger $ appLogger foundation+        }++    -- Create the WAI application and apply middlewares+    app <- toWaiAppPlain foundation+    return $ logWare app++-- | Loads up any necessary settings, creates your foundation datatype, and+-- performs some initialization.+makeFoundation :: AppConfig DefaultEnv Extra -> IO App+makeFoundation conf = do+    manager <- newManager def+    s <- staticSite+    dbconf <- withYamlEnvironment "config/postgresql.yml" (appEnv conf)+              Database.Persist.loadConfig >>=+              Database.Persist.applyEnv+    p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)+    logger <- mkLogger True stdout+    let foundation = App conf s p manager dbconf logger++    -- Perform database migration using our application's logging settings.+    runLoggingT+        (Database.Persist.runPool dbconf (runMigration migrateAll) p)+        (messageLoggerSource foundation logger)++    return foundation++-- for yesod devel+getApplicationDev :: IO (Int, Application)+getApplicationDev =+    defaultDevelApp loader makeApplication+  where+    loader = Yesod.Default.Config.loadConfig (configSettings Development)+        { csParseExtra = parseExtra+        }++{-# START_FILE Foundation.hs #-}+module Foundation where++import Prelude+import Yesod+import Yesod.Static+import Yesod.Auth+import Yesod.Auth.BrowserId+import Yesod.Auth.GoogleEmail+import Yesod.Default.Config+import Yesod.Default.Util (addStaticContentExternal)+import Network.HTTP.Conduit (Manager)+import qualified Settings+import Settings.Development (development)+import qualified Database.Persist+import Database.Persist.Sql (SqlPersistT)+import Settings.StaticFiles+import Settings (widgetFile, Extra (..))+import Model+import Text.Jasmine (minifym)+import Text.Hamlet (hamletFile)+import System.Log.FastLogger (Logger)++-- | The site argument for your application. This can be a good place to+-- keep settings and values requiring initialization before your application+-- starts running, such as database connections. Every handler will have+-- access to the data present here.+data App = App+    { settings :: AppConfig DefaultEnv Extra+    , getStatic :: Static -- ^ Settings for static file serving.+    , connPool :: Database.Persist.PersistConfigPool Settings.PersistConf -- ^ Database connection pool.+    , httpManager :: Manager+    , persistConfig :: Settings.PersistConf+    , appLogger :: Logger+    }++-- Set up i18n messages. See the message folder.+mkMessage "App" "messages" "en"++-- This is where we define all of the routes in our application. For a full+-- explanation of the syntax, please see:+-- http://www.yesodweb.com/book/handler+--+-- This function does three things:+--+-- * Creates the route datatype AppRoute. Every valid URL in your+--   application can be represented as a value of this type.+-- * Creates the associated type:+--       type instance Route App = AppRoute+-- * Creates the value resourcesApp which contains information on the+--   resources declared below. This is used in Handler.hs by the call to+--   mkYesodDispatch+--+-- What this function does *not* do is create a YesodSite instance for+-- App. Creating that instance requires all of the handler functions+-- for our application to be in scope. However, the handler functions+-- usually require access to the AppRoute datatype. Therefore, we+-- split these actions into two functions and place them in separate files.+mkYesodData "App" $(parseRoutesFile "config/routes")++type Form x = Html -> MForm (HandlerT App IO) (FormResult x, Widget)++-- Please see the documentation for the Yesod typeclass. There are a number+-- of settings which can be configured by overriding methods here.+instance Yesod App where+    approot = ApprootMaster $ appRoot . settings++    -- Store session data on the client in encrypted cookies,+    -- default session idle timeout is 120 minutes+    makeSessionBackend _ = fmap Just $ defaultClientSessionBackend+        (120 * 60) -- 120 minutes+        "config/client_session_key.aes"++    defaultLayout widget = do+        master <- getYesod+        mmsg <- getMessage++        -- We break up the default layout into two components:+        -- default-layout is the contents of the body tag, and+        -- default-layout-wrapper is the entire page. Since the final+        -- value passed to hamletToRepHtml cannot be a widget, this allows+        -- you to use normal widget features in default-layout.++        pc <- widgetToPageContent $ do+            $(combineStylesheets 'StaticR+                [ css_normalize_css+                , css_bootstrap_css+                ])+            $(widgetFile "default-layout")+        hamletToRepHtml $(hamletFile "templates/default-layout-wrapper.hamlet")++    -- This is done to provide an optimization for serving static files from+    -- a separate domain. Please see the staticRoot setting in Settings.hs+    urlRenderOverride y (StaticR s) =+        Just $ uncurry (joinPath y (Settings.staticRoot $ settings y)) $ renderRoute s+    urlRenderOverride _ _ = Nothing++    -- The page to be redirected to when authentication is required.+    authRoute _ = Just $ AuthR LoginR++    -- This function creates static content files in the static folder+    -- and names them based on a hash of their content. This allows+    -- expiration dates to be set far in the future without worry of+    -- users receiving stale content.+    addStaticContent =+        addStaticContentExternal minifym genFileName Settings.staticDir (StaticR . flip StaticRoute [])+      where+        -- Generate a unique filename based on the content itself+        genFileName lbs+            | development = "autogen-" ++ base64md5 lbs+            | otherwise   = base64md5 lbs++    -- Place Javascript at bottom of the body tag so the rest of the page loads first+    jsLoader _ = BottomOfBody++    -- What messages should be logged. The following includes all messages when+    -- in development, and warnings and errors in production.+    shouldLog _ _source level =+        development || level == LevelWarn || level == LevelError++    makeLogger = return . appLogger++-- How to run database actions.+instance YesodPersist App where+    type YesodPersistBackend App = SqlPersistT+    runDB = defaultRunDB persistConfig connPool+instance YesodPersistRunner App where+    getDBRunner = defaultGetDBRunner connPool++instance YesodAuth App where+    type AuthId App = UserId++    -- Where to send a user after successful login+    loginDest _ = HomeR+    -- Where to send a user after logout+    logoutDest _ = HomeR++    getAuthId creds = runDB $ do+        x <- getBy $ UniqueUser $ credsIdent creds+        case x of+            Just (Entity uid _) -> return $ Just uid+            Nothing -> do+                fmap Just $ insert $ User (credsIdent creds) Nothing++    -- You can add other plugins like BrowserID, email or OAuth here+    authPlugins _ = [authBrowserId def, authGoogleEmail]++    authHttpManager = httpManager++-- This instance is required to use forms. You can modify renderMessage to+-- achieve customized and internationalized form validation messages.+instance RenderMessage App FormMessage where+    renderMessage _ _ = defaultFormMessage++-- | Get the 'Extra' value, used to hold data from the settings.yml file.+getExtra :: Handler Extra+getExtra = fmap (appExtra . settings) getYesod++-- Note: previous versions of the scaffolding included a deliver function to+-- send emails. Unfortunately, there are too many different options for us to+-- give a reasonable default. Instead, the information is available on the+-- wiki:+--+-- https://github.com/yesodweb/yesod/wiki/Sending-email++{-# START_FILE Handler/Home.hs #-}+{-# LANGUAGE TupleSections, OverloadedStrings #-}+module Handler.Home where++import Import++-- This is a handler function for the GET request method on the HomeR+-- resource pattern. All of your resource patterns are defined in+-- config/routes+--+-- The majority of the code you will write in Yesod lives in these handler+-- functions. You can spread them across multiple files if you are so+-- inclined, or create a single monolithic file.+getHomeR :: Handler RepHtml+getHomeR = do+    (formWidget, formEnctype) <- generateFormPost sampleForm+    let submission = Nothing :: Maybe (FileInfo, Text)+        handlerName = "getHomeR" :: Text+    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++postHomeR :: Handler RepHtml+postHomeR = do+    ((result, formWidget), formEnctype) <- runFormPost sampleForm+    let handlerName = "postHomeR" :: Text+        submission = case result of+            FormSuccess res -> Just res+            _ -> Nothing++    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++sampleForm :: Form (FileInfo, Text)+sampleForm = renderDivs $ (,)+    <$> fileAFormReq "Choose a file"+    <*> areq textField "What's on the file?" Nothing++{-# START_FILE Import.hs #-}+module Import+    ( module Import+    ) where++import           Prelude              as Import hiding (head, init, last,+                                                 readFile, tail, writeFile)+import           Yesod                as Import hiding (Route (..))++import           Control.Applicative  as Import (pure, (<$>), (<*>))+import           Data.Text            as Import (Text)++import           Foundation           as Import+import           Model                as Import+import           Settings             as Import+import           Settings.Development as Import+import           Settings.StaticFiles as Import++#if __GLASGOW_HASKELL__ >= 704+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat),+                                                 (<>))+#else+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat))++infixr 5 <>+(<>) :: Monoid m => m -> m -> m+(<>) = mappend+#endif++{-# START_FILE Model.hs #-}+module Model where++import Prelude+import Yesod+import Data.Text (Text)+import Database.Persist.Quasi+import Data.Typeable (Typeable)++-- You can define all of your database entities in the entities file.+-- You can find more information on persistent and how to declare entities+-- at:+-- http://www.yesodweb.com/book/persistent/+share [mkPersist sqlOnlySettings, mkMigrate "migrateAll"]+    $(persistFileWith lowerCaseSettings "config/models")++{-# START_FILE PROJECTNAME.cabal #-}+name:              PROJECTNAME+version:           0.0.0+cabal-version:     >= 1.8+build-type:        Simple++Flag dev+    Description:   Turn on development settings, like auto-reload templates.+    Default:       False++Flag library-only+    Description:   Build for use with "yesod devel"+    Default:       False++library+    exposed-modules: Application+                     Foundation+                     Import+                     Model+                     Settings+                     Settings.StaticFiles+                     Settings.Development+                     Handler.Home++    if flag(dev) || flag(library-only)+        cpp-options:   -DDEVELOPMENT+        ghc-options:   -Wall -O0+    else+        ghc-options:   -Wall -O2++    extensions: TemplateHaskell+                QuasiQuotes+                OverloadedStrings+                NoImplicitPrelude+                CPP+                MultiParamTypeClasses+                TypeFamilies+                GADTs+                GeneralizedNewtypeDeriving+                FlexibleContexts+                EmptyDataDecls+                NoMonomorphismRestriction+                DeriveDataTypeable++    build-depends: base                          >= 4          && < 5+                 -- , yesod-platform                >= 1.1        && < 1.2+                 , yesod                         >= 1.2        && < 1.3+                 , yesod-core                    >= 1.2        && < 1.3+                 , yesod-auth                    >= 1.2        && < 1.3+                 , yesod-static                  >= 1.2        && < 1.3+                 , yesod-form                    >= 1.3        && < 1.4+                 , bytestring                    >= 0.9        && < 0.11+                 , text                          >= 0.11       && < 0.12+                 , persistent                    >= 1.2        && < 1.3+                 , persistent-postgresql         >= 1.2        && < 1.3+                 , persistent-template           >= 1.2        && < 1.3+                 , template-haskell+                 , hamlet                        >= 1.1        && < 1.2+                 , shakespeare-css               >= 1.0        && < 1.1+                 , shakespeare-js                >= 1.0.2      && < 1.2+                 , shakespeare-text              >= 1.0        && < 1.1+                 , hjsmin                        >= 0.1        && < 0.2+                 , monad-control                 >= 0.3        && < 0.4+                 , wai-extra                     >= 1.3        && < 1.4+                 , yaml                          >= 0.8        && < 0.9+                 , http-conduit                  >= 1.9        && < 1.10+                 , directory                     >= 1.1        && < 1.3+                 , warp                          >= 1.3        && < 1.4+                 , data-default+                 , aeson+                 , conduit                       >= 1.0+                 , monad-logger                  >= 0.3+                 , fast-logger                   >= 0.3++executable         PROJECTNAME+    if flag(library-only)+        Buildable: False++    main-is:           main.hs+    hs-source-dirs:    app+    build-depends:     base+                     , PROJECTNAME+                     , yesod++    ghc-options:       -threaded -O2++test-suite test+    type:              exitcode-stdio-1.0+    main-is:           main.hs+    hs-source-dirs:    tests+    ghc-options:       -Wall++    build-depends: base+                 , PROJECTNAME+                 , yesod-test >= 1.2 && < 1.3+                 , yesod-core+                 , yesod+                 , persistent+                 , persistent-postgresql+                 , resourcet+                 , monad-logger+                 , transformers+                 , hspec++{-# START_FILE Settings.hs #-}+-- | Settings are centralized, as much as possible, into this file. This+-- includes database connection settings, static file locations, etc.+-- In addition, you can configure a number of different aspects of Yesod+-- by overriding methods in the Yesod typeclass. That instance is+-- declared in the Foundation.hs file.+module Settings where++import Prelude+import Text.Shakespeare.Text (st)+import Language.Haskell.TH.Syntax+import Database.Persist.Postgresql (PostgresConf)+import Yesod.Default.Config+import Yesod.Default.Util+import Data.Text (Text)+import Data.Yaml+import Control.Applicative+import Settings.Development+import Data.Default (def)+import Text.Hamlet++-- | Which Persistent backend this site is using.+type PersistConf = PostgresConf++-- Static setting below. Changing these requires a recompile++-- | The location of static files on your system. This is a file system+-- path. The default value works properly with your scaffolded site.+staticDir :: FilePath+staticDir = "static"++-- | The base URL for your static files. As you can see by the default+-- value, this can simply be "static" appended to your application root.+-- A powerful optimization can be serving static files from a separate+-- domain name. This allows you to use a web server optimized for static+-- files, more easily set expires and cache values, and avoid possibly+-- costly transference of cookies on static files. For more information,+-- please see:+--   http://code.google.com/speed/page-speed/docs/request.html#ServeFromCookielessDomain+--+-- If you change the resource pattern for StaticR in Foundation.hs, you will+-- have to make a corresponding change here.+--+-- To see how this value is used, see urlRenderOverride in Foundation.hs+staticRoot :: AppConfig DefaultEnv x -> Text+staticRoot conf = [st|#{appRoot conf}/static|]++-- | Settings for 'widgetFile', such as which template languages to support and+-- default Hamlet settings.+--+-- For more information on modifying behavior, see:+--+-- https://github.com/yesodweb/yesod/wiki/Overriding-widgetFile+widgetFileSettings :: WidgetFileSettings+widgetFileSettings = def+    { wfsHamletSettings = defaultHamletSettings+        { hamletNewlines = AlwaysNewlines+        }+    }++-- The rest of this file contains settings which rarely need changing by a+-- user.++widgetFile :: String -> Q Exp+widgetFile = (if development then widgetFileReload+                             else widgetFileNoReload)+              widgetFileSettings++data Extra = Extra+    { extraCopyright :: Text+    , extraAnalytics :: Maybe Text -- ^ Google Analytics+    } deriving Show++parseExtra :: DefaultEnv -> Object -> Parser Extra+parseExtra _ o = Extra+    <$> o .:  "copyright"+    <*> o .:? "analytics"++{-# START_FILE Settings/Development.hs #-}+module Settings.Development where++import Prelude++development :: Bool+development =+#if DEVELOPMENT+  True+#else+  False+#endif++production :: Bool+production = not development++{-# START_FILE Settings/StaticFiles.hs #-}+module Settings.StaticFiles where++import Prelude (IO)+import Yesod.Static+import qualified Yesod.Static as Static+import Settings (staticDir)+import Settings.Development+import Language.Haskell.TH (Q, Exp, Name)+import Data.Default (def)++-- | use this to create your static file serving site+staticSite :: IO Static.Static+staticSite = if development then Static.staticDevel staticDir+                            else Static.static      staticDir++-- | This generates easy references to files in the static directory at compile time,+--   giving you compile-time verification that referenced files exist.+--   Warning: any files added to your static directory during run-time can't be+--   accessed this way. You'll have to use their FilePath or URL to access them.+$(staticFiles Settings.staticDir)++combineSettings :: CombineSettings+combineSettings = def++-- The following two functions can be used to combine multiple CSS or JS files+-- at compile time to decrease the number of http requests.+-- Sample usage (inside a Widget):+--+-- > $(combineStylesheets 'StaticR [style1_css, style2_css])++combineStylesheets :: Name -> [Route Static] -> Q Exp+combineStylesheets = combineStylesheets' development combineSettings++combineScripts :: Name -> [Route Static] -> Q Exp+combineScripts = combineScripts' development combineSettings++{-# START_FILE app/main.hs #-}+import Prelude              (IO)+import Yesod.Default.Config (fromArgs)+import Yesod.Default.Main   (defaultMain)+import Settings             (parseExtra)+import Application          (makeApplication)++main :: IO ()+main = defaultMain (fromArgs parseExtra) makeApplication++{-# START_FILE BASE64 config/favicon.ico #-}+AAABAAIAEBAAAAEAIABoBAAAJgAAABAQAgABAAEAsAAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAApl4sAAAAAAAAAAAAAAAAAUEpGyNpSjaIg2NO2ZBvWfqTc13/+jW1X9YNhTMZrSTNkUTMfDwAAAAAAAAAAAAAAAAAAAAAAAAAANR0NClk6JmF+W0Txj2xV/41qVP+M+aVP/jGlS/4xpUv+MaVL/i2dQ/3pVPdNeOiEzQRsBAgAAAAAAAAAAMBgHAlIxG1h5UDb/h15D9n5W+PPZ4TzXmeVE303hQNtV4UDbVeFA11XdQNdV5UTfbbUUpx1UsEBgAAAAAAAAFADIVAwlULxY/f1M1+4dOffryecFHMXTIVhAAAAAURAAAOEwAADxQAAA8TAAAPEAAADigEABFNJAkZTSQJCRAHAQdKIARt+OxUAC1kvE3qQYEDfzJt5wXtOL9pQJAa0UScKjVInCo1SJwqNUSYJjVElCY1RJQmLUSUHslEjBGcu+EgAuVSQC/00eAGAYAAAPXzAQuLGAXs6ygV/PYTESwkMXAFRGHgI3Rx4BPEceATxHHQE7RBsBMkwf+AqlUIQHgQhoAaVUhAP9TIQDhSBwAI0EXAD5xQSHbzJp4wJRiQtBRIgKuRxsAb0kdAGpJHQBqSR0A+e04fAJNJHQClVCEA/0YcAIRVIgD/VSIA7E0fADQyDQAyaToa1MqXdMLJl3bBc0Ii6UscAJFFGgBE+RRoAQUIZAFlRIADpVSIA/1UiAP9JHwN9WicG/1QhAIMAAAAMVywPoaBtTNi6imnEsIBfya9+Xc1m+OBm2UycIilgqDYVVKQ2DVigJ4FwqCf5cKgr/Qx8GUGAwEc08EwAPTSgQY4dXN+LPnXy9g1c54XtM+LevJl3a/k2RE3WY5Gv9mNxn/Zjga/2c5G/9oOhz/Zzka/DQYBRFZLRA1JhAAJHhML9XJlnTCqXxe+zXFHLPtxRyv/n3BR2MuZd7uFWjzmc0gt/nRKLv90Sy//dUww/21CJcIAAAAATCsURXRONdR+Vjr5+j2ZL5oJbQfN+Vz3/flg//4NcQfePZkrogVk/8n5YP/6BW0H/gVtD/oBaQf9qQCRIJAgAAFAxHRt4+VDzVjWpS/4lmT/6LZ1D/jGlS/4xpU/6MaVL/i2hS/otpUv6Na1T+jmtV/o9tV/98Vj2cYzoeBgAA+AAAGAgAAZ0cyMIVkTtqae2f/mXpm/5l5Zf6Zemb+mXpm/5p6Zv+ae2f+mnxp/5p7Z/+HZE2qdE84+FAAAAAAAAAAAAAAAAAAAAABrTDgfhWVQnp2Abf+njHv/pot6/6aMev+njHv/qI18/5t+avOHZU9y+fFc/DgAAAAAAAAAAJhABAAAAAAAAAAAAyqmXADYdCQNoSDQjh2hUbpd6aJ+Zfmurl3pnlYZkTlpw+TDYTX0IxAbNeMwAAAAAAsoFfAPgfAADwBwAA4AMAAOH/AADwAQAAsPwAAJh4AAAYOAAAkAAAALAA+AADgAAAAwAEAAMABAADgAwAA8A8AAP4/AAAoAAAAEAAAACAAAAABAAEAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==++{-# START_FILE config/keter.yaml #-}+exec: ../dist/build/PROJECTNAME/PROJECTNAME+args:+    - production+host: <<HOST-NOT-SET>>++# Use the following to automatically copy your bundle upon creation via `yesod+# keter`. Uses `scp` internally, so you can set it to a remote destination+# copy-to: user@host:/opt/keter/incoming++{-# START_FILE config/models #-}+User+    ident Text+    password Text Maybe+    UniqueUser ident+    deriving Typeable+Email+    email Text+    user UserId Maybe+    verkey Text Maybe+    UniqueEmail email++ -- By default this file is used in Model.hs (which is imported by Foundation.hs)++{-# START_FILE config/postgresql.yml #-}+Default: &defaults+  user: PROJECTNAME+  password: PROJECTNAME+  host: localhost+  port: 5432+  database: PROJECTNAME+  poolsize: 10++Development:+  <<: *defaults++Testing:+  database: PROJECTNAME_test+  <<: *defaults++Staging:+  database: PROJECTNAME_staging+  poolsize: 100+  <<: *defaults++Production:+  database: PROJECTNAME_production+  poolsize: 100+  <<: *defaults++{-# START_FILE config/robots.txt #-}+User-agent: *++{-# START_FILE config/routes #-}+/static StaticR Static getStatic+/auth   AuthR   Auth   getAuth++/favicon.ico FaviconR GET+/robots.txt RobotsR GET++/ HomeR GET POST++{-# START_FILE config/settings.yml #-}+Default: &defaults+  host: "*4" # any IPv4 host+  port: 3000+  approot: "http://localhost:3000"+  copyright: Insert copyright statement here+  #analytics: UA-YOURCODE++Development:+  <<: *defaults++Testing:+  <<: *defaults++Staging:+  <<: *defaults++Production:+  #approot: "http://www.example.com"+  <<: *defaults++{-# START_FILE deploy/Procfile #-}+# Free deployment to Heroku.+#+#   !! Warning: You must use a 64 bit machine to compile !!+#+#   This could mean using a virtual machine. Give your VM as much memory as you can to speed up linking.+#+# Basic Yesod setup:+#+# * Move this file out of the deploy directory and into your root directory+#+#     mv deploy/Procfile ./+#+# * Create an empty package.json+#     echo '{ "name": "PROJECTNAME", "version": "0.0.1", "dependencies": {} }' >> package.json+#+# Postgresql Yesod setup:+#+# * add dependencies on the "heroku", "aeson" and "unordered-containers" packages in your cabal file+#+# * add code in Application.hs to use the heroku package and load the connection parameters.+#   The below works for Postgresql.+#+#   import Data.HashMap.Strict as H+#   import Data.Aeson.Types as AT+#   #ifndef DEVELOPMENT+#   import qualified Web.Heroku+#   #endif+#+#+#+#   makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO App+#   makeFoundation conf setLogger = do+#       manager <- newManager def+#       s <- staticSite+#       hconfig <- loadHerokuConfig+#       dbconf <- withYamlEnvironment "config/postgresql.yml" (appEnv conf)+#                 (Database.Persist.Store.loadConfig . combineMappings hconfig) >>=+#                 Database.Persist.Store.applyEnv+#       p <- Database.Persist.Store.createPoolConfig (dbconf :: Settings.PersistConfig)+#       Database.Persist.Store.runPool dbconf (runMigration migrateAll) p+#       return $ App conf setLogger s p manager dbconf+#+#   #ifndef DEVELOPMENT+#   canonicalizeKey :: (Text, val) -> (Text, val)+#   canonicalizeKey ("dbname", val) = ("database", val)+#   canonicalizeKey pair = pair+#+#   toMapping :: [(Text, Text)] -> AT.Value+#   toMapping xs = AT.Object $ M.fromList $ map (\(key, val) -> (key, AT.String val)) xs+#   #endif+#+#   combineMappings :: AT.Value -> AT.Value -> AT.Value+#   combineMappings (AT.Object m1) (AT.Object m2) = AT.Object $ m1 `M.union` m2+#   combineMappings _ _ = error "Data.Object is not a Mapping."+#+#   loadHerokuConfig :: IO AT.Value+#   loadHerokuConfig = do+#   #ifdef DEVELOPMENT+#       return $ AT.Object M.empty+#   #else+#       Web.Heroku.dbConnParams >>= return . toMapping . map canonicalizeKey+#   #endif++++# Heroku setup:+# Find the Heroku guide. Roughly:+#+# * sign up for a heroku account and register your ssh key+# * create a new application on the *cedar* stack+#+# * make your Yesod project the git repository for that application+# * create a deploy branch+#+#     git checkout -b deploy+#+# Repeat these steps to deploy:+# * add your web executable binary (referenced below) to the git repository+#+#     git checkout deploy+#     git add ./dist/build/PROJECTNAME/PROJECTNAME+#     git commit -m deploy+#+# * push to Heroku+#+#     git push heroku deploy:master+++# Heroku configuration that runs your app+web: ./dist/build/PROJECTNAME/PROJECTNAME production -p $PORT++{-# START_FILE devel.hs #-}+{-# LANGUAGE PackageImports #-}+import "PROJECTNAME" Application (getApplicationDev)+import Network.Wai.Handler.Warp+    (runSettings, defaultSettings, settingsPort)+import Control.Concurrent (forkIO)+import System.Directory (doesFileExist, removeFile)+import System.Exit (exitSuccess)+import Control.Concurrent (threadDelay)++main :: IO ()+main = do+    putStrLn "Starting devel application"+    (port, app) <- getApplicationDev+    forkIO $ runSettings defaultSettings+        { settingsPort = port+        } app+    loop++loop :: IO ()+loop = do+  threadDelay 100000+  e <- doesFileExist "yesod-devel/devel-terminate"+  if e then terminateDevel else loop++terminateDevel :: IO ()+terminateDevel = exitSuccess++{-# START_FILE messages/en.msg #-}+Hello: Hello++{-# START_FILE static/css/bootstrap.css #-}+/*!+ * Bootstrap v2.0.2+ *+ * Copyright 2012 Twitter, Inc+ * Licensed under the Apache License v2.0+ * http://www.apache.org/licenses/LICENSE-2.0+ *+ * Designed and built with all the love in the world @twitter by @mdo and @fat.+ */+article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+  display: block;+}+audio,+canvas,+video {+  display: inline-block;+  *display: inline;+  *zoom: 1;+}+audio:not([controls]) {+  display: none;+}+html {+  font-size: 100%;+  -webkit-text-size-adjust: 100%;+  -ms-text-size-adjust: 100%;+}+a:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+a:hover,+a:active {+  outline: 0;+}+sub,+sup {+  position: relative;+  font-size: 75%;+  line-height: 0;+  vertical-align: baseline;+}+sup {+  top: -0.5em;+}+sub {+  bottom: -0.25em;+}+img {+  height: auto;+  border: 0;+  -ms-interpolation-mode: bicubic;+  vertical-align: middle;+}+button,+input,+select,+textarea {+  margin: 0;+  font-size: 100%;+  vertical-align: middle;+}+button,+input {+  *overflow: visible;+  line-height: normal;+}+button::-moz-focus-inner,+input::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button,+input[type="button"],+input[type="reset"],+input[type="submit"] {+  cursor: pointer;+  -webkit-appearance: button;+}+input[type="search"] {+  -webkit-appearance: textfield;+  -webkit-box-sizing: content-box;+  -moz-box-sizing: content-box;+  box-sizing: content-box;+}+input[type="search"]::-webkit-search-decoration,+input[type="search"]::-webkit-search-cancel-button {+  -webkit-appearance: none;+}+textarea {+  overflow: auto;+  vertical-align: top;+}+.clearfix {+  *zoom: 1;+}+.clearfix:before,+.clearfix:after {+  display: table;+  content: "";+}+.clearfix:after {+  clear: both;+}+.hide-text {+  overflow: hidden;+  text-indent: 100%;+  white-space: nowrap;+}+.input-block-level {+  display: block;+  width: 100%;+  min-height: 28px;+  /* Make inputs at least the height of their button counterpart */++  /* Makes inputs behave like true block-level elements */++  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+}+body {+  margin: 0;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  background-color: #ffffff;+}+a {+  color: #0088cc;+  text-decoration: none;+}+a:hover {+  color: #005580;+  text-decoration: underline;+}+.row {+  margin-left: -20px;+  *zoom: 1;+}+.row:before,+.row:after {+  display: table;+  content: "";+}+.row:after {+  clear: both;+}+[class*="span"] {+  float: left;+  margin-left: 20px;+}+.container,+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.span12 {+  width: 940px;+}+.span11 {+  width: 860px;+}+.span10 {+  width: 780px;+}+.span9 {+  width: 700px;+}+.span8 {+  width: 620px;+}+.span7 {+  width: 540px;+}+.span6 {+  width: 460px;+}+.span5 {+  width: 380px;+}+.span4 {+  width: 300px;+}+.span3 {+  width: 220px;+}+.span2 {+  width: 140px;+}+.span1 {+  width: 60px;+}+.offset12 {+  margin-left: 980px;+}+.offset11 {+  margin-left: 900px;+}+.offset10 {+  margin-left: 820px;+}+.offset9 {+  margin-left: 740px;+}+.offset8 {+  margin-left: 660px;+}+.offset7 {+  margin-left: 580px;+}+.offset6 {+  margin-left: 500px;+}+.offset5 {+  margin-left: 420px;+}+.offset4 {+  margin-left: 340px;+}+.offset3 {+  margin-left: 260px;+}+.offset2 {+  margin-left: 180px;+}+.offset1 {+  margin-left: 100px;+}+.row-fluid {+  width: 100%;+  *zoom: 1;+}+.row-fluid:before,+.row-fluid:after {+  display: table;+  content: "";+}+.row-fluid:after {+  clear: both;+}+.row-fluid > [class*="span"] {+  float: left;+  margin-left: 2.127659574%;+}+.row-fluid > [class*="span"]:first-child {+  margin-left: 0;+}+.row-fluid > .span12 {+  width: 99.99999998999999%;+}+.row-fluid > .span11 {+  width: 91.489361693%;+}+.row-fluid > .span10 {+  width: 82.97872339599999%;+}+.row-fluid > .span9 {+  width: 74.468085099%;+}+.row-fluid > .span8 {+  width: 65.95744680199999%;+}+.row-fluid > .span7 {+  width: 57.446808505%;+}+.row-fluid > .span6 {+  width: 48.93617020799999%;+}+.row-fluid > .span5 {+  width: 40.425531911%;+}+.row-fluid > .span4 {+  width: 31.914893614%;+}+.row-fluid > .span3 {+  width: 23.404255317%;+}+.row-fluid > .span2 {+  width: 14.89361702%;+}+.row-fluid > .span1 {+  width: 6.382978723%;+}+.container {+  margin-left: auto;+  margin-right: auto;+  *zoom: 1;+}+.container:before,+.container:after {+  display: table;+  content: "";+}+.container:after {+  clear: both;+}+.container-fluid {+  padding-left: 20px;+  padding-right: 20px;+  *zoom: 1;+}+.container-fluid:before,+.container-fluid:after {+  display: table;+  content: "";+}+.container-fluid:after {+  clear: both;+}+p {+  margin: 0 0 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+}+p small {+  font-size: 11px;+  color: #999999;+}+.lead {+  margin-bottom: 18px;+  font-size: 20px;+  font-weight: 200;+  line-height: 27px;+}+h1,+h2,+h3,+h4,+h5,+h6 {+  margin: 0;+  font-family: inherit;+  font-weight: bold;+  color: inherit;+  text-rendering: optimizelegibility;+}+h1 small,+h2 small,+h3 small,+h4 small,+h5 small,+h6 small {+  font-weight: normal;+  color: #999999;+}+h1 {+  font-size: 30px;+  line-height: 36px;+}+h1 small {+  font-size: 18px;+}+h2 {+  font-size: 24px;+  line-height: 36px;+}+h2 small {+  font-size: 18px;+}+h3 {+  line-height: 27px;+  font-size: 18px;+}+h3 small {+  font-size: 14px;+}+h4,+h5,+h6 {+  line-height: 18px;+}+h4 {+  font-size: 14px;+}+h4 small {+  font-size: 12px;+}+h5 {+  font-size: 12px;+}+h6 {+  font-size: 11px;+  color: #999999;+  text-transform: uppercase;+}+.page-header {+  padding-bottom: 17px;+  margin: 18px 0;+  border-bottom: 1px solid #eeeeee;+}+.page-header h1 {+  line-height: 1;+}+ul,+ol {+  padding: 0;+  margin: 0 0 9px 25px;+}+ul ul,+ul ol,+ol ol,+ol ul {+  margin-bottom: 0;+}+ul {+  list-style: disc;+}+ol {+  list-style: decimal;+}+li {+  line-height: 18px;+}+ul.unstyled,+ol.unstyled {+  margin-left: 0;+  list-style: none;+}+dl {+  margin-bottom: 18px;+}+dt,+dd {+  line-height: 18px;+}+dt {+  font-weight: bold;+  line-height: 17px;+}+dd {+  margin-left: 9px;+}+.dl-horizontal dt {+  float: left;+  clear: left;+  width: 120px;+  text-align: right;+}+.dl-horizontal dd {+  margin-left: 130px;+}+hr {+  margin: 18px 0;+  border: 0;+  border-top: 1px solid #eeeeee;+  border-bottom: 1px solid #ffffff;+}+strong {+  font-weight: bold;+}+em {+  font-style: italic;+}+.muted {+  color: #999999;+}+abbr[title] {+  border-bottom: 1px dotted #ddd;+  cursor: help;+}+abbr.initialism {+  font-size: 90%;+  text-transform: uppercase;+}+blockquote {+  padding: 0 0 0 15px;+  margin: 0 0 18px;+  border-left: 5px solid #eeeeee;+}+blockquote p {+  margin-bottom: 0;+  font-size: 16px;+  font-weight: 300;+  line-height: 22.5px;+}+blockquote small {+  display: block;+  line-height: 18px;+  color: #999999;+}+blockquote small:before {+  content: '\2014 \00A0';+}+blockquote.pull-right {+  float: right;+  padding-left: 0;+  padding-right: 15px;+  border-left: 0;+  border-right: 5px solid #eeeeee;+}+blockquote.pull-right p,+blockquote.pull-right small {+  text-align: right;+}+q:before,+q:after,+blockquote:before,+blockquote:after {+  content: "";+}+address {+  display: block;+  margin-bottom: 18px;+  line-height: 18px;+  font-style: normal;+}+small {+  font-size: 100%;+}+cite {+  font-style: normal;+}+code,+pre {+  padding: 0 3px 2px;+  font-family: Menlo, Monaco, "Courier New", monospace;+  font-size: 12px;+  color: #333333;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+code {+  padding: 2px 4px;+  color: #d14;+  background-color: #f7f7f9;+  border: 1px solid #e1e1e8;+}+pre {+  display: block;+  padding: 8.5px;+  margin: 0 0 9px;+  font-size: 12.025px;+  line-height: 18px;+  background-color: #f5f5f5;+  border: 1px solid #ccc;+  border: 1px solid rgba(0, 0, 0, 0.15);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  white-space: pre;+  white-space: pre-wrap;+  word-break: break-all;+  word-wrap: break-word;+}+pre.prettyprint {+  margin-bottom: 18px;+}+pre code {+  padding: 0;+  color: inherit;+  background-color: transparent;+  border: 0;+}+.pre-scrollable {+  max-height: 340px;+  overflow-y: scroll;+}+form {+  margin: 0 0 18px;+}+fieldset {+  padding: 0;+  margin: 0;+  border: 0;+}+legend {+  display: block;+  width: 100%;+  padding: 0;+  margin-bottom: 27px;+  font-size: 19.5px;+  line-height: 36px;+  color: #333333;+  border: 0;+  border-bottom: 1px solid #eee;+}+legend small {+  font-size: 13.5px;+  color: #999999;+}+label,+input,+button,+select,+textarea {+  font-size: 13px;+  font-weight: normal;+  line-height: 18px;+}+input,+button,+select,+textarea {+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+}+label {+  display: block;+  margin-bottom: 5px;+  color: #333333;+}+input,+textarea,+select,+.uneditable-input {+  display: inline-block;+  width: 210px;+  height: 18px;+  padding: 4px;+  margin-bottom: 9px;+  font-size: 13px;+  line-height: 18px;+  color: #555555;+  border: 1px solid #cccccc;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.uneditable-textarea {+  width: auto;+  height: auto;+}+label input,+label textarea,+label select {+  display: block;+}+input[type="image"],+input[type="checkbox"],+input[type="radio"] {+  width: auto;+  height: auto;+  padding: 0;+  margin: 3px 0;+  *margin-top: 0;+  /* IE7 */++  line-height: normal;+  cursor: pointer;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+  border: 0 \9;+  /* IE9 and down */++}+input[type="image"] {+  border: 0;+}+input[type="file"] {+  width: auto;+  padding: initial;+  line-height: initial;+  border: initial;+  background-color: #ffffff;+  background-color: initial;+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+input[type="button"],+input[type="reset"],+input[type="submit"] {+  width: auto;+  height: auto;+}+select,+input[type="file"] {+  height: 28px;+  /* In IE7, the height of the select element cannot be changed by height, only font-size */++  *margin-top: 4px;+  /* For IE7, add top margin to align select with labels */++  line-height: 28px;+}+input[type="file"] {+  line-height: 18px \9;+}+select {+  width: 220px;+  background-color: #ffffff;+}+select[multiple],+select[size] {+  height: auto;+}+input[type="image"] {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+textarea {+  height: auto;+}+input[type="hidden"] {+  display: none;+}+.radio,+.checkbox {+  padding-left: 18px;+}+.radio input[type="radio"],+.checkbox input[type="checkbox"] {+  float: left;+  margin-left: -18px;+}+.controls > .radio:first-child,+.controls > .checkbox:first-child {+  padding-top: 5px;+}+.radio.inline,+.checkbox.inline {+  display: inline-block;+  padding-top: 5px;+  margin-bottom: 0;+  vertical-align: middle;+}+.radio.inline + .radio.inline,+.checkbox.inline + .checkbox.inline {+  margin-left: 10px;+}+input,+textarea {+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;+  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;+  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;+  -o-transition: border linear 0.2s, box-shadow linear 0.2s;+  transition: border linear 0.2s, box-shadow linear 0.2s;+}+input:focus,+textarea:focus {+  border-color: rgba(82, 168, 236, 0.8);+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  outline: 0;+  outline: thin dotted \9;+  /* IE6-9 */++}+input[type="file"]:focus,+input[type="radio"]:focus,+input[type="checkbox"]:focus,+select:focus {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.input-mini {+  width: 60px;+}+.input-small {+  width: 90px;+}+.input-medium {+  width: 150px;+}+.input-large {+  width: 210px;+}+.input-xlarge {+  width: 270px;+}+.input-xxlarge {+  width: 530px;+}+input[class*="span"],+select[class*="span"],+textarea[class*="span"],+.uneditable-input {+  float: none;+  margin-left: 0;+}+input,+textarea,+.uneditable-input {+  margin-left: 0;+}+input.span12, textarea.span12, .uneditable-input.span12 {+  width: 930px;+}+input.span11, textarea.span11, .uneditable-input.span11 {+  width: 850px;+}+input.span10, textarea.span10, .uneditable-input.span10 {+  width: 770px;+}+input.span9, textarea.span9, .uneditable-input.span9 {+  width: 690px;+}+input.span8, textarea.span8, .uneditable-input.span8 {+  width: 610px;+}+input.span7, textarea.span7, .uneditable-input.span7 {+  width: 530px;+}+input.span6, textarea.span6, .uneditable-input.span6 {+  width: 450px;+}+input.span5, textarea.span5, .uneditable-input.span5 {+  width: 370px;+}+input.span4, textarea.span4, .uneditable-input.span4 {+  width: 290px;+}+input.span3, textarea.span3, .uneditable-input.span3 {+  width: 210px;+}+input.span2, textarea.span2, .uneditable-input.span2 {+  width: 130px;+}+input.span1, textarea.span1, .uneditable-input.span1 {+  width: 50px;+}+input[disabled],+select[disabled],+textarea[disabled],+input[readonly],+select[readonly],+textarea[readonly] {+  background-color: #eeeeee;+  border-color: #ddd;+  cursor: not-allowed;+}+.control-group.warning > label,+.control-group.warning .help-block,+.control-group.warning .help-inline {+  color: #c09853;+}+.control-group.warning input,+.control-group.warning select,+.control-group.warning textarea {+  color: #c09853;+  border-color: #c09853;+}+.control-group.warning input:focus,+.control-group.warning select:focus,+.control-group.warning textarea:focus {+  border-color: #a47e3c;+  -webkit-box-shadow: 0 0 6px #dbc59e;+  -moz-box-shadow: 0 0 6px #dbc59e;+  box-shadow: 0 0 6px #dbc59e;+}+.control-group.warning .input-prepend .add-on,+.control-group.warning .input-append .add-on {+  color: #c09853;+  background-color: #fcf8e3;+  border-color: #c09853;+}+.control-group.error > label,+.control-group.error .help-block,+.control-group.error .help-inline {+  color: #b94a48;+}+.control-group.error input,+.control-group.error select,+.control-group.error textarea {+  color: #b94a48;+  border-color: #b94a48;+}+.control-group.error input:focus,+.control-group.error select:focus,+.control-group.error textarea:focus {+  border-color: #953b39;+  -webkit-box-shadow: 0 0 6px #d59392;+  -moz-box-shadow: 0 0 6px #d59392;+  box-shadow: 0 0 6px #d59392;+}+.control-group.error .input-prepend .add-on,+.control-group.error .input-append .add-on {+  color: #b94a48;+  background-color: #f2dede;+  border-color: #b94a48;+}+.control-group.success > label,+.control-group.success .help-block,+.control-group.success .help-inline {+  color: #468847;+}+.control-group.success input,+.control-group.success select,+.control-group.success textarea {+  color: #468847;+  border-color: #468847;+}+.control-group.success input:focus,+.control-group.success select:focus,+.control-group.success textarea:focus {+  border-color: #356635;+  -webkit-box-shadow: 0 0 6px #7aba7b;+  -moz-box-shadow: 0 0 6px #7aba7b;+  box-shadow: 0 0 6px #7aba7b;+}+.control-group.success .input-prepend .add-on,+.control-group.success .input-append .add-on {+  color: #468847;+  background-color: #dff0d8;+  border-color: #468847;+}+input:focus:required:invalid,+textarea:focus:required:invalid,+select:focus:required:invalid {+  color: #b94a48;+  border-color: #ee5f5b;+}+input:focus:required:invalid:focus,+textarea:focus:required:invalid:focus,+select:focus:required:invalid:focus {+  border-color: #e9322d;+  -webkit-box-shadow: 0 0 6px #f8b9b7;+  -moz-box-shadow: 0 0 6px #f8b9b7;+  box-shadow: 0 0 6px #f8b9b7;+}+.form-actions {+  padding: 17px 20px 18px;+  margin-top: 18px;+  margin-bottom: 18px;+  background-color: #eeeeee;+  border-top: 1px solid #ddd;+  *zoom: 1;+}+.form-actions:before,+.form-actions:after {+  display: table;+  content: "";+}+.form-actions:after {+  clear: both;+}+.uneditable-input {+  display: block;+  background-color: #ffffff;+  border-color: #eee;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  cursor: not-allowed;+}+:-moz-placeholder {+  color: #999999;+}+::-webkit-input-placeholder {+  color: #999999;+}+.help-block,+.help-inline {+  color: #555555;+}+.help-block {+  display: block;+  margin-bottom: 9px;+}+.help-inline {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  vertical-align: middle;+  padding-left: 5px;+}+.input-prepend,+.input-append {+  margin-bottom: 5px;+}+.input-prepend input,+.input-append input,+.input-prepend select,+.input-append select,+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  *margin-left: 0;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend input:focus,+.input-append input:focus,+.input-prepend select:focus,+.input-append select:focus,+.input-prepend .uneditable-input:focus,+.input-append .uneditable-input:focus {+  position: relative;+  z-index: 2;+}+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  border-left-color: #ccc;+}+.input-prepend .add-on,+.input-append .add-on {+  display: inline-block;+  width: auto;+  min-width: 16px;+  height: 18px;+  padding: 4px 5px;+  font-weight: normal;+  line-height: 18px;+  text-align: center;+  text-shadow: 0 1px 0 #ffffff;+  vertical-align: middle;+  background-color: #eeeeee;+  border: 1px solid #ccc;+}+.input-prepend .add-on,+.input-append .add-on,+.input-prepend .btn,+.input-append .btn {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend .active,+.input-append .active {+  background-color: #a9dba9;+  border-color: #46a546;+}+.input-prepend .add-on,+.input-prepend .btn {+  margin-right: -1px;+}+.input-append input,+.input-append select .uneditable-input {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-append .uneditable-input {+  border-left-color: #eee;+  border-right-color: #ccc;+}+.input-append .add-on,+.input-append .btn {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend.input-append input,+.input-prepend.input-append select,+.input-prepend.input-append .uneditable-input {+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.input-prepend.input-append .add-on:first-child,+.input-prepend.input-append .btn:first-child {+  margin-right: -1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend.input-append .add-on:last-child,+.input-prepend.input-append .btn:last-child {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.search-query {+  padding-left: 14px;+  padding-right: 14px;+  margin-bottom: 0;+  -webkit-border-radius: 14px;+  -moz-border-radius: 14px;+  border-radius: 14px;+}+.form-search input,+.form-inline input,+.form-horizontal input,+.form-search textarea,+.form-inline textarea,+.form-horizontal textarea,+.form-search select,+.form-inline select,+.form-horizontal select,+.form-search .help-inline,+.form-inline .help-inline,+.form-horizontal .help-inline,+.form-search .uneditable-input,+.form-inline .uneditable-input,+.form-horizontal .uneditable-input,+.form-search .input-prepend,+.form-inline .input-prepend,+.form-horizontal .input-prepend,+.form-search .input-append,+.form-inline .input-append,+.form-horizontal .input-append {+  display: inline-block;+  margin-bottom: 0;+}+.form-search .hide,+.form-inline .hide,+.form-horizontal .hide {+  display: none;+}+.form-search label,+.form-inline label {+  display: inline-block;+}+.form-search .input-append,+.form-inline .input-append,+.form-search .input-prepend,+.form-inline .input-prepend {+  margin-bottom: 0;+}+.form-search .radio,+.form-search .checkbox,+.form-inline .radio,+.form-inline .checkbox {+  padding-left: 0;+  margin-bottom: 0;+  vertical-align: middle;+}+.form-search .radio input[type="radio"],+.form-search .checkbox input[type="checkbox"],+.form-inline .radio input[type="radio"],+.form-inline .checkbox input[type="checkbox"] {+  float: left;+  margin-left: 0;+  margin-right: 3px;+}+.control-group {+  margin-bottom: 9px;+}+legend + .control-group {+  margin-top: 18px;+  -webkit-margin-top-collapse: separate;+}+.form-horizontal .control-group {+  margin-bottom: 18px;+  *zoom: 1;+}+.form-horizontal .control-group:before,+.form-horizontal .control-group:after {+  display: table;+  content: "";+}+.form-horizontal .control-group:after {+  clear: both;+}+.form-horizontal .control-label {+  float: left;+  width: 140px;+  padding-top: 5px;+  text-align: right;+}+.form-horizontal .controls {+  margin-left: 160px;+  /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */++  *display: inline-block;+  *margin-left: 0;+  *padding-left: 20px;+}+.form-horizontal .help-block {+  margin-top: 9px;+  margin-bottom: 0;+}+.form-horizontal .form-actions {+  padding-left: 160px;+}+table {+  max-width: 100%;+  border-collapse: collapse;+  border-spacing: 0;+  background-color: transparent;+}+.table {+  width: 100%;+  margin-bottom: 18px;+}+.table th,+.table td {+  padding: 8px;+  line-height: 18px;+  text-align: left;+  vertical-align: top;+  border-top: 1px solid #dddddd;+}+.table th {+  font-weight: bold;+}+.table thead th {+  vertical-align: bottom;+}+.table colgroup + thead tr:first-child th,+.table colgroup + thead tr:first-child td,+.table thead:first-child tr:first-child th,+.table thead:first-child tr:first-child td {+  border-top: 0;+}+.table tbody + tbody {+  border-top: 2px solid #dddddd;+}+.table-condensed th,+.table-condensed td {+  padding: 4px 5px;+}+.table-bordered {+  border: 1px solid #dddddd;+  border-left: 0;+  border-collapse: separate;+  *border-collapse: collapsed;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.table-bordered th,+.table-bordered td {+  border-left: 1px solid #dddddd;+}+.table-bordered thead:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child td {+  border-top: 0;+}+.table-bordered thead:first-child tr:first-child th:first-child,+.table-bordered tbody:first-child tr:first-child td:first-child {+  -webkit-border-radius: 4px 0 0 0;+  -moz-border-radius: 4px 0 0 0;+  border-radius: 4px 0 0 0;+}+.table-bordered thead:first-child tr:first-child th:last-child,+.table-bordered tbody:first-child tr:first-child td:last-child {+  -webkit-border-radius: 0 4px 0 0;+  -moz-border-radius: 0 4px 0 0;+  border-radius: 0 4px 0 0;+}+.table-bordered thead:last-child tr:last-child th:first-child,+.table-bordered tbody:last-child tr:last-child td:first-child {+  -webkit-border-radius: 0 0 0 4px;+  -moz-border-radius: 0 0 0 4px;+  border-radius: 0 0 0 4px;+}+.table-bordered thead:last-child tr:last-child th:last-child,+.table-bordered tbody:last-child tr:last-child td:last-child {+  -webkit-border-radius: 0 0 4px 0;+  -moz-border-radius: 0 0 4px 0;+  border-radius: 0 0 4px 0;+}+.table-striped tbody tr:nth-child(odd) td,+.table-striped tbody tr:nth-child(odd) th {+  background-color: #f9f9f9;+}+.table tbody tr:hover td,+.table tbody tr:hover th {+  background-color: #f5f5f5;+}+table .span1 {+  float: none;+  width: 44px;+  margin-left: 0;+}+table .span2 {+  float: none;+  width: 124px;+  margin-left: 0;+}+table .span3 {+  float: none;+  width: 204px;+  margin-left: 0;+}+table .span4 {+  float: none;+  width: 284px;+  margin-left: 0;+}+table .span5 {+  float: none;+  width: 364px;+  margin-left: 0;+}+table .span6 {+  float: none;+  width: 444px;+  margin-left: 0;+}+table .span7 {+  float: none;+  width: 524px;+  margin-left: 0;+}+table .span8 {+  float: none;+  width: 604px;+  margin-left: 0;+}+table .span9 {+  float: none;+  width: 684px;+  margin-left: 0;+}+table .span10 {+  float: none;+  width: 764px;+  margin-left: 0;+}+table .span11 {+  float: none;+  width: 844px;+  margin-left: 0;+}+table .span12 {+  float: none;+  width: 924px;+  margin-left: 0;+}+table .span13 {+  float: none;+  width: 1004px;+  margin-left: 0;+}+table .span14 {+  float: none;+  width: 1084px;+  margin-left: 0;+}+table .span15 {+  float: none;+  width: 1164px;+  margin-left: 0;+}+table .span16 {+  float: none;+  width: 1244px;+  margin-left: 0;+}+table .span17 {+  float: none;+  width: 1324px;+  margin-left: 0;+}+table .span18 {+  float: none;+  width: 1404px;+  margin-left: 0;+}+table .span19 {+  float: none;+  width: 1484px;+  margin-left: 0;+}+table .span20 {+  float: none;+  width: 1564px;+  margin-left: 0;+}+table .span21 {+  float: none;+  width: 1644px;+  margin-left: 0;+}+table .span22 {+  float: none;+  width: 1724px;+  margin-left: 0;+}+table .span23 {+  float: none;+  width: 1804px;+  margin-left: 0;+}+table .span24 {+  float: none;+  width: 1884px;+  margin-left: 0;+}+[class^="icon-"],+[class*=" icon-"] {+  display: inline-block;+  width: 14px;+  height: 14px;+  line-height: 14px;+  vertical-align: text-top;+  background-image: url("../img/glyphicons-halflings.png");+  background-position: 14px 14px;+  background-repeat: no-repeat;+  *margin-right: .3em;+}+[class^="icon-"]:last-child,+[class*=" icon-"]:last-child {+  *margin-left: 0;+}+.icon-white {+  background-image: url("../img/glyphicons-halflings-white.png");+}+.icon-glass {+  background-position: 0      0;+}+.icon-music {+  background-position: -24px 0;+}+.icon-search {+  background-position: -48px 0;+}+.icon-envelope {+  background-position: -72px 0;+}+.icon-heart {+  background-position: -96px 0;+}+.icon-star {+  background-position: -120px 0;+}+.icon-star-empty {+  background-position: -144px 0;+}+.icon-user {+  background-position: -168px 0;+}+.icon-film {+  background-position: -192px 0;+}+.icon-th-large {+  background-position: -216px 0;+}+.icon-th {+  background-position: -240px 0;+}+.icon-th-list {+  background-position: -264px 0;+}+.icon-ok {+  background-position: -288px 0;+}+.icon-remove {+  background-position: -312px 0;+}+.icon-zoom-in {+  background-position: -336px 0;+}+.icon-zoom-out {+  background-position: -360px 0;+}+.icon-off {+  background-position: -384px 0;+}+.icon-signal {+  background-position: -408px 0;+}+.icon-cog {+  background-position: -432px 0;+}+.icon-trash {+  background-position: -456px 0;+}+.icon-home {+  background-position: 0 -24px;+}+.icon-file {+  background-position: -24px -24px;+}+.icon-time {+  background-position: -48px -24px;+}+.icon-road {+  background-position: -72px -24px;+}+.icon-download-alt {+  background-position: -96px -24px;+}+.icon-download {+  background-position: -120px -24px;+}+.icon-upload {+  background-position: -144px -24px;+}+.icon-inbox {+  background-position: -168px -24px;+}+.icon-play-circle {+  background-position: -192px -24px;+}+.icon-repeat {+  background-position: -216px -24px;+}+.icon-refresh {+  background-position: -240px -24px;+}+.icon-list-alt {+  background-position: -264px -24px;+}+.icon-lock {+  background-position: -287px -24px;+}+.icon-flag {+  background-position: -312px -24px;+}+.icon-headphones {+  background-position: -336px -24px;+}+.icon-volume-off {+  background-position: -360px -24px;+}+.icon-volume-down {+  background-position: -384px -24px;+}+.icon-volume-up {+  background-position: -408px -24px;+}+.icon-qrcode {+  background-position: -432px -24px;+}+.icon-barcode {+  background-position: -456px -24px;+}+.icon-tag {+  background-position: 0 -48px;+}+.icon-tags {+  background-position: -25px -48px;+}+.icon-book {+  background-position: -48px -48px;+}+.icon-bookmark {+  background-position: -72px -48px;+}+.icon-print {+  background-position: -96px -48px;+}+.icon-camera {+  background-position: -120px -48px;+}+.icon-font {+  background-position: -144px -48px;+}+.icon-bold {+  background-position: -167px -48px;+}+.icon-italic {+  background-position: -192px -48px;+}+.icon-text-height {+  background-position: -216px -48px;+}+.icon-text-width {+  background-position: -240px -48px;+}+.icon-align-left {+  background-position: -264px -48px;+}+.icon-align-center {+  background-position: -288px -48px;+}+.icon-align-right {+  background-position: -312px -48px;+}+.icon-align-justify {+  background-position: -336px -48px;+}+.icon-list {+  background-position: -360px -48px;+}+.icon-indent-left {+  background-position: -384px -48px;+}+.icon-indent-right {+  background-position: -408px -48px;+}+.icon-facetime-video {+  background-position: -432px -48px;+}+.icon-picture {+  background-position: -456px -48px;+}+.icon-pencil {+  background-position: 0 -72px;+}+.icon-map-marker {+  background-position: -24px -72px;+}+.icon-adjust {+  background-position: -48px -72px;+}+.icon-tint {+  background-position: -72px -72px;+}+.icon-edit {+  background-position: -96px -72px;+}+.icon-share {+  background-position: -120px -72px;+}+.icon-check {+  background-position: -144px -72px;+}+.icon-move {+  background-position: -168px -72px;+}+.icon-step-backward {+  background-position: -192px -72px;+}+.icon-fast-backward {+  background-position: -216px -72px;+}+.icon-backward {+  background-position: -240px -72px;+}+.icon-play {+  background-position: -264px -72px;+}+.icon-pause {+  background-position: -288px -72px;+}+.icon-stop {+  background-position: -312px -72px;+}+.icon-forward {+  background-position: -336px -72px;+}+.icon-fast-forward {+  background-position: -360px -72px;+}+.icon-step-forward {+  background-position: -384px -72px;+}+.icon-eject {+  background-position: -408px -72px;+}+.icon-chevron-left {+  background-position: -432px -72px;+}+.icon-chevron-right {+  background-position: -456px -72px;+}+.icon-plus-sign {+  background-position: 0 -96px;+}+.icon-minus-sign {+  background-position: -24px -96px;+}+.icon-remove-sign {+  background-position: -48px -96px;+}+.icon-ok-sign {+  background-position: -72px -96px;+}+.icon-question-sign {+  background-position: -96px -96px;+}+.icon-info-sign {+  background-position: -120px -96px;+}+.icon-screenshot {+  background-position: -144px -96px;+}+.icon-remove-circle {+  background-position: -168px -96px;+}+.icon-ok-circle {+  background-position: -192px -96px;+}+.icon-ban-circle {+  background-position: -216px -96px;+}+.icon-arrow-left {+  background-position: -240px -96px;+}+.icon-arrow-right {+  background-position: -264px -96px;+}+.icon-arrow-up {+  background-position: -289px -96px;+}+.icon-arrow-down {+  background-position: -312px -96px;+}+.icon-share-alt {+  background-position: -336px -96px;+}+.icon-resize-full {+  background-position: -360px -96px;+}+.icon-resize-small {+  background-position: -384px -96px;+}+.icon-plus {+  background-position: -408px -96px;+}+.icon-minus {+  background-position: -433px -96px;+}+.icon-asterisk {+  background-position: -456px -96px;+}+.icon-exclamation-sign {+  background-position: 0 -120px;+}+.icon-gift {+  background-position: -24px -120px;+}+.icon-leaf {+  background-position: -48px -120px;+}+.icon-fire {+  background-position: -72px -120px;+}+.icon-eye-open {+  background-position: -96px -120px;+}+.icon-eye-close {+  background-position: -120px -120px;+}+.icon-warning-sign {+  background-position: -144px -120px;+}+.icon-plane {+  background-position: -168px -120px;+}+.icon-calendar {+  background-position: -192px -120px;+}+.icon-random {+  background-position: -216px -120px;+}+.icon-comment {+  background-position: -240px -120px;+}+.icon-magnet {+  background-position: -264px -120px;+}+.icon-chevron-up {+  background-position: -288px -120px;+}+.icon-chevron-down {+  background-position: -313px -119px;+}+.icon-retweet {+  background-position: -336px -120px;+}+.icon-shopping-cart {+  background-position: -360px -120px;+}+.icon-folder-close {+  background-position: -384px -120px;+}+.icon-folder-open {+  background-position: -408px -120px;+}+.icon-resize-vertical {+  background-position: -432px -119px;+}+.icon-resize-horizontal {+  background-position: -456px -118px;+}+.dropdown {+  position: relative;+}+.dropdown-toggle {+  *margin-bottom: -3px;+}+.dropdown-toggle:active,+.open .dropdown-toggle {+  outline: 0;+}+.caret {+  display: inline-block;+  width: 0;+  height: 0;+  vertical-align: top;+  border-left: 4px solid transparent;+  border-right: 4px solid transparent;+  border-top: 4px solid #000000;+  opacity: 0.3;+  filter: alpha(opacity=30);+  content: "";+}+.dropdown .caret {+  margin-top: 8px;+  margin-left: 2px;+}+.dropdown:hover .caret,+.open.dropdown .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.dropdown-menu {+  position: absolute;+  top: 100%;+  left: 0;+  z-index: 1000;+  float: left;+  display: none;+  min-width: 160px;+  padding: 4px 0;+  margin: 0;+  list-style: none;+  background-color: #ffffff;+  border-color: #ccc;+  border-color: rgba(0, 0, 0, 0.2);+  border-style: solid;+  border-width: 1px;+  -webkit-border-radius: 0 0 5px 5px;+  -moz-border-radius: 0 0 5px 5px;+  border-radius: 0 0 5px 5px;+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding;+  background-clip: padding-box;+  *border-right-width: 2px;+  *border-bottom-width: 2px;+}+.dropdown-menu.pull-right {+  right: 0;+  left: auto;+}+.dropdown-menu .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.dropdown-menu a {+  display: block;+  padding: 3px 15px;+  clear: both;+  font-weight: normal;+  line-height: 18px;+  color: #333333;+  white-space: nowrap;+}+.dropdown-menu li > a:hover,+.dropdown-menu .active > a,+.dropdown-menu .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #0088cc;+}+.dropdown.open {+  *z-index: 1000;+}+.dropdown.open .dropdown-toggle {+  color: #ffffff;+  background: #ccc;+  background: rgba(0, 0, 0, 0.3);+}+.dropdown.open .dropdown-menu {+  display: block;+}+.pull-right .dropdown-menu {+  left: auto;+  right: 0;+}+.dropup .caret,+.navbar-fixed-bottom .dropdown .caret {+  border-top: 0;+  border-bottom: 4px solid #000000;+  content: "\2191";+}+.dropup .dropdown-menu,+.navbar-fixed-bottom .dropdown .dropdown-menu {+  top: auto;+  bottom: 100%;+  margin-bottom: 1px;+}+.typeahead {+  margin-top: 2px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.well {+  min-height: 20px;+  padding: 19px;+  margin-bottom: 20px;+  background-color: #f5f5f5;+  border: 1px solid #eee;+  border: 1px solid rgba(0, 0, 0, 0.05);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+}+.well blockquote {+  border-color: #ddd;+  border-color: rgba(0, 0, 0, 0.15);+}+.well-large {+  padding: 24px;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.well-small {+  padding: 9px;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.fade {+  -webkit-transition: opacity 0.15s linear;+  -moz-transition: opacity 0.15s linear;+  -ms-transition: opacity 0.15s linear;+  -o-transition: opacity 0.15s linear;+  transition: opacity 0.15s linear;+  opacity: 0;+}+.fade.in {+  opacity: 1;+}+.collapse {+  -webkit-transition: height 0.35s ease;+  -moz-transition: height 0.35s ease;+  -ms-transition: height 0.35s ease;+  -o-transition: height 0.35s ease;+  transition: height 0.35s ease;+  position: relative;+  overflow: hidden;+  height: 0;+}+.collapse.in {+  height: auto;+}+.close {+  float: right;+  font-size: 20px;+  font-weight: bold;+  line-height: 18px;+  color: #000000;+  text-shadow: 0 1px 0 #ffffff;+  opacity: 0.2;+  filter: alpha(opacity=20);+}+.close:hover {+  color: #000000;+  text-decoration: none;+  opacity: 0.4;+  filter: alpha(opacity=40);+  cursor: pointer;+}+.btn {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  padding: 4px 10px 4px;+  margin-bottom: 0;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  text-align: center;+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);+  vertical-align: middle;+  background-color: #f5f5f5;+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: linear-gradient(top, #ffffff, #e6e6e6);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  border: 1px solid #cccccc;+  border-bottom-color: #b3b3b3;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  cursor: pointer;+  *margin-left: .3em;+}+.btn:hover,+.btn:active,+.btn.active,+.btn.disabled,+.btn[disabled] {+  background-color: #e6e6e6;+}+.btn:active,+.btn.active {+  background-color: #cccccc \9;+}+.btn:first-child {+  *margin-left: 0;+}+.btn:hover {+  color: #333333;+  text-decoration: none;+  background-color: #e6e6e6;+  background-position: 0 -15px;+  -webkit-transition: background-position 0.1s linear;+  -moz-transition: background-position 0.1s linear;+  -ms-transition: background-position 0.1s linear;+  -o-transition: background-position 0.1s linear;+  transition: background-position 0.1s linear;+}+.btn:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.btn.active,+.btn:active {+  background-image: none;+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  background-color: #e6e6e6;+  background-color: #d9d9d9 \9;+  outline: 0;+}+.btn.disabled,+.btn[disabled] {+  cursor: default;+  background-image: none;+  background-color: #e6e6e6;+  opacity: 0.65;+  filter: alpha(opacity=65);+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+.btn-large {+  padding: 9px 14px;+  font-size: 15px;+  line-height: normal;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-large [class^="icon-"] {+  margin-top: 1px;+}+.btn-small {+  padding: 5px 9px;+  font-size: 11px;+  line-height: 16px;+}+.btn-small [class^="icon-"] {+  margin-top: -1px;+}+.btn-mini {+  padding: 2px 6px;+  font-size: 11px;+  line-height: 14px;+}+.btn-primary,+.btn-primary:hover,+.btn-warning,+.btn-warning:hover,+.btn-danger,+.btn-danger:hover,+.btn-success,+.btn-success:hover,+.btn-info,+.btn-info:hover,+.btn-inverse,+.btn-inverse:hover {+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  color: #ffffff;+}+.btn-primary.active,+.btn-warning.active,+.btn-danger.active,+.btn-success.active,+.btn-info.active,+.btn-inverse.active {+  color: rgba(255, 255, 255, 0.75);+}+.btn-primary {+  background-color: #0074cc;+  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);+  background-image: -ms-linear-gradient(top, #0088cc, #0055cc);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));+  background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);+  background-image: -o-linear-gradient(top, #0088cc, #0055cc);+  background-image: linear-gradient(top, #0088cc, #0055cc);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);+  border-color: #0055cc #0055cc #003580;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-primary:hover,+.btn-primary:active,+.btn-primary.active,+.btn-primary.disabled,+.btn-primary[disabled] {+  background-color: #0055cc;+}+.btn-primary:active,+.btn-primary.active {+  background-color: #004099 \9;+}+.btn-warning {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+  border-color: #f89406 #f89406 #ad6704;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-warning:hover,+.btn-warning:active,+.btn-warning.active,+.btn-warning.disabled,+.btn-warning[disabled] {+  background-color: #f89406;+}+.btn-warning:active,+.btn-warning.active {+  background-color: #c67605 \9;+}+.btn-danger {+  background-color: #da4f49;+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: linear-gradient(top, #ee5f5b, #bd362f);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);+  border-color: #bd362f #bd362f #802420;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-danger:hover,+.btn-danger:active,+.btn-danger.active,+.btn-danger.disabled,+.btn-danger[disabled] {+  background-color: #bd362f;+}+.btn-danger:active,+.btn-danger.active {+  background-color: #942a25 \9;+}+.btn-success {+  background-color: #5bb75b;+  background-image: -moz-linear-gradient(top, #62c462, #51a351);+  background-image: -ms-linear-gradient(top, #62c462, #51a351);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);+  background-image: -o-linear-gradient(top, #62c462, #51a351);+  background-image: linear-gradient(top, #62c462, #51a351);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);+  border-color: #51a351 #51a351 #387038;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-success:hover,+.btn-success:active,+.btn-success.active,+.btn-success.disabled,+.btn-success[disabled] {+  background-color: #51a351;+}+.btn-success:active,+.btn-success.active {+  background-color: #408140 \9;+}+.btn-info {+  background-color: #49afcd;+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: linear-gradient(top, #5bc0de, #2f96b4);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);+  border-color: #2f96b4 #2f96b4 #1f6377;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-info:hover,+.btn-info:active,+.btn-info.active,+.btn-info.disabled,+.btn-info[disabled] {+  background-color: #2f96b4;+}+.btn-info:active,+.btn-info.active {+  background-color: #24748c \9;+}+.btn-inverse {+  background-color: #414141;+  background-image: -moz-linear-gradient(top, #555555, #222222);+  background-image: -ms-linear-gradient(top, #555555, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));+  background-image: -webkit-linear-gradient(top, #555555, #222222);+  background-image: -o-linear-gradient(top, #555555, #222222);+  background-image: linear-gradient(top, #555555, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-inverse:hover,+.btn-inverse:active,+.btn-inverse.active,+.btn-inverse.disabled,+.btn-inverse[disabled] {+  background-color: #222222;+}+.btn-inverse:active,+.btn-inverse.active {+  background-color: #080808 \9;+}+button.btn,+input[type="submit"].btn {+  *padding-top: 2px;+  *padding-bottom: 2px;+}+button.btn::-moz-focus-inner,+input[type="submit"].btn::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button.btn.btn-large,+input[type="submit"].btn.btn-large {+  *padding-top: 7px;+  *padding-bottom: 7px;+}+button.btn.btn-small,+input[type="submit"].btn.btn-small {+  *padding-top: 3px;+  *padding-bottom: 3px;+}+button.btn.btn-mini,+input[type="submit"].btn.btn-mini {+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group {+  position: relative;+  *zoom: 1;+  *margin-left: .3em;+}+.btn-group:before,+.btn-group:after {+  display: table;+  content: "";+}+.btn-group:after {+  clear: both;+}+.btn-group:first-child {+  *margin-left: 0;+}+.btn-group + .btn-group {+  margin-left: 5px;+}+.btn-toolbar {+  margin-top: 9px;+  margin-bottom: 9px;+}+.btn-toolbar .btn-group {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+}+.btn-group .btn {+  position: relative;+  float: left;+  margin-left: -1px;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.btn-group .btn:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 4px;+  -moz-border-radius-topleft: 4px;+  border-top-left-radius: 4px;+  -webkit-border-bottom-left-radius: 4px;+  -moz-border-radius-bottomleft: 4px;+  border-bottom-left-radius: 4px;+}+.btn-group .btn:last-child,+.btn-group .dropdown-toggle {+  -webkit-border-top-right-radius: 4px;+  -moz-border-radius-topright: 4px;+  border-top-right-radius: 4px;+  -webkit-border-bottom-right-radius: 4px;+  -moz-border-radius-bottomright: 4px;+  border-bottom-right-radius: 4px;+}+.btn-group .btn.large:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 6px;+  -moz-border-radius-topleft: 6px;+  border-top-left-radius: 6px;+  -webkit-border-bottom-left-radius: 6px;+  -moz-border-radius-bottomleft: 6px;+  border-bottom-left-radius: 6px;+}+.btn-group .btn.large:last-child,+.btn-group .large.dropdown-toggle {+  -webkit-border-top-right-radius: 6px;+  -moz-border-radius-topright: 6px;+  border-top-right-radius: 6px;+  -webkit-border-bottom-right-radius: 6px;+  -moz-border-radius-bottomright: 6px;+  border-bottom-right-radius: 6px;+}+.btn-group .btn:hover,+.btn-group .btn:focus,+.btn-group .btn:active,+.btn-group .btn.active {+  z-index: 2;+}+.btn-group .dropdown-toggle:active,+.btn-group.open .dropdown-toggle {+  outline: 0;+}+.btn-group .dropdown-toggle {+  padding-left: 8px;+  padding-right: 8px;+  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  *padding-top: 3px;+  *padding-bottom: 3px;+}+.btn-group .btn-mini.dropdown-toggle {+  padding-left: 5px;+  padding-right: 5px;+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group .btn-small.dropdown-toggle {+  *padding-top: 4px;+  *padding-bottom: 4px;+}+.btn-group .btn-large.dropdown-toggle {+  padding-left: 12px;+  padding-right: 12px;+}+.btn-group.open {+  *z-index: 1000;+}+.btn-group.open .dropdown-menu {+  display: block;+  margin-top: 1px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-group.open .dropdown-toggle {+  background-image: none;+  -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+}+.btn .caret {+  margin-top: 7px;+  margin-left: 0;+}+.btn:hover .caret,+.open.btn-group .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.btn-mini .caret {+  margin-top: 5px;+}+.btn-small .caret {+  margin-top: 6px;+}+.btn-large .caret {+  margin-top: 6px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.btn-primary .caret,+.btn-warning .caret,+.btn-danger .caret,+.btn-info .caret,+.btn-success .caret,+.btn-inverse .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 0.75;+  filter: alpha(opacity=75);+}+.alert {+  padding: 8px 35px 8px 14px;+  margin-bottom: 18px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  background-color: #fcf8e3;+  border: 1px solid #fbeed5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  color: #c09853;+}+.alert-heading {+  color: inherit;+}+.alert .close {+  position: relative;+  top: -2px;+  right: -21px;+  line-height: 18px;+}+.alert-success {+  background-color: #dff0d8;+  border-color: #d6e9c6;+  color: #468847;+}+.alert-danger,+.alert-error {+  background-color: #f2dede;+  border-color: #eed3d7;+  color: #b94a48;+}+.alert-info {+  background-color: #d9edf7;+  border-color: #bce8f1;+  color: #3a87ad;+}+.alert-block {+  padding-top: 14px;+  padding-bottom: 14px;+}+.alert-block > p,+.alert-block > ul {+  margin-bottom: 0;+}+.alert-block p + p {+  margin-top: 5px;+}+.nav {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+}+.nav > li > a {+  display: block;+}+.nav > li > a:hover {+  text-decoration: none;+  background-color: #eeeeee;+}+.nav .nav-header {+  display: block;+  padding: 3px 15px;+  font-size: 11px;+  font-weight: bold;+  line-height: 18px;+  color: #999999;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  text-transform: uppercase;+}+.nav li + .nav-header {+  margin-top: 9px;+}+.nav-list {+  padding-left: 15px;+  padding-right: 15px;+  margin-bottom: 0;+}+.nav-list > li > a,+.nav-list .nav-header {+  margin-left: -15px;+  margin-right: -15px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+}+.nav-list > li > a {+  padding: 3px 15px;+}+.nav-list > .active > a,+.nav-list > .active > a:hover {+  color: #ffffff;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);+  background-color: #0088cc;+}+.nav-list [class^="icon-"] {+  margin-right: 2px;+}+.nav-list .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.nav-tabs,+.nav-pills {+  *zoom: 1;+}+.nav-tabs:before,+.nav-pills:before,+.nav-tabs:after,+.nav-pills:after {+  display: table;+  content: "";+}+.nav-tabs:after,+.nav-pills:after {+  clear: both;+}+.nav-tabs > li,+.nav-pills > li {+  float: left;+}+.nav-tabs > li > a,+.nav-pills > li > a {+  padding-right: 12px;+  padding-left: 12px;+  margin-right: 2px;+  line-height: 14px;+}+.nav-tabs {+  border-bottom: 1px solid #ddd;+}+.nav-tabs > li {+  margin-bottom: -1px;+}+.nav-tabs > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  line-height: 18px;+  border: 1px solid transparent;+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #dddddd;+}+.nav-tabs > .active > a,+.nav-tabs > .active > a:hover {+  color: #555555;+  background-color: #ffffff;+  border: 1px solid #ddd;+  border-bottom-color: transparent;+  cursor: default;+}+.nav-pills > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  margin-top: 2px;+  margin-bottom: 2px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.nav-pills > .active > a,+.nav-pills > .active > a:hover {+  color: #ffffff;+  background-color: #0088cc;+}+.nav-stacked > li {+  float: none;+}+.nav-stacked > li > a {+  margin-right: 0;+}+.nav-tabs.nav-stacked {+  border-bottom: 0;+}+.nav-tabs.nav-stacked > li > a {+  border: 1px solid #ddd;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.nav-tabs.nav-stacked > li:first-child > a {+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs.nav-stacked > li:last-child > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.nav-tabs.nav-stacked > li > a:hover {+  border-color: #ddd;+  z-index: 2;+}+.nav-pills.nav-stacked > li > a {+  margin-bottom: 3px;+}+.nav-pills.nav-stacked > li:last-child > a {+  margin-bottom: 1px;+}+.nav-tabs .dropdown-menu,+.nav-pills .dropdown-menu {+  margin-top: 1px;+  border-width: 1px;+}+.nav-pills .dropdown-menu {+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.nav-tabs .dropdown-toggle .caret,+.nav-pills .dropdown-toggle .caret {+  border-top-color: #0088cc;+  border-bottom-color: #0088cc;+  margin-top: 6px;+}+.nav-tabs .dropdown-toggle:hover .caret,+.nav-pills .dropdown-toggle:hover .caret {+  border-top-color: #005580;+  border-bottom-color: #005580;+}+.nav-tabs .active .dropdown-toggle .caret,+.nav-pills .active .dropdown-toggle .caret {+  border-top-color: #333333;+  border-bottom-color: #333333;+}+.nav > .dropdown.active > a:hover {+  color: #000000;+  cursor: pointer;+}+.nav-tabs .open .dropdown-toggle,+.nav-pills .open .dropdown-toggle,+.nav > .open.active > a:hover {+  color: #ffffff;+  background-color: #999999;+  border-color: #999999;+}+.nav .open .caret,+.nav .open.active .caret,+.nav .open a:hover .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 1;+  filter: alpha(opacity=100);+}+.tabs-stacked .open > a:hover {+  border-color: #999999;+}+.tabbable {+  *zoom: 1;+}+.tabbable:before,+.tabbable:after {+  display: table;+  content: "";+}+.tabbable:after {+  clear: both;+}+.tab-content {+  display: table;+  width: 100%;+}+.tabs-below .nav-tabs,+.tabs-right .nav-tabs,+.tabs-left .nav-tabs {+  border-bottom: 0;+}+.tab-content > .tab-pane,+.pill-content > .pill-pane {+  display: none;+}+.tab-content > .active,+.pill-content > .active {+  display: block;+}+.tabs-below .nav-tabs {+  border-top: 1px solid #ddd;+}+.tabs-below .nav-tabs > li {+  margin-top: -1px;+  margin-bottom: 0;+}+.tabs-below .nav-tabs > li > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.tabs-below .nav-tabs > li > a:hover {+  border-bottom-color: transparent;+  border-top-color: #ddd;+}+.tabs-below .nav-tabs .active > a,+.tabs-below .nav-tabs .active > a:hover {+  border-color: transparent #ddd #ddd #ddd;+}+.tabs-left .nav-tabs > li,+.tabs-right .nav-tabs > li {+  float: none;+}+.tabs-left .nav-tabs > li > a,+.tabs-right .nav-tabs > li > a {+  min-width: 74px;+  margin-right: 0;+  margin-bottom: 3px;+}+.tabs-left .nav-tabs {+  float: left;+  margin-right: 19px;+  border-right: 1px solid #ddd;+}+.tabs-left .nav-tabs > li > a {+  margin-right: -1px;+  -webkit-border-radius: 4px 0 0 4px;+  -moz-border-radius: 4px 0 0 4px;+  border-radius: 4px 0 0 4px;+}+.tabs-left .nav-tabs > li > a:hover {+  border-color: #eeeeee #dddddd #eeeeee #eeeeee;+}+.tabs-left .nav-tabs .active > a,+.tabs-left .nav-tabs .active > a:hover {+  border-color: #ddd transparent #ddd #ddd;+  *border-right-color: #ffffff;+}+.tabs-right .nav-tabs {+  float: right;+  margin-left: 19px;+  border-left: 1px solid #ddd;+}+.tabs-right .nav-tabs > li > a {+  margin-left: -1px;+  -webkit-border-radius: 0 4px 4px 0;+  -moz-border-radius: 0 4px 4px 0;+  border-radius: 0 4px 4px 0;+}+.tabs-right .nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #eeeeee #dddddd;+}+.tabs-right .nav-tabs .active > a,+.tabs-right .nav-tabs .active > a:hover {+  border-color: #ddd #ddd #ddd transparent;+  *border-left-color: #ffffff;+}+.navbar {+  *position: relative;+  *z-index: 2;+  overflow: visible;+  margin-bottom: 18px;+}+.navbar-inner {+  padding-left: 20px;+  padding-right: 20px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+}+.navbar .container {+  width: auto;+}+.btn-navbar {+  display: none;+  float: right;+  padding: 7px 10px;+  margin-left: 5px;+  margin-right: 5px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+}+.btn-navbar:hover,+.btn-navbar:active,+.btn-navbar.active,+.btn-navbar.disabled,+.btn-navbar[disabled] {+  background-color: #222222;+}+.btn-navbar:active,+.btn-navbar.active {+  background-color: #080808 \9;+}+.btn-navbar .icon-bar {+  display: block;+  width: 18px;+  height: 2px;+  background-color: #f5f5f5;+  -webkit-border-radius: 1px;+  -moz-border-radius: 1px;+  border-radius: 1px;+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+}+.btn-navbar .icon-bar + .icon-bar {+  margin-top: 3px;+}+.nav-collapse.collapse {+  height: auto;+}+.navbar {+  color: #999999;+}+.navbar .brand:hover {+  text-decoration: none;+}+.navbar .brand {+  float: left;+  display: block;+  padding: 8px 20px 12px;+  margin-left: -20px;+  font-size: 20px;+  font-weight: 200;+  line-height: 1;+  color: #ffffff;+}+.navbar .navbar-text {+  margin-bottom: 0;+  line-height: 40px;+}+.navbar .btn,+.navbar .btn-group {+  margin-top: 5px;+}+.navbar .btn-group .btn {+  margin-top: 0;+}+.navbar-form {+  margin-bottom: 0;+  *zoom: 1;+}+.navbar-form:before,+.navbar-form:after {+  display: table;+  content: "";+}+.navbar-form:after {+  clear: both;+}+.navbar-form input,+.navbar-form select,+.navbar-form .radio,+.navbar-form .checkbox {+  margin-top: 5px;+}+.navbar-form input,+.navbar-form select {+  display: inline-block;+  margin-bottom: 0;+}+.navbar-form input[type="image"],+.navbar-form input[type="checkbox"],+.navbar-form input[type="radio"] {+  margin-top: 3px;+}+.navbar-form .input-append,+.navbar-form .input-prepend {+  margin-top: 6px;+  white-space: nowrap;+}+.navbar-form .input-append input,+.navbar-form .input-prepend input {+  margin-top: 0;+}+.navbar-search {+  position: relative;+  float: left;+  margin-top: 6px;+  margin-bottom: 0;+}+.navbar-search .search-query {+  padding: 4px 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  font-weight: normal;+  line-height: 1;+  color: #ffffff;+  background-color: #626262;+  border: 1px solid #151515;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -webkit-transition: none;+  -moz-transition: none;+  -ms-transition: none;+  -o-transition: none;+  transition: none;+}+.navbar-search .search-query:-moz-placeholder {+  color: #cccccc;+}+.navbar-search .search-query::-webkit-input-placeholder {+  color: #cccccc;+}+.navbar-search .search-query:focus,+.navbar-search .search-query.focused {+  padding: 5px 10px;+  color: #333333;+  text-shadow: 0 1px 0 #ffffff;+  background-color: #ffffff;+  border: 0;+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  outline: 0;+}+.navbar-fixed-top,+.navbar-fixed-bottom {+  position: fixed;+  right: 0;+  left: 0;+  z-index: 1030;+  margin-bottom: 0;+}+.navbar-fixed-top .navbar-inner,+.navbar-fixed-bottom .navbar-inner {+  padding-left: 0;+  padding-right: 0;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.navbar-fixed-top {+  top: 0;+}+.navbar-fixed-bottom {+  bottom: 0;+}+.navbar .nav {+  position: relative;+  left: 0;+  display: block;+  float: left;+  margin: 0 10px 0 0;+}+.navbar .nav.pull-right {+  float: right;+}+.navbar .nav > li {+  display: block;+  float: left;+}+.navbar .nav > li > a {+  float: none;+  padding: 10px 10px 11px;+  line-height: 19px;+  color: #999999;+  text-decoration: none;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+}+.navbar .nav > li > a:hover {+  background-color: transparent;+  color: #ffffff;+  text-decoration: none;+}+.navbar .nav .active > a,+.navbar .nav .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #222222;+}+.navbar .divider-vertical {+  height: 40px;+  width: 1px;+  margin: 0 9px;+  overflow: hidden;+  background-color: #222222;+  border-right: 1px solid #333333;+}+.navbar .nav.pull-right {+  margin-left: 10px;+  margin-right: 0;+}+.navbar .dropdown-menu {+  margin-top: 1px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.navbar .dropdown-menu:before {+  content: '';+  display: inline-block;+  border-left: 7px solid transparent;+  border-right: 7px solid transparent;+  border-bottom: 7px solid #ccc;+  border-bottom-color: rgba(0, 0, 0, 0.2);+  position: absolute;+  top: -7px;+  left: 9px;+}+.navbar .dropdown-menu:after {+  content: '';+  display: inline-block;+  border-left: 6px solid transparent;+  border-right: 6px solid transparent;+  border-bottom: 6px solid #ffffff;+  position: absolute;+  top: -6px;+  left: 10px;+}+.navbar-fixed-bottom .dropdown-menu:before {+  border-top: 7px solid #ccc;+  border-top-color: rgba(0, 0, 0, 0.2);+  border-bottom: 0;+  bottom: -7px;+  top: auto;+}+.navbar-fixed-bottom .dropdown-menu:after {+  border-top: 6px solid #ffffff;+  border-bottom: 0;+  bottom: -6px;+  top: auto;+}+.navbar .nav .dropdown-toggle .caret,+.navbar .nav .open.dropdown .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+}+.navbar .nav .active .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.navbar .nav .open > .dropdown-toggle,+.navbar .nav .active > .dropdown-toggle,+.navbar .nav .open.active > .dropdown-toggle {+  background-color: transparent;+}+.navbar .nav .active > .dropdown-toggle:hover {+  color: #ffffff;+}+.navbar .nav.pull-right .dropdown-menu,+.navbar .nav .dropdown-menu.pull-right {+  left: auto;+  right: 0;+}+.navbar .nav.pull-right .dropdown-menu:before,+.navbar .nav .dropdown-menu.pull-right:before {+  left: auto;+  right: 12px;+}+.navbar .nav.pull-right .dropdown-menu:after,+.navbar .nav .dropdown-menu.pull-right:after {+  left: auto;+  right: 13px;+}+.breadcrumb {+  padding: 7px 14px;+  margin: 0 0 18px;+  list-style: none;+  background-color: #fbfbfb;+  background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));+  background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: linear-gradient(top, #ffffff, #f5f5f5);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);+  border: 1px solid #ddd;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+}+.breadcrumb li {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  text-shadow: 0 1px 0 #ffffff;+}+.breadcrumb .divider {+  padding: 0 5px;+  color: #999999;+}+.breadcrumb .active a {+  color: #333333;+}+.pagination {+  height: 36px;+  margin: 18px 0;+}+.pagination ul {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  margin-left: 0;+  margin-bottom: 0;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+}+.pagination li {+  display: inline;+}+.pagination a {+  float: left;+  padding: 0 14px;+  line-height: 34px;+  text-decoration: none;+  border: 1px solid #ddd;+  border-left-width: 0;+}+.pagination a:hover,+.pagination .active a {+  background-color: #f5f5f5;+}+.pagination .active a {+  color: #999999;+  cursor: default;+}+.pagination .disabled span,+.pagination .disabled a,+.pagination .disabled a:hover {+  color: #999999;+  background-color: transparent;+  cursor: default;+}+.pagination li:first-child a {+  border-left-width: 1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.pagination li:last-child a {+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.pagination-centered {+  text-align: center;+}+.pagination-right {+  text-align: right;+}+.pager {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+  text-align: center;+  *zoom: 1;+}+.pager:before,+.pager:after {+  display: table;+  content: "";+}+.pager:after {+  clear: both;+}+.pager li {+  display: inline;+}+.pager a {+  display: inline-block;+  padding: 5px 14px;+  background-color: #fff;+  border: 1px solid #ddd;+  -webkit-border-radius: 15px;+  -moz-border-radius: 15px;+  border-radius: 15px;+}+.pager a:hover {+  text-decoration: none;+  background-color: #f5f5f5;+}+.pager .next a {+  float: right;+}+.pager .previous a {+  float: left;+}+.pager .disabled a,+.pager .disabled a:hover {+  color: #999999;+  background-color: #fff;+  cursor: default;+}+.modal-open .dropdown-menu {+  z-index: 2050;+}+.modal-open .dropdown.open {+  *z-index: 2050;+}+.modal-open .popover {+  z-index: 2060;+}+.modal-open .tooltip {+  z-index: 2070;+}+.modal-backdrop {+  position: fixed;+  top: 0;+  right: 0;+  bottom: 0;+  left: 0;+  z-index: 1040;+  background-color: #000000;+}+.modal-backdrop.fade {+  opacity: 0;+}+.modal-backdrop,+.modal-backdrop.fade.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.modal {+  position: fixed;+  top: 50%;+  left: 50%;+  z-index: 1050;+  overflow: auto;+  width: 560px;+  margin: -250px 0 0 -280px;+  background-color: #ffffff;+  border: 1px solid #999;+  border: 1px solid rgba(0, 0, 0, 0.3);+  *border: 1px solid #999;+  /* IE6-7 */++  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.modal.fade {+  -webkit-transition: opacity .3s linear, top .3s ease-out;+  -moz-transition: opacity .3s linear, top .3s ease-out;+  -ms-transition: opacity .3s linear, top .3s ease-out;+  -o-transition: opacity .3s linear, top .3s ease-out;+  transition: opacity .3s linear, top .3s ease-out;+  top: -25%;+}+.modal.fade.in {+  top: 50%;+}+.modal-header {+  padding: 9px 15px;+  border-bottom: 1px solid #eee;+}+.modal-header .close {+  margin-top: 2px;+}+.modal-body {+  overflow-y: auto;+  max-height: 400px;+  padding: 15px;+}+.modal-form {+  margin-bottom: 0;+}+.modal-footer {+  padding: 14px 15px 15px;+  margin-bottom: 0;+  text-align: right;+  background-color: #f5f5f5;+  border-top: 1px solid #ddd;+  -webkit-border-radius: 0 0 6px 6px;+  -moz-border-radius: 0 0 6px 6px;+  border-radius: 0 0 6px 6px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+  *zoom: 1;+}+.modal-footer:before,+.modal-footer:after {+  display: table;+  content: "";+}+.modal-footer:after {+  clear: both;+}+.modal-footer .btn + .btn {+  margin-left: 5px;+  margin-bottom: 0;+}+.modal-footer .btn-group .btn + .btn {+  margin-left: -1px;+}+.tooltip {+  position: absolute;+  z-index: 1020;+  display: block;+  visibility: visible;+  padding: 5px;+  font-size: 11px;+  opacity: 0;+  filter: alpha(opacity=0);+}+.tooltip.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.tooltip.top {+  margin-top: -2px;+}+.tooltip.right {+  margin-left: 2px;+}+.tooltip.bottom {+  margin-top: 2px;+}+.tooltip.left {+  margin-left: -2px;+}+.tooltip.top .tooltip-arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.tooltip.left .tooltip-arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.tooltip.bottom .tooltip-arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.tooltip.right .tooltip-arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.tooltip-inner {+  max-width: 200px;+  padding: 3px 8px;+  color: #ffffff;+  text-align: center;+  text-decoration: none;+  background-color: #000000;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.tooltip-arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover {+  position: absolute;+  top: 0;+  left: 0;+  z-index: 1010;+  display: none;+  padding: 5px;+}+.popover.top {+  margin-top: -5px;+}+.popover.right {+  margin-left: 5px;+}+.popover.bottom {+  margin-top: 5px;+}+.popover.left {+  margin-left: -5px;+}+.popover.top .arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.popover.right .arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.popover.bottom .arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.popover.left .arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.popover .arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover-inner {+  padding: 3px;+  width: 280px;+  overflow: hidden;+  background: #000000;+  background: rgba(0, 0, 0, 0.8);+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+}+.popover-title {+  padding: 9px 15px;+  line-height: 1;+  background-color: #f5f5f5;+  border-bottom: 1px solid #eee;+  -webkit-border-radius: 3px 3px 0 0;+  -moz-border-radius: 3px 3px 0 0;+  border-radius: 3px 3px 0 0;+}+.popover-content {+  padding: 14px;+  background-color: #ffffff;+  -webkit-border-radius: 0 0 3px 3px;+  -moz-border-radius: 0 0 3px 3px;+  border-radius: 0 0 3px 3px;+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.popover-content p,+.popover-content ul,+.popover-content ol {+  margin-bottom: 0;+}+.thumbnails {+  margin-left: -20px;+  list-style: none;+  *zoom: 1;+}+.thumbnails:before,+.thumbnails:after {+  display: table;+  content: "";+}+.thumbnails:after {+  clear: both;+}+.thumbnails > li {+  float: left;+  margin: 0 0 18px 20px;+}+.thumbnail {+  display: block;+  padding: 4px;+  line-height: 1;+  border: 1px solid #ddd;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+}+a.thumbnail:hover {+  border-color: #0088cc;+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+}+.thumbnail > img {+  display: block;+  max-width: 100%;+  margin-left: auto;+  margin-right: auto;+}+.thumbnail .caption {+  padding: 9px;+}+.label {+  padding: 1px 4px 2px;+  font-size: 10.998px;+  font-weight: bold;+  line-height: 13px;+  color: #ffffff;+  vertical-align: middle;+  white-space: nowrap;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #999999;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.label:hover {+  color: #ffffff;+  text-decoration: none;+}+.label-important {+  background-color: #b94a48;+}+.label-important:hover {+  background-color: #953b39;+}+.label-warning {+  background-color: #f89406;+}+.label-warning:hover {+  background-color: #c67605;+}+.label-success {+  background-color: #468847;+}+.label-success:hover {+  background-color: #356635;+}+.label-info {+  background-color: #3a87ad;+}+.label-info:hover {+  background-color: #2d6987;+}+.label-inverse {+  background-color: #333333;+}+.label-inverse:hover {+  background-color: #1a1a1a;+}+.badge {+  padding: 1px 9px 2px;+  font-size: 12.025px;+  font-weight: bold;+  white-space: nowrap;+  color: #ffffff;+  background-color: #999999;+  -webkit-border-radius: 9px;+  -moz-border-radius: 9px;+  border-radius: 9px;+}+.badge:hover {+  color: #ffffff;+  text-decoration: none;+  cursor: pointer;+}+.badge-error {+  background-color: #b94a48;+}+.badge-error:hover {+  background-color: #953b39;+}+.badge-warning {+  background-color: #f89406;+}+.badge-warning:hover {+  background-color: #c67605;+}+.badge-success {+  background-color: #468847;+}+.badge-success:hover {+  background-color: #356635;+}+.badge-info {+  background-color: #3a87ad;+}+.badge-info:hover {+  background-color: #2d6987;+}+.badge-inverse {+  background-color: #333333;+}+.badge-inverse:hover {+  background-color: #1a1a1a;+}+@-webkit-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-moz-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-ms-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+.progress {+  overflow: hidden;+  height: 18px;+  margin-bottom: 18px;+  background-color: #f7f7f7;+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.progress .bar {+  width: 0%;+  height: 18px;+  color: #ffffff;+  font-size: 12px;+  text-align: center;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #0e90d2;+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);+  background-image: -ms-linear-gradient(top, #149bdf, #0480be);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);+  background-image: -o-linear-gradient(top, #149bdf, #0480be);+  background-image: linear-gradient(top, #149bdf, #0480be);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+  -webkit-transition: width 0.6s ease;+  -moz-transition: width 0.6s ease;+  -ms-transition: width 0.6s ease;+  -o-transition: width 0.6s ease;+  transition: width 0.6s ease;+}+.progress-striped .bar {+  background-color: #149bdf;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  -webkit-background-size: 40px 40px;+  -moz-background-size: 40px 40px;+  -o-background-size: 40px 40px;+  background-size: 40px 40px;+}+.progress.active .bar {+  -webkit-animation: progress-bar-stripes 2s linear infinite;+  -moz-animation: progress-bar-stripes 2s linear infinite;+  animation: progress-bar-stripes 2s linear infinite;+}+.progress-danger .bar {+  background-color: #dd514c;+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: linear-gradient(top, #ee5f5b, #c43c35);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);+}+.progress-danger.progress-striped .bar {+  background-color: #ee5f5b;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-success .bar {+  background-color: #5eb95e;+  background-image: -moz-linear-gradient(top, #62c462, #57a957);+  background-image: -ms-linear-gradient(top, #62c462, #57a957);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);+  background-image: -o-linear-gradient(top, #62c462, #57a957);+  background-image: linear-gradient(top, #62c462, #57a957);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);+}+.progress-success.progress-striped .bar {+  background-color: #62c462;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-info .bar {+  background-color: #4bb1cf;+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);+  background-image: linear-gradient(top, #5bc0de, #339bb9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);+}+.progress-info.progress-striped .bar {+  background-color: #5bc0de;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-warning .bar {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+}+.progress-warning.progress-striped .bar {+  background-color: #fbb450;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.accordion {+  margin-bottom: 18px;+}+.accordion-group {+  margin-bottom: 2px;+  border: 1px solid #e5e5e5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.accordion-heading {+  border-bottom: 0;+}+.accordion-heading .accordion-toggle {+  display: block;+  padding: 8px 15px;+}+.accordion-inner {+  padding: 9px 15px;+  border-top: 1px solid #e5e5e5;+}+.carousel {+  position: relative;+  margin-bottom: 18px;+  line-height: 1;+}+.carousel-inner {+  overflow: hidden;+  width: 100%;+  position: relative;+}+.carousel .item {+  display: none;+  position: relative;+  -webkit-transition: 0.6s ease-in-out left;+  -moz-transition: 0.6s ease-in-out left;+  -ms-transition: 0.6s ease-in-out left;+  -o-transition: 0.6s ease-in-out left;+  transition: 0.6s ease-in-out left;+}+.carousel .item > img {+  display: block;+  line-height: 1;+}+.carousel .active,+.carousel .next,+.carousel .prev {+  display: block;+}+.carousel .active {+  left: 0;+}+.carousel .next,+.carousel .prev {+  position: absolute;+  top: 0;+  width: 100%;+}+.carousel .next {+  left: 100%;+}+.carousel .prev {+  left: -100%;+}+.carousel .next.left,+.carousel .prev.right {+  left: 0;+}+.carousel .active.left {+  left: -100%;+}+.carousel .active.right {+  left: 100%;+}+.carousel-control {+  position: absolute;+  top: 40%;+  left: 15px;+  width: 40px;+  height: 40px;+  margin-top: -20px;+  font-size: 60px;+  font-weight: 100;+  line-height: 30px;+  color: #ffffff;+  text-align: center;+  background: #222222;+  border: 3px solid #ffffff;+  -webkit-border-radius: 23px;+  -moz-border-radius: 23px;+  border-radius: 23px;+  opacity: 0.5;+  filter: alpha(opacity=50);+}+.carousel-control.right {+  left: auto;+  right: 15px;+}+.carousel-control:hover {+  color: #ffffff;+  text-decoration: none;+  opacity: 0.9;+  filter: alpha(opacity=90);+}+.carousel-caption {+  position: absolute;+  left: 0;+  right: 0;+  bottom: 0;+  padding: 10px 15px 5px;+  background: #333333;+  background: rgba(0, 0, 0, 0.75);+}+.carousel-caption h4,+.carousel-caption p {+  color: #ffffff;+}+.hero-unit {+  padding: 60px;+  margin-bottom: 30px;+  background-color: #eeeeee;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.hero-unit h1 {+  margin-bottom: 0;+  font-size: 60px;+  line-height: 1;+  color: inherit;+  letter-spacing: -1px;+}+.hero-unit p {+  font-size: 18px;+  font-weight: 200;+  line-height: 27px;+  color: inherit;+}+.pull-right {+  float: right;+}+.pull-left {+  float: left;+}+.hide {+  display: none;+}+.show {+  display: block;+}+.invisible {+  visibility: hidden;+}++{-# START_FILE static/css/normalize.css #-}+/*! normalize.css 2011-08-12T17:28 UTC · http://github.com/necolas/normalize.css */++/* =============================================================================+   HTML5 display definitions+   ========================================================================== */++/*+ * Corrects block display not defined in IE6/7/8/9 & FF3+ */++article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+    display: block;+}++/*+ * Corrects inline-block display not defined in IE6/7/8/9 & FF3+ */++audio,+canvas,+video {+    display: inline-block;+    *display: inline;+    *zoom: 1;+}++/*+ * Prevents modern browsers from displaying 'audio' without controls+ */++audio:not([controls]) {+    display: none;+}++/*+ * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4+ * Known issue: no IE6 support+ */++[hidden] {+    display: none;+}+++/* =============================================================================+   Base+   ========================================================================== */++/*+ * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units+ *    http://clagnut.com/blog/348/#c790+ * 2. Keeps page centred in all browsers regardless of content height+ * 3. Prevents iOS text size adjust after orientation change, without disabling user zoom+ *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/+ */++html {+    font-size: 100%; /* 1 */+    overflow-y: scroll; /* 2 */+    -webkit-text-size-adjust: 100%; /* 3 */+    -ms-text-size-adjust: 100%; /* 3 */+}++/*+ * Addresses margins handled incorrectly in IE6/7+ */++body {+    margin: 0;+}++/* + * Addresses font-family inconsistency between 'textarea' and other form elements.+ */++body,+button,+input,+select,+textarea {+    font-family: sans-serif;+}+++/* =============================================================================+   Links+   ========================================================================== */++a {+    color: #00e;+}++a:visited {+    color: #551a8b;+}++/*+ * Addresses outline displayed oddly in Chrome+ */++a:focus {+    outline: thin dotted;+}++/*+ * Improves readability when focused and also mouse hovered in all browsers+ * people.opera.com/patrickl/experiments/keyboard/test+ */++a:hover,+a:active {+    outline: 0;+}+++/* =============================================================================+   Typography+   ========================================================================== */++/*+ * Addresses styling not present in IE7/8/9, S5, Chrome+ */++abbr[title] {+    border-bottom: 1px dotted;+}++/*+ * Addresses style set to 'bolder' in FF3/4, S4/5, Chrome+*/++b, +strong { +    font-weight: bold; +}++blockquote {+    margin: 1em 40px;+}++/*+ * Addresses styling not present in S5, Chrome+ */++dfn {+    font-style: italic;+}++/*+ * Addresses styling not present in IE6/7/8/9+ */++mark {+    background: #ff0;+    color: #000;+}++/*+ * Corrects font family set oddly in IE6, S4/5, Chrome+ * en.wikipedia.org/wiki/User:Davidgothberg/Test59+ */++pre,+code,+kbd,+samp {+    font-family: monospace, serif;+    _font-family: 'courier new', monospace;+    font-size: 1em;+}++/*+ * Improves readability of pre-formatted text in all browsers+ */++pre {+    white-space: pre;+    white-space: pre-wrap;+    word-wrap: break-word;+}++/*+ * 1. Addresses CSS quotes not supported in IE6/7+ * 2. Addresses quote property not supported in S4+ */++/* 1 */++q {+    quotes: none;+}++/* 2 */++q:before,+q:after {+    content: '';+    content: none;+}++small {+    font-size: 75%;+}++/*+ * Prevents sub and sup affecting line-height in all browsers+ * gist.github.com/413930+ */++sub,+sup {+    font-size: 75%;+    line-height: 0;+    position: relative;+    vertical-align: baseline;+}++sup {+    top: -0.5em;+}++sub {+    bottom: -0.25em;+}+++/* =============================================================================+   Lists+   ========================================================================== */++ul,+ol {+    margin: 1em 0;+    padding: 0 0 0 40px;+}++dd {+    margin: 0 0 0 40px;+}++nav ul,+nav ol {+    list-style: none;+    list-style-image: none;+}+++/* =============================================================================+   Embedded content+   ========================================================================== */++/*+ * 1. Removes border when inside 'a' element in IE6/7/8/9+ * 2. Improves image quality when scaled in IE7+ *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/+ */++img {+    border: 0; /* 1 */+    -ms-interpolation-mode: bicubic; /* 2 */+}++/*+ * Corrects overflow displayed oddly in IE9 + */++svg:not(:root) {+    overflow: hidden;+}+++/* =============================================================================+   Figures+   ========================================================================== */++/*+ * Addresses margin not present in IE6/7/8/9, S5, O11+ */++figure {+    margin: 0;+}+++/* =============================================================================+   Forms+   ========================================================================== */++/*+ * Corrects margin displayed oddly in IE6/7+ */++form {+    margin: 0;+}++/*+ * Define consistent margin and padding+ */++fieldset {+    margin: 0 2px;+    padding: 0.35em 0.625em 0.75em;+}++/*+ * 1. Corrects color not being inherited in IE6/7/8/9+ * 2. Corrects alignment displayed oddly in IE6/7+ */++legend {+    border: 0; /* 1 */+    *margin-left: -7px; /* 2 */+}++/*+ * 1. Corrects font size not being inherited in all browsers+ * 2. Addresses margins set differently in IE6/7, F3/4, S5, Chrome+ * 3. Improves appearance and consistency in all browsers+ */++button,+input,+select,+textarea {+    font-size: 100%; /* 1 */+    margin: 0; /* 2 */+    vertical-align: baseline; /* 3 */+    *vertical-align: middle; /* 3 */+}++/*+ * 1. Addresses FF3/4 setting line-height using !important in the UA stylesheet+ * 2. Corrects inner spacing displayed oddly in IE6/7+ */++button,+input {+    line-height: normal; /* 1 */+    *overflow: visible;  /* 2 */+}++/*+ * Corrects overlap and whitespace issue for buttons and inputs in IE6/7+ * Known issue: reintroduces inner spacing+ */++table button,+table input {+    *overflow: auto;+}++/*+ * 1. Improves usability and consistency of cursor style between image-type 'input' and others+ * 2. Corrects inability to style clickable 'input' types in iOS+ */++button,+html input[type="button"], +input[type="reset"], +input[type="submit"] {+    cursor: pointer; /* 1 */+    -webkit-appearance: button; /* 2 */+}++/*+ * 1. Addresses box sizing set to content-box in IE8/9+ * 2. Addresses excess padding in IE8/9+ */++input[type="checkbox"],+input[type="radio"] {+    box-sizing: border-box; /* 1 */+    padding: 0; /* 2 */+}++/*+ * 1. Addresses appearance set to searchfield in S5, Chrome+ * 2. Addresses box sizing set to border-box in S5, Chrome (include -moz to future-proof)+ */++input[type="search"] {+    -webkit-appearance: textfield; /* 1 */+    -moz-box-sizing: content-box;+    -webkit-box-sizing: content-box; /* 2 */+    box-sizing: content-box;+}++/*+ * Corrects inner padding displayed oddly in S5, Chrome on OSX+ */++input[type="search"]::-webkit-search-decoration {+    -webkit-appearance: none;+}++/*+ * Corrects inner padding and border displayed oddly in FF3/4+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/+ */++button::-moz-focus-inner,+input::-moz-focus-inner {+    border: 0;+    padding: 0;+}++/*+ * 1. Removes default vertical scrollbar in IE6/7/8/9+ * 2. Improves readability and alignment in all browsers+ */++textarea {+    overflow: auto; /* 1 */+    vertical-align: top; /* 2 */+}+++/* =============================================================================+   Tables+   ========================================================================== */++/* + * Remove most spacing between table cells+ */++table {+    border-collapse: collapse;+    border-spacing: 0;+}++{-# START_FILE BASE64 static/img/glyphicons-halflings-white.png #-}+iVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAMAAACY07N7AAAC2VBMVEX///8AAAAAAAD5+fn///8A+AAD////9/f1tbW0AAAD///////////8AAAAAAAD////w8PD+/v729vYAAAD8/PwAAAAAAAD/////+///a2toAAADCwsL09PT////////09PT39/f///8AAAAAAACzs7P9/f0AAADi4uKwsLD////////7++/vn5+f+/v7///8AAADt7e0AAADPz88AAAD9/f329vbt7e37+/vn5+f6+vrh4eGSkpL+/v7+/v7B+wcGYmJh0dHTh4eHQ0NAAAADz8/O7u7uhoaGAgID9/f3U1NRiYmL////V1dX4+Pjc3Nz6+vr7+/vp+6en7+/v9/f39/f3R0dHy8vL8/Pz4+Pjr6+v8/Py2trbGxsbl5eXu7u719fX9/f1lZWVnZ2fw8PC2+trbg4OD39/f6+vrp6enl5eX6+vr4+PjLy8v///+EhITx8fF4eHj39/fd3d35+fnIyMjS0tLs7Oz6++vre3t7i4uLm5ubz8/Obm5uoqKilpaXc3Nzu7u7////x8fHJycnw8PD////////e3t7Gxsa8vLzr+6+vW1tbQ0NDi4uL5+fn09PTi4uLs7Oz19fW0tLT////9/f37+/v8/Pz6+vrm5uYAAADk5OT8/Pz3+9/ewsLCZmZn9/f3s7Oz8/PzBwcHp6en////a2trw8PDw8PD19fXx8fH+/v74+Pj+/v6Ojo7i4uL7++/v5+fnc3Nz////y8vL6+vqfn5/t7e339/f29vbo6Ojz8/P6+vr19fX19fWmpqbLy8v6+vr4+PjT+09Pr6+v6+vrr6+uqqqrz8/Pt7e2ioqLPz8/a2trW1taioqLr6+vi4uL5+flVVVXNzc3////W1tbj+4+Ph4eHq6ur8/Pz////29vb7+/vz8/P09PTMzMz////////5+fn19fX////y8vL9/f0AAADZ2dn8+/Pz7+/v8/Pzp6em/v7/7+/vq6urp6en+/v7////4ck/mAAAA8nRSTlMAGgDUzwIP8SMQ759fCgUv+qfDGFeIYA78fbxNTt98/hsV/BhdD4Q1rRI+vwo3ATxJTD18IoKWasozTETbQ4D40IX5hC6dAMR7R+XydvEsRuotKLkZCATYahkzOxQlFqmbZwJiUhFWy1wyJY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++{-# START_FILE BASE64 static/img/glyphicons-halflings.png #-}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++{-# START_FILE templates/default-layout-wrapper.hamlet #-}+$newline never+\<!doctype html>+\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->+\<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->+\<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->+\<!--[if gt IE 8]><!-->+<html class="no-js" lang="en"> <!--<![endif]-->+    <head>+        <meta charset="UTF-8">++        <title>#{pageTitle pc}+        <meta name="description" content="">+        <meta name="author" content="">++        <meta name="viewport" content="width=device-width,initial-scale=1">++        ^{pageHead pc}++        \<!--[if lt IE 9]>+        \<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>+        \<![endif]-->++        <script>+          document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');+    <body>+        <div class="container">+            <header>+            <div id="main" role="main">+              ^{pageBody pc}+            <footer>+                #{extraCopyright $ appExtra $ settings master}++        $maybe analytics <- extraAnalytics $ appExtra $ settings master+            <script>+              if(!window.location.href.match(/localhost/)){+                window._gaq = [['_setAccount','#{analytics}'],['_trackPageview'],['_trackPageLoadTime']];+                (function() {+                \  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;+                \  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';+                \  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);+                })();+              }+        \<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.  chromium.org/developers/how-tos/chrome-frame-getting-started -->+        \<!--[if lt IE 7 ]>+            <script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">+            <script>+                window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})+        \<![endif]-->++{-# START_FILE templates/default-layout.hamlet #-}+$maybe msg <- mmsg+    <div #message>#{msg}+^{widget}++{-# START_FILE templates/homepage.hamlet #-}+<h1>_{MsgHello}++<ol>+  <li>Now that you have a working project you should use the #+    \<a href="http://www.yesodweb.com/book/">Yesod book</a> to learn more. #+    You can also use this scaffolded site to explore some basic concepts.++  <li> This page was generated by the #{handlerName} handler in #+    \<em>Handler/Home.hs</em>.++  <li> The #{handlerName} handler is set to generate your site's home screen in Routes file #+    <em>config/routes++  <li> The HTML you are seeing now is actually composed by a number of <em>widgets</em>, #+    most of them are brought together by the <em>defaultLayout</em> function which #+    is defined in the <em>Foundation.hs</em> module, and used by <em>#{handlerName}</em>. #+    All the files for templates and wigdets are in <em>templates</em>.++  <li>+    A Widget's Html, Css and Javascript are separated in three files with the #+    \<em>.hamlet</em>, <em>.lucius</em> and <em>.julius</em> extensions. ++  <li ##{aDomId}>If you had javascript enabled then you wouldn't be seeing this.+    +  <li #form>+    This is an example trivial Form. Read the #+    \<a href="http://www.yesodweb.com/book/forms">Forms chapter</a> #+    on the yesod book to learn more about them.+    $maybe (info,con) <- submission+      <div .message>+        Your file's type was <em>#{fileContentType info}</em>. You say it has: <em>#{con}</em>+    <form method=post action=@{HomeR}#form enctype=#{formEnctype}>+      ^{formWidget}+      <input type="submit" value="Send it!">++  <li> And last but not least, Testing. In <em>tests/main.hs</em> you will find a #+    test suite that performs tests on this page. #+    You can run your tests by doing: <pre>yesod test</pre>++{-# START_FILE templates/homepage.julius #-}+document.getElementById(#{toJSON aDomId}).innerHTML = "This text was added by the Javascript part of the homepage widget.";++{-# START_FILE templates/homepage.lucius #-}+h1 {+    text-align: center+}+h2##{aDomId} {+    color: #990+}++{-# START_FILE tests/HomeTest.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module HomeTest+    ( homeSpecs+    ) where++import TestImport+import qualified Data.List as L++homeSpecs :: Specs+homeSpecs =+    ydescribe "These are some example tests" $ do++        yit "loads the index and checks it looks right" $ do+            get HomeR+            statusIs 200+            htmlAllContain "h1" "Hello"++            request $ do+                setMethod "POST"+                setUrl HomeR+                addNonce+                fileByLabel "Choose a file" "tests/main.hs" "text/plain" -- talk about self-reference+                byLabel "What's on the file?" "Some Content"++            statusIs 200+            printBody+            htmlCount ".message" 1+            htmlAllContain ".message" "Some Content"+            htmlAllContain ".message" "text/plain"++        -- This is a simple example of using a database access in a test.  The+        -- test will succeed for a fresh scaffolded site with an empty database,+        -- but will fail on an existing database with a non-empty user table.+        yit "leaves the user table empty" $ do+            get HomeR+            statusIs 200+            users <- runDB $ selectList ([] :: [Filter User]) []+            assertEqual "user table empty" 0 $ L.length users++{-# START_FILE tests/TestImport.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module TestImport+    ( module Yesod.Test+    , module Model+    , module Foundation+    , module Database.Persist+    , runDB+    , Specs+    ) where++import Yesod.Test+import Database.Persist hiding (get)+import Database.Persist.Sql (runSqlPool, SqlPersist, Connection)+import Control.Monad.Trans.Resource (ResourceT, runResourceT)+import Control.Monad.Logger (NoLoggingT, runNoLoggingT)+import Control.Monad.IO.Class (liftIO)++import Foundation+import Model++type Specs = YesodSpec App++runDB :: SqlPersist (NoLoggingT (ResourceT IO)) a -> YesodExample App a+runDB query = do+    pool <- fmap connPool getTestYesod+    liftIO $ runResourceT $ runNoLoggingT $ runSqlPool query pool++{-# START_FILE tests/main.hs #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Main where++import Import+import Yesod.Default.Config+import Yesod.Test+import Test.Hspec (hspec)+import Application (makeFoundation)++import HomeTest++main :: IO ()+main = do+    conf <- Yesod.Default.Config.loadConfig $ (configSettings Testing)+                { csParseExtra = parseExtra+                }+    foundation <- makeFoundation conf+    hspec $ do+        yesodSpec foundation $ do+            homeSpecs+
+ hsfiles/simple.hsfiles view
@@ -0,0 +1,5711 @@+{-# START_FILE .ghci #-}+:set -i.:config:dist/build/autogen+:set -XCPP -XTemplateHaskell -XQuasiQuotes -XTypeFamilies -XFlexibleContexts -XGADTs -XOverloadedStrings -XMultiParamTypeClasses -XGeneralizedNewtypeDeriving -XEmptyDataDecls++{-# START_FILE .gitignore #-}+dist*+static/tmp/+config/client_session_key.aes+*.hi+*.o+*.sqlite3+.hsenv*+yesod-devel/++{-# START_FILE Application.hs #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Application+    ( makeApplication+    , getApplicationDev+    , makeFoundation+    ) where++import Import+import Yesod.Default.Config+import Yesod.Default.Main+import Yesod.Default.Handlers+import Network.Wai.Middleware.RequestLogger+import Network.HTTP.Conduit (newManager, def)+import Control.Monad.Logger (runLoggingT)+import System.IO (stdout)+import System.Log.FastLogger (mkLogger)++-- Import all relevant handler modules here.+-- Don't forget to add new modules to your cabal file!+import Handler.Home++-- This line actually creates our YesodDispatch instance. It is the second half+-- of the call to mkYesodData which occurs in Foundation.hs. Please see the+-- comments there for more details.+mkYesodDispatch "App" resourcesApp++-- This function allocates resources (such as a database connection pool),+-- performs initialization and creates a WAI application. This is also the+-- place to put your migrate statements to have automatic database+-- migrations handled by Yesod.+makeApplication :: AppConfig DefaultEnv Extra -> IO Application+makeApplication conf = do+    foundation <- makeFoundation conf++    -- Initialize the logging middleware+    logWare <- mkRequestLogger def+        { outputFormat =+            if development+                then Detailed True+                else Apache FromSocket+        , destination = Logger $ appLogger foundation+        }++    -- Create the WAI application and apply middlewares+    app <- toWaiAppPlain foundation+    return $ logWare app++-- | Loads up any necessary settings, creates your foundation datatype, and+-- performs some initialization.+makeFoundation :: AppConfig DefaultEnv Extra -> IO App+makeFoundation conf = do+    manager <- newManager def+    s <- staticSite+    logger <- mkLogger True stdout+    let foundation = App conf s manager logger++    return foundation++-- for yesod devel+getApplicationDev :: IO (Int, Application)+getApplicationDev =+    defaultDevelApp loader makeApplication+  where+    loader = Yesod.Default.Config.loadConfig (configSettings Development)+        { csParseExtra = parseExtra+        }++{-# START_FILE Foundation.hs #-}+module Foundation where++import Prelude+import Yesod+import Yesod.Static+import Yesod.Default.Config+import Yesod.Default.Util (addStaticContentExternal)+import Network.HTTP.Conduit (Manager)+import qualified Settings+import Settings.Development (development)+import Settings.StaticFiles+import Settings (widgetFile, Extra (..))+import Text.Jasmine (minifym)+import Text.Hamlet (hamletFile)+import System.Log.FastLogger (Logger)++-- | The site argument for your application. This can be a good place to+-- keep settings and values requiring initialization before your application+-- starts running, such as database connections. Every handler will have+-- access to the data present here.+data App = App+    { settings :: AppConfig DefaultEnv Extra+    , getStatic :: Static -- ^ Settings for static file serving.+    , httpManager :: Manager+    , appLogger :: Logger+    }++-- Set up i18n messages. See the message folder.+mkMessage "App" "messages" "en"++-- This is where we define all of the routes in our application. For a full+-- explanation of the syntax, please see:+-- http://www.yesodweb.com/book/handler+--+-- This function does three things:+--+-- * Creates the route datatype AppRoute. Every valid URL in your+--   application can be represented as a value of this type.+-- * Creates the associated type:+--       type instance Route App = AppRoute+-- * Creates the value resourcesApp which contains information on the+--   resources declared below. This is used in Handler.hs by the call to+--   mkYesodDispatch+--+-- What this function does *not* do is create a YesodSite instance for+-- App. Creating that instance requires all of the handler functions+-- for our application to be in scope. However, the handler functions+-- usually require access to the AppRoute datatype. Therefore, we+-- split these actions into two functions and place them in separate files.+mkYesodData "App" $(parseRoutesFile "config/routes")++type Form x = Html -> MForm (HandlerT App IO) (FormResult x, Widget)++-- Please see the documentation for the Yesod typeclass. There are a number+-- of settings which can be configured by overriding methods here.+instance Yesod App where+    approot = ApprootMaster $ appRoot . settings++    -- Store session data on the client in encrypted cookies,+    -- default session idle timeout is 120 minutes+    makeSessionBackend _ = fmap Just $ defaultClientSessionBackend+        (120 * 60) -- 120 minutes+        "config/client_session_key.aes"++    defaultLayout widget = do+        master <- getYesod+        mmsg <- getMessage++        -- We break up the default layout into two components:+        -- default-layout is the contents of the body tag, and+        -- default-layout-wrapper is the entire page. Since the final+        -- value passed to hamletToRepHtml cannot be a widget, this allows+        -- you to use normal widget features in default-layout.++        pc <- widgetToPageContent $ do+            $(combineStylesheets 'StaticR+                [ css_normalize_css+                , css_bootstrap_css+                ])+            $(widgetFile "default-layout")+        hamletToRepHtml $(hamletFile "templates/default-layout-wrapper.hamlet")++    -- This is done to provide an optimization for serving static files from+    -- a separate domain. Please see the staticRoot setting in Settings.hs+    urlRenderOverride y (StaticR s) =+        Just $ uncurry (joinPath y (Settings.staticRoot $ settings y)) $ renderRoute s+    urlRenderOverride _ _ = Nothing++    -- This function creates static content files in the static folder+    -- and names them based on a hash of their content. This allows+    -- expiration dates to be set far in the future without worry of+    -- users receiving stale content.+    addStaticContent =+        addStaticContentExternal minifym genFileName Settings.staticDir (StaticR . flip StaticRoute [])+      where+        -- Generate a unique filename based on the content itself+        genFileName lbs+            | development = "autogen-" ++ base64md5 lbs+            | otherwise   = base64md5 lbs++    -- Place Javascript at bottom of the body tag so the rest of the page loads first+    jsLoader _ = BottomOfBody++    -- What messages should be logged. The following includes all messages when+    -- in development, and warnings and errors in production.+    shouldLog _ _source level =+        development || level == LevelWarn || level == LevelError++    makeLogger = return . appLogger++-- This instance is required to use forms. You can modify renderMessage to+-- achieve customized and internationalized form validation messages.+instance RenderMessage App FormMessage where+    renderMessage _ _ = defaultFormMessage++-- | Get the 'Extra' value, used to hold data from the settings.yml file.+getExtra :: Handler Extra+getExtra = fmap (appExtra . settings) getYesod++-- Note: previous versions of the scaffolding included a deliver function to+-- send emails. Unfortunately, there are too many different options for us to+-- give a reasonable default. Instead, the information is available on the+-- wiki:+--+-- https://github.com/yesodweb/yesod/wiki/Sending-email++{-# START_FILE Handler/Home.hs #-}+{-# LANGUAGE TupleSections, OverloadedStrings #-}+module Handler.Home where++import Import++-- This is a handler function for the GET request method on the HomeR+-- resource pattern. All of your resource patterns are defined in+-- config/routes+--+-- The majority of the code you will write in Yesod lives in these handler+-- functions. You can spread them across multiple files if you are so+-- inclined, or create a single monolithic file.+getHomeR :: Handler RepHtml+getHomeR = do+    (formWidget, formEnctype) <- generateFormPost sampleForm+    let submission = Nothing :: Maybe (FileInfo, Text)+        handlerName = "getHomeR" :: Text+    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++postHomeR :: Handler RepHtml+postHomeR = do+    ((result, formWidget), formEnctype) <- runFormPost sampleForm+    let handlerName = "postHomeR" :: Text+        submission = case result of+            FormSuccess res -> Just res+            _ -> Nothing++    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++sampleForm :: Form (FileInfo, Text)+sampleForm = renderDivs $ (,)+    <$> fileAFormReq "Choose a file"+    <*> areq textField "What's on the file?" Nothing++{-# START_FILE Import.hs #-}+module Import+    ( module Import+    ) where++import           Prelude              as Import hiding (head, init, last,+                                                 readFile, tail, writeFile)+import           Yesod                as Import hiding (Route (..))++import           Control.Applicative  as Import (pure, (<$>), (<*>))+import           Data.Text            as Import (Text)++import           Foundation           as Import+import           Settings             as Import+import           Settings.Development as Import+import           Settings.StaticFiles as Import++#if __GLASGOW_HASKELL__ >= 704+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat),+                                                 (<>))+#else+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat))++infixr 5 <>+(<>) :: Monoid m => m -> m -> m+(<>) = mappend+#endif++{-# START_FILE PROJECTNAME.cabal #-}+name:              PROJECTNAME+version:           0.0.0+cabal-version:     >= 1.8+build-type:        Simple++Flag dev+    Description:   Turn on development settings, like auto-reload templates.+    Default:       False++Flag library-only+    Description:   Build for use with "yesod devel"+    Default:       False++library+    exposed-modules: Application+                     Foundation+                     Import+                     Settings+                     Settings.StaticFiles+                     Settings.Development+                     Handler.Home++    if flag(dev) || flag(library-only)+        cpp-options:   -DDEVELOPMENT+        ghc-options:   -Wall -O0+    else+        ghc-options:   -Wall -O2++    extensions: TemplateHaskell+                QuasiQuotes+                OverloadedStrings+                NoImplicitPrelude+                CPP+                MultiParamTypeClasses+                TypeFamilies+                GADTs+                GeneralizedNewtypeDeriving+                FlexibleContexts+                EmptyDataDecls+                NoMonomorphismRestriction+                DeriveDataTypeable++    build-depends: base                          >= 4          && < 5+                 -- , yesod-platform                >= 1.1        && < 1.2+                 , yesod                         >= 1.2        && < 1.3+                 , yesod-core                    >= 1.2        && < 1.3+                 , yesod-auth                    >= 1.2        && < 1.3+                 , yesod-static                  >= 1.2        && < 1.3+                 , yesod-form                    >= 1.3        && < 1.4+                 , bytestring                    >= 0.9        && < 0.11+                 , text                          >= 0.11       && < 0.12+                 , template-haskell+                 , hamlet                        >= 1.1        && < 1.2+                 , shakespeare-css               >= 1.0        && < 1.1+                 , shakespeare-js                >= 1.0.2      && < 1.2+                 , shakespeare-text              >= 1.0        && < 1.1+                 , hjsmin                        >= 0.1        && < 0.2+                 , monad-control                 >= 0.3        && < 0.4+                 , wai-extra                     >= 1.3        && < 1.4+                 , yaml                          >= 0.8        && < 0.9+                 , http-conduit                  >= 1.9        && < 1.10+                 , directory                     >= 1.1        && < 1.3+                 , warp                          >= 1.3        && < 1.4+                 , data-default+                 , aeson+                 , conduit                       >= 1.0+                 , monad-logger                  >= 0.3+                 , fast-logger                   >= 0.3++executable         PROJECTNAME+    if flag(library-only)+        Buildable: False++    main-is:           main.hs+    hs-source-dirs:    app+    build-depends:     base+                     , PROJECTNAME+                     , yesod++    ghc-options:       -threaded -O2++test-suite test+    type:              exitcode-stdio-1.0+    main-is:           main.hs+    hs-source-dirs:    tests+    ghc-options:       -Wall++    build-depends: base+                 , PROJECTNAME+                 , yesod-test >= 1.2 && < 1.3+                 , yesod-core+                 , yesod+                 , hspec++{-# START_FILE Settings.hs #-}+-- | Settings are centralized, as much as possible, into this file. This+-- includes database connection settings, static file locations, etc.+-- In addition, you can configure a number of different aspects of Yesod+-- by overriding methods in the Yesod typeclass. That instance is+-- declared in the Foundation.hs file.+module Settings where++import Prelude+import Text.Shakespeare.Text (st)+import Language.Haskell.TH.Syntax+import Yesod.Default.Config+import Yesod.Default.Util+import Data.Text (Text)+import Data.Yaml+import Control.Applicative+import Settings.Development+import Data.Default (def)+import Text.Hamlet++-- Static setting below. Changing these requires a recompile++-- | The location of static files on your system. This is a file system+-- path. The default value works properly with your scaffolded site.+staticDir :: FilePath+staticDir = "static"++-- | The base URL for your static files. As you can see by the default+-- value, this can simply be "static" appended to your application root.+-- A powerful optimization can be serving static files from a separate+-- domain name. This allows you to use a web server optimized for static+-- files, more easily set expires and cache values, and avoid possibly+-- costly transference of cookies on static files. For more information,+-- please see:+--   http://code.google.com/speed/page-speed/docs/request.html#ServeFromCookielessDomain+--+-- If you change the resource pattern for StaticR in Foundation.hs, you will+-- have to make a corresponding change here.+--+-- To see how this value is used, see urlRenderOverride in Foundation.hs+staticRoot :: AppConfig DefaultEnv x -> Text+staticRoot conf = [st|#{appRoot conf}/static|]++-- | Settings for 'widgetFile', such as which template languages to support and+-- default Hamlet settings.+--+-- For more information on modifying behavior, see:+--+-- https://github.com/yesodweb/yesod/wiki/Overriding-widgetFile+widgetFileSettings :: WidgetFileSettings+widgetFileSettings = def+    { wfsHamletSettings = defaultHamletSettings+        { hamletNewlines = AlwaysNewlines+        }+    }++-- The rest of this file contains settings which rarely need changing by a+-- user.++widgetFile :: String -> Q Exp+widgetFile = (if development then widgetFileReload+                             else widgetFileNoReload)+              widgetFileSettings++data Extra = Extra+    { extraCopyright :: Text+    , extraAnalytics :: Maybe Text -- ^ Google Analytics+    } deriving Show++parseExtra :: DefaultEnv -> Object -> Parser Extra+parseExtra _ o = Extra+    <$> o .:  "copyright"+    <*> o .:? "analytics"++{-# START_FILE Settings/Development.hs #-}+module Settings.Development where++import Prelude++development :: Bool+development =+#if DEVELOPMENT+  True+#else+  False+#endif++production :: Bool+production = not development++{-# START_FILE Settings/StaticFiles.hs #-}+module Settings.StaticFiles where++import Prelude (IO)+import Yesod.Static+import qualified Yesod.Static as Static+import Settings (staticDir)+import Settings.Development+import Language.Haskell.TH (Q, Exp, Name)+import Data.Default (def)++-- | use this to create your static file serving site+staticSite :: IO Static.Static+staticSite = if development then Static.staticDevel staticDir+                            else Static.static      staticDir++-- | This generates easy references to files in the static directory at compile time,+--   giving you compile-time verification that referenced files exist.+--   Warning: any files added to your static directory during run-time can't be+--   accessed this way. You'll have to use their FilePath or URL to access them.+$(staticFiles Settings.staticDir)++combineSettings :: CombineSettings+combineSettings = def++-- The following two functions can be used to combine multiple CSS or JS files+-- at compile time to decrease the number of http requests.+-- Sample usage (inside a Widget):+--+-- > $(combineStylesheets 'StaticR [style1_css, style2_css])++combineStylesheets :: Name -> [Route Static] -> Q Exp+combineStylesheets = combineStylesheets' development combineSettings++combineScripts :: Name -> [Route Static] -> Q Exp+combineScripts = combineScripts' development combineSettings++{-# START_FILE app/main.hs #-}+import Prelude              (IO)+import Yesod.Default.Config (fromArgs)+import Yesod.Default.Main   (defaultMain)+import Settings             (parseExtra)+import Application          (makeApplication)++main :: IO ()+main = defaultMain (fromArgs parseExtra) makeApplication++{-# START_FILE BASE64 config/favicon.ico #-}+AAABAAIAEBAAAAEAIABoBAAAJgAAABAQAgABAAEAsAAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAApl4sAAAAAAAAAAAAAAAAAUEpGyNpSjaIg2NO2ZBvWfqTc13/+jW1X9YNhTMZrSTNkUTMfDwAAAAAAAAAAAAAAAAAAAAAAAAAANR0NClk6JmF+W0Txj2xV/41qVP+M+aVP/jGlS/4xpUv+MaVL/i2dQ/3pVPdNeOiEzQRsBAgAAAAAAAAAAMBgHAlIxG1h5UDb/h15D9n5W+PPZ4TzXmeVE303hQNtV4UDbVeFA11XdQNdV5UTfbbUUpx1UsEBgAAAAAAAAFADIVAwlULxY/f1M1+4dOffryecFHMXTIVhAAAAAURAAAOEwAADxQAAA8TAAAPEAAADigEABFNJAkZTSQJCRAHAQdKIARt+OxUAC1kvE3qQYEDfzJt5wXtOL9pQJAa0UScKjVInCo1SJwqNUSYJjVElCY1RJQmLUSUHslEjBGcu+EgAuVSQC/00eAGAYAAAPXzAQuLGAXs6ygV/PYTESwkMXAFRGHgI3Rx4BPEceATxHHQE7RBsBMkwf+AqlUIQHgQhoAaVUhAP9TIQDhSBwAI0EXAD5xQSHbzJp4wJRiQtBRIgKuRxsAb0kdAGpJHQBqSR0A+e04fAJNJHQClVCEA/0YcAIRVIgD/VSIA7E0fADQyDQAyaToa1MqXdMLJl3bBc0Ii6UscAJFFGgBE+RRoAQUIZAFlRIADpVSIA/1UiAP9JHwN9WicG/1QhAIMAAAAMVywPoaBtTNi6imnEsIBfya9+Xc1m+OBm2UycIilgqDYVVKQ2DVigJ4FwqCf5cKgr/Qx8GUGAwEc08EwAPTSgQY4dXN+LPnXy9g1c54XtM+LevJl3a/k2RE3WY5Gv9mNxn/Zjga/2c5G/9oOhz/Zzka/DQYBRFZLRA1JhAAJHhML9XJlnTCqXxe+zXFHLPtxRyv/n3BR2MuZd7uFWjzmc0gt/nRKLv90Sy//dUww/21CJcIAAAAATCsURXRONdR+Vjr5+j2ZL5oJbQfN+Vz3/flg//4NcQfePZkrogVk/8n5YP/6BW0H/gVtD/oBaQf9qQCRIJAgAAFAxHRt4+VDzVjWpS/4lmT/6LZ1D/jGlS/4xpU/6MaVL/i2hS/otpUv6Na1T+jmtV/o9tV/98Vj2cYzoeBgAA+AAAGAgAAZ0cyMIVkTtqae2f/mXpm/5l5Zf6Zemb+mXpm/5p6Zv+ae2f+mnxp/5p7Z/+HZE2qdE84+FAAAAAAAAAAAAAAAAAAAAABrTDgfhWVQnp2Abf+njHv/pot6/6aMev+njHv/qI18/5t+avOHZU9y+fFc/DgAAAAAAAAAAJhABAAAAAAAAAAAAyqmXADYdCQNoSDQjh2hUbpd6aJ+Zfmurl3pnlYZkTlpw+TDYTX0IxAbNeMwAAAAAAsoFfAPgfAADwBwAA4AMAAOH/AADwAQAAsPwAAJh4AAAYOAAAkAAAALAA+AADgAAAAwAEAAMABAADgAwAA8A8AAP4/AAAoAAAAEAAAACAAAAABAAEAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==++{-# START_FILE config/keter.yaml #-}+exec: ../dist/build/PROJECTNAME/PROJECTNAME+args:+    - production+host: <<HOST-NOT-SET>>++# Use the following to automatically copy your bundle upon creation via `yesod+# keter`. Uses `scp` internally, so you can set it to a remote destination+# copy-to: user@host:/opt/keter/incoming++{-# START_FILE config/robots.txt #-}+User-agent: *++{-# START_FILE config/routes #-}+/static StaticR Static getStatic++/favicon.ico FaviconR GET+/robots.txt RobotsR GET++/ HomeR GET POST++{-# START_FILE config/settings.yml #-}+Default: &defaults+  host: "*4" # any IPv4 host+  port: 3000+  approot: "http://localhost:3000"+  copyright: Insert copyright statement here+  #analytics: UA-YOURCODE++Development:+  <<: *defaults++Testing:+  <<: *defaults++Staging:+  <<: *defaults++Production:+  #approot: "http://www.example.com"+  <<: *defaults++{-# START_FILE deploy/Procfile #-}+# Free deployment to Heroku.+#+#   !! Warning: You must use a 64 bit machine to compile !!+#+#   This could mean using a virtual machine. Give your VM as much memory as you can to speed up linking.+#+# Basic Yesod setup:+#+# * Move this file out of the deploy directory and into your root directory+#+#     mv deploy/Procfile ./+#+# * Create an empty package.json+#     echo '{ "name": "PROJECTNAME", "version": "0.0.1", "dependencies": {} }' >> package.json+#+# Postgresql Yesod setup:+#+# * add dependencies on the "heroku", "aeson" and "unordered-containers" packages in your cabal file+#+# * add code in Application.hs to use the heroku package and load the connection parameters.+#   The below works for Postgresql.+#+#   import Data.HashMap.Strict as H+#   import Data.Aeson.Types as AT+#   #ifndef DEVELOPMENT+#   import qualified Web.Heroku+#   #endif+#+#+#+#   makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO App+#   makeFoundation conf setLogger = do+#       manager <- newManager def+#       s <- staticSite+#       hconfig <- loadHerokuConfig+#       dbconf <- withYamlEnvironment "config/postgresql.yml" (appEnv conf)+#                 (Database.Persist.Store.loadConfig . combineMappings hconfig) >>=+#                 Database.Persist.Store.applyEnv+#       p <- Database.Persist.Store.createPoolConfig (dbconf :: Settings.PersistConfig)+#       Database.Persist.Store.runPool dbconf (runMigration migrateAll) p+#       return $ App conf setLogger s p manager dbconf+#+#   #ifndef DEVELOPMENT+#   canonicalizeKey :: (Text, val) -> (Text, val)+#   canonicalizeKey ("dbname", val) = ("database", val)+#   canonicalizeKey pair = pair+#+#   toMapping :: [(Text, Text)] -> AT.Value+#   toMapping xs = AT.Object $ M.fromList $ map (\(key, val) -> (key, AT.String val)) xs+#   #endif+#+#   combineMappings :: AT.Value -> AT.Value -> AT.Value+#   combineMappings (AT.Object m1) (AT.Object m2) = AT.Object $ m1 `M.union` m2+#   combineMappings _ _ = error "Data.Object is not a Mapping."+#+#   loadHerokuConfig :: IO AT.Value+#   loadHerokuConfig = do+#   #ifdef DEVELOPMENT+#       return $ AT.Object M.empty+#   #else+#       Web.Heroku.dbConnParams >>= return . toMapping . map canonicalizeKey+#   #endif++++# Heroku setup:+# Find the Heroku guide. Roughly:+#+# * sign up for a heroku account and register your ssh key+# * create a new application on the *cedar* stack+#+# * make your Yesod project the git repository for that application+# * create a deploy branch+#+#     git checkout -b deploy+#+# Repeat these steps to deploy:+# * add your web executable binary (referenced below) to the git repository+#+#     git checkout deploy+#     git add ./dist/build/PROJECTNAME/PROJECTNAME+#     git commit -m deploy+#+# * push to Heroku+#+#     git push heroku deploy:master+++# Heroku configuration that runs your app+web: ./dist/build/PROJECTNAME/PROJECTNAME production -p $PORT++{-# START_FILE devel.hs #-}+{-# LANGUAGE PackageImports #-}+import "PROJECTNAME" Application (getApplicationDev)+import Network.Wai.Handler.Warp+    (runSettings, defaultSettings, settingsPort)+import Control.Concurrent (forkIO)+import System.Directory (doesFileExist, removeFile)+import System.Exit (exitSuccess)+import Control.Concurrent (threadDelay)++main :: IO ()+main = do+    putStrLn "Starting devel application"+    (port, app) <- getApplicationDev+    forkIO $ runSettings defaultSettings+        { settingsPort = port+        } app+    loop++loop :: IO ()+loop = do+  threadDelay 100000+  e <- doesFileExist "yesod-devel/devel-terminate"+  if e then terminateDevel else loop++terminateDevel :: IO ()+terminateDevel = exitSuccess++{-# START_FILE messages/en.msg #-}+Hello: Hello++{-# START_FILE static/css/bootstrap.css #-}+/*!+ * Bootstrap v2.0.2+ *+ * Copyright 2012 Twitter, Inc+ * Licensed under the Apache License v2.0+ * http://www.apache.org/licenses/LICENSE-2.0+ *+ * Designed and built with all the love in the world @twitter by @mdo and @fat.+ */+article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+  display: block;+}+audio,+canvas,+video {+  display: inline-block;+  *display: inline;+  *zoom: 1;+}+audio:not([controls]) {+  display: none;+}+html {+  font-size: 100%;+  -webkit-text-size-adjust: 100%;+  -ms-text-size-adjust: 100%;+}+a:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+a:hover,+a:active {+  outline: 0;+}+sub,+sup {+  position: relative;+  font-size: 75%;+  line-height: 0;+  vertical-align: baseline;+}+sup {+  top: -0.5em;+}+sub {+  bottom: -0.25em;+}+img {+  height: auto;+  border: 0;+  -ms-interpolation-mode: bicubic;+  vertical-align: middle;+}+button,+input,+select,+textarea {+  margin: 0;+  font-size: 100%;+  vertical-align: middle;+}+button,+input {+  *overflow: visible;+  line-height: normal;+}+button::-moz-focus-inner,+input::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button,+input[type="button"],+input[type="reset"],+input[type="submit"] {+  cursor: pointer;+  -webkit-appearance: button;+}+input[type="search"] {+  -webkit-appearance: textfield;+  -webkit-box-sizing: content-box;+  -moz-box-sizing: content-box;+  box-sizing: content-box;+}+input[type="search"]::-webkit-search-decoration,+input[type="search"]::-webkit-search-cancel-button {+  -webkit-appearance: none;+}+textarea {+  overflow: auto;+  vertical-align: top;+}+.clearfix {+  *zoom: 1;+}+.clearfix:before,+.clearfix:after {+  display: table;+  content: "";+}+.clearfix:after {+  clear: both;+}+.hide-text {+  overflow: hidden;+  text-indent: 100%;+  white-space: nowrap;+}+.input-block-level {+  display: block;+  width: 100%;+  min-height: 28px;+  /* Make inputs at least the height of their button counterpart */++  /* Makes inputs behave like true block-level elements */++  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+}+body {+  margin: 0;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  background-color: #ffffff;+}+a {+  color: #0088cc;+  text-decoration: none;+}+a:hover {+  color: #005580;+  text-decoration: underline;+}+.row {+  margin-left: -20px;+  *zoom: 1;+}+.row:before,+.row:after {+  display: table;+  content: "";+}+.row:after {+  clear: both;+}+[class*="span"] {+  float: left;+  margin-left: 20px;+}+.container,+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.span12 {+  width: 940px;+}+.span11 {+  width: 860px;+}+.span10 {+  width: 780px;+}+.span9 {+  width: 700px;+}+.span8 {+  width: 620px;+}+.span7 {+  width: 540px;+}+.span6 {+  width: 460px;+}+.span5 {+  width: 380px;+}+.span4 {+  width: 300px;+}+.span3 {+  width: 220px;+}+.span2 {+  width: 140px;+}+.span1 {+  width: 60px;+}+.offset12 {+  margin-left: 980px;+}+.offset11 {+  margin-left: 900px;+}+.offset10 {+  margin-left: 820px;+}+.offset9 {+  margin-left: 740px;+}+.offset8 {+  margin-left: 660px;+}+.offset7 {+  margin-left: 580px;+}+.offset6 {+  margin-left: 500px;+}+.offset5 {+  margin-left: 420px;+}+.offset4 {+  margin-left: 340px;+}+.offset3 {+  margin-left: 260px;+}+.offset2 {+  margin-left: 180px;+}+.offset1 {+  margin-left: 100px;+}+.row-fluid {+  width: 100%;+  *zoom: 1;+}+.row-fluid:before,+.row-fluid:after {+  display: table;+  content: "";+}+.row-fluid:after {+  clear: both;+}+.row-fluid > [class*="span"] {+  float: left;+  margin-left: 2.127659574%;+}+.row-fluid > [class*="span"]:first-child {+  margin-left: 0;+}+.row-fluid > .span12 {+  width: 99.99999998999999%;+}+.row-fluid > .span11 {+  width: 91.489361693%;+}+.row-fluid > .span10 {+  width: 82.97872339599999%;+}+.row-fluid > .span9 {+  width: 74.468085099%;+}+.row-fluid > .span8 {+  width: 65.95744680199999%;+}+.row-fluid > .span7 {+  width: 57.446808505%;+}+.row-fluid > .span6 {+  width: 48.93617020799999%;+}+.row-fluid > .span5 {+  width: 40.425531911%;+}+.row-fluid > .span4 {+  width: 31.914893614%;+}+.row-fluid > .span3 {+  width: 23.404255317%;+}+.row-fluid > .span2 {+  width: 14.89361702%;+}+.row-fluid > .span1 {+  width: 6.382978723%;+}+.container {+  margin-left: auto;+  margin-right: auto;+  *zoom: 1;+}+.container:before,+.container:after {+  display: table;+  content: "";+}+.container:after {+  clear: both;+}+.container-fluid {+  padding-left: 20px;+  padding-right: 20px;+  *zoom: 1;+}+.container-fluid:before,+.container-fluid:after {+  display: table;+  content: "";+}+.container-fluid:after {+  clear: both;+}+p {+  margin: 0 0 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+}+p small {+  font-size: 11px;+  color: #999999;+}+.lead {+  margin-bottom: 18px;+  font-size: 20px;+  font-weight: 200;+  line-height: 27px;+}+h1,+h2,+h3,+h4,+h5,+h6 {+  margin: 0;+  font-family: inherit;+  font-weight: bold;+  color: inherit;+  text-rendering: optimizelegibility;+}+h1 small,+h2 small,+h3 small,+h4 small,+h5 small,+h6 small {+  font-weight: normal;+  color: #999999;+}+h1 {+  font-size: 30px;+  line-height: 36px;+}+h1 small {+  font-size: 18px;+}+h2 {+  font-size: 24px;+  line-height: 36px;+}+h2 small {+  font-size: 18px;+}+h3 {+  line-height: 27px;+  font-size: 18px;+}+h3 small {+  font-size: 14px;+}+h4,+h5,+h6 {+  line-height: 18px;+}+h4 {+  font-size: 14px;+}+h4 small {+  font-size: 12px;+}+h5 {+  font-size: 12px;+}+h6 {+  font-size: 11px;+  color: #999999;+  text-transform: uppercase;+}+.page-header {+  padding-bottom: 17px;+  margin: 18px 0;+  border-bottom: 1px solid #eeeeee;+}+.page-header h1 {+  line-height: 1;+}+ul,+ol {+  padding: 0;+  margin: 0 0 9px 25px;+}+ul ul,+ul ol,+ol ol,+ol ul {+  margin-bottom: 0;+}+ul {+  list-style: disc;+}+ol {+  list-style: decimal;+}+li {+  line-height: 18px;+}+ul.unstyled,+ol.unstyled {+  margin-left: 0;+  list-style: none;+}+dl {+  margin-bottom: 18px;+}+dt,+dd {+  line-height: 18px;+}+dt {+  font-weight: bold;+  line-height: 17px;+}+dd {+  margin-left: 9px;+}+.dl-horizontal dt {+  float: left;+  clear: left;+  width: 120px;+  text-align: right;+}+.dl-horizontal dd {+  margin-left: 130px;+}+hr {+  margin: 18px 0;+  border: 0;+  border-top: 1px solid #eeeeee;+  border-bottom: 1px solid #ffffff;+}+strong {+  font-weight: bold;+}+em {+  font-style: italic;+}+.muted {+  color: #999999;+}+abbr[title] {+  border-bottom: 1px dotted #ddd;+  cursor: help;+}+abbr.initialism {+  font-size: 90%;+  text-transform: uppercase;+}+blockquote {+  padding: 0 0 0 15px;+  margin: 0 0 18px;+  border-left: 5px solid #eeeeee;+}+blockquote p {+  margin-bottom: 0;+  font-size: 16px;+  font-weight: 300;+  line-height: 22.5px;+}+blockquote small {+  display: block;+  line-height: 18px;+  color: #999999;+}+blockquote small:before {+  content: '\2014 \00A0';+}+blockquote.pull-right {+  float: right;+  padding-left: 0;+  padding-right: 15px;+  border-left: 0;+  border-right: 5px solid #eeeeee;+}+blockquote.pull-right p,+blockquote.pull-right small {+  text-align: right;+}+q:before,+q:after,+blockquote:before,+blockquote:after {+  content: "";+}+address {+  display: block;+  margin-bottom: 18px;+  line-height: 18px;+  font-style: normal;+}+small {+  font-size: 100%;+}+cite {+  font-style: normal;+}+code,+pre {+  padding: 0 3px 2px;+  font-family: Menlo, Monaco, "Courier New", monospace;+  font-size: 12px;+  color: #333333;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+code {+  padding: 2px 4px;+  color: #d14;+  background-color: #f7f7f9;+  border: 1px solid #e1e1e8;+}+pre {+  display: block;+  padding: 8.5px;+  margin: 0 0 9px;+  font-size: 12.025px;+  line-height: 18px;+  background-color: #f5f5f5;+  border: 1px solid #ccc;+  border: 1px solid rgba(0, 0, 0, 0.15);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  white-space: pre;+  white-space: pre-wrap;+  word-break: break-all;+  word-wrap: break-word;+}+pre.prettyprint {+  margin-bottom: 18px;+}+pre code {+  padding: 0;+  color: inherit;+  background-color: transparent;+  border: 0;+}+.pre-scrollable {+  max-height: 340px;+  overflow-y: scroll;+}+form {+  margin: 0 0 18px;+}+fieldset {+  padding: 0;+  margin: 0;+  border: 0;+}+legend {+  display: block;+  width: 100%;+  padding: 0;+  margin-bottom: 27px;+  font-size: 19.5px;+  line-height: 36px;+  color: #333333;+  border: 0;+  border-bottom: 1px solid #eee;+}+legend small {+  font-size: 13.5px;+  color: #999999;+}+label,+input,+button,+select,+textarea {+  font-size: 13px;+  font-weight: normal;+  line-height: 18px;+}+input,+button,+select,+textarea {+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+}+label {+  display: block;+  margin-bottom: 5px;+  color: #333333;+}+input,+textarea,+select,+.uneditable-input {+  display: inline-block;+  width: 210px;+  height: 18px;+  padding: 4px;+  margin-bottom: 9px;+  font-size: 13px;+  line-height: 18px;+  color: #555555;+  border: 1px solid #cccccc;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.uneditable-textarea {+  width: auto;+  height: auto;+}+label input,+label textarea,+label select {+  display: block;+}+input[type="image"],+input[type="checkbox"],+input[type="radio"] {+  width: auto;+  height: auto;+  padding: 0;+  margin: 3px 0;+  *margin-top: 0;+  /* IE7 */++  line-height: normal;+  cursor: pointer;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+  border: 0 \9;+  /* IE9 and down */++}+input[type="image"] {+  border: 0;+}+input[type="file"] {+  width: auto;+  padding: initial;+  line-height: initial;+  border: initial;+  background-color: #ffffff;+  background-color: initial;+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+input[type="button"],+input[type="reset"],+input[type="submit"] {+  width: auto;+  height: auto;+}+select,+input[type="file"] {+  height: 28px;+  /* In IE7, the height of the select element cannot be changed by height, only font-size */++  *margin-top: 4px;+  /* For IE7, add top margin to align select with labels */++  line-height: 28px;+}+input[type="file"] {+  line-height: 18px \9;+}+select {+  width: 220px;+  background-color: #ffffff;+}+select[multiple],+select[size] {+  height: auto;+}+input[type="image"] {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+textarea {+  height: auto;+}+input[type="hidden"] {+  display: none;+}+.radio,+.checkbox {+  padding-left: 18px;+}+.radio input[type="radio"],+.checkbox input[type="checkbox"] {+  float: left;+  margin-left: -18px;+}+.controls > .radio:first-child,+.controls > .checkbox:first-child {+  padding-top: 5px;+}+.radio.inline,+.checkbox.inline {+  display: inline-block;+  padding-top: 5px;+  margin-bottom: 0;+  vertical-align: middle;+}+.radio.inline + .radio.inline,+.checkbox.inline + .checkbox.inline {+  margin-left: 10px;+}+input,+textarea {+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;+  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;+  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;+  -o-transition: border linear 0.2s, box-shadow linear 0.2s;+  transition: border linear 0.2s, box-shadow linear 0.2s;+}+input:focus,+textarea:focus {+  border-color: rgba(82, 168, 236, 0.8);+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  outline: 0;+  outline: thin dotted \9;+  /* IE6-9 */++}+input[type="file"]:focus,+input[type="radio"]:focus,+input[type="checkbox"]:focus,+select:focus {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.input-mini {+  width: 60px;+}+.input-small {+  width: 90px;+}+.input-medium {+  width: 150px;+}+.input-large {+  width: 210px;+}+.input-xlarge {+  width: 270px;+}+.input-xxlarge {+  width: 530px;+}+input[class*="span"],+select[class*="span"],+textarea[class*="span"],+.uneditable-input {+  float: none;+  margin-left: 0;+}+input,+textarea,+.uneditable-input {+  margin-left: 0;+}+input.span12, textarea.span12, .uneditable-input.span12 {+  width: 930px;+}+input.span11, textarea.span11, .uneditable-input.span11 {+  width: 850px;+}+input.span10, textarea.span10, .uneditable-input.span10 {+  width: 770px;+}+input.span9, textarea.span9, .uneditable-input.span9 {+  width: 690px;+}+input.span8, textarea.span8, .uneditable-input.span8 {+  width: 610px;+}+input.span7, textarea.span7, .uneditable-input.span7 {+  width: 530px;+}+input.span6, textarea.span6, .uneditable-input.span6 {+  width: 450px;+}+input.span5, textarea.span5, .uneditable-input.span5 {+  width: 370px;+}+input.span4, textarea.span4, .uneditable-input.span4 {+  width: 290px;+}+input.span3, textarea.span3, .uneditable-input.span3 {+  width: 210px;+}+input.span2, textarea.span2, .uneditable-input.span2 {+  width: 130px;+}+input.span1, textarea.span1, .uneditable-input.span1 {+  width: 50px;+}+input[disabled],+select[disabled],+textarea[disabled],+input[readonly],+select[readonly],+textarea[readonly] {+  background-color: #eeeeee;+  border-color: #ddd;+  cursor: not-allowed;+}+.control-group.warning > label,+.control-group.warning .help-block,+.control-group.warning .help-inline {+  color: #c09853;+}+.control-group.warning input,+.control-group.warning select,+.control-group.warning textarea {+  color: #c09853;+  border-color: #c09853;+}+.control-group.warning input:focus,+.control-group.warning select:focus,+.control-group.warning textarea:focus {+  border-color: #a47e3c;+  -webkit-box-shadow: 0 0 6px #dbc59e;+  -moz-box-shadow: 0 0 6px #dbc59e;+  box-shadow: 0 0 6px #dbc59e;+}+.control-group.warning .input-prepend .add-on,+.control-group.warning .input-append .add-on {+  color: #c09853;+  background-color: #fcf8e3;+  border-color: #c09853;+}+.control-group.error > label,+.control-group.error .help-block,+.control-group.error .help-inline {+  color: #b94a48;+}+.control-group.error input,+.control-group.error select,+.control-group.error textarea {+  color: #b94a48;+  border-color: #b94a48;+}+.control-group.error input:focus,+.control-group.error select:focus,+.control-group.error textarea:focus {+  border-color: #953b39;+  -webkit-box-shadow: 0 0 6px #d59392;+  -moz-box-shadow: 0 0 6px #d59392;+  box-shadow: 0 0 6px #d59392;+}+.control-group.error .input-prepend .add-on,+.control-group.error .input-append .add-on {+  color: #b94a48;+  background-color: #f2dede;+  border-color: #b94a48;+}+.control-group.success > label,+.control-group.success .help-block,+.control-group.success .help-inline {+  color: #468847;+}+.control-group.success input,+.control-group.success select,+.control-group.success textarea {+  color: #468847;+  border-color: #468847;+}+.control-group.success input:focus,+.control-group.success select:focus,+.control-group.success textarea:focus {+  border-color: #356635;+  -webkit-box-shadow: 0 0 6px #7aba7b;+  -moz-box-shadow: 0 0 6px #7aba7b;+  box-shadow: 0 0 6px #7aba7b;+}+.control-group.success .input-prepend .add-on,+.control-group.success .input-append .add-on {+  color: #468847;+  background-color: #dff0d8;+  border-color: #468847;+}+input:focus:required:invalid,+textarea:focus:required:invalid,+select:focus:required:invalid {+  color: #b94a48;+  border-color: #ee5f5b;+}+input:focus:required:invalid:focus,+textarea:focus:required:invalid:focus,+select:focus:required:invalid:focus {+  border-color: #e9322d;+  -webkit-box-shadow: 0 0 6px #f8b9b7;+  -moz-box-shadow: 0 0 6px #f8b9b7;+  box-shadow: 0 0 6px #f8b9b7;+}+.form-actions {+  padding: 17px 20px 18px;+  margin-top: 18px;+  margin-bottom: 18px;+  background-color: #eeeeee;+  border-top: 1px solid #ddd;+  *zoom: 1;+}+.form-actions:before,+.form-actions:after {+  display: table;+  content: "";+}+.form-actions:after {+  clear: both;+}+.uneditable-input {+  display: block;+  background-color: #ffffff;+  border-color: #eee;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  cursor: not-allowed;+}+:-moz-placeholder {+  color: #999999;+}+::-webkit-input-placeholder {+  color: #999999;+}+.help-block,+.help-inline {+  color: #555555;+}+.help-block {+  display: block;+  margin-bottom: 9px;+}+.help-inline {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  vertical-align: middle;+  padding-left: 5px;+}+.input-prepend,+.input-append {+  margin-bottom: 5px;+}+.input-prepend input,+.input-append input,+.input-prepend select,+.input-append select,+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  *margin-left: 0;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend input:focus,+.input-append input:focus,+.input-prepend select:focus,+.input-append select:focus,+.input-prepend .uneditable-input:focus,+.input-append .uneditable-input:focus {+  position: relative;+  z-index: 2;+}+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  border-left-color: #ccc;+}+.input-prepend .add-on,+.input-append .add-on {+  display: inline-block;+  width: auto;+  min-width: 16px;+  height: 18px;+  padding: 4px 5px;+  font-weight: normal;+  line-height: 18px;+  text-align: center;+  text-shadow: 0 1px 0 #ffffff;+  vertical-align: middle;+  background-color: #eeeeee;+  border: 1px solid #ccc;+}+.input-prepend .add-on,+.input-append .add-on,+.input-prepend .btn,+.input-append .btn {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend .active,+.input-append .active {+  background-color: #a9dba9;+  border-color: #46a546;+}+.input-prepend .add-on,+.input-prepend .btn {+  margin-right: -1px;+}+.input-append input,+.input-append select .uneditable-input {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-append .uneditable-input {+  border-left-color: #eee;+  border-right-color: #ccc;+}+.input-append .add-on,+.input-append .btn {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend.input-append input,+.input-prepend.input-append select,+.input-prepend.input-append .uneditable-input {+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.input-prepend.input-append .add-on:first-child,+.input-prepend.input-append .btn:first-child {+  margin-right: -1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend.input-append .add-on:last-child,+.input-prepend.input-append .btn:last-child {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.search-query {+  padding-left: 14px;+  padding-right: 14px;+  margin-bottom: 0;+  -webkit-border-radius: 14px;+  -moz-border-radius: 14px;+  border-radius: 14px;+}+.form-search input,+.form-inline input,+.form-horizontal input,+.form-search textarea,+.form-inline textarea,+.form-horizontal textarea,+.form-search select,+.form-inline select,+.form-horizontal select,+.form-search .help-inline,+.form-inline .help-inline,+.form-horizontal .help-inline,+.form-search .uneditable-input,+.form-inline .uneditable-input,+.form-horizontal .uneditable-input,+.form-search .input-prepend,+.form-inline .input-prepend,+.form-horizontal .input-prepend,+.form-search .input-append,+.form-inline .input-append,+.form-horizontal .input-append {+  display: inline-block;+  margin-bottom: 0;+}+.form-search .hide,+.form-inline .hide,+.form-horizontal .hide {+  display: none;+}+.form-search label,+.form-inline label {+  display: inline-block;+}+.form-search .input-append,+.form-inline .input-append,+.form-search .input-prepend,+.form-inline .input-prepend {+  margin-bottom: 0;+}+.form-search .radio,+.form-search .checkbox,+.form-inline .radio,+.form-inline .checkbox {+  padding-left: 0;+  margin-bottom: 0;+  vertical-align: middle;+}+.form-search .radio input[type="radio"],+.form-search .checkbox input[type="checkbox"],+.form-inline .radio input[type="radio"],+.form-inline .checkbox input[type="checkbox"] {+  float: left;+  margin-left: 0;+  margin-right: 3px;+}+.control-group {+  margin-bottom: 9px;+}+legend + .control-group {+  margin-top: 18px;+  -webkit-margin-top-collapse: separate;+}+.form-horizontal .control-group {+  margin-bottom: 18px;+  *zoom: 1;+}+.form-horizontal .control-group:before,+.form-horizontal .control-group:after {+  display: table;+  content: "";+}+.form-horizontal .control-group:after {+  clear: both;+}+.form-horizontal .control-label {+  float: left;+  width: 140px;+  padding-top: 5px;+  text-align: right;+}+.form-horizontal .controls {+  margin-left: 160px;+  /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */++  *display: inline-block;+  *margin-left: 0;+  *padding-left: 20px;+}+.form-horizontal .help-block {+  margin-top: 9px;+  margin-bottom: 0;+}+.form-horizontal .form-actions {+  padding-left: 160px;+}+table {+  max-width: 100%;+  border-collapse: collapse;+  border-spacing: 0;+  background-color: transparent;+}+.table {+  width: 100%;+  margin-bottom: 18px;+}+.table th,+.table td {+  padding: 8px;+  line-height: 18px;+  text-align: left;+  vertical-align: top;+  border-top: 1px solid #dddddd;+}+.table th {+  font-weight: bold;+}+.table thead th {+  vertical-align: bottom;+}+.table colgroup + thead tr:first-child th,+.table colgroup + thead tr:first-child td,+.table thead:first-child tr:first-child th,+.table thead:first-child tr:first-child td {+  border-top: 0;+}+.table tbody + tbody {+  border-top: 2px solid #dddddd;+}+.table-condensed th,+.table-condensed td {+  padding: 4px 5px;+}+.table-bordered {+  border: 1px solid #dddddd;+  border-left: 0;+  border-collapse: separate;+  *border-collapse: collapsed;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.table-bordered th,+.table-bordered td {+  border-left: 1px solid #dddddd;+}+.table-bordered thead:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child td {+  border-top: 0;+}+.table-bordered thead:first-child tr:first-child th:first-child,+.table-bordered tbody:first-child tr:first-child td:first-child {+  -webkit-border-radius: 4px 0 0 0;+  -moz-border-radius: 4px 0 0 0;+  border-radius: 4px 0 0 0;+}+.table-bordered thead:first-child tr:first-child th:last-child,+.table-bordered tbody:first-child tr:first-child td:last-child {+  -webkit-border-radius: 0 4px 0 0;+  -moz-border-radius: 0 4px 0 0;+  border-radius: 0 4px 0 0;+}+.table-bordered thead:last-child tr:last-child th:first-child,+.table-bordered tbody:last-child tr:last-child td:first-child {+  -webkit-border-radius: 0 0 0 4px;+  -moz-border-radius: 0 0 0 4px;+  border-radius: 0 0 0 4px;+}+.table-bordered thead:last-child tr:last-child th:last-child,+.table-bordered tbody:last-child tr:last-child td:last-child {+  -webkit-border-radius: 0 0 4px 0;+  -moz-border-radius: 0 0 4px 0;+  border-radius: 0 0 4px 0;+}+.table-striped tbody tr:nth-child(odd) td,+.table-striped tbody tr:nth-child(odd) th {+  background-color: #f9f9f9;+}+.table tbody tr:hover td,+.table tbody tr:hover th {+  background-color: #f5f5f5;+}+table .span1 {+  float: none;+  width: 44px;+  margin-left: 0;+}+table .span2 {+  float: none;+  width: 124px;+  margin-left: 0;+}+table .span3 {+  float: none;+  width: 204px;+  margin-left: 0;+}+table .span4 {+  float: none;+  width: 284px;+  margin-left: 0;+}+table .span5 {+  float: none;+  width: 364px;+  margin-left: 0;+}+table .span6 {+  float: none;+  width: 444px;+  margin-left: 0;+}+table .span7 {+  float: none;+  width: 524px;+  margin-left: 0;+}+table .span8 {+  float: none;+  width: 604px;+  margin-left: 0;+}+table .span9 {+  float: none;+  width: 684px;+  margin-left: 0;+}+table .span10 {+  float: none;+  width: 764px;+  margin-left: 0;+}+table .span11 {+  float: none;+  width: 844px;+  margin-left: 0;+}+table .span12 {+  float: none;+  width: 924px;+  margin-left: 0;+}+table .span13 {+  float: none;+  width: 1004px;+  margin-left: 0;+}+table .span14 {+  float: none;+  width: 1084px;+  margin-left: 0;+}+table .span15 {+  float: none;+  width: 1164px;+  margin-left: 0;+}+table .span16 {+  float: none;+  width: 1244px;+  margin-left: 0;+}+table .span17 {+  float: none;+  width: 1324px;+  margin-left: 0;+}+table .span18 {+  float: none;+  width: 1404px;+  margin-left: 0;+}+table .span19 {+  float: none;+  width: 1484px;+  margin-left: 0;+}+table .span20 {+  float: none;+  width: 1564px;+  margin-left: 0;+}+table .span21 {+  float: none;+  width: 1644px;+  margin-left: 0;+}+table .span22 {+  float: none;+  width: 1724px;+  margin-left: 0;+}+table .span23 {+  float: none;+  width: 1804px;+  margin-left: 0;+}+table .span24 {+  float: none;+  width: 1884px;+  margin-left: 0;+}+[class^="icon-"],+[class*=" icon-"] {+  display: inline-block;+  width: 14px;+  height: 14px;+  line-height: 14px;+  vertical-align: text-top;+  background-image: url("../img/glyphicons-halflings.png");+  background-position: 14px 14px;+  background-repeat: no-repeat;+  *margin-right: .3em;+}+[class^="icon-"]:last-child,+[class*=" icon-"]:last-child {+  *margin-left: 0;+}+.icon-white {+  background-image: url("../img/glyphicons-halflings-white.png");+}+.icon-glass {+  background-position: 0      0;+}+.icon-music {+  background-position: -24px 0;+}+.icon-search {+  background-position: -48px 0;+}+.icon-envelope {+  background-position: -72px 0;+}+.icon-heart {+  background-position: -96px 0;+}+.icon-star {+  background-position: -120px 0;+}+.icon-star-empty {+  background-position: -144px 0;+}+.icon-user {+  background-position: -168px 0;+}+.icon-film {+  background-position: -192px 0;+}+.icon-th-large {+  background-position: -216px 0;+}+.icon-th {+  background-position: -240px 0;+}+.icon-th-list {+  background-position: -264px 0;+}+.icon-ok {+  background-position: -288px 0;+}+.icon-remove {+  background-position: -312px 0;+}+.icon-zoom-in {+  background-position: -336px 0;+}+.icon-zoom-out {+  background-position: -360px 0;+}+.icon-off {+  background-position: -384px 0;+}+.icon-signal {+  background-position: -408px 0;+}+.icon-cog {+  background-position: -432px 0;+}+.icon-trash {+  background-position: -456px 0;+}+.icon-home {+  background-position: 0 -24px;+}+.icon-file {+  background-position: -24px -24px;+}+.icon-time {+  background-position: -48px -24px;+}+.icon-road {+  background-position: -72px -24px;+}+.icon-download-alt {+  background-position: -96px -24px;+}+.icon-download {+  background-position: -120px -24px;+}+.icon-upload {+  background-position: -144px -24px;+}+.icon-inbox {+  background-position: -168px -24px;+}+.icon-play-circle {+  background-position: -192px -24px;+}+.icon-repeat {+  background-position: -216px -24px;+}+.icon-refresh {+  background-position: -240px -24px;+}+.icon-list-alt {+  background-position: -264px -24px;+}+.icon-lock {+  background-position: -287px -24px;+}+.icon-flag {+  background-position: -312px -24px;+}+.icon-headphones {+  background-position: -336px -24px;+}+.icon-volume-off {+  background-position: -360px -24px;+}+.icon-volume-down {+  background-position: -384px -24px;+}+.icon-volume-up {+  background-position: -408px -24px;+}+.icon-qrcode {+  background-position: -432px -24px;+}+.icon-barcode {+  background-position: -456px -24px;+}+.icon-tag {+  background-position: 0 -48px;+}+.icon-tags {+  background-position: -25px -48px;+}+.icon-book {+  background-position: -48px -48px;+}+.icon-bookmark {+  background-position: -72px -48px;+}+.icon-print {+  background-position: -96px -48px;+}+.icon-camera {+  background-position: -120px -48px;+}+.icon-font {+  background-position: -144px -48px;+}+.icon-bold {+  background-position: -167px -48px;+}+.icon-italic {+  background-position: -192px -48px;+}+.icon-text-height {+  background-position: -216px -48px;+}+.icon-text-width {+  background-position: -240px -48px;+}+.icon-align-left {+  background-position: -264px -48px;+}+.icon-align-center {+  background-position: -288px -48px;+}+.icon-align-right {+  background-position: -312px -48px;+}+.icon-align-justify {+  background-position: -336px -48px;+}+.icon-list {+  background-position: -360px -48px;+}+.icon-indent-left {+  background-position: -384px -48px;+}+.icon-indent-right {+  background-position: -408px -48px;+}+.icon-facetime-video {+  background-position: -432px -48px;+}+.icon-picture {+  background-position: -456px -48px;+}+.icon-pencil {+  background-position: 0 -72px;+}+.icon-map-marker {+  background-position: -24px -72px;+}+.icon-adjust {+  background-position: -48px -72px;+}+.icon-tint {+  background-position: -72px -72px;+}+.icon-edit {+  background-position: -96px -72px;+}+.icon-share {+  background-position: -120px -72px;+}+.icon-check {+  background-position: -144px -72px;+}+.icon-move {+  background-position: -168px -72px;+}+.icon-step-backward {+  background-position: -192px -72px;+}+.icon-fast-backward {+  background-position: -216px -72px;+}+.icon-backward {+  background-position: -240px -72px;+}+.icon-play {+  background-position: -264px -72px;+}+.icon-pause {+  background-position: -288px -72px;+}+.icon-stop {+  background-position: -312px -72px;+}+.icon-forward {+  background-position: -336px -72px;+}+.icon-fast-forward {+  background-position: -360px -72px;+}+.icon-step-forward {+  background-position: -384px -72px;+}+.icon-eject {+  background-position: -408px -72px;+}+.icon-chevron-left {+  background-position: -432px -72px;+}+.icon-chevron-right {+  background-position: -456px -72px;+}+.icon-plus-sign {+  background-position: 0 -96px;+}+.icon-minus-sign {+  background-position: -24px -96px;+}+.icon-remove-sign {+  background-position: -48px -96px;+}+.icon-ok-sign {+  background-position: -72px -96px;+}+.icon-question-sign {+  background-position: -96px -96px;+}+.icon-info-sign {+  background-position: -120px -96px;+}+.icon-screenshot {+  background-position: -144px -96px;+}+.icon-remove-circle {+  background-position: -168px -96px;+}+.icon-ok-circle {+  background-position: -192px -96px;+}+.icon-ban-circle {+  background-position: -216px -96px;+}+.icon-arrow-left {+  background-position: -240px -96px;+}+.icon-arrow-right {+  background-position: -264px -96px;+}+.icon-arrow-up {+  background-position: -289px -96px;+}+.icon-arrow-down {+  background-position: -312px -96px;+}+.icon-share-alt {+  background-position: -336px -96px;+}+.icon-resize-full {+  background-position: -360px -96px;+}+.icon-resize-small {+  background-position: -384px -96px;+}+.icon-plus {+  background-position: -408px -96px;+}+.icon-minus {+  background-position: -433px -96px;+}+.icon-asterisk {+  background-position: -456px -96px;+}+.icon-exclamation-sign {+  background-position: 0 -120px;+}+.icon-gift {+  background-position: -24px -120px;+}+.icon-leaf {+  background-position: -48px -120px;+}+.icon-fire {+  background-position: -72px -120px;+}+.icon-eye-open {+  background-position: -96px -120px;+}+.icon-eye-close {+  background-position: -120px -120px;+}+.icon-warning-sign {+  background-position: -144px -120px;+}+.icon-plane {+  background-position: -168px -120px;+}+.icon-calendar {+  background-position: -192px -120px;+}+.icon-random {+  background-position: -216px -120px;+}+.icon-comment {+  background-position: -240px -120px;+}+.icon-magnet {+  background-position: -264px -120px;+}+.icon-chevron-up {+  background-position: -288px -120px;+}+.icon-chevron-down {+  background-position: -313px -119px;+}+.icon-retweet {+  background-position: -336px -120px;+}+.icon-shopping-cart {+  background-position: -360px -120px;+}+.icon-folder-close {+  background-position: -384px -120px;+}+.icon-folder-open {+  background-position: -408px -120px;+}+.icon-resize-vertical {+  background-position: -432px -119px;+}+.icon-resize-horizontal {+  background-position: -456px -118px;+}+.dropdown {+  position: relative;+}+.dropdown-toggle {+  *margin-bottom: -3px;+}+.dropdown-toggle:active,+.open .dropdown-toggle {+  outline: 0;+}+.caret {+  display: inline-block;+  width: 0;+  height: 0;+  vertical-align: top;+  border-left: 4px solid transparent;+  border-right: 4px solid transparent;+  border-top: 4px solid #000000;+  opacity: 0.3;+  filter: alpha(opacity=30);+  content: "";+}+.dropdown .caret {+  margin-top: 8px;+  margin-left: 2px;+}+.dropdown:hover .caret,+.open.dropdown .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.dropdown-menu {+  position: absolute;+  top: 100%;+  left: 0;+  z-index: 1000;+  float: left;+  display: none;+  min-width: 160px;+  padding: 4px 0;+  margin: 0;+  list-style: none;+  background-color: #ffffff;+  border-color: #ccc;+  border-color: rgba(0, 0, 0, 0.2);+  border-style: solid;+  border-width: 1px;+  -webkit-border-radius: 0 0 5px 5px;+  -moz-border-radius: 0 0 5px 5px;+  border-radius: 0 0 5px 5px;+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding;+  background-clip: padding-box;+  *border-right-width: 2px;+  *border-bottom-width: 2px;+}+.dropdown-menu.pull-right {+  right: 0;+  left: auto;+}+.dropdown-menu .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.dropdown-menu a {+  display: block;+  padding: 3px 15px;+  clear: both;+  font-weight: normal;+  line-height: 18px;+  color: #333333;+  white-space: nowrap;+}+.dropdown-menu li > a:hover,+.dropdown-menu .active > a,+.dropdown-menu .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #0088cc;+}+.dropdown.open {+  *z-index: 1000;+}+.dropdown.open .dropdown-toggle {+  color: #ffffff;+  background: #ccc;+  background: rgba(0, 0, 0, 0.3);+}+.dropdown.open .dropdown-menu {+  display: block;+}+.pull-right .dropdown-menu {+  left: auto;+  right: 0;+}+.dropup .caret,+.navbar-fixed-bottom .dropdown .caret {+  border-top: 0;+  border-bottom: 4px solid #000000;+  content: "\2191";+}+.dropup .dropdown-menu,+.navbar-fixed-bottom .dropdown .dropdown-menu {+  top: auto;+  bottom: 100%;+  margin-bottom: 1px;+}+.typeahead {+  margin-top: 2px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.well {+  min-height: 20px;+  padding: 19px;+  margin-bottom: 20px;+  background-color: #f5f5f5;+  border: 1px solid #eee;+  border: 1px solid rgba(0, 0, 0, 0.05);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+}+.well blockquote {+  border-color: #ddd;+  border-color: rgba(0, 0, 0, 0.15);+}+.well-large {+  padding: 24px;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.well-small {+  padding: 9px;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.fade {+  -webkit-transition: opacity 0.15s linear;+  -moz-transition: opacity 0.15s linear;+  -ms-transition: opacity 0.15s linear;+  -o-transition: opacity 0.15s linear;+  transition: opacity 0.15s linear;+  opacity: 0;+}+.fade.in {+  opacity: 1;+}+.collapse {+  -webkit-transition: height 0.35s ease;+  -moz-transition: height 0.35s ease;+  -ms-transition: height 0.35s ease;+  -o-transition: height 0.35s ease;+  transition: height 0.35s ease;+  position: relative;+  overflow: hidden;+  height: 0;+}+.collapse.in {+  height: auto;+}+.close {+  float: right;+  font-size: 20px;+  font-weight: bold;+  line-height: 18px;+  color: #000000;+  text-shadow: 0 1px 0 #ffffff;+  opacity: 0.2;+  filter: alpha(opacity=20);+}+.close:hover {+  color: #000000;+  text-decoration: none;+  opacity: 0.4;+  filter: alpha(opacity=40);+  cursor: pointer;+}+.btn {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  padding: 4px 10px 4px;+  margin-bottom: 0;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  text-align: center;+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);+  vertical-align: middle;+  background-color: #f5f5f5;+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: linear-gradient(top, #ffffff, #e6e6e6);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  border: 1px solid #cccccc;+  border-bottom-color: #b3b3b3;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  cursor: pointer;+  *margin-left: .3em;+}+.btn:hover,+.btn:active,+.btn.active,+.btn.disabled,+.btn[disabled] {+  background-color: #e6e6e6;+}+.btn:active,+.btn.active {+  background-color: #cccccc \9;+}+.btn:first-child {+  *margin-left: 0;+}+.btn:hover {+  color: #333333;+  text-decoration: none;+  background-color: #e6e6e6;+  background-position: 0 -15px;+  -webkit-transition: background-position 0.1s linear;+  -moz-transition: background-position 0.1s linear;+  -ms-transition: background-position 0.1s linear;+  -o-transition: background-position 0.1s linear;+  transition: background-position 0.1s linear;+}+.btn:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.btn.active,+.btn:active {+  background-image: none;+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  background-color: #e6e6e6;+  background-color: #d9d9d9 \9;+  outline: 0;+}+.btn.disabled,+.btn[disabled] {+  cursor: default;+  background-image: none;+  background-color: #e6e6e6;+  opacity: 0.65;+  filter: alpha(opacity=65);+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+.btn-large {+  padding: 9px 14px;+  font-size: 15px;+  line-height: normal;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-large [class^="icon-"] {+  margin-top: 1px;+}+.btn-small {+  padding: 5px 9px;+  font-size: 11px;+  line-height: 16px;+}+.btn-small [class^="icon-"] {+  margin-top: -1px;+}+.btn-mini {+  padding: 2px 6px;+  font-size: 11px;+  line-height: 14px;+}+.btn-primary,+.btn-primary:hover,+.btn-warning,+.btn-warning:hover,+.btn-danger,+.btn-danger:hover,+.btn-success,+.btn-success:hover,+.btn-info,+.btn-info:hover,+.btn-inverse,+.btn-inverse:hover {+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  color: #ffffff;+}+.btn-primary.active,+.btn-warning.active,+.btn-danger.active,+.btn-success.active,+.btn-info.active,+.btn-inverse.active {+  color: rgba(255, 255, 255, 0.75);+}+.btn-primary {+  background-color: #0074cc;+  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);+  background-image: -ms-linear-gradient(top, #0088cc, #0055cc);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));+  background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);+  background-image: -o-linear-gradient(top, #0088cc, #0055cc);+  background-image: linear-gradient(top, #0088cc, #0055cc);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);+  border-color: #0055cc #0055cc #003580;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-primary:hover,+.btn-primary:active,+.btn-primary.active,+.btn-primary.disabled,+.btn-primary[disabled] {+  background-color: #0055cc;+}+.btn-primary:active,+.btn-primary.active {+  background-color: #004099 \9;+}+.btn-warning {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+  border-color: #f89406 #f89406 #ad6704;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-warning:hover,+.btn-warning:active,+.btn-warning.active,+.btn-warning.disabled,+.btn-warning[disabled] {+  background-color: #f89406;+}+.btn-warning:active,+.btn-warning.active {+  background-color: #c67605 \9;+}+.btn-danger {+  background-color: #da4f49;+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: linear-gradient(top, #ee5f5b, #bd362f);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);+  border-color: #bd362f #bd362f #802420;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-danger:hover,+.btn-danger:active,+.btn-danger.active,+.btn-danger.disabled,+.btn-danger[disabled] {+  background-color: #bd362f;+}+.btn-danger:active,+.btn-danger.active {+  background-color: #942a25 \9;+}+.btn-success {+  background-color: #5bb75b;+  background-image: -moz-linear-gradient(top, #62c462, #51a351);+  background-image: -ms-linear-gradient(top, #62c462, #51a351);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);+  background-image: -o-linear-gradient(top, #62c462, #51a351);+  background-image: linear-gradient(top, #62c462, #51a351);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);+  border-color: #51a351 #51a351 #387038;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-success:hover,+.btn-success:active,+.btn-success.active,+.btn-success.disabled,+.btn-success[disabled] {+  background-color: #51a351;+}+.btn-success:active,+.btn-success.active {+  background-color: #408140 \9;+}+.btn-info {+  background-color: #49afcd;+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: linear-gradient(top, #5bc0de, #2f96b4);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);+  border-color: #2f96b4 #2f96b4 #1f6377;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-info:hover,+.btn-info:active,+.btn-info.active,+.btn-info.disabled,+.btn-info[disabled] {+  background-color: #2f96b4;+}+.btn-info:active,+.btn-info.active {+  background-color: #24748c \9;+}+.btn-inverse {+  background-color: #414141;+  background-image: -moz-linear-gradient(top, #555555, #222222);+  background-image: -ms-linear-gradient(top, #555555, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));+  background-image: -webkit-linear-gradient(top, #555555, #222222);+  background-image: -o-linear-gradient(top, #555555, #222222);+  background-image: linear-gradient(top, #555555, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-inverse:hover,+.btn-inverse:active,+.btn-inverse.active,+.btn-inverse.disabled,+.btn-inverse[disabled] {+  background-color: #222222;+}+.btn-inverse:active,+.btn-inverse.active {+  background-color: #080808 \9;+}+button.btn,+input[type="submit"].btn {+  *padding-top: 2px;+  *padding-bottom: 2px;+}+button.btn::-moz-focus-inner,+input[type="submit"].btn::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button.btn.btn-large,+input[type="submit"].btn.btn-large {+  *padding-top: 7px;+  *padding-bottom: 7px;+}+button.btn.btn-small,+input[type="submit"].btn.btn-small {+  *padding-top: 3px;+  *padding-bottom: 3px;+}+button.btn.btn-mini,+input[type="submit"].btn.btn-mini {+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group {+  position: relative;+  *zoom: 1;+  *margin-left: .3em;+}+.btn-group:before,+.btn-group:after {+  display: table;+  content: "";+}+.btn-group:after {+  clear: both;+}+.btn-group:first-child {+  *margin-left: 0;+}+.btn-group + .btn-group {+  margin-left: 5px;+}+.btn-toolbar {+  margin-top: 9px;+  margin-bottom: 9px;+}+.btn-toolbar .btn-group {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+}+.btn-group .btn {+  position: relative;+  float: left;+  margin-left: -1px;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.btn-group .btn:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 4px;+  -moz-border-radius-topleft: 4px;+  border-top-left-radius: 4px;+  -webkit-border-bottom-left-radius: 4px;+  -moz-border-radius-bottomleft: 4px;+  border-bottom-left-radius: 4px;+}+.btn-group .btn:last-child,+.btn-group .dropdown-toggle {+  -webkit-border-top-right-radius: 4px;+  -moz-border-radius-topright: 4px;+  border-top-right-radius: 4px;+  -webkit-border-bottom-right-radius: 4px;+  -moz-border-radius-bottomright: 4px;+  border-bottom-right-radius: 4px;+}+.btn-group .btn.large:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 6px;+  -moz-border-radius-topleft: 6px;+  border-top-left-radius: 6px;+  -webkit-border-bottom-left-radius: 6px;+  -moz-border-radius-bottomleft: 6px;+  border-bottom-left-radius: 6px;+}+.btn-group .btn.large:last-child,+.btn-group .large.dropdown-toggle {+  -webkit-border-top-right-radius: 6px;+  -moz-border-radius-topright: 6px;+  border-top-right-radius: 6px;+  -webkit-border-bottom-right-radius: 6px;+  -moz-border-radius-bottomright: 6px;+  border-bottom-right-radius: 6px;+}+.btn-group .btn:hover,+.btn-group .btn:focus,+.btn-group .btn:active,+.btn-group .btn.active {+  z-index: 2;+}+.btn-group .dropdown-toggle:active,+.btn-group.open .dropdown-toggle {+  outline: 0;+}+.btn-group .dropdown-toggle {+  padding-left: 8px;+  padding-right: 8px;+  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  *padding-top: 3px;+  *padding-bottom: 3px;+}+.btn-group .btn-mini.dropdown-toggle {+  padding-left: 5px;+  padding-right: 5px;+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group .btn-small.dropdown-toggle {+  *padding-top: 4px;+  *padding-bottom: 4px;+}+.btn-group .btn-large.dropdown-toggle {+  padding-left: 12px;+  padding-right: 12px;+}+.btn-group.open {+  *z-index: 1000;+}+.btn-group.open .dropdown-menu {+  display: block;+  margin-top: 1px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-group.open .dropdown-toggle {+  background-image: none;+  -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+}+.btn .caret {+  margin-top: 7px;+  margin-left: 0;+}+.btn:hover .caret,+.open.btn-group .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.btn-mini .caret {+  margin-top: 5px;+}+.btn-small .caret {+  margin-top: 6px;+}+.btn-large .caret {+  margin-top: 6px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.btn-primary .caret,+.btn-warning .caret,+.btn-danger .caret,+.btn-info .caret,+.btn-success .caret,+.btn-inverse .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 0.75;+  filter: alpha(opacity=75);+}+.alert {+  padding: 8px 35px 8px 14px;+  margin-bottom: 18px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  background-color: #fcf8e3;+  border: 1px solid #fbeed5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  color: #c09853;+}+.alert-heading {+  color: inherit;+}+.alert .close {+  position: relative;+  top: -2px;+  right: -21px;+  line-height: 18px;+}+.alert-success {+  background-color: #dff0d8;+  border-color: #d6e9c6;+  color: #468847;+}+.alert-danger,+.alert-error {+  background-color: #f2dede;+  border-color: #eed3d7;+  color: #b94a48;+}+.alert-info {+  background-color: #d9edf7;+  border-color: #bce8f1;+  color: #3a87ad;+}+.alert-block {+  padding-top: 14px;+  padding-bottom: 14px;+}+.alert-block > p,+.alert-block > ul {+  margin-bottom: 0;+}+.alert-block p + p {+  margin-top: 5px;+}+.nav {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+}+.nav > li > a {+  display: block;+}+.nav > li > a:hover {+  text-decoration: none;+  background-color: #eeeeee;+}+.nav .nav-header {+  display: block;+  padding: 3px 15px;+  font-size: 11px;+  font-weight: bold;+  line-height: 18px;+  color: #999999;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  text-transform: uppercase;+}+.nav li + .nav-header {+  margin-top: 9px;+}+.nav-list {+  padding-left: 15px;+  padding-right: 15px;+  margin-bottom: 0;+}+.nav-list > li > a,+.nav-list .nav-header {+  margin-left: -15px;+  margin-right: -15px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+}+.nav-list > li > a {+  padding: 3px 15px;+}+.nav-list > .active > a,+.nav-list > .active > a:hover {+  color: #ffffff;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);+  background-color: #0088cc;+}+.nav-list [class^="icon-"] {+  margin-right: 2px;+}+.nav-list .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.nav-tabs,+.nav-pills {+  *zoom: 1;+}+.nav-tabs:before,+.nav-pills:before,+.nav-tabs:after,+.nav-pills:after {+  display: table;+  content: "";+}+.nav-tabs:after,+.nav-pills:after {+  clear: both;+}+.nav-tabs > li,+.nav-pills > li {+  float: left;+}+.nav-tabs > li > a,+.nav-pills > li > a {+  padding-right: 12px;+  padding-left: 12px;+  margin-right: 2px;+  line-height: 14px;+}+.nav-tabs {+  border-bottom: 1px solid #ddd;+}+.nav-tabs > li {+  margin-bottom: -1px;+}+.nav-tabs > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  line-height: 18px;+  border: 1px solid transparent;+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #dddddd;+}+.nav-tabs > .active > a,+.nav-tabs > .active > a:hover {+  color: #555555;+  background-color: #ffffff;+  border: 1px solid #ddd;+  border-bottom-color: transparent;+  cursor: default;+}+.nav-pills > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  margin-top: 2px;+  margin-bottom: 2px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.nav-pills > .active > a,+.nav-pills > .active > a:hover {+  color: #ffffff;+  background-color: #0088cc;+}+.nav-stacked > li {+  float: none;+}+.nav-stacked > li > a {+  margin-right: 0;+}+.nav-tabs.nav-stacked {+  border-bottom: 0;+}+.nav-tabs.nav-stacked > li > a {+  border: 1px solid #ddd;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.nav-tabs.nav-stacked > li:first-child > a {+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs.nav-stacked > li:last-child > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.nav-tabs.nav-stacked > li > a:hover {+  border-color: #ddd;+  z-index: 2;+}+.nav-pills.nav-stacked > li > a {+  margin-bottom: 3px;+}+.nav-pills.nav-stacked > li:last-child > a {+  margin-bottom: 1px;+}+.nav-tabs .dropdown-menu,+.nav-pills .dropdown-menu {+  margin-top: 1px;+  border-width: 1px;+}+.nav-pills .dropdown-menu {+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.nav-tabs .dropdown-toggle .caret,+.nav-pills .dropdown-toggle .caret {+  border-top-color: #0088cc;+  border-bottom-color: #0088cc;+  margin-top: 6px;+}+.nav-tabs .dropdown-toggle:hover .caret,+.nav-pills .dropdown-toggle:hover .caret {+  border-top-color: #005580;+  border-bottom-color: #005580;+}+.nav-tabs .active .dropdown-toggle .caret,+.nav-pills .active .dropdown-toggle .caret {+  border-top-color: #333333;+  border-bottom-color: #333333;+}+.nav > .dropdown.active > a:hover {+  color: #000000;+  cursor: pointer;+}+.nav-tabs .open .dropdown-toggle,+.nav-pills .open .dropdown-toggle,+.nav > .open.active > a:hover {+  color: #ffffff;+  background-color: #999999;+  border-color: #999999;+}+.nav .open .caret,+.nav .open.active .caret,+.nav .open a:hover .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 1;+  filter: alpha(opacity=100);+}+.tabs-stacked .open > a:hover {+  border-color: #999999;+}+.tabbable {+  *zoom: 1;+}+.tabbable:before,+.tabbable:after {+  display: table;+  content: "";+}+.tabbable:after {+  clear: both;+}+.tab-content {+  display: table;+  width: 100%;+}+.tabs-below .nav-tabs,+.tabs-right .nav-tabs,+.tabs-left .nav-tabs {+  border-bottom: 0;+}+.tab-content > .tab-pane,+.pill-content > .pill-pane {+  display: none;+}+.tab-content > .active,+.pill-content > .active {+  display: block;+}+.tabs-below .nav-tabs {+  border-top: 1px solid #ddd;+}+.tabs-below .nav-tabs > li {+  margin-top: -1px;+  margin-bottom: 0;+}+.tabs-below .nav-tabs > li > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.tabs-below .nav-tabs > li > a:hover {+  border-bottom-color: transparent;+  border-top-color: #ddd;+}+.tabs-below .nav-tabs .active > a,+.tabs-below .nav-tabs .active > a:hover {+  border-color: transparent #ddd #ddd #ddd;+}+.tabs-left .nav-tabs > li,+.tabs-right .nav-tabs > li {+  float: none;+}+.tabs-left .nav-tabs > li > a,+.tabs-right .nav-tabs > li > a {+  min-width: 74px;+  margin-right: 0;+  margin-bottom: 3px;+}+.tabs-left .nav-tabs {+  float: left;+  margin-right: 19px;+  border-right: 1px solid #ddd;+}+.tabs-left .nav-tabs > li > a {+  margin-right: -1px;+  -webkit-border-radius: 4px 0 0 4px;+  -moz-border-radius: 4px 0 0 4px;+  border-radius: 4px 0 0 4px;+}+.tabs-left .nav-tabs > li > a:hover {+  border-color: #eeeeee #dddddd #eeeeee #eeeeee;+}+.tabs-left .nav-tabs .active > a,+.tabs-left .nav-tabs .active > a:hover {+  border-color: #ddd transparent #ddd #ddd;+  *border-right-color: #ffffff;+}+.tabs-right .nav-tabs {+  float: right;+  margin-left: 19px;+  border-left: 1px solid #ddd;+}+.tabs-right .nav-tabs > li > a {+  margin-left: -1px;+  -webkit-border-radius: 0 4px 4px 0;+  -moz-border-radius: 0 4px 4px 0;+  border-radius: 0 4px 4px 0;+}+.tabs-right .nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #eeeeee #dddddd;+}+.tabs-right .nav-tabs .active > a,+.tabs-right .nav-tabs .active > a:hover {+  border-color: #ddd #ddd #ddd transparent;+  *border-left-color: #ffffff;+}+.navbar {+  *position: relative;+  *z-index: 2;+  overflow: visible;+  margin-bottom: 18px;+}+.navbar-inner {+  padding-left: 20px;+  padding-right: 20px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+}+.navbar .container {+  width: auto;+}+.btn-navbar {+  display: none;+  float: right;+  padding: 7px 10px;+  margin-left: 5px;+  margin-right: 5px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+}+.btn-navbar:hover,+.btn-navbar:active,+.btn-navbar.active,+.btn-navbar.disabled,+.btn-navbar[disabled] {+  background-color: #222222;+}+.btn-navbar:active,+.btn-navbar.active {+  background-color: #080808 \9;+}+.btn-navbar .icon-bar {+  display: block;+  width: 18px;+  height: 2px;+  background-color: #f5f5f5;+  -webkit-border-radius: 1px;+  -moz-border-radius: 1px;+  border-radius: 1px;+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+}+.btn-navbar .icon-bar + .icon-bar {+  margin-top: 3px;+}+.nav-collapse.collapse {+  height: auto;+}+.navbar {+  color: #999999;+}+.navbar .brand:hover {+  text-decoration: none;+}+.navbar .brand {+  float: left;+  display: block;+  padding: 8px 20px 12px;+  margin-left: -20px;+  font-size: 20px;+  font-weight: 200;+  line-height: 1;+  color: #ffffff;+}+.navbar .navbar-text {+  margin-bottom: 0;+  line-height: 40px;+}+.navbar .btn,+.navbar .btn-group {+  margin-top: 5px;+}+.navbar .btn-group .btn {+  margin-top: 0;+}+.navbar-form {+  margin-bottom: 0;+  *zoom: 1;+}+.navbar-form:before,+.navbar-form:after {+  display: table;+  content: "";+}+.navbar-form:after {+  clear: both;+}+.navbar-form input,+.navbar-form select,+.navbar-form .radio,+.navbar-form .checkbox {+  margin-top: 5px;+}+.navbar-form input,+.navbar-form select {+  display: inline-block;+  margin-bottom: 0;+}+.navbar-form input[type="image"],+.navbar-form input[type="checkbox"],+.navbar-form input[type="radio"] {+  margin-top: 3px;+}+.navbar-form .input-append,+.navbar-form .input-prepend {+  margin-top: 6px;+  white-space: nowrap;+}+.navbar-form .input-append input,+.navbar-form .input-prepend input {+  margin-top: 0;+}+.navbar-search {+  position: relative;+  float: left;+  margin-top: 6px;+  margin-bottom: 0;+}+.navbar-search .search-query {+  padding: 4px 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  font-weight: normal;+  line-height: 1;+  color: #ffffff;+  background-color: #626262;+  border: 1px solid #151515;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -webkit-transition: none;+  -moz-transition: none;+  -ms-transition: none;+  -o-transition: none;+  transition: none;+}+.navbar-search .search-query:-moz-placeholder {+  color: #cccccc;+}+.navbar-search .search-query::-webkit-input-placeholder {+  color: #cccccc;+}+.navbar-search .search-query:focus,+.navbar-search .search-query.focused {+  padding: 5px 10px;+  color: #333333;+  text-shadow: 0 1px 0 #ffffff;+  background-color: #ffffff;+  border: 0;+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  outline: 0;+}+.navbar-fixed-top,+.navbar-fixed-bottom {+  position: fixed;+  right: 0;+  left: 0;+  z-index: 1030;+  margin-bottom: 0;+}+.navbar-fixed-top .navbar-inner,+.navbar-fixed-bottom .navbar-inner {+  padding-left: 0;+  padding-right: 0;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.navbar-fixed-top {+  top: 0;+}+.navbar-fixed-bottom {+  bottom: 0;+}+.navbar .nav {+  position: relative;+  left: 0;+  display: block;+  float: left;+  margin: 0 10px 0 0;+}+.navbar .nav.pull-right {+  float: right;+}+.navbar .nav > li {+  display: block;+  float: left;+}+.navbar .nav > li > a {+  float: none;+  padding: 10px 10px 11px;+  line-height: 19px;+  color: #999999;+  text-decoration: none;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+}+.navbar .nav > li > a:hover {+  background-color: transparent;+  color: #ffffff;+  text-decoration: none;+}+.navbar .nav .active > a,+.navbar .nav .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #222222;+}+.navbar .divider-vertical {+  height: 40px;+  width: 1px;+  margin: 0 9px;+  overflow: hidden;+  background-color: #222222;+  border-right: 1px solid #333333;+}+.navbar .nav.pull-right {+  margin-left: 10px;+  margin-right: 0;+}+.navbar .dropdown-menu {+  margin-top: 1px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.navbar .dropdown-menu:before {+  content: '';+  display: inline-block;+  border-left: 7px solid transparent;+  border-right: 7px solid transparent;+  border-bottom: 7px solid #ccc;+  border-bottom-color: rgba(0, 0, 0, 0.2);+  position: absolute;+  top: -7px;+  left: 9px;+}+.navbar .dropdown-menu:after {+  content: '';+  display: inline-block;+  border-left: 6px solid transparent;+  border-right: 6px solid transparent;+  border-bottom: 6px solid #ffffff;+  position: absolute;+  top: -6px;+  left: 10px;+}+.navbar-fixed-bottom .dropdown-menu:before {+  border-top: 7px solid #ccc;+  border-top-color: rgba(0, 0, 0, 0.2);+  border-bottom: 0;+  bottom: -7px;+  top: auto;+}+.navbar-fixed-bottom .dropdown-menu:after {+  border-top: 6px solid #ffffff;+  border-bottom: 0;+  bottom: -6px;+  top: auto;+}+.navbar .nav .dropdown-toggle .caret,+.navbar .nav .open.dropdown .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+}+.navbar .nav .active .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.navbar .nav .open > .dropdown-toggle,+.navbar .nav .active > .dropdown-toggle,+.navbar .nav .open.active > .dropdown-toggle {+  background-color: transparent;+}+.navbar .nav .active > .dropdown-toggle:hover {+  color: #ffffff;+}+.navbar .nav.pull-right .dropdown-menu,+.navbar .nav .dropdown-menu.pull-right {+  left: auto;+  right: 0;+}+.navbar .nav.pull-right .dropdown-menu:before,+.navbar .nav .dropdown-menu.pull-right:before {+  left: auto;+  right: 12px;+}+.navbar .nav.pull-right .dropdown-menu:after,+.navbar .nav .dropdown-menu.pull-right:after {+  left: auto;+  right: 13px;+}+.breadcrumb {+  padding: 7px 14px;+  margin: 0 0 18px;+  list-style: none;+  background-color: #fbfbfb;+  background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));+  background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: linear-gradient(top, #ffffff, #f5f5f5);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);+  border: 1px solid #ddd;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+}+.breadcrumb li {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  text-shadow: 0 1px 0 #ffffff;+}+.breadcrumb .divider {+  padding: 0 5px;+  color: #999999;+}+.breadcrumb .active a {+  color: #333333;+}+.pagination {+  height: 36px;+  margin: 18px 0;+}+.pagination ul {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  margin-left: 0;+  margin-bottom: 0;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+}+.pagination li {+  display: inline;+}+.pagination a {+  float: left;+  padding: 0 14px;+  line-height: 34px;+  text-decoration: none;+  border: 1px solid #ddd;+  border-left-width: 0;+}+.pagination a:hover,+.pagination .active a {+  background-color: #f5f5f5;+}+.pagination .active a {+  color: #999999;+  cursor: default;+}+.pagination .disabled span,+.pagination .disabled a,+.pagination .disabled a:hover {+  color: #999999;+  background-color: transparent;+  cursor: default;+}+.pagination li:first-child a {+  border-left-width: 1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.pagination li:last-child a {+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.pagination-centered {+  text-align: center;+}+.pagination-right {+  text-align: right;+}+.pager {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+  text-align: center;+  *zoom: 1;+}+.pager:before,+.pager:after {+  display: table;+  content: "";+}+.pager:after {+  clear: both;+}+.pager li {+  display: inline;+}+.pager a {+  display: inline-block;+  padding: 5px 14px;+  background-color: #fff;+  border: 1px solid #ddd;+  -webkit-border-radius: 15px;+  -moz-border-radius: 15px;+  border-radius: 15px;+}+.pager a:hover {+  text-decoration: none;+  background-color: #f5f5f5;+}+.pager .next a {+  float: right;+}+.pager .previous a {+  float: left;+}+.pager .disabled a,+.pager .disabled a:hover {+  color: #999999;+  background-color: #fff;+  cursor: default;+}+.modal-open .dropdown-menu {+  z-index: 2050;+}+.modal-open .dropdown.open {+  *z-index: 2050;+}+.modal-open .popover {+  z-index: 2060;+}+.modal-open .tooltip {+  z-index: 2070;+}+.modal-backdrop {+  position: fixed;+  top: 0;+  right: 0;+  bottom: 0;+  left: 0;+  z-index: 1040;+  background-color: #000000;+}+.modal-backdrop.fade {+  opacity: 0;+}+.modal-backdrop,+.modal-backdrop.fade.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.modal {+  position: fixed;+  top: 50%;+  left: 50%;+  z-index: 1050;+  overflow: auto;+  width: 560px;+  margin: -250px 0 0 -280px;+  background-color: #ffffff;+  border: 1px solid #999;+  border: 1px solid rgba(0, 0, 0, 0.3);+  *border: 1px solid #999;+  /* IE6-7 */++  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.modal.fade {+  -webkit-transition: opacity .3s linear, top .3s ease-out;+  -moz-transition: opacity .3s linear, top .3s ease-out;+  -ms-transition: opacity .3s linear, top .3s ease-out;+  -o-transition: opacity .3s linear, top .3s ease-out;+  transition: opacity .3s linear, top .3s ease-out;+  top: -25%;+}+.modal.fade.in {+  top: 50%;+}+.modal-header {+  padding: 9px 15px;+  border-bottom: 1px solid #eee;+}+.modal-header .close {+  margin-top: 2px;+}+.modal-body {+  overflow-y: auto;+  max-height: 400px;+  padding: 15px;+}+.modal-form {+  margin-bottom: 0;+}+.modal-footer {+  padding: 14px 15px 15px;+  margin-bottom: 0;+  text-align: right;+  background-color: #f5f5f5;+  border-top: 1px solid #ddd;+  -webkit-border-radius: 0 0 6px 6px;+  -moz-border-radius: 0 0 6px 6px;+  border-radius: 0 0 6px 6px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+  *zoom: 1;+}+.modal-footer:before,+.modal-footer:after {+  display: table;+  content: "";+}+.modal-footer:after {+  clear: both;+}+.modal-footer .btn + .btn {+  margin-left: 5px;+  margin-bottom: 0;+}+.modal-footer .btn-group .btn + .btn {+  margin-left: -1px;+}+.tooltip {+  position: absolute;+  z-index: 1020;+  display: block;+  visibility: visible;+  padding: 5px;+  font-size: 11px;+  opacity: 0;+  filter: alpha(opacity=0);+}+.tooltip.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.tooltip.top {+  margin-top: -2px;+}+.tooltip.right {+  margin-left: 2px;+}+.tooltip.bottom {+  margin-top: 2px;+}+.tooltip.left {+  margin-left: -2px;+}+.tooltip.top .tooltip-arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.tooltip.left .tooltip-arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.tooltip.bottom .tooltip-arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.tooltip.right .tooltip-arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.tooltip-inner {+  max-width: 200px;+  padding: 3px 8px;+  color: #ffffff;+  text-align: center;+  text-decoration: none;+  background-color: #000000;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.tooltip-arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover {+  position: absolute;+  top: 0;+  left: 0;+  z-index: 1010;+  display: none;+  padding: 5px;+}+.popover.top {+  margin-top: -5px;+}+.popover.right {+  margin-left: 5px;+}+.popover.bottom {+  margin-top: 5px;+}+.popover.left {+  margin-left: -5px;+}+.popover.top .arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.popover.right .arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.popover.bottom .arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.popover.left .arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.popover .arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover-inner {+  padding: 3px;+  width: 280px;+  overflow: hidden;+  background: #000000;+  background: rgba(0, 0, 0, 0.8);+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+}+.popover-title {+  padding: 9px 15px;+  line-height: 1;+  background-color: #f5f5f5;+  border-bottom: 1px solid #eee;+  -webkit-border-radius: 3px 3px 0 0;+  -moz-border-radius: 3px 3px 0 0;+  border-radius: 3px 3px 0 0;+}+.popover-content {+  padding: 14px;+  background-color: #ffffff;+  -webkit-border-radius: 0 0 3px 3px;+  -moz-border-radius: 0 0 3px 3px;+  border-radius: 0 0 3px 3px;+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.popover-content p,+.popover-content ul,+.popover-content ol {+  margin-bottom: 0;+}+.thumbnails {+  margin-left: -20px;+  list-style: none;+  *zoom: 1;+}+.thumbnails:before,+.thumbnails:after {+  display: table;+  content: "";+}+.thumbnails:after {+  clear: both;+}+.thumbnails > li {+  float: left;+  margin: 0 0 18px 20px;+}+.thumbnail {+  display: block;+  padding: 4px;+  line-height: 1;+  border: 1px solid #ddd;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+}+a.thumbnail:hover {+  border-color: #0088cc;+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+}+.thumbnail > img {+  display: block;+  max-width: 100%;+  margin-left: auto;+  margin-right: auto;+}+.thumbnail .caption {+  padding: 9px;+}+.label {+  padding: 1px 4px 2px;+  font-size: 10.998px;+  font-weight: bold;+  line-height: 13px;+  color: #ffffff;+  vertical-align: middle;+  white-space: nowrap;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #999999;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.label:hover {+  color: #ffffff;+  text-decoration: none;+}+.label-important {+  background-color: #b94a48;+}+.label-important:hover {+  background-color: #953b39;+}+.label-warning {+  background-color: #f89406;+}+.label-warning:hover {+  background-color: #c67605;+}+.label-success {+  background-color: #468847;+}+.label-success:hover {+  background-color: #356635;+}+.label-info {+  background-color: #3a87ad;+}+.label-info:hover {+  background-color: #2d6987;+}+.label-inverse {+  background-color: #333333;+}+.label-inverse:hover {+  background-color: #1a1a1a;+}+.badge {+  padding: 1px 9px 2px;+  font-size: 12.025px;+  font-weight: bold;+  white-space: nowrap;+  color: #ffffff;+  background-color: #999999;+  -webkit-border-radius: 9px;+  -moz-border-radius: 9px;+  border-radius: 9px;+}+.badge:hover {+  color: #ffffff;+  text-decoration: none;+  cursor: pointer;+}+.badge-error {+  background-color: #b94a48;+}+.badge-error:hover {+  background-color: #953b39;+}+.badge-warning {+  background-color: #f89406;+}+.badge-warning:hover {+  background-color: #c67605;+}+.badge-success {+  background-color: #468847;+}+.badge-success:hover {+  background-color: #356635;+}+.badge-info {+  background-color: #3a87ad;+}+.badge-info:hover {+  background-color: #2d6987;+}+.badge-inverse {+  background-color: #333333;+}+.badge-inverse:hover {+  background-color: #1a1a1a;+}+@-webkit-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-moz-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-ms-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+.progress {+  overflow: hidden;+  height: 18px;+  margin-bottom: 18px;+  background-color: #f7f7f7;+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.progress .bar {+  width: 0%;+  height: 18px;+  color: #ffffff;+  font-size: 12px;+  text-align: center;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #0e90d2;+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);+  background-image: -ms-linear-gradient(top, #149bdf, #0480be);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);+  background-image: -o-linear-gradient(top, #149bdf, #0480be);+  background-image: linear-gradient(top, #149bdf, #0480be);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+  -webkit-transition: width 0.6s ease;+  -moz-transition: width 0.6s ease;+  -ms-transition: width 0.6s ease;+  -o-transition: width 0.6s ease;+  transition: width 0.6s ease;+}+.progress-striped .bar {+  background-color: #149bdf;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  -webkit-background-size: 40px 40px;+  -moz-background-size: 40px 40px;+  -o-background-size: 40px 40px;+  background-size: 40px 40px;+}+.progress.active .bar {+  -webkit-animation: progress-bar-stripes 2s linear infinite;+  -moz-animation: progress-bar-stripes 2s linear infinite;+  animation: progress-bar-stripes 2s linear infinite;+}+.progress-danger .bar {+  background-color: #dd514c;+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: linear-gradient(top, #ee5f5b, #c43c35);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);+}+.progress-danger.progress-striped .bar {+  background-color: #ee5f5b;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-success .bar {+  background-color: #5eb95e;+  background-image: -moz-linear-gradient(top, #62c462, #57a957);+  background-image: -ms-linear-gradient(top, #62c462, #57a957);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);+  background-image: -o-linear-gradient(top, #62c462, #57a957);+  background-image: linear-gradient(top, #62c462, #57a957);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);+}+.progress-success.progress-striped .bar {+  background-color: #62c462;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-info .bar {+  background-color: #4bb1cf;+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);+  background-image: linear-gradient(top, #5bc0de, #339bb9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);+}+.progress-info.progress-striped .bar {+  background-color: #5bc0de;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-warning .bar {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+}+.progress-warning.progress-striped .bar {+  background-color: #fbb450;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.accordion {+  margin-bottom: 18px;+}+.accordion-group {+  margin-bottom: 2px;+  border: 1px solid #e5e5e5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.accordion-heading {+  border-bottom: 0;+}+.accordion-heading .accordion-toggle {+  display: block;+  padding: 8px 15px;+}+.accordion-inner {+  padding: 9px 15px;+  border-top: 1px solid #e5e5e5;+}+.carousel {+  position: relative;+  margin-bottom: 18px;+  line-height: 1;+}+.carousel-inner {+  overflow: hidden;+  width: 100%;+  position: relative;+}+.carousel .item {+  display: none;+  position: relative;+  -webkit-transition: 0.6s ease-in-out left;+  -moz-transition: 0.6s ease-in-out left;+  -ms-transition: 0.6s ease-in-out left;+  -o-transition: 0.6s ease-in-out left;+  transition: 0.6s ease-in-out left;+}+.carousel .item > img {+  display: block;+  line-height: 1;+}+.carousel .active,+.carousel .next,+.carousel .prev {+  display: block;+}+.carousel .active {+  left: 0;+}+.carousel .next,+.carousel .prev {+  position: absolute;+  top: 0;+  width: 100%;+}+.carousel .next {+  left: 100%;+}+.carousel .prev {+  left: -100%;+}+.carousel .next.left,+.carousel .prev.right {+  left: 0;+}+.carousel .active.left {+  left: -100%;+}+.carousel .active.right {+  left: 100%;+}+.carousel-control {+  position: absolute;+  top: 40%;+  left: 15px;+  width: 40px;+  height: 40px;+  margin-top: -20px;+  font-size: 60px;+  font-weight: 100;+  line-height: 30px;+  color: #ffffff;+  text-align: center;+  background: #222222;+  border: 3px solid #ffffff;+  -webkit-border-radius: 23px;+  -moz-border-radius: 23px;+  border-radius: 23px;+  opacity: 0.5;+  filter: alpha(opacity=50);+}+.carousel-control.right {+  left: auto;+  right: 15px;+}+.carousel-control:hover {+  color: #ffffff;+  text-decoration: none;+  opacity: 0.9;+  filter: alpha(opacity=90);+}+.carousel-caption {+  position: absolute;+  left: 0;+  right: 0;+  bottom: 0;+  padding: 10px 15px 5px;+  background: #333333;+  background: rgba(0, 0, 0, 0.75);+}+.carousel-caption h4,+.carousel-caption p {+  color: #ffffff;+}+.hero-unit {+  padding: 60px;+  margin-bottom: 30px;+  background-color: #eeeeee;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.hero-unit h1 {+  margin-bottom: 0;+  font-size: 60px;+  line-height: 1;+  color: inherit;+  letter-spacing: -1px;+}+.hero-unit p {+  font-size: 18px;+  font-weight: 200;+  line-height: 27px;+  color: inherit;+}+.pull-right {+  float: right;+}+.pull-left {+  float: left;+}+.hide {+  display: none;+}+.show {+  display: block;+}+.invisible {+  visibility: hidden;+}++{-# START_FILE static/css/normalize.css #-}+/*! normalize.css 2011-08-12T17:28 UTC · http://github.com/necolas/normalize.css */++/* =============================================================================+   HTML5 display definitions+   ========================================================================== */++/*+ * Corrects block display not defined in IE6/7/8/9 & FF3+ */++article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+    display: block;+}++/*+ * Corrects inline-block display not defined in IE6/7/8/9 & FF3+ */++audio,+canvas,+video {+    display: inline-block;+    *display: inline;+    *zoom: 1;+}++/*+ * Prevents modern browsers from displaying 'audio' without controls+ */++audio:not([controls]) {+    display: none;+}++/*+ * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4+ * Known issue: no IE6 support+ */++[hidden] {+    display: none;+}+++/* =============================================================================+   Base+   ========================================================================== */++/*+ * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units+ *    http://clagnut.com/blog/348/#c790+ * 2. Keeps page centred in all browsers regardless of content height+ * 3. Prevents iOS text size adjust after orientation change, without disabling user zoom+ *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/+ */++html {+    font-size: 100%; /* 1 */+    overflow-y: scroll; /* 2 */+    -webkit-text-size-adjust: 100%; /* 3 */+    -ms-text-size-adjust: 100%; /* 3 */+}++/*+ * Addresses margins handled incorrectly in IE6/7+ */++body {+    margin: 0;+}++/* + * Addresses font-family inconsistency between 'textarea' and other form elements.+ */++body,+button,+input,+select,+textarea {+    font-family: sans-serif;+}+++/* =============================================================================+   Links+   ========================================================================== */++a {+    color: #00e;+}++a:visited {+    color: #551a8b;+}++/*+ * Addresses outline displayed oddly in Chrome+ */++a:focus {+    outline: thin dotted;+}++/*+ * Improves readability when focused and also mouse hovered in all browsers+ * people.opera.com/patrickl/experiments/keyboard/test+ */++a:hover,+a:active {+    outline: 0;+}+++/* =============================================================================+   Typography+   ========================================================================== */++/*+ * Addresses styling not present in IE7/8/9, S5, Chrome+ */++abbr[title] {+    border-bottom: 1px dotted;+}++/*+ * Addresses style set to 'bolder' in FF3/4, S4/5, Chrome+*/++b, +strong { +    font-weight: bold; +}++blockquote {+    margin: 1em 40px;+}++/*+ * Addresses styling not present in S5, Chrome+ */++dfn {+    font-style: italic;+}++/*+ * Addresses styling not present in IE6/7/8/9+ */++mark {+    background: #ff0;+    color: #000;+}++/*+ * Corrects font family set oddly in IE6, S4/5, Chrome+ * en.wikipedia.org/wiki/User:Davidgothberg/Test59+ */++pre,+code,+kbd,+samp {+    font-family: monospace, serif;+    _font-family: 'courier new', monospace;+    font-size: 1em;+}++/*+ * Improves readability of pre-formatted text in all browsers+ */++pre {+    white-space: pre;+    white-space: pre-wrap;+    word-wrap: break-word;+}++/*+ * 1. Addresses CSS quotes not supported in IE6/7+ * 2. Addresses quote property not supported in S4+ */++/* 1 */++q {+    quotes: none;+}++/* 2 */++q:before,+q:after {+    content: '';+    content: none;+}++small {+    font-size: 75%;+}++/*+ * Prevents sub and sup affecting line-height in all browsers+ * gist.github.com/413930+ */++sub,+sup {+    font-size: 75%;+    line-height: 0;+    position: relative;+    vertical-align: baseline;+}++sup {+    top: -0.5em;+}++sub {+    bottom: -0.25em;+}+++/* =============================================================================+   Lists+   ========================================================================== */++ul,+ol {+    margin: 1em 0;+    padding: 0 0 0 40px;+}++dd {+    margin: 0 0 0 40px;+}++nav ul,+nav ol {+    list-style: none;+    list-style-image: none;+}+++/* =============================================================================+   Embedded content+   ========================================================================== */++/*+ * 1. Removes border when inside 'a' element in IE6/7/8/9+ * 2. Improves image quality when scaled in IE7+ *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/+ */++img {+    border: 0; /* 1 */+    -ms-interpolation-mode: bicubic; /* 2 */+}++/*+ * Corrects overflow displayed oddly in IE9 + */++svg:not(:root) {+    overflow: hidden;+}+++/* =============================================================================+   Figures+   ========================================================================== */++/*+ * Addresses margin not present in IE6/7/8/9, S5, O11+ */++figure {+    margin: 0;+}+++/* =============================================================================+   Forms+   ========================================================================== */++/*+ * Corrects margin displayed oddly in IE6/7+ */++form {+    margin: 0;+}++/*+ * Define consistent margin and padding+ */++fieldset {+    margin: 0 2px;+    padding: 0.35em 0.625em 0.75em;+}++/*+ * 1. Corrects color not being inherited in IE6/7/8/9+ * 2. Corrects alignment displayed oddly in IE6/7+ */++legend {+    border: 0; /* 1 */+    *margin-left: -7px; /* 2 */+}++/*+ * 1. Corrects font size not being inherited in all browsers+ * 2. Addresses margins set differently in IE6/7, F3/4, S5, Chrome+ * 3. Improves appearance and consistency in all browsers+ */++button,+input,+select,+textarea {+    font-size: 100%; /* 1 */+    margin: 0; /* 2 */+    vertical-align: baseline; /* 3 */+    *vertical-align: middle; /* 3 */+}++/*+ * 1. Addresses FF3/4 setting line-height using !important in the UA stylesheet+ * 2. Corrects inner spacing displayed oddly in IE6/7+ */++button,+input {+    line-height: normal; /* 1 */+    *overflow: visible;  /* 2 */+}++/*+ * Corrects overlap and whitespace issue for buttons and inputs in IE6/7+ * Known issue: reintroduces inner spacing+ */++table button,+table input {+    *overflow: auto;+}++/*+ * 1. Improves usability and consistency of cursor style between image-type 'input' and others+ * 2. Corrects inability to style clickable 'input' types in iOS+ */++button,+html input[type="button"], +input[type="reset"], +input[type="submit"] {+    cursor: pointer; /* 1 */+    -webkit-appearance: button; /* 2 */+}++/*+ * 1. Addresses box sizing set to content-box in IE8/9+ * 2. Addresses excess padding in IE8/9+ */++input[type="checkbox"],+input[type="radio"] {+    box-sizing: border-box; /* 1 */+    padding: 0; /* 2 */+}++/*+ * 1. Addresses appearance set to searchfield in S5, Chrome+ * 2. Addresses box sizing set to border-box in S5, Chrome (include -moz to future-proof)+ */++input[type="search"] {+    -webkit-appearance: textfield; /* 1 */+    -moz-box-sizing: content-box;+    -webkit-box-sizing: content-box; /* 2 */+    box-sizing: content-box;+}++/*+ * Corrects inner padding displayed oddly in S5, Chrome on OSX+ */++input[type="search"]::-webkit-search-decoration {+    -webkit-appearance: none;+}++/*+ * Corrects inner padding and border displayed oddly in FF3/4+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/+ */++button::-moz-focus-inner,+input::-moz-focus-inner {+    border: 0;+    padding: 0;+}++/*+ * 1. Removes default vertical scrollbar in IE6/7/8/9+ * 2. Improves readability and alignment in all browsers+ */++textarea {+    overflow: auto; /* 1 */+    vertical-align: top; /* 2 */+}+++/* =============================================================================+   Tables+   ========================================================================== */++/* + * Remove most spacing between table cells+ */++table {+    border-collapse: collapse;+    border-spacing: 0;+}++{-# START_FILE BASE64 static/img/glyphicons-halflings-white.png #-}+iVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAMAAACY07N7AAAC2VBMVEX///8AAAAAAAD5+fn///8A+AAD////9/f1tbW0AAAD///////////8AAAAAAAD////w8PD+/v729vYAAAD8/PwAAAAAAAD/////+///a2toAAADCwsL09PT////////09PT39/f///8AAAAAAACzs7P9/f0AAADi4uKwsLD////////7++/vn5+f+/v7///8AAADt7e0AAADPz88AAAD9/f329vbt7e37+/vn5+f6+vrh4eGSkpL+/v7+/v7B+wcGYmJh0dHTh4eHQ0NAAAADz8/O7u7uhoaGAgID9/f3U1NRiYmL////V1dX4+Pjc3Nz6+vr7+/vp+6en7+/v9/f39/f3R0dHy8vL8/Pz4+Pjr6+v8/Py2trbGxsbl5eXu7u719fX9/f1lZWVnZ2fw8PC2+trbg4OD39/f6+vrp6enl5eX6+vr4+PjLy8v///+EhITx8fF4eHj39/fd3d35+fnIyMjS0tLs7Oz6++vre3t7i4uLm5ubz8/Obm5uoqKilpaXc3Nzu7u7////x8fHJycnw8PD////////e3t7Gxsa8vLzr+6+vW1tbQ0NDi4uL5+fn09PTi4uLs7Oz19fW0tLT////9/f37+/v8/Pz6+vrm5uYAAADk5OT8/Pz3+9/ewsLCZmZn9/f3s7Oz8/PzBwcHp6en////a2trw8PDw8PD19fXx8fH+/v74+Pj+/v6Ojo7i4uL7++/v5+fnc3Nz////y8vL6+vqfn5/t7e339/f29vbo6Ojz8/P6+vr19fX19fWmpqbLy8v6+vr4+PjT+09Pr6+v6+vrr6+uqqqrz8/Pt7e2ioqLPz8/a2trW1taioqLr6+vi4uL5+flVVVXNzc3////W1tbj+4+Ph4eHq6ur8/Pz////29vb7+/vz8/P09PTMzMz////////5+fn19fX////y8vL9/f0AAADZ2dn8+/Pz7+/v8/Pzp6em/v7/7+/vq6urp6en+/v7////4ck/mAAAA8nRSTlMAGgDUzwIP8SMQ759fCgUv+qfDGFeIYA78fbxNTt98/hsV/BhdD4Q1rRI+vwo3ATxJTD18IoKWasozTETbQ4D40IX5hC6dAMR7R+XydvEsRuotKLkZCATYahkzOxQlFqmbZwJiUhFWy1wyJY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++{-# START_FILE BASE64 static/img/glyphicons-halflings.png #-}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++{-# START_FILE templates/default-layout-wrapper.hamlet #-}+$newline never+\<!doctype html>+\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->+\<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->+\<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->+\<!--[if gt IE 8]><!-->+<html class="no-js" lang="en"> <!--<![endif]-->+    <head>+        <meta charset="UTF-8">++        <title>#{pageTitle pc}+        <meta name="description" content="">+        <meta name="author" content="">++        <meta name="viewport" content="width=device-width,initial-scale=1">++        ^{pageHead pc}++        \<!--[if lt IE 9]>+        \<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>+        \<![endif]-->++        <script>+          document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');+    <body>+        <div class="container">+            <header>+            <div id="main" role="main">+              ^{pageBody pc}+            <footer>+                #{extraCopyright $ appExtra $ settings master}++        $maybe analytics <- extraAnalytics $ appExtra $ settings master+            <script>+              if(!window.location.href.match(/localhost/)){+                window._gaq = [['_setAccount','#{analytics}'],['_trackPageview'],['_trackPageLoadTime']];+                (function() {+                \  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;+                \  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';+                \  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);+                })();+              }+        \<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.  chromium.org/developers/how-tos/chrome-frame-getting-started -->+        \<!--[if lt IE 7 ]>+            <script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">+            <script>+                window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})+        \<![endif]-->++{-# START_FILE templates/default-layout.hamlet #-}+$maybe msg <- mmsg+    <div #message>#{msg}+^{widget}++{-# START_FILE templates/homepage.hamlet #-}+<h1>_{MsgHello}++<ol>+  <li>Now that you have a working project you should use the #+    \<a href="http://www.yesodweb.com/book/">Yesod book</a> to learn more. #+    You can also use this scaffolded site to explore some basic concepts.++  <li> This page was generated by the #{handlerName} handler in #+    \<em>Handler/Home.hs</em>.++  <li> The #{handlerName} handler is set to generate your site's home screen in Routes file #+    <em>config/routes++  <li> The HTML you are seeing now is actually composed by a number of <em>widgets</em>, #+    most of them are brought together by the <em>defaultLayout</em> function which #+    is defined in the <em>Foundation.hs</em> module, and used by <em>#{handlerName}</em>. #+    All the files for templates and wigdets are in <em>templates</em>.++  <li>+    A Widget's Html, Css and Javascript are separated in three files with the #+    \<em>.hamlet</em>, <em>.lucius</em> and <em>.julius</em> extensions. ++  <li ##{aDomId}>If you had javascript enabled then you wouldn't be seeing this.+    +  <li #form>+    This is an example trivial Form. Read the #+    \<a href="http://www.yesodweb.com/book/forms">Forms chapter</a> #+    on the yesod book to learn more about them.+    $maybe (info,con) <- submission+      <div .message>+        Your file's type was <em>#{fileContentType info}</em>. You say it has: <em>#{con}</em>+    <form method=post action=@{HomeR}#form enctype=#{formEnctype}>+      ^{formWidget}+      <input type="submit" value="Send it!">++  <li> And last but not least, Testing. In <em>tests/main.hs</em> you will find a #+    test suite that performs tests on this page. #+    You can run your tests by doing: <pre>yesod test</pre>++{-# START_FILE templates/homepage.julius #-}+document.getElementById(#{toJSON aDomId}).innerHTML = "This text was added by the Javascript part of the homepage widget.";++{-# START_FILE templates/homepage.lucius #-}+h1 {+    text-align: center+}+h2##{aDomId} {+    color: #990+}++{-# START_FILE tests/HomeTest.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module HomeTest+    ( homeSpecs+    ) where++import TestImport++homeSpecs :: Specs+homeSpecs =+    ydescribe "These are some example tests" $ do++        yit "loads the index and checks it looks right" $ do+            get HomeR+            statusIs 200+            htmlAllContain "h1" "Hello"++            request $ do+                setMethod "POST"+                setUrl HomeR+                addNonce+                fileByLabel "Choose a file" "tests/main.hs" "text/plain" -- talk about self-reference+                byLabel "What's on the file?" "Some Content"++            statusIs 200+            printBody+            htmlCount ".message" 1+            htmlAllContain ".message" "Some Content"+            htmlAllContain ".message" "text/plain"++{-# START_FILE tests/TestImport.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module TestImport+    ( module Yesod.Test+    , module Foundation+    , Specs+    ) where++import Yesod.Test+import Foundation++type Specs = YesodSpec App++{-# START_FILE tests/main.hs #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Main where++import Import+import Yesod.Default.Config+import Yesod.Test+import Test.Hspec (hspec)+import Application (makeFoundation)++import HomeTest++main :: IO ()+main = do+    conf <- Yesod.Default.Config.loadConfig $ (configSettings Testing)+                { csParseExtra = parseExtra+                }+    foundation <- makeFoundation conf+    hspec $ do+        yesodSpec foundation $ do+            homeSpecs+
+ hsfiles/sqlite.hsfiles view
@@ -0,0 +1,5854 @@+{-# START_FILE .ghci #-}+:set -i.:config:dist/build/autogen+:set -XCPP -XTemplateHaskell -XQuasiQuotes -XTypeFamilies -XFlexibleContexts -XGADTs -XOverloadedStrings -XMultiParamTypeClasses -XGeneralizedNewtypeDeriving -XEmptyDataDecls++{-# START_FILE .gitignore #-}+dist*+static/tmp/+config/client_session_key.aes+*.hi+*.o+*.sqlite3+.hsenv*+yesod-devel/++{-# START_FILE Application.hs #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}+module Application+    ( makeApplication+    , getApplicationDev+    , makeFoundation+    ) where++import Import+import Settings+import Yesod.Auth+import Yesod.Default.Config+import Yesod.Default.Main+import Yesod.Default.Handlers+import Network.Wai.Middleware.RequestLogger+import qualified Database.Persist+import Database.Persist.Sql (runMigration)+import Network.HTTP.Conduit (newManager, def)+import Control.Monad.Logger (runLoggingT)+import System.IO (stdout)+import System.Log.FastLogger (mkLogger)++-- Import all relevant handler modules here.+-- Don't forget to add new modules to your cabal file!+import Handler.Home++-- This line actually creates our YesodDispatch instance. It is the second half+-- of the call to mkYesodData which occurs in Foundation.hs. Please see the+-- comments there for more details.+mkYesodDispatch "App" resourcesApp++-- This function allocates resources (such as a database connection pool),+-- performs initialization and creates a WAI application. This is also the+-- place to put your migrate statements to have automatic database+-- migrations handled by Yesod.+makeApplication :: AppConfig DefaultEnv Extra -> IO Application+makeApplication conf = do+    foundation <- makeFoundation conf++    -- Initialize the logging middleware+    logWare <- mkRequestLogger def+        { outputFormat =+            if development+                then Detailed True+                else Apache FromSocket+        , destination = Logger $ appLogger foundation+        }++    -- Create the WAI application and apply middlewares+    app <- toWaiAppPlain foundation+    return $ logWare app++-- | Loads up any necessary settings, creates your foundation datatype, and+-- performs some initialization.+makeFoundation :: AppConfig DefaultEnv Extra -> IO App+makeFoundation conf = do+    manager <- newManager def+    s <- staticSite+    dbconf <- withYamlEnvironment "config/sqlite.yml" (appEnv conf)+              Database.Persist.loadConfig >>=+              Database.Persist.applyEnv+    p <- Database.Persist.createPoolConfig (dbconf :: Settings.PersistConf)+    logger <- mkLogger True stdout+    let foundation = App conf s p manager dbconf logger++    -- Perform database migration using our application's logging settings.+    runLoggingT+        (Database.Persist.runPool dbconf (runMigration migrateAll) p)+        (messageLoggerSource foundation logger)++    return foundation++-- for yesod devel+getApplicationDev :: IO (Int, Application)+getApplicationDev =+    defaultDevelApp loader makeApplication+  where+    loader = Yesod.Default.Config.loadConfig (configSettings Development)+        { csParseExtra = parseExtra+        }++{-# START_FILE Foundation.hs #-}+module Foundation where++import Prelude+import Yesod+import Yesod.Static+import Yesod.Auth+import Yesod.Auth.BrowserId+import Yesod.Auth.GoogleEmail+import Yesod.Default.Config+import Yesod.Default.Util (addStaticContentExternal)+import Network.HTTP.Conduit (Manager)+import qualified Settings+import Settings.Development (development)+import qualified Database.Persist+import Database.Persist.Sql (SqlPersistT)+import Settings.StaticFiles+import Settings (widgetFile, Extra (..))+import Model+import Text.Jasmine (minifym)+import Text.Hamlet (hamletFile)+import System.Log.FastLogger (Logger)++-- | The site argument for your application. This can be a good place to+-- keep settings and values requiring initialization before your application+-- starts running, such as database connections. Every handler will have+-- access to the data present here.+data App = App+    { settings :: AppConfig DefaultEnv Extra+    , getStatic :: Static -- ^ Settings for static file serving.+    , connPool :: Database.Persist.PersistConfigPool Settings.PersistConf -- ^ Database connection pool.+    , httpManager :: Manager+    , persistConfig :: Settings.PersistConf+    , appLogger :: Logger+    }++-- Set up i18n messages. See the message folder.+mkMessage "App" "messages" "en"++-- This is where we define all of the routes in our application. For a full+-- explanation of the syntax, please see:+-- http://www.yesodweb.com/book/handler+--+-- This function does three things:+--+-- * Creates the route datatype AppRoute. Every valid URL in your+--   application can be represented as a value of this type.+-- * Creates the associated type:+--       type instance Route App = AppRoute+-- * Creates the value resourcesApp which contains information on the+--   resources declared below. This is used in Handler.hs by the call to+--   mkYesodDispatch+--+-- What this function does *not* do is create a YesodSite instance for+-- App. Creating that instance requires all of the handler functions+-- for our application to be in scope. However, the handler functions+-- usually require access to the AppRoute datatype. Therefore, we+-- split these actions into two functions and place them in separate files.+mkYesodData "App" $(parseRoutesFile "config/routes")++type Form x = Html -> MForm (HandlerT App IO) (FormResult x, Widget)++-- Please see the documentation for the Yesod typeclass. There are a number+-- of settings which can be configured by overriding methods here.+instance Yesod App where+    approot = ApprootMaster $ appRoot . settings++    -- Store session data on the client in encrypted cookies,+    -- default session idle timeout is 120 minutes+    makeSessionBackend _ = fmap Just $ defaultClientSessionBackend+        (120 * 60) -- 120 minutes+        "config/client_session_key.aes"++    defaultLayout widget = do+        master <- getYesod+        mmsg <- getMessage++        -- We break up the default layout into two components:+        -- default-layout is the contents of the body tag, and+        -- default-layout-wrapper is the entire page. Since the final+        -- value passed to hamletToRepHtml cannot be a widget, this allows+        -- you to use normal widget features in default-layout.++        pc <- widgetToPageContent $ do+            $(combineStylesheets 'StaticR+                [ css_normalize_css+                , css_bootstrap_css+                ])+            $(widgetFile "default-layout")+        hamletToRepHtml $(hamletFile "templates/default-layout-wrapper.hamlet")++    -- This is done to provide an optimization for serving static files from+    -- a separate domain. Please see the staticRoot setting in Settings.hs+    urlRenderOverride y (StaticR s) =+        Just $ uncurry (joinPath y (Settings.staticRoot $ settings y)) $ renderRoute s+    urlRenderOverride _ _ = Nothing++    -- The page to be redirected to when authentication is required.+    authRoute _ = Just $ AuthR LoginR++    -- This function creates static content files in the static folder+    -- and names them based on a hash of their content. This allows+    -- expiration dates to be set far in the future without worry of+    -- users receiving stale content.+    addStaticContent =+        addStaticContentExternal minifym genFileName Settings.staticDir (StaticR . flip StaticRoute [])+      where+        -- Generate a unique filename based on the content itself+        genFileName lbs+            | development = "autogen-" ++ base64md5 lbs+            | otherwise   = base64md5 lbs++    -- Place Javascript at bottom of the body tag so the rest of the page loads first+    jsLoader _ = BottomOfBody++    -- What messages should be logged. The following includes all messages when+    -- in development, and warnings and errors in production.+    shouldLog _ _source level =+        development || level == LevelWarn || level == LevelError++    makeLogger = return . appLogger++-- How to run database actions.+instance YesodPersist App where+    type YesodPersistBackend App = SqlPersistT+    runDB = defaultRunDB persistConfig connPool+instance YesodPersistRunner App where+    getDBRunner = defaultGetDBRunner connPool++instance YesodAuth App where+    type AuthId App = UserId++    -- Where to send a user after successful login+    loginDest _ = HomeR+    -- Where to send a user after logout+    logoutDest _ = HomeR++    getAuthId creds = runDB $ do+        x <- getBy $ UniqueUser $ credsIdent creds+        case x of+            Just (Entity uid _) -> return $ Just uid+            Nothing -> do+                fmap Just $ insert $ User (credsIdent creds) Nothing++    -- You can add other plugins like BrowserID, email or OAuth here+    authPlugins _ = [authBrowserId def, authGoogleEmail]++    authHttpManager = httpManager++-- This instance is required to use forms. You can modify renderMessage to+-- achieve customized and internationalized form validation messages.+instance RenderMessage App FormMessage where+    renderMessage _ _ = defaultFormMessage++-- | Get the 'Extra' value, used to hold data from the settings.yml file.+getExtra :: Handler Extra+getExtra = fmap (appExtra . settings) getYesod++-- Note: previous versions of the scaffolding included a deliver function to+-- send emails. Unfortunately, there are too many different options for us to+-- give a reasonable default. Instead, the information is available on the+-- wiki:+--+-- https://github.com/yesodweb/yesod/wiki/Sending-email++{-# START_FILE Handler/Home.hs #-}+{-# LANGUAGE TupleSections, OverloadedStrings #-}+module Handler.Home where++import Import++-- This is a handler function for the GET request method on the HomeR+-- resource pattern. All of your resource patterns are defined in+-- config/routes+--+-- The majority of the code you will write in Yesod lives in these handler+-- functions. You can spread them across multiple files if you are so+-- inclined, or create a single monolithic file.+getHomeR :: Handler RepHtml+getHomeR = do+    (formWidget, formEnctype) <- generateFormPost sampleForm+    let submission = Nothing :: Maybe (FileInfo, Text)+        handlerName = "getHomeR" :: Text+    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++postHomeR :: Handler RepHtml+postHomeR = do+    ((result, formWidget), formEnctype) <- runFormPost sampleForm+    let handlerName = "postHomeR" :: Text+        submission = case result of+            FormSuccess res -> Just res+            _ -> Nothing++    defaultLayout $ do+        aDomId <- newIdent+        setTitle "Welcome To Yesod!"+        $(widgetFile "homepage")++sampleForm :: Form (FileInfo, Text)+sampleForm = renderDivs $ (,)+    <$> fileAFormReq "Choose a file"+    <*> areq textField "What's on the file?" Nothing++{-# START_FILE Import.hs #-}+module Import+    ( module Import+    ) where++import           Prelude              as Import hiding (head, init, last,+                                                 readFile, tail, writeFile)+import           Yesod                as Import hiding (Route (..))++import           Control.Applicative  as Import (pure, (<$>), (<*>))+import           Data.Text            as Import (Text)++import           Foundation           as Import+import           Model                as Import+import           Settings             as Import+import           Settings.Development as Import+import           Settings.StaticFiles as Import++#if __GLASGOW_HASKELL__ >= 704+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat),+                                                 (<>))+#else+import           Data.Monoid          as Import+                                                 (Monoid (mappend, mempty, mconcat))++infixr 5 <>+(<>) :: Monoid m => m -> m -> m+(<>) = mappend+#endif++{-# START_FILE Model.hs #-}+module Model where++import Prelude+import Yesod+import Data.Text (Text)+import Database.Persist.Quasi+import Data.Typeable (Typeable)++-- You can define all of your database entities in the entities file.+-- You can find more information on persistent and how to declare entities+-- at:+-- http://www.yesodweb.com/book/persistent/+share [mkPersist sqlOnlySettings, mkMigrate "migrateAll"]+    $(persistFileWith lowerCaseSettings "config/models")++{-# START_FILE PROJECTNAME.cabal #-}+name:              PROJECTNAME+version:           0.0.0+cabal-version:     >= 1.8+build-type:        Simple++Flag dev+    Description:   Turn on development settings, like auto-reload templates.+    Default:       False++Flag library-only+    Description:   Build for use with "yesod devel"+    Default:       False++library+    exposed-modules: Application+                     Foundation+                     Import+                     Model+                     Settings+                     Settings.StaticFiles+                     Settings.Development+                     Handler.Home++    if flag(dev) || flag(library-only)+        cpp-options:   -DDEVELOPMENT+        ghc-options:   -Wall -O0+    else+        ghc-options:   -Wall -O2++    extensions: TemplateHaskell+                QuasiQuotes+                OverloadedStrings+                NoImplicitPrelude+                CPP+                MultiParamTypeClasses+                TypeFamilies+                GADTs+                GeneralizedNewtypeDeriving+                FlexibleContexts+                EmptyDataDecls+                NoMonomorphismRestriction+                DeriveDataTypeable++    build-depends: base                          >= 4          && < 5+                 -- , yesod-platform                >= 1.1        && < 1.2+                 , yesod                         >= 1.2        && < 1.3+                 , yesod-core                    >= 1.2        && < 1.3+                 , yesod-auth                    >= 1.2        && < 1.3+                 , yesod-static                  >= 1.2        && < 1.3+                 , yesod-form                    >= 1.3        && < 1.4+                 , bytestring                    >= 0.9        && < 0.11+                 , text                          >= 0.11       && < 0.12+                 , persistent                    >= 1.2        && < 1.3+                 , persistent-sqlite             >= 1.2        && < 1.3+                 , persistent-template           >= 1.2        && < 1.3+                 , template-haskell+                 , hamlet                        >= 1.1        && < 1.2+                 , shakespeare-css               >= 1.0        && < 1.1+                 , shakespeare-js                >= 1.0.2      && < 1.2+                 , shakespeare-text              >= 1.0        && < 1.1+                 , hjsmin                        >= 0.1        && < 0.2+                 , monad-control                 >= 0.3        && < 0.4+                 , wai-extra                     >= 1.3        && < 1.4+                 , yaml                          >= 0.8        && < 0.9+                 , http-conduit                  >= 1.9        && < 1.10+                 , directory                     >= 1.1        && < 1.3+                 , warp                          >= 1.3        && < 1.4+                 , data-default+                 , aeson+                 , conduit                       >= 1.0+                 , monad-logger                  >= 0.3+                 , fast-logger                   >= 0.3++executable         PROJECTNAME+    if flag(library-only)+        Buildable: False++    main-is:           main.hs+    hs-source-dirs:    app+    build-depends:     base+                     , PROJECTNAME+                     , yesod++    ghc-options:       -threaded -O2++test-suite test+    type:              exitcode-stdio-1.0+    main-is:           main.hs+    hs-source-dirs:    tests+    ghc-options:       -Wall++    build-depends: base+                 , PROJECTNAME+                 , yesod-test >= 1.2 && < 1.3+                 , yesod-core+                 , yesod+                 , persistent+                 , persistent-sqlite+                 , resourcet+                 , monad-logger+                 , transformers+                 , hspec++{-# START_FILE Settings.hs #-}+-- | Settings are centralized, as much as possible, into this file. This+-- includes database connection settings, static file locations, etc.+-- In addition, you can configure a number of different aspects of Yesod+-- by overriding methods in the Yesod typeclass. That instance is+-- declared in the Foundation.hs file.+module Settings where++import Prelude+import Text.Shakespeare.Text (st)+import Language.Haskell.TH.Syntax+import Database.Persist.Sqlite (SqliteConf)+import Yesod.Default.Config+import Yesod.Default.Util+import Data.Text (Text)+import Data.Yaml+import Control.Applicative+import Settings.Development+import Data.Default (def)+import Text.Hamlet++-- | Which Persistent backend this site is using.+type PersistConf = SqliteConf++-- Static setting below. Changing these requires a recompile++-- | The location of static files on your system. This is a file system+-- path. The default value works properly with your scaffolded site.+staticDir :: FilePath+staticDir = "static"++-- | The base URL for your static files. As you can see by the default+-- value, this can simply be "static" appended to your application root.+-- A powerful optimization can be serving static files from a separate+-- domain name. This allows you to use a web server optimized for static+-- files, more easily set expires and cache values, and avoid possibly+-- costly transference of cookies on static files. For more information,+-- please see:+--   http://code.google.com/speed/page-speed/docs/request.html#ServeFromCookielessDomain+--+-- If you change the resource pattern for StaticR in Foundation.hs, you will+-- have to make a corresponding change here.+--+-- To see how this value is used, see urlRenderOverride in Foundation.hs+staticRoot :: AppConfig DefaultEnv x -> Text+staticRoot conf = [st|#{appRoot conf}/static|]++-- | Settings for 'widgetFile', such as which template languages to support and+-- default Hamlet settings.+--+-- For more information on modifying behavior, see:+--+-- https://github.com/yesodweb/yesod/wiki/Overriding-widgetFile+widgetFileSettings :: WidgetFileSettings+widgetFileSettings = def+    { wfsHamletSettings = defaultHamletSettings+        { hamletNewlines = AlwaysNewlines+        }+    }++-- The rest of this file contains settings which rarely need changing by a+-- user.++widgetFile :: String -> Q Exp+widgetFile = (if development then widgetFileReload+                             else widgetFileNoReload)+              widgetFileSettings++data Extra = Extra+    { extraCopyright :: Text+    , extraAnalytics :: Maybe Text -- ^ Google Analytics+    } deriving Show++parseExtra :: DefaultEnv -> Object -> Parser Extra+parseExtra _ o = Extra+    <$> o .:  "copyright"+    <*> o .:? "analytics"++{-# START_FILE Settings/Development.hs #-}+module Settings.Development where++import Prelude++development :: Bool+development =+#if DEVELOPMENT+  True+#else+  False+#endif++production :: Bool+production = not development++{-# START_FILE Settings/StaticFiles.hs #-}+module Settings.StaticFiles where++import Prelude (IO)+import Yesod.Static+import qualified Yesod.Static as Static+import Settings (staticDir)+import Settings.Development+import Language.Haskell.TH (Q, Exp, Name)+import Data.Default (def)++-- | use this to create your static file serving site+staticSite :: IO Static.Static+staticSite = if development then Static.staticDevel staticDir+                            else Static.static      staticDir++-- | This generates easy references to files in the static directory at compile time,+--   giving you compile-time verification that referenced files exist.+--   Warning: any files added to your static directory during run-time can't be+--   accessed this way. You'll have to use their FilePath or URL to access them.+$(staticFiles Settings.staticDir)++combineSettings :: CombineSettings+combineSettings = def++-- The following two functions can be used to combine multiple CSS or JS files+-- at compile time to decrease the number of http requests.+-- Sample usage (inside a Widget):+--+-- > $(combineStylesheets 'StaticR [style1_css, style2_css])++combineStylesheets :: Name -> [Route Static] -> Q Exp+combineStylesheets = combineStylesheets' development combineSettings++combineScripts :: Name -> [Route Static] -> Q Exp+combineScripts = combineScripts' development combineSettings++{-# START_FILE app/main.hs #-}+import Prelude              (IO)+import Yesod.Default.Config (fromArgs)+import Yesod.Default.Main   (defaultMain)+import Settings             (parseExtra)+import Application          (makeApplication)++main :: IO ()+main = defaultMain (fromArgs parseExtra) makeApplication++{-# START_FILE BASE64 config/favicon.ico #-}+AAABAAIAEBAAAAEAIABoBAAAJgAAABAQAgABAAEAsAAAAI4EAAAoAAAAEAAAACAAAAABACAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAApl4sAAAAAAAAAAAAAAAAAUEpGyNpSjaIg2NO2ZBvWfqTc13/+jW1X9YNhTMZrSTNkUTMfDwAAAAAAAAAAAAAAAAAAAAAAAAAANR0NClk6JmF+W0Txj2xV/41qVP+M+aVP/jGlS/4xpUv+MaVL/i2dQ/3pVPdNeOiEzQRsBAgAAAAAAAAAAMBgHAlIxG1h5UDb/h15D9n5W+PPZ4TzXmeVE303hQNtV4UDbVeFA11XdQNdV5UTfbbUUpx1UsEBgAAAAAAAAFADIVAwlULxY/f1M1+4dOffryecFHMXTIVhAAAAAURAAAOEwAADxQAAA8TAAAPEAAADigEABFNJAkZTSQJCRAHAQdKIARt+OxUAC1kvE3qQYEDfzJt5wXtOL9pQJAa0UScKjVInCo1SJwqNUSYJjVElCY1RJQmLUSUHslEjBGcu+EgAuVSQC/00eAGAYAAAPXzAQuLGAXs6ygV/PYTESwkMXAFRGHgI3Rx4BPEceATxHHQE7RBsBMkwf+AqlUIQHgQhoAaVUhAP9TIQDhSBwAI0EXAD5xQSHbzJp4wJRiQtBRIgKuRxsAb0kdAGpJHQBqSR0A+e04fAJNJHQClVCEA/0YcAIRVIgD/VSIA7E0fADQyDQAyaToa1MqXdMLJl3bBc0Ii6UscAJFFGgBE+RRoAQUIZAFlRIADpVSIA/1UiAP9JHwN9WicG/1QhAIMAAAAMVywPoaBtTNi6imnEsIBfya9+Xc1m+OBm2UycIilgqDYVVKQ2DVigJ4FwqCf5cKgr/Qx8GUGAwEc08EwAPTSgQY4dXN+LPnXy9g1c54XtM+LevJl3a/k2RE3WY5Gv9mNxn/Zjga/2c5G/9oOhz/Zzka/DQYBRFZLRA1JhAAJHhML9XJlnTCqXxe+zXFHLPtxRyv/n3BR2MuZd7uFWjzmc0gt/nRKLv90Sy//dUww/21CJcIAAAAATCsURXRONdR+Vjr5+j2ZL5oJbQfN+Vz3/flg//4NcQfePZkrogVk/8n5YP/6BW0H/gVtD/oBaQf9qQCRIJAgAAFAxHRt4+VDzVjWpS/4lmT/6LZ1D/jGlS/4xpU/6MaVL/i2hS/otpUv6Na1T+jmtV/o9tV/98Vj2cYzoeBgAA+AAAGAgAAZ0cyMIVkTtqae2f/mXpm/5l5Zf6Zemb+mXpm/5p6Zv+ae2f+mnxp/5p7Z/+HZE2qdE84+FAAAAAAAAAAAAAAAAAAAAABrTDgfhWVQnp2Abf+njHv/pot6/6aMev+njHv/qI18/5t+avOHZU9y+fFc/DgAAAAAAAAAAJhABAAAAAAAAAAAAyqmXADYdCQNoSDQjh2hUbpd6aJ+Zfmurl3pnlYZkTlpw+TDYTX0IxAbNeMwAAAAAAsoFfAPgfAADwBwAA4AMAAOH/AADwAQAAsPwAAJh4AAAYOAAAkAAAALAA+AADgAAAAwAEAAMABAADgAwAA8A8AAP4/AAAoAAAAEAAAACAAAAABAAEAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA==++{-# START_FILE config/keter.yaml #-}+exec: ../dist/build/PROJECTNAME/PROJECTNAME+args:+    - production+host: <<HOST-NOT-SET>>++# Use the following to automatically copy your bundle upon creation via `yesod+# keter`. Uses `scp` internally, so you can set it to a remote destination+# copy-to: user@host:/opt/keter/incoming++{-# START_FILE config/models #-}+User+    ident Text+    password Text Maybe+    UniqueUser ident+    deriving Typeable+Email+    email Text+    user UserId Maybe+    verkey Text Maybe+    UniqueEmail email++ -- By default this file is used in Model.hs (which is imported by Foundation.hs)++{-# START_FILE config/robots.txt #-}+User-agent: *++{-# START_FILE config/routes #-}+/static StaticR Static getStatic+/auth   AuthR   Auth   getAuth++/favicon.ico FaviconR GET+/robots.txt RobotsR GET++/ HomeR GET POST++{-# START_FILE config/settings.yml #-}+Default: &defaults+  host: "*4" # any IPv4 host+  port: 3000+  approot: "http://localhost:3000"+  copyright: Insert copyright statement here+  #analytics: UA-YOURCODE++Development:+  <<: *defaults++Testing:+  <<: *defaults++Staging:+  <<: *defaults++Production:+  #approot: "http://www.example.com"+  <<: *defaults++{-# START_FILE config/sqlite.yml #-}+Default: &defaults+  database: PROJECTNAME.sqlite3+  poolsize: 10++Development:+  <<: *defaults++Testing:+  database: PROJECTNAME_test.sqlite3+  <<: *defaults++Staging:+  database: PROJECTNAME_staging.sqlite3+  poolsize: 100+  <<: *defaults++Production:+  database: PROJECTNAME_production.sqlite3+  poolsize: 100+  <<: *defaults++{-# START_FILE deploy/Procfile #-}+# Free deployment to Heroku.+#+#   !! Warning: You must use a 64 bit machine to compile !!+#+#   This could mean using a virtual machine. Give your VM as much memory as you can to speed up linking.+#+# Basic Yesod setup:+#+# * Move this file out of the deploy directory and into your root directory+#+#     mv deploy/Procfile ./+#+# * Create an empty package.json+#     echo '{ "name": "PROJECTNAME", "version": "0.0.1", "dependencies": {} }' >> package.json+#+# Postgresql Yesod setup:+#+# * add dependencies on the "heroku", "aeson" and "unordered-containers" packages in your cabal file+#+# * add code in Application.hs to use the heroku package and load the connection parameters.+#   The below works for Postgresql.+#+#   import Data.HashMap.Strict as H+#   import Data.Aeson.Types as AT+#   #ifndef DEVELOPMENT+#   import qualified Web.Heroku+#   #endif+#+#+#+#   makeFoundation :: AppConfig DefaultEnv Extra -> Logger -> IO App+#   makeFoundation conf setLogger = do+#       manager <- newManager def+#       s <- staticSite+#       hconfig <- loadHerokuConfig+#       dbconf <- withYamlEnvironment "config/postgresql.yml" (appEnv conf)+#                 (Database.Persist.Store.loadConfig . combineMappings hconfig) >>=+#                 Database.Persist.Store.applyEnv+#       p <- Database.Persist.Store.createPoolConfig (dbconf :: Settings.PersistConfig)+#       Database.Persist.Store.runPool dbconf (runMigration migrateAll) p+#       return $ App conf setLogger s p manager dbconf+#+#   #ifndef DEVELOPMENT+#   canonicalizeKey :: (Text, val) -> (Text, val)+#   canonicalizeKey ("dbname", val) = ("database", val)+#   canonicalizeKey pair = pair+#+#   toMapping :: [(Text, Text)] -> AT.Value+#   toMapping xs = AT.Object $ M.fromList $ map (\(key, val) -> (key, AT.String val)) xs+#   #endif+#+#   combineMappings :: AT.Value -> AT.Value -> AT.Value+#   combineMappings (AT.Object m1) (AT.Object m2) = AT.Object $ m1 `M.union` m2+#   combineMappings _ _ = error "Data.Object is not a Mapping."+#+#   loadHerokuConfig :: IO AT.Value+#   loadHerokuConfig = do+#   #ifdef DEVELOPMENT+#       return $ AT.Object M.empty+#   #else+#       Web.Heroku.dbConnParams >>= return . toMapping . map canonicalizeKey+#   #endif++++# Heroku setup:+# Find the Heroku guide. Roughly:+#+# * sign up for a heroku account and register your ssh key+# * create a new application on the *cedar* stack+#+# * make your Yesod project the git repository for that application+# * create a deploy branch+#+#     git checkout -b deploy+#+# Repeat these steps to deploy:+# * add your web executable binary (referenced below) to the git repository+#+#     git checkout deploy+#     git add ./dist/build/PROJECTNAME/PROJECTNAME+#     git commit -m deploy+#+# * push to Heroku+#+#     git push heroku deploy:master+++# Heroku configuration that runs your app+web: ./dist/build/PROJECTNAME/PROJECTNAME production -p $PORT++{-# START_FILE devel.hs #-}+{-# LANGUAGE PackageImports #-}+import "PROJECTNAME" Application (getApplicationDev)+import Network.Wai.Handler.Warp+    (runSettings, defaultSettings, settingsPort)+import Control.Concurrent (forkIO)+import System.Directory (doesFileExist, removeFile)+import System.Exit (exitSuccess)+import Control.Concurrent (threadDelay)++main :: IO ()+main = do+    putStrLn "Starting devel application"+    (port, app) <- getApplicationDev+    forkIO $ runSettings defaultSettings+        { settingsPort = port+        } app+    loop++loop :: IO ()+loop = do+  threadDelay 100000+  e <- doesFileExist "yesod-devel/devel-terminate"+  if e then terminateDevel else loop++terminateDevel :: IO ()+terminateDevel = exitSuccess++{-# START_FILE messages/en.msg #-}+Hello: Hello++{-# START_FILE static/css/bootstrap.css #-}+/*!+ * Bootstrap v2.0.2+ *+ * Copyright 2012 Twitter, Inc+ * Licensed under the Apache License v2.0+ * http://www.apache.org/licenses/LICENSE-2.0+ *+ * Designed and built with all the love in the world @twitter by @mdo and @fat.+ */+article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+  display: block;+}+audio,+canvas,+video {+  display: inline-block;+  *display: inline;+  *zoom: 1;+}+audio:not([controls]) {+  display: none;+}+html {+  font-size: 100%;+  -webkit-text-size-adjust: 100%;+  -ms-text-size-adjust: 100%;+}+a:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+a:hover,+a:active {+  outline: 0;+}+sub,+sup {+  position: relative;+  font-size: 75%;+  line-height: 0;+  vertical-align: baseline;+}+sup {+  top: -0.5em;+}+sub {+  bottom: -0.25em;+}+img {+  height: auto;+  border: 0;+  -ms-interpolation-mode: bicubic;+  vertical-align: middle;+}+button,+input,+select,+textarea {+  margin: 0;+  font-size: 100%;+  vertical-align: middle;+}+button,+input {+  *overflow: visible;+  line-height: normal;+}+button::-moz-focus-inner,+input::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button,+input[type="button"],+input[type="reset"],+input[type="submit"] {+  cursor: pointer;+  -webkit-appearance: button;+}+input[type="search"] {+  -webkit-appearance: textfield;+  -webkit-box-sizing: content-box;+  -moz-box-sizing: content-box;+  box-sizing: content-box;+}+input[type="search"]::-webkit-search-decoration,+input[type="search"]::-webkit-search-cancel-button {+  -webkit-appearance: none;+}+textarea {+  overflow: auto;+  vertical-align: top;+}+.clearfix {+  *zoom: 1;+}+.clearfix:before,+.clearfix:after {+  display: table;+  content: "";+}+.clearfix:after {+  clear: both;+}+.hide-text {+  overflow: hidden;+  text-indent: 100%;+  white-space: nowrap;+}+.input-block-level {+  display: block;+  width: 100%;+  min-height: 28px;+  /* Make inputs at least the height of their button counterpart */++  /* Makes inputs behave like true block-level elements */++  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+}+body {+  margin: 0;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  background-color: #ffffff;+}+a {+  color: #0088cc;+  text-decoration: none;+}+a:hover {+  color: #005580;+  text-decoration: underline;+}+.row {+  margin-left: -20px;+  *zoom: 1;+}+.row:before,+.row:after {+  display: table;+  content: "";+}+.row:after {+  clear: both;+}+[class*="span"] {+  float: left;+  margin-left: 20px;+}+.container,+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.span12 {+  width: 940px;+}+.span11 {+  width: 860px;+}+.span10 {+  width: 780px;+}+.span9 {+  width: 700px;+}+.span8 {+  width: 620px;+}+.span7 {+  width: 540px;+}+.span6 {+  width: 460px;+}+.span5 {+  width: 380px;+}+.span4 {+  width: 300px;+}+.span3 {+  width: 220px;+}+.span2 {+  width: 140px;+}+.span1 {+  width: 60px;+}+.offset12 {+  margin-left: 980px;+}+.offset11 {+  margin-left: 900px;+}+.offset10 {+  margin-left: 820px;+}+.offset9 {+  margin-left: 740px;+}+.offset8 {+  margin-left: 660px;+}+.offset7 {+  margin-left: 580px;+}+.offset6 {+  margin-left: 500px;+}+.offset5 {+  margin-left: 420px;+}+.offset4 {+  margin-left: 340px;+}+.offset3 {+  margin-left: 260px;+}+.offset2 {+  margin-left: 180px;+}+.offset1 {+  margin-left: 100px;+}+.row-fluid {+  width: 100%;+  *zoom: 1;+}+.row-fluid:before,+.row-fluid:after {+  display: table;+  content: "";+}+.row-fluid:after {+  clear: both;+}+.row-fluid > [class*="span"] {+  float: left;+  margin-left: 2.127659574%;+}+.row-fluid > [class*="span"]:first-child {+  margin-left: 0;+}+.row-fluid > .span12 {+  width: 99.99999998999999%;+}+.row-fluid > .span11 {+  width: 91.489361693%;+}+.row-fluid > .span10 {+  width: 82.97872339599999%;+}+.row-fluid > .span9 {+  width: 74.468085099%;+}+.row-fluid > .span8 {+  width: 65.95744680199999%;+}+.row-fluid > .span7 {+  width: 57.446808505%;+}+.row-fluid > .span6 {+  width: 48.93617020799999%;+}+.row-fluid > .span5 {+  width: 40.425531911%;+}+.row-fluid > .span4 {+  width: 31.914893614%;+}+.row-fluid > .span3 {+  width: 23.404255317%;+}+.row-fluid > .span2 {+  width: 14.89361702%;+}+.row-fluid > .span1 {+  width: 6.382978723%;+}+.container {+  margin-left: auto;+  margin-right: auto;+  *zoom: 1;+}+.container:before,+.container:after {+  display: table;+  content: "";+}+.container:after {+  clear: both;+}+.container-fluid {+  padding-left: 20px;+  padding-right: 20px;+  *zoom: 1;+}+.container-fluid:before,+.container-fluid:after {+  display: table;+  content: "";+}+.container-fluid:after {+  clear: both;+}+p {+  margin: 0 0 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  line-height: 18px;+}+p small {+  font-size: 11px;+  color: #999999;+}+.lead {+  margin-bottom: 18px;+  font-size: 20px;+  font-weight: 200;+  line-height: 27px;+}+h1,+h2,+h3,+h4,+h5,+h6 {+  margin: 0;+  font-family: inherit;+  font-weight: bold;+  color: inherit;+  text-rendering: optimizelegibility;+}+h1 small,+h2 small,+h3 small,+h4 small,+h5 small,+h6 small {+  font-weight: normal;+  color: #999999;+}+h1 {+  font-size: 30px;+  line-height: 36px;+}+h1 small {+  font-size: 18px;+}+h2 {+  font-size: 24px;+  line-height: 36px;+}+h2 small {+  font-size: 18px;+}+h3 {+  line-height: 27px;+  font-size: 18px;+}+h3 small {+  font-size: 14px;+}+h4,+h5,+h6 {+  line-height: 18px;+}+h4 {+  font-size: 14px;+}+h4 small {+  font-size: 12px;+}+h5 {+  font-size: 12px;+}+h6 {+  font-size: 11px;+  color: #999999;+  text-transform: uppercase;+}+.page-header {+  padding-bottom: 17px;+  margin: 18px 0;+  border-bottom: 1px solid #eeeeee;+}+.page-header h1 {+  line-height: 1;+}+ul,+ol {+  padding: 0;+  margin: 0 0 9px 25px;+}+ul ul,+ul ol,+ol ol,+ol ul {+  margin-bottom: 0;+}+ul {+  list-style: disc;+}+ol {+  list-style: decimal;+}+li {+  line-height: 18px;+}+ul.unstyled,+ol.unstyled {+  margin-left: 0;+  list-style: none;+}+dl {+  margin-bottom: 18px;+}+dt,+dd {+  line-height: 18px;+}+dt {+  font-weight: bold;+  line-height: 17px;+}+dd {+  margin-left: 9px;+}+.dl-horizontal dt {+  float: left;+  clear: left;+  width: 120px;+  text-align: right;+}+.dl-horizontal dd {+  margin-left: 130px;+}+hr {+  margin: 18px 0;+  border: 0;+  border-top: 1px solid #eeeeee;+  border-bottom: 1px solid #ffffff;+}+strong {+  font-weight: bold;+}+em {+  font-style: italic;+}+.muted {+  color: #999999;+}+abbr[title] {+  border-bottom: 1px dotted #ddd;+  cursor: help;+}+abbr.initialism {+  font-size: 90%;+  text-transform: uppercase;+}+blockquote {+  padding: 0 0 0 15px;+  margin: 0 0 18px;+  border-left: 5px solid #eeeeee;+}+blockquote p {+  margin-bottom: 0;+  font-size: 16px;+  font-weight: 300;+  line-height: 22.5px;+}+blockquote small {+  display: block;+  line-height: 18px;+  color: #999999;+}+blockquote small:before {+  content: '\2014 \00A0';+}+blockquote.pull-right {+  float: right;+  padding-left: 0;+  padding-right: 15px;+  border-left: 0;+  border-right: 5px solid #eeeeee;+}+blockquote.pull-right p,+blockquote.pull-right small {+  text-align: right;+}+q:before,+q:after,+blockquote:before,+blockquote:after {+  content: "";+}+address {+  display: block;+  margin-bottom: 18px;+  line-height: 18px;+  font-style: normal;+}+small {+  font-size: 100%;+}+cite {+  font-style: normal;+}+code,+pre {+  padding: 0 3px 2px;+  font-family: Menlo, Monaco, "Courier New", monospace;+  font-size: 12px;+  color: #333333;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+code {+  padding: 2px 4px;+  color: #d14;+  background-color: #f7f7f9;+  border: 1px solid #e1e1e8;+}+pre {+  display: block;+  padding: 8.5px;+  margin: 0 0 9px;+  font-size: 12.025px;+  line-height: 18px;+  background-color: #f5f5f5;+  border: 1px solid #ccc;+  border: 1px solid rgba(0, 0, 0, 0.15);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  white-space: pre;+  white-space: pre-wrap;+  word-break: break-all;+  word-wrap: break-word;+}+pre.prettyprint {+  margin-bottom: 18px;+}+pre code {+  padding: 0;+  color: inherit;+  background-color: transparent;+  border: 0;+}+.pre-scrollable {+  max-height: 340px;+  overflow-y: scroll;+}+form {+  margin: 0 0 18px;+}+fieldset {+  padding: 0;+  margin: 0;+  border: 0;+}+legend {+  display: block;+  width: 100%;+  padding: 0;+  margin-bottom: 27px;+  font-size: 19.5px;+  line-height: 36px;+  color: #333333;+  border: 0;+  border-bottom: 1px solid #eee;+}+legend small {+  font-size: 13.5px;+  color: #999999;+}+label,+input,+button,+select,+textarea {+  font-size: 13px;+  font-weight: normal;+  line-height: 18px;+}+input,+button,+select,+textarea {+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+}+label {+  display: block;+  margin-bottom: 5px;+  color: #333333;+}+input,+textarea,+select,+.uneditable-input {+  display: inline-block;+  width: 210px;+  height: 18px;+  padding: 4px;+  margin-bottom: 9px;+  font-size: 13px;+  line-height: 18px;+  color: #555555;+  border: 1px solid #cccccc;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.uneditable-textarea {+  width: auto;+  height: auto;+}+label input,+label textarea,+label select {+  display: block;+}+input[type="image"],+input[type="checkbox"],+input[type="radio"] {+  width: auto;+  height: auto;+  padding: 0;+  margin: 3px 0;+  *margin-top: 0;+  /* IE7 */++  line-height: normal;+  cursor: pointer;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+  border: 0 \9;+  /* IE9 and down */++}+input[type="image"] {+  border: 0;+}+input[type="file"] {+  width: auto;+  padding: initial;+  line-height: initial;+  border: initial;+  background-color: #ffffff;+  background-color: initial;+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+input[type="button"],+input[type="reset"],+input[type="submit"] {+  width: auto;+  height: auto;+}+select,+input[type="file"] {+  height: 28px;+  /* In IE7, the height of the select element cannot be changed by height, only font-size */++  *margin-top: 4px;+  /* For IE7, add top margin to align select with labels */++  line-height: 28px;+}+input[type="file"] {+  line-height: 18px \9;+}+select {+  width: 220px;+  background-color: #ffffff;+}+select[multiple],+select[size] {+  height: auto;+}+input[type="image"] {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+textarea {+  height: auto;+}+input[type="hidden"] {+  display: none;+}+.radio,+.checkbox {+  padding-left: 18px;+}+.radio input[type="radio"],+.checkbox input[type="checkbox"] {+  float: left;+  margin-left: -18px;+}+.controls > .radio:first-child,+.controls > .checkbox:first-child {+  padding-top: 5px;+}+.radio.inline,+.checkbox.inline {+  display: inline-block;+  padding-top: 5px;+  margin-bottom: 0;+  vertical-align: middle;+}+.radio.inline + .radio.inline,+.checkbox.inline + .checkbox.inline {+  margin-left: 10px;+}+input,+textarea {+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);+  -webkit-transition: border linear 0.2s, box-shadow linear 0.2s;+  -moz-transition: border linear 0.2s, box-shadow linear 0.2s;+  -ms-transition: border linear 0.2s, box-shadow linear 0.2s;+  -o-transition: border linear 0.2s, box-shadow linear 0.2s;+  transition: border linear 0.2s, box-shadow linear 0.2s;+}+input:focus,+textarea:focus {+  border-color: rgba(82, 168, 236, 0.8);+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(82, 168, 236, 0.6);+  outline: 0;+  outline: thin dotted \9;+  /* IE6-9 */++}+input[type="file"]:focus,+input[type="radio"]:focus,+input[type="checkbox"]:focus,+select:focus {+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.input-mini {+  width: 60px;+}+.input-small {+  width: 90px;+}+.input-medium {+  width: 150px;+}+.input-large {+  width: 210px;+}+.input-xlarge {+  width: 270px;+}+.input-xxlarge {+  width: 530px;+}+input[class*="span"],+select[class*="span"],+textarea[class*="span"],+.uneditable-input {+  float: none;+  margin-left: 0;+}+input,+textarea,+.uneditable-input {+  margin-left: 0;+}+input.span12, textarea.span12, .uneditable-input.span12 {+  width: 930px;+}+input.span11, textarea.span11, .uneditable-input.span11 {+  width: 850px;+}+input.span10, textarea.span10, .uneditable-input.span10 {+  width: 770px;+}+input.span9, textarea.span9, .uneditable-input.span9 {+  width: 690px;+}+input.span8, textarea.span8, .uneditable-input.span8 {+  width: 610px;+}+input.span7, textarea.span7, .uneditable-input.span7 {+  width: 530px;+}+input.span6, textarea.span6, .uneditable-input.span6 {+  width: 450px;+}+input.span5, textarea.span5, .uneditable-input.span5 {+  width: 370px;+}+input.span4, textarea.span4, .uneditable-input.span4 {+  width: 290px;+}+input.span3, textarea.span3, .uneditable-input.span3 {+  width: 210px;+}+input.span2, textarea.span2, .uneditable-input.span2 {+  width: 130px;+}+input.span1, textarea.span1, .uneditable-input.span1 {+  width: 50px;+}+input[disabled],+select[disabled],+textarea[disabled],+input[readonly],+select[readonly],+textarea[readonly] {+  background-color: #eeeeee;+  border-color: #ddd;+  cursor: not-allowed;+}+.control-group.warning > label,+.control-group.warning .help-block,+.control-group.warning .help-inline {+  color: #c09853;+}+.control-group.warning input,+.control-group.warning select,+.control-group.warning textarea {+  color: #c09853;+  border-color: #c09853;+}+.control-group.warning input:focus,+.control-group.warning select:focus,+.control-group.warning textarea:focus {+  border-color: #a47e3c;+  -webkit-box-shadow: 0 0 6px #dbc59e;+  -moz-box-shadow: 0 0 6px #dbc59e;+  box-shadow: 0 0 6px #dbc59e;+}+.control-group.warning .input-prepend .add-on,+.control-group.warning .input-append .add-on {+  color: #c09853;+  background-color: #fcf8e3;+  border-color: #c09853;+}+.control-group.error > label,+.control-group.error .help-block,+.control-group.error .help-inline {+  color: #b94a48;+}+.control-group.error input,+.control-group.error select,+.control-group.error textarea {+  color: #b94a48;+  border-color: #b94a48;+}+.control-group.error input:focus,+.control-group.error select:focus,+.control-group.error textarea:focus {+  border-color: #953b39;+  -webkit-box-shadow: 0 0 6px #d59392;+  -moz-box-shadow: 0 0 6px #d59392;+  box-shadow: 0 0 6px #d59392;+}+.control-group.error .input-prepend .add-on,+.control-group.error .input-append .add-on {+  color: #b94a48;+  background-color: #f2dede;+  border-color: #b94a48;+}+.control-group.success > label,+.control-group.success .help-block,+.control-group.success .help-inline {+  color: #468847;+}+.control-group.success input,+.control-group.success select,+.control-group.success textarea {+  color: #468847;+  border-color: #468847;+}+.control-group.success input:focus,+.control-group.success select:focus,+.control-group.success textarea:focus {+  border-color: #356635;+  -webkit-box-shadow: 0 0 6px #7aba7b;+  -moz-box-shadow: 0 0 6px #7aba7b;+  box-shadow: 0 0 6px #7aba7b;+}+.control-group.success .input-prepend .add-on,+.control-group.success .input-append .add-on {+  color: #468847;+  background-color: #dff0d8;+  border-color: #468847;+}+input:focus:required:invalid,+textarea:focus:required:invalid,+select:focus:required:invalid {+  color: #b94a48;+  border-color: #ee5f5b;+}+input:focus:required:invalid:focus,+textarea:focus:required:invalid:focus,+select:focus:required:invalid:focus {+  border-color: #e9322d;+  -webkit-box-shadow: 0 0 6px #f8b9b7;+  -moz-box-shadow: 0 0 6px #f8b9b7;+  box-shadow: 0 0 6px #f8b9b7;+}+.form-actions {+  padding: 17px 20px 18px;+  margin-top: 18px;+  margin-bottom: 18px;+  background-color: #eeeeee;+  border-top: 1px solid #ddd;+  *zoom: 1;+}+.form-actions:before,+.form-actions:after {+  display: table;+  content: "";+}+.form-actions:after {+  clear: both;+}+.uneditable-input {+  display: block;+  background-color: #ffffff;+  border-color: #eee;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025);+  cursor: not-allowed;+}+:-moz-placeholder {+  color: #999999;+}+::-webkit-input-placeholder {+  color: #999999;+}+.help-block,+.help-inline {+  color: #555555;+}+.help-block {+  display: block;+  margin-bottom: 9px;+}+.help-inline {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  vertical-align: middle;+  padding-left: 5px;+}+.input-prepend,+.input-append {+  margin-bottom: 5px;+}+.input-prepend input,+.input-append input,+.input-prepend select,+.input-append select,+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  *margin-left: 0;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend input:focus,+.input-append input:focus,+.input-prepend select:focus,+.input-append select:focus,+.input-prepend .uneditable-input:focus,+.input-append .uneditable-input:focus {+  position: relative;+  z-index: 2;+}+.input-prepend .uneditable-input,+.input-append .uneditable-input {+  border-left-color: #ccc;+}+.input-prepend .add-on,+.input-append .add-on {+  display: inline-block;+  width: auto;+  min-width: 16px;+  height: 18px;+  padding: 4px 5px;+  font-weight: normal;+  line-height: 18px;+  text-align: center;+  text-shadow: 0 1px 0 #ffffff;+  vertical-align: middle;+  background-color: #eeeeee;+  border: 1px solid #ccc;+}+.input-prepend .add-on,+.input-append .add-on,+.input-prepend .btn,+.input-append .btn {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend .active,+.input-append .active {+  background-color: #a9dba9;+  border-color: #46a546;+}+.input-prepend .add-on,+.input-prepend .btn {+  margin-right: -1px;+}+.input-append input,+.input-append select .uneditable-input {+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-append .uneditable-input {+  border-left-color: #eee;+  border-right-color: #ccc;+}+.input-append .add-on,+.input-append .btn {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.input-prepend.input-append input,+.input-prepend.input-append select,+.input-prepend.input-append .uneditable-input {+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.input-prepend.input-append .add-on:first-child,+.input-prepend.input-append .btn:first-child {+  margin-right: -1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.input-prepend.input-append .add-on:last-child,+.input-prepend.input-append .btn:last-child {+  margin-left: -1px;+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.search-query {+  padding-left: 14px;+  padding-right: 14px;+  margin-bottom: 0;+  -webkit-border-radius: 14px;+  -moz-border-radius: 14px;+  border-radius: 14px;+}+.form-search input,+.form-inline input,+.form-horizontal input,+.form-search textarea,+.form-inline textarea,+.form-horizontal textarea,+.form-search select,+.form-inline select,+.form-horizontal select,+.form-search .help-inline,+.form-inline .help-inline,+.form-horizontal .help-inline,+.form-search .uneditable-input,+.form-inline .uneditable-input,+.form-horizontal .uneditable-input,+.form-search .input-prepend,+.form-inline .input-prepend,+.form-horizontal .input-prepend,+.form-search .input-append,+.form-inline .input-append,+.form-horizontal .input-append {+  display: inline-block;+  margin-bottom: 0;+}+.form-search .hide,+.form-inline .hide,+.form-horizontal .hide {+  display: none;+}+.form-search label,+.form-inline label {+  display: inline-block;+}+.form-search .input-append,+.form-inline .input-append,+.form-search .input-prepend,+.form-inline .input-prepend {+  margin-bottom: 0;+}+.form-search .radio,+.form-search .checkbox,+.form-inline .radio,+.form-inline .checkbox {+  padding-left: 0;+  margin-bottom: 0;+  vertical-align: middle;+}+.form-search .radio input[type="radio"],+.form-search .checkbox input[type="checkbox"],+.form-inline .radio input[type="radio"],+.form-inline .checkbox input[type="checkbox"] {+  float: left;+  margin-left: 0;+  margin-right: 3px;+}+.control-group {+  margin-bottom: 9px;+}+legend + .control-group {+  margin-top: 18px;+  -webkit-margin-top-collapse: separate;+}+.form-horizontal .control-group {+  margin-bottom: 18px;+  *zoom: 1;+}+.form-horizontal .control-group:before,+.form-horizontal .control-group:after {+  display: table;+  content: "";+}+.form-horizontal .control-group:after {+  clear: both;+}+.form-horizontal .control-label {+  float: left;+  width: 140px;+  padding-top: 5px;+  text-align: right;+}+.form-horizontal .controls {+  margin-left: 160px;+  /* Super jank IE7 fix to ensure the inputs in .input-append and input-prepend don't inherit the margin of the parent, in this case .controls */++  *display: inline-block;+  *margin-left: 0;+  *padding-left: 20px;+}+.form-horizontal .help-block {+  margin-top: 9px;+  margin-bottom: 0;+}+.form-horizontal .form-actions {+  padding-left: 160px;+}+table {+  max-width: 100%;+  border-collapse: collapse;+  border-spacing: 0;+  background-color: transparent;+}+.table {+  width: 100%;+  margin-bottom: 18px;+}+.table th,+.table td {+  padding: 8px;+  line-height: 18px;+  text-align: left;+  vertical-align: top;+  border-top: 1px solid #dddddd;+}+.table th {+  font-weight: bold;+}+.table thead th {+  vertical-align: bottom;+}+.table colgroup + thead tr:first-child th,+.table colgroup + thead tr:first-child td,+.table thead:first-child tr:first-child th,+.table thead:first-child tr:first-child td {+  border-top: 0;+}+.table tbody + tbody {+  border-top: 2px solid #dddddd;+}+.table-condensed th,+.table-condensed td {+  padding: 4px 5px;+}+.table-bordered {+  border: 1px solid #dddddd;+  border-left: 0;+  border-collapse: separate;+  *border-collapse: collapsed;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.table-bordered th,+.table-bordered td {+  border-left: 1px solid #dddddd;+}+.table-bordered thead:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child th,+.table-bordered tbody:first-child tr:first-child td {+  border-top: 0;+}+.table-bordered thead:first-child tr:first-child th:first-child,+.table-bordered tbody:first-child tr:first-child td:first-child {+  -webkit-border-radius: 4px 0 0 0;+  -moz-border-radius: 4px 0 0 0;+  border-radius: 4px 0 0 0;+}+.table-bordered thead:first-child tr:first-child th:last-child,+.table-bordered tbody:first-child tr:first-child td:last-child {+  -webkit-border-radius: 0 4px 0 0;+  -moz-border-radius: 0 4px 0 0;+  border-radius: 0 4px 0 0;+}+.table-bordered thead:last-child tr:last-child th:first-child,+.table-bordered tbody:last-child tr:last-child td:first-child {+  -webkit-border-radius: 0 0 0 4px;+  -moz-border-radius: 0 0 0 4px;+  border-radius: 0 0 0 4px;+}+.table-bordered thead:last-child tr:last-child th:last-child,+.table-bordered tbody:last-child tr:last-child td:last-child {+  -webkit-border-radius: 0 0 4px 0;+  -moz-border-radius: 0 0 4px 0;+  border-radius: 0 0 4px 0;+}+.table-striped tbody tr:nth-child(odd) td,+.table-striped tbody tr:nth-child(odd) th {+  background-color: #f9f9f9;+}+.table tbody tr:hover td,+.table tbody tr:hover th {+  background-color: #f5f5f5;+}+table .span1 {+  float: none;+  width: 44px;+  margin-left: 0;+}+table .span2 {+  float: none;+  width: 124px;+  margin-left: 0;+}+table .span3 {+  float: none;+  width: 204px;+  margin-left: 0;+}+table .span4 {+  float: none;+  width: 284px;+  margin-left: 0;+}+table .span5 {+  float: none;+  width: 364px;+  margin-left: 0;+}+table .span6 {+  float: none;+  width: 444px;+  margin-left: 0;+}+table .span7 {+  float: none;+  width: 524px;+  margin-left: 0;+}+table .span8 {+  float: none;+  width: 604px;+  margin-left: 0;+}+table .span9 {+  float: none;+  width: 684px;+  margin-left: 0;+}+table .span10 {+  float: none;+  width: 764px;+  margin-left: 0;+}+table .span11 {+  float: none;+  width: 844px;+  margin-left: 0;+}+table .span12 {+  float: none;+  width: 924px;+  margin-left: 0;+}+table .span13 {+  float: none;+  width: 1004px;+  margin-left: 0;+}+table .span14 {+  float: none;+  width: 1084px;+  margin-left: 0;+}+table .span15 {+  float: none;+  width: 1164px;+  margin-left: 0;+}+table .span16 {+  float: none;+  width: 1244px;+  margin-left: 0;+}+table .span17 {+  float: none;+  width: 1324px;+  margin-left: 0;+}+table .span18 {+  float: none;+  width: 1404px;+  margin-left: 0;+}+table .span19 {+  float: none;+  width: 1484px;+  margin-left: 0;+}+table .span20 {+  float: none;+  width: 1564px;+  margin-left: 0;+}+table .span21 {+  float: none;+  width: 1644px;+  margin-left: 0;+}+table .span22 {+  float: none;+  width: 1724px;+  margin-left: 0;+}+table .span23 {+  float: none;+  width: 1804px;+  margin-left: 0;+}+table .span24 {+  float: none;+  width: 1884px;+  margin-left: 0;+}+[class^="icon-"],+[class*=" icon-"] {+  display: inline-block;+  width: 14px;+  height: 14px;+  line-height: 14px;+  vertical-align: text-top;+  background-image: url("../img/glyphicons-halflings.png");+  background-position: 14px 14px;+  background-repeat: no-repeat;+  *margin-right: .3em;+}+[class^="icon-"]:last-child,+[class*=" icon-"]:last-child {+  *margin-left: 0;+}+.icon-white {+  background-image: url("../img/glyphicons-halflings-white.png");+}+.icon-glass {+  background-position: 0      0;+}+.icon-music {+  background-position: -24px 0;+}+.icon-search {+  background-position: -48px 0;+}+.icon-envelope {+  background-position: -72px 0;+}+.icon-heart {+  background-position: -96px 0;+}+.icon-star {+  background-position: -120px 0;+}+.icon-star-empty {+  background-position: -144px 0;+}+.icon-user {+  background-position: -168px 0;+}+.icon-film {+  background-position: -192px 0;+}+.icon-th-large {+  background-position: -216px 0;+}+.icon-th {+  background-position: -240px 0;+}+.icon-th-list {+  background-position: -264px 0;+}+.icon-ok {+  background-position: -288px 0;+}+.icon-remove {+  background-position: -312px 0;+}+.icon-zoom-in {+  background-position: -336px 0;+}+.icon-zoom-out {+  background-position: -360px 0;+}+.icon-off {+  background-position: -384px 0;+}+.icon-signal {+  background-position: -408px 0;+}+.icon-cog {+  background-position: -432px 0;+}+.icon-trash {+  background-position: -456px 0;+}+.icon-home {+  background-position: 0 -24px;+}+.icon-file {+  background-position: -24px -24px;+}+.icon-time {+  background-position: -48px -24px;+}+.icon-road {+  background-position: -72px -24px;+}+.icon-download-alt {+  background-position: -96px -24px;+}+.icon-download {+  background-position: -120px -24px;+}+.icon-upload {+  background-position: -144px -24px;+}+.icon-inbox {+  background-position: -168px -24px;+}+.icon-play-circle {+  background-position: -192px -24px;+}+.icon-repeat {+  background-position: -216px -24px;+}+.icon-refresh {+  background-position: -240px -24px;+}+.icon-list-alt {+  background-position: -264px -24px;+}+.icon-lock {+  background-position: -287px -24px;+}+.icon-flag {+  background-position: -312px -24px;+}+.icon-headphones {+  background-position: -336px -24px;+}+.icon-volume-off {+  background-position: -360px -24px;+}+.icon-volume-down {+  background-position: -384px -24px;+}+.icon-volume-up {+  background-position: -408px -24px;+}+.icon-qrcode {+  background-position: -432px -24px;+}+.icon-barcode {+  background-position: -456px -24px;+}+.icon-tag {+  background-position: 0 -48px;+}+.icon-tags {+  background-position: -25px -48px;+}+.icon-book {+  background-position: -48px -48px;+}+.icon-bookmark {+  background-position: -72px -48px;+}+.icon-print {+  background-position: -96px -48px;+}+.icon-camera {+  background-position: -120px -48px;+}+.icon-font {+  background-position: -144px -48px;+}+.icon-bold {+  background-position: -167px -48px;+}+.icon-italic {+  background-position: -192px -48px;+}+.icon-text-height {+  background-position: -216px -48px;+}+.icon-text-width {+  background-position: -240px -48px;+}+.icon-align-left {+  background-position: -264px -48px;+}+.icon-align-center {+  background-position: -288px -48px;+}+.icon-align-right {+  background-position: -312px -48px;+}+.icon-align-justify {+  background-position: -336px -48px;+}+.icon-list {+  background-position: -360px -48px;+}+.icon-indent-left {+  background-position: -384px -48px;+}+.icon-indent-right {+  background-position: -408px -48px;+}+.icon-facetime-video {+  background-position: -432px -48px;+}+.icon-picture {+  background-position: -456px -48px;+}+.icon-pencil {+  background-position: 0 -72px;+}+.icon-map-marker {+  background-position: -24px -72px;+}+.icon-adjust {+  background-position: -48px -72px;+}+.icon-tint {+  background-position: -72px -72px;+}+.icon-edit {+  background-position: -96px -72px;+}+.icon-share {+  background-position: -120px -72px;+}+.icon-check {+  background-position: -144px -72px;+}+.icon-move {+  background-position: -168px -72px;+}+.icon-step-backward {+  background-position: -192px -72px;+}+.icon-fast-backward {+  background-position: -216px -72px;+}+.icon-backward {+  background-position: -240px -72px;+}+.icon-play {+  background-position: -264px -72px;+}+.icon-pause {+  background-position: -288px -72px;+}+.icon-stop {+  background-position: -312px -72px;+}+.icon-forward {+  background-position: -336px -72px;+}+.icon-fast-forward {+  background-position: -360px -72px;+}+.icon-step-forward {+  background-position: -384px -72px;+}+.icon-eject {+  background-position: -408px -72px;+}+.icon-chevron-left {+  background-position: -432px -72px;+}+.icon-chevron-right {+  background-position: -456px -72px;+}+.icon-plus-sign {+  background-position: 0 -96px;+}+.icon-minus-sign {+  background-position: -24px -96px;+}+.icon-remove-sign {+  background-position: -48px -96px;+}+.icon-ok-sign {+  background-position: -72px -96px;+}+.icon-question-sign {+  background-position: -96px -96px;+}+.icon-info-sign {+  background-position: -120px -96px;+}+.icon-screenshot {+  background-position: -144px -96px;+}+.icon-remove-circle {+  background-position: -168px -96px;+}+.icon-ok-circle {+  background-position: -192px -96px;+}+.icon-ban-circle {+  background-position: -216px -96px;+}+.icon-arrow-left {+  background-position: -240px -96px;+}+.icon-arrow-right {+  background-position: -264px -96px;+}+.icon-arrow-up {+  background-position: -289px -96px;+}+.icon-arrow-down {+  background-position: -312px -96px;+}+.icon-share-alt {+  background-position: -336px -96px;+}+.icon-resize-full {+  background-position: -360px -96px;+}+.icon-resize-small {+  background-position: -384px -96px;+}+.icon-plus {+  background-position: -408px -96px;+}+.icon-minus {+  background-position: -433px -96px;+}+.icon-asterisk {+  background-position: -456px -96px;+}+.icon-exclamation-sign {+  background-position: 0 -120px;+}+.icon-gift {+  background-position: -24px -120px;+}+.icon-leaf {+  background-position: -48px -120px;+}+.icon-fire {+  background-position: -72px -120px;+}+.icon-eye-open {+  background-position: -96px -120px;+}+.icon-eye-close {+  background-position: -120px -120px;+}+.icon-warning-sign {+  background-position: -144px -120px;+}+.icon-plane {+  background-position: -168px -120px;+}+.icon-calendar {+  background-position: -192px -120px;+}+.icon-random {+  background-position: -216px -120px;+}+.icon-comment {+  background-position: -240px -120px;+}+.icon-magnet {+  background-position: -264px -120px;+}+.icon-chevron-up {+  background-position: -288px -120px;+}+.icon-chevron-down {+  background-position: -313px -119px;+}+.icon-retweet {+  background-position: -336px -120px;+}+.icon-shopping-cart {+  background-position: -360px -120px;+}+.icon-folder-close {+  background-position: -384px -120px;+}+.icon-folder-open {+  background-position: -408px -120px;+}+.icon-resize-vertical {+  background-position: -432px -119px;+}+.icon-resize-horizontal {+  background-position: -456px -118px;+}+.dropdown {+  position: relative;+}+.dropdown-toggle {+  *margin-bottom: -3px;+}+.dropdown-toggle:active,+.open .dropdown-toggle {+  outline: 0;+}+.caret {+  display: inline-block;+  width: 0;+  height: 0;+  vertical-align: top;+  border-left: 4px solid transparent;+  border-right: 4px solid transparent;+  border-top: 4px solid #000000;+  opacity: 0.3;+  filter: alpha(opacity=30);+  content: "";+}+.dropdown .caret {+  margin-top: 8px;+  margin-left: 2px;+}+.dropdown:hover .caret,+.open.dropdown .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.dropdown-menu {+  position: absolute;+  top: 100%;+  left: 0;+  z-index: 1000;+  float: left;+  display: none;+  min-width: 160px;+  padding: 4px 0;+  margin: 0;+  list-style: none;+  background-color: #ffffff;+  border-color: #ccc;+  border-color: rgba(0, 0, 0, 0.2);+  border-style: solid;+  border-width: 1px;+  -webkit-border-radius: 0 0 5px 5px;+  -moz-border-radius: 0 0 5px 5px;+  border-radius: 0 0 5px 5px;+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding;+  background-clip: padding-box;+  *border-right-width: 2px;+  *border-bottom-width: 2px;+}+.dropdown-menu.pull-right {+  right: 0;+  left: auto;+}+.dropdown-menu .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.dropdown-menu a {+  display: block;+  padding: 3px 15px;+  clear: both;+  font-weight: normal;+  line-height: 18px;+  color: #333333;+  white-space: nowrap;+}+.dropdown-menu li > a:hover,+.dropdown-menu .active > a,+.dropdown-menu .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #0088cc;+}+.dropdown.open {+  *z-index: 1000;+}+.dropdown.open .dropdown-toggle {+  color: #ffffff;+  background: #ccc;+  background: rgba(0, 0, 0, 0.3);+}+.dropdown.open .dropdown-menu {+  display: block;+}+.pull-right .dropdown-menu {+  left: auto;+  right: 0;+}+.dropup .caret,+.navbar-fixed-bottom .dropdown .caret {+  border-top: 0;+  border-bottom: 4px solid #000000;+  content: "\2191";+}+.dropup .dropdown-menu,+.navbar-fixed-bottom .dropdown .dropdown-menu {+  top: auto;+  bottom: 100%;+  margin-bottom: 1px;+}+.typeahead {+  margin-top: 2px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.well {+  min-height: 20px;+  padding: 19px;+  margin-bottom: 20px;+  background-color: #f5f5f5;+  border: 1px solid #eee;+  border: 1px solid rgba(0, 0, 0, 0.05);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);+}+.well blockquote {+  border-color: #ddd;+  border-color: rgba(0, 0, 0, 0.15);+}+.well-large {+  padding: 24px;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.well-small {+  padding: 9px;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.fade {+  -webkit-transition: opacity 0.15s linear;+  -moz-transition: opacity 0.15s linear;+  -ms-transition: opacity 0.15s linear;+  -o-transition: opacity 0.15s linear;+  transition: opacity 0.15s linear;+  opacity: 0;+}+.fade.in {+  opacity: 1;+}+.collapse {+  -webkit-transition: height 0.35s ease;+  -moz-transition: height 0.35s ease;+  -ms-transition: height 0.35s ease;+  -o-transition: height 0.35s ease;+  transition: height 0.35s ease;+  position: relative;+  overflow: hidden;+  height: 0;+}+.collapse.in {+  height: auto;+}+.close {+  float: right;+  font-size: 20px;+  font-weight: bold;+  line-height: 18px;+  color: #000000;+  text-shadow: 0 1px 0 #ffffff;+  opacity: 0.2;+  filter: alpha(opacity=20);+}+.close:hover {+  color: #000000;+  text-decoration: none;+  opacity: 0.4;+  filter: alpha(opacity=40);+  cursor: pointer;+}+.btn {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  padding: 4px 10px 4px;+  margin-bottom: 0;+  font-size: 13px;+  line-height: 18px;+  color: #333333;+  text-align: center;+  text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75);+  vertical-align: middle;+  background-color: #f5f5f5;+  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));+  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);+  background-image: linear-gradient(top, #ffffff, #e6e6e6);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0);+  border-color: #e6e6e6 #e6e6e6 #bfbfbf;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  border: 1px solid #cccccc;+  border-bottom-color: #b3b3b3;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  cursor: pointer;+  *margin-left: .3em;+}+.btn:hover,+.btn:active,+.btn.active,+.btn.disabled,+.btn[disabled] {+  background-color: #e6e6e6;+}+.btn:active,+.btn.active {+  background-color: #cccccc \9;+}+.btn:first-child {+  *margin-left: 0;+}+.btn:hover {+  color: #333333;+  text-decoration: none;+  background-color: #e6e6e6;+  background-position: 0 -15px;+  -webkit-transition: background-position 0.1s linear;+  -moz-transition: background-position 0.1s linear;+  -ms-transition: background-position 0.1s linear;+  -o-transition: background-position 0.1s linear;+  transition: background-position 0.1s linear;+}+.btn:focus {+  outline: thin dotted #333;+  outline: 5px auto -webkit-focus-ring-color;+  outline-offset: -2px;+}+.btn.active,+.btn:active {+  background-image: none;+  -webkit-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  background-color: #e6e6e6;+  background-color: #d9d9d9 \9;+  outline: 0;+}+.btn.disabled,+.btn[disabled] {+  cursor: default;+  background-image: none;+  background-color: #e6e6e6;+  opacity: 0.65;+  filter: alpha(opacity=65);+  -webkit-box-shadow: none;+  -moz-box-shadow: none;+  box-shadow: none;+}+.btn-large {+  padding: 9px 14px;+  font-size: 15px;+  line-height: normal;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-large [class^="icon-"] {+  margin-top: 1px;+}+.btn-small {+  padding: 5px 9px;+  font-size: 11px;+  line-height: 16px;+}+.btn-small [class^="icon-"] {+  margin-top: -1px;+}+.btn-mini {+  padding: 2px 6px;+  font-size: 11px;+  line-height: 14px;+}+.btn-primary,+.btn-primary:hover,+.btn-warning,+.btn-warning:hover,+.btn-danger,+.btn-danger:hover,+.btn-success,+.btn-success:hover,+.btn-info,+.btn-info:hover,+.btn-inverse,+.btn-inverse:hover {+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  color: #ffffff;+}+.btn-primary.active,+.btn-warning.active,+.btn-danger.active,+.btn-success.active,+.btn-info.active,+.btn-inverse.active {+  color: rgba(255, 255, 255, 0.75);+}+.btn-primary {+  background-color: #0074cc;+  background-image: -moz-linear-gradient(top, #0088cc, #0055cc);+  background-image: -ms-linear-gradient(top, #0088cc, #0055cc);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#0088cc), to(#0055cc));+  background-image: -webkit-linear-gradient(top, #0088cc, #0055cc);+  background-image: -o-linear-gradient(top, #0088cc, #0055cc);+  background-image: linear-gradient(top, #0088cc, #0055cc);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#0088cc', endColorstr='#0055cc', GradientType=0);+  border-color: #0055cc #0055cc #003580;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-primary:hover,+.btn-primary:active,+.btn-primary.active,+.btn-primary.disabled,+.btn-primary[disabled] {+  background-color: #0055cc;+}+.btn-primary:active,+.btn-primary.active {+  background-color: #004099 \9;+}+.btn-warning {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+  border-color: #f89406 #f89406 #ad6704;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-warning:hover,+.btn-warning:active,+.btn-warning.active,+.btn-warning.disabled,+.btn-warning[disabled] {+  background-color: #f89406;+}+.btn-warning:active,+.btn-warning.active {+  background-color: #c67605 \9;+}+.btn-danger {+  background-color: #da4f49;+  background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: -o-linear-gradient(top, #ee5f5b, #bd362f);+  background-image: linear-gradient(top, #ee5f5b, #bd362f);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0);+  border-color: #bd362f #bd362f #802420;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-danger:hover,+.btn-danger:active,+.btn-danger.active,+.btn-danger.disabled,+.btn-danger[disabled] {+  background-color: #bd362f;+}+.btn-danger:active,+.btn-danger.active {+  background-color: #942a25 \9;+}+.btn-success {+  background-color: #5bb75b;+  background-image: -moz-linear-gradient(top, #62c462, #51a351);+  background-image: -ms-linear-gradient(top, #62c462, #51a351);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351));+  background-image: -webkit-linear-gradient(top, #62c462, #51a351);+  background-image: -o-linear-gradient(top, #62c462, #51a351);+  background-image: linear-gradient(top, #62c462, #51a351);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0);+  border-color: #51a351 #51a351 #387038;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-success:hover,+.btn-success:active,+.btn-success.active,+.btn-success.disabled,+.btn-success[disabled] {+  background-color: #51a351;+}+.btn-success:active,+.btn-success.active {+  background-color: #408140 \9;+}+.btn-info {+  background-color: #49afcd;+  background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4));+  background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: -o-linear-gradient(top, #5bc0de, #2f96b4);+  background-image: linear-gradient(top, #5bc0de, #2f96b4);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0);+  border-color: #2f96b4 #2f96b4 #1f6377;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-info:hover,+.btn-info:active,+.btn-info.active,+.btn-info.disabled,+.btn-info[disabled] {+  background-color: #2f96b4;+}+.btn-info:active,+.btn-info.active {+  background-color: #24748c \9;+}+.btn-inverse {+  background-color: #414141;+  background-image: -moz-linear-gradient(top, #555555, #222222);+  background-image: -ms-linear-gradient(top, #555555, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222));+  background-image: -webkit-linear-gradient(top, #555555, #222222);+  background-image: -o-linear-gradient(top, #555555, #222222);+  background-image: linear-gradient(top, #555555, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+}+.btn-inverse:hover,+.btn-inverse:active,+.btn-inverse.active,+.btn-inverse.disabled,+.btn-inverse[disabled] {+  background-color: #222222;+}+.btn-inverse:active,+.btn-inverse.active {+  background-color: #080808 \9;+}+button.btn,+input[type="submit"].btn {+  *padding-top: 2px;+  *padding-bottom: 2px;+}+button.btn::-moz-focus-inner,+input[type="submit"].btn::-moz-focus-inner {+  padding: 0;+  border: 0;+}+button.btn.btn-large,+input[type="submit"].btn.btn-large {+  *padding-top: 7px;+  *padding-bottom: 7px;+}+button.btn.btn-small,+input[type="submit"].btn.btn-small {+  *padding-top: 3px;+  *padding-bottom: 3px;+}+button.btn.btn-mini,+input[type="submit"].btn.btn-mini {+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group {+  position: relative;+  *zoom: 1;+  *margin-left: .3em;+}+.btn-group:before,+.btn-group:after {+  display: table;+  content: "";+}+.btn-group:after {+  clear: both;+}+.btn-group:first-child {+  *margin-left: 0;+}+.btn-group + .btn-group {+  margin-left: 5px;+}+.btn-toolbar {+  margin-top: 9px;+  margin-bottom: 9px;+}+.btn-toolbar .btn-group {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+}+.btn-group .btn {+  position: relative;+  float: left;+  margin-left: -1px;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.btn-group .btn:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 4px;+  -moz-border-radius-topleft: 4px;+  border-top-left-radius: 4px;+  -webkit-border-bottom-left-radius: 4px;+  -moz-border-radius-bottomleft: 4px;+  border-bottom-left-radius: 4px;+}+.btn-group .btn:last-child,+.btn-group .dropdown-toggle {+  -webkit-border-top-right-radius: 4px;+  -moz-border-radius-topright: 4px;+  border-top-right-radius: 4px;+  -webkit-border-bottom-right-radius: 4px;+  -moz-border-radius-bottomright: 4px;+  border-bottom-right-radius: 4px;+}+.btn-group .btn.large:first-child {+  margin-left: 0;+  -webkit-border-top-left-radius: 6px;+  -moz-border-radius-topleft: 6px;+  border-top-left-radius: 6px;+  -webkit-border-bottom-left-radius: 6px;+  -moz-border-radius-bottomleft: 6px;+  border-bottom-left-radius: 6px;+}+.btn-group .btn.large:last-child,+.btn-group .large.dropdown-toggle {+  -webkit-border-top-right-radius: 6px;+  -moz-border-radius-topright: 6px;+  border-top-right-radius: 6px;+  -webkit-border-bottom-right-radius: 6px;+  -moz-border-radius-bottomright: 6px;+  border-bottom-right-radius: 6px;+}+.btn-group .btn:hover,+.btn-group .btn:focus,+.btn-group .btn:active,+.btn-group .btn.active {+  z-index: 2;+}+.btn-group .dropdown-toggle:active,+.btn-group.open .dropdown-toggle {+  outline: 0;+}+.btn-group .dropdown-toggle {+  padding-left: 8px;+  padding-right: 8px;+  -webkit-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 1px 0 0 rgba(255, 255, 255, 0.125), inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 1px 2px rgba(0, 0, 0, 0.05);+  *padding-top: 3px;+  *padding-bottom: 3px;+}+.btn-group .btn-mini.dropdown-toggle {+  padding-left: 5px;+  padding-right: 5px;+  *padding-top: 1px;+  *padding-bottom: 1px;+}+.btn-group .btn-small.dropdown-toggle {+  *padding-top: 4px;+  *padding-bottom: 4px;+}+.btn-group .btn-large.dropdown-toggle {+  padding-left: 12px;+  padding-right: 12px;+}+.btn-group.open {+  *z-index: 1000;+}+.btn-group.open .dropdown-menu {+  display: block;+  margin-top: 1px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.btn-group.open .dropdown-toggle {+  background-image: none;+  -webkit-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: inset 0 1px 6px rgba(0, 0, 0, 0.15), 0 1px 2px rgba(0, 0, 0, 0.05);+}+.btn .caret {+  margin-top: 7px;+  margin-left: 0;+}+.btn:hover .caret,+.open.btn-group .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.btn-mini .caret {+  margin-top: 5px;+}+.btn-small .caret {+  margin-top: 6px;+}+.btn-large .caret {+  margin-top: 6px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.btn-primary .caret,+.btn-warning .caret,+.btn-danger .caret,+.btn-info .caret,+.btn-success .caret,+.btn-inverse .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 0.75;+  filter: alpha(opacity=75);+}+.alert {+  padding: 8px 35px 8px 14px;+  margin-bottom: 18px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  background-color: #fcf8e3;+  border: 1px solid #fbeed5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  color: #c09853;+}+.alert-heading {+  color: inherit;+}+.alert .close {+  position: relative;+  top: -2px;+  right: -21px;+  line-height: 18px;+}+.alert-success {+  background-color: #dff0d8;+  border-color: #d6e9c6;+  color: #468847;+}+.alert-danger,+.alert-error {+  background-color: #f2dede;+  border-color: #eed3d7;+  color: #b94a48;+}+.alert-info {+  background-color: #d9edf7;+  border-color: #bce8f1;+  color: #3a87ad;+}+.alert-block {+  padding-top: 14px;+  padding-bottom: 14px;+}+.alert-block > p,+.alert-block > ul {+  margin-bottom: 0;+}+.alert-block p + p {+  margin-top: 5px;+}+.nav {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+}+.nav > li > a {+  display: block;+}+.nav > li > a:hover {+  text-decoration: none;+  background-color: #eeeeee;+}+.nav .nav-header {+  display: block;+  padding: 3px 15px;+  font-size: 11px;+  font-weight: bold;+  line-height: 18px;+  color: #999999;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+  text-transform: uppercase;+}+.nav li + .nav-header {+  margin-top: 9px;+}+.nav-list {+  padding-left: 15px;+  padding-right: 15px;+  margin-bottom: 0;+}+.nav-list > li > a,+.nav-list .nav-header {+  margin-left: -15px;+  margin-right: -15px;+  text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5);+}+.nav-list > li > a {+  padding: 3px 15px;+}+.nav-list > .active > a,+.nav-list > .active > a:hover {+  color: #ffffff;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2);+  background-color: #0088cc;+}+.nav-list [class^="icon-"] {+  margin-right: 2px;+}+.nav-list .divider {+  height: 1px;+  margin: 8px 1px;+  overflow: hidden;+  background-color: #e5e5e5;+  border-bottom: 1px solid #ffffff;+  *width: 100%;+  *margin: -5px 0 5px;+}+.nav-tabs,+.nav-pills {+  *zoom: 1;+}+.nav-tabs:before,+.nav-pills:before,+.nav-tabs:after,+.nav-pills:after {+  display: table;+  content: "";+}+.nav-tabs:after,+.nav-pills:after {+  clear: both;+}+.nav-tabs > li,+.nav-pills > li {+  float: left;+}+.nav-tabs > li > a,+.nav-pills > li > a {+  padding-right: 12px;+  padding-left: 12px;+  margin-right: 2px;+  line-height: 14px;+}+.nav-tabs {+  border-bottom: 1px solid #ddd;+}+.nav-tabs > li {+  margin-bottom: -1px;+}+.nav-tabs > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  line-height: 18px;+  border: 1px solid transparent;+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #dddddd;+}+.nav-tabs > .active > a,+.nav-tabs > .active > a:hover {+  color: #555555;+  background-color: #ffffff;+  border: 1px solid #ddd;+  border-bottom-color: transparent;+  cursor: default;+}+.nav-pills > li > a {+  padding-top: 8px;+  padding-bottom: 8px;+  margin-top: 2px;+  margin-bottom: 2px;+  -webkit-border-radius: 5px;+  -moz-border-radius: 5px;+  border-radius: 5px;+}+.nav-pills > .active > a,+.nav-pills > .active > a:hover {+  color: #ffffff;+  background-color: #0088cc;+}+.nav-stacked > li {+  float: none;+}+.nav-stacked > li > a {+  margin-right: 0;+}+.nav-tabs.nav-stacked {+  border-bottom: 0;+}+.nav-tabs.nav-stacked > li > a {+  border: 1px solid #ddd;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.nav-tabs.nav-stacked > li:first-child > a {+  -webkit-border-radius: 4px 4px 0 0;+  -moz-border-radius: 4px 4px 0 0;+  border-radius: 4px 4px 0 0;+}+.nav-tabs.nav-stacked > li:last-child > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.nav-tabs.nav-stacked > li > a:hover {+  border-color: #ddd;+  z-index: 2;+}+.nav-pills.nav-stacked > li > a {+  margin-bottom: 3px;+}+.nav-pills.nav-stacked > li:last-child > a {+  margin-bottom: 1px;+}+.nav-tabs .dropdown-menu,+.nav-pills .dropdown-menu {+  margin-top: 1px;+  border-width: 1px;+}+.nav-pills .dropdown-menu {+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.nav-tabs .dropdown-toggle .caret,+.nav-pills .dropdown-toggle .caret {+  border-top-color: #0088cc;+  border-bottom-color: #0088cc;+  margin-top: 6px;+}+.nav-tabs .dropdown-toggle:hover .caret,+.nav-pills .dropdown-toggle:hover .caret {+  border-top-color: #005580;+  border-bottom-color: #005580;+}+.nav-tabs .active .dropdown-toggle .caret,+.nav-pills .active .dropdown-toggle .caret {+  border-top-color: #333333;+  border-bottom-color: #333333;+}+.nav > .dropdown.active > a:hover {+  color: #000000;+  cursor: pointer;+}+.nav-tabs .open .dropdown-toggle,+.nav-pills .open .dropdown-toggle,+.nav > .open.active > a:hover {+  color: #ffffff;+  background-color: #999999;+  border-color: #999999;+}+.nav .open .caret,+.nav .open.active .caret,+.nav .open a:hover .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+  opacity: 1;+  filter: alpha(opacity=100);+}+.tabs-stacked .open > a:hover {+  border-color: #999999;+}+.tabbable {+  *zoom: 1;+}+.tabbable:before,+.tabbable:after {+  display: table;+  content: "";+}+.tabbable:after {+  clear: both;+}+.tab-content {+  display: table;+  width: 100%;+}+.tabs-below .nav-tabs,+.tabs-right .nav-tabs,+.tabs-left .nav-tabs {+  border-bottom: 0;+}+.tab-content > .tab-pane,+.pill-content > .pill-pane {+  display: none;+}+.tab-content > .active,+.pill-content > .active {+  display: block;+}+.tabs-below .nav-tabs {+  border-top: 1px solid #ddd;+}+.tabs-below .nav-tabs > li {+  margin-top: -1px;+  margin-bottom: 0;+}+.tabs-below .nav-tabs > li > a {+  -webkit-border-radius: 0 0 4px 4px;+  -moz-border-radius: 0 0 4px 4px;+  border-radius: 0 0 4px 4px;+}+.tabs-below .nav-tabs > li > a:hover {+  border-bottom-color: transparent;+  border-top-color: #ddd;+}+.tabs-below .nav-tabs .active > a,+.tabs-below .nav-tabs .active > a:hover {+  border-color: transparent #ddd #ddd #ddd;+}+.tabs-left .nav-tabs > li,+.tabs-right .nav-tabs > li {+  float: none;+}+.tabs-left .nav-tabs > li > a,+.tabs-right .nav-tabs > li > a {+  min-width: 74px;+  margin-right: 0;+  margin-bottom: 3px;+}+.tabs-left .nav-tabs {+  float: left;+  margin-right: 19px;+  border-right: 1px solid #ddd;+}+.tabs-left .nav-tabs > li > a {+  margin-right: -1px;+  -webkit-border-radius: 4px 0 0 4px;+  -moz-border-radius: 4px 0 0 4px;+  border-radius: 4px 0 0 4px;+}+.tabs-left .nav-tabs > li > a:hover {+  border-color: #eeeeee #dddddd #eeeeee #eeeeee;+}+.tabs-left .nav-tabs .active > a,+.tabs-left .nav-tabs .active > a:hover {+  border-color: #ddd transparent #ddd #ddd;+  *border-right-color: #ffffff;+}+.tabs-right .nav-tabs {+  float: right;+  margin-left: 19px;+  border-left: 1px solid #ddd;+}+.tabs-right .nav-tabs > li > a {+  margin-left: -1px;+  -webkit-border-radius: 0 4px 4px 0;+  -moz-border-radius: 0 4px 4px 0;+  border-radius: 0 4px 4px 0;+}+.tabs-right .nav-tabs > li > a:hover {+  border-color: #eeeeee #eeeeee #eeeeee #dddddd;+}+.tabs-right .nav-tabs .active > a,+.tabs-right .nav-tabs .active > a:hover {+  border-color: #ddd #ddd #ddd transparent;+  *border-left-color: #ffffff;+}+.navbar {+  *position: relative;+  *z-index: 2;+  overflow: visible;+  margin-bottom: 18px;+}+.navbar-inner {+  padding-left: 20px;+  padding-right: 20px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  -moz-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), inset 0 -1px 0 rgba(0, 0, 0, 0.1);+}+.navbar .container {+  width: auto;+}+.btn-navbar {+  display: none;+  float: right;+  padding: 7px 10px;+  margin-left: 5px;+  margin-right: 5px;+  background-color: #2c2c2c;+  background-image: -moz-linear-gradient(top, #333333, #222222);+  background-image: -ms-linear-gradient(top, #333333, #222222);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222));+  background-image: -webkit-linear-gradient(top, #333333, #222222);+  background-image: -o-linear-gradient(top, #333333, #222222);+  background-image: linear-gradient(top, #333333, #222222);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0);+  border-color: #222222 #222222 #000000;+  border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);+  filter: progid:dximagetransform.microsoft.gradient(enabled=false);+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.075);+}+.btn-navbar:hover,+.btn-navbar:active,+.btn-navbar.active,+.btn-navbar.disabled,+.btn-navbar[disabled] {+  background-color: #222222;+}+.btn-navbar:active,+.btn-navbar.active {+  background-color: #080808 \9;+}+.btn-navbar .icon-bar {+  display: block;+  width: 18px;+  height: 2px;+  background-color: #f5f5f5;+  -webkit-border-radius: 1px;+  -moz-border-radius: 1px;+  border-radius: 1px;+  -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25);+}+.btn-navbar .icon-bar + .icon-bar {+  margin-top: 3px;+}+.nav-collapse.collapse {+  height: auto;+}+.navbar {+  color: #999999;+}+.navbar .brand:hover {+  text-decoration: none;+}+.navbar .brand {+  float: left;+  display: block;+  padding: 8px 20px 12px;+  margin-left: -20px;+  font-size: 20px;+  font-weight: 200;+  line-height: 1;+  color: #ffffff;+}+.navbar .navbar-text {+  margin-bottom: 0;+  line-height: 40px;+}+.navbar .btn,+.navbar .btn-group {+  margin-top: 5px;+}+.navbar .btn-group .btn {+  margin-top: 0;+}+.navbar-form {+  margin-bottom: 0;+  *zoom: 1;+}+.navbar-form:before,+.navbar-form:after {+  display: table;+  content: "";+}+.navbar-form:after {+  clear: both;+}+.navbar-form input,+.navbar-form select,+.navbar-form .radio,+.navbar-form .checkbox {+  margin-top: 5px;+}+.navbar-form input,+.navbar-form select {+  display: inline-block;+  margin-bottom: 0;+}+.navbar-form input[type="image"],+.navbar-form input[type="checkbox"],+.navbar-form input[type="radio"] {+  margin-top: 3px;+}+.navbar-form .input-append,+.navbar-form .input-prepend {+  margin-top: 6px;+  white-space: nowrap;+}+.navbar-form .input-append input,+.navbar-form .input-prepend input {+  margin-top: 0;+}+.navbar-search {+  position: relative;+  float: left;+  margin-top: 6px;+  margin-bottom: 0;+}+.navbar-search .search-query {+  padding: 4px 9px;+  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;+  font-size: 13px;+  font-weight: normal;+  line-height: 1;+  color: #ffffff;+  background-color: #626262;+  border: 1px solid #151515;+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 1px 0px rgba(255, 255, 255, 0.15);+  -webkit-transition: none;+  -moz-transition: none;+  -ms-transition: none;+  -o-transition: none;+  transition: none;+}+.navbar-search .search-query:-moz-placeholder {+  color: #cccccc;+}+.navbar-search .search-query::-webkit-input-placeholder {+  color: #cccccc;+}+.navbar-search .search-query:focus,+.navbar-search .search-query.focused {+  padding: 5px 10px;+  color: #333333;+  text-shadow: 0 1px 0 #ffffff;+  background-color: #ffffff;+  border: 0;+  -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  box-shadow: 0 0 3px rgba(0, 0, 0, 0.15);+  outline: 0;+}+.navbar-fixed-top,+.navbar-fixed-bottom {+  position: fixed;+  right: 0;+  left: 0;+  z-index: 1030;+  margin-bottom: 0;+}+.navbar-fixed-top .navbar-inner,+.navbar-fixed-bottom .navbar-inner {+  padding-left: 0;+  padding-right: 0;+  -webkit-border-radius: 0;+  -moz-border-radius: 0;+  border-radius: 0;+}+.navbar-fixed-top .container,+.navbar-fixed-bottom .container {+  width: 940px;+}+.navbar-fixed-top {+  top: 0;+}+.navbar-fixed-bottom {+  bottom: 0;+}+.navbar .nav {+  position: relative;+  left: 0;+  display: block;+  float: left;+  margin: 0 10px 0 0;+}+.navbar .nav.pull-right {+  float: right;+}+.navbar .nav > li {+  display: block;+  float: left;+}+.navbar .nav > li > a {+  float: none;+  padding: 10px 10px 11px;+  line-height: 19px;+  color: #999999;+  text-decoration: none;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+}+.navbar .nav > li > a:hover {+  background-color: transparent;+  color: #ffffff;+  text-decoration: none;+}+.navbar .nav .active > a,+.navbar .nav .active > a:hover {+  color: #ffffff;+  text-decoration: none;+  background-color: #222222;+}+.navbar .divider-vertical {+  height: 40px;+  width: 1px;+  margin: 0 9px;+  overflow: hidden;+  background-color: #222222;+  border-right: 1px solid #333333;+}+.navbar .nav.pull-right {+  margin-left: 10px;+  margin-right: 0;+}+.navbar .dropdown-menu {+  margin-top: 1px;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.navbar .dropdown-menu:before {+  content: '';+  display: inline-block;+  border-left: 7px solid transparent;+  border-right: 7px solid transparent;+  border-bottom: 7px solid #ccc;+  border-bottom-color: rgba(0, 0, 0, 0.2);+  position: absolute;+  top: -7px;+  left: 9px;+}+.navbar .dropdown-menu:after {+  content: '';+  display: inline-block;+  border-left: 6px solid transparent;+  border-right: 6px solid transparent;+  border-bottom: 6px solid #ffffff;+  position: absolute;+  top: -6px;+  left: 10px;+}+.navbar-fixed-bottom .dropdown-menu:before {+  border-top: 7px solid #ccc;+  border-top-color: rgba(0, 0, 0, 0.2);+  border-bottom: 0;+  bottom: -7px;+  top: auto;+}+.navbar-fixed-bottom .dropdown-menu:after {+  border-top: 6px solid #ffffff;+  border-bottom: 0;+  bottom: -6px;+  top: auto;+}+.navbar .nav .dropdown-toggle .caret,+.navbar .nav .open.dropdown .caret {+  border-top-color: #ffffff;+  border-bottom-color: #ffffff;+}+.navbar .nav .active .caret {+  opacity: 1;+  filter: alpha(opacity=100);+}+.navbar .nav .open > .dropdown-toggle,+.navbar .nav .active > .dropdown-toggle,+.navbar .nav .open.active > .dropdown-toggle {+  background-color: transparent;+}+.navbar .nav .active > .dropdown-toggle:hover {+  color: #ffffff;+}+.navbar .nav.pull-right .dropdown-menu,+.navbar .nav .dropdown-menu.pull-right {+  left: auto;+  right: 0;+}+.navbar .nav.pull-right .dropdown-menu:before,+.navbar .nav .dropdown-menu.pull-right:before {+  left: auto;+  right: 12px;+}+.navbar .nav.pull-right .dropdown-menu:after,+.navbar .nav .dropdown-menu.pull-right:after {+  left: auto;+  right: 13px;+}+.breadcrumb {+  padding: 7px 14px;+  margin: 0 0 18px;+  list-style: none;+  background-color: #fbfbfb;+  background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5));+  background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: -o-linear-gradient(top, #ffffff, #f5f5f5);+  background-image: linear-gradient(top, #ffffff, #f5f5f5);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0);+  border: 1px solid #ddd;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+}+.breadcrumb li {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  text-shadow: 0 1px 0 #ffffff;+}+.breadcrumb .divider {+  padding: 0 5px;+  color: #999999;+}+.breadcrumb .active a {+  color: #333333;+}+.pagination {+  height: 36px;+  margin: 18px 0;+}+.pagination ul {+  display: inline-block;+  *display: inline;+  /* IE7 inline-block hack */++  *zoom: 1;+  margin-left: 0;+  margin-bottom: 0;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+  -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);+}+.pagination li {+  display: inline;+}+.pagination a {+  float: left;+  padding: 0 14px;+  line-height: 34px;+  text-decoration: none;+  border: 1px solid #ddd;+  border-left-width: 0;+}+.pagination a:hover,+.pagination .active a {+  background-color: #f5f5f5;+}+.pagination .active a {+  color: #999999;+  cursor: default;+}+.pagination .disabled span,+.pagination .disabled a,+.pagination .disabled a:hover {+  color: #999999;+  background-color: transparent;+  cursor: default;+}+.pagination li:first-child a {+  border-left-width: 1px;+  -webkit-border-radius: 3px 0 0 3px;+  -moz-border-radius: 3px 0 0 3px;+  border-radius: 3px 0 0 3px;+}+.pagination li:last-child a {+  -webkit-border-radius: 0 3px 3px 0;+  -moz-border-radius: 0 3px 3px 0;+  border-radius: 0 3px 3px 0;+}+.pagination-centered {+  text-align: center;+}+.pagination-right {+  text-align: right;+}+.pager {+  margin-left: 0;+  margin-bottom: 18px;+  list-style: none;+  text-align: center;+  *zoom: 1;+}+.pager:before,+.pager:after {+  display: table;+  content: "";+}+.pager:after {+  clear: both;+}+.pager li {+  display: inline;+}+.pager a {+  display: inline-block;+  padding: 5px 14px;+  background-color: #fff;+  border: 1px solid #ddd;+  -webkit-border-radius: 15px;+  -moz-border-radius: 15px;+  border-radius: 15px;+}+.pager a:hover {+  text-decoration: none;+  background-color: #f5f5f5;+}+.pager .next a {+  float: right;+}+.pager .previous a {+  float: left;+}+.pager .disabled a,+.pager .disabled a:hover {+  color: #999999;+  background-color: #fff;+  cursor: default;+}+.modal-open .dropdown-menu {+  z-index: 2050;+}+.modal-open .dropdown.open {+  *z-index: 2050;+}+.modal-open .popover {+  z-index: 2060;+}+.modal-open .tooltip {+  z-index: 2070;+}+.modal-backdrop {+  position: fixed;+  top: 0;+  right: 0;+  bottom: 0;+  left: 0;+  z-index: 1040;+  background-color: #000000;+}+.modal-backdrop.fade {+  opacity: 0;+}+.modal-backdrop,+.modal-backdrop.fade.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.modal {+  position: fixed;+  top: 50%;+  left: 50%;+  z-index: 1050;+  overflow: auto;+  width: 560px;+  margin: -250px 0 0 -280px;+  background-color: #ffffff;+  border: 1px solid #999;+  border: 1px solid rgba(0, 0, 0, 0.3);+  *border: 1px solid #999;+  /* IE6-7 */++  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.modal.fade {+  -webkit-transition: opacity .3s linear, top .3s ease-out;+  -moz-transition: opacity .3s linear, top .3s ease-out;+  -ms-transition: opacity .3s linear, top .3s ease-out;+  -o-transition: opacity .3s linear, top .3s ease-out;+  transition: opacity .3s linear, top .3s ease-out;+  top: -25%;+}+.modal.fade.in {+  top: 50%;+}+.modal-header {+  padding: 9px 15px;+  border-bottom: 1px solid #eee;+}+.modal-header .close {+  margin-top: 2px;+}+.modal-body {+  overflow-y: auto;+  max-height: 400px;+  padding: 15px;+}+.modal-form {+  margin-bottom: 0;+}+.modal-footer {+  padding: 14px 15px 15px;+  margin-bottom: 0;+  text-align: right;+  background-color: #f5f5f5;+  border-top: 1px solid #ddd;+  -webkit-border-radius: 0 0 6px 6px;+  -moz-border-radius: 0 0 6px 6px;+  border-radius: 0 0 6px 6px;+  -webkit-box-shadow: inset 0 1px 0 #ffffff;+  -moz-box-shadow: inset 0 1px 0 #ffffff;+  box-shadow: inset 0 1px 0 #ffffff;+  *zoom: 1;+}+.modal-footer:before,+.modal-footer:after {+  display: table;+  content: "";+}+.modal-footer:after {+  clear: both;+}+.modal-footer .btn + .btn {+  margin-left: 5px;+  margin-bottom: 0;+}+.modal-footer .btn-group .btn + .btn {+  margin-left: -1px;+}+.tooltip {+  position: absolute;+  z-index: 1020;+  display: block;+  visibility: visible;+  padding: 5px;+  font-size: 11px;+  opacity: 0;+  filter: alpha(opacity=0);+}+.tooltip.in {+  opacity: 0.8;+  filter: alpha(opacity=80);+}+.tooltip.top {+  margin-top: -2px;+}+.tooltip.right {+  margin-left: 2px;+}+.tooltip.bottom {+  margin-top: 2px;+}+.tooltip.left {+  margin-left: -2px;+}+.tooltip.top .tooltip-arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.tooltip.left .tooltip-arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.tooltip.bottom .tooltip-arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.tooltip.right .tooltip-arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.tooltip-inner {+  max-width: 200px;+  padding: 3px 8px;+  color: #ffffff;+  text-align: center;+  text-decoration: none;+  background-color: #000000;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.tooltip-arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover {+  position: absolute;+  top: 0;+  left: 0;+  z-index: 1010;+  display: none;+  padding: 5px;+}+.popover.top {+  margin-top: -5px;+}+.popover.right {+  margin-left: 5px;+}+.popover.bottom {+  margin-top: 5px;+}+.popover.left {+  margin-left: -5px;+}+.popover.top .arrow {+  bottom: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-top: 5px solid #000000;+}+.popover.right .arrow {+  top: 50%;+  left: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-right: 5px solid #000000;+}+.popover.bottom .arrow {+  top: 0;+  left: 50%;+  margin-left: -5px;+  border-left: 5px solid transparent;+  border-right: 5px solid transparent;+  border-bottom: 5px solid #000000;+}+.popover.left .arrow {+  top: 50%;+  right: 0;+  margin-top: -5px;+  border-top: 5px solid transparent;+  border-bottom: 5px solid transparent;+  border-left: 5px solid #000000;+}+.popover .arrow {+  position: absolute;+  width: 0;+  height: 0;+}+.popover-inner {+  padding: 3px;+  width: 280px;+  overflow: hidden;+  background: #000000;+  background: rgba(0, 0, 0, 0.8);+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+  -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+  box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3);+}+.popover-title {+  padding: 9px 15px;+  line-height: 1;+  background-color: #f5f5f5;+  border-bottom: 1px solid #eee;+  -webkit-border-radius: 3px 3px 0 0;+  -moz-border-radius: 3px 3px 0 0;+  border-radius: 3px 3px 0 0;+}+.popover-content {+  padding: 14px;+  background-color: #ffffff;+  -webkit-border-radius: 0 0 3px 3px;+  -moz-border-radius: 0 0 3px 3px;+  border-radius: 0 0 3px 3px;+  -webkit-background-clip: padding-box;+  -moz-background-clip: padding-box;+  background-clip: padding-box;+}+.popover-content p,+.popover-content ul,+.popover-content ol {+  margin-bottom: 0;+}+.thumbnails {+  margin-left: -20px;+  list-style: none;+  *zoom: 1;+}+.thumbnails:before,+.thumbnails:after {+  display: table;+  content: "";+}+.thumbnails:after {+  clear: both;+}+.thumbnails > li {+  float: left;+  margin: 0 0 18px 20px;+}+.thumbnail {+  display: block;+  padding: 4px;+  line-height: 1;+  border: 1px solid #ddd;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075);+}+a.thumbnail:hover {+  border-color: #0088cc;+  -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+  box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25);+}+.thumbnail > img {+  display: block;+  max-width: 100%;+  margin-left: auto;+  margin-right: auto;+}+.thumbnail .caption {+  padding: 9px;+}+.label {+  padding: 1px 4px 2px;+  font-size: 10.998px;+  font-weight: bold;+  line-height: 13px;+  color: #ffffff;+  vertical-align: middle;+  white-space: nowrap;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #999999;+  -webkit-border-radius: 3px;+  -moz-border-radius: 3px;+  border-radius: 3px;+}+.label:hover {+  color: #ffffff;+  text-decoration: none;+}+.label-important {+  background-color: #b94a48;+}+.label-important:hover {+  background-color: #953b39;+}+.label-warning {+  background-color: #f89406;+}+.label-warning:hover {+  background-color: #c67605;+}+.label-success {+  background-color: #468847;+}+.label-success:hover {+  background-color: #356635;+}+.label-info {+  background-color: #3a87ad;+}+.label-info:hover {+  background-color: #2d6987;+}+.label-inverse {+  background-color: #333333;+}+.label-inverse:hover {+  background-color: #1a1a1a;+}+.badge {+  padding: 1px 9px 2px;+  font-size: 12.025px;+  font-weight: bold;+  white-space: nowrap;+  color: #ffffff;+  background-color: #999999;+  -webkit-border-radius: 9px;+  -moz-border-radius: 9px;+  border-radius: 9px;+}+.badge:hover {+  color: #ffffff;+  text-decoration: none;+  cursor: pointer;+}+.badge-error {+  background-color: #b94a48;+}+.badge-error:hover {+  background-color: #953b39;+}+.badge-warning {+  background-color: #f89406;+}+.badge-warning:hover {+  background-color: #c67605;+}+.badge-success {+  background-color: #468847;+}+.badge-success:hover {+  background-color: #356635;+}+.badge-info {+  background-color: #3a87ad;+}+.badge-info:hover {+  background-color: #2d6987;+}+.badge-inverse {+  background-color: #333333;+}+.badge-inverse:hover {+  background-color: #1a1a1a;+}+@-webkit-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-moz-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@-ms-keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+@keyframes progress-bar-stripes {+  from {+    background-position: 0 0;+  }+  to {+    background-position: 40px 0;+  }+}+.progress {+  overflow: hidden;+  height: 18px;+  margin-bottom: 18px;+  background-color: #f7f7f7;+  background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9));+  background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9);+  background-image: linear-gradient(top, #f5f5f5, #f9f9f9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0);+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.progress .bar {+  width: 0%;+  height: 18px;+  color: #ffffff;+  font-size: 12px;+  text-align: center;+  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25);+  background-color: #0e90d2;+  background-image: -moz-linear-gradient(top, #149bdf, #0480be);+  background-image: -ms-linear-gradient(top, #149bdf, #0480be);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be));+  background-image: -webkit-linear-gradient(top, #149bdf, #0480be);+  background-image: -o-linear-gradient(top, #149bdf, #0480be);+  background-image: linear-gradient(top, #149bdf, #0480be);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0);+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);+  -webkit-box-sizing: border-box;+  -moz-box-sizing: border-box;+  -ms-box-sizing: border-box;+  box-sizing: border-box;+  -webkit-transition: width 0.6s ease;+  -moz-transition: width 0.6s ease;+  -ms-transition: width 0.6s ease;+  -o-transition: width 0.6s ease;+  transition: width 0.6s ease;+}+.progress-striped .bar {+  background-color: #149bdf;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  -webkit-background-size: 40px 40px;+  -moz-background-size: 40px 40px;+  -o-background-size: 40px 40px;+  background-size: 40px 40px;+}+.progress.active .bar {+  -webkit-animation: progress-bar-stripes 2s linear infinite;+  -moz-animation: progress-bar-stripes 2s linear infinite;+  animation: progress-bar-stripes 2s linear infinite;+}+.progress-danger .bar {+  background-color: #dd514c;+  background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35));+  background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: -o-linear-gradient(top, #ee5f5b, #c43c35);+  background-image: linear-gradient(top, #ee5f5b, #c43c35);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0);+}+.progress-danger.progress-striped .bar {+  background-color: #ee5f5b;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-success .bar {+  background-color: #5eb95e;+  background-image: -moz-linear-gradient(top, #62c462, #57a957);+  background-image: -ms-linear-gradient(top, #62c462, #57a957);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957));+  background-image: -webkit-linear-gradient(top, #62c462, #57a957);+  background-image: -o-linear-gradient(top, #62c462, #57a957);+  background-image: linear-gradient(top, #62c462, #57a957);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0);+}+.progress-success.progress-striped .bar {+  background-color: #62c462;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-info .bar {+  background-color: #4bb1cf;+  background-image: -moz-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -ms-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9));+  background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9);+  background-image: -o-linear-gradient(top, #5bc0de, #339bb9);+  background-image: linear-gradient(top, #5bc0de, #339bb9);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0);+}+.progress-info.progress-striped .bar {+  background-color: #5bc0de;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.progress-warning .bar {+  background-color: #faa732;+  background-image: -moz-linear-gradient(top, #fbb450, #f89406);+  background-image: -ms-linear-gradient(top, #fbb450, #f89406);+  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406));+  background-image: -webkit-linear-gradient(top, #fbb450, #f89406);+  background-image: -o-linear-gradient(top, #fbb450, #f89406);+  background-image: linear-gradient(top, #fbb450, #f89406);+  background-repeat: repeat-x;+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0);+}+.progress-warning.progress-striped .bar {+  background-color: #fbb450;+  background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent));+  background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+  background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);+}+.accordion {+  margin-bottom: 18px;+}+.accordion-group {+  margin-bottom: 2px;+  border: 1px solid #e5e5e5;+  -webkit-border-radius: 4px;+  -moz-border-radius: 4px;+  border-radius: 4px;+}+.accordion-heading {+  border-bottom: 0;+}+.accordion-heading .accordion-toggle {+  display: block;+  padding: 8px 15px;+}+.accordion-inner {+  padding: 9px 15px;+  border-top: 1px solid #e5e5e5;+}+.carousel {+  position: relative;+  margin-bottom: 18px;+  line-height: 1;+}+.carousel-inner {+  overflow: hidden;+  width: 100%;+  position: relative;+}+.carousel .item {+  display: none;+  position: relative;+  -webkit-transition: 0.6s ease-in-out left;+  -moz-transition: 0.6s ease-in-out left;+  -ms-transition: 0.6s ease-in-out left;+  -o-transition: 0.6s ease-in-out left;+  transition: 0.6s ease-in-out left;+}+.carousel .item > img {+  display: block;+  line-height: 1;+}+.carousel .active,+.carousel .next,+.carousel .prev {+  display: block;+}+.carousel .active {+  left: 0;+}+.carousel .next,+.carousel .prev {+  position: absolute;+  top: 0;+  width: 100%;+}+.carousel .next {+  left: 100%;+}+.carousel .prev {+  left: -100%;+}+.carousel .next.left,+.carousel .prev.right {+  left: 0;+}+.carousel .active.left {+  left: -100%;+}+.carousel .active.right {+  left: 100%;+}+.carousel-control {+  position: absolute;+  top: 40%;+  left: 15px;+  width: 40px;+  height: 40px;+  margin-top: -20px;+  font-size: 60px;+  font-weight: 100;+  line-height: 30px;+  color: #ffffff;+  text-align: center;+  background: #222222;+  border: 3px solid #ffffff;+  -webkit-border-radius: 23px;+  -moz-border-radius: 23px;+  border-radius: 23px;+  opacity: 0.5;+  filter: alpha(opacity=50);+}+.carousel-control.right {+  left: auto;+  right: 15px;+}+.carousel-control:hover {+  color: #ffffff;+  text-decoration: none;+  opacity: 0.9;+  filter: alpha(opacity=90);+}+.carousel-caption {+  position: absolute;+  left: 0;+  right: 0;+  bottom: 0;+  padding: 10px 15px 5px;+  background: #333333;+  background: rgba(0, 0, 0, 0.75);+}+.carousel-caption h4,+.carousel-caption p {+  color: #ffffff;+}+.hero-unit {+  padding: 60px;+  margin-bottom: 30px;+  background-color: #eeeeee;+  -webkit-border-radius: 6px;+  -moz-border-radius: 6px;+  border-radius: 6px;+}+.hero-unit h1 {+  margin-bottom: 0;+  font-size: 60px;+  line-height: 1;+  color: inherit;+  letter-spacing: -1px;+}+.hero-unit p {+  font-size: 18px;+  font-weight: 200;+  line-height: 27px;+  color: inherit;+}+.pull-right {+  float: right;+}+.pull-left {+  float: left;+}+.hide {+  display: none;+}+.show {+  display: block;+}+.invisible {+  visibility: hidden;+}++{-# START_FILE static/css/normalize.css #-}+/*! normalize.css 2011-08-12T17:28 UTC · http://github.com/necolas/normalize.css */++/* =============================================================================+   HTML5 display definitions+   ========================================================================== */++/*+ * Corrects block display not defined in IE6/7/8/9 & FF3+ */++article,+aside,+details,+figcaption,+figure,+footer,+header,+hgroup,+nav,+section {+    display: block;+}++/*+ * Corrects inline-block display not defined in IE6/7/8/9 & FF3+ */++audio,+canvas,+video {+    display: inline-block;+    *display: inline;+    *zoom: 1;+}++/*+ * Prevents modern browsers from displaying 'audio' without controls+ */++audio:not([controls]) {+    display: none;+}++/*+ * Addresses styling for 'hidden' attribute not present in IE7/8/9, FF3, S4+ * Known issue: no IE6 support+ */++[hidden] {+    display: none;+}+++/* =============================================================================+   Base+   ========================================================================== */++/*+ * 1. Corrects text resizing oddly in IE6/7 when body font-size is set using em units+ *    http://clagnut.com/blog/348/#c790+ * 2. Keeps page centred in all browsers regardless of content height+ * 3. Prevents iOS text size adjust after orientation change, without disabling user zoom+ *    www.456bereastreet.com/archive/201012/controlling_text_size_in_safari_for_ios_without_disabling_user_zoom/+ */++html {+    font-size: 100%; /* 1 */+    overflow-y: scroll; /* 2 */+    -webkit-text-size-adjust: 100%; /* 3 */+    -ms-text-size-adjust: 100%; /* 3 */+}++/*+ * Addresses margins handled incorrectly in IE6/7+ */++body {+    margin: 0;+}++/* + * Addresses font-family inconsistency between 'textarea' and other form elements.+ */++body,+button,+input,+select,+textarea {+    font-family: sans-serif;+}+++/* =============================================================================+   Links+   ========================================================================== */++a {+    color: #00e;+}++a:visited {+    color: #551a8b;+}++/*+ * Addresses outline displayed oddly in Chrome+ */++a:focus {+    outline: thin dotted;+}++/*+ * Improves readability when focused and also mouse hovered in all browsers+ * people.opera.com/patrickl/experiments/keyboard/test+ */++a:hover,+a:active {+    outline: 0;+}+++/* =============================================================================+   Typography+   ========================================================================== */++/*+ * Addresses styling not present in IE7/8/9, S5, Chrome+ */++abbr[title] {+    border-bottom: 1px dotted;+}++/*+ * Addresses style set to 'bolder' in FF3/4, S4/5, Chrome+*/++b, +strong { +    font-weight: bold; +}++blockquote {+    margin: 1em 40px;+}++/*+ * Addresses styling not present in S5, Chrome+ */++dfn {+    font-style: italic;+}++/*+ * Addresses styling not present in IE6/7/8/9+ */++mark {+    background: #ff0;+    color: #000;+}++/*+ * Corrects font family set oddly in IE6, S4/5, Chrome+ * en.wikipedia.org/wiki/User:Davidgothberg/Test59+ */++pre,+code,+kbd,+samp {+    font-family: monospace, serif;+    _font-family: 'courier new', monospace;+    font-size: 1em;+}++/*+ * Improves readability of pre-formatted text in all browsers+ */++pre {+    white-space: pre;+    white-space: pre-wrap;+    word-wrap: break-word;+}++/*+ * 1. Addresses CSS quotes not supported in IE6/7+ * 2. Addresses quote property not supported in S4+ */++/* 1 */++q {+    quotes: none;+}++/* 2 */++q:before,+q:after {+    content: '';+    content: none;+}++small {+    font-size: 75%;+}++/*+ * Prevents sub and sup affecting line-height in all browsers+ * gist.github.com/413930+ */++sub,+sup {+    font-size: 75%;+    line-height: 0;+    position: relative;+    vertical-align: baseline;+}++sup {+    top: -0.5em;+}++sub {+    bottom: -0.25em;+}+++/* =============================================================================+   Lists+   ========================================================================== */++ul,+ol {+    margin: 1em 0;+    padding: 0 0 0 40px;+}++dd {+    margin: 0 0 0 40px;+}++nav ul,+nav ol {+    list-style: none;+    list-style-image: none;+}+++/* =============================================================================+   Embedded content+   ========================================================================== */++/*+ * 1. Removes border when inside 'a' element in IE6/7/8/9+ * 2. Improves image quality when scaled in IE7+ *    code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/+ */++img {+    border: 0; /* 1 */+    -ms-interpolation-mode: bicubic; /* 2 */+}++/*+ * Corrects overflow displayed oddly in IE9 + */++svg:not(:root) {+    overflow: hidden;+}+++/* =============================================================================+   Figures+   ========================================================================== */++/*+ * Addresses margin not present in IE6/7/8/9, S5, O11+ */++figure {+    margin: 0;+}+++/* =============================================================================+   Forms+   ========================================================================== */++/*+ * Corrects margin displayed oddly in IE6/7+ */++form {+    margin: 0;+}++/*+ * Define consistent margin and padding+ */++fieldset {+    margin: 0 2px;+    padding: 0.35em 0.625em 0.75em;+}++/*+ * 1. Corrects color not being inherited in IE6/7/8/9+ * 2. Corrects alignment displayed oddly in IE6/7+ */++legend {+    border: 0; /* 1 */+    *margin-left: -7px; /* 2 */+}++/*+ * 1. Corrects font size not being inherited in all browsers+ * 2. Addresses margins set differently in IE6/7, F3/4, S5, Chrome+ * 3. Improves appearance and consistency in all browsers+ */++button,+input,+select,+textarea {+    font-size: 100%; /* 1 */+    margin: 0; /* 2 */+    vertical-align: baseline; /* 3 */+    *vertical-align: middle; /* 3 */+}++/*+ * 1. Addresses FF3/4 setting line-height using !important in the UA stylesheet+ * 2. Corrects inner spacing displayed oddly in IE6/7+ */++button,+input {+    line-height: normal; /* 1 */+    *overflow: visible;  /* 2 */+}++/*+ * Corrects overlap and whitespace issue for buttons and inputs in IE6/7+ * Known issue: reintroduces inner spacing+ */++table button,+table input {+    *overflow: auto;+}++/*+ * 1. Improves usability and consistency of cursor style between image-type 'input' and others+ * 2. Corrects inability to style clickable 'input' types in iOS+ */++button,+html input[type="button"], +input[type="reset"], +input[type="submit"] {+    cursor: pointer; /* 1 */+    -webkit-appearance: button; /* 2 */+}++/*+ * 1. Addresses box sizing set to content-box in IE8/9+ * 2. Addresses excess padding in IE8/9+ */++input[type="checkbox"],+input[type="radio"] {+    box-sizing: border-box; /* 1 */+    padding: 0; /* 2 */+}++/*+ * 1. Addresses appearance set to searchfield in S5, Chrome+ * 2. Addresses box sizing set to border-box in S5, Chrome (include -moz to future-proof)+ */++input[type="search"] {+    -webkit-appearance: textfield; /* 1 */+    -moz-box-sizing: content-box;+    -webkit-box-sizing: content-box; /* 2 */+    box-sizing: content-box;+}++/*+ * Corrects inner padding displayed oddly in S5, Chrome on OSX+ */++input[type="search"]::-webkit-search-decoration {+    -webkit-appearance: none;+}++/*+ * Corrects inner padding and border displayed oddly in FF3/4+ * www.sitepen.com/blog/2008/05/14/the-devils-in-the-details-fixing-dojos-toolbar-buttons/+ */++button::-moz-focus-inner,+input::-moz-focus-inner {+    border: 0;+    padding: 0;+}++/*+ * 1. Removes default vertical scrollbar in IE6/7/8/9+ * 2. Improves readability and alignment in all browsers+ */++textarea {+    overflow: auto; /* 1 */+    vertical-align: top; /* 2 */+}+++/* =============================================================================+   Tables+   ========================================================================== */++/* + * Remove most spacing between table cells+ */++table {+    border-collapse: collapse;+    border-spacing: 0;+}++{-# START_FILE BASE64 static/img/glyphicons-halflings-white.png #-}+iVBORw0KGgoAAAANSUhEUgAAAdUAAACfCAMAAACY07N7AAAC2VBMVEX///8AAAAAAAD5+fn///8A+AAD////9/f1tbW0AAAD///////////8AAAAAAAD////w8PD+/v729vYAAAD8/PwAAAAAAAD/////+///a2toAAADCwsL09PT////////09PT39/f///8AAAAAAACzs7P9/f0AAADi4uKwsLD////////7++/vn5+f+/v7///8AAADt7e0AAADPz88AAAD9/f329vbt7e37+/vn5+f6+vrh4eGSkpL+/v7+/v7B+wcGYmJh0dHTh4eHQ0NAAAADz8/O7u7uhoaGAgID9/f3U1NRiYmL////V1dX4+Pjc3Nz6+vr7+/vp+6en7+/v9/f39/f3R0dHy8vL8/Pz4+Pjr6+v8/Py2trbGxsbl5eXu7u719fX9/f1lZWVnZ2fw8PC2+trbg4OD39/f6+vrp6enl5eX6+vr4+PjLy8v///+EhITx8fF4eHj39/fd3d35+fnIyMjS0tLs7Oz6++vre3t7i4uLm5ubz8/Obm5uoqKilpaXc3Nzu7u7////x8fHJycnw8PD////////e3t7Gxsa8vLzr+6+vW1tbQ0NDi4uL5+fn09PTi4uLs7Oz19fW0tLT////9/f37+/v8/Pz6+vrm5uYAAADk5OT8/Pz3+9/ewsLCZmZn9/f3s7Oz8/PzBwcHp6en////a2trw8PDw8PD19fXx8fH+/v74+Pj+/v6Ojo7i4uL7++/v5+fnc3Nz////y8vL6+vqfn5/t7e339/f29vbo6Ojz8/P6+vr19fX19fWmpqbLy8v6+vr4+PjT+09Pr6+v6+vrr6+uqqqrz8/Pt7e2ioqLPz8/a2trW1taioqLr6+vi4uL5+flVVVXNzc3////W1tbj+4+Ph4eHq6ur8/Pz////29vb7+/vz8/P09PTMzMz////////5+fn19fX////y8vL9/f0AAADZ2dn8+/Pz7+/v8/Pzp6em/v7/7+/vq6urp6en+/v7////4ck/mAAAA8nRSTlMAGgDUzwIP8SMQ759fCgUv+qfDGFeIYA78fbxNTt98/hsV/BhdD4Q1rRI+vwo3ATxJTD18IoKWasozTETbQ4D40IX5hC6dAMR7R+XydvEsRuotKLkZCATYahkzOxQlFqmbZwJiUhFWy1wyJY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++{-# START_FILE BASE64 static/img/glyphicons-halflings.png #-}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++{-# START_FILE templates/default-layout-wrapper.hamlet #-}+$newline never+\<!doctype html>+\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->+\<!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en"> <![endif]-->+\<!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en"> <![endif]-->+\<!--[if gt IE 8]><!-->+<html class="no-js" lang="en"> <!--<![endif]-->+    <head>+        <meta charset="UTF-8">++        <title>#{pageTitle pc}+        <meta name="description" content="">+        <meta name="author" content="">++        <meta name="viewport" content="width=device-width,initial-scale=1">++        ^{pageHead pc}++        \<!--[if lt IE 9]>+        \<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>+        \<![endif]-->++        <script>+          document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');+    <body>+        <div class="container">+            <header>+            <div id="main" role="main">+              ^{pageBody pc}+            <footer>+                #{extraCopyright $ appExtra $ settings master}++        $maybe analytics <- extraAnalytics $ appExtra $ settings master+            <script>+              if(!window.location.href.match(/localhost/)){+                window._gaq = [['_setAccount','#{analytics}'],['_trackPageview'],['_trackPageLoadTime']];+                (function() {+                \  var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;+                \  ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';+                \  var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);+                })();+              }+        \<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6.  chromium.org/developers/how-tos/chrome-frame-getting-started -->+        \<!--[if lt IE 7 ]>+            <script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">+            <script>+                window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})+        \<![endif]-->++{-# START_FILE templates/default-layout.hamlet #-}+$maybe msg <- mmsg+    <div #message>#{msg}+^{widget}++{-# START_FILE templates/homepage.hamlet #-}+<h1>_{MsgHello}++<ol>+  <li>Now that you have a working project you should use the #+    \<a href="http://www.yesodweb.com/book/">Yesod book</a> to learn more. #+    You can also use this scaffolded site to explore some basic concepts.++  <li> This page was generated by the #{handlerName} handler in #+    \<em>Handler/Home.hs</em>.++  <li> The #{handlerName} handler is set to generate your site's home screen in Routes file #+    <em>config/routes++  <li> The HTML you are seeing now is actually composed by a number of <em>widgets</em>, #+    most of them are brought together by the <em>defaultLayout</em> function which #+    is defined in the <em>Foundation.hs</em> module, and used by <em>#{handlerName}</em>. #+    All the files for templates and wigdets are in <em>templates</em>.++  <li>+    A Widget's Html, Css and Javascript are separated in three files with the #+    \<em>.hamlet</em>, <em>.lucius</em> and <em>.julius</em> extensions. ++  <li ##{aDomId}>If you had javascript enabled then you wouldn't be seeing this.+    +  <li #form>+    This is an example trivial Form. Read the #+    \<a href="http://www.yesodweb.com/book/forms">Forms chapter</a> #+    on the yesod book to learn more about them.+    $maybe (info,con) <- submission+      <div .message>+        Your file's type was <em>#{fileContentType info}</em>. You say it has: <em>#{con}</em>+    <form method=post action=@{HomeR}#form enctype=#{formEnctype}>+      ^{formWidget}+      <input type="submit" value="Send it!">++  <li> And last but not least, Testing. In <em>tests/main.hs</em> you will find a #+    test suite that performs tests on this page. #+    You can run your tests by doing: <pre>yesod test</pre>++{-# START_FILE templates/homepage.julius #-}+document.getElementById(#{toJSON aDomId}).innerHTML = "This text was added by the Javascript part of the homepage widget.";++{-# START_FILE templates/homepage.lucius #-}+h1 {+    text-align: center+}+h2##{aDomId} {+    color: #990+}++{-# START_FILE tests/HomeTest.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module HomeTest+    ( homeSpecs+    ) where++import TestImport+import qualified Data.List as L++homeSpecs :: Specs+homeSpecs =+    ydescribe "These are some example tests" $ do++        yit "loads the index and checks it looks right" $ do+            get HomeR+            statusIs 200+            htmlAllContain "h1" "Hello"++            request $ do+                setMethod "POST"+                setUrl HomeR+                addNonce+                fileByLabel "Choose a file" "tests/main.hs" "text/plain" -- talk about self-reference+                byLabel "What's on the file?" "Some Content"++            statusIs 200+            printBody+            htmlCount ".message" 1+            htmlAllContain ".message" "Some Content"+            htmlAllContain ".message" "text/plain"++        -- This is a simple example of using a database access in a test.  The+        -- test will succeed for a fresh scaffolded site with an empty database,+        -- but will fail on an existing database with a non-empty user table.+        yit "leaves the user table empty" $ do+            get HomeR+            statusIs 200+            users <- runDB $ selectList ([] :: [Filter User]) []+            assertEqual "user table empty" 0 $ L.length users++{-# START_FILE tests/TestImport.hs #-}+{-# LANGUAGE OverloadedStrings #-}+module TestImport+    ( module Yesod.Test+    , module Model+    , module Foundation+    , module Database.Persist+    , runDB+    , Specs+    ) where++import Yesod.Test+import Database.Persist hiding (get)+import Database.Persist.Sql (runSqlPool, SqlPersist, Connection)+import Control.Monad.Trans.Resource (ResourceT, runResourceT)+import Control.Monad.Logger (NoLoggingT, runNoLoggingT)+import Control.Monad.IO.Class (liftIO)++import Foundation+import Model++type Specs = YesodSpec App++runDB :: SqlPersist (NoLoggingT (ResourceT IO)) a -> YesodExample App a+runDB query = do+    pool <- fmap connPool getTestYesod+    liftIO $ runResourceT $ runNoLoggingT $ runSqlPool query pool++{-# START_FILE tests/main.hs #-}+{-# LANGUAGE OverloadedStrings #-}+{-# LANGUAGE NoMonomorphismRestriction #-}+{-# OPTIONS_GHC -fno-warn-orphans #-}++module Main where++import Import+import Yesod.Default.Config+import Yesod.Test+import Test.Hspec (hspec)+import Application (makeFoundation)++import HomeTest++main :: IO ()+main = do+    conf <- Yesod.Default.Config.loadConfig $ (configSettings Testing)+                { csParseExtra = parseExtra+                }+    foundation <- makeFoundation conf+    hspec $ do+        yesodSpec foundation $ do+            homeSpecs+
+ input/database.cg view
@@ -0,0 +1,13 @@+Yesod uses Persistent for its (you guessed it) persistence layer.+This tool will build in either SQLite or PostgreSQL or MongoDB support for you.+We recommend starting with SQLite: it has no dependencies.++    s      = sqlite+    p      = postgresql+    pf     = postgresql + Fay (experimental)+    mongo  = mongodb+    mysql  = MySQL+    simple = no database, no auth+    url    = Let me specify URL containing a site (advanced)++So, what'll it be? 
+ input/done.cg view
@@ -0,0 +1,32 @@++---------------------------------------++                     ___+                            {-)   |\+                       [m,].-"-.   /+      [][__][__]         \(/\__/\)/+      [__][__][__][__]~~~~  |  |+      [][__][__][__][__][] /   |+      [__][__][__][__][__]| /| |+      [][__][__][__][__][]| || |  ~~~~+  ejm [__][__][__][__][__]__,__,  \__/+++---------------------------------------++The foundation for your web application has been built.+++There are a lot of resources to help you use Yesod.+Start with the book: http://www.yesodweb.com/book+Take part in the community: http://yesodweb.com/page/community+++Start your project:++   cd PROJECTNAME && cabal install && yesod devel++or if you use cabal-dev:++   cd PROJECTNAME && cabal-dev install && yesod --dev devel+
+ input/welcome.cg view
@@ -0,0 +1,6 @@+Welcome to the Yesod scaffolder.+I'm going to be creating a skeleton Yesod project for you.++What do you want to call your project? We'll use this for the cabal name.++Project name: 
+ main.hs view
@@ -0,0 +1,171 @@+{-# LANGUAGE CPP             #-}+{-# LANGUAGE TemplateHaskell #-}++import           Control.Monad          (unless)+import           Data.Monoid+import           Data.Version           (showVersion)+import           Options.Applicative+import           System.Exit            (ExitCode (ExitSuccess), exitWith)+import           System.Process         (rawSystem)++import           AddHandler             (addHandler)+import           Devel                  (DevelOpts (..), devel)+import           Keter                  (keter)+import           Options                (injectDefaults)+import qualified Paths_yesod_bin+import           Scaffolding.Scaffolder++import           Options.Applicative.Builder.Internal (Mod, OptionFields)++#ifndef WINDOWS+import           Build                  (touch)++touch' :: IO ()+touch' = touch++windowsWarning :: String+windowsWarning = ""+#else+touch' :: IO ()+touch'  = return ()++windowsWarning :: String+windowsWarning = " (does not work on Windows)"+#endif++data CabalPgm = Cabal | CabalDev deriving (Show, Eq)++data Options = Options+               { optCabalPgm :: CabalPgm+               , optVerbose  :: Bool+               , optCommand  :: Command+               }+  deriving (Show, Eq)++data Command = Init+             | Configure+             | Build { buildExtraArgs   :: [String] }+             | Touch+             | Devel { _develDisableApi  :: Bool+                     , _develSuccessHook :: Maybe String+                     , _develFailHook    :: Maybe String+                     , _develRescan      :: Int+                     , _develBuildDir    :: Maybe String+                     , develIgnore       :: [String]+                     , develExtraArgs    :: [String]+                     , _develPort        :: Int+                     , _proxyTimeout     :: Int+                     }+             | Test+             | AddHandler+             | Keter { _keterNoRebuild :: Bool }+             | Version+  deriving (Show, Eq)++cabalCommand :: Options -> String+cabalCommand mopt+  | optCabalPgm mopt == CabalDev = "cabal-dev"+  | otherwise                    = "cabal"+++main :: IO ()+main = do+  o <- execParser =<< injectDefaults "yesod" [ ("yesod.devel.extracabalarg" , \o args -> o { optCommand =+                                                    case optCommand o of+                                                        d@Devel{} -> d { develExtraArgs = args }+                                                        c -> c+                                                    })+                                             , ("yesod.devel.ignore"        , \o args -> o { optCommand =+                                                    case optCommand o of+                                                        d@Devel{} -> d { develIgnore = args }+                                                        c -> c+                                                    })+                                             , ("yesod.build.extracabalarg" , \o args -> o { optCommand =+                                                    case optCommand o of+                                                        b@Build{} -> b { buildExtraArgs = args }+                                                        c -> c+                                                    })+                                             ] optParser'+  let cabal xs = rawSystem' (cabalCommand o) xs+  case optCommand o of+    Init                    -> scaffold+    Configure               -> cabal ["configure"]+    Build es                -> touch' >> cabal ("build":es)+    Touch                   -> touch'+    Devel da s f r b _ig es p t -> devel (DevelOpts (optCabalPgm o == CabalDev) da (optVerbose o) r s f b p t) es+    Keter noRebuild         -> keter (cabalCommand o) noRebuild+    Version                 -> do putStrLn ("yesod-bin version: " ++ showVersion Paths_yesod_bin.version)+    AddHandler              -> addHandler+    Test                    -> do touch'+                                  cabal ["configure", "--enable-tests", "-flibrary-only"]+                                  cabal ["build"]+                                  cabal ["test"]++optParser' :: ParserInfo Options+optParser' = info (helper <*> optParser) ( fullDesc <> header "Yesod Web Framework command line utility" )++optParser :: Parser Options+optParser = Options+        <$> flag Cabal CabalDev ( long "dev"     <> short 'd' <> help "use cabal-dev" )+        <*> switch              ( long "verbose" <> short 'v' <> help "More verbose output" )+        <*> subparser ( command "init"      (info (pure Init)+                            (progDesc "Scaffold a new site"))+                      <> command "configure" (info (pure Configure)+                            (progDesc "Configure a project for building"))+                      <> command "build"     (info (Build <$> extraCabalArgs)+                            (progDesc $ "Build project (performs TH dependency analysis)" ++ windowsWarning))+                      <> command "touch"     (info (pure Touch)+                            (progDesc $ "Touch any files with altered TH dependencies but do not build" ++ windowsWarning))+                      <> command "devel"     (info develOptions+                            (progDesc "Run project with the devel server"))+                      <> command "test"      (info (pure Test)+                            (progDesc "Build and run the integration tests"))+                      <> command "add-handler" (info (pure AddHandler)+                            (progDesc "Add a new handler and module to the project"))+                      <> command "keter"       (info keterOptions+                            (progDesc "Build a keter bundle"))+                      <> command "version"     (info (pure Version)+                            (progDesc "Print the version of Yesod"))+                      )++keterOptions :: Parser Command+keterOptions = Keter <$> switch ( long "nobuild" <> short 'n' <> help "Skip rebuilding" )++develOptions :: Parser Command+develOptions = Devel <$> switch ( long "disable-api"  <> short 'd'+                            <> help "Disable fast GHC API rebuilding")+                     <*> optStr ( long "success-hook" <> short 's' <> metavar "COMMAND"+                            <> help "Run COMMAND after rebuild succeeds")+                     <*> optStr ( long "failure-hook" <> short 'f' <> metavar "COMMAND"+                            <> help "Run COMMAND when rebuild fails")+                     <*> option ( long "event-timeout" <> short 't' <> value 1 <> metavar "N"+                            <> help "Force rescan of files every N seconds" )+                     <*> optStr ( long "builddir" <> short 'b'+                            <> help "Set custom cabal build directory, default `dist'")+                     <*> many ( strOption ( long "ignore" <> short 'i' <> metavar "DIR"+                                   <> help "ignore file changes in DIR" )+                              )+                     <*> extraCabalArgs+                     <*> option ( long "port" <> short 'p' <> value 3000 <> metavar "N"+                            <> help "Devel server listening port" )+                     <*> option ( long "proxy-timeout" <> short 'x' <> value 0 <> metavar "N"+                            <> help "Devel server timeout before returning 'not ready' message (in seconds, 0 for none)" )++extraCabalArgs :: Parser [String]+extraCabalArgs = many (strOption ( long "extra-cabal-arg" <> short 'e' <> metavar "ARG"+                                   <> help "pass extra argument ARG to cabal")+                      )++-- | Optional @String@ argument+optStr :: Mod OptionFields (Maybe String) -> Parser (Maybe String)+optStr m =+    nullOption $ value Nothing <> reader (success . str)  <> m+  where+    success = Right++-- | Like @rawSystem@, but exits if it receives a non-success result.+rawSystem' :: String -> [String] -> IO ()+rawSystem' x y = do+    res <- rawSystem x y+    unless (res == ExitSuccess) $ exitWith res+
+ yesod-bin.cabal view
@@ -0,0 +1,103 @@+name:            yesod-bin+version:         1.2.0+license:         MIT+license-file:    LICENSE+author:          Michael Snoyman <michael@snoyman.com>+maintainer:      Michael Snoyman <michael@snoyman.com>+synopsis:        The yesod helper executable.+description:     Provides scaffolding, devel server, and some simple code generation helpers.+category:        Web, Yesod+stability:       Stable+cabal-version:   >= 1.6+build-type:      Simple+homepage:        http://www.yesodweb.com/++extra-source-files:+  input/*.cg+  hsfiles/mongo.hsfiles+  hsfiles/mysql.hsfiles+  hsfiles/postgres.hsfiles+  hsfiles/postgres-fay.hsfiles+  hsfiles/simple.hsfiles+  hsfiles/sqlite.hsfiles++executable             yesod-ghc-wrapper+    main-is: ghcwrapper.hs+    build-depends:+                    base                       >= 4         && < 5+                  , Cabal++executable             yesod-ld-wrapper+    main-is: ghcwrapper.hs+    cpp-options:     -DLDCMD+    build-depends:+                    base                       >= 4         && < 5+                  , Cabal+executable             yesod-ar-wrapper+    main-is: ghcwrapper.hs+    cpp-options:     -DARCMD+    build-depends:+                     base                       >= 4         && < 5+                   , Cabal++executable             yesod+    if os(windows)+        cpp-options:     -DWINDOWS+    build-depends:     base               >= 4.3          && < 5+                     , ghc                >= 7.0.3        && < 7.8+                     , ghc-paths          >= 0.1+                     , parsec             >= 2.1          && < 4+                     , text               >= 0.11+                     , shakespeare-text   >= 1.0          && < 1.1+                     , shakespeare        >= 1.0.2        && < 1.1+                     , shakespeare-js     >= 1.0.2        && < 1.2+                     , shakespeare-css    >= 1.0.2        && < 1.1+                     , bytestring         >= 0.9.1.4+                     , time               >= 1.1.4+                     , template-haskell+                     , directory          >= 1.0+                     , Cabal+                     , unix-compat        >= 0.2          && < 0.5+                     , containers         >= 0.2+                     , attoparsec         >= 0.10+                     , http-types         >= 0.7+                     , blaze-builder      >= 0.2.1.4      && < 0.4+                     , filepath           >= 1.1+                     , process+                     , zlib               >= 0.5          && < 0.6+                     , tar                >= 0.4          && < 0.5+                     , system-filepath    >= 0.4          && < 0.5+                     , system-fileio      >= 0.3          && < 0.4+                     , unordered-containers+                     , yaml               >= 0.8          && < 0.9+                     , optparse-applicative >= 0.5+                     , fsnotify           >= 0.0          && < 0.1+                     , split              >= 0.2          && < 0.3+                     , file-embed+                     , conduit            >= 0.5          && < 1.1+                     , resourcet          >= 0.3          && < 0.5+                     , base64-bytestring+                     , lifted-base+                     , http-reverse-proxy >= 0.1.1+                     , network+                     , http-conduit+                     , network-conduit+                     , project-template   >= 0.1.1+                     , transformers+                     , warp               >= 1.3.7.5+                     , wai                >= 1.4++    ghc-options:       -Wall -threaded+    main-is:           main.hs+    other-modules:     Scaffolding.Scaffolder+                       Devel+                       Build+                       GhcBuild+                       Keter+                       AddHandler+                       Paths_yesod_bin+                       Options++source-repository head+  type:     git+  location: https://github.com/yesodweb/yesod