diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,3 +1,7 @@
+__v0.0.3__
+
+replaced jQuery and .julius scripts with PureScript-compiled static js file
+
 __v0.0.2__
 
 pkg bounds
diff --git a/config/favicon.ico b/config/favicon.ico
new file mode 100644
Binary files /dev/null and b/config/favicon.ico differ
diff --git a/config/keter.yml b/config/keter.yml
new file mode 100644
--- /dev/null
+++ b/config/keter.yml
@@ -0,0 +1,70 @@
+# After you've edited this file, remove the following line to allow
+# `yesod keter` to build your bundle.
+user-edited: false
+
+# A Keter app is composed of 1 or more stanzas. The main stanza will define our
+# web application. See the Keter documentation for more information on
+# available stanzas.
+stanzas:
+
+  # Your Yesod application.
+  - type: webapp
+
+    # Name of your executable. You are unlikely to need to change this.
+    # Note that all file paths are relative to the keter.yml file.
+    #
+    # The path given is for Stack projects. If you're still using cabal, change
+    # to
+    # exec: ../dist/build/espial/espial
+    exec: ../dist/bin/espial
+
+    # Command line options passed to your application.
+    args: []
+
+    hosts:
+      # You can specify one or more hostnames for your application to respond
+      # to. The primary hostname will be used for generating your application
+      # root.
+      - www.espial.com
+
+    # Enable to force Keter to redirect to https
+    # Can be added to any stanza
+    requires-secure: false
+
+  # Static files.
+  - type: static-files
+    hosts:
+      - static.espial.com
+    root: ../static
+
+    # Uncomment to turn on directory listings.
+    # directory-listing: true
+
+  # Redirect plain domain name to www.
+  - type: redirect
+
+    hosts:
+      - espial.com
+    actions:
+      - host: www.espial.com
+        # secure: false
+        # port: 80
+
+    # Uncomment to switch to a non-permanent redirect.
+    # status: 303
+
+# 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/
+
+# You can pass arguments to `scp` used above. This example limits bandwidth to
+# 1024 Kbit/s and uses port 2222 instead of the default 22
+# copy-to-args:
+#   - "-l 1024"
+#   - "-P 2222"
+
+# If you would like to have Keter automatically create a PostgreSQL database
+# and set appropriate environment variables for it to be discovered, uncomment
+# the following line.
+# plugins:
+#   postgres: true
diff --git a/config/robots.txt b/config/robots.txt
new file mode 100644
--- /dev/null
+++ b/config/robots.txt
@@ -0,0 +1,1 @@
+User-agent: *
diff --git a/config/routes b/config/routes
new file mode 100644
--- /dev/null
+++ b/config/routes
@@ -0,0 +1,22 @@
+/static StaticR Static appStatic
+
+/favicon.ico FaviconR GET
+/robots.txt RobotsR GET
+
+/auth  AuthR  Auth getAuth
+
+-- user
+/ HomeR GET
+!/#UserNameP UserR GET
+!/#UserNameP/#SharedP UserSharedR GET
+!/#UserNameP/#FilterP UserFilterR GET
+!/#UserNameP/#TagsP UserTagsR GET
+
+-- add
+/add AddR GET POST
+
+-- edit
+/bm/#Int64 DeleteR DELETE
+/bm/#Int64/read ReadR POST
+/bm/#Int64/star StarR POST
+/bm/#Int64/unstar UnstarR POST
diff --git a/config/settings.yml b/config/settings.yml
new file mode 100644
--- /dev/null
+++ b/config/settings.yml
@@ -0,0 +1,38 @@
+# Values formatted like "_env:ENV_VAR_NAME:default_value" can be overridden by the specified environment variable.
+# See https://github.com/yesodweb/yesod/wiki/Configuration#overriding-configuration-values-with-environment-variables
+
+static-dir:     "_env:STATIC_DIR:static"
+host:           "_env:HOST:*4" # any IPv4 host
+port:           "_env:PORT:3000" # NB: The port `yesod devel` uses is distinct from this value. Set the `yesod devel` port from the command line.
+ip-from-header: "_env:IP_FROM_HEADER:false"
+
+# Default behavior: determine the application root from the request headers.
+# Uncomment to set an explicit approot
+#approot:        "_env:APPROOT:http://localhost:3000"
+
+# By default, `yesod devel` runs in development, and built executables use
+# production settings (see below). To override this, use the following:
+#
+# development: false
+
+# Optional values with the following production defaults.
+# In development, they default to the inverse.
+#
+# detailed-logging: false
+# should-log-all: false
+# reload-templates: false
+# mutable-static: false
+# skip-combining: false
+# auth-dummy-login : false
+
+# NB: If you need a numeric value (e.g. 123) to parse as a String, wrap it in single quotes (e.g. "_env:PGPASS:'123'")
+# See https://github.com/yesodweb/yesod/wiki/Configuration#parsing-numeric-values-as-strings
+
+database:
+  # See config/test-settings.yml for an override during tests
+  database: "_env:SQLITE_DATABASE:espial.sqlite3"
+  # database: ":memory:"
+  poolsize: "_env:SQLITE_POOLSIZE:10"
+
+copyright: Insert copyright statement here
+#analytics: UA-YOURCODE
diff --git a/config/test-settings.yml b/config/test-settings.yml
new file mode 100644
--- /dev/null
+++ b/config/test-settings.yml
@@ -0,0 +1,12 @@
+database:
+  # NOTE: By design, this setting prevents the SQLITE_DATABASE environment variable
+  # from affecting test runs, so that we don't accidentally affect the
+  # production database during testing. If you're not concerned about that and
+  # would like to have environment variable overrides, you could instead use
+  # something like:
+  #
+  #   database: "_env:SQLITE_DATABASE:espial_test.sqlite3"
+  # database: espial_test.sqlite3
+  database: ":memory:"
+
+auth-dummy-login: true
diff --git a/espial.cabal b/espial.cabal
--- a/espial.cabal
+++ b/espial.cabal
@@ -2,10 +2,10 @@
 --
 -- see: https://github.com/sol/hpack
 --
--- hash: e0e5aacd95d53f3ac1291af2e82ab2fed9754f6e72799b1fe333c226dec26c8a
+-- hash: a5845d0e6b4dfb4ad7bb9439764c343bcf020725b3f10c09cad05ccb0664fbff
 
 name:           espial
-version:        0.0.2
+version:        0.0.3
 synopsis:       Espial is an open-source, web-based bookmarking server.
 description:    .
                 Espial is an open-source, web-based bookmarking server.
@@ -23,7 +23,44 @@
 cabal-version:  >= 1.10
 extra-source-files:
     changelog.md
+    config/favicon.ico
+    config/keter.yml
+    config/robots.txt
+    config/routes
+    config/settings.yml
+    config/test-settings.yml
+    purs/Makefile
+    purs/psc-package.json
+    purs/src/App.purs
+    purs/src/BMark.purs
+    purs/src/Globals.js
+    purs/src/Globals.purs
+    purs/src/Util.purs
+    purs/test/Main.purs
     README.md
+    static/css/bootstrap.css
+    static/css/main.css
+    static/css/popup.css
+    static/images/bluepin.gif
+    static/js/app.js
+    static/js/app.js.gz
+    static/js/html5shiv.min.js
+    static/js/html5shiv.min.js.gz
+    static/js/js.cookie-2.2.0.min.js
+    static/js/js.cookie-2.2.0.min.js.gz
+    static/js/moment.min.js
+    static/js/moment.min.js.gz
+    templates/add-exists-alert.hamlet
+    templates/add.hamlet
+    templates/add.julius
+    templates/app.julius
+    templates/default-layout-wrapper.hamlet
+    templates/default-layout.hamlet
+    templates/homepage.hamlet
+    templates/login.hamlet
+    templates/pager.hamlet
+    templates/popup-layout.hamlet
+    templates/user.hamlet
 
 source-repository head
   type: git
diff --git a/purs/Makefile b/purs/Makefile
new file mode 100644
--- /dev/null
+++ b/purs/Makefile
@@ -0,0 +1,40 @@
+o_dist = dist
+o_name = app.js
+m_name = app.min.js
+y_name = app.js
+y_static = ../static/js
+pulp = pulp --psc-package
+modules = --modules App,BMark,Globals,Util
+skip = --skip-entry-point 
+
+minify = uglifyjs
+
+.PHONY: clean build
+
+all: deploy
+
+build: 
+	$(pulp) build -O \
+		$(skip) \
+		$(modules) \
+		--to $(o_dist)/$(o_name) && \
+		$(minify) $(o_dist)/$(o_name) > $(o_dist)/$(m_name) && \
+		rm -f $(o_dist)/$(m_name).gz && \
+		gzip -k $(o_dist)/$(m_name) && \
+		ls -lh $(o_dist)
+
+watch:
+	$(pulp) -w build -O $(skip) $(modules) --to $(o_dist)/$(o_name)
+
+deploy: build
+	cp $(o_dist)/$(m_name) $(y_static)/$(y_name) && \
+	cp $(o_dist)/$(m_name).gz $(y_static)/$(y_name).gz
+
+docs:
+	$(pulp) docs -- --format html
+
+repl:
+	$(pulp) repl
+
+clean:
+	rm -f dist/*
diff --git a/purs/psc-package.json b/purs/psc-package.json
new file mode 100644
--- /dev/null
+++ b/purs/psc-package.json
@@ -0,0 +1,20 @@
+{
+  "name": "purs",
+  "set": "psc-0.12.0",
+  "source": "https://github.com/purescript/package-sets.git",
+  "depends": [
+    "aff",
+    "affjax",
+    "arrays",
+    "console",
+    "debug",
+    "effect",
+    "either",
+    "functions",
+    "prelude",
+    "psci-support",
+    "strings",
+    "transformers",
+    "web-html"
+  ]
+}
diff --git a/purs/src/App.purs b/purs/src/App.purs
new file mode 100644
--- /dev/null
+++ b/purs/src/App.purs
@@ -0,0 +1,75 @@
+module App where
+
+import Prelude
+import Globals (app')
+
+import Data.Array ((:))
+import Data.Either (Either(..))
+import Data.FormURLEncoded (FormURLEncoded)
+import Data.HTTP.Method (Method(..))
+import Data.Maybe (Maybe(..))
+import Data.MediaType.Common (applicationFormURLEncoded)
+import Effect (Effect)
+import Effect.Aff (Aff, launchAff)
+import Effect.Class (liftEffect)
+import Network.HTTP.Affjax (affjax, AffjaxResponse)
+import Network.HTTP.Affjax (defaultRequest) as AX
+import Network.HTTP.Affjax.Request as AXReq
+import Network.HTTP.Affjax.Response as AXRes
+import Network.HTTP.RequestHeader (RequestHeader(..))
+import Web.Event.Event (Event, preventDefault)
+import Web.HTML (window)
+import Web.HTML.Location (reload)
+import Web.HTML.Window (location)
+
+-- import Data.Argonaut.Core as J
+
+logoutE :: Event -> Effect Unit
+logoutE e = void <<< launchAff <<< logout =<< preventDefault e
+
+logout :: Unit -> Aff Unit
+logout u = do
+  void $ fetchUrl POST app.authRlogoutR [] Nothing AXRes.ignore
+  liftEffect $ window >>= location >>= reload
+  where
+    app = app' u
+
+fetchUrlEnc
+  :: forall a.
+     Method
+  -> String
+  -> Maybe FormURLEncoded
+  -> AXRes.Response a
+  -> Aff (AffjaxResponse a)
+fetchUrlEnc method path content rt =
+    fetchPath method path [ContentType applicationFormURLEncoded] (AXReq.FormURLEncoded <$> content) rt
+
+fetchPath
+  :: forall a.
+     Method
+  -> String
+  -> Array RequestHeader
+  -> Maybe AXReq.Request
+  -> AXRes.Response a
+  -> Aff (AffjaxResponse a)
+fetchPath method path headers content rt =
+    fetchUrl method ((app' unit).homeR <> path) headers content rt
+
+fetchUrl
+  :: forall a.
+     Method
+  -> String
+  -> Array RequestHeader
+  -> Maybe AXReq.Request
+  -> AXRes.Response a
+  -> Aff (AffjaxResponse a)
+fetchUrl method url headers content rt =
+  affjax rt
+    AX.defaultRequest
+    { url = url
+    , method = Left method
+    , headers = RequestHeader app.csrfHeaderName app.csrfToken : headers
+    , content = content
+    }
+  where
+    app = app' unit
diff --git a/purs/src/BMark.purs b/purs/src/BMark.purs
new file mode 100644
--- /dev/null
+++ b/purs/src/BMark.purs
@@ -0,0 +1,286 @@
+module BMark where
+
+import Prelude
+
+import App (fetchUrlEnc)
+import Control.Monad.Maybe.Trans (runMaybeT)
+import Control.Monad.Trans.Class (lift)
+import Data.Array (mapMaybe, filter)
+import Data.Foldable (for_, traverse_)
+import Data.FormURLEncoded (FormURLEncoded(..))
+import Data.HTTP.Method (Method(..))
+import Data.Maybe (Maybe(..), fromMaybe)
+import Data.String (Pattern(..), Replacement(..), joinWith, length, replaceAll, split, take, trim)
+import Data.Traversable (for, traverse)
+import Data.Tuple (Tuple(..))
+import Effect (Effect)
+import Effect.Aff (Aff, launchAff)
+import Effect.Class (liftEffect)
+import Effect.Class.Console (log)
+import Globals (closest, createFormArray, getDataAttribute, innerHtml, moment8601, setInnerHtml)
+import Network.HTTP.Affjax (AffjaxResponse)
+import Network.HTTP.Affjax.Response as AXRes
+import Util (_body, _doc, _fromElement, _fromNode, _getElementById, _mt, _mt_pure, _queryBoth, _queryBoth', _querySelector, _querySelectorAll)
+import Web.DOM (Node)
+import Web.DOM.ChildNode (remove) as DCN
+import Web.DOM.DOMTokenList (contains, toggle, toggleForce, remove, add) as DTL
+import Web.DOM.Document (createElement)
+import Web.DOM.Element (removeAttribute, setAttribute, setClassName, toChildNode, toNode)
+import Web.DOM.Node (appendChild, deepClone, fromEventTarget, insertBefore, setTextContent, textContent)
+import Web.Event.Event (Event, preventDefault, target)
+import Web.HTML.HTMLDocument (toDocument)
+import Web.HTML.HTMLElement (classList, fromNode, toElement) as HE
+import Web.HTML.HTMLFormElement (fromNode) as HFE
+import Web.HTML.HTMLInputElement (fromElement, setValue, value, setChecked, checked) as HIE
+import Web.HTML.HTMLTextAreaElement (fromElement, setValue, value) as HTAE
+
+-- replaceIsoTimestamps
+
+replaceIsoTimestamps :: Unit -> Effect Unit
+replaceIsoTimestamps u = do
+  body <- _body 
+  xs <- _querySelectorAll ".js-moment" (HE.toElement body)
+  for_ xs \x -> do
+    getDataAttribute "iso8601" (_fromNode x) >>= \s' ->
+      for_ s' \s -> do
+        Tuple rel fmt <- moment8601 s
+        setTextContent rel x 
+        setAttribute "title" fmt (_fromNode x)
+        setAttribute "style" "visibility:visible" (_fromNode x)
+
+-- deleteAskE
+
+deleteAskE :: Event -> Effect Unit
+deleteAskE e = do
+  preventDefault e
+  traverse_ (toggleDelete true) (fromEventTarget =<< target e)
+
+-- deleteCancelE
+
+deleteCancelE :: Event -> Effect Unit
+deleteCancelE e = do
+  preventDefault e
+  traverse_ (toggleDelete false) (fromEventTarget =<< target e)
+
+toggleDelete :: Boolean -> Node -> Effect Unit
+toggleDelete toggle n = void $ runMaybeT $ do
+  dl <- _mt $ closest ".delete_link" n
+  c <- _mt $ _querySelector ".confirm" (_fromNode dl)
+  d <- _mt $ _querySelector ".delete" (_fromNode dl)
+  lift $ removeAttribute "hidden" (if toggle then c else d)
+  lift $ setAttribute "hidden" "hidden" (if not toggle then c else d)
+
+
+-- destroyE
+
+destroyE :: Event -> Int -> Boolean -> Effect Unit
+destroyE e bid isPopup = do
+  preventDefault e
+  void $ launchAff $ do
+    void $ destroy bid
+    liftEffect $ 
+      if isPopup
+        then removeBody unit
+        else removeBookmarkNode unit
+  where
+    removeBody _ = do
+      body <- _body 
+      void $ setInnerHtml "<p class=\'error\'>you killed this bookmark</p>" body 
+    removeBookmarkNode _ =
+      void $ runMaybeT $ do
+        eNode <- _mt_pure $ fromEventTarget =<< target e
+        bm <- _mt $ closest ".bookmark" eNode
+        lift $ DCN.remove (toChildNode (_fromNode bm))
+
+destroy :: Int -> Aff (AffjaxResponse Unit)
+destroy bid =
+  fetchUrlEnc DELETE ("bm/" <> show bid) Nothing AXRes.ignore
+
+-- markReadE
+
+markReadE :: Event -> Int -> Effect Unit
+markReadE e bid = do
+  preventDefault e
+  void $ launchAff $ do
+    void $ markRead bid
+    liftEffect $ runMaybeT $ do
+      eNode <- _mt_pure $ fromEventTarget =<< target e
+      removeUnreadClass eNode
+      removeReadNode eNode
+  where
+    removeUnreadClass eNode = do
+      bm <- _mt $ closest ".bookmark" eNode 
+      bt <- _mt $ _querySelector ".bookmark_title" (_fromNode bm)
+      lift $ HE.classList (_fromElement bt) >>= (_ `DTL.remove` "unread")
+    removeReadNode eNode = do
+      rd <- _mt $ closest ".mark_read" eNode 
+      lift $ DCN.remove (toChildNode (_fromNode rd))
+
+markRead :: Int -> Aff (AffjaxResponse Unit)
+markRead bid = do
+  let path = "bm/" <> show bid <> "/read"
+  fetchUrlEnc POST path Nothing AXRes.ignore
+
+-- toggleStarE
+  
+data StarAction = Star | UnStar
+instance showStar :: Show StarAction where
+  show Star = "star"
+  show UnStar = "unstar"
+
+toggleStarE :: Event -> Int -> Effect Unit
+toggleStarE e bid = do
+  preventDefault e
+  mstarEl <- runMaybeT $ do
+    eNode <- _mt_pure $ fromEventTarget =<< target e
+    starNode <- _mt $ closest ".star" eNode 
+    _mt_pure $ HE.fromNode starNode
+  for_ mstarEl \starEl -> do
+    starClassList <- HE.classList starEl
+    let selected_star = "selected_star"
+    hasSelectedStar <- starClassList `DTL.contains` selected_star
+    void $ launchAff $ toggleStar bid (if hasSelectedStar then UnStar else Star)
+    void $ DTL.toggle starClassList selected_star
+
+toggleStar :: Int -> StarAction -> Aff Unit
+toggleStar bid action = do
+  let path = "bm/" <> show bid <> "/" <> show action
+  void $ fetchUrlEnc POST path Nothing AXRes.ignore
+
+-- editHideE
+
+editHideE :: Event -> Effect Unit
+editHideE e = do
+  preventDefault e
+  body <- _body 
+  showDisplay (HE.toElement body)
+  removeEdit (HE.toElement body)
+  where
+    showDisplay body = do
+      xs <- _querySelectorAll ".display" body
+      for_ xs $ _fromNode >>> removeAttribute "hidden" 
+    removeEdit body = do
+      xs <- _querySelectorAll ".edit_bookmark_form.active" body
+      for_ xs $ _fromNode >>> (toChildNode >>> DCN.remove) 
+
+
+editE :: Event -> Int -> Effect Unit
+editE e bid = do
+  editHideE e
+  body <- _body 
+  doc <- _doc
+  void $ runMaybeT $ do
+    t <- _mt_pure $ fromEventTarget =<< target e
+    bm <- _mt $ (map >>> map) _fromNode (closest ".bookmark" t)
+    d <- _mt $ _querySelector ".display" bm
+    el' <- _mt $ _getElementById "edit_bookmark_form_template" doc
+    lift $ do
+      el <- deepClone (toNode el')
+      let ele = _fromNode el
+
+      removeAttribute "id" ele
+      removeAttribute "hidden" ele
+
+      HE.classList (_fromElement ele) >>= (_ `DTL.add` "active")
+
+      _querySelector "input[name=bid]" ele >>= \me ->
+        for_ (me >>= HIE.fromElement) (HIE.setValue (show bid))
+
+      _queryBoth (Tuple ".url" ele) (Tuple ".url_display" bm) \a b -> do
+        url <- textContent (toNode b)
+        for_ (HIE.fromElement a) (HIE.setValue (trim url))
+
+      _queryBoth (Tuple ".title" ele) (Tuple ".bookmark_title" bm) \a b -> do
+        title <- textContent (toNode b)
+        for_ (HIE.fromElement a) (HIE.setValue (trim title))
+
+      _queryBoth (Tuple ".description" ele) (Tuple ".description" bm) \a b -> do
+        descr <- innerHtml (_fromElement b)
+        let descr' = trim $ replaceAll (Pattern "<br>") (Replacement "\n") descr
+        for_ (HTAE.fromElement a) (HTAE.setValue descr')
+
+      _queryBoth' (Tuple ".tags" ele) (Tuple ".tag" bm) \a bs -> do
+        tags <- traverse textContent bs
+        for_ (HIE.fromElement a) (HIE.setValue (joinWith " " tags))
+
+      _querySelector "input[name=private]" ele >>= \me -> do
+        isPrivate <- HE.classList (_fromElement bm) >>= (_ `DTL.contains` "private")
+        for_ (me >>= HIE.fromElement) (HIE.setChecked isPrivate)
+
+      _queryBoth (Tuple "input[name=toread]" ele) (Tuple ".read .mark_read" bm) \a _ -> do
+        for_ (HIE.fromElement a) (HIE.setChecked true)
+
+      setAttribute "hidden" "hidden" d
+      void $ insertBefore el (toNode d) (toNode bm)
+
+editSubmitE :: Event -> Effect Unit
+editSubmitE e = do
+  preventDefault e
+  body <- _body 
+  doc <- _doc
+  void $ runMaybeT $ do
+    f <- _mt_pure $ fromEventTarget =<< target e
+    let fe = _fromNode f
+    fe' <- _mt_pure $ HFE.fromNode f
+    bm <- _mt $ (map >>> map) _fromNode (closest ".bookmark" f)
+    d <- _mt $ _querySelector ".display" bm
+  
+    lift $ launchAff $ do
+      let dat = Just $ FormURLEncoded $ mapMaybe _mpair (createFormArray fe')
+      void $ fetchUrlEnc POST "add?inline=true" dat AXRes.ignore
+      liftEffect $ do
+
+        toread <- _querySelector "input[name=toread]" fe >>= \me -> do
+          for (me >>= HIE.fromElement) HIE.checked >>= fromMaybe false >>> pure
+
+        private <- _querySelector "input[name=private]" fe >>= \me -> do
+          for (me >>= HIE.fromElement) HIE.checked >>= fromMaybe false >>> pure
+
+        _queryBoth (Tuple ".url" fe) (Tuple ".url_display" d) \a b -> do
+          url <- for (HIE.fromElement a) HIE.value >>= fromMaybe "" >>> pure
+          setTextContent url (toNode b) 
+
+        _queryBoth (Tuple ".title" fe) (Tuple ".bookmark_title" d) \a b -> do
+          title <- for (HIE.fromElement a) HIE.value >>= fromMaybe "" >>> pure
+          setTextContent title (toNode b) 
+          void $ HE.classList (_fromElement b) >>= \cl -> DTL.toggleForce cl "unread" toread
+  
+        _queryBoth (Tuple ".description" fe) (Tuple ".description" d) \a b -> do
+          descr <- for (HTAE.fromElement a) HTAE.value >>= fromMaybe "" >>> pure
+          let descr' = trim $ replaceAll (Pattern "\n") (Replacement "<br>") descr
+          void $ setInnerHtml descr' (_fromElement b) 
+  
+        void $ HE.classList (_fromElement bm) >>= \cl -> DTL.toggleForce cl "private" private
+
+        username <- _querySelector ".banner_username" (HE.toElement body) >>= \me -> do
+          join <$> for me (getDataAttribute "username") >>= fromMaybe "" >>> pure
+
+        _queryBoth (Tuple ".tags" fe) (Tuple ".tags" d) \a b -> do
+          void $ setInnerHtml "" (_fromElement b)
+          tags <- for (HIE.fromElement a) HIE.value >>= fromMaybe "" >>> pure
+          for_ (words tags) \w -> do
+            tag <- createElement "a" (toDocument doc)
+            setClassName ("tag" <> (if take 1 w == "." then " private" else "")) tag
+            setAttribute "href" ("/u:" <> username <> "/t:" <> w) tag
+            setTextContent w (toNode tag)
+            appendChild (toNode tag) (toNode b)
+
+        _querySelector ".read" d >>= \me -> do
+          for_ me \m -> do
+            void $ setInnerHtml "" (_fromElement m)
+            when toread $ do
+              bid <- getDataAttribute "bid" bm >>= fromMaybe "" >>> pure
+              log (bid)
+              el <- createElement "a" (toDocument doc)
+              setClassName "mark_read" el
+              setAttribute "href" "#" el
+              setAttribute "onclick" ("PS['BMark'].markReadE(event)(" <> bid <> ")();") el
+              setTextContent "mark as read" (toNode el)
+              void $ appendChild (toNode el) (toNode m)
+
+        editHideE e
+  where
+    words = filter ((0 < _) <<< length) <<< split (Pattern " ")
+    _mpair = case _ of
+      [k, v] -> Just $ Tuple k (Just v)
+      _ -> Nothing
diff --git a/purs/src/Globals.js b/purs/src/Globals.js
new file mode 100644
--- /dev/null
+++ b/purs/src/Globals.js
@@ -0,0 +1,60 @@
+"use strict";
+
+exports._app = function() {
+  return app;
+}
+
+exports._closest = function(just, nothing, selector, el) {
+  var node = el.closest(selector);
+  if(node) {
+    return just(node);
+  } else {
+    return nothing;
+  }
+}
+
+exports._innerHtml = function(el) {
+  return el.innerHTML;
+}
+
+exports._setInnerHtml = function(content, el) {
+  el.innerHTML = content;
+  return el;
+}
+
+exports._createFormData = function(formElement) {
+  return new FormData(formElement);
+}
+
+exports._createFormString = function(formElement) {
+  return new URLSearchParams(new FormData(formElement)).toString()
+}
+
+exports._createFormArray = function(formElement) {
+  return Array.from(new FormData(formElement));
+}
+
+exports._getDataAttribute = function(name, el) {
+  return el.dataset[name];
+}
+
+exports._setDataAttribute = function(name, value, el) {
+  return el.dataset[name] = value;
+}
+
+exports._moment8601 = function(tuple, s) {
+  var m = moment(s, moment.ISO_8601);
+  var s1 = m.fromNow();
+  var s2 = m.format('MMMM D YYYY, h:mm a') + " (" + m.format() + ") ";
+  return tuple(s1)(s2);
+}
+
+exports._replace_iso_timestamps = function() {
+  $('.js-moment').each(function(i, e) {
+    var $e = $(e);
+    var m = moment($e.data('iso8601'), moment.ISO_8601);
+    $e.text(m.fromNow());
+    $e.attr('title', m.format('MMMM D YYYY, h:mm a') + " (" + m.format() + ") ");
+    $e.css('visibility','visible');
+  });
+}
diff --git a/purs/src/Globals.purs b/purs/src/Globals.purs
new file mode 100644
--- /dev/null
+++ b/purs/src/Globals.purs
@@ -0,0 +1,71 @@
+module Globals where
+
+import Data.Function.Uncurried
+
+import Data.Maybe (Maybe(..))
+import Data.Nullable (Nullable, toMaybe)
+import Data.Tuple (Tuple(..))
+import Effect (Effect)
+import Prelude (Unit, pure, ($))
+import Web.DOM (Element, Node)
+import Web.HTML (HTMLElement, HTMLFormElement)
+import Web.XHR.FormData (FormData)
+
+type AppData =
+    { csrfHeaderName :: String
+    , csrfCookieName :: String
+    , csrfToken :: String
+    , homeR :: String
+    , authRlogoutR :: String
+    }
+
+foreign import _app :: Fn0 AppData
+
+app' :: Unit -> AppData
+app' _ = runFn0 _app
+
+foreign import _closest :: forall a. Fn4 (a -> Maybe a) (Maybe a) String Node (Maybe Node)
+
+closest :: String -> Node -> Effect (Maybe Node)
+closest selector node = pure $ runFn4 _closest Just Nothing selector node 
+
+foreign import _moment8601 :: Fn2 (String -> String -> Tuple String String) String (Tuple String String)
+
+moment8601 :: String -> Effect (Tuple String String)
+moment8601 s = pure $ runFn2 _moment8601 Tuple s
+
+foreign import _innerHtml :: Fn1 HTMLElement String
+
+innerHtml :: HTMLElement -> Effect String
+innerHtml n = pure $ runFn1 _innerHtml n
+
+foreign import _setInnerHtml :: Fn2 String HTMLElement HTMLElement
+
+setInnerHtml :: String -> HTMLElement -> Effect HTMLElement
+setInnerHtml c n = pure $ runFn2 _setInnerHtml c n
+
+foreign import _createFormData :: Fn1 HTMLFormElement FormData
+
+createFormData :: HTMLFormElement -> FormData
+createFormData f = runFn1 _createFormData f
+
+foreign import _createFormString :: Fn1 HTMLFormElement String
+
+createFormString :: HTMLFormElement -> String
+createFormString f = runFn1 _createFormString f
+
+
+foreign import _createFormArray :: Fn1 HTMLFormElement (Array (Array String))
+
+createFormArray :: HTMLFormElement -> (Array (Array String))
+createFormArray f = runFn1 _createFormArray f
+
+foreign import _getDataAttribute :: Fn2 String Element (Nullable String)
+
+getDataAttribute :: String -> Element -> Effect (Maybe String)
+getDataAttribute k n = pure $ toMaybe $ runFn2 _getDataAttribute k n
+
+foreign import _setDataAttribute :: Fn3 String String Element Unit
+
+setDataAttribute :: String -> String -> Element -> Effect Unit
+setDataAttribute k v n = pure $ runFn3 _setDataAttribute k v n
diff --git a/purs/src/Util.purs b/purs/src/Util.purs
new file mode 100644
--- /dev/null
+++ b/purs/src/Util.purs
@@ -0,0 +1,71 @@
+module Util where
+
+import Prelude
+import Control.Monad.Maybe.Trans (MaybeT(..))
+import Data.Foldable (for_)
+import Data.Maybe (Maybe, fromJust)
+import Data.Tuple (Tuple(..))
+import Effect (Effect)
+import Partial.Unsafe (unsafePartial)
+import Web.DOM (Element, Node)
+import Web.DOM.Document (toNonElementParentNode)
+import Web.DOM.Element (fromNode, toParentNode)
+import Web.DOM.NodeList (toArray)
+import Web.DOM.NonElementParentNode (getElementById)
+import Web.DOM.ParentNode (QuerySelector(..), querySelector, querySelectorAll)
+import Web.HTML (HTMLDocument, window)
+import Web.HTML.HTMLDocument (body) as HD
+import Web.HTML.HTMLDocument (toDocument)
+import Web.HTML.HTMLElement (HTMLElement)
+import Web.HTML.HTMLElement (fromElement) as HE
+import Web.HTML.Window (document)
+  
+-- Util
+
+_queryBoth :: forall a. Tuple String Element -> Tuple String Element -> (Element -> Element -> Effect a) -> Effect Unit
+_queryBoth (Tuple qa ea) (Tuple qb eb) f = do
+   ma <- _querySelector qa ea
+   mb <- _querySelector qb eb
+   for_ ma \a -> 
+     for_ mb \b ->
+       f a b
+
+_queryBoth' :: forall a. Tuple String Element -> Tuple String Element -> (Element -> Array Node -> Effect a) -> Effect Unit
+_queryBoth' (Tuple qa ea) (Tuple qb eb) f = do
+   ma <- _querySelector qa ea
+   bs <- _querySelectorAll qb eb
+   for_ ma \a -> 
+     f a bs
+
+_queryBoth'' :: forall a. Tuple String Element -> Tuple String Element -> (Array Node -> Array Node -> Effect a) -> Effect a
+_queryBoth'' (Tuple qa ea) (Tuple qb eb) f = do
+   as <- _querySelectorAll qa ea
+   bs <- _querySelectorAll qb eb
+   f as bs
+
+_querySelector :: String -> Element -> Effect (Maybe Element)
+_querySelector s n = querySelector (QuerySelector s) (toParentNode n)
+
+_querySelectorAll :: String -> Element -> Effect (Array Node)
+_querySelectorAll s n = toArray =<< querySelectorAll (QuerySelector s) (toParentNode n)
+
+_fromNode :: Node -> Element
+_fromNode e = unsafePartial $ fromJust (fromNode e)
+
+_fromElement :: Element -> HTMLElement
+_fromElement e = unsafePartial $ fromJust (HE.fromElement e)
+
+_getElementById :: String -> HTMLDocument -> Effect (Maybe Element)
+_getElementById s = getElementById s <<< toNonElementParentNode <<< toDocument
+
+_doc :: Effect HTMLDocument
+_doc = document =<< window 
+
+_body :: Effect HTMLElement
+_body = unsafePartial $ pure <<< fromJust =<< HD.body =<< _doc
+
+_mt :: forall a. Effect (Maybe a) -> MaybeT Effect a
+_mt = MaybeT
+
+_mt_pure :: forall a. Maybe a -> MaybeT Effect a
+_mt_pure = MaybeT <<< pure
diff --git a/purs/test/Main.purs b/purs/test/Main.purs
new file mode 100644
--- /dev/null
+++ b/purs/test/Main.purs
@@ -0,0 +1,9 @@
+module Test.Main where
+
+import Prelude
+import Effect (Effect)
+import Effect.Console (log)
+
+main :: Effect Unit
+main = do
+  log "You should add some tests."
diff --git a/src/Application.hs b/src/Application.hs
--- a/src/Application.hs
+++ b/src/Application.hs
@@ -21,6 +21,10 @@
 import Yesod.Auth (getAuth)
 import Language.Haskell.TH.Syntax (qLocation)
 import Network.Wai (Middleware)
+import Network.Wai.Middleware.Autohead
+import Network.Wai.Middleware.AcceptOverride
+import Network.Wai.Middleware.Gzip
+import Network.Wai.Middleware.MethodOverride
 import Network.Wai.Handler.Warp
        (Settings, defaultSettings, defaultShouldDisplayException,
         runSettings, setHost, setOnException, setPort, getPort)
@@ -66,7 +70,14 @@
 makeApplication foundation = do
   logWare <- makeLogWare foundation
   appPlain <- toWaiAppPlain foundation
-  return (logWare (defaultMiddlewaresNoLogging appPlain))
+  return (logWare (makeMiddleware appPlain))
+
+makeMiddleware :: Middleware
+makeMiddleware =
+  acceptOverride . autohead . gzip def
+    { gzipFiles = GzipPreCompressed GzipIgnore
+    } .
+  methodOverride
 
 makeLogWare :: App -> IO Middleware
 makeLogWare foundation =
diff --git a/src/Foundation.hs b/src/Foundation.hs
--- a/src/Foundation.hs
+++ b/src/Foundation.hs
@@ -97,10 +97,10 @@
 
 addAppScripts :: (MonadWidget m, HandlerSite m ~ App) => m ()
 addAppScripts = do
-  addScript (StaticR js_jquery_3_3_1_slim_min_js) 
   addScript (StaticR js_js_cookie_2_2_0_min_js)
   addScript (StaticR js_moment_min_js)
   toWidget $(juliusFile "templates/app.julius")
+  addScript (StaticR js_app_js) 
 
 
 -- popupLayout
diff --git a/src/Handler/Add.hs b/src/Handler/Add.hs
--- a/src/Handler/Add.hs
+++ b/src/Handler/Add.hs
@@ -98,7 +98,6 @@
 viewAddWidget formWidget mexists focusEl = do
   let submitText = (maybe "add bookmark" (const "update bookmark") mexists) :: Text
   popupLayout mexists $ do
-    $(widgetFile "bm")
     $(widgetFile "add")
 
 -- AddForm
diff --git a/src/Handler/User.hs b/src/Handler/User.hs
--- a/src/Handler/User.hs
+++ b/src/Handler/User.hs
@@ -53,7 +53,6 @@
   let toTitle x = if null x then "[no title]" else x
   req <- getRequest
   defaultLayout $ do
-    $(widgetFile "bm")
     $(widgetFile "user")
 
 _lookupPagingParams :: Handler (Maybe Int64, Maybe Int64)
diff --git a/src/Model.hs b/src/Model.hs
--- a/src/Model.hs
+++ b/src/Model.hs
@@ -198,11 +198,17 @@
   case posts' of
       Left e -> print e
       Right posts -> do
-        void $ do
-            let bookmarks = fmap (postToBookmark userId) posts
-            bookmarkIds <- insertMany bookmarks
-            insertMany_ $ concatMap (uncurry bookmarkEntityToTags)
-                (zipWith3 (\k v p -> (Entity k v, postTags p)) bookmarkIds bookmarks posts)
+        let bookmarks = fmap (postToBookmark userId) posts
+        mbookmarkIds <- mapM insertUnique bookmarks 
+
+        let bookmarkTags =
+              concatMap (uncurry bookmarkEntityToTags) $
+              catMaybes $
+              zipWith3 (\mk v p -> map (\k -> (Entity k v, postTags p)) mk)
+                mbookmarkIds
+                bookmarks
+                posts
+        void $ mapM insertUnique bookmarkTags
   where
     readBookmarkFileJson :: MonadIO m => FilePath -> m (Either String [Post])
     readBookmarkFileJson fpath = pure . A.eitherDecode' . fromStrict =<< readFile fpath
diff --git a/static/css/bootstrap.css b/static/css/bootstrap.css
new file mode 100644
--- /dev/null
+++ b/static/css/bootstrap.css
@@ -0,0 +1,7022 @@
+@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");
+/*!
+ * bootswatch v3.3.7
+ * Homepage: http://bootswatch.com
+ * Copyright 2012-2016 Thomas Park
+ * Licensed under MIT
+ * Based on Bootstrap
+*/
+/*!
+ * Bootstrap v3.3.7 (http://getbootstrap.com)
+ * Copyright 2011-2016 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
+html {
+  font-family: sans-serif;
+  -ms-text-size-adjust: 100%;
+  -webkit-text-size-adjust: 100%;
+}
+body {
+  margin: 0;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+menu,
+nav,
+section,
+summary {
+  display: block;
+}
+audio,
+canvas,
+progress,
+video {
+  display: inline-block;
+  vertical-align: baseline;
+}
+audio:not([controls]) {
+  display: none;
+  height: 0;
+}
+[hidden],
+template {
+  display: none;
+}
+a {
+  background-color: transparent;
+}
+a:active,
+a:hover {
+  outline: 0;
+}
+abbr[title] {
+  border-bottom: 1px dotted;
+}
+b,
+strong {
+  font-weight: bold;
+}
+dfn {
+  font-style: italic;
+}
+h1 {
+  font-size: 2em;
+  margin: 0.67em 0;
+}
+mark {
+  background: #ff0;
+  color: #000;
+}
+small {
+  font-size: 80%;
+}
+sub,
+sup {
+  font-size: 75%;
+  line-height: 0;
+  position: relative;
+  vertical-align: baseline;
+}
+sup {
+  top: -0.5em;
+}
+sub {
+  bottom: -0.25em;
+}
+img {
+  border: 0;
+}
+svg:not(:root) {
+  overflow: hidden;
+}
+figure {
+  margin: 1em 40px;
+}
+hr {
+  -webkit-box-sizing: content-box;
+     -moz-box-sizing: content-box;
+          box-sizing: content-box;
+  height: 0;
+}
+pre {
+  overflow: auto;
+}
+code,
+kbd,
+pre,
+samp {
+  font-family: monospace, monospace;
+  font-size: 1em;
+}
+button,
+input,
+optgroup,
+select,
+textarea {
+  color: inherit;
+  font: inherit;
+  margin: 0;
+}
+button {
+  overflow: visible;
+}
+button,
+select {
+  text-transform: none;
+}
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+  -webkit-appearance: button;
+  cursor: pointer;
+}
+button[disabled],
+html input[disabled] {
+  cursor: default;
+}
+button::-moz-focus-inner,
+input::-moz-focus-inner {
+  border: 0;
+  padding: 0;
+}
+input {
+  line-height: normal;
+}
+input[type="checkbox"],
+input[type="radio"] {
+  -webkit-box-sizing: border-box;
+     -moz-box-sizing: border-box;
+          box-sizing: border-box;
+  padding: 0;
+}
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+  height: auto;
+}
+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-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+  -webkit-appearance: none;
+}
+fieldset {
+  border: 1px solid #c0c0c0;
+  margin: 0 2px;
+  padding: 0.35em 0.625em 0.75em;
+}
+legend {
+  border: 0;
+  padding: 0;
+}
+textarea {
+  overflow: auto;
+}
+optgroup {
+  font-weight: bold;
+}
+table {
+  border-collapse: collapse;
+  border-spacing: 0;
+}
+td,
+th {
+  padding: 0;
+}
+/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
+@media print {
+  *,
+  *:before,
+  *:after {
+    background: transparent !important;
+    color: #000 !important;
+    -webkit-box-shadow: none !important;
+            box-shadow: none !important;
+    text-shadow: none !important;
+  }
+  a,
+  a:visited {
+    text-decoration: underline;
+  }
+  a[href]:after {
+    content: " (" attr(href) ")";
+  }
+  abbr[title]:after {
+    content: " (" attr(title) ")";
+  }
+  a[href^="#"]:after,
+  a[href^="javascript:"]:after {
+    content: "";
+  }
+  pre,
+  blockquote {
+    border: 1px solid #999;
+    page-break-inside: avoid;
+  }
+  thead {
+    display: table-header-group;
+  }
+  tr,
+  img {
+    page-break-inside: avoid;
+  }
+  img {
+    max-width: 100% !important;
+  }
+  p,
+  h2,
+  h3 {
+    orphans: 3;
+    widows: 3;
+  }
+  h2,
+  h3 {
+    page-break-after: avoid;
+  }
+  .navbar {
+    display: none;
+  }
+  .btn > .caret,
+  .dropup > .btn > .caret {
+    border-top-color: #000 !important;
+  }
+  .label {
+    border: 1px solid #000;
+  }
+  .table {
+    border-collapse: collapse !important;
+  }
+  .table td,
+  .table th {
+    background-color: #fff !important;
+  }
+  .table-bordered th,
+  .table-bordered td {
+    border: 1px solid #ddd !important;
+  }
+}
+@font-face {
+  font-family: 'Glyphicons Halflings';
+  src: url('../fonts/glyphicons-halflings-regular.eot');
+  src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+}
+.glyphicon {
+  position: relative;
+  top: 1px;
+  display: inline-block;
+  font-family: 'Glyphicons Halflings';
+  font-style: normal;
+  font-weight: normal;
+  line-height: 1;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+.glyphicon-asterisk:before {
+  content: "\002a";
+}
+.glyphicon-plus:before {
+  content: "\002b";
+}
+.glyphicon-euro:before,
+.glyphicon-eur:before {
+  content: "\20ac";
+}
+.glyphicon-minus:before {
+  content: "\2212";
+}
+.glyphicon-cloud:before {
+  content: "\2601";
+}
+.glyphicon-envelope:before {
+  content: "\2709";
+}
+.glyphicon-pencil:before {
+  content: "\270f";
+}
+.glyphicon-glass:before {
+  content: "\e001";
+}
+.glyphicon-music:before {
+  content: "\e002";
+}
+.glyphicon-search:before {
+  content: "\e003";
+}
+.glyphicon-heart:before {
+  content: "\e005";
+}
+.glyphicon-star:before {
+  content: "\e006";
+}
+.glyphicon-star-empty:before {
+  content: "\e007";
+}
+.glyphicon-user:before {
+  content: "\e008";
+}
+.glyphicon-film:before {
+  content: "\e009";
+}
+.glyphicon-th-large:before {
+  content: "\e010";
+}
+.glyphicon-th:before {
+  content: "\e011";
+}
+.glyphicon-th-list:before {
+  content: "\e012";
+}
+.glyphicon-ok:before {
+  content: "\e013";
+}
+.glyphicon-remove:before {
+  content: "\e014";
+}
+.glyphicon-zoom-in:before {
+  content: "\e015";
+}
+.glyphicon-zoom-out:before {
+  content: "\e016";
+}
+.glyphicon-off:before {
+  content: "\e017";
+}
+.glyphicon-signal:before {
+  content: "\e018";
+}
+.glyphicon-cog:before {
+  content: "\e019";
+}
+.glyphicon-trash:before {
+  content: "\e020";
+}
+.glyphicon-home:before {
+  content: "\e021";
+}
+.glyphicon-file:before {
+  content: "\e022";
+}
+.glyphicon-time:before {
+  content: "\e023";
+}
+.glyphicon-road:before {
+  content: "\e024";
+}
+.glyphicon-download-alt:before {
+  content: "\e025";
+}
+.glyphicon-download:before {
+  content: "\e026";
+}
+.glyphicon-upload:before {
+  content: "\e027";
+}
+.glyphicon-inbox:before {
+  content: "\e028";
+}
+.glyphicon-play-circle:before {
+  content: "\e029";
+}
+.glyphicon-repeat:before {
+  content: "\e030";
+}
+.glyphicon-refresh:before {
+  content: "\e031";
+}
+.glyphicon-list-alt:before {
+  content: "\e032";
+}
+.glyphicon-lock:before {
+  content: "\e033";
+}
+.glyphicon-flag:before {
+  content: "\e034";
+}
+.glyphicon-headphones:before {
+  content: "\e035";
+}
+.glyphicon-volume-off:before {
+  content: "\e036";
+}
+.glyphicon-volume-down:before {
+  content: "\e037";
+}
+.glyphicon-volume-up:before {
+  content: "\e038";
+}
+.glyphicon-qrcode:before {
+  content: "\e039";
+}
+.glyphicon-barcode:before {
+  content: "\e040";
+}
+.glyphicon-tag:before {
+  content: "\e041";
+}
+.glyphicon-tags:before {
+  content: "\e042";
+}
+.glyphicon-book:before {
+  content: "\e043";
+}
+.glyphicon-bookmark:before {
+  content: "\e044";
+}
+.glyphicon-print:before {
+  content: "\e045";
+}
+.glyphicon-camera:before {
+  content: "\e046";
+}
+.glyphicon-font:before {
+  content: "\e047";
+}
+.glyphicon-bold:before {
+  content: "\e048";
+}
+.glyphicon-italic:before {
+  content: "\e049";
+}
+.glyphicon-text-height:before {
+  content: "\e050";
+}
+.glyphicon-text-width:before {
+  content: "\e051";
+}
+.glyphicon-align-left:before {
+  content: "\e052";
+}
+.glyphicon-align-center:before {
+  content: "\e053";
+}
+.glyphicon-align-right:before {
+  content: "\e054";
+}
+.glyphicon-align-justify:before {
+  content: "\e055";
+}
+.glyphicon-list:before {
+  content: "\e056";
+}
+.glyphicon-indent-left:before {
+  content: "\e057";
+}
+.glyphicon-indent-right:before {
+  content: "\e058";
+}
+.glyphicon-facetime-video:before {
+  content: "\e059";
+}
+.glyphicon-picture:before {
+  content: "\e060";
+}
+.glyphicon-map-marker:before {
+  content: "\e062";
+}
+.glyphicon-adjust:before {
+  content: "\e063";
+}
+.glyphicon-tint:before {
+  content: "\e064";
+}
+.glyphicon-edit:before {
+  content: "\e065";
+}
+.glyphicon-share:before {
+  content: "\e066";
+}
+.glyphicon-check:before {
+  content: "\e067";
+}
+.glyphicon-move:before {
+  content: "\e068";
+}
+.glyphicon-step-backward:before {
+  content: "\e069";
+}
+.glyphicon-fast-backward:before {
+  content: "\e070";
+}
+.glyphicon-backward:before {
+  content: "\e071";
+}
+.glyphicon-play:before {
+  content: "\e072";
+}
+.glyphicon-pause:before {
+  content: "\e073";
+}
+.glyphicon-stop:before {
+  content: "\e074";
+}
+.glyphicon-forward:before {
+  content: "\e075";
+}
+.glyphicon-fast-forward:before {
+  content: "\e076";
+}
+.glyphicon-step-forward:before {
+  content: "\e077";
+}
+.glyphicon-eject:before {
+  content: "\e078";
+}
+.glyphicon-chevron-left:before {
+  content: "\e079";
+}
+.glyphicon-chevron-right:before {
+  content: "\e080";
+}
+.glyphicon-plus-sign:before {
+  content: "\e081";
+}
+.glyphicon-minus-sign:before {
+  content: "\e082";
+}
+.glyphicon-remove-sign:before {
+  content: "\e083";
+}
+.glyphicon-ok-sign:before {
+  content: "\e084";
+}
+.glyphicon-question-sign:before {
+  content: "\e085";
+}
+.glyphicon-info-sign:before {
+  content: "\e086";
+}
+.glyphicon-screenshot:before {
+  content: "\e087";
+}
+.glyphicon-remove-circle:before {
+  content: "\e088";
+}
+.glyphicon-ok-circle:before {
+  content: "\e089";
+}
+.glyphicon-ban-circle:before {
+  content: "\e090";
+}
+.glyphicon-arrow-left:before {
+  content: "\e091";
+}
+.glyphicon-arrow-right:before {
+  content: "\e092";
+}
+.glyphicon-arrow-up:before {
+  content: "\e093";
+}
+.glyphicon-arrow-down:before {
+  content: "\e094";
+}
+.glyphicon-share-alt:before {
+  content: "\e095";
+}
+.glyphicon-resize-full:before {
+  content: "\e096";
+}
+.glyphicon-resize-small:before {
+  content: "\e097";
+}
+.glyphicon-exclamation-sign:before {
+  content: "\e101";
+}
+.glyphicon-gift:before {
+  content: "\e102";
+}
+.glyphicon-leaf:before {
+  content: "\e103";
+}
+.glyphicon-fire:before {
+  content: "\e104";
+}
+.glyphicon-eye-open:before {
+  content: "\e105";
+}
+.glyphicon-eye-close:before {
+  content: "\e106";
+}
+.glyphicon-warning-sign:before {
+  content: "\e107";
+}
+.glyphicon-plane:before {
+  content: "\e108";
+}
+.glyphicon-calendar:before {
+  content: "\e109";
+}
+.glyphicon-random:before {
+  content: "\e110";
+}
+.glyphicon-comment:before {
+  content: "\e111";
+}
+.glyphicon-magnet:before {
+  content: "\e112";
+}
+.glyphicon-chevron-up:before {
+  content: "\e113";
+}
+.glyphicon-chevron-down:before {
+  content: "\e114";
+}
+.glyphicon-retweet:before {
+  content: "\e115";
+}
+.glyphicon-shopping-cart:before {
+  content: "\e116";
+}
+.glyphicon-folder-close:before {
+  content: "\e117";
+}
+.glyphicon-folder-open:before {
+  content: "\e118";
+}
+.glyphicon-resize-vertical:before {
+  content: "\e119";
+}
+.glyphicon-resize-horizontal:before {
+  content: "\e120";
+}
+.glyphicon-hdd:before {
+  content: "\e121";
+}
+.glyphicon-bullhorn:before {
+  content: "\e122";
+}
+.glyphicon-bell:before {
+  content: "\e123";
+}
+.glyphicon-certificate:before {
+  content: "\e124";
+}
+.glyphicon-thumbs-up:before {
+  content: "\e125";
+}
+.glyphicon-thumbs-down:before {
+  content: "\e126";
+}
+.glyphicon-hand-right:before {
+  content: "\e127";
+}
+.glyphicon-hand-left:before {
+  content: "\e128";
+}
+.glyphicon-hand-up:before {
+  content: "\e129";
+}
+.glyphicon-hand-down:before {
+  content: "\e130";
+}
+.glyphicon-circle-arrow-right:before {
+  content: "\e131";
+}
+.glyphicon-circle-arrow-left:before {
+  content: "\e132";
+}
+.glyphicon-circle-arrow-up:before {
+  content: "\e133";
+}
+.glyphicon-circle-arrow-down:before {
+  content: "\e134";
+}
+.glyphicon-globe:before {
+  content: "\e135";
+}
+.glyphicon-wrench:before {
+  content: "\e136";
+}
+.glyphicon-tasks:before {
+  content: "\e137";
+}
+.glyphicon-filter:before {
+  content: "\e138";
+}
+.glyphicon-briefcase:before {
+  content: "\e139";
+}
+.glyphicon-fullscreen:before {
+  content: "\e140";
+}
+.glyphicon-dashboard:before {
+  content: "\e141";
+}
+.glyphicon-paperclip:before {
+  content: "\e142";
+}
+.glyphicon-heart-empty:before {
+  content: "\e143";
+}
+.glyphicon-link:before {
+  content: "\e144";
+}
+.glyphicon-phone:before {
+  content: "\e145";
+}
+.glyphicon-pushpin:before {
+  content: "\e146";
+}
+.glyphicon-usd:before {
+  content: "\e148";
+}
+.glyphicon-gbp:before {
+  content: "\e149";
+}
+.glyphicon-sort:before {
+  content: "\e150";
+}
+.glyphicon-sort-by-alphabet:before {
+  content: "\e151";
+}
+.glyphicon-sort-by-alphabet-alt:before {
+  content: "\e152";
+}
+.glyphicon-sort-by-order:before {
+  content: "\e153";
+}
+.glyphicon-sort-by-order-alt:before {
+  content: "\e154";
+}
+.glyphicon-sort-by-attributes:before {
+  content: "\e155";
+}
+.glyphicon-sort-by-attributes-alt:before {
+  content: "\e156";
+}
+.glyphicon-unchecked:before {
+  content: "\e157";
+}
+.glyphicon-expand:before {
+  content: "\e158";
+}
+.glyphicon-collapse-down:before {
+  content: "\e159";
+}
+.glyphicon-collapse-up:before {
+  content: "\e160";
+}
+.glyphicon-log-in:before {
+  content: "\e161";
+}
+.glyphicon-flash:before {
+  content: "\e162";
+}
+.glyphicon-log-out:before {
+  content: "\e163";
+}
+.glyphicon-new-window:before {
+  content: "\e164";
+}
+.glyphicon-record:before {
+  content: "\e165";
+}
+.glyphicon-save:before {
+  content: "\e166";
+}
+.glyphicon-open:before {
+  content: "\e167";
+}
+.glyphicon-saved:before {
+  content: "\e168";
+}
+.glyphicon-import:before {
+  content: "\e169";
+}
+.glyphicon-export:before {
+  content: "\e170";
+}
+.glyphicon-send:before {
+  content: "\e171";
+}
+.glyphicon-floppy-disk:before {
+  content: "\e172";
+}
+.glyphicon-floppy-saved:before {
+  content: "\e173";
+}
+.glyphicon-floppy-remove:before {
+  content: "\e174";
+}
+.glyphicon-floppy-save:before {
+  content: "\e175";
+}
+.glyphicon-floppy-open:before {
+  content: "\e176";
+}
+.glyphicon-credit-card:before {
+  content: "\e177";
+}
+.glyphicon-transfer:before {
+  content: "\e178";
+}
+.glyphicon-cutlery:before {
+  content: "\e179";
+}
+.glyphicon-header:before {
+  content: "\e180";
+}
+.glyphicon-compressed:before {
+  content: "\e181";
+}
+.glyphicon-earphone:before {
+  content: "\e182";
+}
+.glyphicon-phone-alt:before {
+  content: "\e183";
+}
+.glyphicon-tower:before {
+  content: "\e184";
+}
+.glyphicon-stats:before {
+  content: "\e185";
+}
+.glyphicon-sd-video:before {
+  content: "\e186";
+}
+.glyphicon-hd-video:before {
+  content: "\e187";
+}
+.glyphicon-subtitles:before {
+  content: "\e188";
+}
+.glyphicon-sound-stereo:before {
+  content: "\e189";
+}
+.glyphicon-sound-dolby:before {
+  content: "\e190";
+}
+.glyphicon-sound-5-1:before {
+  content: "\e191";
+}
+.glyphicon-sound-6-1:before {
+  content: "\e192";
+}
+.glyphicon-sound-7-1:before {
+  content: "\e193";
+}
+.glyphicon-copyright-mark:before {
+  content: "\e194";
+}
+.glyphicon-registration-mark:before {
+  content: "\e195";
+}
+.glyphicon-cloud-download:before {
+  content: "\e197";
+}
+.glyphicon-cloud-upload:before {
+  content: "\e198";
+}
+.glyphicon-tree-conifer:before {
+  content: "\e199";
+}
+.glyphicon-tree-deciduous:before {
+  content: "\e200";
+}
+.glyphicon-cd:before {
+  content: "\e201";
+}
+.glyphicon-save-file:before {
+  content: "\e202";
+}
+.glyphicon-open-file:before {
+  content: "\e203";
+}
+.glyphicon-level-up:before {
+  content: "\e204";
+}
+.glyphicon-copy:before {
+  content: "\e205";
+}
+.glyphicon-paste:before {
+  content: "\e206";
+}
+.glyphicon-alert:before {
+  content: "\e209";
+}
+.glyphicon-equalizer:before {
+  content: "\e210";
+}
+.glyphicon-king:before {
+  content: "\e211";
+}
+.glyphicon-queen:before {
+  content: "\e212";
+}
+.glyphicon-pawn:before {
+  content: "\e213";
+}
+.glyphicon-bishop:before {
+  content: "\e214";
+}
+.glyphicon-knight:before {
+  content: "\e215";
+}
+.glyphicon-baby-formula:before {
+  content: "\e216";
+}
+.glyphicon-tent:before {
+  content: "\26fa";
+}
+.glyphicon-blackboard:before {
+  content: "\e218";
+}
+.glyphicon-bed:before {
+  content: "\e219";
+}
+.glyphicon-apple:before {
+  content: "\f8ff";
+}
+.glyphicon-erase:before {
+  content: "\e221";
+}
+.glyphicon-hourglass:before {
+  content: "\231b";
+}
+.glyphicon-lamp:before {
+  content: "\e223";
+}
+.glyphicon-duplicate:before {
+  content: "\e224";
+}
+.glyphicon-piggy-bank:before {
+  content: "\e225";
+}
+.glyphicon-scissors:before {
+  content: "\e226";
+}
+.glyphicon-bitcoin:before {
+  content: "\e227";
+}
+.glyphicon-btc:before {
+  content: "\e227";
+}
+.glyphicon-xbt:before {
+  content: "\e227";
+}
+.glyphicon-yen:before {
+  content: "\00a5";
+}
+.glyphicon-jpy:before {
+  content: "\00a5";
+}
+.glyphicon-ruble:before {
+  content: "\20bd";
+}
+.glyphicon-rub:before {
+  content: "\20bd";
+}
+.glyphicon-scale:before {
+  content: "\e230";
+}
+.glyphicon-ice-lolly:before {
+  content: "\e231";
+}
+.glyphicon-ice-lolly-tasted:before {
+  content: "\e232";
+}
+.glyphicon-education:before {
+  content: "\e233";
+}
+.glyphicon-option-horizontal:before {
+  content: "\e234";
+}
+.glyphicon-option-vertical:before {
+  content: "\e235";
+}
+.glyphicon-menu-hamburger:before {
+  content: "\e236";
+}
+.glyphicon-modal-window:before {
+  content: "\e237";
+}
+.glyphicon-oil:before {
+  content: "\e238";
+}
+.glyphicon-grain:before {
+  content: "\e239";
+}
+.glyphicon-sunglasses:before {
+  content: "\e240";
+}
+.glyphicon-text-size:before {
+  content: "\e241";
+}
+.glyphicon-text-color:before {
+  content: "\e242";
+}
+.glyphicon-text-background:before {
+  content: "\e243";
+}
+.glyphicon-object-align-top:before {
+  content: "\e244";
+}
+.glyphicon-object-align-bottom:before {
+  content: "\e245";
+}
+.glyphicon-object-align-horizontal:before {
+  content: "\e246";
+}
+.glyphicon-object-align-left:before {
+  content: "\e247";
+}
+.glyphicon-object-align-vertical:before {
+  content: "\e248";
+}
+.glyphicon-object-align-right:before {
+  content: "\e249";
+}
+.glyphicon-triangle-right:before {
+  content: "\e250";
+}
+.glyphicon-triangle-left:before {
+  content: "\e251";
+}
+.glyphicon-triangle-bottom:before {
+  content: "\e252";
+}
+.glyphicon-triangle-top:before {
+  content: "\e253";
+}
+.glyphicon-console:before {
+  content: "\e254";
+}
+.glyphicon-superscript:before {
+  content: "\e255";
+}
+.glyphicon-subscript:before {
+  content: "\e256";
+}
+.glyphicon-menu-left:before {
+  content: "\e257";
+}
+.glyphicon-menu-right:before {
+  content: "\e258";
+}
+.glyphicon-menu-down:before {
+  content: "\e259";
+}
+.glyphicon-menu-up:before {
+  content: "\e260";
+}
+* {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+*:before,
+*:after {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+html {
+  font-size: 10px;
+  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
+}
+body {
+  font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-size: 15px;
+  line-height: 1.42857143;
+  color: #2c3e50;
+  background-color: #ffffff;
+}
+input,
+button,
+select,
+textarea {
+  font-family: inherit;
+  font-size: inherit;
+  line-height: inherit;
+}
+a {
+  color: #18bc9c;
+  text-decoration: none;
+}
+a:hover,
+a:focus {
+  color: #18bc9c;
+  text-decoration: underline;
+}
+a:focus {
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+figure {
+  margin: 0;
+}
+img {
+  vertical-align: middle;
+}
+.img-responsive,
+.thumbnail > img,
+.thumbnail a > img,
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+  display: block;
+  max-width: 100%;
+  height: auto;
+}
+.img-rounded {
+  border-radius: 6px;
+}
+.img-thumbnail {
+  padding: 4px;
+  line-height: 1.42857143;
+  background-color: #ffffff;
+  border: 1px solid #ecf0f1;
+  border-radius: 4px;
+  -webkit-transition: all 0.2s ease-in-out;
+  -o-transition: all 0.2s ease-in-out;
+  transition: all 0.2s ease-in-out;
+  display: inline-block;
+  max-width: 100%;
+  height: auto;
+}
+.img-circle {
+  border-radius: 50%;
+}
+hr {
+  margin-top: 21px;
+  margin-bottom: 21px;
+  border: 0;
+  border-top: 1px solid #ecf0f1;
+}
+.sr-only {
+  position: absolute;
+  width: 1px;
+  height: 1px;
+  margin: -1px;
+  padding: 0;
+  overflow: hidden;
+  clip: rect(0, 0, 0, 0);
+  border: 0;
+}
+.sr-only-focusable:active,
+.sr-only-focusable:focus {
+  position: static;
+  width: auto;
+  height: auto;
+  margin: 0;
+  overflow: visible;
+  clip: auto;
+}
+[role="button"] {
+  cursor: pointer;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6,
+.h1,
+.h2,
+.h3,
+.h4,
+.h5,
+.h6 {
+  font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-weight: 400;
+  line-height: 1.1;
+  color: inherit;
+}
+h1 small,
+h2 small,
+h3 small,
+h4 small,
+h5 small,
+h6 small,
+.h1 small,
+.h2 small,
+.h3 small,
+.h4 small,
+.h5 small,
+.h6 small,
+h1 .small,
+h2 .small,
+h3 .small,
+h4 .small,
+h5 .small,
+h6 .small,
+.h1 .small,
+.h2 .small,
+.h3 .small,
+.h4 .small,
+.h5 .small,
+.h6 .small {
+  font-weight: normal;
+  line-height: 1;
+  color: #b4bcc2;
+}
+h1,
+.h1,
+h2,
+.h2,
+h3,
+.h3 {
+  margin-top: 21px;
+  margin-bottom: 10.5px;
+}
+h1 small,
+.h1 small,
+h2 small,
+.h2 small,
+h3 small,
+.h3 small,
+h1 .small,
+.h1 .small,
+h2 .small,
+.h2 .small,
+h3 .small,
+.h3 .small {
+  font-size: 65%;
+}
+h4,
+.h4,
+h5,
+.h5,
+h6,
+.h6 {
+  margin-top: 10.5px;
+  margin-bottom: 10.5px;
+}
+h4 small,
+.h4 small,
+h5 small,
+.h5 small,
+h6 small,
+.h6 small,
+h4 .small,
+.h4 .small,
+h5 .small,
+.h5 .small,
+h6 .small,
+.h6 .small {
+  font-size: 75%;
+}
+h1,
+.h1 {
+  font-size: 39px;
+}
+h2,
+.h2 {
+  font-size: 32px;
+}
+h3,
+.h3 {
+  font-size: 26px;
+}
+h4,
+.h4 {
+  font-size: 19px;
+}
+h5,
+.h5 {
+  font-size: 15px;
+}
+h6,
+.h6 {
+  font-size: 13px;
+}
+p {
+  margin: 0 0 10.5px;
+}
+.lead {
+  margin-bottom: 21px;
+  font-size: 17px;
+  font-weight: 300;
+  line-height: 1.4;
+}
+@media (min-width: 768px) {
+  .lead {
+    font-size: 22.5px;
+  }
+}
+small,
+.small {
+  font-size: 86%;
+}
+mark,
+.mark {
+  background-color: #f39c12;
+  padding: .2em;
+}
+.text-left {
+  text-align: left;
+}
+.text-right {
+  text-align: right;
+}
+.text-center {
+  text-align: center;
+}
+.text-justify {
+  text-align: justify;
+}
+.text-nowrap {
+  white-space: nowrap;
+}
+.text-lowercase {
+  text-transform: lowercase;
+}
+.text-uppercase {
+  text-transform: uppercase;
+}
+.text-capitalize {
+  text-transform: capitalize;
+}
+.text-muted {
+  color: #b4bcc2;
+}
+.text-primary {
+  color: #2c3e50;
+}
+a.text-primary:hover,
+a.text-primary:focus {
+  color: #1a242f;
+}
+.text-success {
+  color: #ffffff;
+}
+a.text-success:hover,
+a.text-success:focus {
+  color: #e6e6e6;
+}
+.text-info {
+  color: #ffffff;
+}
+a.text-info:hover,
+a.text-info:focus {
+  color: #e6e6e6;
+}
+.text-warning {
+  color: #ffffff;
+}
+a.text-warning:hover,
+a.text-warning:focus {
+  color: #e6e6e6;
+}
+.text-danger {
+  color: #ffffff;
+}
+a.text-danger:hover,
+a.text-danger:focus {
+  color: #e6e6e6;
+}
+.bg-primary {
+  color: #fff;
+  background-color: #2c3e50;
+}
+a.bg-primary:hover,
+a.bg-primary:focus {
+  background-color: #1a242f;
+}
+.bg-success {
+  background-color: #18bc9c;
+}
+a.bg-success:hover,
+a.bg-success:focus {
+  background-color: #128f76;
+}
+.bg-info {
+  background-color: #3498db;
+}
+a.bg-info:hover,
+a.bg-info:focus {
+  background-color: #217dbb;
+}
+.bg-warning {
+  background-color: #f39c12;
+}
+a.bg-warning:hover,
+a.bg-warning:focus {
+  background-color: #c87f0a;
+}
+.bg-danger {
+  background-color: #e74c3c;
+}
+a.bg-danger:hover,
+a.bg-danger:focus {
+  background-color: #d62c1a;
+}
+.page-header {
+  padding-bottom: 9.5px;
+  margin: 42px 0 21px;
+  border-bottom: 1px solid transparent;
+}
+ul,
+ol {
+  margin-top: 0;
+  margin-bottom: 10.5px;
+}
+ul ul,
+ol ul,
+ul ol,
+ol ol {
+  margin-bottom: 0;
+}
+.list-unstyled {
+  padding-left: 0;
+  list-style: none;
+}
+.list-inline {
+  padding-left: 0;
+  list-style: none;
+  margin-left: -5px;
+}
+.list-inline > li {
+  display: inline-block;
+  padding-left: 5px;
+  padding-right: 5px;
+}
+dl {
+  margin-top: 0;
+  margin-bottom: 21px;
+}
+dt,
+dd {
+  line-height: 1.42857143;
+}
+dt {
+  font-weight: bold;
+}
+dd {
+  margin-left: 0;
+}
+@media (min-width: 768px) {
+  .dl-horizontal dt {
+    float: left;
+    width: 160px;
+    clear: left;
+    text-align: right;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+  }
+  .dl-horizontal dd {
+    margin-left: 180px;
+  }
+}
+abbr[title],
+abbr[data-original-title] {
+  cursor: help;
+  border-bottom: 1px dotted #b4bcc2;
+}
+.initialism {
+  font-size: 90%;
+  text-transform: uppercase;
+}
+blockquote {
+  padding: 10.5px 21px;
+  margin: 0 0 21px;
+  font-size: 18.75px;
+  border-left: 5px solid #ecf0f1;
+}
+blockquote p:last-child,
+blockquote ul:last-child,
+blockquote ol:last-child {
+  margin-bottom: 0;
+}
+blockquote footer,
+blockquote small,
+blockquote .small {
+  display: block;
+  font-size: 80%;
+  line-height: 1.42857143;
+  color: #b4bcc2;
+}
+blockquote footer:before,
+blockquote small:before,
+blockquote .small:before {
+  content: '\2014 \00A0';
+}
+.blockquote-reverse,
+blockquote.pull-right {
+  padding-right: 15px;
+  padding-left: 0;
+  border-right: 5px solid #ecf0f1;
+  border-left: 0;
+  text-align: right;
+}
+.blockquote-reverse footer:before,
+blockquote.pull-right footer:before,
+.blockquote-reverse small:before,
+blockquote.pull-right small:before,
+.blockquote-reverse .small:before,
+blockquote.pull-right .small:before {
+  content: '';
+}
+.blockquote-reverse footer:after,
+blockquote.pull-right footer:after,
+.blockquote-reverse small:after,
+blockquote.pull-right small:after,
+.blockquote-reverse .small:after,
+blockquote.pull-right .small:after {
+  content: '\00A0 \2014';
+}
+address {
+  margin-bottom: 21px;
+  font-style: normal;
+  line-height: 1.42857143;
+}
+code,
+kbd,
+pre,
+samp {
+  font-family: Menlo, Monaco, Consolas, "Courier New", monospace;
+}
+code {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: #c7254e;
+  background-color: #f9f2f4;
+  border-radius: 4px;
+}
+kbd {
+  padding: 2px 4px;
+  font-size: 90%;
+  color: #ffffff;
+  background-color: #333333;
+  border-radius: 3px;
+  -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+          box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
+}
+kbd kbd {
+  padding: 0;
+  font-size: 100%;
+  font-weight: bold;
+  -webkit-box-shadow: none;
+          box-shadow: none;
+}
+pre {
+  display: block;
+  padding: 10px;
+  margin: 0 0 10.5px;
+  font-size: 14px;
+  line-height: 1.42857143;
+  word-break: break-all;
+  word-wrap: break-word;
+  color: #7b8a8b;
+  background-color: #ecf0f1;
+  border: 1px solid #cccccc;
+  border-radius: 4px;
+}
+pre code {
+  padding: 0;
+  font-size: inherit;
+  color: inherit;
+  white-space: pre-wrap;
+  background-color: transparent;
+  border-radius: 0;
+}
+.pre-scrollable {
+  max-height: 340px;
+  overflow-y: scroll;
+}
+.container {
+  margin-right: auto;
+  margin-left: auto;
+  padding-left: 15px;
+  padding-right: 15px;
+}
+@media (min-width: 768px) {
+  .container {
+    width: 750px;
+  }
+}
+@media (min-width: 992px) {
+  .container {
+    width: 970px;
+  }
+}
+@media (min-width: 1200px) {
+  .container {
+    width: 1170px;
+  }
+}
+.container-fluid {
+  margin-right: auto;
+  margin-left: auto;
+  padding-left: 15px;
+  padding-right: 15px;
+}
+.row {
+  margin-left: -15px;
+  margin-right: -15px;
+}
+.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {
+  position: relative;
+  min-height: 1px;
+  padding-left: 15px;
+  padding-right: 15px;
+}
+.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12 {
+  float: left;
+}
+.col-xs-12 {
+  width: 100%;
+}
+.col-xs-11 {
+  width: 91.66666667%;
+}
+.col-xs-10 {
+  width: 83.33333333%;
+}
+.col-xs-9 {
+  width: 75%;
+}
+.col-xs-8 {
+  width: 66.66666667%;
+}
+.col-xs-7 {
+  width: 58.33333333%;
+}
+.col-xs-6 {
+  width: 50%;
+}
+.col-xs-5 {
+  width: 41.66666667%;
+}
+.col-xs-4 {
+  width: 33.33333333%;
+}
+.col-xs-3 {
+  width: 25%;
+}
+.col-xs-2 {
+  width: 16.66666667%;
+}
+.col-xs-1 {
+  width: 8.33333333%;
+}
+.col-xs-pull-12 {
+  right: 100%;
+}
+.col-xs-pull-11 {
+  right: 91.66666667%;
+}
+.col-xs-pull-10 {
+  right: 83.33333333%;
+}
+.col-xs-pull-9 {
+  right: 75%;
+}
+.col-xs-pull-8 {
+  right: 66.66666667%;
+}
+.col-xs-pull-7 {
+  right: 58.33333333%;
+}
+.col-xs-pull-6 {
+  right: 50%;
+}
+.col-xs-pull-5 {
+  right: 41.66666667%;
+}
+.col-xs-pull-4 {
+  right: 33.33333333%;
+}
+.col-xs-pull-3 {
+  right: 25%;
+}
+.col-xs-pull-2 {
+  right: 16.66666667%;
+}
+.col-xs-pull-1 {
+  right: 8.33333333%;
+}
+.col-xs-pull-0 {
+  right: auto;
+}
+.col-xs-push-12 {
+  left: 100%;
+}
+.col-xs-push-11 {
+  left: 91.66666667%;
+}
+.col-xs-push-10 {
+  left: 83.33333333%;
+}
+.col-xs-push-9 {
+  left: 75%;
+}
+.col-xs-push-8 {
+  left: 66.66666667%;
+}
+.col-xs-push-7 {
+  left: 58.33333333%;
+}
+.col-xs-push-6 {
+  left: 50%;
+}
+.col-xs-push-5 {
+  left: 41.66666667%;
+}
+.col-xs-push-4 {
+  left: 33.33333333%;
+}
+.col-xs-push-3 {
+  left: 25%;
+}
+.col-xs-push-2 {
+  left: 16.66666667%;
+}
+.col-xs-push-1 {
+  left: 8.33333333%;
+}
+.col-xs-push-0 {
+  left: auto;
+}
+.col-xs-offset-12 {
+  margin-left: 100%;
+}
+.col-xs-offset-11 {
+  margin-left: 91.66666667%;
+}
+.col-xs-offset-10 {
+  margin-left: 83.33333333%;
+}
+.col-xs-offset-9 {
+  margin-left: 75%;
+}
+.col-xs-offset-8 {
+  margin-left: 66.66666667%;
+}
+.col-xs-offset-7 {
+  margin-left: 58.33333333%;
+}
+.col-xs-offset-6 {
+  margin-left: 50%;
+}
+.col-xs-offset-5 {
+  margin-left: 41.66666667%;
+}
+.col-xs-offset-4 {
+  margin-left: 33.33333333%;
+}
+.col-xs-offset-3 {
+  margin-left: 25%;
+}
+.col-xs-offset-2 {
+  margin-left: 16.66666667%;
+}
+.col-xs-offset-1 {
+  margin-left: 8.33333333%;
+}
+.col-xs-offset-0 {
+  margin-left: 0%;
+}
+@media (min-width: 768px) {
+  .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
+    float: left;
+  }
+  .col-sm-12 {
+    width: 100%;
+  }
+  .col-sm-11 {
+    width: 91.66666667%;
+  }
+  .col-sm-10 {
+    width: 83.33333333%;
+  }
+  .col-sm-9 {
+    width: 75%;
+  }
+  .col-sm-8 {
+    width: 66.66666667%;
+  }
+  .col-sm-7 {
+    width: 58.33333333%;
+  }
+  .col-sm-6 {
+    width: 50%;
+  }
+  .col-sm-5 {
+    width: 41.66666667%;
+  }
+  .col-sm-4 {
+    width: 33.33333333%;
+  }
+  .col-sm-3 {
+    width: 25%;
+  }
+  .col-sm-2 {
+    width: 16.66666667%;
+  }
+  .col-sm-1 {
+    width: 8.33333333%;
+  }
+  .col-sm-pull-12 {
+    right: 100%;
+  }
+  .col-sm-pull-11 {
+    right: 91.66666667%;
+  }
+  .col-sm-pull-10 {
+    right: 83.33333333%;
+  }
+  .col-sm-pull-9 {
+    right: 75%;
+  }
+  .col-sm-pull-8 {
+    right: 66.66666667%;
+  }
+  .col-sm-pull-7 {
+    right: 58.33333333%;
+  }
+  .col-sm-pull-6 {
+    right: 50%;
+  }
+  .col-sm-pull-5 {
+    right: 41.66666667%;
+  }
+  .col-sm-pull-4 {
+    right: 33.33333333%;
+  }
+  .col-sm-pull-3 {
+    right: 25%;
+  }
+  .col-sm-pull-2 {
+    right: 16.66666667%;
+  }
+  .col-sm-pull-1 {
+    right: 8.33333333%;
+  }
+  .col-sm-pull-0 {
+    right: auto;
+  }
+  .col-sm-push-12 {
+    left: 100%;
+  }
+  .col-sm-push-11 {
+    left: 91.66666667%;
+  }
+  .col-sm-push-10 {
+    left: 83.33333333%;
+  }
+  .col-sm-push-9 {
+    left: 75%;
+  }
+  .col-sm-push-8 {
+    left: 66.66666667%;
+  }
+  .col-sm-push-7 {
+    left: 58.33333333%;
+  }
+  .col-sm-push-6 {
+    left: 50%;
+  }
+  .col-sm-push-5 {
+    left: 41.66666667%;
+  }
+  .col-sm-push-4 {
+    left: 33.33333333%;
+  }
+  .col-sm-push-3 {
+    left: 25%;
+  }
+  .col-sm-push-2 {
+    left: 16.66666667%;
+  }
+  .col-sm-push-1 {
+    left: 8.33333333%;
+  }
+  .col-sm-push-0 {
+    left: auto;
+  }
+  .col-sm-offset-12 {
+    margin-left: 100%;
+  }
+  .col-sm-offset-11 {
+    margin-left: 91.66666667%;
+  }
+  .col-sm-offset-10 {
+    margin-left: 83.33333333%;
+  }
+  .col-sm-offset-9 {
+    margin-left: 75%;
+  }
+  .col-sm-offset-8 {
+    margin-left: 66.66666667%;
+  }
+  .col-sm-offset-7 {
+    margin-left: 58.33333333%;
+  }
+  .col-sm-offset-6 {
+    margin-left: 50%;
+  }
+  .col-sm-offset-5 {
+    margin-left: 41.66666667%;
+  }
+  .col-sm-offset-4 {
+    margin-left: 33.33333333%;
+  }
+  .col-sm-offset-3 {
+    margin-left: 25%;
+  }
+  .col-sm-offset-2 {
+    margin-left: 16.66666667%;
+  }
+  .col-sm-offset-1 {
+    margin-left: 8.33333333%;
+  }
+  .col-sm-offset-0 {
+    margin-left: 0%;
+  }
+}
+@media (min-width: 992px) {
+  .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
+    float: left;
+  }
+  .col-md-12 {
+    width: 100%;
+  }
+  .col-md-11 {
+    width: 91.66666667%;
+  }
+  .col-md-10 {
+    width: 83.33333333%;
+  }
+  .col-md-9 {
+    width: 75%;
+  }
+  .col-md-8 {
+    width: 66.66666667%;
+  }
+  .col-md-7 {
+    width: 58.33333333%;
+  }
+  .col-md-6 {
+    width: 50%;
+  }
+  .col-md-5 {
+    width: 41.66666667%;
+  }
+  .col-md-4 {
+    width: 33.33333333%;
+  }
+  .col-md-3 {
+    width: 25%;
+  }
+  .col-md-2 {
+    width: 16.66666667%;
+  }
+  .col-md-1 {
+    width: 8.33333333%;
+  }
+  .col-md-pull-12 {
+    right: 100%;
+  }
+  .col-md-pull-11 {
+    right: 91.66666667%;
+  }
+  .col-md-pull-10 {
+    right: 83.33333333%;
+  }
+  .col-md-pull-9 {
+    right: 75%;
+  }
+  .col-md-pull-8 {
+    right: 66.66666667%;
+  }
+  .col-md-pull-7 {
+    right: 58.33333333%;
+  }
+  .col-md-pull-6 {
+    right: 50%;
+  }
+  .col-md-pull-5 {
+    right: 41.66666667%;
+  }
+  .col-md-pull-4 {
+    right: 33.33333333%;
+  }
+  .col-md-pull-3 {
+    right: 25%;
+  }
+  .col-md-pull-2 {
+    right: 16.66666667%;
+  }
+  .col-md-pull-1 {
+    right: 8.33333333%;
+  }
+  .col-md-pull-0 {
+    right: auto;
+  }
+  .col-md-push-12 {
+    left: 100%;
+  }
+  .col-md-push-11 {
+    left: 91.66666667%;
+  }
+  .col-md-push-10 {
+    left: 83.33333333%;
+  }
+  .col-md-push-9 {
+    left: 75%;
+  }
+  .col-md-push-8 {
+    left: 66.66666667%;
+  }
+  .col-md-push-7 {
+    left: 58.33333333%;
+  }
+  .col-md-push-6 {
+    left: 50%;
+  }
+  .col-md-push-5 {
+    left: 41.66666667%;
+  }
+  .col-md-push-4 {
+    left: 33.33333333%;
+  }
+  .col-md-push-3 {
+    left: 25%;
+  }
+  .col-md-push-2 {
+    left: 16.66666667%;
+  }
+  .col-md-push-1 {
+    left: 8.33333333%;
+  }
+  .col-md-push-0 {
+    left: auto;
+  }
+  .col-md-offset-12 {
+    margin-left: 100%;
+  }
+  .col-md-offset-11 {
+    margin-left: 91.66666667%;
+  }
+  .col-md-offset-10 {
+    margin-left: 83.33333333%;
+  }
+  .col-md-offset-9 {
+    margin-left: 75%;
+  }
+  .col-md-offset-8 {
+    margin-left: 66.66666667%;
+  }
+  .col-md-offset-7 {
+    margin-left: 58.33333333%;
+  }
+  .col-md-offset-6 {
+    margin-left: 50%;
+  }
+  .col-md-offset-5 {
+    margin-left: 41.66666667%;
+  }
+  .col-md-offset-4 {
+    margin-left: 33.33333333%;
+  }
+  .col-md-offset-3 {
+    margin-left: 25%;
+  }
+  .col-md-offset-2 {
+    margin-left: 16.66666667%;
+  }
+  .col-md-offset-1 {
+    margin-left: 8.33333333%;
+  }
+  .col-md-offset-0 {
+    margin-left: 0%;
+  }
+}
+@media (min-width: 1200px) {
+  .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
+    float: left;
+  }
+  .col-lg-12 {
+    width: 100%;
+  }
+  .col-lg-11 {
+    width: 91.66666667%;
+  }
+  .col-lg-10 {
+    width: 83.33333333%;
+  }
+  .col-lg-9 {
+    width: 75%;
+  }
+  .col-lg-8 {
+    width: 66.66666667%;
+  }
+  .col-lg-7 {
+    width: 58.33333333%;
+  }
+  .col-lg-6 {
+    width: 50%;
+  }
+  .col-lg-5 {
+    width: 41.66666667%;
+  }
+  .col-lg-4 {
+    width: 33.33333333%;
+  }
+  .col-lg-3 {
+    width: 25%;
+  }
+  .col-lg-2 {
+    width: 16.66666667%;
+  }
+  .col-lg-1 {
+    width: 8.33333333%;
+  }
+  .col-lg-pull-12 {
+    right: 100%;
+  }
+  .col-lg-pull-11 {
+    right: 91.66666667%;
+  }
+  .col-lg-pull-10 {
+    right: 83.33333333%;
+  }
+  .col-lg-pull-9 {
+    right: 75%;
+  }
+  .col-lg-pull-8 {
+    right: 66.66666667%;
+  }
+  .col-lg-pull-7 {
+    right: 58.33333333%;
+  }
+  .col-lg-pull-6 {
+    right: 50%;
+  }
+  .col-lg-pull-5 {
+    right: 41.66666667%;
+  }
+  .col-lg-pull-4 {
+    right: 33.33333333%;
+  }
+  .col-lg-pull-3 {
+    right: 25%;
+  }
+  .col-lg-pull-2 {
+    right: 16.66666667%;
+  }
+  .col-lg-pull-1 {
+    right: 8.33333333%;
+  }
+  .col-lg-pull-0 {
+    right: auto;
+  }
+  .col-lg-push-12 {
+    left: 100%;
+  }
+  .col-lg-push-11 {
+    left: 91.66666667%;
+  }
+  .col-lg-push-10 {
+    left: 83.33333333%;
+  }
+  .col-lg-push-9 {
+    left: 75%;
+  }
+  .col-lg-push-8 {
+    left: 66.66666667%;
+  }
+  .col-lg-push-7 {
+    left: 58.33333333%;
+  }
+  .col-lg-push-6 {
+    left: 50%;
+  }
+  .col-lg-push-5 {
+    left: 41.66666667%;
+  }
+  .col-lg-push-4 {
+    left: 33.33333333%;
+  }
+  .col-lg-push-3 {
+    left: 25%;
+  }
+  .col-lg-push-2 {
+    left: 16.66666667%;
+  }
+  .col-lg-push-1 {
+    left: 8.33333333%;
+  }
+  .col-lg-push-0 {
+    left: auto;
+  }
+  .col-lg-offset-12 {
+    margin-left: 100%;
+  }
+  .col-lg-offset-11 {
+    margin-left: 91.66666667%;
+  }
+  .col-lg-offset-10 {
+    margin-left: 83.33333333%;
+  }
+  .col-lg-offset-9 {
+    margin-left: 75%;
+  }
+  .col-lg-offset-8 {
+    margin-left: 66.66666667%;
+  }
+  .col-lg-offset-7 {
+    margin-left: 58.33333333%;
+  }
+  .col-lg-offset-6 {
+    margin-left: 50%;
+  }
+  .col-lg-offset-5 {
+    margin-left: 41.66666667%;
+  }
+  .col-lg-offset-4 {
+    margin-left: 33.33333333%;
+  }
+  .col-lg-offset-3 {
+    margin-left: 25%;
+  }
+  .col-lg-offset-2 {
+    margin-left: 16.66666667%;
+  }
+  .col-lg-offset-1 {
+    margin-left: 8.33333333%;
+  }
+  .col-lg-offset-0 {
+    margin-left: 0%;
+  }
+}
+table {
+  background-color: transparent;
+}
+caption {
+  padding-top: 8px;
+  padding-bottom: 8px;
+  color: #b4bcc2;
+  text-align: left;
+}
+th {
+  text-align: left;
+}
+.table {
+  width: 100%;
+  max-width: 100%;
+  margin-bottom: 21px;
+}
+.table > thead > tr > th,
+.table > tbody > tr > th,
+.table > tfoot > tr > th,
+.table > thead > tr > td,
+.table > tbody > tr > td,
+.table > tfoot > tr > td {
+  padding: 8px;
+  line-height: 1.42857143;
+  vertical-align: top;
+  border-top: 1px solid #ecf0f1;
+}
+.table > thead > tr > th {
+  vertical-align: bottom;
+  border-bottom: 2px solid #ecf0f1;
+}
+.table > caption + thead > tr:first-child > th,
+.table > colgroup + thead > tr:first-child > th,
+.table > thead:first-child > tr:first-child > th,
+.table > caption + thead > tr:first-child > td,
+.table > colgroup + thead > tr:first-child > td,
+.table > thead:first-child > tr:first-child > td {
+  border-top: 0;
+}
+.table > tbody + tbody {
+  border-top: 2px solid #ecf0f1;
+}
+.table .table {
+  background-color: #ffffff;
+}
+.table-condensed > thead > tr > th,
+.table-condensed > tbody > tr > th,
+.table-condensed > tfoot > tr > th,
+.table-condensed > thead > tr > td,
+.table-condensed > tbody > tr > td,
+.table-condensed > tfoot > tr > td {
+  padding: 5px;
+}
+.table-bordered {
+  border: 1px solid #ecf0f1;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > tbody > tr > th,
+.table-bordered > tfoot > tr > th,
+.table-bordered > thead > tr > td,
+.table-bordered > tbody > tr > td,
+.table-bordered > tfoot > tr > td {
+  border: 1px solid #ecf0f1;
+}
+.table-bordered > thead > tr > th,
+.table-bordered > thead > tr > td {
+  border-bottom-width: 2px;
+}
+.table-striped > tbody > tr:nth-of-type(odd) {
+  background-color: #f9f9f9;
+}
+.table-hover > tbody > tr:hover {
+  background-color: #ecf0f1;
+}
+table col[class*="col-"] {
+  position: static;
+  float: none;
+  display: table-column;
+}
+table td[class*="col-"],
+table th[class*="col-"] {
+  position: static;
+  float: none;
+  display: table-cell;
+}
+.table > thead > tr > td.active,
+.table > tbody > tr > td.active,
+.table > tfoot > tr > td.active,
+.table > thead > tr > th.active,
+.table > tbody > tr > th.active,
+.table > tfoot > tr > th.active,
+.table > thead > tr.active > td,
+.table > tbody > tr.active > td,
+.table > tfoot > tr.active > td,
+.table > thead > tr.active > th,
+.table > tbody > tr.active > th,
+.table > tfoot > tr.active > th {
+  background-color: #ecf0f1;
+}
+.table-hover > tbody > tr > td.active:hover,
+.table-hover > tbody > tr > th.active:hover,
+.table-hover > tbody > tr.active:hover > td,
+.table-hover > tbody > tr:hover > .active,
+.table-hover > tbody > tr.active:hover > th {
+  background-color: #dde4e6;
+}
+.table > thead > tr > td.success,
+.table > tbody > tr > td.success,
+.table > tfoot > tr > td.success,
+.table > thead > tr > th.success,
+.table > tbody > tr > th.success,
+.table > tfoot > tr > th.success,
+.table > thead > tr.success > td,
+.table > tbody > tr.success > td,
+.table > tfoot > tr.success > td,
+.table > thead > tr.success > th,
+.table > tbody > tr.success > th,
+.table > tfoot > tr.success > th {
+  background-color: #18bc9c;
+}
+.table-hover > tbody > tr > td.success:hover,
+.table-hover > tbody > tr > th.success:hover,
+.table-hover > tbody > tr.success:hover > td,
+.table-hover > tbody > tr:hover > .success,
+.table-hover > tbody > tr.success:hover > th {
+  background-color: #15a589;
+}
+.table > thead > tr > td.info,
+.table > tbody > tr > td.info,
+.table > tfoot > tr > td.info,
+.table > thead > tr > th.info,
+.table > tbody > tr > th.info,
+.table > tfoot > tr > th.info,
+.table > thead > tr.info > td,
+.table > tbody > tr.info > td,
+.table > tfoot > tr.info > td,
+.table > thead > tr.info > th,
+.table > tbody > tr.info > th,
+.table > tfoot > tr.info > th {
+  background-color: #3498db;
+}
+.table-hover > tbody > tr > td.info:hover,
+.table-hover > tbody > tr > th.info:hover,
+.table-hover > tbody > tr.info:hover > td,
+.table-hover > tbody > tr:hover > .info,
+.table-hover > tbody > tr.info:hover > th {
+  background-color: #258cd1;
+}
+.table > thead > tr > td.warning,
+.table > tbody > tr > td.warning,
+.table > tfoot > tr > td.warning,
+.table > thead > tr > th.warning,
+.table > tbody > tr > th.warning,
+.table > tfoot > tr > th.warning,
+.table > thead > tr.warning > td,
+.table > tbody > tr.warning > td,
+.table > tfoot > tr.warning > td,
+.table > thead > tr.warning > th,
+.table > tbody > tr.warning > th,
+.table > tfoot > tr.warning > th {
+  background-color: #f39c12;
+}
+.table-hover > tbody > tr > td.warning:hover,
+.table-hover > tbody > tr > th.warning:hover,
+.table-hover > tbody > tr.warning:hover > td,
+.table-hover > tbody > tr:hover > .warning,
+.table-hover > tbody > tr.warning:hover > th {
+  background-color: #e08e0b;
+}
+.table > thead > tr > td.danger,
+.table > tbody > tr > td.danger,
+.table > tfoot > tr > td.danger,
+.table > thead > tr > th.danger,
+.table > tbody > tr > th.danger,
+.table > tfoot > tr > th.danger,
+.table > thead > tr.danger > td,
+.table > tbody > tr.danger > td,
+.table > tfoot > tr.danger > td,
+.table > thead > tr.danger > th,
+.table > tbody > tr.danger > th,
+.table > tfoot > tr.danger > th {
+  background-color: #e74c3c;
+}
+.table-hover > tbody > tr > td.danger:hover,
+.table-hover > tbody > tr > th.danger:hover,
+.table-hover > tbody > tr.danger:hover > td,
+.table-hover > tbody > tr:hover > .danger,
+.table-hover > tbody > tr.danger:hover > th {
+  background-color: #e43725;
+}
+.table-responsive {
+  overflow-x: auto;
+  min-height: 0.01%;
+}
+@media screen and (max-width: 767px) {
+  .table-responsive {
+    width: 100%;
+    margin-bottom: 15.75px;
+    overflow-y: hidden;
+    -ms-overflow-style: -ms-autohiding-scrollbar;
+    border: 1px solid #ecf0f1;
+  }
+  .table-responsive > .table {
+    margin-bottom: 0;
+  }
+  .table-responsive > .table > thead > tr > th,
+  .table-responsive > .table > tbody > tr > th,
+  .table-responsive > .table > tfoot > tr > th,
+  .table-responsive > .table > thead > tr > td,
+  .table-responsive > .table > tbody > tr > td,
+  .table-responsive > .table > tfoot > tr > td {
+    white-space: nowrap;
+  }
+  .table-responsive > .table-bordered {
+    border: 0;
+  }
+  .table-responsive > .table-bordered > thead > tr > th:first-child,
+  .table-responsive > .table-bordered > tbody > tr > th:first-child,
+  .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+  .table-responsive > .table-bordered > thead > tr > td:first-child,
+  .table-responsive > .table-bordered > tbody > tr > td:first-child,
+  .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+    border-left: 0;
+  }
+  .table-responsive > .table-bordered > thead > tr > th:last-child,
+  .table-responsive > .table-bordered > tbody > tr > th:last-child,
+  .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+  .table-responsive > .table-bordered > thead > tr > td:last-child,
+  .table-responsive > .table-bordered > tbody > tr > td:last-child,
+  .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+    border-right: 0;
+  }
+  .table-responsive > .table-bordered > tbody > tr:last-child > th,
+  .table-responsive > .table-bordered > tfoot > tr:last-child > th,
+  .table-responsive > .table-bordered > tbody > tr:last-child > td,
+  .table-responsive > .table-bordered > tfoot > tr:last-child > td {
+    border-bottom: 0;
+  }
+}
+fieldset {
+  padding: 0;
+  margin: 0;
+  border: 0;
+  min-width: 0;
+}
+legend {
+  display: block;
+  width: 100%;
+  padding: 0;
+  margin-bottom: 21px;
+  font-size: 22.5px;
+  line-height: inherit;
+  color: #2c3e50;
+  border: 0;
+  border-bottom: 1px solid transparent;
+}
+label {
+  display: inline-block;
+  max-width: 100%;
+  margin-bottom: 5px;
+  font-weight: bold;
+}
+input[type="search"] {
+  -webkit-box-sizing: border-box;
+  -moz-box-sizing: border-box;
+  box-sizing: border-box;
+}
+input[type="radio"],
+input[type="checkbox"] {
+  margin: 4px 0 0;
+  margin-top: 1px \9;
+  line-height: normal;
+}
+input[type="file"] {
+  display: block;
+}
+input[type="range"] {
+  display: block;
+  width: 100%;
+}
+select[multiple],
+select[size] {
+  height: auto;
+}
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+output {
+  display: block;
+  padding-top: 11px;
+  font-size: 15px;
+  line-height: 1.42857143;
+  color: #2c3e50;
+}
+.form-control {
+  display: block;
+  width: 100%;
+  height: 45px;
+  padding: 10px 15px;
+  font-size: 15px;
+  line-height: 1.42857143;
+  color: #2c3e50;
+  background-color: #ffffff;
+  background-image: none;
+  border: 1px solid #dce4ec;
+  border-radius: 4px;
+  -webkit-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-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
+  -o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+  transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
+}
+.form-control:focus {
+  border-color: #2c3e50;
+  outline: 0;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(44, 62, 80, 0.6);
+  box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(44, 62, 80, 0.6);
+}
+.form-control::-moz-placeholder {
+  color: #acb6c0;
+  opacity: 1;
+}
+.form-control:-ms-input-placeholder {
+  color: #acb6c0;
+}
+.form-control::-webkit-input-placeholder {
+  color: #acb6c0;
+}
+.form-control::-ms-expand {
+  border: 0;
+  background-color: transparent;
+}
+.form-control[disabled],
+.form-control[readonly],
+fieldset[disabled] .form-control {
+  background-color: #ecf0f1;
+  opacity: 1;
+}
+.form-control[disabled],
+fieldset[disabled] .form-control {
+  cursor: not-allowed;
+}
+textarea.form-control {
+  height: auto;
+}
+input[type="search"] {
+  -webkit-appearance: none;
+}
+@media screen and (-webkit-min-device-pixel-ratio: 0) {
+  input[type="date"].form-control,
+  input[type="time"].form-control,
+  input[type="datetime-local"].form-control,
+  input[type="month"].form-control {
+    line-height: 45px;
+  }
+  input[type="date"].input-sm,
+  input[type="time"].input-sm,
+  input[type="datetime-local"].input-sm,
+  input[type="month"].input-sm,
+  .input-group-sm input[type="date"],
+  .input-group-sm input[type="time"],
+  .input-group-sm input[type="datetime-local"],
+  .input-group-sm input[type="month"] {
+    line-height: 35px;
+  }
+  input[type="date"].input-lg,
+  input[type="time"].input-lg,
+  input[type="datetime-local"].input-lg,
+  input[type="month"].input-lg,
+  .input-group-lg input[type="date"],
+  .input-group-lg input[type="time"],
+  .input-group-lg input[type="datetime-local"],
+  .input-group-lg input[type="month"] {
+    line-height: 66px;
+  }
+}
+.form-group {
+  margin-bottom: 15px;
+}
+.radio,
+.checkbox {
+  position: relative;
+  display: block;
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+.radio label,
+.checkbox label {
+  min-height: 21px;
+  padding-left: 20px;
+  margin-bottom: 0;
+  font-weight: normal;
+  cursor: pointer;
+}
+.radio input[type="radio"],
+.radio-inline input[type="radio"],
+.checkbox input[type="checkbox"],
+.checkbox-inline input[type="checkbox"] {
+  position: absolute;
+  margin-left: -20px;
+  margin-top: 4px \9;
+}
+.radio + .radio,
+.checkbox + .checkbox {
+  margin-top: -5px;
+}
+.radio-inline,
+.checkbox-inline {
+  position: relative;
+  display: inline-block;
+  padding-left: 20px;
+  margin-bottom: 0;
+  vertical-align: middle;
+  font-weight: normal;
+  cursor: pointer;
+}
+.radio-inline + .radio-inline,
+.checkbox-inline + .checkbox-inline {
+  margin-top: 0;
+  margin-left: 10px;
+}
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"].disabled,
+input[type="checkbox"].disabled,
+fieldset[disabled] input[type="radio"],
+fieldset[disabled] input[type="checkbox"] {
+  cursor: not-allowed;
+}
+.radio-inline.disabled,
+.checkbox-inline.disabled,
+fieldset[disabled] .radio-inline,
+fieldset[disabled] .checkbox-inline {
+  cursor: not-allowed;
+}
+.radio.disabled label,
+.checkbox.disabled label,
+fieldset[disabled] .radio label,
+fieldset[disabled] .checkbox label {
+  cursor: not-allowed;
+}
+.form-control-static {
+  padding-top: 11px;
+  padding-bottom: 11px;
+  margin-bottom: 0;
+  min-height: 36px;
+}
+.form-control-static.input-lg,
+.form-control-static.input-sm {
+  padding-left: 0;
+  padding-right: 0;
+}
+.input-sm {
+  height: 35px;
+  padding: 6px 9px;
+  font-size: 13px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+select.input-sm {
+  height: 35px;
+  line-height: 35px;
+}
+textarea.input-sm,
+select[multiple].input-sm {
+  height: auto;
+}
+.form-group-sm .form-control {
+  height: 35px;
+  padding: 6px 9px;
+  font-size: 13px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+.form-group-sm select.form-control {
+  height: 35px;
+  line-height: 35px;
+}
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
+  height: auto;
+}
+.form-group-sm .form-control-static {
+  height: 35px;
+  min-height: 34px;
+  padding: 7px 9px;
+  font-size: 13px;
+  line-height: 1.5;
+}
+.input-lg {
+  height: 66px;
+  padding: 18px 27px;
+  font-size: 19px;
+  line-height: 1.3333333;
+  border-radius: 6px;
+}
+select.input-lg {
+  height: 66px;
+  line-height: 66px;
+}
+textarea.input-lg,
+select[multiple].input-lg {
+  height: auto;
+}
+.form-group-lg .form-control {
+  height: 66px;
+  padding: 18px 27px;
+  font-size: 19px;
+  line-height: 1.3333333;
+  border-radius: 6px;
+}
+.form-group-lg select.form-control {
+  height: 66px;
+  line-height: 66px;
+}
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+  height: auto;
+}
+.form-group-lg .form-control-static {
+  height: 66px;
+  min-height: 40px;
+  padding: 19px 27px;
+  font-size: 19px;
+  line-height: 1.3333333;
+}
+.has-feedback {
+  position: relative;
+}
+.has-feedback .form-control {
+  padding-right: 56.25px;
+}
+.form-control-feedback {
+  position: absolute;
+  top: 0;
+  right: 0;
+  z-index: 2;
+  display: block;
+  width: 45px;
+  height: 45px;
+  line-height: 45px;
+  text-align: center;
+  pointer-events: none;
+}
+.input-lg + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
+  width: 66px;
+  height: 66px;
+  line-height: 66px;
+}
+.input-sm + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
+  width: 35px;
+  height: 35px;
+  line-height: 35px;
+}
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label {
+  color: #ffffff;
+}
+.has-success .form-control {
+  border-color: #ffffff;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-success .form-control:focus {
+  border-color: #e6e6e6;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
+}
+.has-success .input-group-addon {
+  color: #ffffff;
+  border-color: #ffffff;
+  background-color: #18bc9c;
+}
+.has-success .form-control-feedback {
+  color: #ffffff;
+}
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label {
+  color: #ffffff;
+}
+.has-warning .form-control {
+  border-color: #ffffff;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-warning .form-control:focus {
+  border-color: #e6e6e6;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
+}
+.has-warning .input-group-addon {
+  color: #ffffff;
+  border-color: #ffffff;
+  background-color: #f39c12;
+}
+.has-warning .form-control-feedback {
+  color: #ffffff;
+}
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label {
+  color: #ffffff;
+}
+.has-error .form-control {
+  border-color: #ffffff;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
+}
+.has-error .form-control:focus {
+  border-color: #e6e6e6;
+  -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
+  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ffffff;
+}
+.has-error .input-group-addon {
+  color: #ffffff;
+  border-color: #ffffff;
+  background-color: #e74c3c;
+}
+.has-error .form-control-feedback {
+  color: #ffffff;
+}
+.has-feedback label ~ .form-control-feedback {
+  top: 26px;
+}
+.has-feedback label.sr-only ~ .form-control-feedback {
+  top: 0;
+}
+.help-block {
+  display: block;
+  margin-top: 5px;
+  margin-bottom: 10px;
+  color: #597ea2;
+}
+@media (min-width: 768px) {
+  .form-inline .form-group {
+    display: inline-block;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .form-inline .form-control {
+    display: inline-block;
+    width: auto;
+    vertical-align: middle;
+  }
+  .form-inline .form-control-static {
+    display: inline-block;
+  }
+  .form-inline .input-group {
+    display: inline-table;
+    vertical-align: middle;
+  }
+  .form-inline .input-group .input-group-addon,
+  .form-inline .input-group .input-group-btn,
+  .form-inline .input-group .form-control {
+    width: auto;
+  }
+  .form-inline .input-group > .form-control {
+    width: 100%;
+  }
+  .form-inline .control-label {
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .form-inline .radio,
+  .form-inline .checkbox {
+    display: inline-block;
+    margin-top: 0;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .form-inline .radio label,
+  .form-inline .checkbox label {
+    padding-left: 0;
+  }
+  .form-inline .radio input[type="radio"],
+  .form-inline .checkbox input[type="checkbox"] {
+    position: relative;
+    margin-left: 0;
+  }
+  .form-inline .has-feedback .form-control-feedback {
+    top: 0;
+  }
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox,
+.form-horizontal .radio-inline,
+.form-horizontal .checkbox-inline {
+  margin-top: 0;
+  margin-bottom: 0;
+  padding-top: 11px;
+}
+.form-horizontal .radio,
+.form-horizontal .checkbox {
+  min-height: 32px;
+}
+.form-horizontal .form-group {
+  margin-left: -15px;
+  margin-right: -15px;
+}
+@media (min-width: 768px) {
+  .form-horizontal .control-label {
+    text-align: right;
+    margin-bottom: 0;
+    padding-top: 11px;
+  }
+}
+.form-horizontal .has-feedback .form-control-feedback {
+  right: 15px;
+}
+@media (min-width: 768px) {
+  .form-horizontal .form-group-lg .control-label {
+    padding-top: 19px;
+    font-size: 19px;
+  }
+}
+@media (min-width: 768px) {
+  .form-horizontal .form-group-sm .control-label {
+    padding-top: 7px;
+    font-size: 13px;
+  }
+}
+.btn {
+  display: inline-block;
+  margin-bottom: 0;
+  font-weight: normal;
+  text-align: center;
+  vertical-align: middle;
+  -ms-touch-action: manipulation;
+      touch-action: manipulation;
+  cursor: pointer;
+  background-image: none;
+  border: 1px solid transparent;
+  white-space: nowrap;
+  padding: 10px 15px;
+  font-size: 15px;
+  line-height: 1.42857143;
+  border-radius: 4px;
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+}
+.btn:focus,
+.btn:active:focus,
+.btn.active:focus,
+.btn.focus,
+.btn:active.focus,
+.btn.active.focus {
+  outline: 5px auto -webkit-focus-ring-color;
+  outline-offset: -2px;
+}
+.btn:hover,
+.btn:focus,
+.btn.focus {
+  color: #ffffff;
+  text-decoration: none;
+}
+.btn:active,
+.btn.active {
+  outline: 0;
+  background-image: none;
+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn.disabled,
+.btn[disabled],
+fieldset[disabled] .btn {
+  cursor: not-allowed;
+  opacity: 0.65;
+  filter: alpha(opacity=65);
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+a.btn.disabled,
+fieldset[disabled] a.btn {
+  pointer-events: none;
+}
+.btn-default {
+  color: #ffffff;
+  background-color: #95a5a6;
+  border-color: #95a5a6;
+}
+.btn-default:focus,
+.btn-default.focus {
+  color: #ffffff;
+  background-color: #798d8f;
+  border-color: #566566;
+}
+.btn-default:hover {
+  color: #ffffff;
+  background-color: #798d8f;
+  border-color: #74898a;
+}
+.btn-default:active,
+.btn-default.active,
+.open > .dropdown-toggle.btn-default {
+  color: #ffffff;
+  background-color: #798d8f;
+  border-color: #74898a;
+}
+.btn-default:active:hover,
+.btn-default.active:hover,
+.open > .dropdown-toggle.btn-default:hover,
+.btn-default:active:focus,
+.btn-default.active:focus,
+.open > .dropdown-toggle.btn-default:focus,
+.btn-default:active.focus,
+.btn-default.active.focus,
+.open > .dropdown-toggle.btn-default.focus {
+  color: #ffffff;
+  background-color: #687b7c;
+  border-color: #566566;
+}
+.btn-default:active,
+.btn-default.active,
+.open > .dropdown-toggle.btn-default {
+  background-image: none;
+}
+.btn-default.disabled:hover,
+.btn-default[disabled]:hover,
+fieldset[disabled] .btn-default:hover,
+.btn-default.disabled:focus,
+.btn-default[disabled]:focus,
+fieldset[disabled] .btn-default:focus,
+.btn-default.disabled.focus,
+.btn-default[disabled].focus,
+fieldset[disabled] .btn-default.focus {
+  background-color: #95a5a6;
+  border-color: #95a5a6;
+}
+.btn-default .badge {
+  color: #95a5a6;
+  background-color: #ffffff;
+}
+.btn-primary {
+  color: #ffffff;
+  background-color: #2c3e50;
+  border-color: #2c3e50;
+}
+.btn-primary:focus,
+.btn-primary.focus {
+  color: #ffffff;
+  background-color: #1a242f;
+  border-color: #000000;
+}
+.btn-primary:hover {
+  color: #ffffff;
+  background-color: #1a242f;
+  border-color: #161f29;
+}
+.btn-primary:active,
+.btn-primary.active,
+.open > .dropdown-toggle.btn-primary {
+  color: #ffffff;
+  background-color: #1a242f;
+  border-color: #161f29;
+}
+.btn-primary:active:hover,
+.btn-primary.active:hover,
+.open > .dropdown-toggle.btn-primary:hover,
+.btn-primary:active:focus,
+.btn-primary.active:focus,
+.open > .dropdown-toggle.btn-primary:focus,
+.btn-primary:active.focus,
+.btn-primary.active.focus,
+.open > .dropdown-toggle.btn-primary.focus {
+  color: #ffffff;
+  background-color: #0d1318;
+  border-color: #000000;
+}
+.btn-primary:active,
+.btn-primary.active,
+.open > .dropdown-toggle.btn-primary {
+  background-image: none;
+}
+.btn-primary.disabled:hover,
+.btn-primary[disabled]:hover,
+fieldset[disabled] .btn-primary:hover,
+.btn-primary.disabled:focus,
+.btn-primary[disabled]:focus,
+fieldset[disabled] .btn-primary:focus,
+.btn-primary.disabled.focus,
+.btn-primary[disabled].focus,
+fieldset[disabled] .btn-primary.focus {
+  background-color: #2c3e50;
+  border-color: #2c3e50;
+}
+.btn-primary .badge {
+  color: #2c3e50;
+  background-color: #ffffff;
+}
+.btn-success {
+  color: #ffffff;
+  background-color: #18bc9c;
+  border-color: #18bc9c;
+}
+.btn-success:focus,
+.btn-success.focus {
+  color: #ffffff;
+  background-color: #128f76;
+  border-color: #0a4b3e;
+}
+.btn-success:hover {
+  color: #ffffff;
+  background-color: #128f76;
+  border-color: #11866f;
+}
+.btn-success:active,
+.btn-success.active,
+.open > .dropdown-toggle.btn-success {
+  color: #ffffff;
+  background-color: #128f76;
+  border-color: #11866f;
+}
+.btn-success:active:hover,
+.btn-success.active:hover,
+.open > .dropdown-toggle.btn-success:hover,
+.btn-success:active:focus,
+.btn-success.active:focus,
+.open > .dropdown-toggle.btn-success:focus,
+.btn-success:active.focus,
+.btn-success.active.focus,
+.open > .dropdown-toggle.btn-success.focus {
+  color: #ffffff;
+  background-color: #0e6f5c;
+  border-color: #0a4b3e;
+}
+.btn-success:active,
+.btn-success.active,
+.open > .dropdown-toggle.btn-success {
+  background-image: none;
+}
+.btn-success.disabled:hover,
+.btn-success[disabled]:hover,
+fieldset[disabled] .btn-success:hover,
+.btn-success.disabled:focus,
+.btn-success[disabled]:focus,
+fieldset[disabled] .btn-success:focus,
+.btn-success.disabled.focus,
+.btn-success[disabled].focus,
+fieldset[disabled] .btn-success.focus {
+  background-color: #18bc9c;
+  border-color: #18bc9c;
+}
+.btn-success .badge {
+  color: #18bc9c;
+  background-color: #ffffff;
+}
+.btn-info {
+  color: #ffffff;
+  background-color: #3498db;
+  border-color: #3498db;
+}
+.btn-info:focus,
+.btn-info.focus {
+  color: #ffffff;
+  background-color: #217dbb;
+  border-color: #16527a;
+}
+.btn-info:hover {
+  color: #ffffff;
+  background-color: #217dbb;
+  border-color: #2077b2;
+}
+.btn-info:active,
+.btn-info.active,
+.open > .dropdown-toggle.btn-info {
+  color: #ffffff;
+  background-color: #217dbb;
+  border-color: #2077b2;
+}
+.btn-info:active:hover,
+.btn-info.active:hover,
+.open > .dropdown-toggle.btn-info:hover,
+.btn-info:active:focus,
+.btn-info.active:focus,
+.open > .dropdown-toggle.btn-info:focus,
+.btn-info:active.focus,
+.btn-info.active.focus,
+.open > .dropdown-toggle.btn-info.focus {
+  color: #ffffff;
+  background-color: #1c699d;
+  border-color: #16527a;
+}
+.btn-info:active,
+.btn-info.active,
+.open > .dropdown-toggle.btn-info {
+  background-image: none;
+}
+.btn-info.disabled:hover,
+.btn-info[disabled]:hover,
+fieldset[disabled] .btn-info:hover,
+.btn-info.disabled:focus,
+.btn-info[disabled]:focus,
+fieldset[disabled] .btn-info:focus,
+.btn-info.disabled.focus,
+.btn-info[disabled].focus,
+fieldset[disabled] .btn-info.focus {
+  background-color: #3498db;
+  border-color: #3498db;
+}
+.btn-info .badge {
+  color: #3498db;
+  background-color: #ffffff;
+}
+.btn-warning {
+  color: #ffffff;
+  background-color: #f39c12;
+  border-color: #f39c12;
+}
+.btn-warning:focus,
+.btn-warning.focus {
+  color: #ffffff;
+  background-color: #c87f0a;
+  border-color: #7f5006;
+}
+.btn-warning:hover {
+  color: #ffffff;
+  background-color: #c87f0a;
+  border-color: #be780a;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open > .dropdown-toggle.btn-warning {
+  color: #ffffff;
+  background-color: #c87f0a;
+  border-color: #be780a;
+}
+.btn-warning:active:hover,
+.btn-warning.active:hover,
+.open > .dropdown-toggle.btn-warning:hover,
+.btn-warning:active:focus,
+.btn-warning.active:focus,
+.open > .dropdown-toggle.btn-warning:focus,
+.btn-warning:active.focus,
+.btn-warning.active.focus,
+.open > .dropdown-toggle.btn-warning.focus {
+  color: #ffffff;
+  background-color: #a66908;
+  border-color: #7f5006;
+}
+.btn-warning:active,
+.btn-warning.active,
+.open > .dropdown-toggle.btn-warning {
+  background-image: none;
+}
+.btn-warning.disabled:hover,
+.btn-warning[disabled]:hover,
+fieldset[disabled] .btn-warning:hover,
+.btn-warning.disabled:focus,
+.btn-warning[disabled]:focus,
+fieldset[disabled] .btn-warning:focus,
+.btn-warning.disabled.focus,
+.btn-warning[disabled].focus,
+fieldset[disabled] .btn-warning.focus {
+  background-color: #f39c12;
+  border-color: #f39c12;
+}
+.btn-warning .badge {
+  color: #f39c12;
+  background-color: #ffffff;
+}
+.btn-danger {
+  color: #ffffff;
+  background-color: #e74c3c;
+  border-color: #e74c3c;
+}
+.btn-danger:focus,
+.btn-danger.focus {
+  color: #ffffff;
+  background-color: #d62c1a;
+  border-color: #921e12;
+}
+.btn-danger:hover {
+  color: #ffffff;
+  background-color: #d62c1a;
+  border-color: #cd2a19;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open > .dropdown-toggle.btn-danger {
+  color: #ffffff;
+  background-color: #d62c1a;
+  border-color: #cd2a19;
+}
+.btn-danger:active:hover,
+.btn-danger.active:hover,
+.open > .dropdown-toggle.btn-danger:hover,
+.btn-danger:active:focus,
+.btn-danger.active:focus,
+.open > .dropdown-toggle.btn-danger:focus,
+.btn-danger:active.focus,
+.btn-danger.active.focus,
+.open > .dropdown-toggle.btn-danger.focus {
+  color: #ffffff;
+  background-color: #b62516;
+  border-color: #921e12;
+}
+.btn-danger:active,
+.btn-danger.active,
+.open > .dropdown-toggle.btn-danger {
+  background-image: none;
+}
+.btn-danger.disabled:hover,
+.btn-danger[disabled]:hover,
+fieldset[disabled] .btn-danger:hover,
+.btn-danger.disabled:focus,
+.btn-danger[disabled]:focus,
+fieldset[disabled] .btn-danger:focus,
+.btn-danger.disabled.focus,
+.btn-danger[disabled].focus,
+fieldset[disabled] .btn-danger.focus {
+  background-color: #e74c3c;
+  border-color: #e74c3c;
+}
+.btn-danger .badge {
+  color: #e74c3c;
+  background-color: #ffffff;
+}
+.btn-link {
+  color: #18bc9c;
+  font-weight: normal;
+  border-radius: 0;
+}
+.btn-link,
+.btn-link:active,
+.btn-link.active,
+.btn-link[disabled],
+fieldset[disabled] .btn-link {
+  background-color: transparent;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+.btn-link,
+.btn-link:hover,
+.btn-link:focus,
+.btn-link:active {
+  border-color: transparent;
+}
+.btn-link:hover,
+.btn-link:focus {
+  color: #18bc9c;
+  text-decoration: underline;
+  background-color: transparent;
+}
+.btn-link[disabled]:hover,
+fieldset[disabled] .btn-link:hover,
+.btn-link[disabled]:focus,
+fieldset[disabled] .btn-link:focus {
+  color: #b4bcc2;
+  text-decoration: none;
+}
+.btn-lg,
+.btn-group-lg > .btn {
+  padding: 18px 27px;
+  font-size: 19px;
+  line-height: 1.3333333;
+  border-radius: 6px;
+}
+.btn-sm,
+.btn-group-sm > .btn {
+  padding: 6px 9px;
+  font-size: 13px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+.btn-xs,
+.btn-group-xs > .btn {
+  padding: 1px 5px;
+  font-size: 13px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+.btn-block {
+  display: block;
+  width: 100%;
+}
+.btn-block + .btn-block {
+  margin-top: 5px;
+}
+input[type="submit"].btn-block,
+input[type="reset"].btn-block,
+input[type="button"].btn-block {
+  width: 100%;
+}
+.fade {
+  opacity: 0;
+  -webkit-transition: opacity 0.15s linear;
+  -o-transition: opacity 0.15s linear;
+  transition: opacity 0.15s linear;
+}
+.fade.in {
+  opacity: 1;
+}
+.collapse {
+  display: none;
+}
+.collapse.in {
+  display: block;
+}
+tr.collapse.in {
+  display: table-row;
+}
+tbody.collapse.in {
+  display: table-row-group;
+}
+.collapsing {
+  position: relative;
+  height: 0;
+  overflow: hidden;
+  -webkit-transition-property: height, visibility;
+  -o-transition-property: height, visibility;
+     transition-property: height, visibility;
+  -webkit-transition-duration: 0.35s;
+  -o-transition-duration: 0.35s;
+     transition-duration: 0.35s;
+  -webkit-transition-timing-function: ease;
+  -o-transition-timing-function: ease;
+     transition-timing-function: ease;
+}
+.caret {
+  display: inline-block;
+  width: 0;
+  height: 0;
+  margin-left: 2px;
+  vertical-align: middle;
+  border-top: 4px dashed;
+  border-top: 4px solid \9;
+  border-right: 4px solid transparent;
+  border-left: 4px solid transparent;
+}
+.dropup,
+.dropdown {
+  position: relative;
+}
+.dropdown-toggle:focus {
+  outline: 0;
+}
+.dropdown-menu {
+  position: absolute;
+  top: 100%;
+  left: 0;
+  z-index: 1000;
+  display: none;
+  float: left;
+  min-width: 160px;
+  padding: 5px 0;
+  margin: 2px 0 0;
+  list-style: none;
+  font-size: 15px;
+  text-align: left;
+  background-color: #ffffff;
+  border: 1px solid #cccccc;
+  border: 1px solid rgba(0, 0, 0, 0.15);
+  border-radius: 4px;
+  -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+  box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
+  -webkit-background-clip: padding-box;
+          background-clip: padding-box;
+}
+.dropdown-menu.pull-right {
+  right: 0;
+  left: auto;
+}
+.dropdown-menu .divider {
+  height: 1px;
+  margin: 9.5px 0;
+  overflow: hidden;
+  background-color: #e5e5e5;
+}
+.dropdown-menu > li > a {
+  display: block;
+  padding: 3px 20px;
+  clear: both;
+  font-weight: normal;
+  line-height: 1.42857143;
+  color: #7b8a8b;
+  white-space: nowrap;
+}
+.dropdown-menu > li > a:hover,
+.dropdown-menu > li > a:focus {
+  text-decoration: none;
+  color: #ffffff;
+  background-color: #2c3e50;
+}
+.dropdown-menu > .active > a,
+.dropdown-menu > .active > a:hover,
+.dropdown-menu > .active > a:focus {
+  color: #ffffff;
+  text-decoration: none;
+  outline: 0;
+  background-color: #2c3e50;
+}
+.dropdown-menu > .disabled > a,
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+  color: #b4bcc2;
+}
+.dropdown-menu > .disabled > a:hover,
+.dropdown-menu > .disabled > a:focus {
+  text-decoration: none;
+  background-color: transparent;
+  background-image: none;
+  filter: progid:DXImageTransform.Microsoft.gradient(enabled = false);
+  cursor: not-allowed;
+}
+.open > .dropdown-menu {
+  display: block;
+}
+.open > a {
+  outline: 0;
+}
+.dropdown-menu-right {
+  left: auto;
+  right: 0;
+}
+.dropdown-menu-left {
+  left: 0;
+  right: auto;
+}
+.dropdown-header {
+  display: block;
+  padding: 3px 20px;
+  font-size: 13px;
+  line-height: 1.42857143;
+  color: #b4bcc2;
+  white-space: nowrap;
+}
+.dropdown-backdrop {
+  position: fixed;
+  left: 0;
+  right: 0;
+  bottom: 0;
+  top: 0;
+  z-index: 990;
+}
+.pull-right > .dropdown-menu {
+  right: 0;
+  left: auto;
+}
+.dropup .caret,
+.navbar-fixed-bottom .dropdown .caret {
+  border-top: 0;
+  border-bottom: 4px dashed;
+  border-bottom: 4px solid \9;
+  content: "";
+}
+.dropup .dropdown-menu,
+.navbar-fixed-bottom .dropdown .dropdown-menu {
+  top: auto;
+  bottom: 100%;
+  margin-bottom: 2px;
+}
+@media (min-width: 768px) {
+  .navbar-right .dropdown-menu {
+    left: auto;
+    right: 0;
+  }
+  .navbar-right .dropdown-menu-left {
+    left: 0;
+    right: auto;
+  }
+}
+.btn-group,
+.btn-group-vertical {
+  position: relative;
+  display: inline-block;
+  vertical-align: middle;
+}
+.btn-group > .btn,
+.btn-group-vertical > .btn {
+  position: relative;
+  float: left;
+}
+.btn-group > .btn:hover,
+.btn-group-vertical > .btn:hover,
+.btn-group > .btn:focus,
+.btn-group-vertical > .btn:focus,
+.btn-group > .btn:active,
+.btn-group-vertical > .btn:active,
+.btn-group > .btn.active,
+.btn-group-vertical > .btn.active {
+  z-index: 2;
+}
+.btn-group .btn + .btn,
+.btn-group .btn + .btn-group,
+.btn-group .btn-group + .btn,
+.btn-group .btn-group + .btn-group {
+  margin-left: -1px;
+}
+.btn-toolbar {
+  margin-left: -5px;
+}
+.btn-toolbar .btn,
+.btn-toolbar .btn-group,
+.btn-toolbar .input-group {
+  float: left;
+}
+.btn-toolbar > .btn,
+.btn-toolbar > .btn-group,
+.btn-toolbar > .input-group {
+  margin-left: 5px;
+}
+.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
+  border-radius: 0;
+}
+.btn-group > .btn:first-child {
+  margin-left: 0;
+}
+.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.btn-group > .btn:last-child:not(:first-child),
+.btn-group > .dropdown-toggle:not(:first-child) {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.btn-group > .btn-group {
+  float: left;
+}
+.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
+  border-radius: 0;
+}
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.btn-group .dropdown-toggle:active,
+.btn-group.open .dropdown-toggle {
+  outline: 0;
+}
+.btn-group > .btn + .dropdown-toggle {
+  padding-left: 8px;
+  padding-right: 8px;
+}
+.btn-group > .btn-lg + .dropdown-toggle {
+  padding-left: 12px;
+  padding-right: 12px;
+}
+.btn-group.open .dropdown-toggle {
+  -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+  box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
+}
+.btn-group.open .dropdown-toggle.btn-link {
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+.btn .caret {
+  margin-left: 0;
+}
+.btn-lg .caret {
+  border-width: 5px 5px 0;
+  border-bottom-width: 0;
+}
+.dropup .btn-lg .caret {
+  border-width: 0 5px 5px;
+}
+.btn-group-vertical > .btn,
+.btn-group-vertical > .btn-group,
+.btn-group-vertical > .btn-group > .btn {
+  display: block;
+  float: none;
+  width: 100%;
+  max-width: 100%;
+}
+.btn-group-vertical > .btn-group > .btn {
+  float: none;
+}
+.btn-group-vertical > .btn + .btn,
+.btn-group-vertical > .btn + .btn-group,
+.btn-group-vertical > .btn-group + .btn,
+.btn-group-vertical > .btn-group + .btn-group {
+  margin-top: -1px;
+  margin-left: 0;
+}
+.btn-group-vertical > .btn:not(:first-child):not(:last-child) {
+  border-radius: 0;
+}
+.btn-group-vertical > .btn:first-child:not(:last-child) {
+  border-top-right-radius: 4px;
+  border-top-left-radius: 4px;
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn:last-child:not(:first-child) {
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+  border-bottom-right-radius: 4px;
+  border-bottom-left-radius: 4px;
+}
+.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn {
+  border-radius: 0;
+}
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child {
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+.btn-group-justified {
+  display: table;
+  width: 100%;
+  table-layout: fixed;
+  border-collapse: separate;
+}
+.btn-group-justified > .btn,
+.btn-group-justified > .btn-group {
+  float: none;
+  display: table-cell;
+  width: 1%;
+}
+.btn-group-justified > .btn-group .btn {
+  width: 100%;
+}
+.btn-group-justified > .btn-group .dropdown-menu {
+  left: auto;
+}
+[data-toggle="buttons"] > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="radio"],
+[data-toggle="buttons"] > .btn input[type="checkbox"],
+[data-toggle="buttons"] > .btn-group > .btn input[type="checkbox"] {
+  position: absolute;
+  clip: rect(0, 0, 0, 0);
+  pointer-events: none;
+}
+.input-group {
+  position: relative;
+  display: table;
+  border-collapse: separate;
+}
+.input-group[class*="col-"] {
+  float: none;
+  padding-left: 0;
+  padding-right: 0;
+}
+.input-group .form-control {
+  position: relative;
+  z-index: 2;
+  float: left;
+  width: 100%;
+  margin-bottom: 0;
+}
+.input-group .form-control:focus {
+  z-index: 3;
+}
+.input-group-lg > .form-control,
+.input-group-lg > .input-group-addon,
+.input-group-lg > .input-group-btn > .btn {
+  height: 66px;
+  padding: 18px 27px;
+  font-size: 19px;
+  line-height: 1.3333333;
+  border-radius: 6px;
+}
+select.input-group-lg > .form-control,
+select.input-group-lg > .input-group-addon,
+select.input-group-lg > .input-group-btn > .btn {
+  height: 66px;
+  line-height: 66px;
+}
+textarea.input-group-lg > .form-control,
+textarea.input-group-lg > .input-group-addon,
+textarea.input-group-lg > .input-group-btn > .btn,
+select[multiple].input-group-lg > .form-control,
+select[multiple].input-group-lg > .input-group-addon,
+select[multiple].input-group-lg > .input-group-btn > .btn {
+  height: auto;
+}
+.input-group-sm > .form-control,
+.input-group-sm > .input-group-addon,
+.input-group-sm > .input-group-btn > .btn {
+  height: 35px;
+  padding: 6px 9px;
+  font-size: 13px;
+  line-height: 1.5;
+  border-radius: 3px;
+}
+select.input-group-sm > .form-control,
+select.input-group-sm > .input-group-addon,
+select.input-group-sm > .input-group-btn > .btn {
+  height: 35px;
+  line-height: 35px;
+}
+textarea.input-group-sm > .form-control,
+textarea.input-group-sm > .input-group-addon,
+textarea.input-group-sm > .input-group-btn > .btn,
+select[multiple].input-group-sm > .form-control,
+select[multiple].input-group-sm > .input-group-addon,
+select[multiple].input-group-sm > .input-group-btn > .btn {
+  height: auto;
+}
+.input-group-addon,
+.input-group-btn,
+.input-group .form-control {
+  display: table-cell;
+}
+.input-group-addon:not(:first-child):not(:last-child),
+.input-group-btn:not(:first-child):not(:last-child),
+.input-group .form-control:not(:first-child):not(:last-child) {
+  border-radius: 0;
+}
+.input-group-addon,
+.input-group-btn {
+  width: 1%;
+  white-space: nowrap;
+  vertical-align: middle;
+}
+.input-group-addon {
+  padding: 10px 15px;
+  font-size: 15px;
+  font-weight: normal;
+  line-height: 1;
+  color: #2c3e50;
+  text-align: center;
+  background-color: #ecf0f1;
+  border: 1px solid #dce4ec;
+  border-radius: 4px;
+}
+.input-group-addon.input-sm {
+  padding: 6px 9px;
+  font-size: 13px;
+  border-radius: 3px;
+}
+.input-group-addon.input-lg {
+  padding: 18px 27px;
+  font-size: 19px;
+  border-radius: 6px;
+}
+.input-group-addon input[type="radio"],
+.input-group-addon input[type="checkbox"] {
+  margin-top: 0;
+}
+.input-group .form-control:first-child,
+.input-group-addon:first-child,
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group > .btn,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle),
+.input-group-btn:last-child > .btn-group:not(:last-child) > .btn {
+  border-bottom-right-radius: 0;
+  border-top-right-radius: 0;
+}
+.input-group-addon:first-child {
+  border-right: 0;
+}
+.input-group .form-control:last-child,
+.input-group-addon:last-child,
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group > .btn,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child),
+.input-group-btn:first-child > .btn-group:not(:first-child) > .btn {
+  border-bottom-left-radius: 0;
+  border-top-left-radius: 0;
+}
+.input-group-addon:last-child {
+  border-left: 0;
+}
+.input-group-btn {
+  position: relative;
+  font-size: 0;
+  white-space: nowrap;
+}
+.input-group-btn > .btn {
+  position: relative;
+}
+.input-group-btn > .btn + .btn {
+  margin-left: -1px;
+}
+.input-group-btn > .btn:hover,
+.input-group-btn > .btn:focus,
+.input-group-btn > .btn:active {
+  z-index: 2;
+}
+.input-group-btn:first-child > .btn,
+.input-group-btn:first-child > .btn-group {
+  margin-right: -1px;
+}
+.input-group-btn:last-child > .btn,
+.input-group-btn:last-child > .btn-group {
+  z-index: 2;
+  margin-left: -1px;
+}
+.nav {
+  margin-bottom: 0;
+  padding-left: 0;
+  list-style: none;
+}
+.nav > li {
+  position: relative;
+  display: block;
+}
+.nav > li > a {
+  position: relative;
+  display: block;
+  padding: 10px 15px;
+}
+.nav > li > a:hover,
+.nav > li > a:focus {
+  text-decoration: none;
+  background-color: #ecf0f1;
+}
+.nav > li.disabled > a {
+  color: #b4bcc2;
+}
+.nav > li.disabled > a:hover,
+.nav > li.disabled > a:focus {
+  color: #b4bcc2;
+  text-decoration: none;
+  background-color: transparent;
+  cursor: not-allowed;
+}
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+  background-color: #ecf0f1;
+  border-color: #18bc9c;
+}
+.nav .nav-divider {
+  height: 1px;
+  margin: 9.5px 0;
+  overflow: hidden;
+  background-color: #e5e5e5;
+}
+.nav > li > a > img {
+  max-width: none;
+}
+.nav-tabs {
+  border-bottom: 1px solid #ecf0f1;
+}
+.nav-tabs > li {
+  float: left;
+  margin-bottom: -1px;
+}
+.nav-tabs > li > a {
+  margin-right: 2px;
+  line-height: 1.42857143;
+  border: 1px solid transparent;
+  border-radius: 4px 4px 0 0;
+}
+.nav-tabs > li > a:hover {
+  border-color: #ecf0f1 #ecf0f1 #ecf0f1;
+}
+.nav-tabs > li.active > a,
+.nav-tabs > li.active > a:hover,
+.nav-tabs > li.active > a:focus {
+  color: #2c3e50;
+  background-color: #ffffff;
+  border: 1px solid #ecf0f1;
+  border-bottom-color: transparent;
+  cursor: default;
+}
+.nav-tabs.nav-justified {
+  width: 100%;
+  border-bottom: 0;
+}
+.nav-tabs.nav-justified > li {
+  float: none;
+}
+.nav-tabs.nav-justified > li > a {
+  text-align: center;
+  margin-bottom: 5px;
+}
+.nav-tabs.nav-justified > .dropdown .dropdown-menu {
+  top: auto;
+  left: auto;
+}
+@media (min-width: 768px) {
+  .nav-tabs.nav-justified > li {
+    display: table-cell;
+    width: 1%;
+  }
+  .nav-tabs.nav-justified > li > a {
+    margin-bottom: 0;
+  }
+}
+.nav-tabs.nav-justified > li > a {
+  margin-right: 0;
+  border-radius: 4px;
+}
+.nav-tabs.nav-justified > .active > a,
+.nav-tabs.nav-justified > .active > a:hover,
+.nav-tabs.nav-justified > .active > a:focus {
+  border: 1px solid #ecf0f1;
+}
+@media (min-width: 768px) {
+  .nav-tabs.nav-justified > li > a {
+    border-bottom: 1px solid #ecf0f1;
+    border-radius: 4px 4px 0 0;
+  }
+  .nav-tabs.nav-justified > .active > a,
+  .nav-tabs.nav-justified > .active > a:hover,
+  .nav-tabs.nav-justified > .active > a:focus {
+    border-bottom-color: #ffffff;
+  }
+}
+.nav-pills > li {
+  float: left;
+}
+.nav-pills > li > a {
+  border-radius: 4px;
+}
+.nav-pills > li + li {
+  margin-left: 2px;
+}
+.nav-pills > li.active > a,
+.nav-pills > li.active > a:hover,
+.nav-pills > li.active > a:focus {
+  color: #ffffff;
+  background-color: #2c3e50;
+}
+.nav-stacked > li {
+  float: none;
+}
+.nav-stacked > li + li {
+  margin-top: 2px;
+  margin-left: 0;
+}
+.nav-justified {
+  width: 100%;
+}
+.nav-justified > li {
+  float: none;
+}
+.nav-justified > li > a {
+  text-align: center;
+  margin-bottom: 5px;
+}
+.nav-justified > .dropdown .dropdown-menu {
+  top: auto;
+  left: auto;
+}
+@media (min-width: 768px) {
+  .nav-justified > li {
+    display: table-cell;
+    width: 1%;
+  }
+  .nav-justified > li > a {
+    margin-bottom: 0;
+  }
+}
+.nav-tabs-justified {
+  border-bottom: 0;
+}
+.nav-tabs-justified > li > a {
+  margin-right: 0;
+  border-radius: 4px;
+}
+.nav-tabs-justified > .active > a,
+.nav-tabs-justified > .active > a:hover,
+.nav-tabs-justified > .active > a:focus {
+  border: 1px solid #ecf0f1;
+}
+@media (min-width: 768px) {
+  .nav-tabs-justified > li > a {
+    border-bottom: 1px solid #ecf0f1;
+    border-radius: 4px 4px 0 0;
+  }
+  .nav-tabs-justified > .active > a,
+  .nav-tabs-justified > .active > a:hover,
+  .nav-tabs-justified > .active > a:focus {
+    border-bottom-color: #ffffff;
+  }
+}
+.tab-content > .tab-pane {
+  display: none;
+}
+.tab-content > .active {
+  display: block;
+}
+.nav-tabs .dropdown-menu {
+  margin-top: -1px;
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+.navbar {
+  position: relative;
+  min-height: 60px;
+  margin-bottom: 21px;
+  border: 1px solid transparent;
+}
+@media (min-width: 768px) {
+  .navbar {
+    border-radius: 4px;
+  }
+}
+@media (min-width: 768px) {
+  .navbar-header {
+    float: left;
+  }
+}
+.navbar-collapse {
+  overflow-x: visible;
+  padding-right: 15px;
+  padding-left: 15px;
+  border-top: 1px solid transparent;
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+          box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
+  -webkit-overflow-scrolling: touch;
+}
+.navbar-collapse.in {
+  overflow-y: auto;
+}
+@media (min-width: 768px) {
+  .navbar-collapse {
+    width: auto;
+    border-top: 0;
+    -webkit-box-shadow: none;
+            box-shadow: none;
+  }
+  .navbar-collapse.collapse {
+    display: block !important;
+    height: auto !important;
+    padding-bottom: 0;
+    overflow: visible !important;
+  }
+  .navbar-collapse.in {
+    overflow-y: visible;
+  }
+  .navbar-fixed-top .navbar-collapse,
+  .navbar-static-top .navbar-collapse,
+  .navbar-fixed-bottom .navbar-collapse {
+    padding-left: 0;
+    padding-right: 0;
+  }
+}
+.navbar-fixed-top .navbar-collapse,
+.navbar-fixed-bottom .navbar-collapse {
+  max-height: 340px;
+}
+@media (max-device-width: 480px) and (orientation: landscape) {
+  .navbar-fixed-top .navbar-collapse,
+  .navbar-fixed-bottom .navbar-collapse {
+    max-height: 200px;
+  }
+}
+.container > .navbar-header,
+.container-fluid > .navbar-header,
+.container > .navbar-collapse,
+.container-fluid > .navbar-collapse {
+  margin-right: -15px;
+  margin-left: -15px;
+}
+@media (min-width: 768px) {
+  .container > .navbar-header,
+  .container-fluid > .navbar-header,
+  .container > .navbar-collapse,
+  .container-fluid > .navbar-collapse {
+    margin-right: 0;
+    margin-left: 0;
+  }
+}
+.navbar-static-top {
+  z-index: 1000;
+  border-width: 0 0 1px;
+}
+@media (min-width: 768px) {
+  .navbar-static-top {
+    border-radius: 0;
+  }
+}
+.navbar-fixed-top,
+.navbar-fixed-bottom {
+  position: fixed;
+  right: 0;
+  left: 0;
+  z-index: 1030;
+}
+@media (min-width: 768px) {
+  .navbar-fixed-top,
+  .navbar-fixed-bottom {
+    border-radius: 0;
+  }
+}
+.navbar-fixed-top {
+  top: 0;
+  border-width: 0 0 1px;
+}
+.navbar-fixed-bottom {
+  bottom: 0;
+  margin-bottom: 0;
+  border-width: 1px 0 0;
+}
+.navbar-brand {
+  float: left;
+  padding: 19.5px 15px;
+  font-size: 19px;
+  line-height: 21px;
+  height: 60px;
+}
+.navbar-brand:hover,
+.navbar-brand:focus {
+  text-decoration: none;
+}
+.navbar-brand > img {
+  display: block;
+}
+@media (min-width: 768px) {
+  .navbar > .container .navbar-brand,
+  .navbar > .container-fluid .navbar-brand {
+    margin-left: -15px;
+  }
+}
+.navbar-toggle {
+  position: relative;
+  float: right;
+  margin-right: 15px;
+  padding: 9px 10px;
+  margin-top: 13px;
+  margin-bottom: 13px;
+  background-color: transparent;
+  background-image: none;
+  border: 1px solid transparent;
+  border-radius: 4px;
+}
+.navbar-toggle:focus {
+  outline: 0;
+}
+.navbar-toggle .icon-bar {
+  display: block;
+  width: 22px;
+  height: 2px;
+  border-radius: 1px;
+}
+.navbar-toggle .icon-bar + .icon-bar {
+  margin-top: 4px;
+}
+@media (min-width: 768px) {
+  .navbar-toggle {
+    display: none;
+  }
+}
+.navbar-nav {
+  margin: 9.75px -15px;
+}
+.navbar-nav > li > a {
+  padding-top: 10px;
+  padding-bottom: 10px;
+  line-height: 21px;
+}
+@media (max-width: 767px) {
+  .navbar-nav .open .dropdown-menu {
+    position: static;
+    float: none;
+    width: auto;
+    margin-top: 0;
+    background-color: transparent;
+    border: 0;
+    -webkit-box-shadow: none;
+            box-shadow: none;
+  }
+  .navbar-nav .open .dropdown-menu > li > a,
+  .navbar-nav .open .dropdown-menu .dropdown-header {
+    padding: 5px 15px 5px 25px;
+  }
+  .navbar-nav .open .dropdown-menu > li > a {
+    line-height: 21px;
+  }
+  .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-nav .open .dropdown-menu > li > a:focus {
+    background-image: none;
+  }
+}
+@media (min-width: 768px) {
+  .navbar-nav {
+    float: left;
+    margin: 0;
+  }
+  .navbar-nav > li {
+    float: left;
+  }
+  .navbar-nav > li > a {
+    padding-top: 19.5px;
+    padding-bottom: 19.5px;
+  }
+}
+.navbar-form {
+  margin-left: -15px;
+  margin-right: -15px;
+  padding: 10px 15px;
+  border-top: 1px solid transparent;
+  border-bottom: 1px solid transparent;
+  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
+  margin-top: 7.5px;
+  margin-bottom: 7.5px;
+}
+@media (min-width: 768px) {
+  .navbar-form .form-group {
+    display: inline-block;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .form-control {
+    display: inline-block;
+    width: auto;
+    vertical-align: middle;
+  }
+  .navbar-form .form-control-static {
+    display: inline-block;
+  }
+  .navbar-form .input-group {
+    display: inline-table;
+    vertical-align: middle;
+  }
+  .navbar-form .input-group .input-group-addon,
+  .navbar-form .input-group .input-group-btn,
+  .navbar-form .input-group .form-control {
+    width: auto;
+  }
+  .navbar-form .input-group > .form-control {
+    width: 100%;
+  }
+  .navbar-form .control-label {
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .radio,
+  .navbar-form .checkbox {
+    display: inline-block;
+    margin-top: 0;
+    margin-bottom: 0;
+    vertical-align: middle;
+  }
+  .navbar-form .radio label,
+  .navbar-form .checkbox label {
+    padding-left: 0;
+  }
+  .navbar-form .radio input[type="radio"],
+  .navbar-form .checkbox input[type="checkbox"] {
+    position: relative;
+    margin-left: 0;
+  }
+  .navbar-form .has-feedback .form-control-feedback {
+    top: 0;
+  }
+}
+@media (max-width: 767px) {
+  .navbar-form .form-group {
+    margin-bottom: 5px;
+  }
+  .navbar-form .form-group:last-child {
+    margin-bottom: 0;
+  }
+}
+@media (min-width: 768px) {
+  .navbar-form {
+    width: auto;
+    border: 0;
+    margin-left: 0;
+    margin-right: 0;
+    padding-top: 0;
+    padding-bottom: 0;
+    -webkit-box-shadow: none;
+    box-shadow: none;
+  }
+}
+.navbar-nav > li > .dropdown-menu {
+  margin-top: 0;
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+  margin-bottom: 0;
+  border-top-right-radius: 4px;
+  border-top-left-radius: 4px;
+  border-bottom-right-radius: 0;
+  border-bottom-left-radius: 0;
+}
+.navbar-btn {
+  margin-top: 7.5px;
+  margin-bottom: 7.5px;
+}
+.navbar-btn.btn-sm {
+  margin-top: 12.5px;
+  margin-bottom: 12.5px;
+}
+.navbar-btn.btn-xs {
+  margin-top: 19px;
+  margin-bottom: 19px;
+}
+.navbar-text {
+  margin-top: 19.5px;
+  margin-bottom: 19.5px;
+}
+@media (min-width: 768px) {
+  .navbar-text {
+    float: left;
+    margin-left: 15px;
+    margin-right: 15px;
+  }
+}
+@media (min-width: 768px) {
+  .navbar-left {
+    float: left !important;
+  }
+  .navbar-right {
+    float: right !important;
+    margin-right: -15px;
+  }
+  .navbar-right ~ .navbar-right {
+    margin-right: 0;
+  }
+}
+.navbar-default {
+  background-color: #2c3e50;
+  border-color: transparent;
+}
+.navbar-default .navbar-brand {
+  color: #ffffff;
+}
+.navbar-default .navbar-brand:hover,
+.navbar-default .navbar-brand:focus {
+  color: #18bc9c;
+  background-color: transparent;
+}
+.navbar-default .navbar-text {
+  color: #ffffff;
+}
+.navbar-default .navbar-nav > li > a {
+  color: #ffffff;
+}
+.navbar-default .navbar-nav > li > a:hover,
+.navbar-default .navbar-nav > li > a:focus {
+  color: #18bc9c;
+  background-color: transparent;
+}
+.navbar-default .navbar-nav > .active > a,
+.navbar-default .navbar-nav > .active > a:hover,
+.navbar-default .navbar-nav > .active > a:focus {
+  color: #ffffff;
+  background-color: #1a242f;
+}
+.navbar-default .navbar-nav > .disabled > a,
+.navbar-default .navbar-nav > .disabled > a:hover,
+.navbar-default .navbar-nav > .disabled > a:focus {
+  color: #cccccc;
+  background-color: transparent;
+}
+.navbar-default .navbar-toggle {
+  border-color: #1a242f;
+}
+.navbar-default .navbar-toggle:hover,
+.navbar-default .navbar-toggle:focus {
+  background-color: #1a242f;
+}
+.navbar-default .navbar-toggle .icon-bar {
+  background-color: #ffffff;
+}
+.navbar-default .navbar-collapse,
+.navbar-default .navbar-form {
+  border-color: transparent;
+}
+.navbar-default .navbar-nav > .open > a,
+.navbar-default .navbar-nav > .open > a:hover,
+.navbar-default .navbar-nav > .open > a:focus {
+  background-color: #1a242f;
+  color: #ffffff;
+}
+@media (max-width: 767px) {
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a {
+    color: #ffffff;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
+    color: #18bc9c;
+    background-color: transparent;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a,
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus {
+    color: #ffffff;
+    background-color: #1a242f;
+  }
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a,
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+  .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+    color: #cccccc;
+    background-color: transparent;
+  }
+}
+.navbar-default .navbar-link {
+  color: #ffffff;
+}
+.navbar-default .navbar-link:hover {
+  color: #18bc9c;
+}
+.navbar-default .btn-link {
+  color: #ffffff;
+}
+.navbar-default .btn-link:hover,
+.navbar-default .btn-link:focus {
+  color: #18bc9c;
+}
+.navbar-default .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-default .btn-link:hover,
+.navbar-default .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-default .btn-link:focus {
+  color: #cccccc;
+}
+.navbar-inverse {
+  background-color: #18bc9c;
+  border-color: transparent;
+}
+.navbar-inverse .navbar-brand {
+  color: #ffffff;
+}
+.navbar-inverse .navbar-brand:hover,
+.navbar-inverse .navbar-brand:focus {
+  color: #2c3e50;
+  background-color: transparent;
+}
+.navbar-inverse .navbar-text {
+  color: #ffffff;
+}
+.navbar-inverse .navbar-nav > li > a {
+  color: #ffffff;
+}
+.navbar-inverse .navbar-nav > li > a:hover,
+.navbar-inverse .navbar-nav > li > a:focus {
+  color: #2c3e50;
+  background-color: transparent;
+}
+.navbar-inverse .navbar-nav > .active > a,
+.navbar-inverse .navbar-nav > .active > a:hover,
+.navbar-inverse .navbar-nav > .active > a:focus {
+  color: #ffffff;
+  background-color: #15a589;
+}
+.navbar-inverse .navbar-nav > .disabled > a,
+.navbar-inverse .navbar-nav > .disabled > a:hover,
+.navbar-inverse .navbar-nav > .disabled > a:focus {
+  color: #cccccc;
+  background-color: transparent;
+}
+.navbar-inverse .navbar-toggle {
+  border-color: #128f76;
+}
+.navbar-inverse .navbar-toggle:hover,
+.navbar-inverse .navbar-toggle:focus {
+  background-color: #128f76;
+}
+.navbar-inverse .navbar-toggle .icon-bar {
+  background-color: #ffffff;
+}
+.navbar-inverse .navbar-collapse,
+.navbar-inverse .navbar-form {
+  border-color: #149c82;
+}
+.navbar-inverse .navbar-nav > .open > a,
+.navbar-inverse .navbar-nav > .open > a:hover,
+.navbar-inverse .navbar-nav > .open > a:focus {
+  background-color: #15a589;
+  color: #ffffff;
+}
+@media (max-width: 767px) {
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header {
+    border-color: transparent;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu .divider {
+    background-color: transparent;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a {
+    color: #ffffff;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus {
+    color: #2c3e50;
+    background-color: transparent;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus {
+    color: #ffffff;
+    background-color: #15a589;
+  }
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover,
+  .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus {
+    color: #cccccc;
+    background-color: transparent;
+  }
+}
+.navbar-inverse .navbar-link {
+  color: #ffffff;
+}
+.navbar-inverse .navbar-link:hover {
+  color: #2c3e50;
+}
+.navbar-inverse .btn-link {
+  color: #ffffff;
+}
+.navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link:focus {
+  color: #2c3e50;
+}
+.navbar-inverse .btn-link[disabled]:hover,
+fieldset[disabled] .navbar-inverse .btn-link:hover,
+.navbar-inverse .btn-link[disabled]:focus,
+fieldset[disabled] .navbar-inverse .btn-link:focus {
+  color: #cccccc;
+}
+.breadcrumb {
+  padding: 8px 15px;
+  margin-bottom: 21px;
+  list-style: none;
+  background-color: #ecf0f1;
+  border-radius: 4px;
+}
+.breadcrumb > li {
+  display: inline-block;
+}
+.breadcrumb > li + li:before {
+  content: "/\00a0";
+  padding: 0 5px;
+  color: #cccccc;
+}
+.breadcrumb > .active {
+  color: #95a5a6;
+}
+.pagination {
+  display: inline-block;
+  padding-left: 0;
+  margin: 21px 0;
+  border-radius: 4px;
+}
+.pagination > li {
+  display: inline;
+}
+.pagination > li > a,
+.pagination > li > span {
+  position: relative;
+  float: left;
+  padding: 10px 15px;
+  line-height: 1.42857143;
+  text-decoration: none;
+  color: #ffffff;
+  background-color: #18bc9c;
+  border: 1px solid transparent;
+  margin-left: -1px;
+}
+.pagination > li:first-child > a,
+.pagination > li:first-child > span {
+  margin-left: 0;
+  border-bottom-left-radius: 4px;
+  border-top-left-radius: 4px;
+}
+.pagination > li:last-child > a,
+.pagination > li:last-child > span {
+  border-bottom-right-radius: 4px;
+  border-top-right-radius: 4px;
+}
+.pagination > li > a:hover,
+.pagination > li > span:hover,
+.pagination > li > a:focus,
+.pagination > li > span:focus {
+  z-index: 2;
+  color: #ffffff;
+  background-color: #0f7864;
+  border-color: transparent;
+}
+.pagination > .active > a,
+.pagination > .active > span,
+.pagination > .active > a:hover,
+.pagination > .active > span:hover,
+.pagination > .active > a:focus,
+.pagination > .active > span:focus {
+  z-index: 3;
+  color: #ffffff;
+  background-color: #0f7864;
+  border-color: transparent;
+  cursor: default;
+}
+.pagination > .disabled > span,
+.pagination > .disabled > span:hover,
+.pagination > .disabled > span:focus,
+.pagination > .disabled > a,
+.pagination > .disabled > a:hover,
+.pagination > .disabled > a:focus {
+  color: #ecf0f1;
+  background-color: #3be6c4;
+  border-color: transparent;
+  cursor: not-allowed;
+}
+.pagination-lg > li > a,
+.pagination-lg > li > span {
+  padding: 18px 27px;
+  font-size: 19px;
+  line-height: 1.3333333;
+}
+.pagination-lg > li:first-child > a,
+.pagination-lg > li:first-child > span {
+  border-bottom-left-radius: 6px;
+  border-top-left-radius: 6px;
+}
+.pagination-lg > li:last-child > a,
+.pagination-lg > li:last-child > span {
+  border-bottom-right-radius: 6px;
+  border-top-right-radius: 6px;
+}
+.pagination-sm > li > a,
+.pagination-sm > li > span {
+  padding: 6px 9px;
+  font-size: 13px;
+  line-height: 1.5;
+}
+.pagination-sm > li:first-child > a,
+.pagination-sm > li:first-child > span {
+  border-bottom-left-radius: 3px;
+  border-top-left-radius: 3px;
+}
+.pagination-sm > li:last-child > a,
+.pagination-sm > li:last-child > span {
+  border-bottom-right-radius: 3px;
+  border-top-right-radius: 3px;
+}
+.pager {
+  padding-left: 0;
+  margin: 21px 0;
+  list-style: none;
+  text-align: center;
+}
+.pager li {
+  display: inline;
+}
+.pager li > a,
+.pager li > span {
+  display: inline-block;
+  padding: 5px 14px;
+  background-color: #18bc9c;
+  border: 1px solid transparent;
+  border-radius: 15px;
+}
+.pager li > a:hover,
+.pager li > a:focus {
+  text-decoration: none;
+  background-color: #0f7864;
+}
+.pager .next > a,
+.pager .next > span {
+  float: right;
+}
+.pager .previous > a,
+.pager .previous > span {
+  float: left;
+}
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+  color: #ffffff;
+  background-color: #18bc9c;
+  cursor: not-allowed;
+}
+.label {
+  display: inline;
+  padding: .2em .6em .3em;
+  font-size: 75%;
+  font-weight: bold;
+  line-height: 1;
+  color: #ffffff;
+  text-align: center;
+  white-space: nowrap;
+  vertical-align: baseline;
+  border-radius: .25em;
+}
+a.label:hover,
+a.label:focus {
+  color: #ffffff;
+  text-decoration: none;
+  cursor: pointer;
+}
+.label:empty {
+  display: none;
+}
+.btn .label {
+  position: relative;
+  top: -1px;
+}
+.label-default {
+  background-color: #95a5a6;
+}
+.label-default[href]:hover,
+.label-default[href]:focus {
+  background-color: #798d8f;
+}
+.label-primary {
+  background-color: #2c3e50;
+}
+.label-primary[href]:hover,
+.label-primary[href]:focus {
+  background-color: #1a242f;
+}
+.label-success {
+  background-color: #18bc9c;
+}
+.label-success[href]:hover,
+.label-success[href]:focus {
+  background-color: #128f76;
+}
+.label-info {
+  background-color: #3498db;
+}
+.label-info[href]:hover,
+.label-info[href]:focus {
+  background-color: #217dbb;
+}
+.label-warning {
+  background-color: #f39c12;
+}
+.label-warning[href]:hover,
+.label-warning[href]:focus {
+  background-color: #c87f0a;
+}
+.label-danger {
+  background-color: #e74c3c;
+}
+.label-danger[href]:hover,
+.label-danger[href]:focus {
+  background-color: #d62c1a;
+}
+.badge {
+  display: inline-block;
+  min-width: 10px;
+  padding: 3px 7px;
+  font-size: 13px;
+  font-weight: bold;
+  color: #ffffff;
+  line-height: 1;
+  vertical-align: middle;
+  white-space: nowrap;
+  text-align: center;
+  background-color: #2c3e50;
+  border-radius: 10px;
+}
+.badge:empty {
+  display: none;
+}
+.btn .badge {
+  position: relative;
+  top: -1px;
+}
+.btn-xs .badge,
+.btn-group-xs > .btn .badge {
+  top: 0;
+  padding: 1px 5px;
+}
+a.badge:hover,
+a.badge:focus {
+  color: #ffffff;
+  text-decoration: none;
+  cursor: pointer;
+}
+.list-group-item.active > .badge,
+.nav-pills > .active > a > .badge {
+  color: #2c3e50;
+  background-color: #ffffff;
+}
+.list-group-item > .badge {
+  float: right;
+}
+.list-group-item > .badge + .badge {
+  margin-right: 5px;
+}
+.nav-pills > li > a > .badge {
+  margin-left: 3px;
+}
+.jumbotron {
+  padding-top: 30px;
+  padding-bottom: 30px;
+  margin-bottom: 30px;
+  color: inherit;
+  background-color: #ecf0f1;
+}
+.jumbotron h1,
+.jumbotron .h1 {
+  color: inherit;
+}
+.jumbotron p {
+  margin-bottom: 15px;
+  font-size: 23px;
+  font-weight: 200;
+}
+.jumbotron > hr {
+  border-top-color: #cfd9db;
+}
+.container .jumbotron,
+.container-fluid .jumbotron {
+  border-radius: 6px;
+  padding-left: 15px;
+  padding-right: 15px;
+}
+.jumbotron .container {
+  max-width: 100%;
+}
+@media screen and (min-width: 768px) {
+  .jumbotron {
+    padding-top: 48px;
+    padding-bottom: 48px;
+  }
+  .container .jumbotron,
+  .container-fluid .jumbotron {
+    padding-left: 60px;
+    padding-right: 60px;
+  }
+  .jumbotron h1,
+  .jumbotron .h1 {
+    font-size: 68px;
+  }
+}
+.thumbnail {
+  display: block;
+  padding: 4px;
+  margin-bottom: 21px;
+  line-height: 1.42857143;
+  background-color: #ffffff;
+  border: 1px solid #ecf0f1;
+  border-radius: 4px;
+  -webkit-transition: border 0.2s ease-in-out;
+  -o-transition: border 0.2s ease-in-out;
+  transition: border 0.2s ease-in-out;
+}
+.thumbnail > img,
+.thumbnail a > img {
+  margin-left: auto;
+  margin-right: auto;
+}
+a.thumbnail:hover,
+a.thumbnail:focus,
+a.thumbnail.active {
+  border-color: #18bc9c;
+}
+.thumbnail .caption {
+  padding: 9px;
+  color: #2c3e50;
+}
+.alert {
+  padding: 15px;
+  margin-bottom: 21px;
+  border: 1px solid transparent;
+  border-radius: 4px;
+}
+.alert h4 {
+  margin-top: 0;
+  color: inherit;
+}
+.alert .alert-link {
+  font-weight: bold;
+}
+.alert > p,
+.alert > ul {
+  margin-bottom: 0;
+}
+.alert > p + p {
+  margin-top: 5px;
+}
+.alert-dismissable,
+.alert-dismissible {
+  padding-right: 35px;
+}
+.alert-dismissable .close,
+.alert-dismissible .close {
+  position: relative;
+  top: -2px;
+  right: -21px;
+  color: inherit;
+}
+.alert-success {
+  background-color: #18bc9c;
+  border-color: #18bc9c;
+  color: #ffffff;
+}
+.alert-success hr {
+  border-top-color: #15a589;
+}
+.alert-success .alert-link {
+  color: #e6e6e6;
+}
+.alert-info {
+  background-color: #3498db;
+  border-color: #3498db;
+  color: #ffffff;
+}
+.alert-info hr {
+  border-top-color: #258cd1;
+}
+.alert-info .alert-link {
+  color: #e6e6e6;
+}
+.alert-warning {
+  background-color: #f39c12;
+  border-color: #f39c12;
+  color: #ffffff;
+}
+.alert-warning hr {
+  border-top-color: #e08e0b;
+}
+.alert-warning .alert-link {
+  color: #e6e6e6;
+}
+.alert-danger {
+  background-color: #e74c3c;
+  border-color: #e74c3c;
+  color: #ffffff;
+}
+.alert-danger hr {
+  border-top-color: #e43725;
+}
+.alert-danger .alert-link {
+  color: #e6e6e6;
+}
+@-webkit-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+@-o-keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+@keyframes progress-bar-stripes {
+  from {
+    background-position: 40px 0;
+  }
+  to {
+    background-position: 0 0;
+  }
+}
+.progress {
+  overflow: hidden;
+  height: 21px;
+  margin-bottom: 21px;
+  background-color: #ecf0f1;
+  border-radius: 4px;
+  -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+  box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
+}
+.progress-bar {
+  float: left;
+  width: 0%;
+  height: 100%;
+  font-size: 13px;
+  line-height: 21px;
+  color: #ffffff;
+  text-align: center;
+  background-color: #2c3e50;
+  -webkit-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-transition: width 0.6s ease;
+  -o-transition: width 0.6s ease;
+  transition: width 0.6s ease;
+}
+.progress-striped .progress-bar,
+.progress-bar-striped {
+  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: -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;
+          background-size: 40px 40px;
+}
+.progress.active .progress-bar,
+.progress-bar.active {
+  -webkit-animation: progress-bar-stripes 2s linear infinite;
+  -o-animation: progress-bar-stripes 2s linear infinite;
+  animation: progress-bar-stripes 2s linear infinite;
+}
+.progress-bar-success {
+  background-color: #18bc9c;
+}
+.progress-striped .progress-bar-success {
+  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: -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-bar-info {
+  background-color: #3498db;
+}
+.progress-striped .progress-bar-info {
+  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: -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-bar-warning {
+  background-color: #f39c12;
+}
+.progress-striped .progress-bar-warning {
+  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: -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-bar-danger {
+  background-color: #e74c3c;
+}
+.progress-striped .progress-bar-danger {
+  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: -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);
+}
+.media {
+  margin-top: 15px;
+}
+.media:first-child {
+  margin-top: 0;
+}
+.media,
+.media-body {
+  zoom: 1;
+  overflow: hidden;
+}
+.media-body {
+  width: 10000px;
+}
+.media-object {
+  display: block;
+}
+.media-object.img-thumbnail {
+  max-width: none;
+}
+.media-right,
+.media > .pull-right {
+  padding-left: 10px;
+}
+.media-left,
+.media > .pull-left {
+  padding-right: 10px;
+}
+.media-left,
+.media-right,
+.media-body {
+  display: table-cell;
+  vertical-align: top;
+}
+.media-middle {
+  vertical-align: middle;
+}
+.media-bottom {
+  vertical-align: bottom;
+}
+.media-heading {
+  margin-top: 0;
+  margin-bottom: 5px;
+}
+.media-list {
+  padding-left: 0;
+  list-style: none;
+}
+.list-group {
+  margin-bottom: 20px;
+  padding-left: 0;
+}
+.list-group-item {
+  position: relative;
+  display: block;
+  padding: 10px 15px;
+  margin-bottom: -1px;
+  background-color: #ffffff;
+  border: 1px solid #ecf0f1;
+}
+.list-group-item:first-child {
+  border-top-right-radius: 4px;
+  border-top-left-radius: 4px;
+}
+.list-group-item:last-child {
+  margin-bottom: 0;
+  border-bottom-right-radius: 4px;
+  border-bottom-left-radius: 4px;
+}
+a.list-group-item,
+button.list-group-item {
+  color: #555555;
+}
+a.list-group-item .list-group-item-heading,
+button.list-group-item .list-group-item-heading {
+  color: #333333;
+}
+a.list-group-item:hover,
+button.list-group-item:hover,
+a.list-group-item:focus,
+button.list-group-item:focus {
+  text-decoration: none;
+  color: #555555;
+  background-color: #ecf0f1;
+}
+button.list-group-item {
+  width: 100%;
+  text-align: left;
+}
+.list-group-item.disabled,
+.list-group-item.disabled:hover,
+.list-group-item.disabled:focus {
+  background-color: #ecf0f1;
+  color: #b4bcc2;
+  cursor: not-allowed;
+}
+.list-group-item.disabled .list-group-item-heading,
+.list-group-item.disabled:hover .list-group-item-heading,
+.list-group-item.disabled:focus .list-group-item-heading {
+  color: inherit;
+}
+.list-group-item.disabled .list-group-item-text,
+.list-group-item.disabled:hover .list-group-item-text,
+.list-group-item.disabled:focus .list-group-item-text {
+  color: #b4bcc2;
+}
+.list-group-item.active,
+.list-group-item.active:hover,
+.list-group-item.active:focus {
+  z-index: 2;
+  color: #ffffff;
+  background-color: #2c3e50;
+  border-color: #2c3e50;
+}
+.list-group-item.active .list-group-item-heading,
+.list-group-item.active:hover .list-group-item-heading,
+.list-group-item.active:focus .list-group-item-heading,
+.list-group-item.active .list-group-item-heading > small,
+.list-group-item.active:hover .list-group-item-heading > small,
+.list-group-item.active:focus .list-group-item-heading > small,
+.list-group-item.active .list-group-item-heading > .small,
+.list-group-item.active:hover .list-group-item-heading > .small,
+.list-group-item.active:focus .list-group-item-heading > .small {
+  color: inherit;
+}
+.list-group-item.active .list-group-item-text,
+.list-group-item.active:hover .list-group-item-text,
+.list-group-item.active:focus .list-group-item-text {
+  color: #8aa4be;
+}
+.list-group-item-success {
+  color: #ffffff;
+  background-color: #18bc9c;
+}
+a.list-group-item-success,
+button.list-group-item-success {
+  color: #ffffff;
+}
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
+  color: inherit;
+}
+a.list-group-item-success:hover,
+button.list-group-item-success:hover,
+a.list-group-item-success:focus,
+button.list-group-item-success:focus {
+  color: #ffffff;
+  background-color: #15a589;
+}
+a.list-group-item-success.active,
+button.list-group-item-success.active,
+a.list-group-item-success.active:hover,
+button.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus,
+button.list-group-item-success.active:focus {
+  color: #fff;
+  background-color: #ffffff;
+  border-color: #ffffff;
+}
+.list-group-item-info {
+  color: #ffffff;
+  background-color: #3498db;
+}
+a.list-group-item-info,
+button.list-group-item-info {
+  color: #ffffff;
+}
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
+  color: inherit;
+}
+a.list-group-item-info:hover,
+button.list-group-item-info:hover,
+a.list-group-item-info:focus,
+button.list-group-item-info:focus {
+  color: #ffffff;
+  background-color: #258cd1;
+}
+a.list-group-item-info.active,
+button.list-group-item-info.active,
+a.list-group-item-info.active:hover,
+button.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus,
+button.list-group-item-info.active:focus {
+  color: #fff;
+  background-color: #ffffff;
+  border-color: #ffffff;
+}
+.list-group-item-warning {
+  color: #ffffff;
+  background-color: #f39c12;
+}
+a.list-group-item-warning,
+button.list-group-item-warning {
+  color: #ffffff;
+}
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
+  color: inherit;
+}
+a.list-group-item-warning:hover,
+button.list-group-item-warning:hover,
+a.list-group-item-warning:focus,
+button.list-group-item-warning:focus {
+  color: #ffffff;
+  background-color: #e08e0b;
+}
+a.list-group-item-warning.active,
+button.list-group-item-warning.active,
+a.list-group-item-warning.active:hover,
+button.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus,
+button.list-group-item-warning.active:focus {
+  color: #fff;
+  background-color: #ffffff;
+  border-color: #ffffff;
+}
+.list-group-item-danger {
+  color: #ffffff;
+  background-color: #e74c3c;
+}
+a.list-group-item-danger,
+button.list-group-item-danger {
+  color: #ffffff;
+}
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
+  color: inherit;
+}
+a.list-group-item-danger:hover,
+button.list-group-item-danger:hover,
+a.list-group-item-danger:focus,
+button.list-group-item-danger:focus {
+  color: #ffffff;
+  background-color: #e43725;
+}
+a.list-group-item-danger.active,
+button.list-group-item-danger.active,
+a.list-group-item-danger.active:hover,
+button.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus,
+button.list-group-item-danger.active:focus {
+  color: #fff;
+  background-color: #ffffff;
+  border-color: #ffffff;
+}
+.list-group-item-heading {
+  margin-top: 0;
+  margin-bottom: 5px;
+}
+.list-group-item-text {
+  margin-bottom: 0;
+  line-height: 1.3;
+}
+.panel {
+  margin-bottom: 21px;
+  background-color: #ffffff;
+  border: 1px solid transparent;
+  border-radius: 4px;
+  -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
+}
+.panel-body {
+  padding: 15px;
+}
+.panel-heading {
+  padding: 10px 15px;
+  border-bottom: 1px solid transparent;
+  border-top-right-radius: 3px;
+  border-top-left-radius: 3px;
+}
+.panel-heading > .dropdown .dropdown-toggle {
+  color: inherit;
+}
+.panel-title {
+  margin-top: 0;
+  margin-bottom: 0;
+  font-size: 17px;
+  color: inherit;
+}
+.panel-title > a,
+.panel-title > small,
+.panel-title > .small,
+.panel-title > small > a,
+.panel-title > .small > a {
+  color: inherit;
+}
+.panel-footer {
+  padding: 10px 15px;
+  background-color: #ecf0f1;
+  border-top: 1px solid #ecf0f1;
+  border-bottom-right-radius: 3px;
+  border-bottom-left-radius: 3px;
+}
+.panel > .list-group,
+.panel > .panel-collapse > .list-group {
+  margin-bottom: 0;
+}
+.panel > .list-group .list-group-item,
+.panel > .panel-collapse > .list-group .list-group-item {
+  border-width: 1px 0;
+  border-radius: 0;
+}
+.panel > .list-group:first-child .list-group-item:first-child,
+.panel > .panel-collapse > .list-group:first-child .list-group-item:first-child {
+  border-top: 0;
+  border-top-right-radius: 3px;
+  border-top-left-radius: 3px;
+}
+.panel > .list-group:last-child .list-group-item:last-child,
+.panel > .panel-collapse > .list-group:last-child .list-group-item:last-child {
+  border-bottom: 0;
+  border-bottom-right-radius: 3px;
+  border-bottom-left-radius: 3px;
+}
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+  border-top-right-radius: 0;
+  border-top-left-radius: 0;
+}
+.panel-heading + .list-group .list-group-item:first-child {
+  border-top-width: 0;
+}
+.list-group + .panel-footer {
+  border-top-width: 0;
+}
+.panel > .table,
+.panel > .table-responsive > .table,
+.panel > .panel-collapse > .table {
+  margin-bottom: 0;
+}
+.panel > .table caption,
+.panel > .table-responsive > .table caption,
+.panel > .panel-collapse > .table caption {
+  padding-left: 15px;
+  padding-right: 15px;
+}
+.panel > .table:first-child,
+.panel > .table-responsive:first-child > .table:first-child {
+  border-top-right-radius: 3px;
+  border-top-left-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child {
+  border-top-left-radius: 3px;
+  border-top-right-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:first-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child {
+  border-top-left-radius: 3px;
+}
+.panel > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child,
+.panel > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child,
+.panel > .table:first-child > tbody:first-child > tr:first-child th:last-child,
+.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child {
+  border-top-right-radius: 3px;
+}
+.panel > .table:last-child,
+.panel > .table-responsive:last-child > .table:last-child {
+  border-bottom-right-radius: 3px;
+  border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child {
+  border-bottom-left-radius: 3px;
+  border-bottom-right-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child {
+  border-bottom-left-radius: 3px;
+}
+.panel > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child,
+.panel > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child,
+.panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child,
+.panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child {
+  border-bottom-right-radius: 3px;
+}
+.panel > .panel-body + .table,
+.panel > .panel-body + .table-responsive,
+.panel > .table + .panel-body,
+.panel > .table-responsive + .panel-body {
+  border-top: 1px solid #ecf0f1;
+}
+.panel > .table > tbody:first-child > tr:first-child th,
+.panel > .table > tbody:first-child > tr:first-child td {
+  border-top: 0;
+}
+.panel > .table-bordered,
+.panel > .table-responsive > .table-bordered {
+  border: 0;
+}
+.panel > .table-bordered > thead > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:first-child,
+.panel > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:first-child,
+.panel > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child,
+.panel > .table-bordered > thead > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:first-child,
+.panel > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:first-child,
+.panel > .table-bordered > tfoot > tr > td:first-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child {
+  border-left: 0;
+}
+.panel > .table-bordered > thead > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > th:last-child,
+.panel > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > th:last-child,
+.panel > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child,
+.panel > .table-bordered > thead > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > thead > tr > td:last-child,
+.panel > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tbody > tr > td:last-child,
+.panel > .table-bordered > tfoot > tr > td:last-child,
+.panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child {
+  border-right: 0;
+}
+.panel > .table-bordered > thead > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > td,
+.panel > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > td,
+.panel > .table-bordered > thead > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > thead > tr:first-child > th,
+.panel > .table-bordered > tbody > tr:first-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:first-child > th {
+  border-bottom: 0;
+}
+.panel > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > td,
+.panel > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td,
+.panel > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tbody > tr:last-child > th,
+.panel > .table-bordered > tfoot > tr:last-child > th,
+.panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th {
+  border-bottom: 0;
+}
+.panel > .table-responsive {
+  border: 0;
+  margin-bottom: 0;
+}
+.panel-group {
+  margin-bottom: 21px;
+}
+.panel-group .panel {
+  margin-bottom: 0;
+  border-radius: 4px;
+}
+.panel-group .panel + .panel {
+  margin-top: 5px;
+}
+.panel-group .panel-heading {
+  border-bottom: 0;
+}
+.panel-group .panel-heading + .panel-collapse > .panel-body,
+.panel-group .panel-heading + .panel-collapse > .list-group {
+  border-top: 1px solid #ecf0f1;
+}
+.panel-group .panel-footer {
+  border-top: 0;
+}
+.panel-group .panel-footer + .panel-collapse .panel-body {
+  border-bottom: 1px solid #ecf0f1;
+}
+.panel-default {
+  border-color: #ecf0f1;
+}
+.panel-default > .panel-heading {
+  color: #2c3e50;
+  background-color: #ecf0f1;
+  border-color: #ecf0f1;
+}
+.panel-default > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #ecf0f1;
+}
+.panel-default > .panel-heading .badge {
+  color: #ecf0f1;
+  background-color: #2c3e50;
+}
+.panel-default > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #ecf0f1;
+}
+.panel-primary {
+  border-color: #2c3e50;
+}
+.panel-primary > .panel-heading {
+  color: #ffffff;
+  background-color: #2c3e50;
+  border-color: #2c3e50;
+}
+.panel-primary > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #2c3e50;
+}
+.panel-primary > .panel-heading .badge {
+  color: #2c3e50;
+  background-color: #ffffff;
+}
+.panel-primary > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #2c3e50;
+}
+.panel-success {
+  border-color: #18bc9c;
+}
+.panel-success > .panel-heading {
+  color: #ffffff;
+  background-color: #18bc9c;
+  border-color: #18bc9c;
+}
+.panel-success > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #18bc9c;
+}
+.panel-success > .panel-heading .badge {
+  color: #18bc9c;
+  background-color: #ffffff;
+}
+.panel-success > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #18bc9c;
+}
+.panel-info {
+  border-color: #3498db;
+}
+.panel-info > .panel-heading {
+  color: #ffffff;
+  background-color: #3498db;
+  border-color: #3498db;
+}
+.panel-info > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #3498db;
+}
+.panel-info > .panel-heading .badge {
+  color: #3498db;
+  background-color: #ffffff;
+}
+.panel-info > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #3498db;
+}
+.panel-warning {
+  border-color: #f39c12;
+}
+.panel-warning > .panel-heading {
+  color: #ffffff;
+  background-color: #f39c12;
+  border-color: #f39c12;
+}
+.panel-warning > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #f39c12;
+}
+.panel-warning > .panel-heading .badge {
+  color: #f39c12;
+  background-color: #ffffff;
+}
+.panel-warning > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #f39c12;
+}
+.panel-danger {
+  border-color: #e74c3c;
+}
+.panel-danger > .panel-heading {
+  color: #ffffff;
+  background-color: #e74c3c;
+  border-color: #e74c3c;
+}
+.panel-danger > .panel-heading + .panel-collapse > .panel-body {
+  border-top-color: #e74c3c;
+}
+.panel-danger > .panel-heading .badge {
+  color: #e74c3c;
+  background-color: #ffffff;
+}
+.panel-danger > .panel-footer + .panel-collapse > .panel-body {
+  border-bottom-color: #e74c3c;
+}
+.embed-responsive {
+  position: relative;
+  display: block;
+  height: 0;
+  padding: 0;
+  overflow: hidden;
+}
+.embed-responsive .embed-responsive-item,
+.embed-responsive iframe,
+.embed-responsive embed,
+.embed-responsive object,
+.embed-responsive video {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  height: 100%;
+  width: 100%;
+  border: 0;
+}
+.embed-responsive-16by9 {
+  padding-bottom: 56.25%;
+}
+.embed-responsive-4by3 {
+  padding-bottom: 75%;
+}
+.well {
+  min-height: 20px;
+  padding: 19px;
+  margin-bottom: 20px;
+  background-color: #ecf0f1;
+  border: 1px solid transparent;
+  border-radius: 4px;
+  -webkit-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-lg {
+  padding: 24px;
+  border-radius: 6px;
+}
+.well-sm {
+  padding: 9px;
+  border-radius: 3px;
+}
+.close {
+  float: right;
+  font-size: 22.5px;
+  font-weight: bold;
+  line-height: 1;
+  color: #000000;
+  text-shadow: none;
+  opacity: 0.2;
+  filter: alpha(opacity=20);
+}
+.close:hover,
+.close:focus {
+  color: #000000;
+  text-decoration: none;
+  cursor: pointer;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+}
+button.close {
+  padding: 0;
+  cursor: pointer;
+  background: transparent;
+  border: 0;
+  -webkit-appearance: none;
+}
+.modal-open {
+  overflow: hidden;
+}
+.modal {
+  display: none;
+  overflow: hidden;
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1050;
+  -webkit-overflow-scrolling: touch;
+  outline: 0;
+}
+.modal.fade .modal-dialog {
+  -webkit-transform: translate(0, -25%);
+  -ms-transform: translate(0, -25%);
+  -o-transform: translate(0, -25%);
+  transform: translate(0, -25%);
+  -webkit-transition: -webkit-transform 0.3s ease-out;
+  -o-transition: -o-transform 0.3s ease-out;
+  transition: transform 0.3s ease-out;
+}
+.modal.in .modal-dialog {
+  -webkit-transform: translate(0, 0);
+  -ms-transform: translate(0, 0);
+  -o-transform: translate(0, 0);
+  transform: translate(0, 0);
+}
+.modal-open .modal {
+  overflow-x: hidden;
+  overflow-y: auto;
+}
+.modal-dialog {
+  position: relative;
+  width: auto;
+  margin: 10px;
+}
+.modal-content {
+  position: relative;
+  background-color: #ffffff;
+  border: 1px solid #999999;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  border-radius: 6px;
+  -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+  box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
+  -webkit-background-clip: padding-box;
+          background-clip: padding-box;
+  outline: 0;
+}
+.modal-backdrop {
+  position: fixed;
+  top: 0;
+  right: 0;
+  bottom: 0;
+  left: 0;
+  z-index: 1040;
+  background-color: #000000;
+}
+.modal-backdrop.fade {
+  opacity: 0;
+  filter: alpha(opacity=0);
+}
+.modal-backdrop.in {
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+}
+.modal-header {
+  padding: 15px;
+  border-bottom: 1px solid #e5e5e5;
+}
+.modal-header .close {
+  margin-top: -2px;
+}
+.modal-title {
+  margin: 0;
+  line-height: 1.42857143;
+}
+.modal-body {
+  position: relative;
+  padding: 20px;
+}
+.modal-footer {
+  padding: 20px;
+  text-align: right;
+  border-top: 1px solid #e5e5e5;
+}
+.modal-footer .btn + .btn {
+  margin-left: 5px;
+  margin-bottom: 0;
+}
+.modal-footer .btn-group .btn + .btn {
+  margin-left: -1px;
+}
+.modal-footer .btn-block + .btn-block {
+  margin-left: 0;
+}
+.modal-scrollbar-measure {
+  position: absolute;
+  top: -9999px;
+  width: 50px;
+  height: 50px;
+  overflow: scroll;
+}
+@media (min-width: 768px) {
+  .modal-dialog {
+    width: 600px;
+    margin: 30px auto;
+  }
+  .modal-content {
+    -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
+  }
+  .modal-sm {
+    width: 300px;
+  }
+}
+@media (min-width: 992px) {
+  .modal-lg {
+    width: 900px;
+  }
+}
+.tooltip {
+  position: absolute;
+  z-index: 1070;
+  display: block;
+  font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: normal;
+  line-break: auto;
+  line-height: 1.42857143;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  white-space: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
+  font-size: 13px;
+  opacity: 0;
+  filter: alpha(opacity=0);
+}
+.tooltip.in {
+  opacity: 0.9;
+  filter: alpha(opacity=90);
+}
+.tooltip.top {
+  margin-top: -3px;
+  padding: 5px 0;
+}
+.tooltip.right {
+  margin-left: 3px;
+  padding: 0 5px;
+}
+.tooltip.bottom {
+  margin-top: 3px;
+  padding: 5px 0;
+}
+.tooltip.left {
+  margin-left: -3px;
+  padding: 0 5px;
+}
+.tooltip-inner {
+  max-width: 200px;
+  padding: 3px 8px;
+  color: #ffffff;
+  text-align: center;
+  background-color: #000000;
+  border-radius: 4px;
+}
+.tooltip-arrow {
+  position: absolute;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
+}
+.tooltip.top .tooltip-arrow {
+  bottom: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000000;
+}
+.tooltip.top-left .tooltip-arrow {
+  bottom: 0;
+  right: 5px;
+  margin-bottom: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000000;
+}
+.tooltip.top-right .tooltip-arrow {
+  bottom: 0;
+  left: 5px;
+  margin-bottom: -5px;
+  border-width: 5px 5px 0;
+  border-top-color: #000000;
+}
+.tooltip.right .tooltip-arrow {
+  top: 50%;
+  left: 0;
+  margin-top: -5px;
+  border-width: 5px 5px 5px 0;
+  border-right-color: #000000;
+}
+.tooltip.left .tooltip-arrow {
+  top: 50%;
+  right: 0;
+  margin-top: -5px;
+  border-width: 5px 0 5px 5px;
+  border-left-color: #000000;
+}
+.tooltip.bottom .tooltip-arrow {
+  top: 0;
+  left: 50%;
+  margin-left: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000000;
+}
+.tooltip.bottom-left .tooltip-arrow {
+  top: 0;
+  right: 5px;
+  margin-top: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000000;
+}
+.tooltip.bottom-right .tooltip-arrow {
+  top: 0;
+  left: 5px;
+  margin-top: -5px;
+  border-width: 0 5px 5px;
+  border-bottom-color: #000000;
+}
+.popover {
+  position: absolute;
+  top: 0;
+  left: 0;
+  z-index: 1060;
+  display: none;
+  max-width: 276px;
+  padding: 1px;
+  font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
+  font-style: normal;
+  font-weight: normal;
+  letter-spacing: normal;
+  line-break: auto;
+  line-height: 1.42857143;
+  text-align: left;
+  text-align: start;
+  text-decoration: none;
+  text-shadow: none;
+  text-transform: none;
+  white-space: normal;
+  word-break: normal;
+  word-spacing: normal;
+  word-wrap: normal;
+  font-size: 15px;
+  background-color: #ffffff;
+  -webkit-background-clip: padding-box;
+          background-clip: padding-box;
+  border: 1px solid #cccccc;
+  border: 1px solid rgba(0, 0, 0, 0.2);
+  border-radius: 6px;
+  -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
+}
+.popover.top {
+  margin-top: -10px;
+}
+.popover.right {
+  margin-left: 10px;
+}
+.popover.bottom {
+  margin-top: 10px;
+}
+.popover.left {
+  margin-left: -10px;
+}
+.popover-title {
+  margin: 0;
+  padding: 8px 14px;
+  font-size: 15px;
+  background-color: #f7f7f7;
+  border-bottom: 1px solid #ebebeb;
+  border-radius: 5px 5px 0 0;
+}
+.popover-content {
+  padding: 9px 14px;
+}
+.popover > .arrow,
+.popover > .arrow:after {
+  position: absolute;
+  display: block;
+  width: 0;
+  height: 0;
+  border-color: transparent;
+  border-style: solid;
+}
+.popover > .arrow {
+  border-width: 11px;
+}
+.popover > .arrow:after {
+  border-width: 10px;
+  content: "";
+}
+.popover.top > .arrow {
+  left: 50%;
+  margin-left: -11px;
+  border-bottom-width: 0;
+  border-top-color: #999999;
+  border-top-color: rgba(0, 0, 0, 0.25);
+  bottom: -11px;
+}
+.popover.top > .arrow:after {
+  content: " ";
+  bottom: 1px;
+  margin-left: -10px;
+  border-bottom-width: 0;
+  border-top-color: #ffffff;
+}
+.popover.right > .arrow {
+  top: 50%;
+  left: -11px;
+  margin-top: -11px;
+  border-left-width: 0;
+  border-right-color: #999999;
+  border-right-color: rgba(0, 0, 0, 0.25);
+}
+.popover.right > .arrow:after {
+  content: " ";
+  left: 1px;
+  bottom: -10px;
+  border-left-width: 0;
+  border-right-color: #ffffff;
+}
+.popover.bottom > .arrow {
+  left: 50%;
+  margin-left: -11px;
+  border-top-width: 0;
+  border-bottom-color: #999999;
+  border-bottom-color: rgba(0, 0, 0, 0.25);
+  top: -11px;
+}
+.popover.bottom > .arrow:after {
+  content: " ";
+  top: 1px;
+  margin-left: -10px;
+  border-top-width: 0;
+  border-bottom-color: #ffffff;
+}
+.popover.left > .arrow {
+  top: 50%;
+  right: -11px;
+  margin-top: -11px;
+  border-right-width: 0;
+  border-left-color: #999999;
+  border-left-color: rgba(0, 0, 0, 0.25);
+}
+.popover.left > .arrow:after {
+  content: " ";
+  right: 1px;
+  border-right-width: 0;
+  border-left-color: #ffffff;
+  bottom: -10px;
+}
+.carousel {
+  position: relative;
+}
+.carousel-inner {
+  position: relative;
+  overflow: hidden;
+  width: 100%;
+}
+.carousel-inner > .item {
+  display: none;
+  position: relative;
+  -webkit-transition: 0.6s ease-in-out left;
+  -o-transition: 0.6s ease-in-out left;
+  transition: 0.6s ease-in-out left;
+}
+.carousel-inner > .item > img,
+.carousel-inner > .item > a > img {
+  line-height: 1;
+}
+@media all and (transform-3d), (-webkit-transform-3d) {
+  .carousel-inner > .item {
+    -webkit-transition: -webkit-transform 0.6s ease-in-out;
+    -o-transition: -o-transform 0.6s ease-in-out;
+    transition: transform 0.6s ease-in-out;
+    -webkit-backface-visibility: hidden;
+    backface-visibility: hidden;
+    -webkit-perspective: 1000px;
+    perspective: 1000px;
+  }
+  .carousel-inner > .item.next,
+  .carousel-inner > .item.active.right {
+    -webkit-transform: translate3d(100%, 0, 0);
+    transform: translate3d(100%, 0, 0);
+    left: 0;
+  }
+  .carousel-inner > .item.prev,
+  .carousel-inner > .item.active.left {
+    -webkit-transform: translate3d(-100%, 0, 0);
+    transform: translate3d(-100%, 0, 0);
+    left: 0;
+  }
+  .carousel-inner > .item.next.left,
+  .carousel-inner > .item.prev.right,
+  .carousel-inner > .item.active {
+    -webkit-transform: translate3d(0, 0, 0);
+    transform: translate3d(0, 0, 0);
+    left: 0;
+  }
+}
+.carousel-inner > .active,
+.carousel-inner > .next,
+.carousel-inner > .prev {
+  display: block;
+}
+.carousel-inner > .active {
+  left: 0;
+}
+.carousel-inner > .next,
+.carousel-inner > .prev {
+  position: absolute;
+  top: 0;
+  width: 100%;
+}
+.carousel-inner > .next {
+  left: 100%;
+}
+.carousel-inner > .prev {
+  left: -100%;
+}
+.carousel-inner > .next.left,
+.carousel-inner > .prev.right {
+  left: 0;
+}
+.carousel-inner > .active.left {
+  left: -100%;
+}
+.carousel-inner > .active.right {
+  left: 100%;
+}
+.carousel-control {
+  position: absolute;
+  top: 0;
+  left: 0;
+  bottom: 0;
+  width: 15%;
+  opacity: 0.5;
+  filter: alpha(opacity=50);
+  font-size: 20px;
+  color: #ffffff;
+  text-align: center;
+  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+  background-color: rgba(0, 0, 0, 0);
+}
+.carousel-control.left {
+  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0%, rgba(0, 0, 0, 0.0001) 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);
+}
+.carousel-control.right {
+  left: auto;
+  right: 0;
+  background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
+  background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0%, rgba(0, 0, 0, 0.5) 100%);
+  background-repeat: repeat-x;
+  filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);
+}
+.carousel-control:hover,
+.carousel-control:focus {
+  outline: 0;
+  color: #ffffff;
+  text-decoration: none;
+  opacity: 0.9;
+  filter: alpha(opacity=90);
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-left,
+.carousel-control .glyphicon-chevron-right {
+  position: absolute;
+  top: 50%;
+  margin-top: -10px;
+  z-index: 5;
+  display: inline-block;
+}
+.carousel-control .icon-prev,
+.carousel-control .glyphicon-chevron-left {
+  left: 50%;
+  margin-left: -10px;
+}
+.carousel-control .icon-next,
+.carousel-control .glyphicon-chevron-right {
+  right: 50%;
+  margin-right: -10px;
+}
+.carousel-control .icon-prev,
+.carousel-control .icon-next {
+  width: 20px;
+  height: 20px;
+  line-height: 1;
+  font-family: serif;
+}
+.carousel-control .icon-prev:before {
+  content: '\2039';
+}
+.carousel-control .icon-next:before {
+  content: '\203a';
+}
+.carousel-indicators {
+  position: absolute;
+  bottom: 10px;
+  left: 50%;
+  z-index: 15;
+  width: 60%;
+  margin-left: -30%;
+  padding-left: 0;
+  list-style: none;
+  text-align: center;
+}
+.carousel-indicators li {
+  display: inline-block;
+  width: 10px;
+  height: 10px;
+  margin: 1px;
+  text-indent: -999px;
+  border: 1px solid #ffffff;
+  border-radius: 10px;
+  cursor: pointer;
+  background-color: #000 \9;
+  background-color: rgba(0, 0, 0, 0);
+}
+.carousel-indicators .active {
+  margin: 0;
+  width: 12px;
+  height: 12px;
+  background-color: #ffffff;
+}
+.carousel-caption {
+  position: absolute;
+  left: 15%;
+  right: 15%;
+  bottom: 20px;
+  z-index: 10;
+  padding-top: 20px;
+  padding-bottom: 20px;
+  color: #ffffff;
+  text-align: center;
+  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6);
+}
+.carousel-caption .btn {
+  text-shadow: none;
+}
+@media screen and (min-width: 768px) {
+  .carousel-control .glyphicon-chevron-left,
+  .carousel-control .glyphicon-chevron-right,
+  .carousel-control .icon-prev,
+  .carousel-control .icon-next {
+    width: 30px;
+    height: 30px;
+    margin-top: -10px;
+    font-size: 30px;
+  }
+  .carousel-control .glyphicon-chevron-left,
+  .carousel-control .icon-prev {
+    margin-left: -10px;
+  }
+  .carousel-control .glyphicon-chevron-right,
+  .carousel-control .icon-next {
+    margin-right: -10px;
+  }
+  .carousel-caption {
+    left: 20%;
+    right: 20%;
+    padding-bottom: 30px;
+  }
+  .carousel-indicators {
+    bottom: 20px;
+  }
+}
+.clearfix:before,
+.clearfix:after,
+.dl-horizontal dd:before,
+.dl-horizontal dd:after,
+.container:before,
+.container:after,
+.container-fluid:before,
+.container-fluid:after,
+.row:before,
+.row:after,
+.form-horizontal .form-group:before,
+.form-horizontal .form-group:after,
+.btn-toolbar:before,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:before,
+.btn-group-vertical > .btn-group:after,
+.nav:before,
+.nav:after,
+.navbar:before,
+.navbar:after,
+.navbar-header:before,
+.navbar-header:after,
+.navbar-collapse:before,
+.navbar-collapse:after,
+.pager:before,
+.pager:after,
+.panel-body:before,
+.panel-body:after,
+.modal-header:before,
+.modal-header:after,
+.modal-footer:before,
+.modal-footer:after {
+  content: " ";
+  display: table;
+}
+.clearfix:after,
+.dl-horizontal dd:after,
+.container:after,
+.container-fluid:after,
+.row:after,
+.form-horizontal .form-group:after,
+.btn-toolbar:after,
+.btn-group-vertical > .btn-group:after,
+.nav:after,
+.navbar:after,
+.navbar-header:after,
+.navbar-collapse:after,
+.pager:after,
+.panel-body:after,
+.modal-header:after,
+.modal-footer:after {
+  clear: both;
+}
+.center-block {
+  display: block;
+  margin-left: auto;
+  margin-right: auto;
+}
+.pull-right {
+  float: right !important;
+}
+.pull-left {
+  float: left !important;
+}
+.hide {
+  display: none !important;
+}
+.show {
+  display: block !important;
+}
+.invisible {
+  visibility: hidden;
+}
+.text-hide {
+  font: 0/0 a;
+  color: transparent;
+  text-shadow: none;
+  background-color: transparent;
+  border: 0;
+}
+.hidden {
+  display: none !important;
+}
+.affix {
+  position: fixed;
+}
+@-ms-viewport {
+  width: device-width;
+}
+.visible-xs,
+.visible-sm,
+.visible-md,
+.visible-lg {
+  display: none !important;
+}
+.visible-xs-block,
+.visible-xs-inline,
+.visible-xs-inline-block,
+.visible-sm-block,
+.visible-sm-inline,
+.visible-sm-inline-block,
+.visible-md-block,
+.visible-md-inline,
+.visible-md-inline-block,
+.visible-lg-block,
+.visible-lg-inline,
+.visible-lg-inline-block {
+  display: none !important;
+}
+@media (max-width: 767px) {
+  .visible-xs {
+    display: block !important;
+  }
+  table.visible-xs {
+    display: table !important;
+  }
+  tr.visible-xs {
+    display: table-row !important;
+  }
+  th.visible-xs,
+  td.visible-xs {
+    display: table-cell !important;
+  }
+}
+@media (max-width: 767px) {
+  .visible-xs-block {
+    display: block !important;
+  }
+}
+@media (max-width: 767px) {
+  .visible-xs-inline {
+    display: inline !important;
+  }
+}
+@media (max-width: 767px) {
+  .visible-xs-inline-block {
+    display: inline-block !important;
+  }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+  .visible-sm {
+    display: block !important;
+  }
+  table.visible-sm {
+    display: table !important;
+  }
+  tr.visible-sm {
+    display: table-row !important;
+  }
+  th.visible-sm,
+  td.visible-sm {
+    display: table-cell !important;
+  }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+  .visible-sm-block {
+    display: block !important;
+  }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+  .visible-sm-inline {
+    display: inline !important;
+  }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+  .visible-sm-inline-block {
+    display: inline-block !important;
+  }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+  .visible-md {
+    display: block !important;
+  }
+  table.visible-md {
+    display: table !important;
+  }
+  tr.visible-md {
+    display: table-row !important;
+  }
+  th.visible-md,
+  td.visible-md {
+    display: table-cell !important;
+  }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+  .visible-md-block {
+    display: block !important;
+  }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+  .visible-md-inline {
+    display: inline !important;
+  }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+  .visible-md-inline-block {
+    display: inline-block !important;
+  }
+}
+@media (min-width: 1200px) {
+  .visible-lg {
+    display: block !important;
+  }
+  table.visible-lg {
+    display: table !important;
+  }
+  tr.visible-lg {
+    display: table-row !important;
+  }
+  th.visible-lg,
+  td.visible-lg {
+    display: table-cell !important;
+  }
+}
+@media (min-width: 1200px) {
+  .visible-lg-block {
+    display: block !important;
+  }
+}
+@media (min-width: 1200px) {
+  .visible-lg-inline {
+    display: inline !important;
+  }
+}
+@media (min-width: 1200px) {
+  .visible-lg-inline-block {
+    display: inline-block !important;
+  }
+}
+@media (max-width: 767px) {
+  .hidden-xs {
+    display: none !important;
+  }
+}
+@media (min-width: 768px) and (max-width: 991px) {
+  .hidden-sm {
+    display: none !important;
+  }
+}
+@media (min-width: 992px) and (max-width: 1199px) {
+  .hidden-md {
+    display: none !important;
+  }
+}
+@media (min-width: 1200px) {
+  .hidden-lg {
+    display: none !important;
+  }
+}
+.visible-print {
+  display: none !important;
+}
+@media print {
+  .visible-print {
+    display: block !important;
+  }
+  table.visible-print {
+    display: table !important;
+  }
+  tr.visible-print {
+    display: table-row !important;
+  }
+  th.visible-print,
+  td.visible-print {
+    display: table-cell !important;
+  }
+}
+.visible-print-block {
+  display: none !important;
+}
+@media print {
+  .visible-print-block {
+    display: block !important;
+  }
+}
+.visible-print-inline {
+  display: none !important;
+}
+@media print {
+  .visible-print-inline {
+    display: inline !important;
+  }
+}
+.visible-print-inline-block {
+  display: none !important;
+}
+@media print {
+  .visible-print-inline-block {
+    display: inline-block !important;
+  }
+}
+@media print {
+  .hidden-print {
+    display: none !important;
+  }
+}
+.navbar {
+  border-width: 0;
+}
+.navbar-default .badge {
+  background-color: #fff;
+  color: #2c3e50;
+}
+.navbar-inverse .badge {
+  background-color: #fff;
+  color: #18bc9c;
+}
+.navbar-brand {
+  line-height: 1;
+}
+.btn {
+  border-width: 2px;
+}
+.btn:active {
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+.btn-group.open .dropdown-toggle {
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+.text-primary,
+.text-primary:hover {
+  color: #2c3e50;
+}
+.text-success,
+.text-success:hover {
+  color: #18bc9c;
+}
+.text-danger,
+.text-danger:hover {
+  color: #e74c3c;
+}
+.text-warning,
+.text-warning:hover {
+  color: #f39c12;
+}
+.text-info,
+.text-info:hover {
+  color: #3498db;
+}
+table a:not(.btn),
+.table a:not(.btn) {
+  text-decoration: underline;
+}
+table .dropdown-menu a,
+.table .dropdown-menu a {
+  text-decoration: none;
+}
+table .success,
+.table .success,
+table .warning,
+.table .warning,
+table .danger,
+.table .danger,
+table .info,
+.table .info {
+  color: #fff;
+}
+table .success > th > a,
+.table .success > th > a,
+table .warning > th > a,
+.table .warning > th > a,
+table .danger > th > a,
+.table .danger > th > a,
+table .info > th > a,
+.table .info > th > a,
+table .success > td > a,
+.table .success > td > a,
+table .warning > td > a,
+.table .warning > td > a,
+table .danger > td > a,
+.table .danger > td > a,
+table .info > td > a,
+.table .info > td > a,
+table .success > a,
+.table .success > a,
+table .warning > a,
+.table .warning > a,
+table .danger > a,
+.table .danger > a,
+table .info > a,
+.table .info > a {
+  color: #fff;
+}
+table > thead > tr > th,
+.table > thead > tr > th,
+table > tbody > tr > th,
+.table > tbody > tr > th,
+table > tfoot > tr > th,
+.table > tfoot > tr > th,
+table > thead > tr > td,
+.table > thead > tr > td,
+table > tbody > tr > td,
+.table > tbody > tr > td,
+table > tfoot > tr > td,
+.table > tfoot > tr > td {
+  border: none;
+}
+table-bordered > thead > tr > th,
+.table-bordered > thead > tr > th,
+table-bordered > tbody > tr > th,
+.table-bordered > tbody > tr > th,
+table-bordered > tfoot > tr > th,
+.table-bordered > tfoot > tr > th,
+table-bordered > thead > tr > td,
+.table-bordered > thead > tr > td,
+table-bordered > tbody > tr > td,
+.table-bordered > tbody > tr > td,
+table-bordered > tfoot > tr > td,
+.table-bordered > tfoot > tr > td {
+  border: 1px solid #ecf0f1;
+}
+.form-control,
+input {
+  border-width: 2px;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+.form-control:focus,
+input:focus {
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+.has-warning .help-block,
+.has-warning .control-label,
+.has-warning .radio,
+.has-warning .checkbox,
+.has-warning .radio-inline,
+.has-warning .checkbox-inline,
+.has-warning.radio label,
+.has-warning.checkbox label,
+.has-warning.radio-inline label,
+.has-warning.checkbox-inline label,
+.has-warning .form-control-feedback {
+  color: #f39c12;
+}
+.has-warning .form-control,
+.has-warning .form-control:focus {
+  border: 2px solid #f39c12;
+}
+.has-warning .input-group-addon {
+  border-color: #f39c12;
+}
+.has-error .help-block,
+.has-error .control-label,
+.has-error .radio,
+.has-error .checkbox,
+.has-error .radio-inline,
+.has-error .checkbox-inline,
+.has-error.radio label,
+.has-error.checkbox label,
+.has-error.radio-inline label,
+.has-error.checkbox-inline label,
+.has-error .form-control-feedback {
+  color: #e74c3c;
+}
+.has-error .form-control,
+.has-error .form-control:focus {
+  border: 2px solid #e74c3c;
+}
+.has-error .input-group-addon {
+  border-color: #e74c3c;
+}
+.has-success .help-block,
+.has-success .control-label,
+.has-success .radio,
+.has-success .checkbox,
+.has-success .radio-inline,
+.has-success .checkbox-inline,
+.has-success.radio label,
+.has-success.checkbox label,
+.has-success.radio-inline label,
+.has-success.checkbox-inline label,
+.has-success .form-control-feedback {
+  color: #18bc9c;
+}
+.has-success .form-control,
+.has-success .form-control:focus {
+  border: 2px solid #18bc9c;
+}
+.has-success .input-group-addon {
+  border-color: #18bc9c;
+}
+.nav .open > a,
+.nav .open > a:hover,
+.nav .open > a:focus {
+  border-color: transparent;
+}
+.pager a,
+.pager a:hover {
+  color: #fff;
+}
+.pager .disabled > a,
+.pager .disabled > a:hover,
+.pager .disabled > a:focus,
+.pager .disabled > span {
+  background-color: #3be6c4;
+}
+.close {
+  color: #fff;
+  text-decoration: none;
+  opacity: 0.4;
+}
+.close:hover,
+.close:focus {
+  color: #fff;
+  opacity: 1;
+}
+.alert .alert-link {
+  color: #fff;
+  text-decoration: underline;
+}
+.progress {
+  height: 10px;
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+.progress .progress-bar {
+  font-size: 10px;
+  line-height: 10px;
+}
+.well {
+  -webkit-box-shadow: none;
+  box-shadow: none;
+}
+a.list-group-item.active,
+a.list-group-item.active:hover,
+a.list-group-item.active:focus {
+  border-color: #ecf0f1;
+}
+a.list-group-item-success.active {
+  background-color: #18bc9c;
+}
+a.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus {
+  background-color: #15a589;
+}
+a.list-group-item-warning.active {
+  background-color: #f39c12;
+}
+a.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus {
+  background-color: #e08e0b;
+}
+a.list-group-item-danger.active {
+  background-color: #e74c3c;
+}
+a.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus {
+  background-color: #e43725;
+}
+.panel-default .close {
+  color: #2c3e50;
+}
+.modal .close {
+  color: #2c3e50;
+}
+.popover {
+  color: #2c3e50;
+}
diff --git a/static/css/main.css b/static/css/main.css
new file mode 100644
--- /dev/null
+++ b/static/css/main.css
@@ -0,0 +1,975 @@
+html {
+  box-sizing: border-box;
+}
+*, *:before, *:after {
+  box-sizing: inherit;
+}
+body
+{
+  color:#333;
+  margin-left:20px;
+  font-size:13px;
+  font-family: helvetica, sans-serif;
+  word-wrap:break-word;
+  text-align:center;
+}
+
+
+[hidden] {
+    display: none !important
+}
+
+label {
+    cursor: pointer;
+}
+blockquote 
+{ 
+    margin-left:20px;
+    margin-bottom:0px;
+    color:#247;
+}
+
+#content
+{ 
+    width: 100%;
+    max-width:1050px;
+    margin-left:auto;
+    margin-right:auto 
+
+}
+
+/* basic elements */
+td { font-size:13px; }
+p  { margin-top:2px;margin-bottom:12px }
+li { margin-bottom:10px }
+
+
+/* global link styling */
+a
+{ 
+    text-decoration:none;
+    color:#11a;
+}
+a:visited { color:#51a }
+a.edit { font-size:1em; }
+
+h1 
+{ 
+    font-size:2em;
+    font-family:helvetica;
+    font-weight:normal;
+    margin-top:10px;
+} 
+h2 { 
+    font-size:1.3em;
+    font-family:helvetica;
+    font-weight:normal;
+} 
+h3 { font-size:110%;background:#eaefff;} 
+h4 { font-size:100%;background:#dfc;} 
+
+code
+{
+  margin-left:20px;
+  color:#22a;
+  font-family:monaco;
+}
+
+
+/* BOOKMARK STYLING */
+a.fetch_err
+{ 
+    font-size:80%;
+    color:red;
+    font-weight:bold;
+}
+.cached 
+{
+    color:#aaa;
+    font-size:1.2em;
+}
+.cached:visited {color:#aaa}
+.description
+ {
+    line-height:120%;
+    margin-top:2px;
+    color:#555;
+}
+.star
+{
+  color:#ccc;
+  margin-left:-20px;
+  font-size:1.3em;
+  cursor:pointer;
+  float:left; 
+}
+.selected_star { color:#22a; }
+.confirm 
+{ 
+    color:red;
+}
+.delete_link { display:inline; }
+.when {
+    font-size:90%;
+    width: 90px;
+    color:#777 !important;
+    display: inline-block;
+}
+.js-moment {
+    width: 105px;
+}
+a.url_display:hover { color:#44d; }
+
+a.source { color:#77c;}
+a.tag {color:#a51;line-height:190%;}
+a.bundle { color:#b40;font-weight:bold }
+a.bundle { color:#a21;font-weight:bold }
+
+.tags { display: block; }
+.tags a.tag {
+    margin-right: 5px;
+}
+
+#bundle_names a
+{
+    line-height:180%;
+}
+
+#bundle_names 
+{
+    margin-top:20px;
+}
+
+a.delete { color:#aaa }
+a.delete:visited { color:#aaa }
+a.delete:hover { color:#44d; }
+
+a.edit { color: #aaa }
+a.edit:hover { color:#44d; }
+a.edit:visited { color:#ccc }
+
+a.destroy { color:red; }
+a.destroy:visited { color:red; }
+
+a.copy_link { color: #bbb }
+a.copy_link:hover { color:#44d; }
+.copy_confirm { color:#aaa; }
+.faint {color:#aaa}
+
+.edit_links
+{
+    display:inline;
+}
+
+
+
+
+.url_link
+{
+    font-size:90%;color:#888;
+}
+.bookmark
+{ 
+  margin-bottom:1.3em;
+  padding:3px;
+  width:100%;
+  max-width:600px;
+  margin-left:0px;
+  border:0px solid red;
+  float:left;
+ }
+.bookmark_title { line-height:130%;font-size:110%; }
+a.url_display
+{
+    color:#888;
+    font-size:0.9em;
+}
+.private a { padding:1px;border:0px;}
+.private { background:#ddd;border:1px solid #d1d1d1; }
+.unread { color:#b41 }
+a.unread { color:#b41 }
+a.has_bmark { color:#aaa }
+
+/* BOOKMARK LISTS */
+a.list { color:#163; }
+.lists { color:#163; }
+
+/* ?? */
+.flash { color:green;background:#efe }
+
+/* MAIN BANNER AND NAV */
+#banner
+{
+  background:white;
+  color:black;
+  border-bottom:1px dotted #aaa;
+  margin-bottom:0.7em;
+  width:100%;
+  max-width:980px;
+  padding-bottom:9px;
+  text-align:left;
+}
+
+
+#banner a { color:#aaa; }
+#banner a.admin { color:#e00 }
+#banner a.banner_username { color:blue; }
+#espial_name { font-size:18px; }
+
+
+#logo { float:left;color:#aaa;}
+.logo {
+    margin-right: 1px;
+    font-size: 19px;
+    color: #402;
+}
+#top_menu 
+{ 
+    margin-top:6px;
+    float:right; 
+}
+#top_menu a { color:blue }
+
+
+/* user alert */
+.alert 
+{ 
+    color:#333;
+    background:#ced;
+    padding:10px;
+    width: 100%;
+    max-width:550px;
+    border:1px solid #acc; 
+}
+
+
+#login_box
+{
+  float:right;
+}
+
+
+/* BASIC PAGE STRUCTURE */
+#main_column
+{
+    width: 100%;
+    max-width:700px;
+    min-height:700px;
+    text-align:left;
+    float:left;
+    position:relative;
+    #border:1px solid #fa8;
+
+}
+
+#right_bar 
+{
+    float:left;
+    margin-left:10px;
+    text-align:left;
+    width:330px;
+    #border:1px solid #cfd;
+}
+
+
+.rss_linkbox
+{
+    float:right;
+    margin-right:30px;
+}
+
+a.rss_link
+{
+    color:#ee9922;
+    font-size:0.8em;
+}
+
+.bookmark_count_box
+{
+    float:left;
+    min-width:50px;
+    padding-right:1.1em;
+}
+
+
+/* USER HOME PAGE */
+.user_navbar
+{
+    margin-bottom:0.7em;
+}
+
+.subscribe_link
+{
+    margin-left:30px;
+    float:left;
+    margin-right:8px;
+    color:#aac;
+}
+
+.unsubscribe_link
+{
+    margin-left:30px;float:left;
+    color:#caa;
+}
+
+.source_filter
+{
+    background:#ddf;
+    color:#555;
+}
+
+.edit_checkbox
+{
+  display:none;
+  float:left;
+  margin-left:-40px;
+  width:40px;
+}
+
+.tag_table
+{
+    float:left;
+    margin-right:10px;
+}
+
+
+/* howto page */
+a.bookmarklet
+{ 
+    background:#ffe; 
+    border:1px dotted #aaa;
+    color:#444;
+    padding:1px 2px 0px 2px;
+    font-size:90%;
+}
+.heading { color:#555;}
+.homepage_heading { 
+    margin-top:25px;
+    margin-bottom:5px;
+    color:#338;
+    font-size:1em;
+}
+
+
+.error { color:red }
+
+a.systag { color:#c41 }
+a.next_prev { color:#777 }
+
+#bottom_next_prev { float:left; }
+
+ 
+ #star_operations
+ {
+  border:0px solid blue;width:300px;float:left;
+ }
+ 
+
+.selected_star
+{
+  color:#559;
+}
+
+
+
+.display { float:left }
+.unimplemented { color:#aaa }
+
+
+/* bulk and single edit form */
+#bulk_links p { line-height:0.7em; }
+
+.edit_bookmark_form
+{
+  border: 0px solid #aaa;
+  background:#fff;
+  width:500px;
+  padding:4px;
+  padding-left:10px;
+  float:left;
+  color:#888;
+}
+
+.edit_bookmark_form p
+{
+  line-height:100%;
+  margin-bottom:0px;
+  color:#888;
+}
+
+.edit_bookmark_form input
+{
+  font-size:90%;
+  border:1px solid #ddd;
+  margin-bottom:3px;
+}
+
+.edit_bookmark_form textarea
+{
+  font-size:90%;
+  border:1px solid #ddd;
+  margin-bottom:3px;
+}
+
+.edit_form_input 
+{
+    width:490px;
+    margin-top:10px;
+    font-size:12px;
+    background:#fff;
+    padding-top:3px;
+}
+#edit_form_checkboxes
+{
+    margin-top:10px;
+    margin-bottom:10px;
+}
+#edit_form_suggested_tags
+{
+    margin-top:10px;
+    margin-bottom:18px;
+}
+
+.edit_bookmark_form .edit-button
+{
+    background-color: #eee;
+}
+
+#tag_cloud
+{
+  float:left;
+  width:350px;
+  text-align:justify;
+  line-height:110%;
+  margin-top:20px;
+} 
+
+.bookmark_count { 
+  font-size:80%;
+  color:#aaa;
+ }
+ 
+ .tag_count {  font-size:90%;color: #aaa; }
+ 
+
+#years 
+{
+    border:1px solid orange;
+    float:left;
+}
+#years a
+{
+    color:#aaa;
+    font-size:8pt;
+
+}
+
+#bulk_links
+{
+  margin-bottom:20px;
+}
+ a.mark_read { color:#a81}
+ 
+
+
+#active_users
+{
+  float:left;
+  margin-left:40px;
+}
+
+#related_tags
+{
+  width:250px;border:0px solid red;
+  }
+  
+#timer
+{
+  color:#bbb;float:right;font-size:10px;font-family:helvetica;margin-top:4px;
+}
+
+#footer
+{
+  margin-top:3em;color:#888;
+ }
+ 
+a.help
+{
+  color:#2a2;background:#ffc}
+  
+  
+.tabs { background:#fff;padding:0px;margin-bottom:0px; }
+.tab_select
+{
+  float:left;
+  margin-right:10px;
+}
+
+
+a.filter { color:#999}
+
+
+.disabled { color:#888;background:#ccc}
+
+.upgrade_header { 
+    font-size:1.4em;color:#666;
+    font-weight:bold;margin-top:30px;
+    margin-bottom:10px;background:#fff}
+    
+    
+    
+
+
+a.twitter_user { color:#000099; }
+#em { font-weight:bold;color:#555;font-style:normal}
+
+
+
+.tweet_date { color:#aaa;font-size:90%;}
+.twitter_name { font-weight:bold; }
+a.twitter_account { color:#66c}
+a.outside_resource { color:blue;text-decoration:underline; }
+
+ 
+a.selected {color:blue}
+
+.selected { background:#fafafa; }
+
+/* pagination and sort order links */
+#per_page_picker {color:#888;float:left;margin-left:90px;text-align:center; }
+#per_page_picker a {color:#aaa; }
+#per_page_picker a.per_page_selected { background:#ff8;color:blue; }
+
+.pagination_select
+{
+    display:inline;
+   /* margin-right:30px; */
+}
+#sort_order_picker { display:inline; }
+#sort_order_picker a.sort_order_selected { color:#888;}
+#sort_order_picker a { color:#ccc; }
+#sort_order_picker { color:#aaa; }
+.sort_arrow { font-size:15px;font-family:monaco }
+@-moz-document url-prefix() {
+   .sort_arrow { font-size:20px;}
+}
+
+
+#tag_cloud a.tag_heading_selected { font-weight:bold;color:#333 }
+#tag_cloud table{ line-height:100%;}
+#tag_cloud_header a { color:#aaa; }
+
+ul.clean { list-style-type:none;padding-left:0px;}
+
+.small_username
+{
+    float:left;
+    padding-right:1em;
+}
+
+
+.twitter_account_title /* used on settings page */
+{
+    font-size:1.3em;color:#59d
+}
+
+a.twitter_account_title /* used on settings page */
+{
+    color:#59d
+}
+
+/* tabs stuff */
+.help_box
+{
+    line-height:120%;
+    background:#ffe;
+    padding:10px;
+    border:1px solid #dba;
+}
+
+.window_title 
+{ 
+    font-weight:bold;
+    font-size:1.2em;
+    color:#555;
+    margin:0px;
+    margin-top:20px;
+    padding:0px; 
+    cursor:pointer;
+}
+/* tour page */
+h1.tour_heading
+{
+    font-size:2em;
+    font-family:helvetica;
+    font-weight:normal;
+    margin-top:10px;
+}
+h2.tour_heading
+{
+    font-size:1.5em;
+    font-family:helvetica;
+    font-weight:normal;
+    background:#fff;
+    margin-top:37px;
+    margin-bottom:20px;
+}
+
+
+/* SETTINGS PAGE */
+h2.settings_heading
+{
+    font-size:1.3em;
+    font-family:helvetica;
+    font-weight:normal;
+    background:#fff;
+    margin-top:7px;
+    margin-bottom:15px;
+}
+
+.email_secret
+{
+    color:#05a;
+    font-weight:bold;
+}
+
+#import_history_table
+{
+    float:left;
+    padding:5px;
+    border:1px solid #ccc;
+}
+
+.tab { 
+  float:left;
+  text-align:center;
+  padding-bottom:0.2em;
+  width:100px;
+  height:15px;
+   border-top:1px solid #ffc;
+   border-bottom:1px solid #aaa;
+}
+
+.tab_spacer
+{
+    float:left;
+    height:15px;
+    padding-bottom:0.2em;
+    width:98px;
+    border-top:1px solid  #fff;
+    border-bottom:1px solid #aaa;
+    color:#ffc;
+}
+
+.tab_selected { 
+    border:1px solid #aaa;
+    border-bottom:1px solid #eee ;
+    background:#eee }
+#tab_panes
+{
+  border:1px solid #aaa;
+  border-top:0px solid #fff;
+  padding:2em;
+  margin:0px;
+}
+
+
+/* UPGRADE PAGE */
+#upgrade_left_column
+{
+    width:400px;
+    float:left;
+}
+
+#upgrade_right_column
+{
+    margin-left:40px;
+    width:250px;
+    float:left;
+}
+.account_status_box
+{
+    padding:10px;border:1px solid #abd;
+}
+        
+/* USER ACCOUNT PAGE */
+#profile_main_column
+{
+    width:1200px;
+    float:left;
+    text-align:left;
+}
+
+#profile_left_column
+{
+    width:350px;
+    float:left;
+}
+
+#profile_right_column
+{
+    float:left;
+    margin-left:40px;
+    width:450px;
+}
+
+#profile_admin_column
+{
+    float:left;
+    width:300px;
+    font-size:11px;
+    text-align:left;
+    padding:5px;
+    height:800px;
+    background:#efe
+}
+
+.service_box
+{
+    float:left;
+    width:350px;
+    margin-bottom:20px;
+}
+   
+#name_string
+{
+    font-size:140%
+}
+
+#archival_column
+{
+    float:left;
+    width:300px;
+}
+
+
+a.upgrade_link
+{
+    text-decoration:underline;
+    font-weight:bold;
+}
+
+
+
+
+
+/* signup */
+.signup_button
+{
+    text-align:center;
+    font-size:1.2em;
+    font-weight:bold;
+    color:#444;
+    background:#dfa;
+    border:1px solid #888;
+    border-radius:15px;
+    -moz-box-shadow: 1px 1px 1px #555;
+    -webkit-box-shadow: 1px 1px 1px #888;
+    box-shadow: 1px 1px 2px #888;
+    padding-left:0px;
+    padding-top:5px;
+    padding-bottom:2px;
+    width:230px;
+    height:20px;
+    margin-left:30px;
+    margin-top:50px;
+}
+
+
+/* NOTES */
+#note_tagbox
+{
+    margin-bottom:15px;
+    width:500px;
+    padding:4px;
+    background:#ffc;
+    border:1px dotted orange;
+}
+#note_right_column
+{
+    text-align:left;
+    width:250px;
+    float:left;
+}
+blockquote.note
+{
+    margin-left:0px;
+    width:490px;
+    line-height:130%;
+    font-family:verdana
+}
+.note_last_updated
+{
+    color:#ca4;
+    font-size:0.9em
+}
+
+.notes_pagination
+{
+    margin-bottom:20px;
+    margin-top:10px;
+}
+
+
+/* PUBLIC PROFILE */
+input.profile_input
+{
+    width:350px;
+}
+textarea.profile_input
+{
+    width:350px;
+    height:140px;
+}
+
+#public_edit_right_column
+{
+    margin-top:20px;
+    text-align:left;
+}
+
+.public_name_value
+{
+    font-size:18pt;
+    color:#555;
+}
+
+#public_profile_left_column
+{
+    float:left;
+    text-align:left;
+    min-height:700px;
+    width:380px;
+    margin-right:20px;
+}
+#public_profile_left_column h2
+{
+    margin-top:10px;
+}
+#public_profile_left_column a.username
+{
+    color:blue;
+}
+#public_profile_subscribe_div
+{
+    margin-bottom:10px;
+    color:#888;
+}
+#public_profile_attributes td
+{
+    vertical-align:top;
+}
+#public_profile_tag_cloud
+{
+    float:left;
+    width:300px;
+    text-align:left;
+}
+
+#public_profile_searchbox
+{
+    margin-left:30px;
+    margin-top:10px;
+    text-align:left;
+    float:left;
+}
+
+/* SEARCH PAGE */
+#search_right_bar 
+{
+    float:left;
+    margin-left:10px;
+    text-align:left;
+    width:300px;
+}
+.search_button
+{
+    margin-top:10px;
+}
+
+#tweet_searchbox
+{
+    margin-top:20px;
+    float:left;
+    margin-left:10px;
+}
+
+/* stuff for import/export instructions */
+.pprofile_heading
+{
+    color:#888;
+}
+
+ol.howto { list-style-type:decimal;margin-top:10px; margin-bottom:20px;}
+li.howto { list-style-type:decimal;margin-top:20px; }
+tt { background:#ffa;font-family:verdana;color:#37d; }
+li.import_instructons
+{
+    line-height:150%;
+}
+ol.download_instructions
+{
+    margin-top:10px;
+}
+    
+/* ADMIN STUFF */
+#searchbox fieldset
+{   
+    opacity:0.5;
+    border:1px solid #ff4444;
+    background:#ffccbb;
+}
+   
+   
+/* bulk edit box */
+#bulk_edit_options
+{
+    display:none;
+    margin-top:9px;
+    width:650px;
+}
+
+ #bulk_edit_box 
+ {
+    display:block;
+    color:#777;
+    border:1px solid #aaa;
+    background:#eee;
+    padding:0px;
+    margin:0px;
+ }
+ 
+ #confirm
+ {
+    display:none;
+    background:#35a;
+    padding:3px;
+    color:white;width:650px;
+    
+}
+ #bulk_top_bar
+ {
+    background:#ddd;
+    height:20px;
+    padding:3px 10px 0px 10px;
+    border-bottom:1px solid #ccc
+}
+
+/* mobile device */
+@media only screen and (max-width : 750px) {
+    body { 
+        -webkit-text-size-adjust: none; 
+        font-size: 14px;
+    }
+    .display {
+      float: none
+    }
+}
+
+@media only screen and (max-width : 500px) {
+    .filters {
+      clear: both;
+      position: relative;
+      top: 2px;
+    }
+}
diff --git a/static/css/popup.css b/static/css/popup.css
new file mode 100644
--- /dev/null
+++ b/static/css/popup.css
@@ -0,0 +1,61 @@
+html {
+  box-sizing: border-box;
+}
+*, *:before, *:after {
+  box-sizing: inherit;
+}
+[hidden] {
+    display: none !important
+}
+#popup_header
+	{
+	  color:#aaa;
+	  height:25px;
+	}
+	.error { color:red}
+	.login { color:blue }
+	#logout { float:right; }
+	.alert { margin-left:20px;color:#333;background:#ced;float:left;padding:3px;padding-top:1px;width:300px;border:1px solid #acc; }
+#title { float:left ;padding-top:2px; }
+	body
+{
+  color:#333;
+  font-family:helvetica;
+  font-size:12px;
+  margin-left:20px;
+}
+
+form label { display: block; margin-bottom: 10px; }
+li { list-style-type: none; margin: 0; padding: 0; display: block;} 
+section,footer,header { display: block; }
+fieldset { border: none; }
+legend { display: none; }
+
+
+a { text-decoration:none; }
+
+a.suggested_tag { 
+    text-decoration:none;
+}
+
+a.navlink 
+{
+    text-decoration:none;
+}
+
+.count { color:#aaa }
+.when { color:#999}
+
+.unread { color:#b41 }
+a.unread { color:#b41 }
+a.bookmark_title { font-size:120%;}
+.disabled { color:#bbb }
+
+input[type='checkbox'] {
+    margin: 0;
+    margin-bottom: 8px;
+}
+
+label {
+    cursor: pointer;
+}
diff --git a/static/images/bluepin.gif b/static/images/bluepin.gif
new file mode 100644
Binary files /dev/null and b/static/images/bluepin.gif differ
diff --git a/static/js/app.js b/static/js/app.js
new file mode 100644
--- /dev/null
+++ b/static/js/app.js
@@ -0,0 +1,1 @@
+var PS={};(function(exports){"use strict";exports.arrayBind=function(arr){return function(f){var result=[];for(var i=0,l=arr.length;i<l;i++){Array.prototype.push.apply(result,f(arr[i]))}return result}}})(PS["Control.Bind"]=PS["Control.Bind"]||{});(function(exports){"use strict";exports.arrayApply=function(fs){return function(xs){var l=fs.length;var k=xs.length;var result=new Array(l*k);var n=0;for(var i=0;i<l;i++){var f=fs[i];for(var j=0;j<k;j++){result[n++]=f(xs[j])}}return result}}})(PS["Control.Apply"]=PS["Control.Apply"]||{});(function(exports){"use strict";var Semigroupoid=function(compose){this.compose=compose};var semigroupoidFn=new Semigroupoid(function(f){return function(g){return function(x){return f(g(x))}}});var compose=function(dict){return dict.compose};exports["compose"]=compose;exports["Semigroupoid"]=Semigroupoid;exports["semigroupoidFn"]=semigroupoidFn})(PS["Control.Semigroupoid"]=PS["Control.Semigroupoid"]||{});(function(exports){"use strict";var Control_Semigroupoid=PS["Control.Semigroupoid"];var Category=function(Semigroupoid0,identity){this.Semigroupoid0=Semigroupoid0;this.identity=identity};var identity=function(dict){return dict.identity};var categoryFn=new Category(function(){return Control_Semigroupoid.semigroupoidFn},function(x){return x});exports["Category"]=Category;exports["identity"]=identity;exports["categoryFn"]=categoryFn})(PS["Control.Category"]=PS["Control.Category"]||{});(function(exports){"use strict";var otherwise=true;exports["otherwise"]=otherwise})(PS["Data.Boolean"]=PS["Data.Boolean"]||{});(function(exports){"use strict";exports.refEq=function(r1){return function(r2){return r1===r2}}})(PS["Data.Eq"]=PS["Data.Eq"]||{});(function(exports){"use strict";exports.boolConj=function(b1){return function(b2){return b1&&b2}};exports.boolDisj=function(b1){return function(b2){return b1||b2}};exports.boolNot=function(b){return!b}})(PS["Data.HeytingAlgebra"]=PS["Data.HeytingAlgebra"]||{});(function(exports){"use strict";exports.unit={}})(PS["Data.Unit"]=PS["Data.Unit"]||{});(function(exports){"use strict";exports.showIntImpl=function(n){return n.toString()};exports.showStringImpl=function(s){var l=s.length;return'"'+s.replace(/[\0-\x1F\x7F"\\]/g,function(c,i){switch(c){case'"':case"\\":return"\\"+c;case"":return"\\a";case"\b":return"\\b";case"\f":return"\\f";case"\n":return"\\n";case"\r":return"\\r";case"\t":return"\\t";case"\v":return"\\v"}var k=i+1;var empty=k<l&&s[k]>="0"&&s[k]<="9"?"\\&":"";return"\\"+c.charCodeAt(0).toString(10)+empty})+'"'}})(PS["Data.Show"]=PS["Data.Show"]||{});(function(exports){"use strict";var $foreign=PS["Data.Show"];var Data_Symbol=PS["Data.Symbol"];var Record_Unsafe=PS["Record.Unsafe"];var Type_Data_RowList=PS["Type.Data.RowList"];var Show=function(show){this.show=show};var showString=new Show($foreign.showStringImpl);var showInt=new Show($foreign.showIntImpl);var show=function(dict){return dict.show};exports["Show"]=Show;exports["show"]=show;exports["showInt"]=showInt;exports["showString"]=showString})(PS["Data.Show"]=PS["Data.Show"]||{});(function(exports){"use strict";var $foreign=PS["Data.Unit"];var Data_Show=PS["Data.Show"];exports["unit"]=$foreign.unit})(PS["Data.Unit"]=PS["Data.Unit"]||{});(function(exports){"use strict";var $foreign=PS["Data.HeytingAlgebra"];var Data_Symbol=PS["Data.Symbol"];var Data_Unit=PS["Data.Unit"];var Record_Unsafe=PS["Record.Unsafe"];var Type_Data_Row=PS["Type.Data.Row"];var Type_Data_RowList=PS["Type.Data.RowList"];var HeytingAlgebra=function(conj,disj,ff,implies,not,tt){this.conj=conj;this.disj=disj;this.ff=ff;this.implies=implies;this.not=not;this.tt=tt};var tt=function(dict){return dict.tt};var not=function(dict){return dict.not};var implies=function(dict){return dict.implies};var ff=function(dict){return dict.ff};var disj=function(dict){return dict.disj};var heytingAlgebraBoolean=new HeytingAlgebra($foreign.boolConj,$foreign.boolDisj,false,function(a){return function(b){return disj(heytingAlgebraBoolean)(not(heytingAlgebraBoolean)(a))(b)}},$foreign.boolNot,true);var conj=function(dict){return dict.conj};exports["HeytingAlgebra"]=HeytingAlgebra;exports["tt"]=tt;exports["ff"]=ff;exports["implies"]=implies;exports["conj"]=conj;exports["disj"]=disj;exports["not"]=not;exports["heytingAlgebraBoolean"]=heytingAlgebraBoolean})(PS["Data.HeytingAlgebra"]=PS["Data.HeytingAlgebra"]||{});(function(exports){"use strict";var $foreign=PS["Data.Eq"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Symbol=PS["Data.Symbol"];var Data_Unit=PS["Data.Unit"];var Data_Void=PS["Data.Void"];var Record_Unsafe=PS["Record.Unsafe"];var Type_Data_RowList=PS["Type.Data.RowList"];var Eq=function(eq){this.eq=eq};var eqString=new Eq($foreign.refEq);var eqInt=new Eq($foreign.refEq);var eqChar=new Eq($foreign.refEq);var eq=function(dict){return dict.eq};exports["Eq"]=Eq;exports["eq"]=eq;exports["eqInt"]=eqInt;exports["eqChar"]=eqChar;exports["eqString"]=eqString})(PS["Data.Eq"]=PS["Data.Eq"]||{});(function(exports){"use strict";exports.unsafeCompareImpl=function(lt){return function(eq){return function(gt){return function(x){return function(y){return x<y?lt:x===y?eq:gt}}}}}})(PS["Data.Ord.Unsafe"]=PS["Data.Ord.Unsafe"]||{});(function(exports){"use strict";exports.concatString=function(s1){return function(s2){return s1+s2}}})(PS["Data.Semigroup"]=PS["Data.Semigroup"]||{});(function(exports){"use strict";var $foreign=PS["Data.Semigroup"];var Data_Symbol=PS["Data.Symbol"];var Data_Unit=PS["Data.Unit"];var Data_Void=PS["Data.Void"];var Record_Unsafe=PS["Record.Unsafe"];var Type_Data_RowList=PS["Type.Data.RowList"];var Semigroup=function(append){this.append=append};var semigroupString=new Semigroup($foreign.concatString);var append=function(dict){return dict.append};exports["Semigroup"]=Semigroup;exports["append"]=append;exports["semigroupString"]=semigroupString})(PS["Data.Semigroup"]=PS["Data.Semigroup"]||{});(function(exports){"use strict";var Data_Eq=PS["Data.Eq"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var LT=function(){function LT(){}LT.value=new LT;return LT}();var GT=function(){function GT(){}GT.value=new GT;return GT}();var EQ=function(){function EQ(){}EQ.value=new EQ;return EQ}();exports["LT"]=LT;exports["GT"]=GT;exports["EQ"]=EQ})(PS["Data.Ordering"]=PS["Data.Ordering"]||{});(function(exports){"use strict";var $foreign=PS["Data.Ord.Unsafe"];var Data_Ordering=PS["Data.Ordering"];var unsafeCompare=$foreign.unsafeCompareImpl(Data_Ordering.LT.value)(Data_Ordering.EQ.value)(Data_Ordering.GT.value);exports["unsafeCompare"]=unsafeCompare})(PS["Data.Ord.Unsafe"]=PS["Data.Ord.Unsafe"]||{});(function(exports){"use strict";exports.intSub=function(x){return function(y){return x-y|0}}})(PS["Data.Ring"]=PS["Data.Ring"]||{});(function(exports){"use strict";exports.intAdd=function(x){return function(y){return x+y|0}};exports.intMul=function(x){return function(y){return x*y|0}}})(PS["Data.Semiring"]=PS["Data.Semiring"]||{});(function(exports){"use strict";var $foreign=PS["Data.Semiring"];var Data_Symbol=PS["Data.Symbol"];var Data_Unit=PS["Data.Unit"];var Record_Unsafe=PS["Record.Unsafe"];var Type_Data_Row=PS["Type.Data.Row"];var Type_Data_RowList=PS["Type.Data.RowList"];var Semiring=function(add,mul,one,zero){this.add=add;this.mul=mul;this.one=one;this.zero=zero};var zero=function(dict){return dict.zero};var semiringInt=new Semiring($foreign.intAdd,$foreign.intMul,1,0);var one=function(dict){return dict.one};var mul=function(dict){return dict.mul};var add=function(dict){return dict.add};exports["Semiring"]=Semiring;exports["add"]=add;exports["zero"]=zero;exports["mul"]=mul;exports["one"]=one;exports["semiringInt"]=semiringInt})(PS["Data.Semiring"]=PS["Data.Semiring"]||{});(function(exports){"use strict";var $foreign=PS["Data.Ring"];var Data_Semiring=PS["Data.Semiring"];var Data_Symbol=PS["Data.Symbol"];var Data_Unit=PS["Data.Unit"];var Record_Unsafe=PS["Record.Unsafe"];var Type_Data_RowList=PS["Type.Data.RowList"];var Ring=function(Semiring0,sub){this.Semiring0=Semiring0;this.sub=sub};var sub=function(dict){return dict.sub};var ringInt=new Ring(function(){return Data_Semiring.semiringInt},$foreign.intSub);exports["Ring"]=Ring;exports["sub"]=sub;exports["ringInt"]=ringInt})(PS["Data.Ring"]=PS["Data.Ring"]||{});(function(exports){"use strict";var $foreign=PS["Data.Ord"];var Data_Eq=PS["Data.Eq"];var Data_Ord_Unsafe=PS["Data.Ord.Unsafe"];var Data_Ordering=PS["Data.Ordering"];var Data_Ring=PS["Data.Ring"];var Data_Semiring=PS["Data.Semiring"];var Data_Unit=PS["Data.Unit"];var Data_Void=PS["Data.Void"];var Ord=function(Eq0,compare){this.Eq0=Eq0;this.compare=compare};var ordInt=new Ord(function(){return Data_Eq.eqInt},Data_Ord_Unsafe.unsafeCompare);var ordChar=new Ord(function(){return Data_Eq.eqChar},Data_Ord_Unsafe.unsafeCompare);var compare=function(dict){return dict.compare};exports["Ord"]=Ord;exports["compare"]=compare;exports["ordInt"]=ordInt;exports["ordChar"]=ordChar})(PS["Data.Ord"]=PS["Data.Ord"]||{});(function(exports){"use strict";var Control_Category=PS["Control.Category"];var Data_Boolean=PS["Data.Boolean"];var Data_Ord=PS["Data.Ord"];var Data_Ring=PS["Data.Ring"];var on=function(f){return function(g){return function(x){return function(y){return f(g(x))(g(y))}}}};var flip=function(f){return function(b){return function(a){return f(a)(b)}}};var $$const=function(a){return function(v){return a}};exports["flip"]=flip;exports["const"]=$$const;exports["on"]=on})(PS["Data.Function"]=PS["Data.Function"]||{});(function(exports){"use strict";exports.arrayMap=function(f){return function(arr){var l=arr.length;var result=new Array(l);for(var i=0;i<l;i++){result[i]=f(arr[i])}return result}}})(PS["Data.Functor"]=PS["Data.Functor"]||{});(function(exports){"use strict";var $foreign=PS["Data.Functor"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Function=PS["Data.Function"];var Data_Unit=PS["Data.Unit"];var Functor=function(map){this.map=map};var map=function(dict){return dict.map};var $$void=function(dictFunctor){return map(dictFunctor)(Data_Function["const"](Data_Unit.unit))};var functorFn=new Functor(Control_Semigroupoid.compose(Control_Semigroupoid.semigroupoidFn));var functorArray=new Functor($foreign.arrayMap);exports["Functor"]=Functor;exports["map"]=map;exports["void"]=$$void;exports["functorFn"]=functorFn;exports["functorArray"]=functorArray})(PS["Data.Functor"]=PS["Data.Functor"]||{});(function(exports){"use strict";var $foreign=PS["Control.Apply"];var Control_Category=PS["Control.Category"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Apply=function(Functor0,apply){this.Functor0=Functor0;this.apply=apply};var applyArray=new Apply(function(){return Data_Functor.functorArray},$foreign.arrayApply);var apply=function(dict){return dict.apply};var applySecond=function(dictApply){return function(a){return function(b){return apply(dictApply)(Data_Functor.map(dictApply.Functor0())(Data_Function["const"](Control_Category.identity(Control_Category.categoryFn)))(a))(b)}}};exports["Apply"]=Apply;exports["apply"]=apply;exports["applySecond"]=applySecond;exports["applyArray"]=applyArray})(PS["Control.Apply"]=PS["Control.Apply"]||{});(function(exports){"use strict";var Control_Apply=PS["Control.Apply"];var Data_Functor=PS["Data.Functor"];var Data_Unit=PS["Data.Unit"];var Applicative=function(Apply0,pure){this.Apply0=Apply0;this.pure=pure};var pure=function(dict){return dict.pure};var when=function(dictApplicative){return function(v){return function(v1){if(v){return v1}if(!v){return pure(dictApplicative)(Data_Unit.unit)}throw new Error("Failed pattern match at Control.Applicative line 57, column 1 - line 57, column 63: "+[v.constructor.name,v1.constructor.name])}}};var liftA1=function(dictApplicative){return function(f){return function(a){return Control_Apply.apply(dictApplicative.Apply0())(pure(dictApplicative)(f))(a)}}};exports["Applicative"]=Applicative;exports["pure"]=pure;exports["liftA1"]=liftA1;exports["when"]=when})(PS["Control.Applicative"]=PS["Control.Applicative"]||{});(function(exports){"use strict";var $foreign=PS["Control.Bind"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Category=PS["Control.Category"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Unit=PS["Data.Unit"];var Bind=function(Apply0,bind){this.Apply0=Apply0;this.bind=bind};var Discard=function(discard){this.discard=discard};var discard=function(dict){return dict.discard};var bindArray=new Bind(function(){return Control_Apply.applyArray},$foreign.arrayBind);var bind=function(dict){return dict.bind};var bindFlipped=function(dictBind){return Data_Function.flip(bind(dictBind))};var composeKleisliFlipped=function(dictBind){return function(f){return function(g){return function(a){return bindFlipped(dictBind)(f)(g(a))}}}};var discardUnit=new Discard(function(dictBind){return bind(dictBind)});var join=function(dictBind){return function(m){return bind(dictBind)(m)(Control_Category.identity(Control_Category.categoryFn))}};exports["Bind"]=Bind;exports["bind"]=bind;exports["bindFlipped"]=bindFlipped;exports["Discard"]=Discard;exports["discard"]=discard;exports["join"]=join;exports["composeKleisliFlipped"]=composeKleisliFlipped;exports["bindArray"]=bindArray;exports["discardUnit"]=discardUnit})(PS["Control.Bind"]=PS["Control.Bind"]||{});(function(exports){"use strict";exports.length=function(xs){return xs.length};exports.cons=function(e){return function(l){return[e].concat(l)}};exports.snoc=function(l){return function(e){var l1=l.slice();l1.push(e);return l1}};exports.concat=function(xss){if(xss.length<=1e4){return Array.prototype.concat.apply([],xss)}var result=[];for(var i=0,l=xss.length;i<l;i++){var xs=xss[i];for(var j=0,m=xs.length;j<m;j++){result.push(xs[j])}}return result};exports.filter=function(f){return function(xs){return xs.filter(f)}};exports.slice=function(s){return function(e){return function(l){return l.slice(s,e)}}}})(PS["Data.Array"]=PS["Data.Array"]||{});(function(exports){"use strict";var Data_Functor=PS["Data.Functor"];var Data_Semigroup=PS["Data.Semigroup"];var Alt=function(Functor0,alt){this.Functor0=Functor0;this.alt=alt};var alt=function(dict){return dict.alt};exports["Alt"]=Alt;exports["alt"]=alt})(PS["Control.Alt"]=PS["Control.Alt"]||{});(function(exports){"use strict";exports.foldrArray=function(f){return function(init){return function(xs){var acc=init;var len=xs.length;for(var i=len-1;i>=0;i--){acc=f(xs[i])(acc)}return acc}}};exports.foldlArray=function(f){return function(init){return function(xs){var acc=init;var len=xs.length;for(var i=0;i<len;i++){acc=f(acc)(xs[i])}return acc}}}})(PS["Data.Foldable"]=PS["Data.Foldable"]||{});(function(exports){"use strict";var Control_Alt=PS["Control.Alt"];var Data_Functor=PS["Data.Functor"];var Plus=function(Alt0,empty){this.Alt0=Alt0;this.empty=empty};var empty=function(dict){return dict.empty};exports["Plus"]=Plus;exports["empty"]=empty})(PS["Control.Plus"]=PS["Control.Plus"]||{});(function(exports){"use strict";var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Data_Functor=PS["Data.Functor"];var Data_Unit=PS["Data.Unit"];var Monad=function(Applicative0,Bind1){this.Applicative0=Applicative0;this.Bind1=Bind1};var liftM1=function(dictMonad){return function(f){return function(a){return Control_Bind.bind(dictMonad.Bind1())(a)(function(v){return Control_Applicative.pure(dictMonad.Applicative0())(f(v))})}}};var ap=function(dictMonad){return function(f){return function(a){return Control_Bind.bind(dictMonad.Bind1())(f)(function(v){return Control_Bind.bind(dictMonad.Bind1())(a)(function(v1){return Control_Applicative.pure(dictMonad.Applicative0())(v(v1))})})}}};exports["Monad"]=Monad;exports["liftM1"]=liftM1;exports["ap"]=ap})(PS["Control.Monad"]=PS["Control.Monad"]||{});(function(exports){"use strict";exports.topInt=2147483647;exports.bottomInt=-2147483648;exports.topChar=String.fromCharCode(65535);exports.bottomChar=String.fromCharCode(0)})(PS["Data.Bounded"]=PS["Data.Bounded"]||{});(function(exports){"use strict";var $foreign=PS["Data.Bounded"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Unit=PS["Data.Unit"];var Bounded=function(Ord0,bottom,top){this.Ord0=Ord0;this.bottom=bottom;this.top=top};var top=function(dict){return dict.top};var boundedInt=new Bounded(function(){return Data_Ord.ordInt},$foreign.bottomInt,$foreign.topInt);var boundedChar=new Bounded(function(){return Data_Ord.ordChar},$foreign.bottomChar,$foreign.topChar);var bottom=function(dict){return dict.bottom};exports["Bounded"]=Bounded;exports["bottom"]=bottom;exports["top"]=top;exports["boundedInt"]=boundedInt;exports["boundedChar"]=boundedChar})(PS["Data.Bounded"]=PS["Data.Bounded"]||{});(function(exports){"use strict";exports.intDegree=function(x){return Math.min(Math.abs(x),2147483647)};exports.intDiv=function(x){return function(y){if(y===0)return 0;return y>0?Math.floor(x/y):-Math.floor(x/-y)}};exports.intMod=function(x){return function(y){if(y===0)return 0;var yy=Math.abs(y);return(x%yy+yy)%yy}}})(PS["Data.EuclideanRing"]=PS["Data.EuclideanRing"]||{});(function(exports){"use strict";var Data_Ring=PS["Data.Ring"];var Data_Semiring=PS["Data.Semiring"];var Data_Symbol=PS["Data.Symbol"];var Data_Unit=PS["Data.Unit"];var CommutativeRing=function(Ring0){this.Ring0=Ring0};var commutativeRingInt=new CommutativeRing(function(){return Data_Ring.ringInt});exports["CommutativeRing"]=CommutativeRing;exports["commutativeRingInt"]=commutativeRingInt})(PS["Data.CommutativeRing"]=PS["Data.CommutativeRing"]||{});(function(exports){"use strict";var $foreign=PS["Data.EuclideanRing"];var Data_BooleanAlgebra=PS["Data.BooleanAlgebra"];var Data_CommutativeRing=PS["Data.CommutativeRing"];var Data_Eq=PS["Data.Eq"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Ring=PS["Data.Ring"];var Data_Semiring=PS["Data.Semiring"];var EuclideanRing=function(CommutativeRing0,degree,div,mod){this.CommutativeRing0=CommutativeRing0;this.degree=degree;this.div=div;this.mod=mod};var mod=function(dict){return dict.mod};var euclideanRingInt=new EuclideanRing(function(){return Data_CommutativeRing.commutativeRingInt},$foreign.intDegree,$foreign.intDiv,$foreign.intMod);var div=function(dict){return dict.div};var degree=function(dict){return dict.degree};exports["EuclideanRing"]=EuclideanRing;exports["degree"]=degree;exports["div"]=div;exports["mod"]=mod;exports["euclideanRingInt"]=euclideanRingInt})(PS["Data.EuclideanRing"]=PS["Data.EuclideanRing"]||{});(function(exports){"use strict";var Data_Boolean=PS["Data.Boolean"];var Data_Eq=PS["Data.Eq"];var Data_EuclideanRing=PS["Data.EuclideanRing"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Symbol=PS["Data.Symbol"];var Data_Unit=PS["Data.Unit"];var Record_Unsafe=PS["Record.Unsafe"];var Type_Data_RowList=PS["Type.Data.RowList"];var Monoid=function(Semigroup0,mempty){this.Semigroup0=Semigroup0;this.mempty=mempty};var monoidString=new Monoid(function(){return Data_Semigroup.semigroupString},"");var mempty=function(dict){return dict.mempty};exports["Monoid"]=Monoid;exports["mempty"]=mempty;exports["monoidString"]=monoidString})(PS["Data.Monoid"]=PS["Data.Monoid"]||{});(function(exports){"use strict";var Control_Alt=PS["Control.Alt"];var Control_Alternative=PS["Control.Alternative"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Category=PS["Control.Category"];var Control_Extend=PS["Control.Extend"];var Control_Monad=PS["Control.Monad"];var Control_MonadZero=PS["Control.MonadZero"];var Control_Plus=PS["Control.Plus"];var Data_Bounded=PS["Data.Bounded"];var Data_Eq=PS["Data.Eq"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Functor_Invariant=PS["Data.Functor.Invariant"];var Data_Monoid=PS["Data.Monoid"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Data_Unit=PS["Data.Unit"];var Prelude=PS["Prelude"];var Nothing=function(){function Nothing(){}Nothing.value=new Nothing;return Nothing}();var Just=function(){function Just(value0){this.value0=value0}Just.create=function(value0){return new Just(value0)};return Just}();var maybe=function(v){return function(v1){return function(v2){if(v2 instanceof Nothing){return v}if(v2 instanceof Just){return v1(v2.value0)}throw new Error("Failed pattern match at Data.Maybe line 218, column 1 - line 218, column 51: "+[v.constructor.name,v1.constructor.name,v2.constructor.name])}}};var isNothing=maybe(true)(Data_Function["const"](false));var functorMaybe=new Data_Functor.Functor(function(v){return function(v1){if(v1 instanceof Just){return new Just(v(v1.value0))}return Nothing.value}});var fromMaybe=function(a){return maybe(a)(Control_Category.identity(Control_Category.categoryFn))};var fromJust=function(dictPartial){return function(v){var $__unused=function(dictPartial1){return function($dollar35){return $dollar35}};return $__unused(dictPartial)(function(){if(v instanceof Just){return v.value0}throw new Error("Failed pattern match at Data.Maybe line 269, column 1 - line 269, column 46: "+[v.constructor.name])}())}};var applyMaybe=new Control_Apply.Apply(function(){return functorMaybe},function(v){return function(v1){if(v instanceof Just){return Data_Functor.map(functorMaybe)(v.value0)(v1)}if(v instanceof Nothing){return Nothing.value}throw new Error("Failed pattern match at Data.Maybe line 67, column 1 - line 67, column 35: "+[v.constructor.name,v1.constructor.name])}});var bindMaybe=new Control_Bind.Bind(function(){return applyMaybe},function(v){return function(v1){if(v instanceof Just){return v1(v.value0)}if(v instanceof Nothing){return Nothing.value}throw new Error("Failed pattern match at Data.Maybe line 126, column 1 - line 126, column 33: "+[v.constructor.name,v1.constructor.name])}});exports["Nothing"]=Nothing;exports["Just"]=Just;exports["maybe"]=maybe;exports["fromMaybe"]=fromMaybe;exports["isNothing"]=isNothing;exports["fromJust"]=fromJust;exports["functorMaybe"]=functorMaybe;exports["applyMaybe"]=applyMaybe;exports["bindMaybe"]=bindMaybe})(PS["Data.Maybe"]=PS["Data.Maybe"]||{});(function(exports){"use strict";var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Monad=PS["Control.Monad"];var Data_Bounded=PS["Data.Bounded"];var Data_Eq=PS["Data.Eq"];var Data_Functor=PS["Data.Functor"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Monoid=PS["Data.Monoid"];var Data_Ord=PS["Data.Ord"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semiring=PS["Data.Semiring"];var Data_Show=PS["Data.Show"];var Prelude=PS["Prelude"];var Disj=function(x){return x};var semigroupDisj=function(dictHeytingAlgebra){return new Data_Semigroup.Semigroup(function(v){return function(v1){return Data_HeytingAlgebra.disj(dictHeytingAlgebra)(v)(v1)}})};var monoidDisj=function(dictHeytingAlgebra){return new Data_Monoid.Monoid(function(){return semigroupDisj(dictHeytingAlgebra)},Data_HeytingAlgebra.ff(dictHeytingAlgebra))};exports["Disj"]=Disj;exports["semigroupDisj"]=semigroupDisj;exports["monoidDisj"]=monoidDisj})(PS["Data.Monoid.Disj"]=PS["Data.Monoid.Disj"]||{});(function(exports){"use strict";var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Monoid_Additive=PS["Data.Monoid.Additive"];var Data_Monoid_Conj=PS["Data.Monoid.Conj"];var Data_Monoid_Disj=PS["Data.Monoid.Disj"];var Data_Monoid_Dual=PS["Data.Monoid.Dual"];var Data_Monoid_Endo=PS["Data.Monoid.Endo"];var Data_Monoid_Multiplicative=PS["Data.Monoid.Multiplicative"];var Data_Semigroup_First=PS["Data.Semigroup.First"];var Data_Semigroup_Last=PS["Data.Semigroup.Last"];var Prelude=PS["Prelude"];var Newtype=function(unwrap,wrap){this.unwrap=unwrap;this.wrap=wrap};var wrap=function(dict){return dict.wrap};var unwrap=function(dict){return dict.unwrap};var newtypeDisj=new Newtype(function(v){return v},Data_Monoid_Disj.Disj);var alaF=function(dictFunctor){return function(dictFunctor1){return function(dictNewtype){return function(dictNewtype1){return function(v){return function(f){return function($80){return Data_Functor.map(dictFunctor1)(unwrap(dictNewtype1))(f(Data_Functor.map(dictFunctor)(wrap(dictNewtype))($80)))}}}}}}};exports["unwrap"]=unwrap;exports["wrap"]=wrap;exports["Newtype"]=Newtype;exports["alaF"]=alaF;exports["newtypeDisj"]=newtypeDisj})(PS["Data.Newtype"]=PS["Data.Newtype"]||{});(function(exports){"use strict";var $foreign=PS["Data.Foldable"];var Control_Alt=PS["Control.Alt"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Category=PS["Control.Category"];var Control_Plus=PS["Control.Plus"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Eq=PS["Data.Eq"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Maybe_First=PS["Data.Maybe.First"];var Data_Maybe_Last=PS["Data.Maybe.Last"];var Data_Monoid=PS["Data.Monoid"];var Data_Monoid_Additive=PS["Data.Monoid.Additive"];var Data_Monoid_Conj=PS["Data.Monoid.Conj"];var Data_Monoid_Disj=PS["Data.Monoid.Disj"];var Data_Monoid_Dual=PS["Data.Monoid.Dual"];var Data_Monoid_Endo=PS["Data.Monoid.Endo"];var Data_Monoid_Multiplicative=PS["Data.Monoid.Multiplicative"];var Data_Newtype=PS["Data.Newtype"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semiring=PS["Data.Semiring"];var Data_Unit=PS["Data.Unit"];var Prelude=PS["Prelude"];var Foldable=function(foldMap,foldl,foldr){this.foldMap=foldMap;this.foldl=foldl;this.foldr=foldr};var foldr=function(dict){return dict.foldr};var traverse_=function(dictApplicative){return function(dictFoldable){return function(f){return foldr(dictFoldable)(function($195){return Control_Apply.applySecond(dictApplicative.Apply0())(f($195))})(Control_Applicative.pure(dictApplicative)(Data_Unit.unit))}}};var for_=function(dictApplicative){return function(dictFoldable){return Data_Function.flip(traverse_(dictApplicative)(dictFoldable))}};var foldl=function(dict){return dict.foldl};var intercalate=function(dictFoldable){return function(dictMonoid){return function(sep){return function(xs){var go=function(v){return function(x){if(v.init){return{init:false,acc:x}}return{init:false,acc:Data_Semigroup.append(dictMonoid.Semigroup0())(v.acc)(Data_Semigroup.append(dictMonoid.Semigroup0())(sep)(x))}}};return foldl(dictFoldable)(go)({init:true,acc:Data_Monoid.mempty(dictMonoid)})(xs).acc}}}};var foldableMaybe=new Foldable(function(dictMonoid){return function(f){return function(v){if(v instanceof Data_Maybe.Nothing){return Data_Monoid.mempty(dictMonoid)}if(v instanceof Data_Maybe.Just){return f(v.value0)}throw new Error("Failed pattern match at Data.Foldable line 129, column 1 - line 129, column 41: "+[f.constructor.name,v.constructor.name])}}},function(v){return function(z){return function(v1){if(v1 instanceof Data_Maybe.Nothing){return z}if(v1 instanceof Data_Maybe.Just){return v(z)(v1.value0)}throw new Error("Failed pattern match at Data.Foldable line 129, column 1 - line 129, column 41: "+[v.constructor.name,z.constructor.name,v1.constructor.name])}}},function(v){return function(z){return function(v1){if(v1 instanceof Data_Maybe.Nothing){return z}if(v1 instanceof Data_Maybe.Just){return v(v1.value0)(z)}throw new Error("Failed pattern match at Data.Foldable line 129, column 1 - line 129, column 41: "+[v.constructor.name,z.constructor.name,v1.constructor.name])}}});var foldMapDefaultR=function(dictFoldable){return function(dictMonoid){return function(f){return foldr(dictFoldable)(function(x){return function(acc){return Data_Semigroup.append(dictMonoid.Semigroup0())(f(x))(acc)}})(Data_Monoid.mempty(dictMonoid))}}};var foldableArray=new Foldable(function(dictMonoid){return foldMapDefaultR(foldableArray)(dictMonoid)},$foreign.foldlArray,$foreign.foldrArray);var foldMap=function(dict){return dict.foldMap};var any=function(dictFoldable){return function(dictHeytingAlgebra){return Data_Newtype.alaF(Data_Functor.functorFn)(Data_Functor.functorFn)(Data_Newtype.newtypeDisj)(Data_Newtype.newtypeDisj)(Data_Monoid_Disj.Disj)(foldMap(dictFoldable)(Data_Monoid_Disj.monoidDisj(dictHeytingAlgebra)))}};exports["Foldable"]=Foldable;exports["foldr"]=foldr;exports["foldl"]=foldl;exports["foldMap"]=foldMap;exports["foldMapDefaultR"]=foldMapDefaultR;exports["traverse_"]=traverse_;exports["for_"]=for_;exports["intercalate"]=intercalate;exports["any"]=any;exports["foldableArray"]=foldableArray;exports["foldableMaybe"]=foldableMaybe})(PS["Data.Foldable"]=PS["Data.Foldable"]||{});(function(exports){"use strict";exports.traverseArrayImpl=function(){function array1(a){return[a]}function array2(a){return function(b){return[a,b]}}function array3(a){return function(b){return function(c){return[a,b,c]}}}function concat2(xs){return function(ys){return xs.concat(ys)}}return function(apply){return function(map){return function(pure){return function(f){return function(array){function go(bot,top){switch(top-bot){case 0:return pure([]);case 1:return map(array1)(f(array[bot]));case 2:return apply(map(array2)(f(array[bot])))(f(array[bot+1]));case 3:return apply(apply(map(array3)(f(array[bot])))(f(array[bot+1])))(f(array[bot+2]));default:var pivot=bot+Math.floor((top-bot)/4)*2;return apply(map(concat2)(go(bot,pivot)))(go(pivot,top))}}return go(0,array.length)}}}}}}()})(PS["Data.Traversable"]=PS["Data.Traversable"]||{});(function(exports){"use strict";var $foreign=PS["Data.Traversable"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Category=PS["Control.Category"];var Data_Foldable=PS["Data.Foldable"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Maybe_First=PS["Data.Maybe.First"];var Data_Maybe_Last=PS["Data.Maybe.Last"];var Data_Monoid_Additive=PS["Data.Monoid.Additive"];var Data_Monoid_Conj=PS["Data.Monoid.Conj"];var Data_Monoid_Disj=PS["Data.Monoid.Disj"];var Data_Monoid_Dual=PS["Data.Monoid.Dual"];var Data_Monoid_Multiplicative=PS["Data.Monoid.Multiplicative"];var Data_Traversable_Accum=PS["Data.Traversable.Accum"];var Data_Traversable_Accum_Internal=PS["Data.Traversable.Accum.Internal"];var Prelude=PS["Prelude"];var Traversable=function(Foldable1,Functor0,sequence,traverse){this.Foldable1=Foldable1;this.Functor0=Functor0;this.sequence=sequence;this.traverse=traverse};var traverse=function(dict){return dict.traverse};var traversableMaybe=new Traversable(function(){return Data_Foldable.foldableMaybe},function(){return Data_Maybe.functorMaybe},function(dictApplicative){return function(v){if(v instanceof Data_Maybe.Nothing){return Control_Applicative.pure(dictApplicative)(Data_Maybe.Nothing.value)}if(v instanceof Data_Maybe.Just){return Data_Functor.map(dictApplicative.Apply0().Functor0())(Data_Maybe.Just.create)(v.value0)}throw new Error("Failed pattern match at Data.Traversable line 86, column 1 - line 86, column 47: "+[v.constructor.name])}},function(dictApplicative){return function(v){return function(v1){if(v1 instanceof Data_Maybe.Nothing){return Control_Applicative.pure(dictApplicative)(Data_Maybe.Nothing.value)}if(v1 instanceof Data_Maybe.Just){return Data_Functor.map(dictApplicative.Apply0().Functor0())(Data_Maybe.Just.create)(v(v1.value0))}throw new Error("Failed pattern match at Data.Traversable line 86, column 1 - line 86, column 47: "+[v.constructor.name,v1.constructor.name])}}});var sequenceDefault=function(dictTraversable){return function(dictApplicative){return traverse(dictTraversable)(dictApplicative)(Control_Category.identity(Control_Category.categoryFn))}};var traversableArray=new Traversable(function(){return Data_Foldable.foldableArray},function(){return Data_Functor.functorArray},function(dictApplicative){return sequenceDefault(traversableArray)(dictApplicative)},function(dictApplicative){return $foreign.traverseArrayImpl(Control_Apply.apply(dictApplicative.Apply0()))(Data_Functor.map(dictApplicative.Apply0().Functor0()))(Control_Applicative.pure(dictApplicative))});var sequence=function(dict){return dict.sequence};var $$for=function(dictApplicative){return function(dictTraversable){return function(x){return function(f){return traverse(dictTraversable)(dictApplicative)(f)(x)}}}};exports["Traversable"]=Traversable;exports["traverse"]=traverse;exports["sequence"]=sequence;exports["sequenceDefault"]=sequenceDefault;exports["for"]=$$for;exports["traversableArray"]=traversableArray;exports["traversableMaybe"]=traversableMaybe})(PS["Data.Traversable"]=PS["Data.Traversable"]||{});(function(exports){"use strict";var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Biapplicative=PS["Control.Biapplicative"];var Control_Biapply=PS["Control.Biapply"];var Control_Bind=PS["Control.Bind"];var Control_Comonad=PS["Control.Comonad"];var Control_Extend=PS["Control.Extend"];var Control_Lazy=PS["Control.Lazy"];var Control_Monad=PS["Control.Monad"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Bifoldable=PS["Data.Bifoldable"];var Data_Bifunctor=PS["Data.Bifunctor"];var Data_Bitraversable=PS["Data.Bitraversable"];var Data_BooleanAlgebra=PS["Data.BooleanAlgebra"];var Data_Bounded=PS["Data.Bounded"];var Data_CommutativeRing=PS["Data.CommutativeRing"];var Data_Distributive=PS["Data.Distributive"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Functor_Invariant=PS["Data.Functor.Invariant"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Maybe_First=PS["Data.Maybe.First"];var Data_Monoid=PS["Data.Monoid"];var Data_Newtype=PS["Data.Newtype"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Ring=PS["Data.Ring"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semiring=PS["Data.Semiring"];var Data_Show=PS["Data.Show"];var Data_Traversable=PS["Data.Traversable"];var Data_Unit=PS["Data.Unit"];var Prelude=PS["Prelude"];var Type_Equality=PS["Type.Equality"];var Tuple=function(){function Tuple(value0,value1){this.value0=value0;this.value1=value1}Tuple.create=function(value0){return function(value1){return new Tuple(value0,value1)}};return Tuple}();var snd=function(v){return v.value1};var fst=function(v){return v.value0};exports["Tuple"]=Tuple;exports["fst"]=fst;exports["snd"]=snd})(PS["Data.Tuple"]=PS["Data.Tuple"]||{});(function(exports){"use strict";exports.unfoldrArrayImpl=function(isNothing){return function(fromJust){return function(fst){return function(snd){return function(f){return function(b){var result=[];var value=b;while(true){var maybe=f(value);if(isNothing(maybe))return result;var tuple=fromJust(maybe);result.push(fst(tuple));value=snd(tuple)}}}}}}}})(PS["Data.Unfoldable"]=PS["Data.Unfoldable"]||{});(function(exports){"use strict";exports.unfoldr1ArrayImpl=function(isNothing){return function(fromJust){return function(fst){return function(snd){return function(f){return function(b){var result=[];var value=b;while(true){var tuple=f(value);result.push(fst(tuple));var maybe=snd(tuple);if(isNothing(maybe))return result;value=fromJust(maybe)}}}}}}}})(PS["Data.Unfoldable1"]=PS["Data.Unfoldable1"]||{});(function(exports){"use strict";exports.unsafePartial=function(f){return f()}})(PS["Partial.Unsafe"]=PS["Partial.Unsafe"]||{});(function(exports){"use strict";exports.crashWith=function(){return function(msg){throw new Error(msg)}}})(PS["Partial"]=PS["Partial"]||{});(function(exports){"use strict";var $foreign=PS["Partial"];exports["crashWith"]=$foreign.crashWith})(PS["Partial"]=PS["Partial"]||{});(function(exports){"use strict";var $foreign=PS["Partial.Unsafe"];var Partial=PS["Partial"];var unsafeCrashWith=function(msg){return $foreign.unsafePartial(function(dictPartial){return Partial.crashWith(dictPartial)(msg)})};exports["unsafeCrashWith"]=unsafeCrashWith})(PS["Partial.Unsafe"]=PS["Partial.Unsafe"]||{});(function(exports){"use strict";var $foreign=PS["Data.Unfoldable1"];var Data_Boolean=PS["Data.Boolean"];var Data_Eq=PS["Data.Eq"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Ring=PS["Data.Ring"];var Data_Semigroup_Traversable=PS["Data.Semigroup.Traversable"];var Data_Semiring=PS["Data.Semiring"];var Data_Tuple=PS["Data.Tuple"];var Partial_Unsafe=PS["Partial.Unsafe"];var Prelude=PS["Prelude"];var Unfoldable1=function(unfoldr1){this.unfoldr1=unfoldr1};var unfoldr1=function(dict){return dict.unfoldr1};var unfoldable1Array=new Unfoldable1($foreign.unfoldr1ArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd));exports["Unfoldable1"]=Unfoldable1;exports["unfoldr1"]=unfoldr1;exports["unfoldable1Array"]=unfoldable1Array})(PS["Data.Unfoldable1"]=PS["Data.Unfoldable1"]||{});(function(exports){"use strict";var $foreign=PS["Data.Unfoldable"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Ring=PS["Data.Ring"];var Data_Traversable=PS["Data.Traversable"];var Data_Tuple=PS["Data.Tuple"];var Data_Unfoldable1=PS["Data.Unfoldable1"];var Data_Unit=PS["Data.Unit"];var Partial_Unsafe=PS["Partial.Unsafe"];var Prelude=PS["Prelude"];var Unfoldable=function(Unfoldable10,unfoldr){this.Unfoldable10=Unfoldable10;this.unfoldr=unfoldr};var unfoldr=function(dict){return dict.unfoldr};var unfoldableArray=new Unfoldable(function(){return Data_Unfoldable1.unfoldable1Array},$foreign.unfoldrArrayImpl(Data_Maybe.isNothing)(Data_Maybe.fromJust())(Data_Tuple.fst)(Data_Tuple.snd));exports["Unfoldable"]=Unfoldable;exports["unfoldr"]=unfoldr;exports["unfoldableArray"]=unfoldableArray})(PS["Data.Unfoldable"]=PS["Data.Unfoldable"]||{});(function(exports){"use strict";exports.unsafeCoerce=function(x){return x}})(PS["Unsafe.Coerce"]=PS["Unsafe.Coerce"]||{});(function(exports){"use strict";var $foreign=PS["Unsafe.Coerce"];exports["unsafeCoerce"]=$foreign.unsafeCoerce})(PS["Unsafe.Coerce"]=PS["Unsafe.Coerce"]||{});(function(exports){"use strict";var $foreign=PS["Data.Array"];var Control_Alt=PS["Control.Alt"];var Control_Alternative=PS["Control.Alternative"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Category=PS["Control.Category"];var Control_Lazy=PS["Control.Lazy"];var Control_Monad_Rec_Class=PS["Control.Monad.Rec.Class"];var Control_Monad_ST=PS["Control.Monad.ST"];var Control_Monad_ST_Internal=PS["Control.Monad.ST.Internal"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Array_NonEmpty_Internal=PS["Data.Array.NonEmpty.Internal"];var Data_Array_ST=PS["Data.Array.ST"];var Data_Array_ST_Iterator=PS["Data.Array.ST.Iterator"];var Data_Boolean=PS["Data.Boolean"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Ring=PS["Data.Ring"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semiring=PS["Data.Semiring"];var Data_Traversable=PS["Data.Traversable"];var Data_Tuple=PS["Data.Tuple"];var Data_Unfoldable=PS["Data.Unfoldable"];var Partial_Unsafe=PS["Partial.Unsafe"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var singleton=function(a){return[a]};var concatMap=Data_Function.flip(Control_Bind.bind(Control_Bind.bindArray));var mapMaybe=function(f){return concatMap(function($114){return Data_Maybe.maybe([])(singleton)(f($114))})};exports["singleton"]=singleton;exports["concatMap"]=concatMap;exports["mapMaybe"]=mapMaybe;exports["length"]=$foreign.length;exports["cons"]=$foreign.cons;exports["snoc"]=$foreign.snoc;exports["filter"]=$foreign.filter})(PS["Data.Array"]=PS["Data.Array"]||{});(function(exports){"use strict";var Control_Alt=PS["Control.Alt"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Extend=PS["Control.Extend"];var Control_Monad=PS["Control.Monad"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Bifoldable=PS["Data.Bifoldable"];var Data_Bifunctor=PS["Data.Bifunctor"];var Data_Bitraversable=PS["Data.Bitraversable"];var Data_Bounded=PS["Data.Bounded"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Functor_Invariant=PS["Data.Functor.Invariant"];var Data_Maybe=PS["Data.Maybe"];var Data_Monoid=PS["Data.Monoid"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Data_Traversable=PS["Data.Traversable"];var Prelude=PS["Prelude"];var Left=function(){function Left(value0){this.value0=value0}Left.create=function(value0){return new Left(value0)};return Left}();var Right=function(){function Right(value0){this.value0=value0}Right.create=function(value0){return new Right(value0)};return Right}();var functorEither=new Data_Functor.Functor(function(f){return function(m){if(m instanceof Left){return new Left(m.value0)}if(m instanceof Right){return new Right(f(m.value0))}throw new Error("Failed pattern match at Data.Either line 35, column 8 - line 35, column 52: "+[m.constructor.name])}});var either=function(v){return function(v1){return function(v2){if(v2 instanceof Left){return v(v2.value0)}if(v2 instanceof Right){return v1(v2.value0)}throw new Error("Failed pattern match at Data.Either line 220, column 1 - line 220, column 64: "+[v.constructor.name,v1.constructor.name,v2.constructor.name])}}};exports["Left"]=Left;exports["Right"]=Right;exports["either"]=either;exports["functorEither"]=functorEither})(PS["Data.Either"]=PS["Data.Either"]||{});(function(exports){"use strict";exports.replace=function(s1){return function(s2){return function(s3){return s3.replace(s1,s2)}}};exports.replaceAll=function(s1){return function(s2){return function(s3){return s3.replace(new RegExp(s1.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&"),"g"),s2)}}};exports.split=function(sep){return function(s){return s.split(sep)}};exports.trim=function(s){return s.trim()};exports.joinWith=function(s){return function(xs){return xs.join(s)}}})(PS["Data.String.Common"]=PS["Data.String.Common"]||{});(function(exports){"use strict";var $foreign=PS["Data.String.Common"];var Data_Eq=PS["Data.Eq"];var Data_Ordering=PS["Data.Ordering"];var Data_String_Pattern=PS["Data.String.Pattern"];var Prelude=PS["Prelude"];exports["replaceAll"]=$foreign.replaceAll;exports["split"]=$foreign.split;exports["trim"]=$foreign.trim;exports["joinWith"]=$foreign.joinWith})(PS["Data.String.Common"]=PS["Data.String.Common"]||{});(function(exports){"use strict";exports.unsafeEncodeURIComponent=encodeURIComponent})(PS["Global.Unsafe"]=PS["Global.Unsafe"]||{});(function(exports){"use strict";var $foreign=PS["Global.Unsafe"];exports["unsafeEncodeURIComponent"]=$foreign.unsafeEncodeURIComponent})(PS["Global.Unsafe"]=PS["Global.Unsafe"]||{});(function(exports){"use strict";var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Eq=PS["Data.Eq"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Monoid=PS["Data.Monoid"];var Data_Newtype=PS["Data.Newtype"];var Data_Ord=PS["Data.Ord"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Data_String=PS["Data.String"];var Data_String_Common=PS["Data.String.Common"];var Data_Tuple=PS["Data.Tuple"];var Global_Unsafe=PS["Global.Unsafe"];var Prelude=PS["Prelude"];var FormURLEncoded=function(x){return x};var toArray=function(v){return v};var encode=function(){var encodePart=function(v){if(v.value1 instanceof Data_Maybe.Nothing){return Global_Unsafe.unsafeEncodeURIComponent(v.value0)}if(v.value1 instanceof Data_Maybe.Just){return Global_Unsafe.unsafeEncodeURIComponent(v.value0)+("="+Global_Unsafe.unsafeEncodeURIComponent(v.value1.value0))}throw new Error("Failed pattern match at Data.FormURLEncoded line 35, column 18 - line 37, column 89: "+[v.constructor.name])};return function($14){return Data_String_Common.joinWith("&")(Data_Functor.map(Data_Functor.functorArray)(encodePart)(toArray($14)))}}();exports["FormURLEncoded"]=FormURLEncoded;exports["toArray"]=toArray;exports["encode"]=encode})(PS["Data.FormURLEncoded"]=PS["Data.FormURLEncoded"]||{});(function(exports){"use strict";var Data_Either=PS["Data.Either"];var Data_Eq=PS["Data.Eq"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Data_String=PS["Data.String"];var Data_String_Common=PS["Data.String.Common"];var Prelude=PS["Prelude"];var OPTIONS=function(){function OPTIONS(){}OPTIONS.value=new OPTIONS;return OPTIONS}();var GET=function(){function GET(){}GET.value=new GET;return GET}();var HEAD=function(){function HEAD(){}HEAD.value=new HEAD;return HEAD}();var POST=function(){function POST(){}POST.value=new POST;return POST}();var PUT=function(){function PUT(){}PUT.value=new PUT;return PUT}();var DELETE=function(){function DELETE(){}DELETE.value=new DELETE;return DELETE}();var TRACE=function(){function TRACE(){}TRACE.value=new TRACE;return TRACE}();var CONNECT=function(){function CONNECT(){}CONNECT.value=new CONNECT;return CONNECT}();var PROPFIND=function(){function PROPFIND(){}PROPFIND.value=new PROPFIND;return PROPFIND}();var PROPPATCH=function(){function PROPPATCH(){}PROPPATCH.value=new PROPPATCH;return PROPPATCH}();var MKCOL=function(){function MKCOL(){}MKCOL.value=new MKCOL;return MKCOL}();var COPY=function(){function COPY(){}COPY.value=new COPY;return COPY}();var MOVE=function(){function MOVE(){}MOVE.value=new MOVE;return MOVE}();var LOCK=function(){function LOCK(){}LOCK.value=new LOCK;return LOCK}();var UNLOCK=function(){function UNLOCK(){}UNLOCK.value=new UNLOCK;return UNLOCK}();var PATCH=function(){function PATCH(){}PATCH.value=new PATCH;return PATCH}();var unCustomMethod=function(v){return v};var showMethod=new Data_Show.Show(function(v){if(v instanceof OPTIONS){return"OPTIONS"}if(v instanceof GET){return"GET"}if(v instanceof HEAD){return"HEAD"}if(v instanceof POST){return"POST"}if(v instanceof PUT){return"PUT"}if(v instanceof DELETE){return"DELETE"}if(v instanceof TRACE){return"TRACE"}if(v instanceof CONNECT){return"CONNECT"}if(v instanceof PROPFIND){return"PROPFIND"}if(v instanceof PROPPATCH){return"PROPPATCH"}if(v instanceof MKCOL){return"MKCOL"}if(v instanceof COPY){return"COPY"}if(v instanceof MOVE){return"MOVE"}if(v instanceof LOCK){return"LOCK"}if(v instanceof UNLOCK){return"UNLOCK"}if(v instanceof PATCH){return"PATCH"}throw new Error("Failed pattern match at Data.HTTP.Method line 40, column 1 - line 40, column 35: "+[v.constructor.name])});var print=Data_Either.either(Data_Show.show(showMethod))(unCustomMethod);exports["OPTIONS"]=OPTIONS;exports["GET"]=GET;exports["HEAD"]=HEAD;exports["POST"]=POST;exports["PUT"]=PUT;exports["DELETE"]=DELETE;exports["TRACE"]=TRACE;exports["CONNECT"]=CONNECT;exports["PROPFIND"]=PROPFIND;exports["PROPPATCH"]=PROPPATCH;exports["MKCOL"]=MKCOL;exports["COPY"]=COPY;exports["MOVE"]=MOVE;exports["LOCK"]=LOCK;exports["UNLOCK"]=UNLOCK;exports["PATCH"]=PATCH;exports["unCustomMethod"]=unCustomMethod;exports["print"]=print;exports["showMethod"]=showMethod})(PS["Data.HTTP.Method"]=PS["Data.HTTP.Method"]||{});(function(exports){"use strict";var Data_Eq=PS["Data.Eq"];var Data_Newtype=PS["Data.Newtype"];var Data_Ord=PS["Data.Ord"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Prelude=PS["Prelude"];var MediaType=function(x){return x};var newtypeMediaType=new Data_Newtype.Newtype(function(n){return n},MediaType);exports["MediaType"]=MediaType;exports["newtypeMediaType"]=newtypeMediaType})(PS["Data.MediaType"]=PS["Data.MediaType"]||{});(function(exports){"use strict";var Data_MediaType=PS["Data.MediaType"];var applicationJSON="application/json";var applicationFormURLEncoded="application/x-www-form-urlencoded";exports["applicationFormURLEncoded"]=applicationFormURLEncoded;exports["applicationJSON"]=applicationJSON})(PS["Data.MediaType.Common"]=PS["Data.MediaType.Common"]||{});(function(exports){"use strict";exports.pureE=function(a){return function(){return a}};exports.bindE=function(a){return function(f){return function(){return f(a())()}}}})(PS["Effect"]=PS["Effect"]||{});(function(exports){"use strict";var $foreign=PS["Effect"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Monad=PS["Control.Monad"];var Data_Functor=PS["Data.Functor"];var Data_Monoid=PS["Data.Monoid"];var Data_Semigroup=PS["Data.Semigroup"];var Prelude=PS["Prelude"];var monadEffect=new Control_Monad.Monad(function(){return applicativeEffect},function(){return bindEffect});var bindEffect=new Control_Bind.Bind(function(){return applyEffect},$foreign.bindE);var applyEffect=new Control_Apply.Apply(function(){return functorEffect},Control_Monad.ap(monadEffect));var applicativeEffect=new Control_Applicative.Applicative(function(){return applyEffect},$foreign.pureE);var functorEffect=new Data_Functor.Functor(Control_Applicative.liftA1(applicativeEffect));exports["functorEffect"]=functorEffect;exports["applyEffect"]=applyEffect;exports["applicativeEffect"]=applicativeEffect;exports["bindEffect"]=bindEffect;exports["monadEffect"]=monadEffect})(PS["Effect"]=PS["Effect"]||{});(function(exports){"use strict";var Aff=function(){var EMPTY={};var PURE="Pure";var THROW="Throw";var CATCH="Catch";var SYNC="Sync";var ASYNC="Async";var BIND="Bind";var BRACKET="Bracket";var FORK="Fork";var SEQ="Sequential";var MAP="Map";var APPLY="Apply";var ALT="Alt";var CONS="Cons";var RESUME="Resume";var RELEASE="Release";var FINALIZER="Finalizer";var FINALIZED="Finalized";var FORKED="Forked";var FIBER="Fiber";var THUNK="Thunk";function Aff(tag,_1,_2,_3){this.tag=tag;this._1=_1;this._2=_2;this._3=_3}function AffCtr(tag){var fn=function(_1,_2,_3){return new Aff(tag,_1,_2,_3)};fn.tag=tag;return fn}function nonCanceler(error){return new Aff(PURE,void 0)}function runEff(eff){try{eff()}catch(error){setTimeout(function(){throw error},0)}}function runSync(left,right,eff){try{return right(eff())}catch(error){return left(error)}}function runAsync(left,eff,k){try{return eff(k)()}catch(error){k(left(error))();return nonCanceler}}var Scheduler=function(){var limit=1024;var size=0;var ix=0;var queue=new Array(limit);var draining=false;function drain(){var thunk;draining=true;while(size!==0){size--;thunk=queue[ix];queue[ix]=void 0;ix=(ix+1)%limit;thunk()}draining=false}return{isDraining:function(){return draining},enqueue:function(cb){var i,tmp;if(size===limit){tmp=draining;drain();draining=tmp}queue[(ix+size)%limit]=cb;size++;if(!draining){drain()}}}}();function Supervisor(util){var fibers={};var fiberId=0;var count=0;return{register:function(fiber){var fid=fiberId++;fiber.onComplete({rethrow:true,handler:function(result){return function(){count--;delete fibers[fid]}}});fibers[fid]=fiber;count++},isEmpty:function(){return count===0},killAll:function(killError,cb){return function(){var killCount=0;var kills={};function kill(fid){kills[fid]=fibers[fid].kill(killError,function(result){return function(){delete kills[fid];killCount--;if(util.isLeft(result)&&util.fromLeft(result)){setTimeout(function(){throw util.fromLeft(result)},0)}if(killCount===0){cb()}}})()}for(var k in fibers){if(fibers.hasOwnProperty(k)){killCount++;kill(k)}}fibers={};fiberId=0;count=0;return function(error){return new Aff(SYNC,function(){for(var k in kills){if(kills.hasOwnProperty(k)){kills[k]()}}})}}}}}var SUSPENDED=0;var CONTINUE=1;var STEP_BIND=2;var STEP_RESULT=3;var PENDING=4;var RETURN=5;var COMPLETED=6;function Fiber(util,supervisor,aff){var runTick=0;var status=SUSPENDED;var step=aff;var fail=null;var interrupt=null;var bhead=null;var btail=null;var attempts=null;var bracketCount=0;var joinId=0;var joins=null;var rethrow=true;function run(localRunTick){var tmp,result,attempt,canceler;while(true){tmp=null;result=null;attempt=null;canceler=null;switch(status){case STEP_BIND:status=CONTINUE;step=bhead(step);if(btail===null){bhead=null}else{bhead=btail._1;btail=btail._2}break;case STEP_RESULT:if(util.isLeft(step)){status=RETURN;fail=step;step=null}else if(bhead===null){status=RETURN}else{status=STEP_BIND;step=util.fromRight(step)}break;case CONTINUE:switch(step.tag){case BIND:if(bhead){btail=new Aff(CONS,bhead,btail)}bhead=step._2;status=CONTINUE;step=step._1;break;case PURE:if(bhead===null){status=RETURN;step=util.right(step._1)}else{status=STEP_BIND;step=step._1}break;case SYNC:status=STEP_RESULT;step=runSync(util.left,util.right,step._1);break;case ASYNC:status=PENDING;step=runAsync(util.left,step._1,function(result){return function(){if(runTick!==localRunTick){return}runTick++;Scheduler.enqueue(function(){status=STEP_RESULT;step=result;run(runTick)})}});return;case THROW:status=RETURN;fail=util.left(step._1);step=null;break;case CATCH:if(bhead===null){attempts=new Aff(CONS,step,attempts,interrupt)}else{attempts=new Aff(CONS,step,new Aff(CONS,new Aff(RESUME,bhead,btail),attempts,interrupt),interrupt)}bhead=null;btail=null;status=CONTINUE;step=step._1;break;case BRACKET:bracketCount++;if(bhead===null){attempts=new Aff(CONS,step,attempts,interrupt)}else{attempts=new Aff(CONS,step,new Aff(CONS,new Aff(RESUME,bhead,btail),attempts,interrupt),interrupt)}bhead=null;btail=null;status=CONTINUE;step=step._1;break;case FORK:status=STEP_RESULT;tmp=Fiber(util,supervisor,step._2);if(supervisor){supervisor.register(tmp)}if(step._1){tmp.run()}step=util.right(tmp);break;case SEQ:status=CONTINUE;step=sequential(util,supervisor,step._1);break}break;case RETURN:bhead=null;btail=null;if(attempts===null){status=COMPLETED;step=interrupt||fail||step}else{tmp=attempts._3;attempt=attempts._1;attempts=attempts._2;switch(attempt.tag){case CATCH:if(interrupt&&interrupt!==tmp){status=RETURN}else if(fail){status=CONTINUE;step=attempt._2(util.fromLeft(fail));fail=null}break;case RESUME:if(interrupt&&interrupt!==tmp||fail){status=RETURN}else{bhead=attempt._1;btail=attempt._2;status=STEP_BIND;step=util.fromRight(step)}break;case BRACKET:bracketCount--;if(fail===null){result=util.fromRight(step);attempts=new Aff(CONS,new Aff(RELEASE,attempt._2,result),attempts,tmp);if(interrupt===tmp||bracketCount>0){status=CONTINUE;step=attempt._3(result)}}break;case RELEASE:bracketCount++;attempts=new Aff(CONS,new Aff(FINALIZED,step),attempts,interrupt);status=CONTINUE;if(interrupt&&interrupt!==tmp){step=attempt._1.killed(util.fromLeft(interrupt))(attempt._2)}else if(fail){step=attempt._1.failed(util.fromLeft(fail))(attempt._2)}else{step=attempt._1.completed(util.fromRight(step))(attempt._2)}break;case FINALIZER:bracketCount++;attempts=new Aff(CONS,new Aff(FINALIZED,step),attempts,interrupt);status=CONTINUE;step=attempt._1;break;case FINALIZED:bracketCount--;status=RETURN;step=attempt._1;break}}break;case COMPLETED:for(var k in joins){if(joins.hasOwnProperty(k)){rethrow=rethrow&&joins[k].rethrow;runEff(joins[k].handler(step))}}joins=null;if(interrupt&&fail){setTimeout(function(){throw util.fromLeft(fail)},0)}else if(util.isLeft(step)&&rethrow){setTimeout(function(){if(rethrow){throw util.fromLeft(step)}},0)}return;case SUSPENDED:status=CONTINUE;break;case PENDING:return}}}function onComplete(join){return function(){if(status===COMPLETED){rethrow=rethrow&&join.rethrow;join.handler(step)();return function(){}}var jid=joinId++;joins=joins||{};joins[jid]=join;return function(){if(joins!==null){delete joins[jid]}}}}function kill(error,cb){return function(){if(status===COMPLETED){cb(util.right(void 0))();return function(){}}var canceler=onComplete({rethrow:false,handler:function(){return cb(util.right(void 0))}})();switch(status){case SUSPENDED:interrupt=util.left(error);status=COMPLETED;step=interrupt;run(runTick);break;case PENDING:if(interrupt===null){interrupt=util.left(error)}if(bracketCount===0){if(status===PENDING){attempts=new Aff(CONS,new Aff(FINALIZER,step(error)),attempts,interrupt)}status=RETURN;step=null;fail=null;run(++runTick)}break;default:if(interrupt===null){interrupt=util.left(error)}if(bracketCount===0){status=RETURN;step=null;fail=null}}return canceler}}function join(cb){return function(){var canceler=onComplete({rethrow:false,handler:cb})();if(status===SUSPENDED){run(runTick)}return canceler}}return{kill:kill,join:join,onComplete:onComplete,isSuspended:function(){return status===SUSPENDED},run:function(){if(status===SUSPENDED){if(!Scheduler.isDraining()){Scheduler.enqueue(function(){run(runTick)})}else{run(runTick)}}}}}function runPar(util,supervisor,par,cb){var fiberId=0;var fibers={};var killId=0;var kills={};var early=new Error("[ParAff] Early exit");var interrupt=null;var root=EMPTY;function kill(error,par,cb){var step=par;var head=null;var tail=null;var count=0;var kills={};var tmp,kid;loop:while(true){tmp=null;switch(step.tag){case FORKED:if(step._3===EMPTY){tmp=fibers[step._1];kills[count++]=tmp.kill(error,function(result){return function(){count--;if(count===0){cb(result)()}}})}if(head===null){break loop}step=head._2;if(tail===null){head=null}else{head=tail._1;tail=tail._2}break;case MAP:step=step._2;break;case APPLY:case ALT:if(head){tail=new Aff(CONS,head,tail)}head=step;step=step._1;break}}if(count===0){cb(util.right(void 0))()}else{kid=0;tmp=count;for(;kid<tmp;kid++){kills[kid]=kills[kid]()}}return kills}function join(result,head,tail){var fail,step,lhs,rhs,tmp,kid;if(util.isLeft(result)){fail=result;step=null}else{step=result;fail=null}loop:while(true){lhs=null;rhs=null;tmp=null;kid=null;if(interrupt!==null){return}if(head===null){cb(fail||step)();return}if(head._3!==EMPTY){return}switch(head.tag){case MAP:if(fail===null){head._3=util.right(head._1(util.fromRight(step)));step=head._3}else{head._3=fail}break;case APPLY:lhs=head._1._3;rhs=head._2._3;if(fail){head._3=fail;tmp=true;kid=killId++;kills[kid]=kill(early,fail===lhs?head._2:head._1,function(){return function(){delete kills[kid];if(tmp){tmp=false}else if(tail===null){join(step,null,null)}else{join(step,tail._1,tail._2)}}});if(tmp){tmp=false;return}}else if(lhs===EMPTY||rhs===EMPTY){return}else{step=util.right(util.fromRight(lhs)(util.fromRight(rhs)));head._3=step}break;case ALT:lhs=head._1._3;rhs=head._2._3;if(lhs===EMPTY&&util.isLeft(rhs)||rhs===EMPTY&&util.isLeft(lhs)){return}if(lhs!==EMPTY&&util.isLeft(lhs)&&rhs!==EMPTY&&util.isLeft(rhs)){fail=step===lhs?rhs:lhs;step=null;head._3=fail}else{head._3=step;tmp=true;kid=killId++;kills[kid]=kill(early,step===lhs?head._2:head._1,function(){return function(){delete kills[kid];if(tmp){tmp=false}else if(tail===null){join(step,null,null)}else{join(step,tail._1,tail._2)}}});if(tmp){tmp=false;return}}break}if(tail===null){head=null}else{head=tail._1;tail=tail._2}}}function resolve(fiber){return function(result){return function(){delete fibers[fiber._1];fiber._3=result;join(result,fiber._2._1,fiber._2._2)}}}function run(){var status=CONTINUE;var step=par;var head=null;var tail=null;var tmp,fid;loop:while(true){tmp=null;fid=null;switch(status){case CONTINUE:switch(step.tag){case MAP:if(head){tail=new Aff(CONS,head,tail)}head=new Aff(MAP,step._1,EMPTY,EMPTY);step=step._2;break;case APPLY:if(head){tail=new Aff(CONS,head,tail)}head=new Aff(APPLY,EMPTY,step._2,EMPTY);step=step._1;break;case ALT:if(head){tail=new Aff(CONS,head,tail)}head=new Aff(ALT,EMPTY,step._2,EMPTY);step=step._1;break;default:fid=fiberId++;status=RETURN;tmp=step;step=new Aff(FORKED,fid,new Aff(CONS,head,tail),EMPTY);tmp=Fiber(util,supervisor,tmp);tmp.onComplete({rethrow:false,handler:resolve(step)})();fibers[fid]=tmp;if(supervisor){supervisor.register(tmp)}}break;case RETURN:if(head===null){break loop}if(head._1===EMPTY){head._1=step;status=CONTINUE;step=head._2;head._2=EMPTY}else{head._2=step;step=head;if(tail===null){head=null}else{head=tail._1;tail=tail._2}}}}root=step;for(fid=0;fid<fiberId;fid++){fibers[fid].run()}}function cancel(error,cb){interrupt=util.left(error);var innerKills;for(var kid in kills){if(kills.hasOwnProperty(kid)){innerKills=kills[kid];for(kid in innerKills){if(innerKills.hasOwnProperty(kid)){innerKills[kid]()}}}}kills=null;var newKills=kill(error,root,cb);return function(killError){return new Aff(ASYNC,function(killCb){return function(){for(var kid in newKills){if(newKills.hasOwnProperty(kid)){newKills[kid]()}}return nonCanceler}})}}run();return function(killError){return new Aff(ASYNC,function(killCb){return function(){return cancel(killError,killCb)}})}}function sequential(util,supervisor,par){return new Aff(ASYNC,function(cb){return function(){return runPar(util,supervisor,par,cb)}})}Aff.EMPTY=EMPTY;Aff.Pure=AffCtr(PURE);Aff.Throw=AffCtr(THROW);Aff.Catch=AffCtr(CATCH);Aff.Sync=AffCtr(SYNC);Aff.Async=AffCtr(ASYNC);Aff.Bind=AffCtr(BIND);Aff.Bracket=AffCtr(BRACKET);Aff.Fork=AffCtr(FORK);Aff.Seq=AffCtr(SEQ);Aff.ParMap=AffCtr(MAP);Aff.ParApply=AffCtr(APPLY);Aff.ParAlt=AffCtr(ALT);Aff.Fiber=Fiber;Aff.Supervisor=Supervisor;Aff.Scheduler=Scheduler;Aff.nonCanceler=nonCanceler;return Aff}();exports._pure=Aff.Pure;exports._throwError=Aff.Throw;exports._map=function(f){return function(aff){if(aff.tag===Aff.Pure.tag){return Aff.Pure(f(aff._1))}else{return Aff.Bind(aff,function(value){return Aff.Pure(f(value))})}}};exports._bind=function(aff){return function(k){return Aff.Bind(aff,k)}};exports._liftEffect=Aff.Sync;exports.makeAff=Aff.Async;exports._makeFiber=function(util,aff){return function(){return Aff.Fiber(util,null,aff)}}})(PS["Effect.Aff"]=PS["Effect.Aff"]||{});(function(exports){"use strict";var Control_Applicative=PS["Control.Applicative"];var Control_Bind=PS["Control.Bind"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Either=PS["Data.Either"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Unit=PS["Data.Unit"];var Prelude=PS["Prelude"];var MonadThrow=function(Monad0,throwError){this.Monad0=Monad0;this.throwError=throwError};var throwError=function(dict){return dict.throwError};exports["throwError"]=throwError;exports["MonadThrow"]=MonadThrow})(PS["Control.Monad.Error.Class"]=PS["Control.Monad.Error.Class"]||{});(function(exports){"use strict";var Control_Category=PS["Control.Category"];var Control_Monad=PS["Control.Monad"];var Effect=PS["Effect"];var MonadEffect=function(Monad0,liftEffect){this.Monad0=Monad0;this.liftEffect=liftEffect};var monadEffectEffect=new MonadEffect(function(){return Effect.monadEffect},Control_Category.identity(Control_Category.categoryFn));var liftEffect=function(dict){return dict.liftEffect};exports["liftEffect"]=liftEffect;exports["MonadEffect"]=MonadEffect;exports["monadEffectEffect"]=monadEffectEffect})(PS["Effect.Class"]=PS["Effect.Class"]||{});(function(exports){"use strict";exports.error=function(msg){return new Error(msg)}})(PS["Effect.Exception"]=PS["Effect.Exception"]||{});(function(exports){"use strict";var $foreign=PS["Effect.Exception"];var Control_Applicative=PS["Control.Applicative"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Either=PS["Data.Either"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Show=PS["Data.Show"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];exports["error"]=$foreign.error})(PS["Effect.Exception"]=PS["Effect.Exception"]||{});(function(exports){"use strict";var $foreign=PS["Effect.Aff"];var Control_Alt=PS["Control.Alt"];var Control_Alternative=PS["Control.Alternative"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Lazy=PS["Control.Lazy"];var Control_Monad=PS["Control.Monad"];var Control_Monad_Error_Class=PS["Control.Monad.Error.Class"];var Control_Monad_Rec_Class=PS["Control.Monad.Rec.Class"];var Control_Parallel=PS["Control.Parallel"];var Control_Parallel_Class=PS["Control.Parallel.Class"];var Control_Plus=PS["Control.Plus"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Either=PS["Data.Either"];var Data_Foldable=PS["Data.Foldable"];var Data_Function=PS["Data.Function"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var Data_Functor=PS["Data.Functor"];var Data_Monoid=PS["Data.Monoid"];var Data_Newtype=PS["Data.Newtype"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Time_Duration=PS["Data.Time.Duration"];var Data_Unit=PS["Data.Unit"];var Effect=PS["Effect"];var Effect_Class=PS["Effect.Class"];var Effect_Exception=PS["Effect.Exception"];var Effect_Unsafe=PS["Effect.Unsafe"];var Partial_Unsafe=PS["Partial.Unsafe"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var functorAff=new Data_Functor.Functor($foreign._map);var ffiUtil=function(){var unsafeFromRight=function(v){if(v instanceof Data_Either.Right){return v.value0}if(v instanceof Data_Either.Left){return Partial_Unsafe.unsafeCrashWith("unsafeFromRight: Left")}throw new Error("Failed pattern match at Effect.Aff line 395, column 21 - line 397, column 31: "+[v.constructor.name])};var unsafeFromLeft=function(v){if(v instanceof Data_Either.Left){return v.value0}if(v instanceof Data_Either.Right){return Partial_Unsafe.unsafeCrashWith("unsafeFromLeft: Right")}throw new Error("Failed pattern match at Effect.Aff line 390, column 20 - line 394, column 3: "+[v.constructor.name])};var isLeft=function(v){if(v instanceof Data_Either.Left){return true}if(v instanceof Data_Either.Right){return false}throw new Error("Failed pattern match at Effect.Aff line 385, column 12 - line 387, column 20: "+[v.constructor.name])};return{isLeft:isLeft,fromLeft:unsafeFromLeft,fromRight:unsafeFromRight,left:Data_Either.Left.create,right:Data_Either.Right.create}}();var makeFiber=function(aff){return $foreign._makeFiber(ffiUtil,aff)};var launchAff=function(aff){return function __do(){var v=makeFiber(aff)();v.run();return v}};var monadAff=new Control_Monad.Monad(function(){return applicativeAff},function(){return bindAff});var bindAff=new Control_Bind.Bind(function(){return applyAff},$foreign._bind);var applyAff=new Control_Apply.Apply(function(){return functorAff},Control_Monad.ap(monadAff));var applicativeAff=new Control_Applicative.Applicative(function(){return applyAff},$foreign._pure);var monadEffectAff=new Effect_Class.MonadEffect(function(){return monadAff},$foreign._liftEffect);var monadThrowAff=new Control_Monad_Error_Class.MonadThrow(function(){return monadAff},$foreign._throwError);var nonCanceler=Data_Function["const"](Control_Applicative.pure(applicativeAff)(Data_Unit.unit));exports["launchAff"]=launchAff;exports["nonCanceler"]=nonCanceler;exports["functorAff"]=functorAff;exports["applyAff"]=applyAff;exports["applicativeAff"]=applicativeAff;exports["bindAff"]=bindAff;exports["monadAff"]=monadAff;exports["monadThrowAff"]=monadThrowAff;exports["monadEffectAff"]=monadEffectAff;exports["makeAff"]=$foreign.makeAff})(PS["Effect.Aff"]=PS["Effect.Aff"]||{});(function(exports){"use strict";exports._app=function(){return app};exports._closest=function(just,nothing,selector,el){var node=el.closest(selector);if(node){return just(node)}else{return nothing}};exports._innerHtml=function(el){return el.innerHTML};exports._setInnerHtml=function(content,el){el.innerHTML=content;return el};exports._createFormData=function(formElement){return new FormData(formElement)};exports._createFormString=function(formElement){return new URLSearchParams(new FormData(formElement)).toString()};exports._createFormArray=function(formElement){return Array.from(new FormData(formElement))};exports._getDataAttribute=function(name,el){return el.dataset[name]};exports._setDataAttribute=function(name,value,el){return el.dataset[name]=value};exports._moment8601=function(tuple,s){var m=moment(s,moment.ISO_8601);var s1=m.fromNow();var s2=m.format("MMMM D YYYY, h:mm a")+" ("+m.format()+") ";return tuple(s1)(s2)}})(PS["Globals"]=PS["Globals"]||{});(function(exports){"use strict";exports["null"]=null;exports.nullable=function(a,r,f){return a==null?r:f(a)};exports.notNull=function(x){return x}})(PS["Data.Nullable"]=PS["Data.Nullable"]||{});(function(exports){"use strict";var $foreign=PS["Data.Nullable"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Eq=PS["Data.Eq"];var Data_Function=PS["Data.Function"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Show=PS["Data.Show"];var Prelude=PS["Prelude"];var toNullable=Data_Maybe.maybe($foreign["null"])($foreign.notNull);var toMaybe=function(n){return $foreign.nullable(n,Data_Maybe.Nothing.value,Data_Maybe.Just.create)};exports["toMaybe"]=toMaybe;exports["toNullable"]=toNullable})(PS["Data.Nullable"]=PS["Data.Nullable"]||{});(function(exports){"use strict";exports.window=function(){return window}})(PS["Web.HTML"]=PS["Web.HTML"]||{});(function(exports){"use strict";exports._body=function(doc){return function(){return doc.body}}})(PS["Web.HTML.HTMLDocument"]=PS["Web.HTML.HTMLDocument"]||{});(function(exports){"use strict";exports.createElement=function(localName){return function(doc){return function(){return doc.createElement(localName)}}}})(PS["Web.DOM.Document"]=PS["Web.DOM.Document"]||{});(function(exports){"use strict";exports.className=function(node){return function(){return node.className}};exports.setClassName=function(className){return function(node){return function(){node.className=className;return{}}}};exports.setAttribute=function(name){return function(value){return function(element){return function(){element.setAttribute(name,value);return{}}}}};exports.removeAttribute=function(name){return function(element){return function(){element.removeAttribute(name);return{}}}}})(PS["Web.DOM.Element"]=PS["Web.DOM.Element"]||{});(function(exports){"use strict";exports.remove=function(node){return function(){return node.remove()}}})(PS["Web.DOM.ChildNode"]=PS["Web.DOM.ChildNode"]||{});(function(exports){"use strict";var $foreign=PS["Web.DOM.ChildNode"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];exports["remove"]=$foreign.remove})(PS["Web.DOM.ChildNode"]=PS["Web.DOM.ChildNode"]||{});(function(exports){"use strict";exports._querySelector=function(selector){return function(node){return function(){return node.querySelector(selector)}}};exports.querySelectorAll=function(selector){return function(node){return function(){return node.querySelectorAll(selector)}}}})(PS["Web.DOM.ParentNode"]=PS["Web.DOM.ParentNode"]||{});(function(exports){"use strict";exports.toArray=function(list){return function(){return[].slice.call(list)}}})(PS["Web.DOM.NodeList"]=PS["Web.DOM.NodeList"]||{});(function(exports){"use strict";var $foreign=PS["Web.DOM.NodeList"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Web_DOM_Internal_Types=PS["Web.DOM.Internal.Types"];exports["toArray"]=$foreign.toArray})(PS["Web.DOM.NodeList"]=PS["Web.DOM.NodeList"]||{});(function(exports){"use strict";var $foreign=PS["Web.DOM.ParentNode"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Eq=PS["Data.Eq"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Newtype=PS["Data.Newtype"];var Data_Nullable=PS["Data.Nullable"];var Data_Ord=PS["Data.Ord"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Web_DOM_HTMLCollection=PS["Web.DOM.HTMLCollection"];var Web_DOM_Internal_Types=PS["Web.DOM.Internal.Types"];var Web_DOM_NodeList=PS["Web.DOM.NodeList"];var querySelector=function(qs){return function($3){return Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe)($foreign._querySelector(qs)($3))}};exports["querySelector"]=querySelector;exports["querySelectorAll"]=$foreign.querySelectorAll})(PS["Web.DOM.ParentNode"]=PS["Web.DOM.ParentNode"]||{});(function(exports){"use strict";exports._unsafeReadProtoTagged=function(nothing,just,name,value){var obj=value;while(obj!=null){var proto=Object.getPrototypeOf(obj);var ctor=proto.constructor.name;if(ctor===name){return just(value)}else if(ctor==="Object"){return nothing}obj=proto}return nothing}})(PS["Web.Internal.FFI"]=PS["Web.Internal.FFI"]||{});(function(exports){"use strict";var $foreign=PS["Web.Internal.FFI"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var Data_Maybe=PS["Data.Maybe"];var unsafeReadProtoTagged=function(name){return function(value){return $foreign._unsafeReadProtoTagged(Data_Maybe.Nothing.value,Data_Maybe.Just.create,name,value)}};exports["unsafeReadProtoTagged"]=unsafeReadProtoTagged})(PS["Web.Internal.FFI"]=PS["Web.Internal.FFI"]||{});(function(exports){"use strict";var $foreign=PS["Web.DOM.Element"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_DOM_ChildNode=PS["Web.DOM.ChildNode"];var Web_DOM_Internal_Types=PS["Web.DOM.Internal.Types"];var Web_DOM_NonDocumentTypeChildNode=PS["Web.DOM.NonDocumentTypeChildNode"];var Web_DOM_ParentNode=PS["Web.DOM.ParentNode"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var Web_Internal_FFI=PS["Web.Internal.FFI"];var toParentNode=Unsafe_Coerce.unsafeCoerce;var toNode=Unsafe_Coerce.unsafeCoerce;var toChildNode=Unsafe_Coerce.unsafeCoerce;var fromNode=Web_Internal_FFI.unsafeReadProtoTagged("Element");exports["fromNode"]=fromNode;exports["toNode"]=toNode;exports["toChildNode"]=toChildNode;exports["toParentNode"]=toParentNode;exports["setClassName"]=$foreign.setClassName;exports["setAttribute"]=$foreign.setAttribute;exports["removeAttribute"]=$foreign.removeAttribute})(PS["Web.DOM.Element"]=PS["Web.DOM.Element"]||{});(function(exports){"use strict";exports._getElementById=function(id){return function(node){return function(){return node.getElementById(id)}}}})(PS["Web.DOM.NonElementParentNode"]=PS["Web.DOM.NonElementParentNode"]||{});(function(exports){"use strict";var $foreign=PS["Web.DOM.NonElementParentNode"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Web_DOM_Element=PS["Web.DOM.Element"];var getElementById=function(eid){return function($0){return Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe)($foreign._getElementById(eid)($0))}};exports["getElementById"]=getElementById})(PS["Web.DOM.NonElementParentNode"]=PS["Web.DOM.NonElementParentNode"]||{});(function(exports){"use strict";var $foreign=PS["Web.DOM.Document"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_DOM_Comment=PS["Web.DOM.Comment"];var Web_DOM_DocumentFragment=PS["Web.DOM.DocumentFragment"];var Web_DOM_DocumentType=PS["Web.DOM.DocumentType"];var Web_DOM_Element=PS["Web.DOM.Element"];var Web_DOM_HTMLCollection=PS["Web.DOM.HTMLCollection"];var Web_DOM_Internal_Types=PS["Web.DOM.Internal.Types"];var Web_DOM_NonElementParentNode=PS["Web.DOM.NonElementParentNode"];var Web_DOM_ParentNode=PS["Web.DOM.ParentNode"];var Web_DOM_ProcessingInstruction=PS["Web.DOM.ProcessingInstruction"];var Web_DOM_Text=PS["Web.DOM.Text"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var Web_Internal_FFI=PS["Web.Internal.FFI"];var toNonElementParentNode=Unsafe_Coerce.unsafeCoerce;exports["toNonElementParentNode"]=toNonElementParentNode;exports["createElement"]=$foreign.createElement})(PS["Web.DOM.Document"]=PS["Web.DOM.Document"]||{});(function(exports){"use strict";exports._read=function(nothing,just,value){var tag=Object.prototype.toString.call(value);if(tag.indexOf("[object HTML")===0&&tag.indexOf("Element]")===tag.length-8){return just(value)}else{return nothing}};exports.classList=function(element){return function(){return element.classList}}})(PS["Web.HTML.HTMLElement"]=PS["Web.HTML.HTMLElement"]||{});(function(exports){"use strict";exports.add=function(list){return function(token){return function(){return list.add(token)}}};exports.remove=function(list){return function(token){return function(){return list.remove(token)}}};exports.contains=function(list){return function(token){return function(){return list.contains(token)}}};exports.toggle=function(list){return function(token){return function(){return list.toggle(token)}}};exports.toggleForce=function(list){return function(token){return function(force){return function(){return list.toggle(token,force)}}}}})(PS["Web.DOM.DOMTokenList"]=PS["Web.DOM.DOMTokenList"]||{});(function(exports){"use strict";var $foreign=PS["Web.DOM.DOMTokenList"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];exports["add"]=$foreign.add;exports["contains"]=$foreign.contains;exports["remove"]=$foreign.remove;exports["toggle"]=$foreign.toggle;exports["toggleForce"]=$foreign.toggleForce})(PS["Web.DOM.DOMTokenList"]=PS["Web.DOM.DOMTokenList"]||{});(function(exports){"use strict";var $foreign=PS["Web.HTML.HTMLElement"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_DOM=PS["Web.DOM"];var Web_DOM_DOMTokenList=PS["Web.DOM.DOMTokenList"];var Web_DOM_Element=PS["Web.DOM.Element"];var Web_DOM_Internal_Types=PS["Web.DOM.Internal.Types"];var Web_DOM_NonDocumentTypeChildNode=PS["Web.DOM.NonDocumentTypeChildNode"];var Web_DOM_ParentNode=PS["Web.DOM.ParentNode"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var toElement=Unsafe_Coerce.unsafeCoerce;var fromNode=function(x){return $foreign._read(Data_Maybe.Nothing.value,Data_Maybe.Just.create,x)};var fromElement=function(x){return $foreign._read(Data_Maybe.Nothing.value,Data_Maybe.Just.create,x)};exports["fromElement"]=fromElement;exports["fromNode"]=fromNode;exports["toElement"]=toElement;exports["classList"]=$foreign.classList})(PS["Web.HTML.HTMLElement"]=PS["Web.HTML.HTMLElement"]||{});(function(exports){"use strict";var $foreign=PS["Web.HTML.HTMLDocument"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_DOM_Document=PS["Web.DOM.Document"];var Web_DOM_Internal_Types=PS["Web.DOM.Internal.Types"];var Web_DOM_NonElementParentNode=PS["Web.DOM.NonElementParentNode"];var Web_DOM_ParentNode=PS["Web.DOM.ParentNode"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var Web_HTML_HTMLDocument_ReadyState=PS["Web.HTML.HTMLDocument.ReadyState"];var Web_HTML_HTMLElement=PS["Web.HTML.HTMLElement"];var Web_Internal_FFI=PS["Web.Internal.FFI"];var toDocument=Unsafe_Coerce.unsafeCoerce;var body=function($2){return Data_Functor.map(Effect.functorEffect)(Data_Nullable.toMaybe)($foreign._body($2))};exports["toDocument"]=toDocument;exports["body"]=body})(PS["Web.HTML.HTMLDocument"]=PS["Web.HTML.HTMLDocument"]||{});(function(exports){"use strict";var $foreign=PS["Web.HTML.HTMLFormElement"];var Data_Maybe=PS["Data.Maybe"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_DOM=PS["Web.DOM"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var Web_HTML_HTMLElement=PS["Web.HTML.HTMLElement"];var Web_Internal_FFI=PS["Web.Internal.FFI"];var fromNode=Web_Internal_FFI.unsafeReadProtoTagged("HTMLFormElement");exports["fromNode"]=fromNode})(PS["Web.HTML.HTMLFormElement"]=PS["Web.HTML.HTMLFormElement"]||{});(function(exports){"use strict";exports.checked=function(input){return function(){return input.checked}};exports.setChecked=function(checked){return function(input){return function(){input.checked=checked}}};exports.value=function(input){return function(){return input.value}};exports.setValue=function(value){return function(input){return function(){input.value=value}}};exports.value=function(input){return function(){return input.value}};exports.setValue=function(value){return function(input){return function(){input.value=value}}}})(PS["Web.HTML.HTMLInputElement"]=PS["Web.HTML.HTMLInputElement"]||{});(function(exports){"use strict";var $foreign=PS["Web.HTML.HTMLInputElement"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Functor=PS["Data.Functor"];var Data_JSDate=PS["Data.JSDate"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Effect_Uncurried=PS["Effect.Uncurried"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_DOM=PS["Web.DOM"];var Web_DOM_NodeList=PS["Web.DOM.NodeList"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var Web_File_FileList=PS["Web.File.FileList"];var Web_HTML_HTMLElement=PS["Web.HTML.HTMLElement"];var Web_HTML_HTMLFormElement=PS["Web.HTML.HTMLFormElement"];var Web_HTML_SelectionMode=PS["Web.HTML.SelectionMode"];var Web_HTML_ValidityState=PS["Web.HTML.ValidityState"];var Web_Internal_FFI=PS["Web.Internal.FFI"];var fromElement=Web_Internal_FFI.unsafeReadProtoTagged("HTMLInputElement");exports["fromElement"]=fromElement;exports["checked"]=$foreign.checked;exports["setChecked"]=$foreign.setChecked;exports["value"]=$foreign.value;exports["setValue"]=$foreign.setValue})(PS["Web.HTML.HTMLInputElement"]=PS["Web.HTML.HTMLInputElement"]||{});(function(exports){"use strict";exports.value=function(textarea){return function(){return textarea.value}};exports.setValue=function(value){return function(textarea){return function(){textarea.value=value}}}})(PS["Web.HTML.HTMLTextAreaElement"]=PS["Web.HTML.HTMLTextAreaElement"]||{});(function(exports){"use strict";var $foreign=PS["Web.HTML.HTMLTextAreaElement"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Effect_Uncurried=PS["Effect.Uncurried"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_DOM=PS["Web.DOM"];var Web_DOM_NodeList=PS["Web.DOM.NodeList"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var Web_HTML_HTMLElement=PS["Web.HTML.HTMLElement"];var Web_HTML_HTMLFormElement=PS["Web.HTML.HTMLFormElement"];var Web_HTML_SelectionMode=PS["Web.HTML.SelectionMode"];var Web_HTML_ValidityState=PS["Web.HTML.ValidityState"];var Web_Internal_FFI=PS["Web.Internal.FFI"];var fromElement=Web_Internal_FFI.unsafeReadProtoTagged("HTMLTextAreaElement");exports["fromElement"]=fromElement;exports["value"]=$foreign.value;exports["setValue"]=$foreign.setValue})(PS["Web.HTML.HTMLTextAreaElement"]=PS["Web.HTML.HTMLTextAreaElement"]||{});(function(exports){"use strict";exports.reload=function(location){return function(){location.reload()}}})(PS["Web.HTML.Location"]=PS["Web.HTML.Location"]||{});(function(exports){"use strict";var $foreign=PS["Web.HTML.Location"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];exports["reload"]=$foreign.reload})(PS["Web.HTML.Location"]=PS["Web.HTML.Location"]||{});(function(exports){"use strict";exports.document=function(window){return function(){return window.document}};exports.location=function(window){return function(){return window.location}}})(PS["Web.HTML.Window"]=PS["Web.HTML.Window"]||{});(function(exports){"use strict";var $foreign=PS["Web.HTML.Window"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Eq=PS["Data.Eq"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Newtype=PS["Data.Newtype"];var Data_Nullable=PS["Data.Nullable"];var Data_Ord=PS["Data.Ord"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var Web_HTML_HTMLDocument=PS["Web.HTML.HTMLDocument"];var Web_HTML_History=PS["Web.HTML.History"];var Web_HTML_Location=PS["Web.HTML.Location"];var Web_HTML_Navigator=PS["Web.HTML.Navigator"];var Web_Storage_Storage=PS["Web.Storage.Storage"];exports["document"]=$foreign.document;exports["location"]=$foreign.location})(PS["Web.HTML.Window"]=PS["Web.HTML.Window"]||{});(function(exports){"use strict";var $foreign=PS["Web.HTML"];var Effect=PS["Effect"];var Web_HTML_HTMLAnchorElement=PS["Web.HTML.HTMLAnchorElement"];var Web_HTML_HTMLAreaElement=PS["Web.HTML.HTMLAreaElement"];var Web_HTML_HTMLAudioElement=PS["Web.HTML.HTMLAudioElement"];var Web_HTML_HTMLBRElement=PS["Web.HTML.HTMLBRElement"];var Web_HTML_HTMLBaseElement=PS["Web.HTML.HTMLBaseElement"];var Web_HTML_HTMLBodyElement=PS["Web.HTML.HTMLBodyElement"];var Web_HTML_HTMLButtonElement=PS["Web.HTML.HTMLButtonElement"];var Web_HTML_HTMLCanvasElement=PS["Web.HTML.HTMLCanvasElement"];var Web_HTML_HTMLDListElement=PS["Web.HTML.HTMLDListElement"];var Web_HTML_HTMLDataElement=PS["Web.HTML.HTMLDataElement"];var Web_HTML_HTMLDataListElement=PS["Web.HTML.HTMLDataListElement"];var Web_HTML_HTMLDivElement=PS["Web.HTML.HTMLDivElement"];var Web_HTML_HTMLDocument=PS["Web.HTML.HTMLDocument"];var Web_HTML_HTMLElement=PS["Web.HTML.HTMLElement"];var Web_HTML_HTMLEmbedElement=PS["Web.HTML.HTMLEmbedElement"];var Web_HTML_HTMLFieldSetElement=PS["Web.HTML.HTMLFieldSetElement"];var Web_HTML_HTMLFormElement=PS["Web.HTML.HTMLFormElement"];var Web_HTML_HTMLHRElement=PS["Web.HTML.HTMLHRElement"];var Web_HTML_HTMLHeadElement=PS["Web.HTML.HTMLHeadElement"];var Web_HTML_HTMLHeadingElement=PS["Web.HTML.HTMLHeadingElement"];var Web_HTML_HTMLIFrameElement=PS["Web.HTML.HTMLIFrameElement"];var Web_HTML_HTMLImageElement=PS["Web.HTML.HTMLImageElement"];var Web_HTML_HTMLInputElement=PS["Web.HTML.HTMLInputElement"];var Web_HTML_HTMLKeygenElement=PS["Web.HTML.HTMLKeygenElement"];var Web_HTML_HTMLLIElement=PS["Web.HTML.HTMLLIElement"];var Web_HTML_HTMLLabelElement=PS["Web.HTML.HTMLLabelElement"];var Web_HTML_HTMLLegendElement=PS["Web.HTML.HTMLLegendElement"];var Web_HTML_HTMLLinkElement=PS["Web.HTML.HTMLLinkElement"];var Web_HTML_HTMLMapElement=PS["Web.HTML.HTMLMapElement"];var Web_HTML_HTMLMediaElement=PS["Web.HTML.HTMLMediaElement"];var Web_HTML_HTMLMetaElement=PS["Web.HTML.HTMLMetaElement"];var Web_HTML_HTMLMeterElement=PS["Web.HTML.HTMLMeterElement"];var Web_HTML_HTMLModElement=PS["Web.HTML.HTMLModElement"];var Web_HTML_HTMLOListElement=PS["Web.HTML.HTMLOListElement"];var Web_HTML_HTMLObjectElement=PS["Web.HTML.HTMLObjectElement"];var Web_HTML_HTMLOptGroupElement=PS["Web.HTML.HTMLOptGroupElement"];var Web_HTML_HTMLOptionElement=PS["Web.HTML.HTMLOptionElement"];var Web_HTML_HTMLOutputElement=PS["Web.HTML.HTMLOutputElement"];var Web_HTML_HTMLParagraphElement=PS["Web.HTML.HTMLParagraphElement"];var Web_HTML_HTMLParamElement=PS["Web.HTML.HTMLParamElement"];var Web_HTML_HTMLPreElement=PS["Web.HTML.HTMLPreElement"];var Web_HTML_HTMLProgressElement=PS["Web.HTML.HTMLProgressElement"];var Web_HTML_HTMLQuoteElement=PS["Web.HTML.HTMLQuoteElement"];var Web_HTML_HTMLScriptElement=PS["Web.HTML.HTMLScriptElement"];var Web_HTML_HTMLSelectElement=PS["Web.HTML.HTMLSelectElement"];var Web_HTML_HTMLSourceElement=PS["Web.HTML.HTMLSourceElement"];var Web_HTML_HTMLSpanElement=PS["Web.HTML.HTMLSpanElement"];var Web_HTML_HTMLStyleElement=PS["Web.HTML.HTMLStyleElement"];var Web_HTML_HTMLTableCaptionElement=PS["Web.HTML.HTMLTableCaptionElement"];var Web_HTML_HTMLTableCellElement=PS["Web.HTML.HTMLTableCellElement"];var Web_HTML_HTMLTableColElement=PS["Web.HTML.HTMLTableColElement"];var Web_HTML_HTMLTableDataCellElement=PS["Web.HTML.HTMLTableDataCellElement"];var Web_HTML_HTMLTableElement=PS["Web.HTML.HTMLTableElement"];var Web_HTML_HTMLTableHeaderCellElement=PS["Web.HTML.HTMLTableHeaderCellElement"];var Web_HTML_HTMLTableRowElement=PS["Web.HTML.HTMLTableRowElement"];var Web_HTML_HTMLTableSectionElement=PS["Web.HTML.HTMLTableSectionElement"];var Web_HTML_HTMLTemplateElement=PS["Web.HTML.HTMLTemplateElement"];var Web_HTML_HTMLTextAreaElement=PS["Web.HTML.HTMLTextAreaElement"];var Web_HTML_HTMLTimeElement=PS["Web.HTML.HTMLTimeElement"];var Web_HTML_HTMLTitleElement=PS["Web.HTML.HTMLTitleElement"];var Web_HTML_HTMLTrackElement=PS["Web.HTML.HTMLTrackElement"];var Web_HTML_HTMLUListElement=PS["Web.HTML.HTMLUListElement"];var Web_HTML_HTMLVideoElement=PS["Web.HTML.HTMLVideoElement"];var Web_HTML_History=PS["Web.HTML.History"];var Web_HTML_Location=PS["Web.HTML.Location"];var Web_HTML_Navigator=PS["Web.HTML.Navigator"];var Web_HTML_Window=PS["Web.HTML.Window"];exports["window"]=$foreign.window})(PS["Web.HTML"]=PS["Web.HTML"]||{});(function(exports){"use strict";var $foreign=PS["Globals"];var Control_Applicative=PS["Control.Applicative"];var Data_Function=PS["Data.Function"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Data_Tuple=PS["Data.Tuple"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Web_DOM=PS["Web.DOM"];var Web_HTML=PS["Web.HTML"];var Web_XHR_FormData=PS["Web.XHR.FormData"];var setInnerHtml=function(c){return function(n){return Control_Applicative.pure(Effect.applicativeEffect)($foreign._setInnerHtml(c,n))}};var setDataAttribute=function(k){return function(v){return function(n){return Control_Applicative.pure(Effect.applicativeEffect)($foreign._setDataAttribute(k,v,n))}}};var moment8601=function(s){return Control_Applicative.pure(Effect.applicativeEffect)($foreign._moment8601(Data_Tuple.Tuple.create,s))};var innerHtml=function(n){return Control_Applicative.pure(Effect.applicativeEffect)($foreign._innerHtml(n))};var getDataAttribute=function(k){return function(n){return Control_Applicative.pure(Effect.applicativeEffect)(Data_Nullable.toMaybe($foreign._getDataAttribute(k,n)))}};var createFormString=function(f){return $foreign._createFormString(f)};var createFormData=function(f){return $foreign._createFormData(f)};var createFormArray=function(f){return $foreign._createFormArray(f)};var closest=function(selector){return function(node){return Control_Applicative.pure(Effect.applicativeEffect)($foreign._closest(Data_Maybe.Just.create,Data_Maybe.Nothing.value,selector,node))}};var app$prime=function(v){return $foreign._app()};exports["app'"]=app$prime;exports["closest"]=closest;exports["moment8601"]=moment8601;exports["innerHtml"]=innerHtml;exports["setInnerHtml"]=setInnerHtml;exports["createFormData"]=createFormData;exports["createFormString"]=createFormString;exports["createFormArray"]=createFormArray;exports["getDataAttribute"]=getDataAttribute;exports["setDataAttribute"]=setDataAttribute;exports["_app"]=$foreign._app;exports["_closest"]=$foreign._closest;exports["_moment8601"]=$foreign._moment8601;exports["_innerHtml"]=$foreign._innerHtml;exports["_setInnerHtml"]=$foreign._setInnerHtml;exports["_createFormData"]=$foreign._createFormData;exports["_createFormString"]=$foreign._createFormString;exports["_createFormArray"]=$foreign._createFormArray;exports["_getDataAttribute"]=$foreign._getDataAttribute;exports["_setDataAttribute"]=$foreign._setDataAttribute})(PS["Globals"]=PS["Globals"]||{});(function(exports){"use strict";exports._ajax=function(){var platformSpecific={};if(typeof module!=="undefined"&&module.require&&!(typeof process!=="undefined"&&process.versions["electron"])){platformSpecific.newXHR=function(){var XHR=module.require("xhr2");return new XHR};platformSpecific.fixupUrl=function(url){var urllib=module.require("url");var u=urllib.parse(url);u.protocol=u.protocol||"http:";u.hostname=u.hostname||"localhost";return urllib.format(u)};platformSpecific.getResponse=function(xhr){return xhr.response}}else{platformSpecific.newXHR=function(){return new XMLHttpRequest};platformSpecific.fixupUrl=function(url){return url||"/"};platformSpecific.getResponse=function(xhr){return xhr.response}}return function(mkHeader,options){return function(errback,callback){var xhr=platformSpecific.newXHR();var fixedUrl=platformSpecific.fixupUrl(options.url);xhr.open(options.method||"GET",fixedUrl,true,options.username,options.password);if(options.headers){try{for(var i=0,header;(header=options.headers[i])!=null;i++){xhr.setRequestHeader(header.field,header.value)}}catch(e){errback(e)}}xhr.onerror=function(){errback(new Error("AJAX request failed: "+options.method+" "+options.url))};xhr.onload=function(){callback({status:xhr.status,statusText:xhr.statusText,headers:xhr.getAllResponseHeaders().split("\r\n").filter(function(header){return header.length>0}).map(function(header){var i=header.indexOf(":");return mkHeader(header.substring(0,i))(header.substring(i+2))}),response:platformSpecific.getResponse(xhr)})};xhr.responseType=options.responseType;xhr.withCredentials=options.withCredentials;xhr.send(options.content);return function(error,cancelErrback,cancelCallback){try{xhr.abort()}catch(e){return cancelErrback(e)}return cancelCallback()}}}}()})(PS["Network.HTTP.Affjax"]=PS["Network.HTTP.Affjax"]||{});(function(exports){"use strict";var Prelude=PS["Prelude"];var MonadTrans=function(lift){this.lift=lift};var lift=function(dict){return dict.lift};exports["lift"]=lift;exports["MonadTrans"]=MonadTrans})(PS["Control.Monad.Trans.Class"]=PS["Control.Monad.Trans.Class"]||{});(function(exports){"use strict";var Control_Alt=PS["Control.Alt"];var Control_Alternative=PS["Control.Alternative"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Category=PS["Control.Category"];var Control_Monad=PS["Control.Monad"];var Control_Monad_Cont_Class=PS["Control.Monad.Cont.Class"];var Control_Monad_Error_Class=PS["Control.Monad.Error.Class"];var Control_Monad_Reader_Class=PS["Control.Monad.Reader.Class"];var Control_Monad_Rec_Class=PS["Control.Monad.Rec.Class"];var Control_Monad_State_Class=PS["Control.Monad.State.Class"];var Control_Monad_Trans_Class=PS["Control.Monad.Trans.Class"];var Control_Monad_Writer_Class=PS["Control.Monad.Writer.Class"];var Control_MonadPlus=PS["Control.MonadPlus"];var Control_MonadZero=PS["Control.MonadZero"];var Control_Plus=PS["Control.Plus"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Either=PS["Data.Either"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Monoid=PS["Data.Monoid"];var Data_Newtype=PS["Data.Newtype"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Tuple=PS["Data.Tuple"];var Effect_Class=PS["Effect.Class"];var Prelude=PS["Prelude"];var ExceptT=function(x){return x};var runExceptT=function(v){return v};var mapExceptT=function(f){return function(v){return f(v)}};var functorExceptT=function(dictFunctor){return new Data_Functor.Functor(function(f){return mapExceptT(Data_Functor.map(dictFunctor)(Data_Functor.map(Data_Either.functorEither)(f)))})};var monadExceptT=function(dictMonad){return new Control_Monad.Monad(function(){return applicativeExceptT(dictMonad)},function(){return bindExceptT(dictMonad)})};var bindExceptT=function(dictMonad){return new Control_Bind.Bind(function(){return applyExceptT(dictMonad)},function(v){return function(k){return Control_Bind.bind(dictMonad.Bind1())(v)(Data_Either.either(function($97){return Control_Applicative.pure(dictMonad.Applicative0())(Data_Either.Left.create($97))})(function(a){var v1=k(a);return v1}))}})};var applyExceptT=function(dictMonad){return new Control_Apply.Apply(function(){return functorExceptT(dictMonad.Bind1().Apply0().Functor0())},Control_Monad.ap(monadExceptT(dictMonad)))};var applicativeExceptT=function(dictMonad){return new Control_Applicative.Applicative(function(){return applyExceptT(dictMonad)},function($98){return ExceptT(Control_Applicative.pure(dictMonad.Applicative0())(Data_Either.Right.create($98)))})};var monadThrowExceptT=function(dictMonad){return new Control_Monad_Error_Class.MonadThrow(function(){return monadExceptT(dictMonad)},function($102){return ExceptT(Control_Applicative.pure(dictMonad.Applicative0())(Data_Either.Left.create($102)))})};exports["ExceptT"]=ExceptT;exports["runExceptT"]=runExceptT;exports["mapExceptT"]=mapExceptT;exports["functorExceptT"]=functorExceptT;exports["applyExceptT"]=applyExceptT;exports["applicativeExceptT"]=applicativeExceptT;exports["bindExceptT"]=bindExceptT;exports["monadExceptT"]=monadExceptT;exports["monadThrowExceptT"]=monadThrowExceptT})(PS["Control.Monad.Except.Trans"]=PS["Control.Monad.Except.Trans"]||{});(function(exports){"use strict";var Control_Alt=PS["Control.Alt"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Comonad=PS["Control.Comonad"];var Control_Extend=PS["Control.Extend"];var Control_Lazy=PS["Control.Lazy"];var Control_Monad=PS["Control.Monad"];var Data_BooleanAlgebra=PS["Data.BooleanAlgebra"];var Data_Bounded=PS["Data.Bounded"];var Data_CommutativeRing=PS["Data.CommutativeRing"];var Data_Eq=PS["Data.Eq"];var Data_EuclideanRing=PS["Data.EuclideanRing"];var Data_Foldable=PS["Data.Foldable"];var Data_Functor=PS["Data.Functor"];var Data_Functor_Invariant=PS["Data.Functor.Invariant"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Monoid=PS["Data.Monoid"];var Data_Newtype=PS["Data.Newtype"];var Data_Ord=PS["Data.Ord"];var Data_Ring=PS["Data.Ring"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semiring=PS["Data.Semiring"];var Data_Show=PS["Data.Show"];var Data_Traversable=PS["Data.Traversable"];var Prelude=PS["Prelude"];var Identity=function(x){return x};var newtypeIdentity=new Data_Newtype.Newtype(function(n){return n},Identity);var functorIdentity=new Data_Functor.Functor(function(f){return function(m){return f(m)}});var applyIdentity=new Control_Apply.Apply(function(){return functorIdentity},function(v){return function(v1){return v(v1)}});var bindIdentity=new Control_Bind.Bind(function(){return applyIdentity},function(v){return function(f){return f(v)}});var applicativeIdentity=new Control_Applicative.Applicative(function(){return applyIdentity},Identity);var monadIdentity=new Control_Monad.Monad(function(){return applicativeIdentity},function(){return bindIdentity});exports["Identity"]=Identity;exports["newtypeIdentity"]=newtypeIdentity;exports["functorIdentity"]=functorIdentity;exports["applyIdentity"]=applyIdentity;exports["applicativeIdentity"]=applicativeIdentity;exports["bindIdentity"]=bindIdentity;exports["monadIdentity"]=monadIdentity})(PS["Data.Identity"]=PS["Data.Identity"]||{});(function(exports){"use strict";var Control_Monad_Error_Class=PS["Control.Monad.Error.Class"];var Control_Monad_Except_Trans=PS["Control.Monad.Except.Trans"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Either=PS["Data.Either"];var Data_Identity=PS["Data.Identity"];var Data_Newtype=PS["Data.Newtype"];var Prelude=PS["Prelude"];var runExcept=function($0){return Data_Newtype.unwrap(Data_Identity.newtypeIdentity)(Control_Monad_Except_Trans.runExceptT($0))};exports["runExcept"]=runExcept})(PS["Control.Monad.Except"]=PS["Control.Monad.Except"]||{});(function(exports){"use strict";function id(x){return x}exports.fromObject=id;exports.stringify=function(j){return JSON.stringify(j)};function isArray(a){return objToString.call(a)==="[object Array]"}})(PS["Data.Argonaut.Core"]=PS["Data.Argonaut.Core"]||{});(function(exports){"use strict";exports.empty={};function toArrayWithKey(f){return function(m){var r=[];for(var k in m){if(hasOwnProperty.call(m,k)){r.push(f(k)(m[k]))}}return r}}})(PS["Foreign.Object"]=PS["Foreign.Object"]||{});(function(exports){"use strict";var $foreign=PS["Foreign.Object"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Category=PS["Control.Category"];var Control_Monad_ST=PS["Control.Monad.ST"];var Control_Monad_ST_Internal=PS["Control.Monad.ST.Internal"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Array=PS["Data.Array"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_FoldableWithIndex=PS["Data.FoldableWithIndex"];var Data_Function=PS["Data.Function"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var Data_Functor=PS["Data.Functor"];var Data_FunctorWithIndex=PS["Data.FunctorWithIndex"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Monoid=PS["Data.Monoid"];var Data_Ord=PS["Data.Ord"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Data_Traversable=PS["Data.Traversable"];var Data_TraversableWithIndex=PS["Data.TraversableWithIndex"];var Data_Tuple=PS["Data.Tuple"];var Data_Unfoldable=PS["Data.Unfoldable"];var Foreign_Object_ST=PS["Foreign.Object.ST"];var Prelude=PS["Prelude"];exports["empty"]=$foreign.empty})(PS["Foreign.Object"]=PS["Foreign.Object"]||{});(function(exports){"use strict";var $foreign=PS["Data.Argonaut.Core"];var Data_Eq=PS["Data.Eq"];var Data_Function=PS["Data.Function"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Foreign_Object=PS["Foreign.Object"];var Prelude=PS["Prelude"];var jsonEmptyObject=$foreign.fromObject(Foreign_Object.empty);exports["jsonEmptyObject"]=jsonEmptyObject;exports["stringify"]=$foreign.stringify})(PS["Data.Argonaut.Core"]=PS["Data.Argonaut.Core"]||{});(function(exports){"use strict";exports._jsonParser=function(fail,succ,s){try{return succ(JSON.parse(s))}catch(e){return fail(e.message)}}})(PS["Data.Argonaut.Parser"]=PS["Data.Argonaut.Parser"]||{});(function(exports){"use strict";var $foreign=PS["Data.Argonaut.Parser"];var Data_Argonaut_Core=PS["Data.Argonaut.Core"];var Data_Either=PS["Data.Either"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var jsonParser=function(j){return $foreign._jsonParser(Data_Either.Left.create,Data_Either.Right.create,j)};exports["jsonParser"]=jsonParser})(PS["Data.Argonaut.Parser"]=PS["Data.Argonaut.Parser"]||{});(function(exports){"use strict";var Control_Alt=PS["Control.Alt"];var Control_Alternative=PS["Control.Alternative"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Category=PS["Control.Category"];var Control_Plus=PS["Control.Plus"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_FoldableWithIndex=PS["Data.FoldableWithIndex"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_FunctorWithIndex=PS["Data.FunctorWithIndex"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semigroup_Foldable=PS["Data.Semigroup.Foldable"];var Data_Show=PS["Data.Show"];var Data_Traversable=PS["Data.Traversable"];var Data_TraversableWithIndex=PS["Data.TraversableWithIndex"];var Data_Tuple=PS["Data.Tuple"];var Data_Unfoldable=PS["Data.Unfoldable"];var Data_Unfoldable1=PS["Data.Unfoldable1"];var Prelude=PS["Prelude"];var NonEmpty=function(){function NonEmpty(value0,value1){this.value0=value0;this.value1=value1}NonEmpty.create=function(value0){return function(value1){return new NonEmpty(value0,value1)}};return NonEmpty}();var singleton=function(dictPlus){return function(a){return new NonEmpty(a,Control_Plus.empty(dictPlus))}};var functorNonEmpty=function(dictFunctor){return new Data_Functor.Functor(function(f){return function(m){return new NonEmpty(f(m.value0),Data_Functor.map(dictFunctor)(f)(m.value1))}})};var foldableNonEmpty=function(dictFoldable){return new Data_Foldable.Foldable(function(dictMonoid){return function(f){return function(v){return Data_Semigroup.append(dictMonoid.Semigroup0())(f(v.value0))(Data_Foldable.foldMap(dictFoldable)(dictMonoid)(f)(v.value1))}}},function(f){return function(b){return function(v){return Data_Foldable.foldl(dictFoldable)(f)(f(b)(v.value0))(v.value1)}}},function(f){return function(b){return function(v){return f(v.value0)(Data_Foldable.foldr(dictFoldable)(f)(b)(v.value1))}}})};exports["NonEmpty"]=NonEmpty;exports["singleton"]=singleton;exports["functorNonEmpty"]=functorNonEmpty;exports["foldableNonEmpty"]=foldableNonEmpty})(PS["Data.NonEmpty"]=PS["Data.NonEmpty"]||{});(function(exports){"use strict";var Control_Alt=PS["Control.Alt"];var Control_Alternative=PS["Control.Alternative"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Category=PS["Control.Category"];var Control_Comonad=PS["Control.Comonad"];var Control_Extend=PS["Control.Extend"];var Control_Monad=PS["Control.Monad"];var Control_MonadPlus=PS["Control.MonadPlus"];var Control_MonadZero=PS["Control.MonadZero"];var Control_Plus=PS["Control.Plus"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_FoldableWithIndex=PS["Data.FoldableWithIndex"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_FunctorWithIndex=PS["Data.FunctorWithIndex"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Monoid=PS["Data.Monoid"];var Data_Newtype=PS["Data.Newtype"];var Data_NonEmpty=PS["Data.NonEmpty"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Ring=PS["Data.Ring"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semigroup_Foldable=PS["Data.Semigroup.Foldable"];var Data_Semigroup_Traversable=PS["Data.Semigroup.Traversable"];var Data_Semiring=PS["Data.Semiring"];var Data_Show=PS["Data.Show"];var Data_Traversable=PS["Data.Traversable"];var Data_TraversableWithIndex=PS["Data.TraversableWithIndex"];var Data_Tuple=PS["Data.Tuple"];var Data_Unfoldable=PS["Data.Unfoldable"];var Data_Unfoldable1=PS["Data.Unfoldable1"];var Prelude=PS["Prelude"];var Nil=function(){function Nil(){}Nil.value=new Nil;return Nil}();var Cons=function(){function Cons(value0,value1){this.value0=value0;this.value1=value1}Cons.create=function(value0){return function(value1){return new Cons(value0,value1)}};return Cons}();var NonEmptyList=function(x){return x};var foldableList=new Data_Foldable.Foldable(function(dictMonoid){return function(f){return Data_Foldable.foldl(foldableList)(function(acc){return function($155){return Data_Semigroup.append(dictMonoid.Semigroup0())(acc)(f($155))}})(Data_Monoid.mempty(dictMonoid))}},function(f){var go=function($copy_b){return function($copy_v){var $tco_var_b=$copy_b;var $tco_done=false;var $tco_result;function $tco_loop(b,v){if(v instanceof Nil){$tco_done=true;return b}if(v instanceof Cons){$tco_var_b=f(b)(v.value0);$copy_v=v.value1;return}throw new Error("Failed pattern match at Data.List.Types line 81, column 12 - line 83, column 30: "+[v.constructor.name])}while(!$tco_done){$tco_result=$tco_loop($tco_var_b,$copy_v)}return $tco_result}};return go},function(f){return function(b){var rev=Data_Foldable.foldl(foldableList)(Data_Function.flip(Cons.create))(Nil.value);return function($156){return Data_Foldable.foldl(foldableList)(Data_Function.flip(f))(b)(rev($156))}}});var foldableNonEmptyList=Data_NonEmpty.foldableNonEmpty(foldableList);var functorList=new Data_Functor.Functor(function(f){return Data_Foldable.foldr(foldableList)(function(x){return function(acc){return new Cons(f(x),acc)}})(Nil.value)});var functorNonEmptyList=Data_NonEmpty.functorNonEmpty(functorList);var semigroupList=new Data_Semigroup.Semigroup(function(xs){return function(ys){return Data_Foldable.foldr(foldableList)(Cons.create)(ys)(xs)}});var altList=new Control_Alt.Alt(function(){return functorList},Data_Semigroup.append(semigroupList));var plusList=new Control_Plus.Plus(function(){return altList},Nil.value);exports["Nil"]=Nil;exports["Cons"]=Cons;exports["NonEmptyList"]=NonEmptyList;exports["semigroupList"]=semigroupList;exports["functorList"]=functorList;exports["foldableList"]=foldableList;exports["altList"]=altList;exports["plusList"]=plusList;exports["functorNonEmptyList"]=functorNonEmptyList;exports["foldableNonEmptyList"]=foldableNonEmptyList})(PS["Data.List.Types"]=PS["Data.List.Types"]||{});(function(exports){"use strict";var Control_Applicative=PS["Control.Applicative"];var Control_Bind=PS["Control.Bind"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Either=PS["Data.Either"];var Data_Function=PS["Data.Function"];var Effect=PS["Effect"];var Effect_Aff=PS["Effect.Aff"];var Effect_Exception=PS["Effect.Exception"];var Effect_Uncurried=PS["Effect.Uncurried"];var Prelude=PS["Prelude"];var fromEffectFnAff=function(v){return Effect_Aff.makeAff(function(k){return function __do(){var v1=v(function($4){return k(Data_Either.Left.create($4))()},function($5){return k(Data_Either.Right.create($5))()});return function(e){return Effect_Aff.makeAff(function(k2){return function __do(){v1(e,function($6){return k2(Data_Either.Left.create($6))()},function($7){return k2(Data_Either.Right.create($7))()});return Effect_Aff.nonCanceler}})}}})};exports["fromEffectFnAff"]=fromEffectFnAff})(PS["Effect.Aff.Compat"]=PS["Effect.Aff.Compat"]||{});(function(exports){"use strict";exports.unsafeToForeign=function(value){return value};exports.unsafeFromForeign=function(value){return value};exports.tagOf=function(value){return Object.prototype.toString.call(value).slice(8,-1)}})(PS["Foreign"]=PS["Foreign"]||{});(function(exports){"use strict";var Control_Bind=PS["Control.Bind"];var Control_Category=PS["Control.Category"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Boolean=PS["Data.Boolean"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_List=PS["Data.List"];var Data_List_Types=PS["Data.List.Types"];var Data_Maybe=PS["Data.Maybe"];var Data_NonEmpty=PS["Data.NonEmpty"];var Data_Ord=PS["Data.Ord"];var Data_Ring=PS["Data.Ring"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semigroup_Foldable=PS["Data.Semigroup.Foldable"];var Data_Semigroup_Traversable=PS["Data.Semigroup.Traversable"];var Data_Semiring=PS["Data.Semiring"];var Data_Traversable=PS["Data.Traversable"];var Data_Tuple=PS["Data.Tuple"];var Data_Unfoldable=PS["Data.Unfoldable"];var Partial_Unsafe=PS["Partial.Unsafe"];var Prelude=PS["Prelude"];var singleton=function($160){return Data_List_Types.NonEmptyList(Data_NonEmpty.singleton(Data_List_Types.plusList)($160))};exports["singleton"]=singleton})(PS["Data.List.NonEmpty"]=PS["Data.List.NonEmpty"]||{});(function(exports){"use strict";exports.singleton=function(c){return c};exports.length=function(s){return s.length};exports.drop=function(n){return function(s){return s.substring(n)}}})(PS["Data.String.CodeUnits"]=PS["Data.String.CodeUnits"]||{});(function(exports){"use strict";exports.charAt=function(i){return function(s){if(i>=0&&i<s.length)return s.charAt(i);throw new Error("Data.String.Unsafe.charAt: Invalid index.")}}})(PS["Data.String.Unsafe"]=PS["Data.String.Unsafe"]||{});(function(exports){"use strict";var $foreign=PS["Data.String.Unsafe"];exports["charAt"]=$foreign.charAt})(PS["Data.String.Unsafe"]=PS["Data.String.Unsafe"]||{});(function(exports){"use strict";var $foreign=PS["Data.String.CodeUnits"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Boolean=PS["Data.Boolean"];var Data_Eq=PS["Data.Eq"];var Data_Function=PS["Data.Function"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Ring=PS["Data.Ring"];var Data_Semiring=PS["Data.Semiring"];var Data_String_Pattern=PS["Data.String.Pattern"];var Data_String_Unsafe=PS["Data.String.Unsafe"];var Prelude=PS["Prelude"];exports["singleton"]=$foreign.singleton;exports["length"]=$foreign.length;exports["drop"]=$foreign.drop})(PS["Data.String.CodeUnits"]=PS["Data.String.CodeUnits"]||{});(function(exports){"use strict";var $foreign=PS["Foreign"];var Control_Applicative=PS["Control.Applicative"];var Control_Monad_Error_Class=PS["Control.Monad.Error.Class"];var Control_Monad_Except=PS["Control.Monad.Except"];var Control_Monad_Except_Trans=PS["Control.Monad.Except.Trans"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Boolean=PS["Data.Boolean"];var Data_Either=PS["Data.Either"];var Data_Eq=PS["Data.Eq"];var Data_Function=PS["Data.Function"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Identity=PS["Data.Identity"];var Data_Int=PS["Data.Int"];var Data_List_NonEmpty=PS["Data.List.NonEmpty"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Data_String_CodeUnits=PS["Data.String.CodeUnits"];var Prelude=PS["Prelude"];var ForeignError=function(){function ForeignError(value0){this.value0=value0}ForeignError.create=function(value0){return new ForeignError(value0)};return ForeignError}();var TypeMismatch=function(){function TypeMismatch(value0,value1){this.value0=value0;this.value1=value1}TypeMismatch.create=function(value0){return function(value1){return new TypeMismatch(value0,value1)}};return TypeMismatch}();var ErrorAtIndex=function(){function ErrorAtIndex(value0,value1){this.value0=value0;this.value1=value1}ErrorAtIndex.create=function(value0){return function(value1){return new ErrorAtIndex(value0,value1)}};return ErrorAtIndex}();var ErrorAtProperty=function(){function ErrorAtProperty(value0,value1){this.value0=value0;this.value1=value1}ErrorAtProperty.create=function(value0){return function(value1){return new ErrorAtProperty(value0,value1)}};return ErrorAtProperty}();var renderForeignError=function(v){if(v instanceof ForeignError){return v.value0}if(v instanceof ErrorAtIndex){return"Error at array index "+(Data_Show.show(Data_Show.showInt)(v.value0)+(": "+renderForeignError(v.value1)))}if(v instanceof ErrorAtProperty){return"Error at property "+(Data_Show.show(Data_Show.showString)(v.value0)+(": "+renderForeignError(v.value1)))}if(v instanceof TypeMismatch){return"Type mismatch: expected "+(v.value0+(", found "+v.value1))}throw new Error("Failed pattern match at Foreign line 72, column 1 - line 72, column 45: "+[v.constructor.name])};var fail=function($107){return Control_Monad_Error_Class.throwError(Control_Monad_Except_Trans.monadThrowExceptT(Data_Identity.monadIdentity))(Data_List_NonEmpty.singleton($107))};var unsafeReadTagged=function(tag){return function(value){if($foreign.tagOf(value)===tag){return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))($foreign.unsafeFromForeign(value))}if(Data_Boolean.otherwise){return fail(new TypeMismatch(tag,$foreign.tagOf(value)))}throw new Error("Failed pattern match at Foreign line 106, column 1 - line 106, column 55: "+[tag.constructor.name,value.constructor.name])}};exports["ForeignError"]=ForeignError;exports["TypeMismatch"]=TypeMismatch;exports["ErrorAtIndex"]=ErrorAtIndex;exports["ErrorAtProperty"]=ErrorAtProperty;exports["renderForeignError"]=renderForeignError;exports["unsafeReadTagged"]=unsafeReadTagged;exports["fail"]=fail;exports["unsafeToForeign"]=$foreign.unsafeToForeign})(PS["Foreign"]=PS["Foreign"]||{});(function(exports){"use strict";var Data_Argonaut_Core=PS["Data.Argonaut.Core"];var Data_ArrayBuffer_Types=PS["Data.ArrayBuffer.Types"];var Data_FormURLEncoded=PS["Data.FormURLEncoded"];var Data_Maybe=PS["Data.Maybe"];var Data_MediaType=PS["Data.MediaType"];var Data_MediaType_Common=PS["Data.MediaType.Common"];var Web_DOM_Document=PS["Web.DOM.Document"];var Web_File_Blob=PS["Web.File.Blob"];var Web_XHR_FormData=PS["Web.XHR.FormData"];var ArrayView=function(){function ArrayView(value0){this.value0=value0}ArrayView.create=function(value0){return new ArrayView(value0)};return ArrayView}();var Blob=function(){function Blob(value0){this.value0=value0}Blob.create=function(value0){return new Blob(value0)};return Blob}();var Document=function(){function Document(value0){this.value0=value0}Document.create=function(value0){return new Document(value0)};return Document}();var $$String=function(){function $$String(value0){this.value0=value0}$$String.create=function(value0){return new $$String(value0)};return $$String}();var FormData=function(){function FormData(value0){this.value0=value0}FormData.create=function(value0){return new FormData(value0)};return FormData}();var FormURLEncoded=function(){function FormURLEncoded(value0){this.value0=value0}FormURLEncoded.create=function(value0){return new FormURLEncoded(value0)};return FormURLEncoded}();var Json=function(){function Json(value0){this.value0=value0}Json.create=function(value0){return new Json(value0)};return Json}();var toMediaType=function(v){if(v instanceof FormURLEncoded){return new Data_Maybe.Just(Data_MediaType_Common.applicationFormURLEncoded)}if(v instanceof Json){return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON)}return Data_Maybe.Nothing.value};exports["ArrayView"]=ArrayView;exports["Blob"]=Blob;exports["Document"]=Document;exports["String"]=$$String;exports["FormData"]=FormData;exports["FormURLEncoded"]=FormURLEncoded;exports["Json"]=Json;exports["toMediaType"]=toMediaType})(PS["Network.HTTP.Affjax.Request"]=PS["Network.HTTP.Affjax.Request"]||{});(function(exports){"use strict";var Control_Category=PS["Control.Category"];var Data_Argonaut_Core=PS["Data.Argonaut.Core"];var Data_ArrayBuffer_Types=PS["Data.ArrayBuffer.Types"];var Data_Maybe=PS["Data.Maybe"];var Data_MediaType=PS["Data.MediaType"];var Data_MediaType_Common=PS["Data.MediaType.Common"];var Prelude=PS["Prelude"];var Web_DOM_Document=PS["Web.DOM.Document"];var Web_File_Blob=PS["Web.File.Blob"];var $$ArrayBuffer=function(){function $$ArrayBuffer(value0){this.value0=value0}$$ArrayBuffer.create=function(value0){return new $$ArrayBuffer(value0)};return $$ArrayBuffer}();var Blob=function(){function Blob(value0){this.value0=value0}Blob.create=function(value0){return new Blob(value0)};return Blob}();var Document=function(){function Document(value0){this.value0=value0}Document.create=function(value0){return new Document(value0)};return Document}();var Json=function(){function Json(value0){this.value0=value0}Json.create=function(value0){return new Json(value0)};return Json}();var $$String=function(){function $$String(value0){this.value0=value0}$$String.create=function(value0){return new $$String(value0)};return $$String}();var Ignore=function(){function Ignore(value0){this.value0=value0}Ignore.create=function(value0){return new Ignore(value0)};return Ignore}();var toResponseType=function(v){if(v instanceof $$ArrayBuffer){return"arraybuffer"}if(v instanceof Blob){return"blob"}if(v instanceof Document){return"document"}if(v instanceof Json){return"text"}if(v instanceof $$String){return"text"}if(v instanceof Ignore){return""}throw new Error("Failed pattern match at Network.HTTP.Affjax.Response line 41, column 3 - line 49, column 1: "+[v.constructor.name])};var toMediaType=function(v){if(v instanceof Json){return new Data_Maybe.Just(Data_MediaType_Common.applicationJSON)}return Data_Maybe.Nothing.value};var ignore=new Ignore(Control_Category.identity(Control_Category.categoryFn));exports["ArrayBuffer"]=$$ArrayBuffer;exports["Blob"]=Blob;exports["Document"]=Document;exports["Json"]=Json;exports["String"]=$$String;exports["Ignore"]=Ignore;exports["ignore"]=ignore;exports["toResponseType"]=toResponseType;exports["toMediaType"]=toMediaType})(PS["Network.HTTP.Affjax.Response"]=PS["Network.HTTP.Affjax.Response"]||{});(function(exports){"use strict";var Data_Eq=PS["Data.Eq"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_MediaType=PS["Data.MediaType"];var Data_Newtype=PS["Data.Newtype"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Prelude=PS["Prelude"];var Accept=function(){function Accept(value0){this.value0=value0}Accept.create=function(value0){return new Accept(value0)};return Accept}();var ContentType=function(){function ContentType(value0){this.value0=value0}ContentType.create=function(value0){return new ContentType(value0)};return ContentType}();var RequestHeader=function(){function RequestHeader(value0,value1){this.value0=value0;this.value1=value1}RequestHeader.create=function(value0){return function(value1){return new RequestHeader(value0,value1)}};return RequestHeader}();var requestHeaderValue=function(v){if(v instanceof Accept){return Data_Newtype.unwrap(Data_MediaType.newtypeMediaType)(v.value0)}if(v instanceof ContentType){return Data_Newtype.unwrap(Data_MediaType.newtypeMediaType)(v.value0)}if(v instanceof RequestHeader){return v.value1}throw new Error("Failed pattern match at Network.HTTP.RequestHeader line 29, column 1 - line 29, column 46: "+[v.constructor.name])};var requestHeaderName=function(v){if(v instanceof Accept){return"Accept"}if(v instanceof ContentType){return"Content-Type"}if(v instanceof RequestHeader){return v.value0}throw new Error("Failed pattern match at Network.HTTP.RequestHeader line 24, column 1 - line 24, column 45: "+[v.constructor.name])};exports["Accept"]=Accept;exports["ContentType"]=ContentType;exports["RequestHeader"]=RequestHeader;exports["requestHeaderName"]=requestHeaderName;exports["requestHeaderValue"]=requestHeaderValue})(PS["Network.HTTP.RequestHeader"]=PS["Network.HTTP.RequestHeader"]||{});(function(exports){"use strict";var Data_Eq=PS["Data.Eq"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Prelude=PS["Prelude"];var ResponseHeader=function(){function ResponseHeader(value0,value1){this.value0=value0;this.value1=value1}ResponseHeader.create=function(value0){return function(value1){return new ResponseHeader(value0,value1)}};return ResponseHeader}();var responseHeader=function(field){return function(value){return new ResponseHeader(field,value)}};exports["responseHeader"]=responseHeader})(PS["Network.HTTP.ResponseHeader"]=PS["Network.HTTP.ResponseHeader"]||{});(function(exports){"use strict";var $foreign=PS["Network.HTTP.Affjax"];var Control_Applicative=PS["Control.Applicative"];var Control_Bind=PS["Control.Bind"];var Control_Monad_Error_Class=PS["Control.Monad.Error.Class"];var Control_Monad_Except=PS["Control.Monad.Except"];var Control_Monad_Except_Trans=PS["Control.Monad.Except.Trans"];var Control_Parallel=PS["Control.Parallel"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Argonaut_Core=PS["Data.Argonaut.Core"];var Data_Argonaut_Parser=PS["Data.Argonaut.Parser"];var Data_Array=PS["Data.Array"];var Data_Either=PS["Data.Either"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_FormURLEncoded=PS["Data.FormURLEncoded"];var Data_Function=PS["Data.Function"];var Data_Function_Uncurried=PS["Data.Function.Uncurried"];var Data_Functor=PS["Data.Functor"];var Data_HTTP_Method=PS["Data.HTTP.Method"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Identity=PS["Data.Identity"];var Data_Int=PS["Data.Int"];var Data_List_Types=PS["Data.List.Types"];var Data_Maybe=PS["Data.Maybe"];var Data_Monoid=PS["Data.Monoid"];var Data_Nullable=PS["Data.Nullable"];var Data_Ord=PS["Data.Ord"];var Data_Ring=PS["Data.Ring"];var Data_Semiring=PS["Data.Semiring"];var Data_Time_Duration=PS["Data.Time.Duration"];var Data_Unit=PS["Data.Unit"];var Effect_Aff=PS["Effect.Aff"];var Effect_Aff_Compat=PS["Effect.Aff.Compat"];var Effect_Class=PS["Effect.Class"];var Effect_Exception=PS["Effect.Exception"];var Effect_Ref=PS["Effect.Ref"];var Foreign=PS["Foreign"];var $$Math=PS["Math"];var Network_HTTP_Affjax_Request=PS["Network.HTTP.Affjax.Request"];var Network_HTTP_Affjax_Response=PS["Network.HTTP.Affjax.Response"];var Network_HTTP_RequestHeader=PS["Network.HTTP.RequestHeader"];var Network_HTTP_ResponseHeader=PS["Network.HTTP.ResponseHeader"];var Network_HTTP_StatusCode=PS["Network.HTTP.StatusCode"];var Prelude=PS["Prelude"];var defaultRequest={method:new Data_Either.Left(Data_HTTP_Method.GET.value),url:"/",headers:[],content:Data_Maybe.Nothing.value,username:Data_Maybe.Nothing.value,password:Data_Maybe.Nothing.value,withCredentials:false};var affjax=function(rt){return function(req){var parseJSON=function(v){if(v===""){return Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Argonaut_Core.jsonEmptyObject)}return Data_Either.either(function($58){return Foreign.fail(Foreign.ForeignError.create($58))})(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity)))(Data_Argonaut_Parser.jsonParser(v))};var fromResponse$prime=function(){if(rt instanceof Network_HTTP_Affjax_Response["ArrayBuffer"]){return Foreign.unsafeReadTagged("ArrayBuffer")}if(rt instanceof Network_HTTP_Affjax_Response.Blob){return Foreign.unsafeReadTagged("Blob")}if(rt instanceof Network_HTTP_Affjax_Response.Document){return Foreign.unsafeReadTagged("Document")}if(rt instanceof Network_HTTP_Affjax_Response.Json){return Control_Bind.composeKleisliFlipped(Control_Monad_Except_Trans.bindExceptT(Data_Identity.monadIdentity))(function($59){return rt.value0(parseJSON($59))})(Foreign.unsafeReadTagged("String"))}if(rt instanceof Network_HTTP_Affjax_Response["String"]){return Foreign.unsafeReadTagged("String")}if(rt instanceof Network_HTTP_Affjax_Response.Ignore){return Data_Function["const"](rt.value0(Control_Applicative.pure(Control_Monad_Except_Trans.applicativeExceptT(Data_Identity.monadIdentity))(Data_Unit.unit)))}throw new Error("Failed pattern match at Network.HTTP.Affjax line 261, column 19 - line 267, column 51: "+[rt.constructor.name])}();var extractContent=function(v){if(v instanceof Network_HTTP_Affjax_Request.ArrayView){return v.value0(Foreign.unsafeToForeign)}if(v instanceof Network_HTTP_Affjax_Request.Blob){return Foreign.unsafeToForeign(v.value0)}if(v instanceof Network_HTTP_Affjax_Request.Document){return Foreign.unsafeToForeign(v.value0)}if(v instanceof Network_HTTP_Affjax_Request["String"]){return Foreign.unsafeToForeign(v.value0)}if(v instanceof Network_HTTP_Affjax_Request.FormData){return Foreign.unsafeToForeign(v.value0)}if(v instanceof Network_HTTP_Affjax_Request.FormURLEncoded){return Foreign.unsafeToForeign(Data_FormURLEncoded.encode(v.value0))}if(v instanceof Network_HTTP_Affjax_Request.Json){return Foreign.unsafeToForeign(Data_Argonaut_Core.stringify(v.value0))}throw new Error("Failed pattern match at Network.HTTP.Affjax line 235, column 20 - line 242, column 53: "+[v.constructor.name])};var addHeader=function(mh){return function(hs){if(mh instanceof Data_Maybe.Just&&!Data_Foldable.any(Data_Foldable.foldableArray)(Data_HeytingAlgebra.heytingAlgebraBoolean)(Data_Function.on(Data_Eq.eq(Data_Eq.eqString))(Network_HTTP_RequestHeader.requestHeaderName)(mh.value0))(hs)){return Data_Array.snoc(hs)(mh.value0)}return hs}};var headers=function(reqContent){return addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Network_HTTP_RequestHeader.ContentType.create)(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Network_HTTP_Affjax_Request.toMediaType)(reqContent)))(addHeader(Data_Functor.map(Data_Maybe.functorMaybe)(Network_HTTP_RequestHeader.Accept.create)(Network_HTTP_Affjax_Response.toMediaType(rt)))(req.headers))};var req$prime={method:Data_HTTP_Method.print(req.method),url:req.url,headers:Data_Functor.map(Data_Functor.functorArray)(function(h){return{field:Network_HTTP_RequestHeader.requestHeaderName(h),value:Network_HTTP_RequestHeader.requestHeaderValue(h)}})(headers(req.content)),content:Data_Nullable.toNullable(Data_Functor.map(Data_Maybe.functorMaybe)(extractContent)(req.content)),responseType:Network_HTTP_Affjax_Response.toResponseType(rt),username:Data_Nullable.toNullable(req.username),password:Data_Nullable.toNullable(req.password),withCredentials:req.withCredentials};return Control_Bind.bind(Effect_Aff.bindAff)(Effect_Aff_Compat.fromEffectFnAff($foreign._ajax(Network_HTTP_ResponseHeader.responseHeader,req$prime)))(function(v){var v1=Control_Monad_Except.runExcept(fromResponse$prime(v.response));if(v1 instanceof Data_Either.Left){return Control_Monad_Error_Class.throwError(Effect_Aff.monadThrowAff)(Effect_Exception.error(Data_Foldable.intercalate(Data_List_Types.foldableNonEmptyList)(Data_Monoid.monoidString)("\n")(Data_Functor.map(Data_List_Types.functorNonEmptyList)(Foreign.renderForeignError)(v1.value0))))}if(v1 instanceof Data_Either.Right){return Control_Applicative.pure(Effect_Aff.applicativeAff)({response:v1.value0,headers:v.headers,status:v.status,statusText:v.statusText})}throw new Error("Failed pattern match at Network.HTTP.Affjax line 217, column 3 - line 219, column 49: "+[v1.constructor.name])})}};exports["defaultRequest"]=defaultRequest;exports["affjax"]=affjax})(PS["Network.HTTP.Affjax"]=PS["Network.HTTP.Affjax"]||{});(function(exports){"use strict";exports._target=function(e){return e.target};exports.preventDefault=function(e){return function(){return e.preventDefault()}}})(PS["Web.Event.Event"]=PS["Web.Event.Event"]||{});(function(exports){"use strict";exports.toCharCode=function(c){return c.charCodeAt(0)};exports.fromCharCode=function(c){return String.fromCharCode(c)}})(PS["Data.Enum"]=PS["Data.Enum"]||{});(function(exports){"use strict";var $foreign=PS["Data.Enum"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_MonadPlus=PS["Control.MonadPlus"];var Control_MonadZero=PS["Control.MonadZero"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Boolean=PS["Data.Boolean"];var Data_Bounded=PS["Data.Bounded"];var Data_Either=PS["Data.Either"];var Data_Eq=PS["Data.Eq"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Newtype=PS["Data.Newtype"];var Data_Ord=PS["Data.Ord"];var Data_Ordering=PS["Data.Ordering"];var Data_Ring=PS["Data.Ring"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semiring=PS["Data.Semiring"];var Data_Show=PS["Data.Show"];var Data_Tuple=PS["Data.Tuple"];var Data_Unfoldable=PS["Data.Unfoldable"];var Data_Unfoldable1=PS["Data.Unfoldable1"];var Data_Unit=PS["Data.Unit"];var Partial_Unsafe=PS["Partial.Unsafe"];var Prelude=PS["Prelude"];var Enum=function(Ord0,pred,succ){this.Ord0=Ord0;this.pred=pred;this.succ=succ};var BoundedEnum=function(Bounded0,Enum1,cardinality,fromEnum,toEnum){this.Bounded0=Bounded0;this.Enum1=Enum1;this.cardinality=cardinality;this.fromEnum=fromEnum;this.toEnum=toEnum};var toEnum=function(dict){return dict.toEnum};var succ=function(dict){return dict.succ};var pred=function(dict){return dict.pred};var fromEnum=function(dict){return dict.fromEnum};var toEnumWithDefaults=function(dictBoundedEnum){return function(low){return function(high){return function(x){var v=toEnum(dictBoundedEnum)(x);if(v instanceof Data_Maybe.Just){return v.value0}if(v instanceof Data_Maybe.Nothing){var $51=x<fromEnum(dictBoundedEnum)(Data_Bounded.bottom(dictBoundedEnum.Bounded0()));if($51){return low}return high}throw new Error("Failed pattern match at Data.Enum line 158, column 33 - line 160, column 62: "+[v.constructor.name])}}}};var defaultSucc=function(toEnum$prime){return function(fromEnum$prime){return function(a){return toEnum$prime(fromEnum$prime(a)+1|0)}}};var defaultPred=function(toEnum$prime){return function(fromEnum$prime){return function(a){return toEnum$prime(fromEnum$prime(a)-1|0)}}};var charToEnum=function(v){if(v>=Data_Bounded.bottom(Data_Bounded.boundedInt)&&v<=Data_Bounded.top(Data_Bounded.boundedInt)){return new Data_Maybe.Just($foreign.fromCharCode(v))}return Data_Maybe.Nothing.value};var enumChar=new Enum(function(){return Data_Ord.ordChar},defaultPred(charToEnum)($foreign.toCharCode),defaultSucc(charToEnum)($foreign.toCharCode));var cardinality=function(dict){return dict.cardinality};var boundedEnumChar=new BoundedEnum(function(){return Data_Bounded.boundedChar},function(){return enumChar},$foreign.toCharCode(Data_Bounded.top(Data_Bounded.boundedChar))-$foreign.toCharCode(Data_Bounded.bottom(Data_Bounded.boundedChar))|0,$foreign.toCharCode,charToEnum);exports["Enum"]=Enum;exports["succ"]=succ;exports["pred"]=pred;exports["BoundedEnum"]=BoundedEnum;exports["cardinality"]=cardinality;exports["toEnum"]=toEnum;exports["fromEnum"]=fromEnum;exports["toEnumWithDefaults"]=toEnumWithDefaults;exports["defaultSucc"]=defaultSucc;exports["defaultPred"]=defaultPred;exports["enumChar"]=enumChar;exports["boundedEnumChar"]=boundedEnumChar})(PS["Data.Enum"]=PS["Data.Enum"]||{});(function(exports){"use strict";var $foreign=PS["Web.Event.Event"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_DateTime_Instant=PS["Data.DateTime.Instant"];var Data_Enum=PS["Data.Enum"];var Data_Eq=PS["Data.Eq"];var Data_Maybe=PS["Data.Maybe"];var Data_Newtype=PS["Data.Newtype"];var Data_Nullable=PS["Data.Nullable"];var Data_Ord=PS["Data.Ord"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Web_Event_EventPhase=PS["Web.Event.EventPhase"];var Web_Event_Internal_Types=PS["Web.Event.Internal.Types"];var target=function($4){return Data_Nullable.toMaybe($foreign._target($4))};exports["target"]=target;exports["preventDefault"]=$foreign.preventDefault})(PS["Web.Event.Event"]=PS["Web.Event.Event"]||{});(function(exports){"use strict";var Control_Bind=PS["Control.Bind"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Array=PS["Data.Array"];var Data_Either=PS["Data.Either"];var Data_FormURLEncoded=PS["Data.FormURLEncoded"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_HTTP_Method=PS["Data.HTTP.Method"];var Data_Maybe=PS["Data.Maybe"];var Data_MediaType_Common=PS["Data.MediaType.Common"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Unit=PS["Data.Unit"];var Effect=PS["Effect"];var Effect_Aff=PS["Effect.Aff"];var Effect_Class=PS["Effect.Class"];var Globals=PS["Globals"];var Network_HTTP_Affjax=PS["Network.HTTP.Affjax"];var Network_HTTP_Affjax_Request=PS["Network.HTTP.Affjax.Request"];var Network_HTTP_Affjax_Response=PS["Network.HTTP.Affjax.Response"];var Network_HTTP_RequestHeader=PS["Network.HTTP.RequestHeader"];var Prelude=PS["Prelude"];var Web_Event_Event=PS["Web.Event.Event"];var Web_HTML=PS["Web.HTML"];var Web_HTML_Location=PS["Web.HTML.Location"];var Web_HTML_Window=PS["Web.HTML.Window"];var fetchUrl=function(method){return function(url){return function(headers){return function(content){return function(rt){var app=Globals["app'"](Data_Unit.unit);return Network_HTTP_Affjax.affjax(rt)({method:new Data_Either.Left(method),url:url,headers:Data_Array.cons(new Network_HTTP_RequestHeader.RequestHeader(app.csrfHeaderName,app.csrfToken))(headers),content:content,username:Network_HTTP_Affjax.defaultRequest.username,password:Network_HTTP_Affjax.defaultRequest.password,withCredentials:Network_HTTP_Affjax.defaultRequest.withCredentials})}}}}};var logout=function(u){var app=Globals["app'"](u);return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor["void"](Effect_Aff.functorAff)(fetchUrl(Data_HTTP_Method.POST.value)(app.authRlogoutR)([])(Data_Maybe.Nothing.value)(Network_HTTP_Affjax_Response.ignore)))(function(){return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Bind.bind(Effect.bindEffect)(Control_Bind.bind(Effect.bindEffect)(Web_HTML.window)(Web_HTML_Window.location))(Web_HTML_Location.reload))})};var logoutE=function(e){return Control_Bind.bindFlipped(Effect.bindEffect)(function($1){return Data_Functor["void"](Effect.functorEffect)(Effect_Aff.launchAff(logout($1)))})(Web_Event_Event.preventDefault(e))};var fetchPath=function(method){return function(path){return function(headers){return function(content){return function(rt){return fetchUrl(method)(Globals["app'"](Data_Unit.unit).homeR+path)(headers)(content)(rt)}}}}};var fetchUrlEnc=function(method){return function(path){return function(content){return function(rt){return fetchPath(method)(path)([new Network_HTTP_RequestHeader.ContentType(Data_MediaType_Common.applicationFormURLEncoded)])(Data_Functor.map(Data_Maybe.functorMaybe)(Network_HTTP_Affjax_Request.FormURLEncoded.create)(content))(rt)}}}};exports["logoutE"]=logoutE;exports["logout"]=logout;exports["fetchUrlEnc"]=fetchUrlEnc;exports["fetchPath"]=fetchPath;exports["fetchUrl"]=fetchUrl})(PS["App"]=PS["App"]||{});(function(exports){"use strict";var Control_Alt=PS["Control.Alt"];var Control_Alternative=PS["Control.Alternative"];var Control_Applicative=PS["Control.Applicative"];var Control_Apply=PS["Control.Apply"];var Control_Bind=PS["Control.Bind"];var Control_Category=PS["Control.Category"];var Control_Monad=PS["Control.Monad"];var Control_Monad_Cont_Class=PS["Control.Monad.Cont.Class"];var Control_Monad_Error_Class=PS["Control.Monad.Error.Class"];var Control_Monad_Reader_Class=PS["Control.Monad.Reader.Class"];var Control_Monad_Rec_Class=PS["Control.Monad.Rec.Class"];var Control_Monad_State_Class=PS["Control.Monad.State.Class"];var Control_Monad_Trans_Class=PS["Control.Monad.Trans.Class"];var Control_Monad_Writer_Class=PS["Control.Monad.Writer.Class"];var Control_MonadPlus=PS["Control.MonadPlus"];var Control_MonadZero=PS["Control.MonadZero"];var Control_Plus=PS["Control.Plus"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Newtype=PS["Data.Newtype"];var Data_Tuple=PS["Data.Tuple"];var Effect_Class=PS["Effect.Class"];var Prelude=PS["Prelude"];var MaybeT=function(x){return x};var runMaybeT=function(v){return v};var monadTransMaybeT=new Control_Monad_Trans_Class.MonadTrans(function(dictMonad){return function($75){return MaybeT(Control_Monad.liftM1(dictMonad)(Data_Maybe.Just.create)($75))}});var functorMaybeT=function(dictFunctor){return new Data_Functor.Functor(function(f){return function(v){return Data_Functor.map(dictFunctor)(Data_Functor.map(Data_Maybe.functorMaybe)(f))(v)}})};var monadMaybeT=function(dictMonad){return new Control_Monad.Monad(function(){return applicativeMaybeT(dictMonad)},function(){return bindMaybeT(dictMonad)})};var bindMaybeT=function(dictMonad){return new Control_Bind.Bind(function(){return applyMaybeT(dictMonad)},function(v){return function(f){return Control_Bind.bind(dictMonad.Bind1())(v)(function(v1){if(v1 instanceof Data_Maybe.Nothing){return Control_Applicative.pure(dictMonad.Applicative0())(Data_Maybe.Nothing.value)}if(v1 instanceof Data_Maybe.Just){var v2=f(v1.value0);return v2}throw new Error("Failed pattern match at Control.Monad.Maybe.Trans line 54, column 11 - line 56, column 42: "+[v1.constructor.name])})}})};var applyMaybeT=function(dictMonad){return new Control_Apply.Apply(function(){return functorMaybeT(dictMonad.Bind1().Apply0().Functor0())},Control_Monad.ap(monadMaybeT(dictMonad)))};var applicativeMaybeT=function(dictMonad){return new Control_Applicative.Applicative(function(){return applyMaybeT(dictMonad)},function($76){return MaybeT(Control_Applicative.pure(dictMonad.Applicative0())(Data_Maybe.Just.create($76)))})};exports["MaybeT"]=MaybeT;exports["runMaybeT"]=runMaybeT;exports["functorMaybeT"]=functorMaybeT;exports["applyMaybeT"]=applyMaybeT;exports["applicativeMaybeT"]=applicativeMaybeT;exports["bindMaybeT"]=bindMaybeT;exports["monadMaybeT"]=monadMaybeT;exports["monadTransMaybeT"]=monadTransMaybeT})(PS["Control.Monad.Maybe.Trans"]=PS["Control.Monad.Maybe.Trans"]||{});(function(exports){"use strict";var hasArrayFrom=typeof Array.from==="function";var hasStringIterator=typeof Symbol!=="undefined"&&Symbol!=null&&typeof Symbol.iterator!=="undefined"&&typeof String.prototype[Symbol.iterator]==="function";var hasFromCodePoint=typeof String.prototype.fromCodePoint==="function";var hasCodePointAt=typeof String.prototype.codePointAt==="function";exports._unsafeCodePointAt0=function(fallback){return hasCodePointAt?function(str){return str.codePointAt(0)}:fallback};exports._singleton=function(fallback){return hasFromCodePoint?String.fromCodePoint:fallback};exports._take=function(fallback){return function(n){if(hasStringIterator){return function(str){var accum="";var iter=str[Symbol.iterator]();for(var i=0;i<n;++i){var o=iter.next();if(o.done)return accum;accum+=o.value}return accum}}return fallback(n)}};exports._toCodePointArray=function(fallback){return function(unsafeCodePointAt0){if(hasArrayFrom){return function(str){return Array.from(str,unsafeCodePointAt0)}}return fallback}}})(PS["Data.String.CodePoints"]=PS["Data.String.CodePoints"]||{});(function(exports){"use strict";var $foreign=PS["Data.String.CodePoints"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Array=PS["Data.Array"];var Data_Boolean=PS["Data.Boolean"];var Data_Bounded=PS["Data.Bounded"];var Data_Enum=PS["Data.Enum"];var Data_Eq=PS["Data.Eq"];var Data_EuclideanRing=PS["Data.EuclideanRing"];var Data_Functor=PS["Data.Functor"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Int=PS["Data.Int"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Ring=PS["Data.Ring"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Semiring=PS["Data.Semiring"];var Data_Show=PS["Data.Show"];var Data_String_CodeUnits=PS["Data.String.CodeUnits"];var Data_String_Common=PS["Data.String.Common"];var Data_String_Pattern=PS["Data.String.Pattern"];var Data_String_Unsafe=PS["Data.String.Unsafe"];var Data_Tuple=PS["Data.Tuple"];var Data_Unfoldable=PS["Data.Unfoldable"];var Prelude=PS["Prelude"];var unsurrogate=function(lead){return function(trail){return(((lead-55296|0)*1024|0)+(trail-56320|0)|0)+65536|0}};var isTrail=function(cu){return 56320<=cu&&cu<=57343};var isLead=function(cu){return 55296<=cu&&cu<=56319};var uncons=function(s){var v=Data_String_CodeUnits.length(s);if(v===0){return Data_Maybe.Nothing.value}if(v===1){return new Data_Maybe.Just({head:Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s)),tail:""})}var cu1=Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));var cu0=Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));var $21=isLead(cu0)&&isTrail(cu1);if($21){return new Data_Maybe.Just({head:unsurrogate(cu0)(cu1),tail:Data_String_CodeUnits.drop(2)(s)})}return new Data_Maybe.Just({head:cu0,tail:Data_String_CodeUnits.drop(1)(s)})};var unconsButWithTuple=function(s){return Data_Functor.map(Data_Maybe.functorMaybe)(function(v){return new Data_Tuple.Tuple(v.head,v.tail)})(uncons(s))};var toCodePointArrayFallback=function(s){return Data_Unfoldable.unfoldr(Data_Unfoldable.unfoldableArray)(unconsButWithTuple)(s)};var unsafeCodePointAt0Fallback=function(s){var cu1=Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(1)(s));var cu0=Data_Enum.fromEnum(Data_Enum.boundedEnumChar)(Data_String_Unsafe.charAt(0)(s));var $25=isLead(cu0)&&isTrail(cu1);if($25){return unsurrogate(cu0)(cu1)}return cu0};var unsafeCodePointAt0=$foreign._unsafeCodePointAt0(unsafeCodePointAt0Fallback);var toCodePointArray=$foreign._toCodePointArray(toCodePointArrayFallback)(unsafeCodePointAt0);var length=function($51){return Data_Array.length(toCodePointArray($51))};var fromCharCode=function($52){return Data_String_CodeUnits.singleton(Data_Enum.toEnumWithDefaults(Data_Enum.boundedEnumChar)(Data_Bounded.bottom(Data_Bounded.boundedChar))(Data_Bounded.top(Data_Bounded.boundedChar))($52))};var singletonFallback=function(v){if(v<=65535){return fromCharCode(v)}var lead=Data_EuclideanRing.div(Data_EuclideanRing.euclideanRingInt)(v-65536|0)(1024)+55296|0;var trail=Data_EuclideanRing.mod(Data_EuclideanRing.euclideanRingInt)(v-65536|0)(1024)+56320|0;return fromCharCode(lead)+fromCharCode(trail)};var singleton=$foreign._singleton(singletonFallback);var takeFallback=function(n){return function(v){if(n<1){return""}var v1=uncons(v);if(v1 instanceof Data_Maybe.Just){return singleton(v1.value0.head)+takeFallback(n-1|0)(v1.value0.tail)}return v}};var take=$foreign._take(takeFallback);var drop=function(n){return function(s){return Data_String_CodeUnits.drop(Data_String_CodeUnits.length(take(n)(s)))(s)}};exports["singleton"]=singleton;exports["toCodePointArray"]=toCodePointArray;exports["uncons"]=uncons;exports["length"]=length;exports["take"]=take;exports["drop"]=drop})(PS["Data.String.CodePoints"]=PS["Data.String.CodePoints"]||{});(function(exports){"use strict";exports.log=function(s){return function(){console.log(s);return{}}}})(PS["Effect.Console"]=PS["Effect.Console"]||{});(function(exports){"use strict";var $foreign=PS["Effect.Console"];var Data_Show=PS["Data.Show"];var Data_Unit=PS["Data.Unit"];var Effect=PS["Effect"];exports["log"]=$foreign.log})(PS["Effect.Console"]=PS["Effect.Console"]||{});(function(exports){"use strict";var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Function=PS["Data.Function"];var Data_Show=PS["Data.Show"];var Data_Unit=PS["Data.Unit"];var Effect_Class=PS["Effect.Class"];var Effect_Console=PS["Effect.Console"];var log=function(dictMonadEffect){return function($15){return Effect_Class.liftEffect(dictMonadEffect)(Effect_Console.log($15))}};exports["log"]=log})(PS["Effect.Class.Console"]=PS["Effect.Class.Console"]||{});(function(exports){"use strict";var Control_Applicative=PS["Control.Applicative"];var Control_Bind=PS["Control.Bind"];var Control_Monad_Maybe_Trans=PS["Control.Monad.Maybe.Trans"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Foldable=PS["Data.Foldable"];var Data_Function=PS["Data.Function"];var Data_Maybe=PS["Data.Maybe"];var Data_Tuple=PS["Data.Tuple"];var Effect=PS["Effect"];var Partial_Unsafe=PS["Partial.Unsafe"];var Prelude=PS["Prelude"];var Web_DOM=PS["Web.DOM"];var Web_DOM_Document=PS["Web.DOM.Document"];var Web_DOM_Element=PS["Web.DOM.Element"];var Web_DOM_NodeList=PS["Web.DOM.NodeList"];var Web_DOM_NonElementParentNode=PS["Web.DOM.NonElementParentNode"];var Web_DOM_ParentNode=PS["Web.DOM.ParentNode"];var Web_HTML=PS["Web.HTML"];var Web_HTML_HTMLDocument=PS["Web.HTML.HTMLDocument"];var Web_HTML_HTMLElement=PS["Web.HTML.HTMLElement"];var Web_HTML_Window=PS["Web.HTML.Window"];var _querySelectorAll=function(s){return function(n){return Control_Bind.bindFlipped(Effect.bindEffect)(Web_DOM_NodeList.toArray)(Web_DOM_ParentNode.querySelectorAll(s)(Web_DOM_Element.toParentNode(n)))}};var _querySelector=function(s){return function(n){return Web_DOM_ParentNode.querySelector(s)(Web_DOM_Element.toParentNode(n))}};var _queryBoth$prime$prime=function(v){return function(v1){return function(f){return function __do(){var v2=_querySelectorAll(v.value0)(v.value1)();var v3=_querySelectorAll(v1.value0)(v1.value1)();return f(v2)(v3)()}}}};var _queryBoth$prime=function(v){return function(v1){return function(f){return function __do(){var v2=_querySelector(v.value0)(v.value1)();var v3=_querySelectorAll(v1.value0)(v1.value1)();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(v2)(function(a){return f(a)(v3)})()}}}};var _queryBoth=function(v){return function(v1){return function(f){return function __do(){var v2=_querySelector(v.value0)(v.value1)();var v3=_querySelector(v1.value0)(v1.value1)();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(v2)(function(a){return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(v3)(function(b){return f(a)(b)})})()}}}};var _mt_pure=function($42){return Control_Monad_Maybe_Trans.MaybeT(Control_Applicative.pure(Effect.applicativeEffect)($42))};var _mt=Control_Monad_Maybe_Trans.MaybeT;var _getElementById=function(s){return function($43){return Web_DOM_NonElementParentNode.getElementById(s)(Web_DOM_Document.toNonElementParentNode(Web_HTML_HTMLDocument.toDocument($43)))}};var _fromNode=function(e){return Data_Maybe.fromJust()(Web_DOM_Element.fromNode(e))};var _fromElement=function(e){return Data_Maybe.fromJust()(Web_HTML_HTMLElement.fromElement(e))};var _doc=Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_Window.document)(Web_HTML.window);var _body=Control_Bind.bindFlipped(Effect.bindEffect)(function($44){return Control_Applicative.pure(Effect.applicativeEffect)(Data_Maybe.fromJust()($44))})(Control_Bind.bindFlipped(Effect.bindEffect)(Web_HTML_HTMLDocument.body)(_doc));exports["_queryBoth"]=_queryBoth;exports["_queryBoth'"]=_queryBoth$prime;exports["_queryBoth''"]=_queryBoth$prime$prime;exports["_querySelector"]=_querySelector;exports["_querySelectorAll"]=_querySelectorAll;exports["_fromNode"]=_fromNode;exports["_fromElement"]=_fromElement;exports["_getElementById"]=_getElementById;exports["_doc"]=_doc;exports["_body"]=_body;exports["_mt"]=_mt;exports["_mt_pure"]=_mt_pure})(PS["Util"]=PS["Util"]||{});(function(exports){"use strict";var getEffProp=function(name){return function(node){return function(){return node[name]}}};exports.textContent=getEffProp("textContent");exports.setTextContent=function(value){return function(node){return function(){node.textContent=value;return{}}}};exports.deepClone=function(node){return function(){return node.cloneNode(true)}};exports.insertBefore=function(node1){return function(node2){return function(parent){return function(){return parent.insertBefore(node1,node2)}}}};exports.appendChild=function(node){return function(parent){return function(){return parent.appendChild(node)}}}})(PS["Web.DOM.Node"]=PS["Web.DOM.Node"]||{});(function(exports){"use strict";var $foreign=PS["Web.DOM.Node"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Enum=PS["Data.Enum"];var Data_Functor=PS["Data.Functor"];var Data_Maybe=PS["Data.Maybe"];var Data_Nullable=PS["Data.Nullable"];var Effect=PS["Effect"];var Prelude=PS["Prelude"];var Unsafe_Coerce=PS["Unsafe.Coerce"];var Web_DOM_Document=PS["Web.DOM.Document"];var Web_DOM_Element=PS["Web.DOM.Element"];var Web_DOM_Internal_Types=PS["Web.DOM.Internal.Types"];var Web_DOM_NodeType=PS["Web.DOM.NodeType"];var Web_Event_EventTarget=PS["Web.Event.EventTarget"];var Web_Internal_FFI=PS["Web.Internal.FFI"];var fromEventTarget=Web_Internal_FFI.unsafeReadProtoTagged("Node");exports["fromEventTarget"]=fromEventTarget;exports["textContent"]=$foreign.textContent;exports["setTextContent"]=$foreign.setTextContent;exports["deepClone"]=$foreign.deepClone;exports["insertBefore"]=$foreign.insertBefore;exports["appendChild"]=$foreign.appendChild})(PS["Web.DOM.Node"]=PS["Web.DOM.Node"]||{});(function(exports){"use strict";var App=PS["App"];var Control_Applicative=PS["Control.Applicative"];var Control_Bind=PS["Control.Bind"];var Control_Monad_Maybe_Trans=PS["Control.Monad.Maybe.Trans"];var Control_Monad_Trans_Class=PS["Control.Monad.Trans.Class"];var Control_Semigroupoid=PS["Control.Semigroupoid"];var Data_Array=PS["Data.Array"];var Data_Eq=PS["Data.Eq"];var Data_Foldable=PS["Data.Foldable"];var Data_FormURLEncoded=PS["Data.FormURLEncoded"];var Data_Function=PS["Data.Function"];var Data_Functor=PS["Data.Functor"];var Data_HTTP_Method=PS["Data.HTTP.Method"];var Data_HeytingAlgebra=PS["Data.HeytingAlgebra"];var Data_Maybe=PS["Data.Maybe"];var Data_Ord=PS["Data.Ord"];var Data_Semigroup=PS["Data.Semigroup"];var Data_Show=PS["Data.Show"];var Data_String=PS["Data.String"];var Data_String_CodePoints=PS["Data.String.CodePoints"];var Data_String_Common=PS["Data.String.Common"];var Data_String_Pattern=PS["Data.String.Pattern"];var Data_Traversable=PS["Data.Traversable"];var Data_Tuple=PS["Data.Tuple"];var Data_Unit=PS["Data.Unit"];var Effect=PS["Effect"];var Effect_Aff=PS["Effect.Aff"];var Effect_Class=PS["Effect.Class"];var Effect_Class_Console=PS["Effect.Class.Console"];var Globals=PS["Globals"];var Network_HTTP_Affjax=PS["Network.HTTP.Affjax"];var Network_HTTP_Affjax_Response=PS["Network.HTTP.Affjax.Response"];var Prelude=PS["Prelude"];var Util=PS["Util"];var Web_DOM=PS["Web.DOM"];var Web_DOM_ChildNode=PS["Web.DOM.ChildNode"];var Web_DOM_DOMTokenList=PS["Web.DOM.DOMTokenList"];var Web_DOM_Document=PS["Web.DOM.Document"];var Web_DOM_Element=PS["Web.DOM.Element"];var Web_DOM_Node=PS["Web.DOM.Node"];var Web_Event_Event=PS["Web.Event.Event"];var Web_HTML_HTMLDocument=PS["Web.HTML.HTMLDocument"];var Web_HTML_HTMLElement=PS["Web.HTML.HTMLElement"];var Web_HTML_HTMLFormElement=PS["Web.HTML.HTMLFormElement"];var Web_HTML_HTMLInputElement=PS["Web.HTML.HTMLInputElement"];var Web_HTML_HTMLTextAreaElement=PS["Web.HTML.HTMLTextAreaElement"];var Star=function(){function Star(){}Star.value=new Star;return Star}();var UnStar=function(){function UnStar(){}UnStar.value=new UnStar;return UnStar}();var toggleDelete=function(toggle){return function(n){return Data_Functor["void"](Effect.functorEffect)(Control_Monad_Maybe_Trans.runMaybeT(Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Globals.closest(".delete_link")(n)))(function(v){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Util._querySelector(".confirm")(Util._fromNode(v))))(function(v1){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Util._querySelector(".delete")(Util._fromNode(v))))(function(v2){return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT)(Effect.monadEffect)(Web_DOM_Element.removeAttribute("hidden")(function(){if(toggle){return v1}return v2}())))(function(){return Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT)(Effect.monadEffect)(Web_DOM_Element.setAttribute("hidden")("hidden")(function(){var $62=!toggle;if($62){return v1}return v2}()))})})})})))}};var showStar=new Data_Show.Show(function(v){if(v instanceof Star){return"star"}if(v instanceof UnStar){return"unstar"}throw new Error("Failed pattern match at BMark line 127, column 1 - line 127, column 37: "+[v.constructor.name])});var toggleStar=function(bid){return function(action){var path="bm/"+(Data_Show.show(Data_Show.showInt)(bid)+("/"+Data_Show.show(showStar)(action)));return Data_Functor["void"](Effect_Aff.functorAff)(App.fetchUrlEnc(Data_HTTP_Method.POST.value)(path)(Data_Maybe.Nothing.value)(Network_HTTP_Affjax_Response.ignore))}};var toggleStarE=function(e){return function(bid){return function __do(){Web_Event_Event.preventDefault(e)();var v=Control_Monad_Maybe_Trans.runMaybeT(Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt_pure(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_DOM_Node.fromEventTarget)(Web_Event_Event.target(e))))(function(v){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Globals.closest(".star")(v)))(function(v1){return Util._mt_pure(Web_HTML_HTMLElement.fromNode(v1))})}))();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(v)(function(starEl){return function __do(){var v1=Web_HTML_HTMLElement.classList(starEl)();var v2=Web_DOM_DOMTokenList.contains(v1)("selected_star")();Data_Functor["void"](Effect.functorEffect)(Effect_Aff.launchAff(toggleStar(bid)(function(){if(v2){return UnStar.value}return Star.value}())))();return Data_Functor["void"](Effect.functorEffect)(Web_DOM_DOMTokenList.toggle(v1)("selected_star"))()}})()}}};var replaceIsoTimestamps=function(u){return function __do(){var v=Util._body();var v1=Util._querySelectorAll(".js-moment")(Web_HTML_HTMLElement.toElement(v))();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableArray)(v1)(function(x){return function __do(){var s$prime=Globals.getDataAttribute("iso8601")(Util._fromNode(x))();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(s$prime)(function(s){return function __do(){var v2=Globals.moment8601(s)();Web_DOM_Node.setTextContent(v2.value0)(x)();Web_DOM_Element.setAttribute("title")(v2.value1)(Util._fromNode(x))();return Web_DOM_Element.setAttribute("style")("visibility:visible")(Util._fromNode(x))()}})()}})()}};var markRead=function(bid){var path="bm/"+(Data_Show.show(Data_Show.showInt)(bid)+"/read");return App.fetchUrlEnc(Data_HTTP_Method.POST.value)(path)(Data_Maybe.Nothing.value)(Network_HTTP_Affjax_Response.ignore)};var markReadE=function(e){return function(bid){var removeUnreadClass=function(eNode){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Globals.closest(".bookmark")(eNode)))(function(v){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Util._querySelector(".bookmark_title")(Util._fromNode(v))))(function(v1){return Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT)(Effect.monadEffect)(function __do(){var v2=Web_HTML_HTMLElement.classList(Util._fromElement(v1))();return Web_DOM_DOMTokenList.remove(v2)("unread")()})})})};var removeReadNode=function(eNode){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Globals.closest(".mark_read")(eNode)))(function(v){return Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT)(Effect.monadEffect)(Web_DOM_ChildNode.remove(Web_DOM_Element.toChildNode(Util._fromNode(v))))})};return function __do(){Web_Event_Event.preventDefault(e)();return Data_Functor["void"](Effect.functorEffect)(Effect_Aff.launchAff(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor["void"](Effect_Aff.functorAff)(markRead(bid)))(function(){return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(Control_Monad_Maybe_Trans.runMaybeT(Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt_pure(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_DOM_Node.fromEventTarget)(Web_Event_Event.target(e))))(function(v){return Control_Bind.discard(Control_Bind.discardUnit)(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(removeUnreadClass(v))(function(){return removeReadNode(v)})})))})))()}}};var editHideE=function(e){var showDisplay=function(body){return function __do(){var v=Util._querySelectorAll(".display")(body)();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableArray)(v)(function($118){return Web_DOM_Element.removeAttribute("hidden")(Util._fromNode($118))})()}};var removeEdit=function(body){return function __do(){var v=Util._querySelectorAll(".edit_bookmark_form.active")(body)();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableArray)(v)(function($119){return Web_DOM_ChildNode.remove(Web_DOM_Element.toChildNode(Util._fromNode($119)))})()}};return function __do(){Web_Event_Event.preventDefault(e)();var v=Util._body();showDisplay(Web_HTML_HTMLElement.toElement(v))();return removeEdit(Web_HTML_HTMLElement.toElement(v))()}};var editSubmitE=function(e){var words=function($120){return Data_Array.filter(function($121){return function(v){return 0<v}(Data_String_CodePoints.length($121))})(Data_String_Common.split(" ")($120))};var _mpair=function(v){if(v.length===2){return Data_Maybe.Just.create(new Data_Tuple.Tuple(v[0],new Data_Maybe.Just(v[1])))}return Data_Maybe.Nothing.value};return function __do(){Web_Event_Event.preventDefault(e)();var v=Util._body();var v1=Util._doc();return Data_Functor["void"](Effect.functorEffect)(Control_Monad_Maybe_Trans.runMaybeT(Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt_pure(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_DOM_Node.fromEventTarget)(Web_Event_Event.target(e))))(function(v2){var fe=Util._fromNode(v2);return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt_pure(Web_HTML_HTMLFormElement.fromNode(v2)))(function(v3){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Data_Functor.map(Effect.functorEffect)(Data_Functor.map(Data_Maybe.functorMaybe)(Util._fromNode))(Globals.closest(".bookmark")(v2))))(function(v4){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Util._querySelector(".display")(v4)))(function(v5){return Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT)(Effect.monadEffect)(Effect_Aff.launchAff(function(){var dat=Data_Maybe.Just.create(Data_FormURLEncoded.FormURLEncoded(Data_Array.mapMaybe(_mpair)(Globals.createFormArray(v3))));return Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor["void"](Effect_Aff.functorAff)(App.fetchUrlEnc(Data_HTTP_Method.POST.value)("add?inline=true")(dat)(Network_HTTP_Affjax_Response.ignore)))(function(){return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function __do(){var v6=function __do(){var me=Util._querySelector("input[name=toread]")(fe)();var $122=Data_Traversable["for"](Effect.applicativeEffect)(Data_Traversable.traversableMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(me)(Web_HTML_HTMLInputElement.fromElement))(Web_HTML_HTMLInputElement.checked)();return Data_Maybe.fromMaybe(false)($122)}();var v7=function __do(){var me=Util._querySelector("input[name=private]")(fe)();var $123=Data_Traversable["for"](Effect.applicativeEffect)(Data_Traversable.traversableMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(me)(Web_HTML_HTMLInputElement.fromElement))(Web_HTML_HTMLInputElement.checked)();return Data_Maybe.fromMaybe(false)($123)}();Util._queryBoth(new Data_Tuple.Tuple(".url",fe))(new Data_Tuple.Tuple(".url_display",v5))(function(a){return function(b){return function __do(){var v8=function __do(){var $124=Data_Traversable["for"](Effect.applicativeEffect)(Data_Traversable.traversableMaybe)(Web_HTML_HTMLInputElement.fromElement(a))(Web_HTML_HTMLInputElement.value)();return Data_Maybe.fromMaybe("")($124)}();return Web_DOM_Node.setTextContent(v8)(Web_DOM_Element.toNode(b))()}}})();Util._queryBoth(new Data_Tuple.Tuple(".title",fe))(new Data_Tuple.Tuple(".bookmark_title",v5))(function(a){return function(b){return function __do(){var v8=function __do(){var $125=Data_Traversable["for"](Effect.applicativeEffect)(Data_Traversable.traversableMaybe)(Web_HTML_HTMLInputElement.fromElement(a))(Web_HTML_HTMLInputElement.value)();return Data_Maybe.fromMaybe("")($125)}();Web_DOM_Node.setTextContent(v8)(Web_DOM_Element.toNode(b))();return Data_Functor["void"](Effect.functorEffect)(function __do(){var cl=Web_HTML_HTMLElement.classList(Util._fromElement(b))();return Web_DOM_DOMTokenList.toggleForce(cl)("unread")(v6)()})()}}})();Util._queryBoth(new Data_Tuple.Tuple(".description",fe))(new Data_Tuple.Tuple(".description",v5))(function(a){return function(b){return function __do(){var v8=function __do(){var $126=Data_Traversable["for"](Effect.applicativeEffect)(Data_Traversable.traversableMaybe)(Web_HTML_HTMLTextAreaElement.fromElement(a))(Web_HTML_HTMLTextAreaElement.value)();return Data_Maybe.fromMaybe("")($126)}();var descr$prime=Data_String_Common.trim(Data_String_Common.replaceAll("\n")("<br>")(v8));return Data_Functor["void"](Effect.functorEffect)(Globals.setInnerHtml(descr$prime)(Util._fromElement(b)))()}}})();Data_Functor["void"](Effect.functorEffect)(function __do(){var cl=Web_HTML_HTMLElement.classList(Util._fromElement(v4))();return Web_DOM_DOMTokenList.toggleForce(cl)("private")(v7)()})();var v8=function __do(){var me=Util._querySelector(".banner_username")(Web_HTML_HTMLElement.toElement(v))();var $127=Data_Functor.map(Effect.functorEffect)(Control_Bind.join(Data_Maybe.bindMaybe))(Data_Traversable["for"](Effect.applicativeEffect)(Data_Traversable.traversableMaybe)(me)(Globals.getDataAttribute("username")))();return Data_Maybe.fromMaybe("")($127)}();Util._queryBoth(new Data_Tuple.Tuple(".tags",fe))(new Data_Tuple.Tuple(".tags",v5))(function(a){return function(b){return function __do(){Data_Functor["void"](Effect.functorEffect)(Globals.setInnerHtml("")(Util._fromElement(b)))();var v9=function __do(){var $128=Data_Traversable["for"](Effect.applicativeEffect)(Data_Traversable.traversableMaybe)(Web_HTML_HTMLInputElement.fromElement(a))(Web_HTML_HTMLInputElement.value)();return Data_Maybe.fromMaybe("")($128)}();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableArray)(words(v9))(function(w){return function __do(){var v10=Web_DOM_Document.createElement("a")(Web_HTML_HTMLDocument.toDocument(v1))();Web_DOM_Element.setClassName("tag"+function(){var $99=Data_String_CodePoints.take(1)(w)===".";if($99){return" private"}return""}())(v10)();Web_DOM_Element.setAttribute("href")("/u:"+(v8+("/t:"+w)))(v10)();Web_DOM_Node.setTextContent(w)(Web_DOM_Element.toNode(v10))();return Web_DOM_Node.appendChild(Web_DOM_Element.toNode(v10))(Web_DOM_Element.toNode(b))()}})()}}})();(function __do(){var me=Util._querySelector(".read")(v5)();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(me)(function(m){return function __do(){Data_Functor["void"](Effect.functorEffect)(Globals.setInnerHtml("")(Util._fromElement(m)))();return Control_Applicative.when(Effect.applicativeEffect)(v6)(function __do(){var v9=function __do(){var $129=Globals.getDataAttribute("bid")(v4)();return Data_Maybe.fromMaybe("")($129)}();Effect_Class_Console.log(Effect_Class.monadEffectEffect)(v9)();var v10=Web_DOM_Document.createElement("a")(Web_HTML_HTMLDocument.toDocument(v1))();Web_DOM_Element.setClassName("mark_read")(v10)();Web_DOM_Element.setAttribute("href")("#")(v10)();Web_DOM_Element.setAttribute("onclick")("PS['BMark'].markReadE(event)("+(v9+")();"))(v10)();Web_DOM_Node.setTextContent("mark as read")(Web_DOM_Element.toNode(v10))();return Data_Functor["void"](Effect.functorEffect)(Web_DOM_Node.appendChild(Web_DOM_Element.toNode(v10))(Web_DOM_Element.toNode(m)))()})()}})()})();return editHideE(e)()})})}()))})})})})))()}};var editE=function(e){return function(bid){return function __do(){editHideE(e)();var v=Util._body();var v1=Util._doc();return Data_Functor["void"](Effect.functorEffect)(Control_Monad_Maybe_Trans.runMaybeT(Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt_pure(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_DOM_Node.fromEventTarget)(Web_Event_Event.target(e))))(function(v2){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Data_Functor.map(Effect.functorEffect)(Data_Functor.map(Data_Maybe.functorMaybe)(Util._fromNode))(Globals.closest(".bookmark")(v2))))(function(v3){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Util._querySelector(".display")(v3)))(function(v4){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Util._getElementById("edit_bookmark_form_template")(v1)))(function(v5){return Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT)(Effect.monadEffect)(function __do(){var v6=Web_DOM_Node.deepClone(Web_DOM_Element.toNode(v5))();var ele=Util._fromNode(v6);Web_DOM_Element.removeAttribute("id")(ele)();Web_DOM_Element.removeAttribute("hidden")(ele)();(function __do(){var v7=Web_HTML_HTMLElement.classList(Util._fromElement(ele))();return Web_DOM_DOMTokenList.add(v7)("active")()})();(function __do(){var me=Util._querySelector("input[name=bid]")(ele)();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(me)(Web_HTML_HTMLInputElement.fromElement))(Web_HTML_HTMLInputElement.setValue(Data_Show.show(Data_Show.showInt)(bid)))()})();Util._queryBoth(new Data_Tuple.Tuple(".url",ele))(new Data_Tuple.Tuple(".url_display",v3))(function(a){return function(b){return function __do(){var v7=Web_DOM_Node.textContent(Web_DOM_Element.toNode(b))();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Web_HTML_HTMLInputElement.fromElement(a))(Web_HTML_HTMLInputElement.setValue(Data_String_Common.trim(v7)))()}}})();Util._queryBoth(new Data_Tuple.Tuple(".title",ele))(new Data_Tuple.Tuple(".bookmark_title",v3))(function(a){return function(b){return function __do(){var v7=Web_DOM_Node.textContent(Web_DOM_Element.toNode(b))();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Web_HTML_HTMLInputElement.fromElement(a))(Web_HTML_HTMLInputElement.setValue(Data_String_Common.trim(v7)))()}}})();Util._queryBoth(new Data_Tuple.Tuple(".description",ele))(new Data_Tuple.Tuple(".description",v3))(function(a){return function(b){return function __do(){var v7=Globals.innerHtml(Util._fromElement(b))();var descr$prime=Data_String_Common.trim(Data_String_Common.replaceAll("<br>")("\n")(v7));return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Web_HTML_HTMLTextAreaElement.fromElement(a))(Web_HTML_HTMLTextAreaElement.setValue(descr$prime))()}}})();Util["_queryBoth'"](new Data_Tuple.Tuple(".tags",ele))(new Data_Tuple.Tuple(".tag",v3))(function(a){return function(bs){return function __do(){var v7=Data_Traversable.traverse(Data_Traversable.traversableArray)(Effect.applicativeEffect)(Web_DOM_Node.textContent)(bs)();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Web_HTML_HTMLInputElement.fromElement(a))(Web_HTML_HTMLInputElement.setValue(Data_String_Common.joinWith(" ")(v7)))()}}})();(function __do(){var me=Util._querySelector("input[name=private]")(ele)();var v7=function __do(){var v7=Web_HTML_HTMLElement.classList(Util._fromElement(v3))();return Web_DOM_DOMTokenList.contains(v7)("private")()}();return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Control_Bind.bind(Data_Maybe.bindMaybe)(me)(Web_HTML_HTMLInputElement.fromElement))(Web_HTML_HTMLInputElement.setChecked(v7))()})();Util._queryBoth(new Data_Tuple.Tuple("input[name=toread]",ele))(new Data_Tuple.Tuple(".read .mark_read",v3))(function(a){return function(v7){return Data_Foldable.for_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(Web_HTML_HTMLInputElement.fromElement(a))(Web_HTML_HTMLInputElement.setChecked(true))}})();Web_DOM_Element.setAttribute("hidden")("hidden")(v4)();return Data_Functor["void"](Effect.functorEffect)(Web_DOM_Node.insertBefore(v6)(Web_DOM_Element.toNode(v4))(Web_DOM_Element.toNode(v3)))()})})})})})))()}}};var destroy=function(bid){return App.fetchUrlEnc(Data_HTTP_Method.DELETE.value)("bm/"+Data_Show.show(Data_Show.showInt)(bid))(Data_Maybe.Nothing.value)(Network_HTTP_Affjax_Response.ignore)};var destroyE=function(e){return function(bid){return function(isPopup){var removeBookmarkNode=function(v){return Data_Functor["void"](Effect.functorEffect)(Control_Monad_Maybe_Trans.runMaybeT(Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt_pure(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_DOM_Node.fromEventTarget)(Web_Event_Event.target(e))))(function(v1){return Control_Bind.bind(Control_Monad_Maybe_Trans.bindMaybeT(Effect.monadEffect))(Util._mt(Globals.closest(".bookmark")(v1)))(function(v2){return Control_Monad_Trans_Class.lift(Control_Monad_Maybe_Trans.monadTransMaybeT)(Effect.monadEffect)(Web_DOM_ChildNode.remove(Web_DOM_Element.toChildNode(Util._fromNode(v2))))})})))};var removeBody=function(v){return function __do(){var v1=Util._body();return Data_Functor["void"](Effect.functorEffect)(Globals.setInnerHtml("<p class='error'>you killed this bookmark</p>")(v1))()}};return function __do(){Web_Event_Event.preventDefault(e)();return Data_Functor["void"](Effect.functorEffect)(Effect_Aff.launchAff(Control_Bind.discard(Control_Bind.discardUnit)(Effect_Aff.bindAff)(Data_Functor["void"](Effect_Aff.functorAff)(destroy(bid)))(function(){return Effect_Class.liftEffect(Effect_Aff.monadEffectAff)(function(){if(isPopup){return removeBody(Data_Unit.unit)}return removeBookmarkNode(Data_Unit.unit)}())})))()}}}};var deleteCancelE=function(e){return function __do(){Web_Event_Event.preventDefault(e)();return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(toggleDelete(false))(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_DOM_Node.fromEventTarget)(Web_Event_Event.target(e)))()}};var deleteAskE=function(e){return function __do(){Web_Event_Event.preventDefault(e)();return Data_Foldable.traverse_(Effect.applicativeEffect)(Data_Foldable.foldableMaybe)(toggleDelete(true))(Control_Bind.bindFlipped(Data_Maybe.bindMaybe)(Web_DOM_Node.fromEventTarget)(Web_Event_Event.target(e)))()}};exports["replaceIsoTimestamps"]=replaceIsoTimestamps;exports["deleteAskE"]=deleteAskE;exports["deleteCancelE"]=deleteCancelE;exports["toggleDelete"]=toggleDelete;exports["destroyE"]=destroyE;exports["destroy"]=destroy;exports["markReadE"]=markReadE;exports["markRead"]=markRead;exports["Star"]=Star;exports["UnStar"]=UnStar;exports["toggleStarE"]=toggleStarE;exports["toggleStar"]=toggleStar;exports["editHideE"]=editHideE;exports["editE"]=editE;exports["editSubmitE"]=editSubmitE;exports["showStar"]=showStar})(PS["BMark"]=PS["BMark"]||{});
diff --git a/static/js/app.js.gz b/static/js/app.js.gz
new file mode 100644
Binary files /dev/null and b/static/js/app.js.gz differ
diff --git a/static/js/html5shiv.min.js b/static/js/html5shiv.min.js
new file mode 100644
--- /dev/null
+++ b/static/js/html5shiv.min.js
@@ -0,0 +1,4 @@
+/**
+* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
+*/
+!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);
diff --git a/static/js/html5shiv.min.js.gz b/static/js/html5shiv.min.js.gz
new file mode 100644
Binary files /dev/null and b/static/js/html5shiv.min.js.gz differ
diff --git a/static/js/js.cookie-2.2.0.min.js b/static/js/js.cookie-2.2.0.min.js
new file mode 100644
--- /dev/null
+++ b/static/js/js.cookie-2.2.0.min.js
@@ -0,0 +1,3 @@
+/*! js-cookie v2.2.0 | MIT */
+
+!function(e){var n=!1;if("function"==typeof define&&define.amd&&(define(e),n=!0),"object"==typeof exports&&(module.exports=e(),n=!0),!n){var o=window.Cookies,t=window.Cookies=e();t.noConflict=function(){return window.Cookies=o,t}}}(function(){function e(){for(var e=0,n={};e<arguments.length;e++){var o=arguments[e];for(var t in o)n[t]=o[t]}return n}function n(o){function t(n,r,i){var c;if("undefined"!=typeof document){if(arguments.length>1){if("number"==typeof(i=e({path:"/"},t.defaults,i)).expires){var a=new Date;a.setMilliseconds(a.getMilliseconds()+864e5*i.expires),i.expires=a}i.expires=i.expires?i.expires.toUTCString():"";try{c=JSON.stringify(r),/^[\{\[]/.test(c)&&(r=c)}catch(e){}r=o.write?o.write(r,n):encodeURIComponent(r+"").replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),n=(n=(n=encodeURIComponent(n+"")).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent)).replace(/[\(\)]/g,escape);var s="";for(var f in i)i[f]&&(s+="; "+f,!0!==i[f]&&(s+="="+i[f]));return document.cookie=n+"="+r+s}n||(c={});for(var p=document.cookie?document.cookie.split("; "):[],d=/(%[0-9A-Z]{2})+/g,u=0;u<p.length;u++){var l=p[u].split("="),C=l.slice(1).join("=");this.json||'"'!==C.charAt(0)||(C=C.slice(1,-1));try{var m=l[0].replace(d,decodeURIComponent);if(C=o.read?o.read(C,m):o(C,m)||C.replace(d,decodeURIComponent),this.json)try{C=JSON.parse(C)}catch(e){}if(n===m){c=C;break}n||(c[m]=C)}catch(e){}}return c}}return t.set=t,t.get=function(e){return t.call(t,e)},t.getJSON=function(){return t.apply({json:!0},[].slice.call(arguments))},t.defaults={},t.remove=function(n,o){t(n,"",e(o,{expires:-1}))},t.withConverter=n,t}return n(function(){})});
diff --git a/static/js/js.cookie-2.2.0.min.js.gz b/static/js/js.cookie-2.2.0.min.js.gz
new file mode 100644
Binary files /dev/null and b/static/js/js.cookie-2.2.0.min.js.gz differ
diff --git a/static/js/moment.min.js b/static/js/moment.min.js
new file mode 100644
--- /dev/null
+++ b/static/js/moment.min.js
@@ -0,0 +1,1 @@
+!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):e.moment=t()}(this,function(){"use strict";var e,i;function c(){return e.apply(null,arguments)}function o(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function u(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function l(e){return void 0===e}function d(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function h(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function f(e,t){var n,s=[];for(n=0;n<e.length;++n)s.push(t(e[n],n));return s}function m(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function _(e,t){for(var n in t)m(t,n)&&(e[n]=t[n]);return m(t,"toString")&&(e.toString=t.toString),m(t,"valueOf")&&(e.valueOf=t.valueOf),e}function y(e,t,n,s){return Ot(e,t,n,s,!0).utc()}function g(e){return null==e._pf&&(e._pf={empty:!1,unusedTokens:[],unusedInput:[],overflow:-2,charsLeftOver:0,nullInput:!1,invalidMonth:null,invalidFormat:!1,userInvalidated:!1,iso:!1,parsedDateParts:[],meridiem:null,rfc2822:!1,weekdayMismatch:!1}),e._pf}function p(e){if(null==e._isValid){var t=g(e),n=i.call(t.parsedDateParts,function(e){return null!=e}),s=!isNaN(e._d.getTime())&&t.overflow<0&&!t.empty&&!t.invalidMonth&&!t.invalidWeekday&&!t.weekdayMismatch&&!t.nullInput&&!t.invalidFormat&&!t.userInvalidated&&(!t.meridiem||t.meridiem&&n);if(e._strict&&(s=s&&0===t.charsLeftOver&&0===t.unusedTokens.length&&void 0===t.bigHour),null!=Object.isFrozen&&Object.isFrozen(e))return s;e._isValid=s}return e._isValid}function v(e){var t=y(NaN);return null!=e?_(g(t),e):g(t).userInvalidated=!0,t}i=Array.prototype.some?Array.prototype.some:function(e){for(var t=Object(this),n=t.length>>>0,s=0;s<n;s++)if(s in t&&e.call(this,t[s],s,t))return!0;return!1};var r=c.momentProperties=[];function w(e,t){var n,s,i;if(l(t._isAMomentObject)||(e._isAMomentObject=t._isAMomentObject),l(t._i)||(e._i=t._i),l(t._f)||(e._f=t._f),l(t._l)||(e._l=t._l),l(t._strict)||(e._strict=t._strict),l(t._tzm)||(e._tzm=t._tzm),l(t._isUTC)||(e._isUTC=t._isUTC),l(t._offset)||(e._offset=t._offset),l(t._pf)||(e._pf=g(t)),l(t._locale)||(e._locale=t._locale),0<r.length)for(n=0;n<r.length;n++)l(i=t[s=r[n]])||(e[s]=i);return e}var t=!1;function M(e){w(this,e),this._d=new Date(null!=e._d?e._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===t&&(t=!0,c.updateOffset(this),t=!1)}function S(e){return e instanceof M||null!=e&&null!=e._isAMomentObject}function D(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function k(e){var t=+e,n=0;return 0!==t&&isFinite(t)&&(n=D(t)),n}function a(e,t,n){var s,i=Math.min(e.length,t.length),r=Math.abs(e.length-t.length),a=0;for(s=0;s<i;s++)(n&&e[s]!==t[s]||!n&&k(e[s])!==k(t[s]))&&a++;return a+r}function Y(e){!1===c.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+e)}function n(i,r){var a=!0;return _(function(){if(null!=c.deprecationHandler&&c.deprecationHandler(null,i),a){for(var e,t=[],n=0;n<arguments.length;n++){if(e="","object"==typeof arguments[n]){for(var s in e+="\n["+n+"] ",arguments[0])e+=s+": "+arguments[0][s]+", ";e=e.slice(0,-2)}else e=arguments[n];t.push(e)}Y(i+"\nArguments: "+Array.prototype.slice.call(t).join("")+"\n"+(new Error).stack),a=!1}return r.apply(this,arguments)},r)}var s,O={};function T(e,t){null!=c.deprecationHandler&&c.deprecationHandler(e,t),O[e]||(Y(t),O[e]=!0)}function x(e){return e instanceof Function||"[object Function]"===Object.prototype.toString.call(e)}function b(e,t){var n,s=_({},e);for(n in t)m(t,n)&&(u(e[n])&&u(t[n])?(s[n]={},_(s[n],e[n]),_(s[n],t[n])):null!=t[n]?s[n]=t[n]:delete s[n]);for(n in e)m(e,n)&&!m(t,n)&&u(e[n])&&(s[n]=_({},s[n]));return s}function P(e){null!=e&&this.set(e)}c.suppressDeprecationWarnings=!1,c.deprecationHandler=null,s=Object.keys?Object.keys:function(e){var t,n=[];for(t in e)m(e,t)&&n.push(t);return n};var W={};function H(e,t){var n=e.toLowerCase();W[n]=W[n+"s"]=W[t]=e}function R(e){return"string"==typeof e?W[e]||W[e.toLowerCase()]:void 0}function C(e){var t,n,s={};for(n in e)m(e,n)&&(t=R(n))&&(s[t]=e[n]);return s}var F={};function L(e,t){F[e]=t}function U(e,t,n){var s=""+Math.abs(e),i=t-s.length;return(0<=e?n?"+":"":"-")+Math.pow(10,Math.max(0,i)).toString().substr(1)+s}var N=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,G=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,V={},E={};function I(e,t,n,s){var i=s;"string"==typeof s&&(i=function(){return this[s]()}),e&&(E[e]=i),t&&(E[t[0]]=function(){return U(i.apply(this,arguments),t[1],t[2])}),n&&(E[n]=function(){return this.localeData().ordinal(i.apply(this,arguments),e)})}function A(e,t){return e.isValid()?(t=j(t,e.localeData()),V[t]=V[t]||function(s){var e,i,t,r=s.match(N);for(e=0,i=r.length;e<i;e++)E[r[e]]?r[e]=E[r[e]]:r[e]=(t=r[e]).match(/\[[\s\S]/)?t.replace(/^\[|\]$/g,""):t.replace(/\\/g,"");return function(e){var t,n="";for(t=0;t<i;t++)n+=x(r[t])?r[t].call(e,s):r[t];return n}}(t),V[t](e)):e.localeData().invalidDate()}function j(e,t){var n=5;function s(e){return t.longDateFormat(e)||e}for(G.lastIndex=0;0<=n&&G.test(e);)e=e.replace(G,s),G.lastIndex=0,n-=1;return e}var Z=/\d/,z=/\d\d/,$=/\d{3}/,q=/\d{4}/,J=/[+-]?\d{6}/,B=/\d\d?/,Q=/\d\d\d\d?/,X=/\d\d\d\d\d\d?/,K=/\d{1,3}/,ee=/\d{1,4}/,te=/[+-]?\d{1,6}/,ne=/\d+/,se=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,re=/Z|[+-]\d\d(?::?\d\d)?/gi,ae=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,oe={};function ue(e,n,s){oe[e]=x(n)?n:function(e,t){return e&&s?s:n}}function le(e,t){return m(oe,e)?oe[e](t._strict,t._locale):new RegExp(de(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(e,t,n,s,i){return t||n||s||i})))}function de(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var he={};function ce(e,n){var t,s=n;for("string"==typeof e&&(e=[e]),d(n)&&(s=function(e,t){t[n]=k(e)}),t=0;t<e.length;t++)he[e[t]]=s}function fe(e,i){ce(e,function(e,t,n,s){n._w=n._w||{},i(e,n._w,n,s)})}var me=0,_e=1,ye=2,ge=3,pe=4,ve=5,we=6,Me=7,Se=8;function De(e){return ke(e)?366:365}function ke(e){return e%4==0&&e%100!=0||e%400==0}I("Y",0,0,function(){var e=this.year();return e<=9999?""+e:"+"+e}),I(0,["YY",2],0,function(){return this.year()%100}),I(0,["YYYY",4],0,"year"),I(0,["YYYYY",5],0,"year"),I(0,["YYYYYY",6,!0],0,"year"),H("year","y"),L("year",1),ue("Y",se),ue("YY",B,z),ue("YYYY",ee,q),ue("YYYYY",te,J),ue("YYYYYY",te,J),ce(["YYYYY","YYYYYY"],me),ce("YYYY",function(e,t){t[me]=2===e.length?c.parseTwoDigitYear(e):k(e)}),ce("YY",function(e,t){t[me]=c.parseTwoDigitYear(e)}),ce("Y",function(e,t){t[me]=parseInt(e,10)}),c.parseTwoDigitYear=function(e){return k(e)+(68<k(e)?1900:2e3)};var Ye,Oe=Te("FullYear",!0);function Te(t,n){return function(e){return null!=e?(be(this,t,e),c.updateOffset(this,n),this):xe(this,t)}}function xe(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function be(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&ke(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),Pe(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function Pe(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,s=(t%(n=12)+n)%n;return e+=(t-s)/12,1===s?ke(e)?29:28:31-s%7%2}Ye=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t<this.length;++t)if(this[t]===e)return t;return-1},I("M",["MM",2],"Mo",function(){return this.month()+1}),I("MMM",0,0,function(e){return this.localeData().monthsShort(this,e)}),I("MMMM",0,0,function(e){return this.localeData().months(this,e)}),H("month","M"),L("month",8),ue("M",B),ue("MM",B,z),ue("MMM",function(e,t){return t.monthsShortRegex(e)}),ue("MMMM",function(e,t){return t.monthsRegex(e)}),ce(["M","MM"],function(e,t){t[_e]=k(e)-1}),ce(["MMM","MMMM"],function(e,t,n,s){var i=n._locale.monthsParse(e,s,n._strict);null!=i?t[_e]=i:g(n).invalidMonth=e});var We=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,He="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var Re="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function Ce(e,t){var n;if(!e.isValid())return e;if("string"==typeof t)if(/^\d+$/.test(t))t=k(t);else if(!d(t=e.localeData().monthsParse(t)))return e;return n=Math.min(e.date(),Pe(e.year(),t)),e._d["set"+(e._isUTC?"UTC":"")+"Month"](t,n),e}function Fe(e){return null!=e?(Ce(this,e),c.updateOffset(this,!0),this):xe(this,"Month")}var Le=ae;var Ue=ae;function Ne(){function e(e,t){return t.length-e.length}var t,n,s=[],i=[],r=[];for(t=0;t<12;t++)n=y([2e3,t]),s.push(this.monthsShort(n,"")),i.push(this.months(n,"")),r.push(this.months(n,"")),r.push(this.monthsShort(n,""));for(s.sort(e),i.sort(e),r.sort(e),t=0;t<12;t++)s[t]=de(s[t]),i[t]=de(i[t]);for(t=0;t<24;t++)r[t]=de(r[t]);this._monthsRegex=new RegExp("^("+r.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+i.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+s.join("|")+")","i")}function Ge(e){var t=new Date(Date.UTC.apply(null,arguments));return e<100&&0<=e&&isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e),t}function Ve(e,t,n){var s=7+t-n;return-((7+Ge(e,0,s).getUTCDay()-t)%7)+s-1}function Ee(e,t,n,s,i){var r,a,o=1+7*(t-1)+(7+n-s)%7+Ve(e,s,i);return o<=0?a=De(r=e-1)+o:o>De(e)?(r=e+1,a=o-De(e)):(r=e,a=o),{year:r,dayOfYear:a}}function Ie(e,t,n){var s,i,r=Ve(e.year(),t,n),a=Math.floor((e.dayOfYear()-r-1)/7)+1;return a<1?s=a+Ae(i=e.year()-1,t,n):a>Ae(e.year(),t,n)?(s=a-Ae(e.year(),t,n),i=e.year()+1):(i=e.year(),s=a),{week:s,year:i}}function Ae(e,t,n){var s=Ve(e,t,n),i=Ve(e+1,t,n);return(De(e)-s+i)/7}I("w",["ww",2],"wo","week"),I("W",["WW",2],"Wo","isoWeek"),H("week","w"),H("isoWeek","W"),L("week",5),L("isoWeek",5),ue("w",B),ue("ww",B,z),ue("W",B),ue("WW",B,z),fe(["w","ww","W","WW"],function(e,t,n,s){t[s.substr(0,1)]=k(e)});I("d",0,"do","day"),I("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)}),I("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)}),I("dddd",0,0,function(e){return this.localeData().weekdays(this,e)}),I("e",0,0,"weekday"),I("E",0,0,"isoWeekday"),H("day","d"),H("weekday","e"),H("isoWeekday","E"),L("day",11),L("weekday",11),L("isoWeekday",11),ue("d",B),ue("e",B),ue("E",B),ue("dd",function(e,t){return t.weekdaysMinRegex(e)}),ue("ddd",function(e,t){return t.weekdaysShortRegex(e)}),ue("dddd",function(e,t){return t.weekdaysRegex(e)}),fe(["dd","ddd","dddd"],function(e,t,n,s){var i=n._locale.weekdaysParse(e,s,n._strict);null!=i?t.d=i:g(n).invalidWeekday=e}),fe(["d","e","E"],function(e,t,n,s){t[s]=k(e)});var je="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var Ze="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var ze="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var $e=ae;var qe=ae;var Je=ae;function Be(){function e(e,t){return t.length-e.length}var t,n,s,i,r,a=[],o=[],u=[],l=[];for(t=0;t<7;t++)n=y([2e3,1]).day(t),s=this.weekdaysMin(n,""),i=this.weekdaysShort(n,""),r=this.weekdays(n,""),a.push(s),o.push(i),u.push(r),l.push(s),l.push(i),l.push(r);for(a.sort(e),o.sort(e),u.sort(e),l.sort(e),t=0;t<7;t++)o[t]=de(o[t]),u[t]=de(u[t]),l[t]=de(l[t]);this._weekdaysRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+a.join("|")+")","i")}function Qe(){return this.hours()%12||12}function Xe(e,t){I(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}function Ke(e,t){return t._meridiemParse}I("H",["HH",2],0,"hour"),I("h",["hh",2],0,Qe),I("k",["kk",2],0,function(){return this.hours()||24}),I("hmm",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)}),I("hmmss",0,0,function(){return""+Qe.apply(this)+U(this.minutes(),2)+U(this.seconds(),2)}),I("Hmm",0,0,function(){return""+this.hours()+U(this.minutes(),2)}),I("Hmmss",0,0,function(){return""+this.hours()+U(this.minutes(),2)+U(this.seconds(),2)}),Xe("a",!0),Xe("A",!1),H("hour","h"),L("hour",13),ue("a",Ke),ue("A",Ke),ue("H",B),ue("h",B),ue("k",B),ue("HH",B,z),ue("hh",B,z),ue("kk",B,z),ue("hmm",Q),ue("hmmss",X),ue("Hmm",Q),ue("Hmmss",X),ce(["H","HH"],ge),ce(["k","kk"],function(e,t,n){var s=k(e);t[ge]=24===s?0:s}),ce(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e}),ce(["h","hh"],function(e,t,n){t[ge]=k(e),g(n).bigHour=!0}),ce("hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s)),g(n).bigHour=!0}),ce("hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i)),g(n).bigHour=!0}),ce("Hmm",function(e,t,n){var s=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s))}),ce("Hmmss",function(e,t,n){var s=e.length-4,i=e.length-2;t[ge]=k(e.substr(0,s)),t[pe]=k(e.substr(s,2)),t[ve]=k(e.substr(i))});var et,tt=Te("Hours",!0),nt={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:He,monthsShort:Re,week:{dow:0,doy:6},weekdays:je,weekdaysMin:ze,weekdaysShort:Ze,meridiemParse:/[ap]\.?m?\.?/i},st={},it={};function rt(e){return e?e.toLowerCase().replace("_","-"):e}function at(e){var t=null;if(!st[e]&&"undefined"!=typeof module&&module&&module.exports)try{t=et._abbr,require("./locale/"+e),ot(t)}catch(e){}return st[e]}function ot(e,t){var n;return e&&((n=l(t)?lt(e):ut(e,t))?et=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),et._abbr}function ut(e,t){if(null!==t){var n,s=nt;if(t.abbr=e,null!=st[e])T("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),s=st[e]._config;else if(null!=t.parentLocale)if(null!=st[t.parentLocale])s=st[t.parentLocale]._config;else{if(null==(n=at(t.parentLocale)))return it[t.parentLocale]||(it[t.parentLocale]=[]),it[t.parentLocale].push({name:e,config:t}),null;s=n._config}return st[e]=new P(b(s,t)),it[e]&&it[e].forEach(function(e){ut(e.name,e.config)}),ot(e),st[e]}return delete st[e],null}function lt(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return et;if(!o(e)){if(t=at(e))return t;e=[e]}return function(e){for(var t,n,s,i,r=0;r<e.length;){for(t=(i=rt(e[r]).split("-")).length,n=(n=rt(e[r+1]))?n.split("-"):null;0<t;){if(s=at(i.slice(0,t).join("-")))return s;if(n&&n.length>=t&&a(i,n,!0)>=t-1)break;t--}r++}return et}(e)}function dt(e){var t,n=e._a;return n&&-2===g(e).overflow&&(t=n[_e]<0||11<n[_e]?_e:n[ye]<1||n[ye]>Pe(n[me],n[_e])?ye:n[ge]<0||24<n[ge]||24===n[ge]&&(0!==n[pe]||0!==n[ve]||0!==n[we])?ge:n[pe]<0||59<n[pe]?pe:n[ve]<0||59<n[ve]?ve:n[we]<0||999<n[we]?we:-1,g(e)._overflowDayOfYear&&(t<me||ye<t)&&(t=ye),g(e)._overflowWeeks&&-1===t&&(t=Me),g(e)._overflowWeekday&&-1===t&&(t=Se),g(e).overflow=t),e}function ht(e,t,n){return null!=e?e:null!=t?t:n}function ct(e){var t,n,s,i,r,a=[];if(!e._d){var o,u;for(o=e,u=new Date(c.now()),s=o._useUTC?[u.getUTCFullYear(),u.getUTCMonth(),u.getUTCDate()]:[u.getFullYear(),u.getMonth(),u.getDate()],e._w&&null==e._a[ye]&&null==e._a[_e]&&function(e){var t,n,s,i,r,a,o,u;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)r=1,a=4,n=ht(t.GG,e._a[me],Ie(Tt(),1,4).year),s=ht(t.W,1),((i=ht(t.E,1))<1||7<i)&&(u=!0);else{r=e._locale._week.dow,a=e._locale._week.doy;var l=Ie(Tt(),r,a);n=ht(t.gg,e._a[me],l.year),s=ht(t.w,l.week),null!=t.d?((i=t.d)<0||6<i)&&(u=!0):null!=t.e?(i=t.e+r,(t.e<0||6<t.e)&&(u=!0)):i=r}s<1||s>Ae(n,r,a)?g(e)._overflowWeeks=!0:null!=u?g(e)._overflowWeekday=!0:(o=Ee(n,s,i,r,a),e._a[me]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(r=ht(e._a[me],s[me]),(e._dayOfYear>De(r)||0===e._dayOfYear)&&(g(e)._overflowDayOfYear=!0),n=Ge(r,0,e._dayOfYear),e._a[_e]=n.getUTCMonth(),e._a[ye]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=a[t]=s[t];for(;t<7;t++)e._a[t]=a[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[ge]&&0===e._a[pe]&&0===e._a[ve]&&0===e._a[we]&&(e._nextDay=!0,e._a[ge]=0),e._d=(e._useUTC?Ge:function(e,t,n,s,i,r,a){var o=new Date(e,t,n,s,i,r,a);return e<100&&0<=e&&isFinite(o.getFullYear())&&o.setFullYear(e),o}).apply(null,a),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ge]=24),e._w&&void 0!==e._w.d&&e._w.d!==i&&(g(e).weekdayMismatch=!0)}}var ft=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,_t=/Z|[+-]\d\d(?::?\d\d)?/,yt=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],gt=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],pt=/^\/?Date\((\-?\d+)/i;function vt(e){var t,n,s,i,r,a,o=e._i,u=ft.exec(o)||mt.exec(o);if(u){for(g(e).iso=!0,t=0,n=yt.length;t<n;t++)if(yt[t][1].exec(u[1])){i=yt[t][0],s=!1!==yt[t][2];break}if(null==i)return void(e._isValid=!1);if(u[3]){for(t=0,n=gt.length;t<n;t++)if(gt[t][1].exec(u[3])){r=(u[2]||" ")+gt[t][0];break}if(null==r)return void(e._isValid=!1)}if(!s&&null!=r)return void(e._isValid=!1);if(u[4]){if(!_t.exec(u[4]))return void(e._isValid=!1);a="Z"}e._f=i+(r||"")+(a||""),kt(e)}else e._isValid=!1}var wt=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/;function Mt(e,t,n,s,i,r){var a=[function(e){var t=parseInt(e,10);{if(t<=49)return 2e3+t;if(t<=999)return 1900+t}return t}(e),Re.indexOf(t),parseInt(n,10),parseInt(s,10),parseInt(i,10)];return r&&a.push(parseInt(r,10)),a}var St={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function Dt(e){var t,n,s,i=wt.exec(e._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim());if(i){var r=Mt(i[4],i[3],i[2],i[5],i[6],i[7]);if(t=i[1],n=r,s=e,t&&Ze.indexOf(t)!==new Date(n[0],n[1],n[2]).getDay()&&(g(s).weekdayMismatch=!0,!(s._isValid=!1)))return;e._a=r,e._tzm=function(e,t,n){if(e)return St[e];if(t)return 0;var s=parseInt(n,10),i=s%100;return(s-i)/100*60+i}(i[8],i[9],i[10]),e._d=Ge.apply(null,e._a),e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),g(e).rfc2822=!0}else e._isValid=!1}function kt(e){if(e._f!==c.ISO_8601)if(e._f!==c.RFC_2822){e._a=[],g(e).empty=!0;var t,n,s,i,r,a,o,u,l=""+e._i,d=l.length,h=0;for(s=j(e._f,e._locale).match(N)||[],t=0;t<s.length;t++)i=s[t],(n=(l.match(le(i,e))||[])[0])&&(0<(r=l.substr(0,l.indexOf(n))).length&&g(e).unusedInput.push(r),l=l.slice(l.indexOf(n)+n.length),h+=n.length),E[i]?(n?g(e).empty=!1:g(e).unusedTokens.push(i),a=i,u=e,null!=(o=n)&&m(he,a)&&he[a](o,u._a,u,a)):e._strict&&!n&&g(e).unusedTokens.push(i);g(e).charsLeftOver=d-h,0<l.length&&g(e).unusedInput.push(l),e._a[ge]<=12&&!0===g(e).bigHour&&0<e._a[ge]&&(g(e).bigHour=void 0),g(e).parsedDateParts=e._a.slice(0),g(e).meridiem=e._meridiem,e._a[ge]=function(e,t,n){var s;if(null==n)return t;return null!=e.meridiemHour?e.meridiemHour(t,n):(null!=e.isPM&&((s=e.isPM(n))&&t<12&&(t+=12),s||12!==t||(t=0)),t)}(e._locale,e._a[ge],e._meridiem),ct(e),dt(e)}else Dt(e);else vt(e)}function Yt(e){var t,n,s,i,r=e._i,a=e._f;return e._locale=e._locale||lt(e._l),null===r||void 0===a&&""===r?v({nullInput:!0}):("string"==typeof r&&(e._i=r=e._locale.preparse(r)),S(r)?new M(dt(r)):(h(r)?e._d=r:o(a)?function(e){var t,n,s,i,r;if(0===e._f.length)return g(e).invalidFormat=!0,e._d=new Date(NaN);for(i=0;i<e._f.length;i++)r=0,t=w({},e),null!=e._useUTC&&(t._useUTC=e._useUTC),t._f=e._f[i],kt(t),p(t)&&(r+=g(t).charsLeftOver,r+=10*g(t).unusedTokens.length,g(t).score=r,(null==s||r<s)&&(s=r,n=t));_(e,n||t)}(e):a?kt(e):l(n=(t=e)._i)?t._d=new Date(c.now()):h(n)?t._d=new Date(n.valueOf()):"string"==typeof n?(s=t,null===(i=pt.exec(s._i))?(vt(s),!1===s._isValid&&(delete s._isValid,Dt(s),!1===s._isValid&&(delete s._isValid,c.createFromInputFallback(s)))):s._d=new Date(+i[1])):o(n)?(t._a=f(n.slice(0),function(e){return parseInt(e,10)}),ct(t)):u(n)?function(e){if(!e._d){var t=C(e._i);e._a=f([t.year,t.month,t.day||t.date,t.hour,t.minute,t.second,t.millisecond],function(e){return e&&parseInt(e,10)}),ct(e)}}(t):d(n)?t._d=new Date(n):c.createFromInputFallback(t),p(e)||(e._d=null),e))}function Ot(e,t,n,s,i){var r,a={};return!0!==n&&!1!==n||(s=n,n=void 0),(u(e)&&function(e){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(e).length;var t;for(t in e)if(e.hasOwnProperty(t))return!1;return!0}(e)||o(e)&&0===e.length)&&(e=void 0),a._isAMomentObject=!0,a._useUTC=a._isUTC=i,a._l=n,a._i=e,a._f=t,a._strict=s,(r=new M(dt(Yt(a))))._nextDay&&(r.add(1,"d"),r._nextDay=void 0),r}function Tt(e,t,n,s){return Ot(e,t,n,s,!1)}c.createFromInputFallback=n("value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are discouraged and will be removed in an upcoming major release. Please refer to http://momentjs.com/guides/#/warnings/js-date/ for more info.",function(e){e._d=new Date(e._i+(e._useUTC?" UTC":""))}),c.ISO_8601=function(){},c.RFC_2822=function(){};var xt=n("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?e<this?this:e:v()}),bt=n("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var e=Tt.apply(null,arguments);return this.isValid()&&e.isValid()?this<e?this:e:v()});function Pt(e,t){var n,s;if(1===t.length&&o(t[0])&&(t=t[0]),!t.length)return Tt();for(n=t[0],s=1;s<t.length;++s)t[s].isValid()&&!t[s][e](n)||(n=t[s]);return n}var Wt=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Ht(e){var t=C(e),n=t.year||0,s=t.quarter||0,i=t.month||0,r=t.week||0,a=t.day||0,o=t.hour||0,u=t.minute||0,l=t.second||0,d=t.millisecond||0;this._isValid=function(e){for(var t in e)if(-1===Ye.call(Wt,t)||null!=e[t]&&isNaN(e[t]))return!1;for(var n=!1,s=0;s<Wt.length;++s)if(e[Wt[s]]){if(n)return!1;parseFloat(e[Wt[s]])!==k(e[Wt[s]])&&(n=!0)}return!0}(t),this._milliseconds=+d+1e3*l+6e4*u+1e3*o*60*60,this._days=+a+7*r,this._months=+i+3*s+12*n,this._data={},this._locale=lt(),this._bubble()}function Rt(e){return e instanceof Ht}function Ct(e){return e<0?-1*Math.round(-1*e):Math.round(e)}function Ft(e,n){I(e,0,0,function(){var e=this.utcOffset(),t="+";return e<0&&(e=-e,t="-"),t+U(~~(e/60),2)+n+U(~~e%60,2)})}Ft("Z",":"),Ft("ZZ",""),ue("Z",re),ue("ZZ",re),ce(["Z","ZZ"],function(e,t,n){n._useUTC=!0,n._tzm=Ut(re,e)});var Lt=/([\+\-]|\d\d)/gi;function Ut(e,t){var n=(t||"").match(e);if(null===n)return null;var s=((n[n.length-1]||[])+"").match(Lt)||["-",0,0],i=60*s[1]+k(s[2]);return 0===i?0:"+"===s[0]?i:-i}function Nt(e,t){var n,s;return t._isUTC?(n=t.clone(),s=(S(e)||h(e)?e.valueOf():Tt(e).valueOf())-n.valueOf(),n._d.setTime(n._d.valueOf()+s),c.updateOffset(n,!1),n):Tt(e).local()}function Gt(e){return 15*-Math.round(e._d.getTimezoneOffset()/15)}function Vt(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}c.updateOffset=function(){};var Et=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,It=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function At(e,t){var n,s,i,r=e,a=null;return Rt(e)?r={ms:e._milliseconds,d:e._days,M:e._months}:d(e)?(r={},t?r[t]=e:r.milliseconds=e):(a=Et.exec(e))?(n="-"===a[1]?-1:1,r={y:0,d:k(a[ye])*n,h:k(a[ge])*n,m:k(a[pe])*n,s:k(a[ve])*n,ms:k(Ct(1e3*a[we]))*n}):(a=It.exec(e))?(n="-"===a[1]?-1:(a[1],1),r={y:jt(a[2],n),M:jt(a[3],n),w:jt(a[4],n),d:jt(a[5],n),h:jt(a[6],n),m:jt(a[7],n),s:jt(a[8],n)}):null==r?r={}:"object"==typeof r&&("from"in r||"to"in r)&&(i=function(e,t){var n;if(!e.isValid()||!t.isValid())return{milliseconds:0,months:0};t=Nt(t,e),e.isBefore(t)?n=Zt(e,t):((n=Zt(t,e)).milliseconds=-n.milliseconds,n.months=-n.months);return n}(Tt(r.from),Tt(r.to)),(r={}).ms=i.milliseconds,r.M=i.months),s=new Ht(r),Rt(e)&&m(e,"_locale")&&(s._locale=e._locale),s}function jt(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Zt(e,t){var n={milliseconds:0,months:0};return n.months=t.month()-e.month()+12*(t.year()-e.year()),e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function zt(s,i){return function(e,t){var n;return null===t||isNaN(+t)||(T(i,"moment()."+i+"(period, number) is deprecated. Please use moment()."+i+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),n=e,e=t,t=n),$t(this,At(e="string"==typeof e?+e:e,t),s),this}}function $t(e,t,n,s){var i=t._milliseconds,r=Ct(t._days),a=Ct(t._months);e.isValid()&&(s=null==s||s,a&&Ce(e,xe(e,"Month")+a*n),r&&be(e,"Date",xe(e,"Date")+r*n),i&&e._d.setTime(e._d.valueOf()+i*n),s&&c.updateOffset(e,r||a))}At.fn=Ht.prototype,At.invalid=function(){return At(NaN)};var qt=zt(1,"add"),Jt=zt(-1,"subtract");function Bt(e,t){var n=12*(t.year()-e.year())+(t.month()-e.month()),s=e.clone().add(n,"months");return-(n+(t-s<0?(t-s)/(s-e.clone().add(n-1,"months")):(t-s)/(e.clone().add(n+1,"months")-s)))||0}function Qt(e){var t;return void 0===e?this._locale._abbr:(null!=(t=lt(e))&&(this._locale=t),this)}c.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",c.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var Xt=n("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return void 0===e?this.localeData():this.locale(e)});function Kt(){return this._locale}function en(e,t){I(0,[e,e.length],0,t)}function tn(e,t,n,s,i){var r;return null==e?Ie(this,s,i).year:((r=Ae(e,s,i))<t&&(t=r),function(e,t,n,s,i){var r=Ee(e,t,n,s,i),a=Ge(r.year,0,r.dayOfYear);return this.year(a.getUTCFullYear()),this.month(a.getUTCMonth()),this.date(a.getUTCDate()),this}.call(this,e,t,n,s,i))}I(0,["gg",2],0,function(){return this.weekYear()%100}),I(0,["GG",2],0,function(){return this.isoWeekYear()%100}),en("gggg","weekYear"),en("ggggg","weekYear"),en("GGGG","isoWeekYear"),en("GGGGG","isoWeekYear"),H("weekYear","gg"),H("isoWeekYear","GG"),L("weekYear",1),L("isoWeekYear",1),ue("G",se),ue("g",se),ue("GG",B,z),ue("gg",B,z),ue("GGGG",ee,q),ue("gggg",ee,q),ue("GGGGG",te,J),ue("ggggg",te,J),fe(["gggg","ggggg","GGGG","GGGGG"],function(e,t,n,s){t[s.substr(0,2)]=k(e)}),fe(["gg","GG"],function(e,t,n,s){t[s]=c.parseTwoDigitYear(e)}),I("Q",0,"Qo","quarter"),H("quarter","Q"),L("quarter",7),ue("Q",Z),ce("Q",function(e,t){t[_e]=3*(k(e)-1)}),I("D",["DD",2],"Do","date"),H("date","D"),L("date",9),ue("D",B),ue("DD",B,z),ue("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient}),ce(["D","DD"],ye),ce("Do",function(e,t){t[ye]=k(e.match(B)[0])});var nn=Te("Date",!0);I("DDD",["DDDD",3],"DDDo","dayOfYear"),H("dayOfYear","DDD"),L("dayOfYear",4),ue("DDD",K),ue("DDDD",$),ce(["DDD","DDDD"],function(e,t,n){n._dayOfYear=k(e)}),I("m",["mm",2],0,"minute"),H("minute","m"),L("minute",14),ue("m",B),ue("mm",B,z),ce(["m","mm"],pe);var sn=Te("Minutes",!1);I("s",["ss",2],0,"second"),H("second","s"),L("second",15),ue("s",B),ue("ss",B,z),ce(["s","ss"],ve);var rn,an=Te("Seconds",!1);for(I("S",0,0,function(){return~~(this.millisecond()/100)}),I(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),I(0,["SSS",3],0,"millisecond"),I(0,["SSSS",4],0,function(){return 10*this.millisecond()}),I(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),I(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),I(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),I(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),I(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),H("millisecond","ms"),L("millisecond",16),ue("S",K,Z),ue("SS",K,z),ue("SSS",K,$),rn="SSSS";rn.length<=9;rn+="S")ue(rn,ne);function on(e,t){t[we]=k(1e3*("0."+e))}for(rn="S";rn.length<=9;rn+="S")ce(rn,on);var un=Te("Milliseconds",!1);I("z",0,0,"zoneAbbr"),I("zz",0,0,"zoneName");var ln=M.prototype;function dn(e){return e}ln.add=qt,ln.calendar=function(e,t){var n=e||Tt(),s=Nt(n,this).startOf("day"),i=c.calendarFormat(this,s)||"sameElse",r=t&&(x(t[i])?t[i].call(this,n):t[i]);return this.format(r||this.localeData().calendar(i,this,Tt(n)))},ln.clone=function(){return new M(this)},ln.diff=function(e,t,n){var s,i,r;if(!this.isValid())return NaN;if(!(s=Nt(e,this)).isValid())return NaN;switch(i=6e4*(s.utcOffset()-this.utcOffset()),t=R(t)){case"year":r=Bt(this,s)/12;break;case"month":r=Bt(this,s);break;case"quarter":r=Bt(this,s)/3;break;case"second":r=(this-s)/1e3;break;case"minute":r=(this-s)/6e4;break;case"hour":r=(this-s)/36e5;break;case"day":r=(this-s-i)/864e5;break;case"week":r=(this-s-i)/6048e5;break;default:r=this-s}return n?r:D(r)},ln.endOf=function(e){return void 0===(e=R(e))||"millisecond"===e?this:("date"===e&&(e="day"),this.startOf(e).add(1,"isoWeek"===e?"week":e).subtract(1,"ms"))},ln.format=function(e){e||(e=this.isUtc()?c.defaultFormatUtc:c.defaultFormat);var t=A(this,e);return this.localeData().postformat(t)},ln.from=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||Tt(e).isValid())?At({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ln.fromNow=function(e){return this.from(Tt(),e)},ln.to=function(e,t){return this.isValid()&&(S(e)&&e.isValid()||Tt(e).isValid())?At({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},ln.toNow=function(e){return this.to(Tt(),e)},ln.get=function(e){return x(this[e=R(e)])?this[e]():this},ln.invalidAt=function(){return g(this).overflow},ln.isAfter=function(e,t){var n=S(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(l(t)?"millisecond":t))?this.valueOf()>n.valueOf():n.valueOf()<this.clone().startOf(t).valueOf())},ln.isBefore=function(e,t){var n=S(e)?e:Tt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=R(l(t)?"millisecond":t))?this.valueOf()<n.valueOf():this.clone().endOf(t).valueOf()<n.valueOf())},ln.isBetween=function(e,t,n,s){return("("===(s=s||"()")[0]?this.isAfter(e,n):!this.isBefore(e,n))&&(")"===s[1]?this.isBefore(t,n):!this.isAfter(t,n))},ln.isSame=function(e,t){var n,s=S(e)?e:Tt(e);return!(!this.isValid()||!s.isValid())&&("millisecond"===(t=R(t||"millisecond"))?this.valueOf()===s.valueOf():(n=s.valueOf(),this.clone().startOf(t).valueOf()<=n&&n<=this.clone().endOf(t).valueOf()))},ln.isSameOrAfter=function(e,t){return this.isSame(e,t)||this.isAfter(e,t)},ln.isSameOrBefore=function(e,t){return this.isSame(e,t)||this.isBefore(e,t)},ln.isValid=function(){return p(this)},ln.lang=Xt,ln.locale=Qt,ln.localeData=Kt,ln.max=bt,ln.min=xt,ln.parsingFlags=function(){return _({},g(this))},ln.set=function(e,t){if("object"==typeof e)for(var n=function(e){var t=[];for(var n in e)t.push({unit:n,priority:F[n]});return t.sort(function(e,t){return e.priority-t.priority}),t}(e=C(e)),s=0;s<n.length;s++)this[n[s].unit](e[n[s].unit]);else if(x(this[e=R(e)]))return this[e](t);return this},ln.startOf=function(e){switch(e=R(e)){case"year":this.month(0);case"quarter":case"month":this.date(1);case"week":case"isoWeek":case"day":case"date":this.hours(0);case"hour":this.minutes(0);case"minute":this.seconds(0);case"second":this.milliseconds(0)}return"week"===e&&this.weekday(0),"isoWeek"===e&&this.isoWeekday(1),"quarter"===e&&this.month(3*Math.floor(this.month()/3)),this},ln.subtract=Jt,ln.toArray=function(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]},ln.toObject=function(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}},ln.toDate=function(){return new Date(this.valueOf())},ln.toISOString=function(e){if(!this.isValid())return null;var t=!0!==e,n=t?this.clone().utc():this;return n.year()<0||9999<n.year()?A(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):x(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",A(n,"Z")):A(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},ln.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',s=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",i=t+'[")]';return this.format(n+s+"-MM-DD[T]HH:mm:ss.SSS"+i)},ln.toJSON=function(){return this.isValid()?this.toISOString():null},ln.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},ln.unix=function(){return Math.floor(this.valueOf()/1e3)},ln.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},ln.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},ln.year=Oe,ln.isLeapYear=function(){return ke(this.year())},ln.weekYear=function(e){return tn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},ln.isoWeekYear=function(e){return tn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},ln.quarter=ln.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},ln.month=Fe,ln.daysInMonth=function(){return Pe(this.year(),this.month())},ln.week=ln.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},ln.isoWeek=ln.isoWeeks=function(e){var t=Ie(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},ln.weeksInYear=function(){var e=this.localeData()._week;return Ae(this.year(),e.dow,e.doy)},ln.isoWeeksInYear=function(){return Ae(this.year(),1,4)},ln.date=nn,ln.day=ln.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t,n,s=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(t=e,n=this.localeData(),e="string"!=typeof t?t:isNaN(t)?"number"==typeof(t=n.weekdaysParse(t))?t:null:parseInt(t,10),this.add(e-s,"d")):s},ln.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},ln.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=(n=e,s=this.localeData(),"string"==typeof n?s.weekdaysParse(n)%7||7:isNaN(n)?null:n);return this.day(this.day()%7?t:t-7)}return this.day()||7;var n,s},ln.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},ln.hour=ln.hours=tt,ln.minute=ln.minutes=sn,ln.second=ln.seconds=an,ln.millisecond=ln.milliseconds=un,ln.utcOffset=function(e,t,n){var s,i=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Ut(re,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(s=Gt(this)),this._offset=e,this._isUTC=!0,null!=s&&this.add(s,"m"),i!==e&&(!t||this._changeInProgress?$t(this,At(e-i,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,c.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?i:Gt(this)},ln.utc=function(e){return this.utcOffset(0,e)},ln.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Gt(this),"m")),this},ln.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Ut(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},ln.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?Tt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},ln.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},ln.isLocal=function(){return!!this.isValid()&&!this._isUTC},ln.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},ln.isUtc=Vt,ln.isUTC=Vt,ln.zoneAbbr=function(){return this._isUTC?"UTC":""},ln.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},ln.dates=n("dates accessor is deprecated. Use date instead.",nn),ln.months=n("months accessor is deprecated. Use month instead",Fe),ln.years=n("years accessor is deprecated. Use year instead",Oe),ln.zone=n("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()}),ln.isDSTShifted=n("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!l(this._isDSTShifted))return this._isDSTShifted;var e={};if(w(e,this),(e=Yt(e))._a){var t=e._isUTC?y(e._a):Tt(e._a);this._isDSTShifted=this.isValid()&&0<a(e._a,t.toArray())}else this._isDSTShifted=!1;return this._isDSTShifted});var hn=P.prototype;function cn(e,t,n,s){var i=lt(),r=y().set(s,t);return i[n](r,e)}function fn(e,t,n){if(d(e)&&(t=e,e=void 0),e=e||"",null!=t)return cn(e,t,n,"month");var s,i=[];for(s=0;s<12;s++)i[s]=cn(e,s,n,"month");return i}function mn(e,t,n,s){"boolean"==typeof e?d(t)&&(n=t,t=void 0):(t=e,e=!1,d(n=t)&&(n=t,t=void 0)),t=t||"";var i,r=lt(),a=e?r._week.dow:0;if(null!=n)return cn(t,(n+a)%7,s,"day");var o=[];for(i=0;i<7;i++)o[i]=cn(t,(i+a)%7,s,"day");return o}hn.calendar=function(e,t,n){var s=this._calendar[e]||this._calendar.sameElse;return x(s)?s.call(t,n):s},hn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,function(e){return e.slice(1)}),this._longDateFormat[e])},hn.invalidDate=function(){return this._invalidDate},hn.ordinal=function(e){return this._ordinal.replace("%d",e)},hn.preparse=dn,hn.postformat=dn,hn.relativeTime=function(e,t,n,s){var i=this._relativeTime[n];return x(i)?i(e,t,n,s):i.replace(/%d/i,e)},hn.pastFuture=function(e,t){var n=this._relativeTime[0<e?"future":"past"];return x(n)?n(t):n.replace(/%s/i,t)},hn.set=function(e){var t,n;for(n in e)x(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},hn.months=function(e,t){return e?o(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||We).test(t)?"format":"standalone"][e.month()]:o(this._months)?this._months:this._months.standalone},hn.monthsShort=function(e,t){return e?o(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[We.test(t)?"format":"standalone"][e.month()]:o(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},hn.monthsParse=function(e,t,n){var s,i,r;if(this._monthsParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],s=0;s<12;++s)r=y([2e3,s]),this._shortMonthsParse[s]=this.monthsShort(r,"").toLocaleLowerCase(),this._longMonthsParse[s]=this.months(r,"").toLocaleLowerCase();return n?"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:"MMM"===t?-1!==(i=Ye.call(this._shortMonthsParse,a))?i:-1!==(i=Ye.call(this._longMonthsParse,a))?i:null:-1!==(i=Ye.call(this._longMonthsParse,a))?i:-1!==(i=Ye.call(this._shortMonthsParse,a))?i:null}.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),s=0;s<12;s++){if(i=y([2e3,s]),n&&!this._longMonthsParse[s]&&(this._longMonthsParse[s]=new RegExp("^"+this.months(i,"").replace(".","")+"$","i"),this._shortMonthsParse[s]=new RegExp("^"+this.monthsShort(i,"").replace(".","")+"$","i")),n||this._monthsParse[s]||(r="^"+this.months(i,"")+"|^"+this.monthsShort(i,""),this._monthsParse[s]=new RegExp(r.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[s].test(e))return s;if(n&&"MMM"===t&&this._shortMonthsParse[s].test(e))return s;if(!n&&this._monthsParse[s].test(e))return s}},hn.monthsRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsStrictRegex:this._monthsRegex):(m(this,"_monthsRegex")||(this._monthsRegex=Ue),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},hn.monthsShortRegex=function(e){return this._monthsParseExact?(m(this,"_monthsRegex")||Ne.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(m(this,"_monthsShortRegex")||(this._monthsShortRegex=Le),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},hn.week=function(e){return Ie(e,this._week.dow,this._week.doy).week},hn.firstDayOfYear=function(){return this._week.doy},hn.firstDayOfWeek=function(){return this._week.dow},hn.weekdays=function(e,t){return e?o(this._weekdays)?this._weekdays[e.day()]:this._weekdays[this._weekdays.isFormat.test(t)?"format":"standalone"][e.day()]:o(this._weekdays)?this._weekdays:this._weekdays.standalone},hn.weekdaysMin=function(e){return e?this._weekdaysMin[e.day()]:this._weekdaysMin},hn.weekdaysShort=function(e){return e?this._weekdaysShort[e.day()]:this._weekdaysShort},hn.weekdaysParse=function(e,t,n){var s,i,r;if(this._weekdaysParseExact)return function(e,t,n){var s,i,r,a=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],s=0;s<7;++s)r=y([2e3,1]).day(s),this._minWeekdaysParse[s]=this.weekdaysMin(r,"").toLocaleLowerCase(),this._shortWeekdaysParse[s]=this.weekdaysShort(r,"").toLocaleLowerCase(),this._weekdaysParse[s]=this.weekdays(r,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"dddd"===t?-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:"ddd"===t?-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:null:-1!==(i=Ye.call(this._minWeekdaysParse,a))?i:-1!==(i=Ye.call(this._weekdaysParse,a))?i:-1!==(i=Ye.call(this._shortWeekdaysParse,a))?i:null}.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),s=0;s<7;s++){if(i=y([2e3,1]).day(s),n&&!this._fullWeekdaysParse[s]&&(this._fullWeekdaysParse[s]=new RegExp("^"+this.weekdays(i,"").replace(".",".?")+"$","i"),this._shortWeekdaysParse[s]=new RegExp("^"+this.weekdaysShort(i,"").replace(".",".?")+"$","i"),this._minWeekdaysParse[s]=new RegExp("^"+this.weekdaysMin(i,"").replace(".",".?")+"$","i")),this._weekdaysParse[s]||(r="^"+this.weekdays(i,"")+"|^"+this.weekdaysShort(i,"")+"|^"+this.weekdaysMin(i,""),this._weekdaysParse[s]=new RegExp(r.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[s].test(e))return s;if(n&&"ddd"===t&&this._shortWeekdaysParse[s].test(e))return s;if(n&&"dd"===t&&this._minWeekdaysParse[s].test(e))return s;if(!n&&this._weekdaysParse[s].test(e))return s}},hn.weekdaysRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(m(this,"_weekdaysRegex")||(this._weekdaysRegex=$e),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},hn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(m(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=qe),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},hn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(m(this,"_weekdaysRegex")||Be.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(m(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},hn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},hn.meridiem=function(e,t,n){return 11<e?n?"pm":"PM":n?"am":"AM"},ot("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===k(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),c.lang=n("moment.lang is deprecated. Use moment.locale instead.",ot),c.langData=n("moment.langData is deprecated. Use moment.localeData instead.",lt);var _n=Math.abs;function yn(e,t,n,s){var i=At(t,n);return e._milliseconds+=s*i._milliseconds,e._days+=s*i._days,e._months+=s*i._months,e._bubble()}function gn(e){return e<0?Math.floor(e):Math.ceil(e)}function pn(e){return 4800*e/146097}function vn(e){return 146097*e/4800}function wn(e){return function(){return this.as(e)}}var Mn=wn("ms"),Sn=wn("s"),Dn=wn("m"),kn=wn("h"),Yn=wn("d"),On=wn("w"),Tn=wn("M"),xn=wn("y");function bn(e){return function(){return this.isValid()?this._data[e]:NaN}}var Pn=bn("milliseconds"),Wn=bn("seconds"),Hn=bn("minutes"),Rn=bn("hours"),Cn=bn("days"),Fn=bn("months"),Ln=bn("years");var Un=Math.round,Nn={ss:44,s:45,m:45,h:22,d:26,M:11};var Gn=Math.abs;function Vn(e){return(0<e)-(e<0)||+e}function En(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Gn(this._milliseconds)/1e3,s=Gn(this._days),i=Gn(this._months);t=D((e=D(n/60))/60),n%=60,e%=60;var r=D(i/12),a=i%=12,o=s,u=t,l=e,d=n?n.toFixed(3).replace(/\.?0+$/,""):"",h=this.asSeconds();if(!h)return"P0D";var c=h<0?"-":"",f=Vn(this._months)!==Vn(h)?"-":"",m=Vn(this._days)!==Vn(h)?"-":"",_=Vn(this._milliseconds)!==Vn(h)?"-":"";return c+"P"+(r?f+r+"Y":"")+(a?f+a+"M":"")+(o?m+o+"D":"")+(u||l||d?"T":"")+(u?_+u+"H":"")+(l?_+l+"M":"")+(d?_+d+"S":"")}var In=Ht.prototype;return In.isValid=function(){return this._isValid},In.abs=function(){var e=this._data;return this._milliseconds=_n(this._milliseconds),this._days=_n(this._days),this._months=_n(this._months),e.milliseconds=_n(e.milliseconds),e.seconds=_n(e.seconds),e.minutes=_n(e.minutes),e.hours=_n(e.hours),e.months=_n(e.months),e.years=_n(e.years),this},In.add=function(e,t){return yn(this,e,t,1)},In.subtract=function(e,t){return yn(this,e,t,-1)},In.as=function(e){if(!this.isValid())return NaN;var t,n,s=this._milliseconds;if("month"===(e=R(e))||"year"===e)return t=this._days+s/864e5,n=this._months+pn(t),"month"===e?n:n/12;switch(t=this._days+Math.round(vn(this._months)),e){case"week":return t/7+s/6048e5;case"day":return t+s/864e5;case"hour":return 24*t+s/36e5;case"minute":return 1440*t+s/6e4;case"second":return 86400*t+s/1e3;case"millisecond":return Math.floor(864e5*t)+s;default:throw new Error("Unknown unit "+e)}},In.asMilliseconds=Mn,In.asSeconds=Sn,In.asMinutes=Dn,In.asHours=kn,In.asDays=Yn,In.asWeeks=On,In.asMonths=Tn,In.asYears=xn,In.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*k(this._months/12):NaN},In._bubble=function(){var e,t,n,s,i,r=this._milliseconds,a=this._days,o=this._months,u=this._data;return 0<=r&&0<=a&&0<=o||r<=0&&a<=0&&o<=0||(r+=864e5*gn(vn(o)+a),o=a=0),u.milliseconds=r%1e3,e=D(r/1e3),u.seconds=e%60,t=D(e/60),u.minutes=t%60,n=D(t/60),u.hours=n%24,o+=i=D(pn(a+=D(n/24))),a-=gn(vn(i)),s=D(o/12),o%=12,u.days=a,u.months=o,u.years=s,this},In.clone=function(){return At(this)},In.get=function(e){return e=R(e),this.isValid()?this[e+"s"]():NaN},In.milliseconds=Pn,In.seconds=Wn,In.minutes=Hn,In.hours=Rn,In.days=Cn,In.weeks=function(){return D(this.days()/7)},In.months=Fn,In.years=Ln,In.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t,n,s,i,r,a,o,u,l,d,h,c=this.localeData(),f=(n=!e,s=c,i=At(t=this).abs(),r=Un(i.as("s")),a=Un(i.as("m")),o=Un(i.as("h")),u=Un(i.as("d")),l=Un(i.as("M")),d=Un(i.as("y")),(h=r<=Nn.ss&&["s",r]||r<Nn.s&&["ss",r]||a<=1&&["m"]||a<Nn.m&&["mm",a]||o<=1&&["h"]||o<Nn.h&&["hh",o]||u<=1&&["d"]||u<Nn.d&&["dd",u]||l<=1&&["M"]||l<Nn.M&&["MM",l]||d<=1&&["y"]||["yy",d])[2]=n,h[3]=0<+t,h[4]=s,function(e,t,n,s,i){return i.relativeTime(t||1,!!n,e,s)}.apply(null,h));return e&&(f=c.pastFuture(+this,f)),c.postformat(f)},In.toISOString=En,In.toString=En,In.toJSON=En,In.locale=Qt,In.localeData=Kt,In.toIsoString=n("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",En),In.lang=Xt,I("X",0,0,"unix"),I("x",0,0,"valueOf"),ue("x",se),ue("X",/[+-]?\d+(\.\d{1,3})?/),ce("X",function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))}),ce("x",function(e,t,n){n._d=new Date(k(e))}),c.version="2.22.0",e=Tt,c.fn=ln,c.min=function(){return Pt("isBefore",[].slice.call(arguments,0))},c.max=function(){return Pt("isAfter",[].slice.call(arguments,0))},c.now=function(){return Date.now?Date.now():+new Date},c.utc=y,c.unix=function(e){return Tt(1e3*e)},c.months=function(e,t){return fn(e,t,"months")},c.isDate=h,c.locale=ot,c.invalid=v,c.duration=At,c.isMoment=S,c.weekdays=function(e,t,n){return mn(e,t,n,"weekdays")},c.parseZone=function(){return Tt.apply(null,arguments).parseZone()},c.localeData=lt,c.isDuration=Rt,c.monthsShort=function(e,t){return fn(e,t,"monthsShort")},c.weekdaysMin=function(e,t,n){return mn(e,t,n,"weekdaysMin")},c.defineLocale=ut,c.updateLocale=function(e,t){if(null!=t){var n,s,i=nt;null!=(s=at(e))&&(i=s._config),(n=new P(t=b(i,t))).parentLocale=st[e],st[e]=n,ot(e)}else null!=st[e]&&(null!=st[e].parentLocale?st[e]=st[e].parentLocale:null!=st[e]&&delete st[e]);return st[e]},c.locales=function(){return s(st)},c.weekdaysShort=function(e,t,n){return mn(e,t,n,"weekdaysShort")},c.normalizeUnits=R,c.relativeTimeRounding=function(e){return void 0===e?Un:"function"==typeof e&&(Un=e,!0)},c.relativeTimeThreshold=function(e,t){return void 0!==Nn[e]&&(void 0===t?Nn[e]:(Nn[e]=t,"s"===e&&(Nn.ss=t-1),!0))},c.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},c.prototype=ln,c.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"YYYY-[W]WW",MONTH:"YYYY-MM"},c});
diff --git a/static/js/moment.min.js.gz b/static/js/moment.min.js.gz
new file mode 100644
Binary files /dev/null and b/static/js/moment.min.js.gz differ
diff --git a/templates/add-exists-alert.hamlet b/templates/add-exists-alert.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/add-exists-alert.hamlet
@@ -0,0 +1,13 @@
+$maybe (Entity bk' Bookmark{..}, tags) <- mexisting
+  $with bk <- fromSqlKey bk'
+   <div .alert>
+     previously saved
+     <span class="js-moment" title="#{TI.formatISO8601Millis bookmarkTime}" data-iso8601="#{TI.formatISO8601Millis bookmarkTime}">
+       &nbsp;
+     <div .edit_links style="display:inline">
+       &nbsp;&nbsp;
+       <div .delete_link style="display:inline">
+         <a .delete onclick="PS['BMark'].deleteAskE(event)()" href="#" style="display: inline;"> delete
+         <span .confirm hidden>
+           <a href="#" onclick="PS['BMark'].deleteCancelE(event)()"> cancel /
+           <a .destroy href="#" onclick="PS['BMark'].destroyE(event)(#{bk})(true)()"> destroy
diff --git a/templates/add.hamlet b/templates/add.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/add.hamlet
@@ -0,0 +1,7 @@
+<form method="post">
+  <table>
+    ^{formWidget}
+    <tr> 
+      <td>
+      <td>
+        <input type="submit" value="#{submitText}" />
diff --git a/templates/add.julius b/templates/add.julius
new file mode 100644
--- /dev/null
+++ b/templates/add.julius
@@ -0,0 +1,1 @@
+document.getElementById('#{rawJS focusEl}').focus();
diff --git a/templates/app.julius b/templates/app.julius
new file mode 100644
--- /dev/null
+++ b/templates/app.julius
@@ -0,0 +1,10 @@
+var app = {
+    csrfHeaderName: "#{rawJS $ TE.decodeUtf8 $ CI.foldedCase defaultCsrfHeaderName}",
+    csrfCookieName: "#{rawJS $ TE.decodeUtf8 defaultCsrfCookieName}",
+    csrfToken: Cookies.get("#{rawJS $ TE.decodeUtf8 defaultCsrfCookieName}"),
+    homeR: "@{HomeR}",
+    authRlogoutR: "@{AuthR LogoutR}",
+}
+document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/, 'js');
+
+PS['BMark'].replaceIsoTimestamps()();
diff --git a/templates/default-layout-wrapper.hamlet b/templates/default-layout-wrapper.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/default-layout-wrapper.hamlet
@@ -0,0 +1,23 @@
+$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="@{StaticR js_html5shiv_min_js}"></script>
+    \<![endif]-->
+  <body>
+    ^{pageBody pc}
diff --git a/templates/default-layout.hamlet b/templates/default-layout.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/default-layout.hamlet
@@ -0,0 +1,29 @@
+<div #content>
+  <div #banner>
+    <div #logo>
+        <span .logo>
+        <a #espial_name>espial
+        $maybe userName <- musername
+          <span>(<a class="banner_username" data-username="#{userName}" href="@{UserR (UserNameP userName)}">#{userName}<a>)</span>
+        <!-- <div #timer>#{pageLoadTime} s -->
+    <div #top_menu>
+
+      $maybe userName <- musername
+        $maybe currentroute <- mcurrentRoute
+          <a .bookmarklet href="javascript:q=location.href;if(document.getSelection){d=document.getSelection();}else{d='';};p=document.title;void(open('@{AddR}?_hasdata&url='+encodeURIComponent(q)+'&description='+encodeURIComponent(d)+'&title='+encodeURIComponent(p),'Espial','toolbar=no,width=700,height=350'));">add url bookmarklet
+          &nbsp;&nbsp;&nbsp;&nbsp;
+
+          <a href="@?{(AddR, [("next",urlrender currentroute)])}">add url
+
+          &nbsp;&nbsp;&nbsp;&nbsp;
+          <a onclick="PS['App'].logoutE(event)()" href="@{AuthR LogoutR}">
+            log out
+      $nothing
+        <a href="@{AuthR LoginR}">
+          log in
+    <div style="clear:both">
+
+  $maybe msg <- mmsg
+    <div .alert.alert-info #message>#{preEscapedToMarkup msg}
+
+  ^{widget}
diff --git a/templates/homepage.hamlet b/templates/homepage.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/homepage.hamlet
@@ -0,0 +1,1 @@
+<div #main_column>
diff --git a/templates/login.hamlet b/templates/login.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/login.hamlet
@@ -0,0 +1,20 @@
+<div #login style="text-align:left; margin-top:30px;">
+  <form method="post" action="@{toParent dbLoginR}">
+    $maybe token <- reqToken req
+      <input type="hidden" name="#{defaultCsrfParamName}" value="#{token}">
+    <table width="380" border="0">
+      <tbody>
+        <tr>
+          <td width="99">
+            <span style="color:#999">username :</span>
+          <td>
+            <input name="username" type="text" value="" size="20">
+        <tr>
+          <td>
+            <span style="color:#999">password :</span>
+          <td>
+            <input name="password" type="password" size="20">
+        <tr>
+          <td>
+          <td>
+            <input type="submit" value="log in"> 
diff --git a/templates/pager.hamlet b/templates/pager.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/pager.hamlet
@@ -0,0 +1,13 @@
+$maybe route <- mroute
+  <div #nextprev style="border:0px solid orange">
+    <table style="float:left" border="0">
+      <tbody>
+        <tr>
+          $if fromIntegral bcount >= (limit * page)
+            <td width="80">
+              <a .next_prev #top_earlier href="@?{(route, [("page", pack $ show $ page + 1)])}">
+                « earlier
+          $if page > 1
+            <td width="80">
+              <a .next_prev #top_later href="@?{(route, [("page", pack $ show $ page - 1)])}">
+                later »
diff --git a/templates/popup-layout.hamlet b/templates/popup-layout.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/popup-layout.hamlet
@@ -0,0 +1,15 @@
+<div #popup_header>
+  <div #logout>
+    $maybe userName <- musername
+      <a onclick="PS['App'].logoutE(event)()" href="@{AuthR LogoutR}">
+        [log out]
+    $nothing
+      <a href="@{AuthR LoginR}">
+        [log in]
+  <div #title>
+    <a href="@{HomeR}">Espial
+    $maybe userName <- musername
+      - (#{userName})
+  $maybe alert <- malert
+    ^{alert}
+^{widget}
diff --git a/templates/user.hamlet b/templates/user.hamlet
new file mode 100644
--- /dev/null
+++ b/templates/user.hamlet
@@ -0,0 +1,118 @@
+<div #main_column>
+  <div .user_navbar>
+    <div .small_username>
+      <b>
+        <a href="@{UserR unamep}">#{uname}
+        $forall tag <- pathtags
+          \  + #
+          <a href="@{UserTagsR unamep (TagsP [tag])}">#{tag}
+    <div .bookmark_count_box>
+      <span .bookmark_count>#{bcount}</span>
+    $if isowner
+      <div .filters >
+        <a href="@{UserR unamep}" class="filter ">all
+        ‧  
+        <a href="@{UserSharedR unamep SharedPrivate}" class="filter ">private
+        ‧  
+        <a href="@{UserSharedR unamep SharedPublic}" .filter >public
+        ‧  
+        <a href="@{UserFilterR unamep FilterUnread}" .filter >unread
+        ‧  
+        <a href="@{UserFilterR unamep FilterUntagged}" .filter >untagged
+        ‧  
+        <a href="@{UserFilterR unamep FilterStarred}" .filter >starred
+    <div style="clear:both">
+  
+  ^{pager}
+
+  <div style="clear:both">
+      
+  <div #bulk_links>
+
+  <div #bookmarks>
+    $forall (Entity bk' Bookmark{..}) <- bmarks
+      $with bk <- fromSqlKey bk'
+        <div>
+          $if isowner
+            <div .edit_checkbox name="edit_checkbox">
+              <input #checkbox_#{bk} autocomplete="off" type="checkbox">
+  
+          <div ##{bk} .bookmark :not bookmarkShared:.private data-bid=#{bk}>
+  
+            $if isowner
+              <div .star :bookmarkSelected:.selected_star><span onclick="PS['BMark'].toggleStarE(event)(#{bk})()">✭</span>
+  
+            <div .display>    
+              <a .bookmark_title :isowner && bookmarkToRead:.unread target="_blank" href="#{bookmarkHref}"> #{toTitle bookmarkDescription}
+              <br>
+  
+              <a .url_display href="#{bookmarkHref}"> #{bookmarkHref}
+              <br>
+  
+              <div .description> #{Textarea bookmarkExtended}
+              <div .tags>
+                $with btags <- filter ((==) bk' . (bookmarkTagBookmarkId . E.entityVal)) alltags
+                  $forall (Entity bt BookmarkTag{..}) <- btags
+                    $with private <- isPrefixOf "." bookmarkTagTag
+                      $if (private && isowner) || (not private)
+                        <a .tag :private:.private href="@{UserTagsR unamep (TagsP [bookmarkTagTag])}">#{bookmarkTagTag}</a>
+  
+              <a .when.js-moment title="#{TI.formatISO8601Millis bookmarkTime}" data-iso8601="#{TI.formatISO8601Millis bookmarkTime}" href="@{UserFilterR unamep (FilterSingle bk)}" title="">
+                &nbsp;
+                
+              $if isowner
+                <div .edit_links style="display:inline">
+                  <a .edit onclick="PS['BMark'].editE(event)(#{bk})()" href="#"> edit&nbsp;&nbsp;
+                  <div .delete_link>
+                    <a .delete onclick="PS['BMark'].deleteAskE(event)()" href="#" style="display: inline;"> delete
+                    <span .confirm hidden>
+                      <a href="#" onclick="PS['BMark'].deleteCancelE(event)()"> cancel /
+                      <a .destroy href="#" onclick="PS['BMark'].destroyE(event)(#{bk})(false)()"> destroy
+
+                <div .read style="display:inline">
+                  $if bookmarkToRead
+                    &nbsp;&nbsp;
+                    <a .mark_read href="#" onclick="PS['BMark'].markReadE(event)(#{bk})()">mark as read</a>
+  
+            <div style="clear:both">
+  
+          <div style="clear:both">
+
+  <div style="clear:both">
+
+  ^{pager}
+
+  $if (fromIntegral bcount >= limit) || (page > 1)
+    $maybe route <- mroute
+      <div #per_page_picker>
+        per page: &nbsp;&nbsp; 
+        <a :limit == 20:.per_page_selected href="@?{(route, [("count", "20")])}"‧>20</a> ‧ 
+        <a :limit == 40:.per_page_selected href="@?{(route, [("count", "40")])}"‧>40</a> ‧ 
+        <a :limit == 80:.per_page_selected href="@?{(route, [("count", "80")])}"‧>80</a> ‧ 
+        <a :limit == 120:.per_page_selected href="@?{(route, [("count", "120")])}"‧>120</a> ‧ 
+        <a :limit == 160:.per_page_selected href="@?{(route, [("count", "160")])}"‧>160</a>
+        
+  <div #edit_bookmark_form_template .edit_bookmark_form hidden>   
+    <form onsubmit="PS['BMark'].editSubmitE(event)()">
+      $maybe tokenValue <- reqToken req
+        <input type="hidden" name="#{defaultCsrfParamName}" value="#{tokenValue}">
+      <input type="hidden" name="bid" value="">
+      <input required name="url" type="text" .url.edit_form_input>
+      <br>
+      <input name="title" .edit_form_input.title type="text" value="">
+      <br>
+      <p style="margin-top:10px;margin-bottom:5px;"> description:
+      <textarea name="description" .edit_form_input.description rows="5">
+      <br>
+      <div #tags_input_box>
+        <p style="margin-top:10px;"> tags:
+          <input name="tags" #tags_input .tags.edit_form_input autocorrect="off" autocapitalize="off" type="text">
+          <br>
+      <div #edit_form_checkboxes>
+        <input name="private" #edit_private .private type="checkbox">
+        <label style="display:inline" for="edit_private"> private
+        <input name="toread" #edit_toread .toread type="checkbox">
+        <label style="display:inline" for="edit_toread">to read
+        <br>
+      <input class="edit-button" type="submit" .submit value="save">
+      <input class="edit-button" type="reset" .reset value="cancel" onclick="PS['BMark'].editHideE(event)()">
