From 02dec5dfdea1dd61da39ce078e9a6e3ff6a04ab1 Mon Sep 17 00:00:00 2001 From: Anton Dyudin Date: Tue, 3 May 2016 14:34:53 -0700 Subject: [PATCH] default to serving concatenated css/js web/tree/{main_hoon_urb.js,main_codemirror_fonts_bootstrap.css} are artefacts that should be maintained by concatenating {tree/main,lib/js/{hoon,urb}}.js and {tree/main,lib/css/{codemirror,fonts,bootstrap.min}}.css respectively --- ren/tree/head.hoon | 50 +- web/tree/main.css | 578 ++- web/tree/main_codemirror_bootstrap.css | 1241 ++++++ web/tree/main_codemirror_fonts_bootstrap.css | 1324 +++++++ web/tree/main_hoon_urb.js | 3714 ++++++++++++++++++ web/tree/main_urb.js | 3550 +++++++++++++++++ 6 files changed, 10120 insertions(+), 337 deletions(-) create mode 100644 web/tree/main_codemirror_bootstrap.css create mode 100644 web/tree/main_codemirror_fonts_bootstrap.css create mode 100644 web/tree/main_hoon_urb.js create mode 100644 web/tree/main_urb.js diff --git a/ren/tree/head.hoon b/ren/tree/head.hoon index f95739085..d485a3ac4 100644 --- a/ren/tree/head.hoon +++ b/ren/tree/head.hoon @@ -9,6 +9,10 @@ |= gas/epic ^- ? :: check that the fcgi %+ lien (~(tap in (~(get ju aut.ced.gas) %$))) :: has an identity |=(a/knot !=(%pawn (clan (slav %p a)))) :: which isn't a comet +/= dbg-nopack + /$ %+ cork fuel :: after parsing params, + |= gas/epic ^- ? :: check if the query + (~(has by qix.gas) 'dbg.nopack') :: dictates separate files :: !: :::: @@ -16,24 +20,36 @@ ^- marl ;= ;title: Tree ;meta(name "viewport", content "width=device-width, initial-scale=1"); - ;link(type "text/css", rel "stylesheet", href "//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.min.css"); - ;link(type "text/css", rel "stylesheet", href "/lib/css/fonts.css"); - ;link(type "text/css", rel "stylesheet", href "/lib/css/bootstrap.css"); - ;link(type "text/css", rel "stylesheet", href "/lib/css/codemirror.css"); - ;link(type "text/css", rel "stylesheet", href "/tree/main.css"); +:: ;link(type "text/css", rel "stylesheet", href "//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.min.css"); + ;* ?. dbg-nopack + :_ ~ + ;link(type "text/css", rel "stylesheet", href "/tree/main_codemirror_fonts_bootstrap.css"); +:: ;link(type "text/css", rel "stylesheet", href "/tree/main_codemirror_bootstrap.css"); + ;= + ;link(type "text/css", rel "stylesheet", href "/lib/css/fonts.css"); + ;link(type "text/css", rel "stylesheet", href "/lib/css/bootstrap.css"); + ;link(type "text/css", rel "stylesheet", href "/lib/css/codemirror.css"); + ;link(type "text/css", rel "stylesheet", href "/tree/main.css"); + == ::;link(type "text/css", rel "stylesheet", href "http://localhost:8000/docs/pub/tree/main.css"); - ;link(type "application/rss+xml", rel "alternate", href "{(spud tub)}.rss-xml"); ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js"); ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.min.js"); - ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.js"); - ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react-dom.js"); - ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/flux/2.1.1/Flux.js"); - ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.js"); - ;script(type "text/javascript", src "/lib/js/urb.js"); - ;script(type "text/javascript", src "/lib/js/hoon.js"); - ;script(type "text/javascript", src "/tree/main.js"); - ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/". - "codemirror/4.3.0/mode/markdown/markdown.min.js"); - ;script(type "text/javascript", src "{?.(aut "" "/~~")}". - "/~/at/lib/js/urb.js"); + ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react.min.js"); + ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/react/0.14.6/react-dom.min.js"); + ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/flux/2.1.1/Flux.min.js"); +:: ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/codemirror/4.3.0/codemirror.js"); +:: ;script(type "text/javascript", src "//cdnjs.cloudflare.com/ajax/libs/". +:: "codemirror/4.3.0/mode/markdown/markdown.min.js"); + ;* ?. dbg-nopack + :_ ~ + ;script(type "text/javascript", src "{?.(aut "" "/~~")}". + "/~/at/tree/main_urb.js"); +:: "/~/at/tree/main_hoon_urb.js"); + ;= +:: ;script(type "text/javascript", src "/lib/js/hoon.js"); + ;script(type "text/javascript", src "/tree/main.js"); + ;script(type "text/javascript", src "{?.(aut "" "/~~")}". + "/~/at/lib/js/urb.js"); + == + ;link(type "application/rss+xml", rel "alternate", href "{(spud tub)}.rss-xml"); == diff --git a/web/tree/main.css b/web/tree/main.css index eccb964bd..070a38b67 100644 --- a/web/tree/main.css +++ b/web/tree/main.css @@ -15,26 +15,26 @@ img.logo.first { margin-bottom: 2rem; } div.logo { - width: 4rem; - height: 4rem; - background-color: #000; + width: 3rem; + height: 3rem; + background-color: #fff; display: inline-block; margin-right: 1rem; border-radius: 50%; vertical-align: middle; - margin-top: -.8rem; } + margin-top: -.8rem; + background-color: #000; } div.logo:before { content: "~"; - color: #FFFFFF; - font-size: 4rem; + color: #B1B7BD; + font-size: 2.6rem; vertical-align: middle; line-height: 3rem; margin-top: .2rem; text-align: center; width: 2rem; - display: inline-block; - font-weight: 200; } + display: inline-block; } div.logo.inverse:before { color: #fff; } @@ -178,11 +178,7 @@ div.logo.inverse:before { position: relative; margin-bottom: 3rem; padding: 0; - background-color: transparent; - width: auto; } - .ctrl.navbar, - .ctrl.navbar .items { - height: 3rem; } + background-color: transparent; } .ctrl.navbar .icon, .ctrl.navbar ul.nav, .ctrl.navbar li { @@ -234,9 +230,7 @@ div.logo.inverse:before { width: inherit; max-width: inherit; } .ctrl.open { - height: auto; - max-height: 12rem; - min-height: 3rem; } + max-height: 12rem; } a.nav-link { font-size: 1rem; line-height: 1rem; @@ -380,7 +374,8 @@ div.logo.inverse:before { content: "~"; color: #fff; line-height: .8rem; - font-size: 1.4rem; } + font-size: 1.4rem; + padding-left: 1px; } @media (max-width: 991px) { [data-path^='/docs'] .home:before, @@ -438,6 +433,9 @@ div.logo.inverse:before { .urbit.navbar.ctrl { margin-top: 1rem; } + .urbit.navbar.ctrl, + .urbit.navbar.ctrl .items { + height: 3rem; } .urbit.navbar.ctrl .icon .home { border-color: #B1B7BD; background-color: #B1B7BD; @@ -454,16 +452,13 @@ div.logo.inverse:before { display: inline-block; } .urbit.navbar.ctrl ul.nav li { height: 3rem; - vertical-align: middle; - min-width: 0; - margin-right: 2rem; } + vertical-align: middle; } .urbit.navbar.ctrl ul.nav li a { text-decoration: none; - color: #000; + color: #B1B7BD; font-weight: 500; font-size: 1rem; - border-bottom: 3px solid #000; - margin-top: 1rem; } + line-height: 3rem; } .urbit.navbar.ctrl ul.nav .btn { border: 3px solid #000; margin-top: -3px; @@ -481,8 +476,7 @@ div.logo.inverse:before { color: #fff; } .urbit.navbar.ctrl ul.nav li a:hover, .urbit.navbar.ctrl ul.nav li.selected a { - color: #55595c; - border-color: #55595c; } + color: #000; } .urbit.navbar.ctrl .subnav ul.nav { height: 1.5rem; } .urbit.navbar.ctrl .subnav ul.nav li { @@ -503,60 +497,45 @@ div.logo.inverse:before { .urbit.home.navbar.ctrl .icon .home:before { color: #B1B7BD; } -.urbit.home.navbar.ctrl ul li a { - color: #fff; - border-color: #fff; } +.urbit.home.navbar.ctrl ul.nav li a { + color: #f7f7f9; } @media (max-width: 767px) { - .urbit.home.navbar.ctrl .icon .home { - display: none; } - .urbit.navbar.ctrl { + .urbit.navbar.ctrl .icon { + margin-top: .5rem; + margin-bottom: .5rem; } + .urbit.navbar.ctrl .icon .home { + width: 2rem; + height: 2rem; + margin: 0; } + .urbit.navbar.ctrl .icon .home:before { + font-size: 1.6rem; + line-height: 1.8rem; + width: 1.6rem; } + .urbit.navbar.ctrl .navbar-toggler { + margin-top: .5rem; + margin-left: 1rem; } + .urbit.navbar.ctrl ul.nav, + .urbit.navbar.ctrl .subnav ul.nav { + overflow: visible; height: auto; - margin: 0; - position: absolute; - border: none; } - .urbit.navbar.ctrl .icon { - margin-top: 1rem; - margin-bottom: .5rem; } - .urbit.navbar.ctrl .icon .home { - width: 18px; - height: 18px; - margin: 0 1rem 0 0; } - .urbit.navbar.ctrl .icon .home:before { - font-size: 1rem; - line-height: .7rem; - width: .6rem; } - .urbit.navbar.ctrl .icon .navbar-toggler { - margin-left: 0; } - .urbit.navbar.ctrl .icon .navbar-toggler, - .urbit.navbar.ctrl .icon .open .navbar-toggler { - opacity: 1; } - .urbit.navbar.ctrl ul.nav, - .urbit.navbar.ctrl .subnav ul.nav { - overflow: visible; - background-color: #fff; - height: auto; - margin-left: -1rem; - padding-left: 1rem; - padding-top: .8rem; - float: left; } - .urbit.navbar.ctrl ul.nav li, - .urbit.navbar.ctrl .subnav ul.nav li { - display: block; - height: 1.5rem; } - .urbit.navbar.ctrl ul.nav li a, - .urbit.navbar.ctrl .subnav ul.nav li a { - line-height: 1.5rem; - margin-top: 0; - color: #000; } - .urbit.navbar.ctrl ul.nav li.btn, - .urbit.navbar.ctrl .subnav ul.nav li.btn { - height: 1.5rem; - border: 0; } - .urbit.navbar.ctrl ul.nav li.btn a, - .urbit.navbar.ctrl .subnav ul.nav li.btn a { - color: #64DE79; - line-height: 1.5rem; } } + margin-left: 3rem; + float: left; } + .urbit.navbar.ctrl ul.nav li, + .urbit.navbar.ctrl .subnav ul.nav li { + display: block; + height: 1.5rem; } + .urbit.navbar.ctrl ul.nav li a, + .urbit.navbar.ctrl .subnav ul.nav li a { + line-height: 1.5rem; } + .urbit.navbar.ctrl ul.nav li.btn, + .urbit.navbar.ctrl .subnav ul.nav li.btn { + height: 1.5rem; + border: 0; } + .urbit.navbar.ctrl ul.nav li.btn a, + .urbit.navbar.ctrl .subnav ul.nav li.btn a { + color: #64DE79; + line-height: 1.5rem; } } #tree > div > .container { padding-top: 3rem; @@ -602,26 +581,6 @@ div.logo.inverse:before { border-bottom: 2px solid #55595c; margin-left: .6rem; } -ol { - counter-reset: li; - list-style: none; - padding-left: 2rem; } - -ol > li { - margin-bottom: 2rem; } - -.top ol { - padding-left: 0; } - -ol > li:before { - content: counter(li) "."; - counter-increment: li; - text-align: left; - font-weight: 500; - float: left; - margin-right: 1rem; - margin-left: -2rem; } - .body[data-path^='/docs'] h1, .body[data-path^='/work'] h1 { color: #000; } @@ -668,199 +627,181 @@ ol > li:before { padding-top: 0; margin-bottom: 0; } -.body .urbit { - padding-bottom: 9rem; } - .body .urbit .logo { - background-color: transparent; - border: .3rem solid #fff; } - .body .urbit .logo:before { - line-height: 3.4rem; } - .body .urbit h1 { - color: #000; - line-height: 4rem; } - .body .urbit a.green:hover { - color: #64DE79; } - .body .urbit .container.stack { - margin-bottom: 3rem; } - .body .urbit .container.stack p { - font-size: 1.2rem; - line-height: 2rem; } - .body .urbit .container.stack.six { - margin-top: 12rem; - margin-bottom: 6rem; } - .body .urbit .btn.black { - text-transform: none; - text-decoration: none; - border: 3px solid #000; - letter-spacing: 0; - margin: 0 1rem 1rem 0; } - .body .urbit button.submit:hover, - .body .urbit .btn.black:hover { - background-color: #000; - color: #fff; } - .body .urbit .front { - padding-bottom: 4rem; } - .body .urbit .front h1 { - padding-top: 0; } - .body .urbit .front h1, - .body .urbit .front h1 a { - font-size: 4rem; - line-height: 6rem; } - .body .urbit .image-fs { - height: 44rem; - margin-bottom: 3rem; } - .body .urbit .image-fs .text-container, - .body .urbit .image-fs .image-container { - position: absolute; } - .body .urbit .image-fs .text-container { - display: table; - height: 44rem; - width: 100%; - z-index: 1; } - .body .urbit .image-fs .text-container .text { - display: table-cell; - vertical-align: middle; } - .body .urbit .image-fs .text-container .rect { - margin-left: auto; - margin-right: auto; } - .body .urbit .image-fs .text-container .rect h1 { - padding-bottom: 1rem; - text-align: left; } - @media (min-width: 544px) { - .body .urbit .image-fs .text-container .rect { - width: 480px; } } - @media (min-width: 768px) { - .body .urbit .image-fs .text-container .rect { - width: 600px; } } - @media (min-width: 992px) { - .body .urbit .image-fs .text-container .rect { - width: 783.33333px; } } - @media (min-width: 1200px) { - .body .urbit .image-fs .text-container .rect { - width: 950px; } } - .body .urbit .image-fs .text-container .rect { - padding: 0 30px 0 30px; } - .body .urbit .image-fs .text-container .rect.no-header { - font-weight: 500; - color: #fff; - font-size: 1.4rem; } - .body .urbit .image-fs .text-container .rect.no-header p.email { - font-size: 1rem; } - .body .urbit .image-fs .image-container { - z-index: 0; - height: 44rem; - width: 100%; - overflow: hidden; - background-repeat: no-repeat; - background-position: center center; - -webkit-background-size: cover; - -moz-background-size: cover; - -o-background-size: cover; - background-size: cover; } - .body .urbit .image-fs h1 { - text-align: center; - color: #fff; } - .body .urbit .image-fs.first { - margin-top: -9rem; } - .body .urbit .image-fs.first h1 { - padding-bottom: 0; } - .body .urbit .slide { - margin-bottom: 12rem; - position: relative; } - .body .urbit .slide h1 { - padding-bottom: 1rem; } - .body .urbit .slide .pair { - display: table; } - .body .urbit .slide .pair .text, - .body .urbit .slide .pair .image { - display: table-cell; - vertical-align: middle; } - .body .urbit .slide .pair .image.right { - padding-left: 5%; } - .body .urbit .slide .pair .image.left { - padding-right: 5%; } - .body .urbit .slide .pair .text { - width: 75%; } - .body .urbit .slide .pair .image { - width: 20%; } - .body .urbit .slide .pair p:last-child { - margin-bottom: 0; } - .body .urbit .end { - padding: 1rem; - background-color: #64DE79; - color: white; - text-decoration: none; - font-size: 2rem; - font-weight: 500; } - .body .urbit input.email { - font-weight: 500; - background-color: #000; - color: #fff; - font-size: 1rem; - margin-right: 1rem; - border: 3px solid #000; - padding: .375rem 1rem; - margin: 0 1rem 0 0; - line-height: 1.6rem; - vertical-align: top; - margin-bottom: .6rem; } - .body .urbit input.email::-moz-placeholder { - color: #D2D2D2; } - .body .urbit input.email::-webkit-input-placeholder { - color: #D2D2D2; } - .body .urbit button.submit { - text-transform: none; - text-decoration: none; - background-color: #000000; - color: #fff; - font-weight: 500; - letter-spacing: 0; } - .body .urbit .last a { - display: block; - font-weight: 500; - color: #55595c; +.body .urbit .logo { + background-color: #fff; } + +.body .urbit h1 { + color: #000; + line-height: 4rem; } + +.body .urbit a.green:hover { + color: #64DE79; } + +.body .urbit .container.stack { + margin-bottom: 3rem; } + .body .urbit .container.stack p { + font-size: 1.2rem; line-height: 2rem; } - .body .urbit .last h2 { - padding-top: 0; - padding-bottom: 1rem; - margin-bottom: 0; } - .body .urbit .fade-out { - background: -webkit-linear-gradient(top, rgba(153, 153, 153, 0) 0%, white 100%); - background: linear-gradient(to bottom, rgba(153, 153, 153, 0) 0%, white 100%); - filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#00999999', endColorstr='#ffffff',GradientType=0 ); - margin-top: -14rem; - position: absolute; - height: 12rem; - width: 100%; } - .body .urbit .grams { - margin: 2rem 0; } - .body .urbit .grams .gram label { - background-color: #000; } - .body .urbit .grams .gram .speech { - font-size: 1.6rem; } - .body .urbit .grams .gram .iden, - .body .urbit .grams .gram .path { - max-width: 12rem; - white-space: nowrap; - overflow: hidden; - vertical-align: middle; } + +.body .urbit .container.stack.six { + margin-top: 12rem; + margin-bottom: 6rem; } + +.body .urbit .btn.black { + text-transform: none; + text-decoration: none; + border: 3px solid #000; + letter-spacing: 0; + margin-right: 1rem; } + +.body .urbit button.submit:hover, +.body .urbit .btn.black:hover { + background-color: #000; + color: #fff; } + +.body .urbit .front { + padding-bottom: 4rem; } + .body .urbit .front h1 { + padding-top: 0; } + .body .urbit .front h1, + .body .urbit .front h1 a { + font-size: 4rem; + line-height: 6rem; } + +.body .urbit .image-fs { + height: 44rem; + margin-bottom: 3rem; } + .body .urbit .image-fs .text-container, + .body .urbit .image-fs .image-container { + position: absolute; } + .body .urbit .image-fs .text-container { + display: table; + height: 44rem; + width: 100%; + z-index: 1; } + .body .urbit .image-fs .text-container .text { + display: table-cell; + vertical-align: middle; } + .body .urbit .image-fs .text-container .rect { + width: 60%; + margin-left: auto; + margin-right: auto; } + .body .urbit .image-fs .text-container .rect h1 { + padding-bottom: 1rem; + text-align: left; } + .body .urbit .image-fs .text-container .rect.no-header { + font-weight: 500; + color: #fff; + font-size: 1.4rem; } + .body .urbit .image-fs .text-container .rect.no-header p.email { + font-size: 1rem; } + .body .urbit .image-fs .text-container .rect.no-header button.submit { + background-color: transparent; + border-color: #fff; } + .body .urbit .image-fs .image-container { + z-index: 0; + height: 44rem; + width: 100%; + overflow: hidden; } + .body .urbit .image-fs .image-container img { + position: relative; + left: 50%; + margin-left: -50%; + top: 50%; + margin-top: -50%; + min-height: 44rem; + min-width: 100%; } + .body .urbit .image-fs h1 { + text-align: center; + color: #fff; } + +.body .urbit .image-fs.first { + margin-top: -9rem; } + +.body .urbit .slide { + margin-bottom: 12rem; + position: relative; } + .body .urbit .slide h1 { + padding-bottom: 1rem; } + .body .urbit .slide .pair { + display: table; } + .body .urbit .slide .pair .text, + .body .urbit .slide .pair .image { + display: table-cell; + vertical-align: middle; } + .body .urbit .slide .pair .image.right { + padding-left: 5%; } + .body .urbit .slide .pair .image.left { + padding-right: 5%; } + .body .urbit .slide .pair .text { + width: 75%; } + .body .urbit .slide .pair .image { + width: 20%; } + .body .urbit .slide .pair p:last-child { + margin-bottom: 0; } + +.body .urbit .end { + padding: 1rem; + background-color: #64DE79; + color: white; + text-decoration: none; + font-size: 2rem; + font-weight: 500; } + +.body .urbit input.email, +.body .urbit button.submit { + line-height: 1rem; + padding: .6rem; + border: 0; } + +.body .urbit input.email { + font-weight: 500; + background-color: #B1B7BD; + color: #fff; + margin-right: 1rem; + border: 3px solid #B1B7BD; } + +.body .urbit input.email::-moz-placeholder { + color: #D2D2D2; } + +.body .urbit input.email::-webkit-input-placeholder { + color: #D2D2D2; } + +.body .urbit button.submit { + text-transform: none; + text-decoration: none; + border: 3px solid #000; + background-color: #fff; + font-weight: 500; + letter-spacing: 0; } + +.body .urbit .last a { + display: block; + font-weight: 500; + color: #B1B7BD; } + +.body .urbit .last h2 { + padding-top: 0; + padding-bottom: 1rem; + margin-bottom: 0; } + +.body .urbit.home p.email { + margin-top: 3rem; } @media (max-width: 767px) { - .body .urbit .slide .pair, - .body .urbit .slide .pair .text, - .body .urbit .slide .pair .image { - display: block; - width: 100%; } - .body .urbit .slide .pair .image { - text-align: center; } - .body .urbit .slide .pair .image.left { - margin-bottom: 2rem; } - .body .urbit .slide .pair .image.right { - margin-top: 2rem; } - .body .urbit .last .col-md-4 { - margin-top: 2rem; } - .body .urbit .last .col-md-4.col-md-offset-1 { - margin-top: 0; } } + .body .urbit { + margin-top: 4rem; } + .body .urbit .slide .pair, + .body .urbit .slide .pair .text, + .body .urbit .slide .pair .image { + display: block; + width: 100%; } + .body .urbit .slide .pair .image { + text-align: center; } + .body .urbit .slide .pair .image.left { + margin-bottom: 2rem; } + .body .urbit .slide .pair .image.right { + margin-top: 2rem; } } @media (max-width: 767px) { #body.plan { @@ -981,7 +922,7 @@ ol > li:before { padding-right: 0; position: fixed; overflow: hidden; - z-index: 101; + z-index: 99; margin-top: -3rem; } .menu .contents { padding-left: 0.9375rem; @@ -1066,10 +1007,6 @@ ol > li:before { font-weight: 500; font-size: 1.4rem; } -.list.post .date { - font-family: 'scp'; - font-size: .7rem; } - .body[data-path^='/docs'] .list, .body[data-path^='/work'] .list { list-style-type: none; @@ -1114,15 +1051,13 @@ ol > li:before { .body[data-path^='/docs'] .list.runes a h1 { display: block; margin-bottom: .3rem; - height: auto; - border-bottom: none; } + height: 1.8rem; } .body[data-path^='/docs'] .list.runes a h1 code { background-color: transparent; font-weight: 500; font-size: 1.2rem; - padding: 0; - border-bottom: 2px solid #000; } + padding: 0; } .body[data-path^='/docs'] .list.runes a code { background-color: #eceeef; } @@ -1135,14 +1070,15 @@ ol > li:before { padding-left: 0; } .urbit ul.blog li { margin-bottom: 12rem; } - .urbit ul.blog .continue { - font-weight: 500; + .urbit ul.blog .btn { + padding: .3rem; + border: 3px solid #64DE79; + color: #64DE79; text-decoration: none; - border-bottom: 3px solid #000; } - -@media (max-width: 767px) { - .urbit ul.blog li { - margin-bottom: 6rem; } } + text-transform: none; } + .urbit ul.blog .btn:hover { + background-color: #64DE79; + color: #fff; } .kids.runes h1 { padding-top: 3rem; } @@ -1160,26 +1096,13 @@ ol > li:before { .kids.runes > div p:first-of-type { font-weight: 500; } -#body.post .date { +.urbit .post .date, +.urbit.post .date { font-family: 'scp'; color: #B1B7BD; font-size: .7rem; font-weight: 200; } -#body.post .date, -#body.post p.preview, -#body.post h3.author { - margin-bottom: .6rem; } - -#body.post h3.author { - padding-top: 0; - font-size: 1rem; - font-weight: 200; } - -#body.post h3.author:before { - content: "—"; - margin-right: .6rem; } - .urbit .post h1.title, .urbit .post p.preview, .urbit.post h1.title, @@ -1198,9 +1121,24 @@ ol > li:before { width: 100%; margin-bottom: 2rem; } -.urbit .post img, -.urbit.post img { - border: 12px solid #000; } +.urbit .post .date, +.urbit .post p.preview, +.urbit .post h3.author, +.urbit.post .date, +.urbit.post p.preview, +.urbit.post h3.author { + margin-bottom: .6rem; } + +.urbit .post h3.author, +.urbit.post h3.author { + padding-top: 0; + font-size: 1rem; + font-weight: 200; } + +.urbit .post h3:before, +.urbit.post h3:before { + content: "—"; + margin-right: .6rem; } .urbit.post .preview { max-width: 75%; } diff --git a/web/tree/main_codemirror_bootstrap.css b/web/tree/main_codemirror_bootstrap.css new file mode 100644 index 000000000..79d6bddb6 --- /dev/null +++ b/web/tree/main_codemirror_bootstrap.css @@ -0,0 +1,1241 @@ +@charset "UTF-8"; +.col-md-10.body { + padding-left: 0; } + +@media (max-width: 767px) { + .col-md-10.body { + margin-top: 0.9375rem; + padding-left: 0.9375rem; } } + +img.logo { + height: 2rem; + width: 2rem; } + +img.logo.first { + margin-bottom: 2rem; } + +div.logo { + width: 3rem; + height: 3rem; + background-color: #fff; + display: inline-block; + margin-right: 1rem; + border-radius: 50%; + vertical-align: middle; + margin-top: -.8rem; + background-color: #000; } + +div.logo:before { + content: "~"; + color: #B1B7BD; + font-size: 2.6rem; + vertical-align: middle; + line-height: 3rem; + margin-top: .2rem; + text-align: center; + width: 2rem; + display: inline-block; } + +div.logo.inverse:before { + color: #fff; } + +.lead .logo.inverse { + margin-top: -1.4rem; } + +.short { + width: 75%; } + +.meta-data { + padding: 1rem; + background-color: #f7f7f9; + font-family: 'scp'; + max-width: 12rem; + margin-bottom: 2rem; } + .meta-data h2, + .meta-data h3 { + padding: 0; + margin: 0; + font-size: 1rem; + line-height: 2rem; } + +.link-next { + margin-top: 4rem; } + .link-next a { + padding: .6rem; + border: 2px solid; + text-decoration: none; + font-weight: 500; + margin-top: 4rem; } + .link-next a:hover { + background-color: #000; + color: #fff; } + +.loading:before { + font-family: 'scp'; + background-color: #000; + color: #fff; + padding: 0; + margin: 0; + width: 1.6rem; + height: 1.6rem; + text-align: center; + font-size: .8rem; + line-height: 1.7rem; + display: block; + font-weight: 600; + z-index: 3; } + +.loading.state-0:before { + content: "\25D3"; } + +.loading.state-1:before { + content: "\25D1"; } + +.loading.state-2:before { + content: "\25D2"; } + +.loading.state-3:before { + content: "\25D0"; } + +@media (min-width: 768px) { + .ctrl { + width: 180px; } + .ctrl.open, + .ctrl:hover { + max-width: 360px; + min-width: 180px; + width: auto; } } + +@media (min-width: 992px) { + .ctrl { + width: 235px; } + .ctrl.open, + .ctrl:hover { + max-width: 470px; + min-width: 235px; + width: auto; } } + +@media (min-width: 1200px) { + .ctrl { + width: 285px; } + .ctrl.open, + .ctrl:hover { + max-width: 570px; + min-width: 285px; + width: auto; } } + +#head .loading { + display: none; } + +@media (max-width: 543px) { + #head { + top: 0; + z-index: 10; + width: 100%; + position: absolute; } + #head.m-down, + #head.m-up { + position: absolute; } + #head.m-down.m-fixed { + position: fixed; } } + +@media (max-width: 543px) { + .nav.container { + left: 0; } } + +.menu .contents { + padding-top: 3rem; } + +.ctrl { + padding-left: 0; + padding-right: 0; + background-color: #fff; + transition: max-width .2s ease-in-out; + position: fixed; + height: 100%; + z-index: 100; } + .ctrl ul.nav { + margin-top: 2rem; + overflow-x: hidden; + overflow-y: scroll; + height: 100%; } + .ctrl ul.nav li { + width: 100%; + overflow: hidden; + white-space: nowrap; + margin-bottom: .6rem; } + .ctrl ul.nav:hover { + overflow-x: visible; } + .ctrl a.nav-link { + letter-spacing: 1px; + text-decoration: none; + border-bottom: 2px solid; + line-height: 1rem; } + .ctrl .selected a.nav-link { + font-weight: 500; } + +.ctrl.navbar { + position: relative; + margin-bottom: 3rem; + padding: 0; + background-color: transparent; } + .ctrl.navbar .icon, + .ctrl.navbar ul.nav, + .ctrl.navbar li { + display: inline-block; + padding: 0; } + .ctrl.navbar ul.nav { + margin-top: 0; + overflow: visible; } + .ctrl.navbar ul.nav li { + width: auto; + display: inline-block; + min-width: 16.66667%; } + .ctrl.navbar ul.nav .right { + float: right; } + .ctrl.navbar ul.nav .btn { + margin: 0; + padding: 0; + border: 0; + text-transform: none; } + +.ctrl.navbar.open, +.ctrl.navbar:hover { + max-width: none; + min-width: none; } + +@media (max-width: 991px) { + ul.nav { + line-height: 1.3rem; } + a.nav-link { + font-size: .8rem; } } + +@media (max-width: 767px) { + .ctrl { + position: relative; + max-height: 3rem; + max-width: 100%; + padding-top: 1rem; + background-color: #fff; + overflow: hidden; + border-bottom: 2px solid #B1B7BD; + -webkit-transition: max-height 0.2s ease-in-out; + -moz-transition: max-height 0.2s ease-in-out; + transition: max-height 0.2s ease-in-out; } + .ctrl ul.nav { + line-height: 2rem; + margin: 0 0 2rem 0.9375rem; } + .ctrl.open, + .ctrl:hover { + width: inherit; + max-width: inherit; } + .ctrl.open { + max-height: 12rem; } + a.nav-link { + font-size: 1rem; + line-height: 1rem; + text-decoration: none; + border-bottom: 2px solid; } + .ctrl.open ul.nav { + max-height: 9rem; + overflow-y: scroll; } } + +.navbar-toggler { + font-size: 24px; + transition: opacity .2s, transform .3s, margin-left .2s; + -webkit-transition: opacity .2s, transform .3s, margin-left .2s; } + +.open .navbar-toggler { + transform: rotate(0.25turn); + opacity: .2; + margin-left: -.2rem; } + +.items { + height: 80%; } + +@media (min-width: 768px) { + .ctrl .navbar-toggler { + display: none; } + .ctrl .navbar-toggler.show { + display: block; + padding: 0; } } + +@media (max-width: 767px) { + .navbar-toggler { + padding: 0; + margin-left: 2rem; + vertical-align: top; + line-height: 18px; } + .open .navbar-toggler { + margin-left: 2rem; } } + +.icon div, .icon a { + display: inline-block; } + +.icon a { + margin-right: .6rem; } + +.icon .home { + margin: 0 0.9375rem 0.9375rem 0; + width: 24px; + height: 24px; + border-radius: 50%; + background-color: transparent; + border: 6px solid #B1B7BD; + cursor: pointer; } + +.icon .home:hover { + border-color: #55595c; } + +.icon .dpad { + display: block; } + +.icon .up { + width: 1px; + height: 1px; + border: 12.0006px solid transparent; + border-bottom: 18px solid #000; + border-top: 0 solid transparent; } + +.icon .prev { + width: 1px; + height: 1px; + border: 12.0006px solid transparent; + border-right: 18px solid #000; + border-left: 0 solid transparent; } + +.icon .next { + width: 1px; + height: 1px; + border: 12.0006px solid transparent; + border-left: 18px solid #000; + border-right: 0 solid transparent; + margin-right: 0; } + +@media (max-width: 991px) { + .icon .home { + width: 18px; + height: 18px; + border-radius: 50%; + background-color: transparent; + border-width: 4px; } + .icon .up { + width: 1px; + height: 1px; + border: 8.0004px solid transparent; + border-bottom: 12px solid #000; + border-top: 0 solid transparent; + margin-left: 1px; } + .icon .prev { + width: 1px; + height: 1px; + border: 8.0004px solid transparent; + border-right: 12px solid #000; + border-left: 0 solid transparent; + margin-right: .6rem; } + .icon .next { + width: 1px; + height: 1px; + border: 8.0004px solid transparent; + border-left: 12px solid #000; + border-right: 0 solid transparent; } } + +@media (max-width: 767px) { + .icon { + margin-left: 0.9375rem; + height: 2rem; } + .icon .dpad { + display: inline; } + .icon .home { + margin-top: 0; + margin-bottom: 0; } } + +[data-path^='/docs'] .selected .nav-link, +[data-path^='/work'] .selected .nav-link { + color: #55595c; } + +[data-path^='/docs'] .nav-link, +[data-path^='/work'] .nav-link { + font-weight: 500; } + +[data-path^='/docs'] .home, +[data-path^='/work'] .home { + background-color: #55595c; + border-color: #55595c; } + +[data-path^='/docs'] .home:hover, +[data-path^='/work'] .home:hover { + background-color: #B1B7BD; + border-color: #B1B7BD; + opacity: .6; } + +[data-path^='/docs'] .home:before, +[data-path^='/work'] .home:before { + content: "~"; + color: #fff; + line-height: .8rem; + font-size: 1.4rem; + padding-left: 1px; } + +@media (max-width: 991px) { + [data-path^='/docs'] .home:before, + [data-path^='/work'] .home:before { + line-height: 0.7rem; + font-size: 1rem; + margin-left: .06rem; } } + +@media (max-width: 767px) { + [data-path^='/docs'] .home:before, + [data-path^='/work'] .home:before { + line-height: .7rem; + margin-left: .05rem; + font-size: 1rem; } } + +[data-path^='/docs/system/hoon/runes'] .nav-link { + font-family: 'scp'; } + +[data-path^='/docs/system/hoon/runes'] .nav-link, +[data-path^='/docs/system/hoon/runes'] .ctrl .selected a.nav-link { + font-weight: 600; } + +.app { + vertical-align: top; + font-size: 1.6rem; + font-weight: 500; + line-height: 1.6rem; + margin-top: 0; } + +@media (max-width: 991px) { + .app { + font-size: 1.3rem; + line-height: 1.3rem; } } + +@media (max-width: 767px) { + .app { + margin-top: .1rem; + line-height: 1rem; } } + +.context { + margin-top: 1rem; } + .context .name { + font-weight: 300; + font-size: 1.2rem; + font-family: 'scp'; } + +@media (max-width: 991px) { + .context .name { + font-size: 1rem; } } + +@media (max-width: 767px) { + .context { + line-height: 1rem; + margin-bottom: 1rem; } } + +.urbit.navbar.ctrl { + margin-top: 1rem; } + .urbit.navbar.ctrl, + .urbit.navbar.ctrl .items { + height: 3rem; } + .urbit.navbar.ctrl .icon .home { + border-color: #B1B7BD; + background-color: #B1B7BD; + width: 3rem; + height: 3rem; + margin: 0 4rem 0 0; } + .urbit.navbar.ctrl .icon .home:before { + content: "~"; + color: #fff; + font-size: 2.6rem; + line-height: 2.6rem; + text-align: center; + width: 2.4rem; + display: inline-block; } + .urbit.navbar.ctrl ul.nav li { + height: 3rem; + vertical-align: middle; } + .urbit.navbar.ctrl ul.nav li a { + text-decoration: none; + color: #B1B7BD; + font-weight: 500; + font-size: 1rem; + line-height: 3rem; } + .urbit.navbar.ctrl ul.nav .btn { + border: 3px solid #000; + margin-top: -3px; + height: 3rem; + padding: 0rem; } + .urbit.navbar.ctrl ul.nav .btn a { + font-size: 1rem; + color: #000; + letter-spacing: 0; } + .urbit.navbar.ctrl ul.nav .btn.selected, + .urbit.navbar.ctrl ul.nav .btn:hover { + background-color: #000; } + .urbit.navbar.ctrl ul.nav .btn.selected a, + .urbit.navbar.ctrl ul.nav .btn:hover a { + color: #fff; } + .urbit.navbar.ctrl ul.nav li a:hover, + .urbit.navbar.ctrl ul.nav li.selected a { + color: #000; } + .urbit.navbar.ctrl .subnav ul.nav { + height: 1.5rem; } + .urbit.navbar.ctrl .subnav ul.nav li { + height: 1.5rem; } + .urbit.navbar.ctrl .subnav ul.nav li a { + line-height: 1.5rem; } + .urbit.navbar.ctrl .subnav ul.nav .btn { + position: relative; + height: 3rem; } + .urbit.navbar.ctrl .subnav ul.nav .btn a { + line-height: 3rem; } + +.urbit.home.navbar.ctrl .icon .home { + opacity: 0; + border-color: #fff; + background-color: #fff; } + +.urbit.home.navbar.ctrl .icon .home:before { + color: #B1B7BD; } + +.urbit.home.navbar.ctrl ul.nav li a { + color: #f7f7f9; } + +@media (max-width: 767px) { + .urbit.navbar.ctrl .icon { + margin-top: .5rem; + margin-bottom: .5rem; } + .urbit.navbar.ctrl .icon .home { + width: 2rem; + height: 2rem; + margin: 0; } + .urbit.navbar.ctrl .icon .home:before { + font-size: 1.6rem; + line-height: 1.8rem; + width: 1.6rem; } + .urbit.navbar.ctrl .navbar-toggler { + margin-top: .5rem; + margin-left: 1rem; } + .urbit.navbar.ctrl ul.nav, + .urbit.navbar.ctrl .subnav ul.nav { + overflow: visible; + height: auto; + margin-left: 3rem; + float: left; } + .urbit.navbar.ctrl ul.nav li, + .urbit.navbar.ctrl .subnav ul.nav li { + display: block; + height: 1.5rem; } + .urbit.navbar.ctrl ul.nav li a, + .urbit.navbar.ctrl .subnav ul.nav li a { + line-height: 1.5rem; } + .urbit.navbar.ctrl ul.nav li.btn, + .urbit.navbar.ctrl .subnav ul.nav li.btn { + height: 1.5rem; + border: 0; } + .urbit.navbar.ctrl ul.nav li.btn a, + .urbit.navbar.ctrl .subnav ul.nav li.btn a { + color: #64DE79; + line-height: 1.5rem; } } + +#tree > div > .container { + padding-top: 3rem; + padding-bottom: 6rem; } + +@media (max-width: 767px) { + #tree > div > .container { + padding-top: 0; } + #body { + padding-top: 4rem; } } + +.lead h1:first-of-type { + padding-bottom: 0; } + +.flush { + padding-top: 0; } + +.h-arrow { + width: 100%; + height: 9rem; + margin-bottom: 3rem; } + .h-arrow h1, + .h-arrow img { + float: left; } + .h-arrow img { + height: 6rem; + margin: 1rem 0 0 1rem; } + .h-arrow h1 { + color: #000; + display: inline-block; + line-height: 4rem; } + .h-arrow h1 code { + background-color: transparent; + color: #000; } + +.footer { + margin-top: 6rem; + font-weight: 500; + color: #B1B7BD; } + .footer a { + color: #55595c; + text-decoration: none; + border-bottom: 2px solid #55595c; + margin-left: .6rem; } + +.body[data-path^='/docs'] h1, +.body[data-path^='/work'] h1 { + color: #000; } + +.body[data-path^='/docs'] h1 code, +.body[data-path^='/work'] h1 code { + background-color: transparent; + color: #000; + padding: 0; } + +.body[data-path^='/docs'] .book h2, +.body[data-path^='/work'] .book h2 { + color: #B1B7BD; } + +.body[data-path^='/docs'] .book h2 code, +.body[data-path^='/work'] .book h2 code { + color: #000; + background-color: transparent; } + +.body[data-path^='/docs'] .book h2 a, +.body[data-path^='/work'] .book h2 a { + color: #000; } + +.body[data-path^='/docs'] .book hr, +.body[data-path^='/work'] .book hr { + margin-bottom: 3rem; } + +.body[data-path^='/work'] h2 { + color: #000; } + +.body[data-path^='/docs/system/hoon/runes/'] h1 { + color: #B1B7BD; } + +.body[data-path^='/docs/system/hoon/runes/basic'] h1 { + color: #000; } + +.body[data-path^='/docs/system/hoon/library/'] h3 { + font-size: 1.5rem; } + +.body[data-path^='/docs/system/hoon/library/'] h2 { + font-size: 1rem; } + +.body[data-path^='/docs/system/hoon/library/'] .toc h3 { + padding-top: 0; + margin-bottom: 0; } + +.body .urbit .logo { + background-color: #fff; } + +.body .urbit h1 { + color: #000; + line-height: 4rem; } + +.body .urbit a.green:hover { + color: #64DE79; } + +.body .urbit .container.stack { + margin-bottom: 3rem; } + .body .urbit .container.stack p { + font-size: 1.2rem; + line-height: 2rem; } + +.body .urbit .container.stack.six { + margin-top: 12rem; + margin-bottom: 6rem; } + +.body .urbit .btn.black { + text-transform: none; + text-decoration: none; + border: 3px solid #000; + letter-spacing: 0; + margin-right: 1rem; } + +.body .urbit button.submit:hover, +.body .urbit .btn.black:hover { + background-color: #000; + color: #fff; } + +.body .urbit .front { + padding-bottom: 4rem; } + .body .urbit .front h1 { + padding-top: 0; } + .body .urbit .front h1, + .body .urbit .front h1 a { + font-size: 4rem; + line-height: 6rem; } + +.body .urbit .image-fs { + height: 44rem; + margin-bottom: 3rem; } + .body .urbit .image-fs .text-container, + .body .urbit .image-fs .image-container { + position: absolute; } + .body .urbit .image-fs .text-container { + display: table; + height: 44rem; + width: 100%; + z-index: 1; } + .body .urbit .image-fs .text-container .text { + display: table-cell; + vertical-align: middle; } + .body .urbit .image-fs .text-container .rect { + width: 60%; + margin-left: auto; + margin-right: auto; } + .body .urbit .image-fs .text-container .rect h1 { + padding-bottom: 1rem; + text-align: left; } + .body .urbit .image-fs .text-container .rect.no-header { + font-weight: 500; + color: #fff; + font-size: 1.4rem; } + .body .urbit .image-fs .text-container .rect.no-header p.email { + font-size: 1rem; } + .body .urbit .image-fs .text-container .rect.no-header button.submit { + background-color: transparent; + border-color: #fff; } + .body .urbit .image-fs .image-container { + z-index: 0; + height: 44rem; + width: 100%; + overflow: hidden; } + .body .urbit .image-fs .image-container img { + position: relative; + left: 50%; + margin-left: -50%; + top: 50%; + margin-top: -50%; + min-height: 44rem; + min-width: 100%; } + .body .urbit .image-fs h1 { + text-align: center; + color: #fff; } + +.body .urbit .image-fs.first { + margin-top: -9rem; } + +.body .urbit .slide { + margin-bottom: 12rem; + position: relative; } + .body .urbit .slide h1 { + padding-bottom: 1rem; } + .body .urbit .slide .pair { + display: table; } + .body .urbit .slide .pair .text, + .body .urbit .slide .pair .image { + display: table-cell; + vertical-align: middle; } + .body .urbit .slide .pair .image.right { + padding-left: 5%; } + .body .urbit .slide .pair .image.left { + padding-right: 5%; } + .body .urbit .slide .pair .text { + width: 75%; } + .body .urbit .slide .pair .image { + width: 20%; } + .body .urbit .slide .pair p:last-child { + margin-bottom: 0; } + +.body .urbit .end { + padding: 1rem; + background-color: #64DE79; + color: white; + text-decoration: none; + font-size: 2rem; + font-weight: 500; } + +.body .urbit input.email, +.body .urbit button.submit { + line-height: 1rem; + padding: .6rem; + border: 0; } + +.body .urbit input.email { + font-weight: 500; + background-color: #B1B7BD; + color: #fff; + margin-right: 1rem; + border: 3px solid #B1B7BD; } + +.body .urbit input.email::-moz-placeholder { + color: #D2D2D2; } + +.body .urbit input.email::-webkit-input-placeholder { + color: #D2D2D2; } + +.body .urbit button.submit { + text-transform: none; + text-decoration: none; + border: 3px solid #000; + background-color: #fff; + font-weight: 500; + letter-spacing: 0; } + +.body .urbit .last a { + display: block; + font-weight: 500; + color: #B1B7BD; } + +.body .urbit .last h2 { + padding-top: 0; + padding-bottom: 1rem; + margin-bottom: 0; } + +.body .urbit.home p.email { + margin-top: 3rem; } + +@media (max-width: 767px) { + .body .urbit { + margin-top: 4rem; } + .body .urbit .slide .pair, + .body .urbit .slide .pair .text, + .body .urbit .slide .pair .image { + display: block; + width: 100%; } + .body .urbit .slide .pair .image { + text-align: center; } + .body .urbit .slide .pair .image.left { + margin-bottom: 2rem; } + .body .urbit .slide .pair .image.right { + margin-top: 2rem; } } + +@media (max-width: 767px) { + #body.plan { + padding-top: 0; } } + +.body .plan .above { + background-color: #000; } + .body .plan .above .mono, + .body .plan .above h6 { + font-size: 1.2rem; } + .body .plan .above h6 { + padding-top: 0; } + .body .plan .above .mono { + font-weight: 200; } + .body .plan .above > .container { + padding-top: 6rem; + padding-bottom: 6rem; } + .body .plan .above .home { + border-radius: 50%; + height: 2.4rem; + width: 2.4rem; + border: 4px solid #fff; + display: inline-block; + float: left; + margin-left: -4.4rem; + margin-top: 1rem; } + .body .plan .above .edit { + background-color: transparent; + border: 0; + padding: 0; + font-weight: 500; + border-bottom: 3px solid #fff; + line-height: 1rem; + padding-top: 2rem; } + .body .plan .above .grid .tr .td { + font-family: 'scp'; } + .body .plan .above .grid .tr .td:first-child { + font-family: 'bau'; } + .body .plan .above input { + background-color: #373a3c; + border: none; } + .body .plan .above .panel a { + text-decoration: none; + border-bottom: 2px solid #55595c; + font-weight: 500; + color: #55595c; } + .body .plan .above .panel a:hover { + border-color: #fff; + color: #fff; } + +.body .plan .panel.stack { + padding-top: 0; + padding-bottom: 0; } + +.body .plan .plan.stack { + padding-top: 4rem; } + +.body .plan .pull-right { + float: right; } + +.body .plan .above, +.body .plan .above a { + color: #fff; } + +.body .plan .service { + white-space: nowrap; } + +.body .plan .service:before { + content: " "; + display: inline-block; + border-radius: 50%; + height: .5rem; + width: .5rem; + background-color: #64DE79; + margin-right: .6rem; } + +.body .plan .grid .td { + display: table-cell; } + +.body .plan .grid .tr .td:first-child { + min-width: 9rem; + margin-right: 2rem; + letter-spacing: 1px; + color: #B1B7BD; } + +.stream .mini-module { + margin-top: 3rem; } + +.stream h6 { + color: #55595c; + font-size: 1rem; + margin-bottom: 2rem; } + +@media (max-width: 767px) { + .grid .td { + display: block; } + .tr .td:first-child { + margin-top: 1rem; } } + +@keyframes menu-open { + 0% { + visibility: hidden; } + 1% { + visibility: visible; } + 100% { + visibility: visible; } } + +@keyframes menu-close { + 0% { + visibility: visible; } + 1% { + visibility: visible; } + 100% { + visibility: hidden; } } + +.menu { + padding-left: 0; + padding-right: 0; + position: fixed; + overflow: hidden; + z-index: 99; + margin-top: -3rem; } + .menu .contents { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + padding-bottom: 6rem; + position: relative; + left: -100%; + -webkit-transition: left 0.3s ease-in-out; + -moz-transition: left 0.3s ease-in-out; + transition: left 0.3s ease-in-out; } + .menu .close { + margin-top: -2rem; } + .menu .close:hover { + opacity: 1; } + .menu h2 { + font-size: 1rem; + padding-top: 3rem; } + .menu h2:first-of-type { + padding-top: 0; } + .menu label.sum { + font-family: 'scp'; + margin-left: 0.9375rem; + font-size: 1.2rem; } + +.menu.depth-1 .contents { + background-color: #f7f7f9; + border-left: 2px solid #B1B7BD; } + +.menu.depth-2 .contents { + background-color: #eceeef; + border-left: 2px solid #B1B7BD; } + +.menu.closed { + animation-name: menu-close; + animation-duration: .3s; + animation-fill-mode: forwards; } + +.menu.open { + animation-name: menu-open; + animation-duration: .3s; + animation-fill-mode: forwards; } + +.menu.open .contents { + left: 0; } + +@media (max-width: 767px) { + .menu { + height: 100%; + padding-left: 0; + padding-right: 2.8125rem; + border-left: 0; } + .menu .contents { + left: inherit; + top: -100%; + padding-top: 0.9375rem; + padding-bottom: 2.8125rem; + -webkit-transition: top 0.3s ease-in-out; + -moz-transition: top 0.3s ease-in-out; + transition: top 0.3s ease-in-out; } + .menu.depth-1 .contents, + .menu.depth-2 .contents { + border-left: 0; + border-bottom: 2px solid #B1B7BD; } + .menu .close { + margin-top: 0; } + .menu.open .contents { + top: 3rem; } } + +.list h1, +.list h1:first-of-type { + font-size: inherit; + font-weight: inherit; + padding-bottom: 0; + margin-bottom: 0; + line-height: 2rem; } + +.list h1.error { + font-size: 1.6rem; + font-weight: 500; } + +.list.children h1 { + font-weight: 500; + font-size: 1.4rem; } + +.body[data-path^='/docs'] .list, +.body[data-path^='/work'] .list { + list-style-type: none; + padding-left: 0; } + .body[data-path^='/docs'] .list a, + .body[data-path^='/docs'] .list h1, + .body[data-path^='/work'] .list a, + .body[data-path^='/work'] .list h1 { + color: #55595c; + font-weight: 500; + height: 2rem; + display: inline; + text-decoration: none; } + .body[data-path^='/docs'] .list h1, + .body[data-path^='/work'] .list h1 { + border-bottom: 2px solid #000; } + +.body[data-path^='/work'] .list.main a, +.body[data-path^='/work'] .list.main h1 { + font-size: 2rem; + line-height: 4rem; + height: 4rem; } + +.body[data-path^='/work'] .list.main h1 { + border-width: 4px; } + +.body[data-path^='/docs'] .list.runes a h1, +.body[data-path^='/docs'] .list.runes a div, +.body[data-path^='/docs'] .list.runes a p { + display: inline-block; } + +.body[data-path^='/docs'] .list.runes a p { + font-weight: 300; } + +.body[data-path^='/docs'] .list.runes a { + text-decoration: none; } + +.body[data-path^='/docs'] .list.runes a, +.body[data-path^='/docs'] .list.runes a h1 code { + color: #000; } + +.body[data-path^='/docs'] .list.runes a h1 { + display: block; + margin-bottom: .3rem; + height: 1.8rem; } + +.body[data-path^='/docs'] .list.runes a h1 code { + background-color: transparent; + font-weight: 500; + font-size: 1.2rem; + padding: 0; } + +.body[data-path^='/docs'] .list.runes a code { + background-color: #eceeef; } + +.body[data-path^='/docs'] .list.runes a code { + padding: .3rem; } + +.urbit ul.blog { + list-style-type: none; + padding-left: 0; } + .urbit ul.blog li { + margin-bottom: 12rem; } + .urbit ul.blog .btn { + padding: .3rem; + border: 3px solid #64DE79; + color: #64DE79; + text-decoration: none; + text-transform: none; } + .urbit ul.blog .btn:hover { + background-color: #64DE79; + color: #fff; } + +.kids.runes h1 { + padding-top: 3rem; } + +.kids.runes h2 { + font-size: 1.5rem; + margin-bottom: 1rem; } + +.kids.runes > div { + margin-top: 6rem; } + +.kids.runes > hr { + display: none; } + +.kids.runes > div p:first-of-type { + font-weight: 500; } + +.urbit .post .date, +.urbit.post .date { + font-family: 'scp'; + color: #B1B7BD; + font-size: .7rem; + font-weight: 200; } + +.urbit .post h1.title, +.urbit .post p.preview, +.urbit.post h1.title, +.urbit.post p.preview { + font-weight: 500; } + +.urbit .post h1.title, +.urbit.post h1.title { + font-size: 2rem; + padding-bottom: 0; } + +.urbit .post h1.title, +.urbit .post img, +.urbit.post h1.title, +.urbit.post img { + width: 100%; + margin-bottom: 2rem; } + +.urbit .post .date, +.urbit .post p.preview, +.urbit .post h3.author, +.urbit.post .date, +.urbit.post p.preview, +.urbit.post h3.author { + margin-bottom: .6rem; } + +.urbit .post h3.author, +.urbit.post h3.author { + padding-top: 0; + font-size: 1rem; + font-weight: 200; } + +.urbit .post h3:before, +.urbit.post h3:before { + content: "—"; + margin-right: .6rem; } + +.urbit.post .preview { + max-width: 75%; } + +.sections h1 { + font-size: 2rem; + color: #0500F0; } + +.sections h1:first-of-type { + padding-bottom: 0; } + +.sections li h1 { + font-size: 1.2rem; } + +.sections ul { + list-style-type: none; + font-weight: 500; + padding-left: 0; } + +.sections ul li, +.sections ul li a, +.sections ul li h1 span { + color: #55595c; + margin-bottom: 1rem; + line-height: 1.5rem; } + +.sections .kids > div { + display: inline-block; + vertical-align: top; + margin-bottom: 3rem; + float: none; } + +.sections .kids > div p { + font-weight: 500; } + +.sections hr { + display: none; } + +.lead-offset { + margin-left: 4rem; } + +@media (max-width: 991px) { + .lead-offset { + margin-left: 4rem; } } + +@media (max-width: 767px) { + .lead-offset { + margin-left: 0; } + .sections h1 { + font-size: 1.6rem; } } + +.add-comment { + width: 100%; + border-top: 3px dotted #f7f7f9; + margin-top: 6rem; } + .add-comment .btn { + font-size: .8rem; } + .add-comment textarea { + width: 66%; + display: block; + height: 12rem; + background-color: #f7f7f9; + border-bottom: 0; + margin-bottom: 2rem; + margin-top: 3rem; + padding: .3rem; } + +.comments { + padding-top: 3rem; } + .comments .comment { + margin-top: 2rem; } + .comments .comment > span { + font-family: 'scp'; + font-size: .8rem; + color: #B1B7BD; } + .comments .comment h2 { + padding-top: 0; + font-size: 1rem; + font-weight: 500; } + .comments .comment h2 code { + background-color: transparent; + padding: 0; } + .comments .comment p { + width: 66%; } + +@media (max-width: 767px) { + .add-comment textarea, + .comments .comment p { + width: 100%; } } +.CodeMirror { + height: 100% +} +.cm-s-default .cm-atom {color: #70f} +.cm-s-default .cm-operator {color: #097} +/*! + * Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com) + * Copyright 2011-2015 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;-webkit-text-size-adjust:100%;-ms-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{outline:0}a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}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{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-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-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*,::after,::before{text-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{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 td,.table-bordered th{border:1px solid #ddd!important}}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}@viewport{width:device-width}html{font-size:18px;-webkit-tap-highlight-color:transparent}body{font-family:bau,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.5;color:#373a3c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #b1b7bd}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}a{color:#000;text-decoration:underline}a:focus,a:hover{color:#000;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}pre{margin-top:0;margin-bottom:1rem}figure{margin:0 0 1rem}img{vertical-align:middle}[role=button]{cursor:pointer}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{background-color:transparent}caption{padding-top:.75rem;padding-bottom:.75rem;color:#b1b7bd;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select,textarea{margin:0;line-height:inherit;border-radius:0}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}input[type=search]{-webkit-box-sizing:inherit;box-sizing:inherit;-webkit-appearance:none}output{display:inline-block}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.5rem}h5{font-size:1rem}h6{font-size:1rem}.h1{font-size:2.5rem}.h2{font-size:2rem}.h3{font-size:1.5rem}.h4{font-size:1.5rem}.h5{font-size:1rem}.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300}.display-2{font-size:5.5rem;font-weight:300}.display-3{font-size:4.5rem;font-weight:300}.display-4{font-size:3.5rem;font-weight:300}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:5px}.dl-horizontal{margin-right:-1.875rem;margin-left:-1.875rem}.dl-horizontal::after{display:table;clear:both;content:""}.initialism{font-size:90%;text-transform:uppercase}.blockquote{padding:.5rem 1rem;margin-bottom:1rem;font-size:1.25rem;border-left:.25rem solid #eceeef}.blockquote-footer{display:block;font-size:80%;line-height:1.5;color:#b1b7bd}.blockquote-footer::before{content:"\2014 \00A0"}.blockquote-reverse{padding-right:1rem;padding-left:0;text-align:right;border-right:.25rem solid #eceeef;border-left:0}.blockquote-reverse .blockquote-footer::before{content:""}.blockquote-reverse .blockquote-footer::after{content:"\00A0 \2014"}.carousel-inner>.carousel-item>a>img,.carousel-inner>.carousel-item>img,.img-fluid{display:block;max-width:100%;height:auto}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:.25rem;line-height:1.5;background-color:#fff;border:1px solid #ddd;border-radius:.25rem;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#b1b7bd}code,kbd,pre,samp{font-family:scp,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{padding:.2rem .4rem;font-size:90%;color:#2f2f2f;background-color:#f7f7f7}kbd{padding:.2rem .4rem;font-size:90%;color:#fff;background-color:#333}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;margin-top:0;margin-bottom:1rem;font-size:90%;line-height:1.5;color:#373a3c}pre code{padding:0;font-size:inherit;color:inherit;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:.9375rem;padding-left:.9375rem;margin-right:auto;margin-left:auto}.container::after{display:table;clear:both;content:""}@media (min-width:544px){.container{max-width:576px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:940px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{padding-right:.9375rem;padding-left:.9375rem;margin-right:auto;margin-left:auto}.container-fluid::after{display:table;clear:both;content:""}.row{margin-right:-.9375rem;margin-left:-.9375rem}.row::after{display:table;clear:both;content:""}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:.9375rem;padding-left:.9375rem}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.333333%}.col-xs-2{width:16.666667%}.col-xs-3{width:25%}.col-xs-4{width:33.333333%}.col-xs-5{width:41.666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333%}.col-xs-8{width:66.666667%}.col-xs-9{width:75%}.col-xs-10{width:83.333333%}.col-xs-11{width:91.666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.333333%}.col-xs-pull-2{right:16.666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.333333%}.col-xs-pull-5{right:41.666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.333333%}.col-xs-pull-8{right:66.666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.333333%}.col-xs-pull-11{right:91.666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.333333%}.col-xs-push-2{left:16.666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.333333%}.col-xs-push-5{left:41.666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.333333%}.col-xs-push-8{left:66.666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.333333%}.col-xs-push-11{left:91.666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.333333%}.col-xs-offset-2{margin-left:16.666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.333333%}.col-xs-offset-5{margin-left:41.666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.333333%}.col-xs-offset-8{margin-left:66.666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.333333%}.col-xs-offset-11{margin-left:91.666667%}.col-xs-offset-12{margin-left:100%}@media (min-width:544px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333%}.col-sm-2{width:16.666667%}.col-sm-3{width:25%}.col-sm-4{width:33.333333%}.col-sm-5{width:41.666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333%}.col-sm-8{width:66.666667%}.col-sm-9{width:75%}.col-sm-10{width:83.333333%}.col-sm-11{width:91.666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.333333%}.col-sm-pull-2{right:16.666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.333333%}.col-sm-pull-5{right:41.666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333%}.col-sm-pull-8{right:66.666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.333333%}.col-sm-pull-11{right:91.666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.333333%}.col-sm-push-2{left:16.666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.333333%}.col-sm-push-5{left:41.666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333%}.col-sm-push-8{left:66.666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.333333%}.col-sm-push-11{left:91.666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.333333%}.col-sm-offset-2{margin-left:16.666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.333333%}.col-sm-offset-5{margin-left:41.666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333%}.col-sm-offset-8{margin-left:66.666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.333333%}.col-sm-offset-11{margin-left:91.666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width:768px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333%}.col-md-2{width:16.666667%}.col-md-3{width:25%}.col-md-4{width:33.333333%}.col-md-5{width:41.666667%}.col-md-6{width:50%}.col-md-7{width:58.333333%}.col-md-8{width:66.666667%}.col-md-9{width:75%}.col-md-10{width:83.333333%}.col-md-11{width:91.666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333%}.col-md-pull-2{right:16.666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.333333%}.col-md-pull-5{right:41.666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333%}.col-md-pull-8{right:66.666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.333333%}.col-md-pull-11{right:91.666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333%}.col-md-push-2{left:16.666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.333333%}.col-md-push-5{left:41.666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333%}.col-md-push-8{left:66.666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.333333%}.col-md-push-11{left:91.666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333%}.col-md-offset-2{margin-left:16.666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.333333%}.col-md-offset-5{margin-left:41.666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333%}.col-md-offset-8{margin-left:66.666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.333333%}.col-md-offset-11{margin-left:91.666667%}.col-md-offset-12{margin-left:100%}}@media (min-width:992px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333%}.col-lg-2{width:16.666667%}.col-lg-3{width:25%}.col-lg-4{width:33.333333%}.col-lg-5{width:41.666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333%}.col-lg-8{width:66.666667%}.col-lg-9{width:75%}.col-lg-10{width:83.333333%}.col-lg-11{width:91.666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333%}.col-lg-pull-2{right:16.666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.333333%}.col-lg-pull-5{right:41.666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333%}.col-lg-pull-8{right:66.666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.333333%}.col-lg-pull-11{right:91.666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333%}.col-lg-push-2{left:16.666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.333333%}.col-lg-push-5{left:41.666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333%}.col-lg-push-8{left:66.666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.333333%}.col-lg-push-11{left:91.666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333%}.col-lg-offset-2{margin-left:16.666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.333333%}.col-lg-offset-5{margin-left:41.666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333%}.col-lg-offset-8{margin-left:66.666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.333333%}.col-lg-offset-11{margin-left:91.666667%}.col-lg-offset-12{margin-left:100%}}@media (min-width:1200px){.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{float:left}.col-xl-1{width:8.333333%}.col-xl-2{width:16.666667%}.col-xl-3{width:25%}.col-xl-4{width:33.333333%}.col-xl-5{width:41.666667%}.col-xl-6{width:50%}.col-xl-7{width:58.333333%}.col-xl-8{width:66.666667%}.col-xl-9{width:75%}.col-xl-10{width:83.333333%}.col-xl-11{width:91.666667%}.col-xl-12{width:100%}.col-xl-pull-0{right:auto}.col-xl-pull-1{right:8.333333%}.col-xl-pull-2{right:16.666667%}.col-xl-pull-3{right:25%}.col-xl-pull-4{right:33.333333%}.col-xl-pull-5{right:41.666667%}.col-xl-pull-6{right:50%}.col-xl-pull-7{right:58.333333%}.col-xl-pull-8{right:66.666667%}.col-xl-pull-9{right:75%}.col-xl-pull-10{right:83.333333%}.col-xl-pull-11{right:91.666667%}.col-xl-pull-12{right:100%}.col-xl-push-0{left:auto}.col-xl-push-1{left:8.333333%}.col-xl-push-2{left:16.666667%}.col-xl-push-3{left:25%}.col-xl-push-4{left:33.333333%}.col-xl-push-5{left:41.666667%}.col-xl-push-6{left:50%}.col-xl-push-7{left:58.333333%}.col-xl-push-8{left:66.666667%}.col-xl-push-9{left:75%}.col-xl-push-10{left:83.333333%}.col-xl-push-11{left:91.666667%}.col-xl-push-12{left:100%}.col-xl-offset-0{margin-left:0}.col-xl-offset-1{margin-left:8.333333%}.col-xl-offset-2{margin-left:16.666667%}.col-xl-offset-3{margin-left:25%}.col-xl-offset-4{margin-left:33.333333%}.col-xl-offset-5{margin-left:41.666667%}.col-xl-offset-6{margin-left:50%}.col-xl-offset-7{margin-left:58.333333%}.col-xl-offset-8{margin-left:66.666667%}.col-xl-offset-9{margin-left:75%}.col-xl-offset-10{margin-left:83.333333%}.col-xl-offset-11{margin-left:91.666667%}.col-xl-offset-12{margin-left:100%}}.table{width:100%;max-width:100%;margin-bottom:1rem}.table td,.table th{padding:.75rem;line-height:1.5;vertical-align:top;border-top:1px solid #eceeef}.table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.table tbody+tbody{border-top:2px solid #eceeef}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #eceeef}.table-bordered td,.table-bordered th{border:1px solid #eceeef}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover tbody tr:hover{background-color:#f5f5f5}.table-active,.table-active>td,.table-active>th{background-color:#f5f5f5}.table-hover .table-active:hover{background-color:#e8e8e8}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#e8e8e8}.table-success,.table-success>td,.table-success>th{background-color:#dff0d8}.table-hover .table-success:hover{background-color:#d0e9c6}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#d0e9c6}.table-info,.table-info>td,.table-info>th{background-color:#d9edf7}.table-hover .table-info:hover{background-color:#c4e3f3}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c4e3f3}.table-warning,.table-warning>td,.table-warning>th{background-color:#fcf8e3}.table-hover .table-warning:hover{background-color:#faf2cc}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#faf2cc}.table-danger,.table-danger>td,.table-danger>th{background-color:#f2dede}.table-hover .table-danger:hover{background-color:#ebcccc}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ebcccc}.table-responsive{display:block;width:100%;min-height:.01%;overflow-x:auto}.thead-inverse th{color:#fff;background-color:#373a3c}.thead-default th{color:#55595c;background-color:#eceeef}.table-inverse{color:#eceeef;background-color:#373a3c}.table-inverse.table-bordered{border:0}.table-inverse td,.table-inverse th,.table-inverse thead th{border-color:#55595c}.table-reflow thead{float:left}.table-reflow tbody{display:block;white-space:nowrap}.table-reflow td,.table-reflow th{border-top:1px solid #eceeef;border-left:1px solid #eceeef}.table-reflow td:last-child,.table-reflow th:last-child{border-right:1px solid #eceeef}.table-reflow tbody:last-child tr:last-child td,.table-reflow tbody:last-child tr:last-child th,.table-reflow tfoot:last-child tr:last-child td,.table-reflow tfoot:last-child tr:last-child th,.table-reflow thead:last-child tr:last-child td,.table-reflow thead:last-child tr:last-child th{border-bottom:1px solid #eceeef}.table-reflow tr{float:left}.table-reflow tr td,.table-reflow tr th{display:block!important;border:1px solid #eceeef}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#55595c;background-color:#fff;background-image:none;border:1px solid #ccc}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{border-color:#66afe9;outline:0}.form-control::-webkit-input-placeholder{color:#999;opacity:1}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999;opacity:1}.form-control::placeholder{color:#999;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#eceeef;opacity:1}.form-control:disabled{cursor:not-allowed}.form-control-file,.form-control-range{display:block}.form-control-label{padding:.375rem .75rem;margin-bottom:0}@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:2.25rem}.input-group-sm input[type=date].form-control,.input-group-sm input[type=time].form-control,.input-group-sm input[type=datetime-local].form-control,.input-group-sm input[type=month].form-control,input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:1.8625rem}.input-group-lg input[type=date].form-control,.input-group-lg input[type=time].form-control,.input-group-lg input[type=datetime-local].form-control,.input-group-lg input[type=month].form-control,input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:3.166667rem}}.form-control-static{min-height:2.25rem;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0}.form-control-static.form-control-lg,.form-control-static.form-control-sm,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{padding:.275rem .75rem;font-size:.875rem;line-height:1.5}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{padding:.75rem 1.25rem;font-size:1.25rem;line-height:1.333333}.form-group{margin-bottom:1rem}.checkbox,.radio{position:relative;display:block;margin-bottom:.75rem}.checkbox label,.radio label{padding-left:1.25rem;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox label input:only-child,.radio label input:only-child{position:static}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:.25rem;margin-left:-1.25rem}.checkbox+.checkbox,.radio+.radio{margin-top:-.25rem}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:1.25rem;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:.75rem}input[type=checkbox].disabled,input[type=checkbox]:disabled,input[type=radio].disabled,input[type=radio]:disabled{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label{cursor:not-allowed}.form-control-danger,.form-control-success,.form-control-warning{padding-right:2.25rem;background-repeat:no-repeat;background-position:center right .5625rem;-webkit-background-size:1.4625rem 1.4625rem;background-size:1.4625rem 1.4625rem}.has-success .checkbox,.has-success .checkbox-inline,.has-success .form-control-label,.has-success .radio,.has-success .radio-inline,.has-success .text-help,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#64de79}.has-success .form-control{border-color:#64de79}.has-success .input-group-addon{color:#64de79;background-color:#fff;border-color:#64de79}.has-success .form-control-feedback{color:#64de79}.has-success .form-control-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==)}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .form-control-label,.has-warning .radio,.has-warning .radio-inline,.has-warning .text-help,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#a100fe}.has-warning .form-control{border-color:#a100fe}.has-warning .input-group-addon{color:#a100fe;background-color:#eccbff;border-color:#a100fe}.has-warning .form-control-feedback{color:#a100fe}.has-warning .form-control-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+)}.has-danger .checkbox,.has-danger .checkbox-inline,.has-danger .form-control-label,.has-danger .radio,.has-danger .radio-inline,.has-danger .text-help,.has-danger.checkbox label,.has-danger.checkbox-inline label,.has-danger.radio label,.has-danger.radio-inline label{color:#ff0808}.has-danger .form-control{border-color:#ff0808}.has-danger .input-group-addon{color:#ff0808;background-color:#ffd4d4;border-color:#ff0808}.has-danger .form-control-feedback{color:#ff0808}.has-danger .form-control-danger{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=)}@media (min-width:544px){.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 .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .form-control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.btn{display:inline-block;padding:.375rem 1rem;font-size:1rem;font-weight:400;line-height:1.5;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{text-decoration:none}.btn.focus{text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0}.btn.disabled,.btn:disabled{cursor:not-allowed;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#000;border-color:#000}.btn-primary:hover{color:#fff;background-color:#000;border-color:#000}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#000;border-color:#000}.btn-primary.active,.btn-primary:active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#000;background-image:none;border-color:#000}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle.focus,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#000;border-color:#000}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary:disabled.focus,.btn-primary:disabled:focus{background-color:#000;border-color:#000}.btn-primary.disabled:hover,.btn-primary:disabled:hover{background-color:#000;border-color:#000}.btn-secondary{color:#373a3c;background-color:#fff;border-color:#ccc}.btn-secondary:hover{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary.focus,.btn-secondary:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary.active,.btn-secondary:active,.open>.btn-secondary.dropdown-toggle{color:#373a3c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-secondary.active.focus,.btn-secondary.active:focus,.btn-secondary.active:hover,.btn-secondary:active.focus,.btn-secondary:active:focus,.btn-secondary:active:hover,.open>.btn-secondary.dropdown-toggle.focus,.open>.btn-secondary.dropdown-toggle:focus,.open>.btn-secondary.dropdown-toggle:hover{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.btn-secondary.disabled.focus,.btn-secondary.disabled:focus,.btn-secondary:disabled.focus,.btn-secondary:disabled:focus{background-color:#fff;border-color:#ccc}.btn-secondary.disabled:hover,.btn-secondary:disabled:hover{background-color:#fff;border-color:#ccc}.btn-info{color:#fff;background-color:#0500f0;border-color:#0500f0}.btn-info:hover{color:#fff;background-color:#0400bd;border-color:#0400b3}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#0400bd;border-color:#0400b3}.btn-info.active,.btn-info:active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#0400bd;background-image:none;border-color:#0400b3}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle.focus,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#030099;border-color:#020071}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info:disabled.focus,.btn-info:disabled:focus{background-color:#0500f0;border-color:#0500f0}.btn-info.disabled:hover,.btn-info:disabled:hover{background-color:#0500f0;border-color:#0500f0}.btn-success{color:#fff;background-color:#64de79;border-color:#64de79}.btn-success:hover{color:#fff;background-color:#3ad555;border-color:#32d34d}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#3ad555;border-color:#32d34d}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#3ad555;background-image:none;border-color:#32d34d}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle.focus,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#29c244;border-color:#22a038}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success:disabled.focus,.btn-success:disabled:focus{background-color:#64de79;border-color:#64de79}.btn-success.disabled:hover,.btn-success:disabled:hover{background-color:#64de79;border-color:#64de79}.btn-warning{color:#fff;background-color:#a100fe;border-color:#a100fe}.btn-warning:hover{color:#fff;background-color:#8100cb;border-color:#7a00c1}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#8100cb;border-color:#7a00c1}.btn-warning.active,.btn-warning:active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#8100cb;background-image:none;border-color:#7a00c1}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.btn-warning.dropdown-toggle.focus,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle:hover{color:#fff;background-color:#6a00a7;border-color:#50007f}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning:disabled.focus,.btn-warning:disabled:focus{background-color:#a100fe;border-color:#a100fe}.btn-warning.disabled:hover,.btn-warning:disabled:hover{background-color:#a100fe;border-color:#a100fe}.btn-danger{color:#fff;background-color:#ff0808;border-color:#ff0808}.btn-danger:hover{color:#fff;background-color:#d40000;border-color:#ca0000}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#d40000;border-color:#ca0000}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#d40000;background-image:none;border-color:#ca0000}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle.focus,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#b00000;border-color:#800}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger:disabled.focus,.btn-danger:disabled:focus{background-color:#ff0808;border-color:#ff0808}.btn-danger.disabled:hover,.btn-danger:disabled:hover{background-color:#ff0808;border-color:#ff0808}.btn-primary-outline{color:#000;background-color:transparent;background-image:none;border-color:#000}.btn-primary-outline.active,.btn-primary-outline.focus,.btn-primary-outline:active,.btn-primary-outline:focus,.open>.btn-primary-outline.dropdown-toggle{color:#fff;background-color:#000;border-color:#000}.btn-primary-outline:hover{color:#fff;background-color:#000;border-color:#000}.btn-primary-outline.disabled.focus,.btn-primary-outline.disabled:focus,.btn-primary-outline:disabled.focus,.btn-primary-outline:disabled:focus{border-color:#333}.btn-primary-outline.disabled:hover,.btn-primary-outline:disabled:hover{border-color:#333}.btn-secondary-outline{color:#ccc;background-color:transparent;background-image:none;border-color:#ccc}.btn-secondary-outline.active,.btn-secondary-outline.focus,.btn-secondary-outline:active,.btn-secondary-outline:focus,.open>.btn-secondary-outline.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.btn-secondary-outline:hover{color:#fff;background-color:#ccc;border-color:#ccc}.btn-secondary-outline.disabled.focus,.btn-secondary-outline.disabled:focus,.btn-secondary-outline:disabled.focus,.btn-secondary-outline:disabled:focus{border-color:#fff}.btn-secondary-outline.disabled:hover,.btn-secondary-outline:disabled:hover{border-color:#fff}.btn-info-outline{color:#0500f0;background-color:transparent;background-image:none;border-color:#0500f0}.btn-info-outline.active,.btn-info-outline.focus,.btn-info-outline:active,.btn-info-outline:focus,.open>.btn-info-outline.dropdown-toggle{color:#fff;background-color:#0500f0;border-color:#0500f0}.btn-info-outline:hover{color:#fff;background-color:#0500f0;border-color:#0500f0}.btn-info-outline.disabled.focus,.btn-info-outline.disabled:focus,.btn-info-outline:disabled.focus,.btn-info-outline:disabled:focus{border-color:#5b57ff}.btn-info-outline.disabled:hover,.btn-info-outline:disabled:hover{border-color:#5b57ff}.btn-success-outline{color:#64de79;background-color:transparent;background-image:none;border-color:#64de79}.btn-success-outline.active,.btn-success-outline.focus,.btn-success-outline:active,.btn-success-outline:focus,.open>.btn-success-outline.dropdown-toggle{color:#fff;background-color:#64de79;border-color:#64de79}.btn-success-outline:hover{color:#fff;background-color:#64de79;border-color:#64de79}.btn-success-outline.disabled.focus,.btn-success-outline.disabled:focus,.btn-success-outline:disabled.focus,.btn-success-outline:disabled:focus{border-color:#b8f0c2}.btn-success-outline.disabled:hover,.btn-success-outline:disabled:hover{border-color:#b8f0c2}.btn-warning-outline{color:#a100fe;background-color:transparent;background-image:none;border-color:#a100fe}.btn-warning-outline.active,.btn-warning-outline.focus,.btn-warning-outline:active,.btn-warning-outline:focus,.open>.btn-warning-outline.dropdown-toggle{color:#fff;background-color:#a100fe;border-color:#a100fe}.btn-warning-outline:hover{color:#fff;background-color:#a100fe;border-color:#a100fe}.btn-warning-outline.disabled.focus,.btn-warning-outline.disabled:focus,.btn-warning-outline:disabled.focus,.btn-warning-outline:disabled:focus{border-color:#c765ff}.btn-warning-outline.disabled:hover,.btn-warning-outline:disabled:hover{border-color:#c765ff}.btn-danger-outline{color:#ff0808;background-color:transparent;background-image:none;border-color:#ff0808}.btn-danger-outline.active,.btn-danger-outline.focus,.btn-danger-outline:active,.btn-danger-outline:focus,.open>.btn-danger-outline.dropdown-toggle{color:#fff;background-color:#ff0808;border-color:#ff0808}.btn-danger-outline:hover{color:#fff;background-color:#ff0808;border-color:#ff0808}.btn-danger-outline.disabled.focus,.btn-danger-outline.disabled:focus,.btn-danger-outline:disabled.focus,.btn-danger-outline:disabled:focus{border-color:#ff6e6e}.btn-danger-outline.disabled:hover,.btn-danger-outline:disabled:hover{border-color:#ff6e6e}.btn-link{font-weight:400;color:#000;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link:disabled{background-color:transparent}.btn-link,.btn-link:active,.btn-link:focus{border-color:transparent}.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#000;text-decoration:underline;background-color:transparent}.btn-link:disabled:focus,.btn-link:disabled:hover{color:#b1b7bd;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:.75rem 1.25rem;font-size:1.25rem;line-height:1.333333}.btn-group-sm>.btn,.btn-sm{padding:.25rem .75rem;font-size:.875rem;line-height:1.5}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height;-o-transition-property:height;transition-property:height}.dropdown,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-right:.25rem;margin-left:.25rem;vertical-align:middle;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-left:.3em solid transparent}.dropdown-toggle:focus{outline:0}.dropup .dropdown-toggle::after{border-top:0;border-bottom:.3em solid}.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;font-size:1rem;color:#373a3c;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.15)}.dropdown-divider{height:1px;margin:.5rem 0;overflow:hidden;background-color:#e5e5e5}.dropdown-item{display:block;width:100%;padding:3px 20px;clear:both;font-weight:400;line-height:1.5;color:#373a3c;text-align:inherit;white-space:nowrap;background:0 0;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#2b2d2f;text-decoration:none;background-color:#f5f5f5}.dropdown-item.active,.dropdown-item.active:focus,.dropdown-item.active:hover{color:#fff;text-decoration:none;background-color:#000;outline:0}.dropdown-item.disabled,.dropdown-item.disabled:focus,.dropdown-item.disabled:hover{color:#b1b7bd}.dropdown-item.disabled:focus,.dropdown-item.disabled:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:"progid:DXImageTransform.Microsoft.gradient(enabled = false)"}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:.875rem;line-height:1.5;color:#b1b7bd;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:.3em solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:2}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{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::after{display:table;clear:both;content:""}.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-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group-lg.btn-group>.btn+.dropdown-toggle,.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn .caret{margin-left:0}.btn-group-lg>.btn .caret,.btn-lg .caret{border-width:.3em .3em 0;border-bottom-width:0}.dropup .btn-group-lg>.btn .caret,.dropup .btn-lg .caret{border-width:0 .3em .3em}.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::after{display:table;clear:both;content:""}.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:.25rem}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:.25rem}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:active,.input-group .form-control:focus,.input-group .form-control:hover{z-index:3}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1;color:#55595c;text-align:center;background-color:#eceeef;border:1px solid #ccc}.input-group-addon.form-control-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:.275rem .75rem;font-size:.875rem}.input-group-addon.form-control-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:.75rem 1.25rem;font-size:1.25rem}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon:first-child{border-right: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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:3}.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}.input-group-btn:last-child>.btn-group:active,.input-group-btn:last-child>.btn-group:focus,.input-group-btn:last-child>.btn-group:hover,.input-group-btn:last-child>.btn:active,.input-group-btn:last-child>.btn:focus,.input-group-btn:last-child>.btn:hover{z-index:3}.c-input{position:relative;display:inline;padding-left:1.5rem;color:#555;cursor:pointer}.c-input>input{position:absolute;z-index:-1;opacity:0}.c-input>input:checked~.c-indicator{color:#fff;background-color:#0074d9}.c-input>input:focus~.c-indicator{-webkit-box-shadow:0 0 0 .075rem #fff,0 0 0 .2rem #0074d9;box-shadow:0 0 0 .075rem #fff,0 0 0 .2rem #0074d9}.c-input>input:active~.c-indicator{color:#fff;background-color:#84c6ff}.c-input+.c-input{margin-left:1rem}.c-indicator{position:absolute;top:0;left:0;display:block;width:1rem;height:1rem;font-size:65%;line-height:1rem;color:#eee;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#eee;background-repeat:no-repeat;background-position:center center;-webkit-background-size:50% 50%;background-size:50% 50%}.c-checkbox .c-indicator{border-radius:.25rem}.c-checkbox input:checked~.c-indicator{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTYuNCwxTDUuNywxLjdMMi45LDQuNUwyLjEsMy43TDEuNCwzTDAsNC40bDAuNywwLjdsMS41LDEuNWwwLjcsMC43bDAuNy0wLjdsMy41LTMuNWwwLjctMC43TDYuNCwxTDYuNCwxeiINCgkvPg0KPC9zdmc+DQo=)}.c-checkbox input:indeterminate~.c-indicator{background-color:#0074d9;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOHB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDggOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOCA4IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0wLDN2Mmg4VjNIMHoiLz4NCjwvc3ZnPg0K)}.c-radio .c-indicator{border-radius:50%}.c-radio input:checked~.c-indicator{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQsMUMyLjMsMSwxLDIuMywxLDRzMS4zLDMsMywzczMtMS4zLDMtM1M1LjcsMSw0LDF6Ii8+DQo8L3N2Zz4NCg==)}.c-inputs-stacked .c-input{display:inline}.c-inputs-stacked .c-input::after{display:block;margin-bottom:.25rem;content:""}.c-inputs-stacked .c-input+.c-input{margin-left:0}.c-select{display:inline-block;max-width:100%;-webkit-appearance:none;padding:.375rem 1.75rem .375rem .75rem;padding-right:.75rem\9;color:#55595c;vertical-align:middle;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC) no-repeat right .75rem center;background-image:none\9;-webkit-background-size:8px 10px;background-size:8px 10px;border:1px solid #ccc;-moz-appearance:none}.c-select:focus{border-color:#51a7e8;outline:0}.c-select::-ms-expand{opacity:0}.c-select-sm{padding-top:3px;padding-bottom:3px;font-size:12px}.c-select-sm:not([multiple]){height:26px;min-height:26px}.file{position:relative;display:inline-block;height:2.5rem;cursor:pointer}.file input{min-width:14rem;margin:0;filter:alpha(opacity=0);opacity:0}.file-custom{position:absolute;top:0;right:0;left:0;z-index:5;height:2.5rem;padding:.5rem 1rem;line-height:1.5;color:#555;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;border:1px solid #ddd;border-radius:.25rem}.file-custom::after{content:"Choose file..."}.file-custom::before{position:absolute;top:-.075rem;right:-.075rem;bottom:-.075rem;z-index:6;display:block;height:2.5rem;padding:.5rem 1rem;line-height:1.5;color:#555;content:"Browse";background-color:#eee;border:1px solid #ddd;border-radius:0 .25rem .25rem 0}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:inline-block}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#b1b7bd}.nav-link.disabled,.nav-link.disabled:focus,.nav-link.disabled:hover{color:#b1b7bd;cursor:not-allowed;background-color:transparent}.nav-inline .nav-item{display:inline-block}.nav-inline .nav-item+.nav-item,.nav-inline .nav-link+.nav-link{margin-left:1rem}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs::after{display:table;clear:both;content:""}.nav-tabs .nav-item{float:left;margin-bottom:-1px}.nav-tabs .nav-item+.nav-item{margin-left:.2rem}.nav-tabs .nav-link{display:block;padding:.5em 1em;border:1px solid transparent}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#eceeef #eceeef #ddd}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link.disabled:focus,.nav-tabs .nav-link.disabled:hover{color:#b1b7bd;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover,.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover{color:#55595c;background-color:#fff;border-color:#ddd #ddd transparent}.nav-pills::after{display:table;clear:both;content:""}.nav-pills .nav-item{float:left}.nav-pills .nav-item+.nav-item{margin-left:.2rem}.nav-pills .nav-link{display:block;padding:.5em 1em}.nav-pills .nav-item.open .nav-link,.nav-pills .nav-item.open .nav-link:focus,.nav-pills .nav-item.open .nav-link:hover,.nav-pills .nav-link.active,.nav-pills .nav-link.active:focus,.nav-pills .nav-link.active:hover{color:#fff;cursor:default;background-color:#000}.nav-stacked .nav-item{display:block;float:none}.nav-stacked .nav-item+.nav-item{margin-top:.2rem;margin-left:0}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px}.navbar{position:relative;padding:.5rem 1rem}.navbar::after{display:table;clear:both;content:""}.navbar-full{z-index:1000}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar-sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1030;width:100%}.navbar-brand{float:left;padding-top:.25rem;padding-bottom:.25rem;margin-right:1rem;font-size:1.25rem}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}.navbar-divider{float:left;width:1px;padding-top:.425rem;padding-bottom:.425rem;margin-right:1rem;margin-left:1rem;overflow:hidden}.navbar-divider::before{content:"\00a0"}.navbar-toggler{padding:.5rem .75rem;font-size:1.25rem;line-height:1;background:0 0;border:1px solid transparent}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}@media (min-width:544px){.navbar-toggleable-xs{display:block!important}}@media (min-width:768px){.navbar-toggleable-sm{display:block!important}}@media (min-width:992px){.navbar-toggleable-md{display:block!important}}.navbar-nav .nav-item{float:left}.navbar-nav .nav-link{display:block;padding-top:.425rem;padding-bottom:.425rem}.navbar-nav .nav-link+.nav-link{margin-left:1rem}.navbar-nav .nav-item+.nav-item{margin-left:1rem}.navbar-light .navbar-brand{color:rgba(0,0,0,.8)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.8)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.6)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .active>.nav-link:focus,.navbar-light .navbar-nav .active>.nav-link:hover,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.active:focus,.navbar-light .navbar-nav .nav-link.active:hover,.navbar-light .navbar-nav .nav-link.open,.navbar-light .navbar-nav .nav-link.open:focus,.navbar-light .navbar-nav .nav-link.open:hover,.navbar-light .navbar-nav .open>.nav-link,.navbar-light .navbar-nav .open>.nav-link:focus,.navbar-light .navbar-nav .open>.nav-link:hover{color:rgba(0,0,0,.8)}.navbar-light .navbar-divider{background-color:rgba(0,0,0,.075)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .active>.nav-link:focus,.navbar-dark .navbar-nav .active>.nav-link:hover,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.active:focus,.navbar-dark .navbar-nav .nav-link.active:hover,.navbar-dark .navbar-nav .nav-link.open,.navbar-dark .navbar-nav .nav-link.open:focus,.navbar-dark .navbar-nav .nav-link.open:hover,.navbar-dark .navbar-nav .open>.nav-link,.navbar-dark .navbar-nav .open>.nav-link:focus,.navbar-dark .navbar-nav .open>.nav-link:hover{color:#fff}.navbar-dark .navbar-divider{background-color:rgba(255,255,255,.075)}.card{position:relative;display:block;margin-bottom:.75rem;background-color:#fff;border:1px solid #e5e5e5}.card-block{padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;background-color:#f5f5f5;border-bottom:1px solid #e5e5e5}.card-footer{padding:.75rem 1.25rem;background-color:#f5f5f5;border-top:1px solid #e5e5e5}.card-primary{background-color:#000;border-color:#000}.card-success{background-color:#64de79;border-color:#64de79}.card-info{background-color:#0500f0;border-color:#0500f0}.card-warning{background-color:#a100fe;border-color:#a100fe}.card-danger{background-color:#ff0808;border-color:#ff0808}.card-primary-outline{background-color:transparent;border-color:#000}.card-secondary-outline{background-color:transparent;border-color:#ccc}.card-info-outline{background-color:transparent;border-color:#0500f0}.card-success-outline{background-color:transparent;border-color:#64de79}.card-warning-outline{background-color:transparent;border-color:#a100fe}.card-danger-outline{background-color:transparent;border-color:#ff0808}.card-inverse .card-footer,.card-inverse .card-header{border-bottom:1px solid rgba(255,255,255,.2)}.card-inverse .card-blockquote,.card-inverse .card-footer,.card-inverse .card-header,.card-inverse .card-title{color:#fff}.card-inverse .card-blockquote>footer,.card-inverse .card-link,.card-inverse .card-text{color:rgba(255,255,255,.65)}.card-inverse .card-link:focus,.card-inverse .card-link:hover{color:#fff}.card-blockquote{padding:0;margin-bottom:0;border-left:0}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}@media (min-width:544px){.card-deck{display:table;table-layout:fixed;border-spacing:1.25rem 0}.card-deck .card{display:table-cell;width:1%;vertical-align:top}.card-deck-wrapper{margin-right:-1.25rem;margin-left:-1.25rem}}@media (min-width:544px){.card-group{display:table;width:100%;table-layout:fixed}.card-group .card{display:table-cell;vertical-align:top}.card-group .card+.card{margin-left:0;border-left:0}}@media (min-width:544px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#eceeef}.breadcrumb::after{display:table;clear:both;content:""}.breadcrumb>li{float:left}.breadcrumb>li+li::before{padding-right:.5rem;padding-left:.5rem;color:#b1b7bd;content:"/"}.breadcrumb>.active{color:#b1b7bd}.pagination{display:inline-block;padding-left:0;margin-top:1rem;margin-bottom:1rem}.page-item{display:inline}.page-item:first-child .page-link{margin-left:0}.page-item.active .page-link,.page-item.active .page-link:focus,.page-item.active .page-link:hover{z-index:2;color:#fff;cursor:default;background-color:#000;border-color:#000}.page-item.disabled .page-link,.page-item.disabled .page-link:focus,.page-item.disabled .page-link:hover{color:#b1b7bd;cursor:not-allowed;background-color:#fff;border-color:#ddd}.page-link{position:relative;float:left;padding:.5rem .75rem;margin-left:-1px;line-height:1.5;color:#000;text-decoration:none;background-color:#fff;border:1px solid #ddd}.page-link:focus,.page-link:hover{color:#000;background-color:#eceeef;border-color:#ddd}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.333333}.pagination-sm .page-link{padding:.275rem .75rem;font-size:.875rem;line-height:1.5}.pager{padding-left:0;margin-top:1rem;margin-bottom:1rem;text-align:center;list-style:none}.pager::after{display:table;clear:both;content:""}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eceeef}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover{color:#b1b7bd;cursor:not-allowed;background-color:#fff}.pager .disabled>span{color:#b1b7bd;cursor:not-allowed;background-color:#fff}.pager-next>a,.pager-next>span{float:right}.pager-prev>a,.pager-prev>span{float:left}.label{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-pill{padding-right:.6em;padding-left:.6em}.label-default{background-color:#b1b7bd}.label-default[href]:focus,.label-default[href]:hover{background-color:#959ea6}.label-primary{background-color:#000}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#000}.label-success{background-color:#64de79}.label-success[href]:focus,.label-success[href]:hover{background-color:#3ad555}.label-info{background-color:#0500f0}.label-info[href]:focus,.label-info[href]:hover{background-color:#0400bd}.label-warning{background-color:#a100fe}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#8100cb}.label-danger{background-color:#ff0808}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#d40000}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#eceeef}@media (min-width:544px){.jumbotron{padding:4rem 2rem}}.jumbotron-hr{border-top-color:#d0d5d8}.jumbotron-fluid{padding-right:0;padding-left:0}.alert{padding:15px;margin-bottom:1rem;border:1px solid transparent}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:35px}.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d0e9c6}.alert-success hr{border-top-color:#c1e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bcdff1}.alert-info hr{border-top-color:#a6d5ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faf2cc}.alert-warning hr{border-top-color:#f7ecb5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebcccc}.alert-danger hr{border-top-color:#e4b9b9}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:block;width:100%;height:1rem;margin-bottom:1rem}.progress[value]{-webkit-appearance:none;color:#0074d9;border:0;-moz-appearance:none;appearance:none}.progress[value]::-webkit-progress-bar{background-color:#eee}.progress[value]::-webkit-progress-value::before{content:attr(value)}.progress[value]::-webkit-progress-value{background-color:#0074d9;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.progress[value="100"]::-webkit-progress-value{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}@media screen and (min-width:0\0){.progress{background-color:#eee}.progress-bar{display:inline-block;height:1rem;text-indent:-999rem;background-color:#0074d9;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.progress[width^="0"]{min-width:2rem;color:#b1b7bd;background-color:transparent;background-image:none}.progress[width="100%"]{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}}.progress-striped[value]::-webkit-progress-value{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:1rem 1rem;background-size:1rem 1rem}.progress-striped[value]::-moz-progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}@media screen and (min-width:0\0){.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:1rem 1rem;background-size:1rem 1rem}}.progress-animated[value]::-webkit-progress-value{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-animated[value]::-moz-progress-bar{animation:progress-bar-stripes 2s linear infinite}@media screen and (min-width:0\0){.progress-animated .progress-bar-striped{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}}.progress-success[value]::-webkit-progress-value{background-color:#64de79}.progress-success[value]::-moz-progress-bar{background-color:#64de79}@media screen and (min-width:0\0){.progress-success .progress-bar{background-color:#64de79}}.progress-info[value]::-webkit-progress-value{background-color:#0500f0}.progress-info[value]::-moz-progress-bar{background-color:#0500f0}@media screen and (min-width:0\0){.progress-info .progress-bar{background-color:#0500f0}}.progress-warning[value]::-webkit-progress-value{background-color:#a100fe}.progress-warning[value]::-moz-progress-bar{background-color:#a100fe}@media screen and (min-width:0\0){.progress-warning .progress-bar{background-color:#a100fe}}.progress-danger[value]::-webkit-progress-value{background-color:#ff0808}.progress-danger[value]::-moz-progress-bar{background-color:#ff0808}@media screen and (min-width:0\0){.progress-danger .progress-bar{background-color:#ff0808}}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right{padding-left:10px}.media-left{padding-right:10px}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:0}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:last-child{margin-bottom:0}.list-group-flush .list-group-item{border-width:1px 0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}a.list-group-item,button.list-group-item{width:100%;color:#555;text-align:inherit}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#b1b7bd;cursor:not-allowed;background-color:#eceeef}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#b1b7bd}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#000;border-color:#000}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#666}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}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:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}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:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}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:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}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:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9{padding-bottom:42.857143%}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.embed-responsive-1by1{padding-bottom:100%}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:transform .3s ease-out,-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.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:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.in{opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header::after{display:table;clear:both;content:""}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.5}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer::after{display:table;clear:both;content:""}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.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:544px){.modal-dialog{width:600px;margin:30px auto}.modal-sm{width:300px}}@media (min-width:768px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:bau,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;opacity:0;line-break:auto}.tooltip.in{opacity:.9}.tooltip.bs-tether-element-attached-bottom,.tooltip.tooltip-top{padding:5px 0;margin-top:-3px}.tooltip.bs-tether-element-attached-bottom .tooltip-arrow,.tooltip.tooltip-top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.bs-tether-element-attached-left,.tooltip.tooltip-right{padding:0 5px;margin-left:3px}.tooltip.bs-tether-element-attached-left .tooltip-arrow,.tooltip.tooltip-right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.bs-tether-element-attached-top,.tooltip.tooltip-bottom{padding:5px 0;margin-top:3px}.tooltip.bs-tether-element-attached-top .tooltip-arrow,.tooltip.tooltip-bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bs-tether-element-attached-right,.tooltip.tooltip-left{padding:0 5px;margin-left:-3px}.tooltip.bs-tether-element-attached-right .tooltip-arrow,.tooltip.tooltip-left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;padding:1px;font-family:bau,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);line-break:auto}.popover.bs-tether-element-attached-bottom,.popover.popover-top{margin-top:-10px}.popover.bs-tether-element-attached-bottom .popover-arrow,.popover.popover-top .popover-arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.bs-tether-element-attached-bottom .popover-arrow::after,.popover.popover-top .popover-arrow::after{bottom:1px;margin-left:-10px;content:"";border-top-color:#fff;border-bottom-width:0}.popover.bs-tether-element-attached-left,.popover.popover-right{margin-left:10px}.popover.bs-tether-element-attached-left .popover-arrow,.popover.popover-right .popover-arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.bs-tether-element-attached-left .popover-arrow::after,.popover.popover-right .popover-arrow::after{bottom:-10px;left:1px;content:"";border-right-color:#fff;border-left-width:0}.popover.bs-tether-element-attached-top,.popover.popover-bottom{margin-top:10px}.popover.bs-tether-element-attached-top .popover-arrow,.popover.popover-bottom .popover-arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-top .popover-arrow::after,.popover.popover-bottom .popover-arrow::after{top:1px;margin-left:-10px;content:"";border-top-width:0;border-bottom-color:#fff}.popover.bs-tether-element-attached-right,.popover.popover-left{margin-left:-10px}.popover.bs-tether-element-attached-right .popover-arrow,.popover.popover-left .popover-arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-right .popover-arrow::after,.popover.popover-left .popover-arrow::after{right:1px;bottom:-10px;content:"";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb}.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{content:"";border-width:10px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.carousel-item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.carousel-item>a>img,.carousel-inner>.carousel-item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.carousel-item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:transform .6s ease-in-out,-o-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.carousel-item.active.right,.carousel-inner>.carousel-item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.carousel-item.active.left,.carousel-inner>.carousel-item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.carousel-item.active,.carousel-inner>.carousel-item.next.left,.carousel-inner>.carousel-item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,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;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);opacity:.5}.carousel-control.left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .icon-next{right:50%;margin-right:-10px}.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%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:transparent;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media (min-width:544px){.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .icon-prev{margin-left:-15px}.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix::after{display:table;clear:both;content:""}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-xs-left{float:left!important}.pull-xs-right{float:right!important}.pull-xs-none{float:none!important}@media (min-width:544px){.pull-sm-left{float:left!important}.pull-sm-right{float:right!important}.pull-sm-none{float:none!important}}@media (min-width:768px){.pull-md-left{float:left!important}.pull-md-right{float:right!important}.pull-md-none{float:none!important}}@media (min-width:992px){.pull-lg-left{float:left!important}.pull-lg-right{float:right!important}.pull-lg-none{float:none!important}}@media (min-width:1200px){.pull-xl-left{float:left!important}.pull-xl-right{float:right!important}.pull-xl-none{float:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;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}.invisible{visibility:hidden!important}.text-hide{font:"0/0" a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-xs-left{text-align:left!important}.text-xs-right{text-align:right!important}.text-xs-center{text-align:center!important}@media (min-width:544px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-normal{font-weight:400}.font-weight-bold{font-weight:700}.font-italic{font-style:italic}.text-muted{color:#b1b7bd}.text-primary{color:#000!important}a.text-primary:focus,a.text-primary:hover{color:#000}.text-success{color:#64de79!important}a.text-success:focus,a.text-success:hover{color:#3ad555}.text-info{color:#0500f0!important}a.text-info:focus,a.text-info:hover{color:#0400bd}.text-warning{color:#a100fe!important}a.text-warning:focus,a.text-warning:hover{color:#8100cb}.text-danger{color:#ff0808!important}a.text-danger:focus,a.text-danger:hover{color:#d40000}.bg-inverse{color:#eceeef;background-color:#373a3c}.bg-faded{background-color:#f7f7f9}.bg-primary{color:#fff!important;background-color:#000!important}a.bg-primary:focus,a.bg-primary:hover{background-color:#000}.bg-success{color:#fff!important;background-color:#64de79!important}a.bg-success:focus,a.bg-success:hover{background-color:#3ad555}.bg-info{color:#fff!important;background-color:#0500f0!important}a.bg-info:focus,a.bg-info:hover{background-color:#0400bd}.bg-warning{color:#fff!important;background-color:#a100fe!important}a.bg-warning:focus,a.bg-warning:hover{background-color:#8100cb}.bg-danger{color:#fff!important;background-color:#ff0808!important}a.bg-danger:focus,a.bg-danger:hover{background-color:#d40000}.m-x-auto{margin-right:auto!important;margin-left:auto!important}.m-a-0{margin:0 0!important}.m-t-0{margin-top:0!important}.m-r-0{margin-right:0!important}.m-b-0{margin-bottom:0!important}.m-l-0{margin-left:0!important}.m-x-0{margin-right:0!important;margin-left:0!important}.m-y-0{margin-top:0!important;margin-bottom:0!important}.m-a-1{margin:1rem 1rem!important}.m-t-1{margin-top:1rem!important}.m-r-1{margin-right:1rem!important}.m-b-1{margin-bottom:1rem!important}.m-l-1{margin-left:1rem!important}.m-x-1{margin-right:1rem!important;margin-left:1rem!important}.m-y-1{margin-top:1rem!important;margin-bottom:1rem!important}.m-a-2{margin:1.5rem 1.5rem!important}.m-t-2{margin-top:1.5rem!important}.m-r-2{margin-right:1.5rem!important}.m-b-2{margin-bottom:1.5rem!important}.m-l-2{margin-left:1.5rem!important}.m-x-2{margin-right:1.5rem!important;margin-left:1.5rem!important}.m-y-2{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-a-3{margin:3rem 3rem!important}.m-t-3{margin-top:3rem!important}.m-r-3{margin-right:3rem!important}.m-b-3{margin-bottom:3rem!important}.m-l-3{margin-left:3rem!important}.m-x-3{margin-right:3rem!important;margin-left:3rem!important}.m-y-3{margin-top:3rem!important;margin-bottom:3rem!important}.p-a-0{padding:0 0!important}.p-t-0{padding-top:0!important}.p-r-0{padding-right:0!important}.p-b-0{padding-bottom:0!important}.p-l-0{padding-left:0!important}.p-x-0{padding-right:0!important;padding-left:0!important}.p-y-0{padding-top:0!important;padding-bottom:0!important}.p-a-1{padding:1rem 1rem!important}.p-t-1{padding-top:1rem!important}.p-r-1{padding-right:1rem!important}.p-b-1{padding-bottom:1rem!important}.p-l-1{padding-left:1rem!important}.p-x-1{padding-right:1rem!important;padding-left:1rem!important}.p-y-1{padding-top:1rem!important;padding-bottom:1rem!important}.p-a-2{padding:1.5rem 1.5rem!important}.p-t-2{padding-top:1.5rem!important}.p-r-2{padding-right:1.5rem!important}.p-b-2{padding-bottom:1.5rem!important}.p-l-2{padding-left:1.5rem!important}.p-x-2{padding-right:1.5rem!important;padding-left:1.5rem!important}.p-y-2{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-a-3{padding:3rem 3rem!important}.p-t-3{padding-top:3rem!important}.p-r-3{padding-right:3rem!important}.p-b-3{padding-bottom:3rem!important}.p-l-3{padding-left:3rem!important}.p-x-3{padding-right:3rem!important;padding-left:3rem!important}.p-y-3{padding-top:3rem!important;padding-bottom:3rem!important}.pos-f-t{position:fixed;top:0;right:0;left:0;z-index:1030}.hidden-xs-up{display:none!important}@media (max-width:543px){.hidden-xs-down{display:none!important}}@media (min-width:544px){.hidden-sm-up{display:none!important}}@media (max-width:767px){.hidden-sm-down{display:none!important}}@media (min-width:768px){.hidden-md-up{display:none!important}}@media (max-width:991px){.hidden-md-down{display:none!important}}@media (min-width:992px){.hidden-lg-up{display:none!important}}@media (max-width:1199px){.hidden-lg-down{display:none!important}}@media (min-width:1200px){.hidden-xl-up{display:none!important}}.hidden-xl-down{display:none!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}}a{cursor:pointer}ul{padding:0 1rem}b,strong{font-weight:500}hr{width:66.666667%;height:1px;margin-left:0;background-color:#000;border-top:none}button:focus{outline:0}h1,h2,h3{padding-top:2rem}h4,h5,h6{padding-top:1rem}h3,h4{line-height:3rem}h5,h6{line-height:2rem}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-weight:400}.even,h1:first-of-type{padding-top:0;padding-bottom:3rem;margin-bottom:0}h1.first,h2.first,h3.first{padding-top:0;padding-bottom:2rem}h1.child,h2.child,h3.child{padding-bottom:0}.gray{color:#55595c}.gray-light{color:#b1b7bd}.gray-lighter{color:#eceeef}@media (max-width:767px){h1{font-size:2rem;line-height:3rem}h2{font-size:1.6rem}}code,pre{background-color:#f7f7f7}p code{padding:.2rem .1rem}pre code{padding-left:0;margin-left:0;background-color:transparent}input,textarea{border:0;border-bottom:.2rem solid #b1b7bd;outline:0}input:focus,textarea:focus{border-color:#000}.container.top{padding-top:3rem}.lead{margin-bottom:3rem}@media (max-width:767px){.container{padding-top:0}.lead{margin-bottom:1rem}}.close{font-size:1rem;font-weight:300;text-shadow:none;opacity:1}.btn{font-weight:500;text-transform:uppercase;letter-spacing:.06rem;background-color:#fff;border-width:3px}.btn-primary{color:#000}.red{color:#ff0808}.green{color:#64de79}.yellow{color:#fff900}.blue{color:#0500f0}.inverse,.inverse:focus,.inverse:hover{color:#fff}.inverse.red{background-color:#ff0808}.inverse.green{background-color:#64de79}.inverse.yellow{background-color:#fff900}.inverse.blue{background-color:#0500f0}.block{display:inline-block;padding:.6rem;font-weight:500}.block:first-of-type{padding-top:.6rem}.i-b{display:inline-block}.action{margin-top:1rem;font-weight:500;letter-spacing:1px}.action>label{margin-right:.9375rem;line-height:1rem}.action.create>label{width:16px;height:16px;vertical-align:middle;background-color:transparent;border:3px solid #000;border-radius:50%}.action.add>label:before{font-size:1.3rem;font-weight:500;content:"+"}.mono{font-family:scp}h1.sign{line-height:2;color:#a100fe}h2.advice{font-size:2rem;line-height:3rem;color:#b1b7bd}p.ship{white-space:nowrap}input#ship{width:66.7%}#pass,#ship,.sig{font-size:2rem}.sig{margin-right:.3rem}#pass{width:100%}button#act{font-size:1.6rem;font-weight:500;color:#fff;text-decoration:underline;background-color:#000;border:0}.lead .logo{display:inline-block;width:3rem;height:3rem;margin-right:1rem;text-align:center;border-radius:50%}@media (max-width:991px){.lead .logo{width:3rem;height:3rem;margin-right:1rem;font-size:3.3rem;line-height:3.3rem;border-radius:3rem}}@media (max-width:767px){.lead .logo{display:block;margin-bottom:1rem}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/web/tree/main_codemirror_fonts_bootstrap.css b/web/tree/main_codemirror_fonts_bootstrap.css new file mode 100644 index 000000000..af782769e --- /dev/null +++ b/web/tree/main_codemirror_fonts_bootstrap.css @@ -0,0 +1,1324 @@ +@charset "UTF-8"; +.col-md-10.body { + padding-left: 0; } + +@media (max-width: 767px) { + .col-md-10.body { + margin-top: 0.9375rem; + padding-left: 0.9375rem; } } + +img.logo { + height: 2rem; + width: 2rem; } + +img.logo.first { + margin-bottom: 2rem; } + +div.logo { + width: 3rem; + height: 3rem; + background-color: #fff; + display: inline-block; + margin-right: 1rem; + border-radius: 50%; + vertical-align: middle; + margin-top: -.8rem; + background-color: #000; } + +div.logo:before { + content: "~"; + color: #B1B7BD; + font-size: 2.6rem; + vertical-align: middle; + line-height: 3rem; + margin-top: .2rem; + text-align: center; + width: 2rem; + display: inline-block; } + +div.logo.inverse:before { + color: #fff; } + +.lead .logo.inverse { + margin-top: -1.4rem; } + +.short { + width: 75%; } + +.meta-data { + padding: 1rem; + background-color: #f7f7f9; + font-family: 'scp'; + max-width: 12rem; + margin-bottom: 2rem; } + .meta-data h2, + .meta-data h3 { + padding: 0; + margin: 0; + font-size: 1rem; + line-height: 2rem; } + +.link-next { + margin-top: 4rem; } + .link-next a { + padding: .6rem; + border: 2px solid; + text-decoration: none; + font-weight: 500; + margin-top: 4rem; } + .link-next a:hover { + background-color: #000; + color: #fff; } + +.loading:before { + font-family: 'scp'; + background-color: #000; + color: #fff; + padding: 0; + margin: 0; + width: 1.6rem; + height: 1.6rem; + text-align: center; + font-size: .8rem; + line-height: 1.7rem; + display: block; + font-weight: 600; + z-index: 3; } + +.loading.state-0:before { + content: "\25D3"; } + +.loading.state-1:before { + content: "\25D1"; } + +.loading.state-2:before { + content: "\25D2"; } + +.loading.state-3:before { + content: "\25D0"; } + +@media (min-width: 768px) { + .ctrl { + width: 180px; } + .ctrl.open, + .ctrl:hover { + max-width: 360px; + min-width: 180px; + width: auto; } } + +@media (min-width: 992px) { + .ctrl { + width: 235px; } + .ctrl.open, + .ctrl:hover { + max-width: 470px; + min-width: 235px; + width: auto; } } + +@media (min-width: 1200px) { + .ctrl { + width: 285px; } + .ctrl.open, + .ctrl:hover { + max-width: 570px; + min-width: 285px; + width: auto; } } + +#head .loading { + display: none; } + +@media (max-width: 543px) { + #head { + top: 0; + z-index: 10; + width: 100%; + position: absolute; } + #head.m-down, + #head.m-up { + position: absolute; } + #head.m-down.m-fixed { + position: fixed; } } + +@media (max-width: 543px) { + .nav.container { + left: 0; } } + +.menu .contents { + padding-top: 3rem; } + +.ctrl { + padding-left: 0; + padding-right: 0; + background-color: #fff; + transition: max-width .2s ease-in-out; + position: fixed; + height: 100%; + z-index: 100; } + .ctrl ul.nav { + margin-top: 2rem; + overflow-x: hidden; + overflow-y: scroll; + height: 100%; } + .ctrl ul.nav li { + width: 100%; + overflow: hidden; + white-space: nowrap; + margin-bottom: .6rem; } + .ctrl ul.nav:hover { + overflow-x: visible; } + .ctrl a.nav-link { + letter-spacing: 1px; + text-decoration: none; + border-bottom: 2px solid; + line-height: 1rem; } + .ctrl .selected a.nav-link { + font-weight: 500; } + +.ctrl.navbar { + position: relative; + margin-bottom: 3rem; + padding: 0; + background-color: transparent; } + .ctrl.navbar .icon, + .ctrl.navbar ul.nav, + .ctrl.navbar li { + display: inline-block; + padding: 0; } + .ctrl.navbar ul.nav { + margin-top: 0; + overflow: visible; } + .ctrl.navbar ul.nav li { + width: auto; + display: inline-block; + min-width: 16.66667%; } + .ctrl.navbar ul.nav .right { + float: right; } + .ctrl.navbar ul.nav .btn { + margin: 0; + padding: 0; + border: 0; + text-transform: none; } + +.ctrl.navbar.open, +.ctrl.navbar:hover { + max-width: none; + min-width: none; } + +@media (max-width: 991px) { + ul.nav { + line-height: 1.3rem; } + a.nav-link { + font-size: .8rem; } } + +@media (max-width: 767px) { + .ctrl { + position: relative; + max-height: 3rem; + max-width: 100%; + padding-top: 1rem; + background-color: #fff; + overflow: hidden; + border-bottom: 2px solid #B1B7BD; + -webkit-transition: max-height 0.2s ease-in-out; + -moz-transition: max-height 0.2s ease-in-out; + transition: max-height 0.2s ease-in-out; } + .ctrl ul.nav { + line-height: 2rem; + margin: 0 0 2rem 0.9375rem; } + .ctrl.open, + .ctrl:hover { + width: inherit; + max-width: inherit; } + .ctrl.open { + max-height: 12rem; } + a.nav-link { + font-size: 1rem; + line-height: 1rem; + text-decoration: none; + border-bottom: 2px solid; } + .ctrl.open ul.nav { + max-height: 9rem; + overflow-y: scroll; } } + +.navbar-toggler { + font-size: 24px; + transition: opacity .2s, transform .3s, margin-left .2s; + -webkit-transition: opacity .2s, transform .3s, margin-left .2s; } + +.open .navbar-toggler { + transform: rotate(0.25turn); + opacity: .2; + margin-left: -.2rem; } + +.items { + height: 80%; } + +@media (min-width: 768px) { + .ctrl .navbar-toggler { + display: none; } + .ctrl .navbar-toggler.show { + display: block; + padding: 0; } } + +@media (max-width: 767px) { + .navbar-toggler { + padding: 0; + margin-left: 2rem; + vertical-align: top; + line-height: 18px; } + .open .navbar-toggler { + margin-left: 2rem; } } + +.icon div, .icon a { + display: inline-block; } + +.icon a { + margin-right: .6rem; } + +.icon .home { + margin: 0 0.9375rem 0.9375rem 0; + width: 24px; + height: 24px; + border-radius: 50%; + background-color: transparent; + border: 6px solid #B1B7BD; + cursor: pointer; } + +.icon .home:hover { + border-color: #55595c; } + +.icon .dpad { + display: block; } + +.icon .up { + width: 1px; + height: 1px; + border: 12.0006px solid transparent; + border-bottom: 18px solid #000; + border-top: 0 solid transparent; } + +.icon .prev { + width: 1px; + height: 1px; + border: 12.0006px solid transparent; + border-right: 18px solid #000; + border-left: 0 solid transparent; } + +.icon .next { + width: 1px; + height: 1px; + border: 12.0006px solid transparent; + border-left: 18px solid #000; + border-right: 0 solid transparent; + margin-right: 0; } + +@media (max-width: 991px) { + .icon .home { + width: 18px; + height: 18px; + border-radius: 50%; + background-color: transparent; + border-width: 4px; } + .icon .up { + width: 1px; + height: 1px; + border: 8.0004px solid transparent; + border-bottom: 12px solid #000; + border-top: 0 solid transparent; + margin-left: 1px; } + .icon .prev { + width: 1px; + height: 1px; + border: 8.0004px solid transparent; + border-right: 12px solid #000; + border-left: 0 solid transparent; + margin-right: .6rem; } + .icon .next { + width: 1px; + height: 1px; + border: 8.0004px solid transparent; + border-left: 12px solid #000; + border-right: 0 solid transparent; } } + +@media (max-width: 767px) { + .icon { + margin-left: 0.9375rem; + height: 2rem; } + .icon .dpad { + display: inline; } + .icon .home { + margin-top: 0; + margin-bottom: 0; } } + +[data-path^='/docs'] .selected .nav-link, +[data-path^='/work'] .selected .nav-link { + color: #55595c; } + +[data-path^='/docs'] .nav-link, +[data-path^='/work'] .nav-link { + font-weight: 500; } + +[data-path^='/docs'] .home, +[data-path^='/work'] .home { + background-color: #55595c; + border-color: #55595c; } + +[data-path^='/docs'] .home:hover, +[data-path^='/work'] .home:hover { + background-color: #B1B7BD; + border-color: #B1B7BD; + opacity: .6; } + +[data-path^='/docs'] .home:before, +[data-path^='/work'] .home:before { + content: "~"; + color: #fff; + line-height: .8rem; + font-size: 1.4rem; + padding-left: 1px; } + +@media (max-width: 991px) { + [data-path^='/docs'] .home:before, + [data-path^='/work'] .home:before { + line-height: 0.7rem; + font-size: 1rem; + margin-left: .06rem; } } + +@media (max-width: 767px) { + [data-path^='/docs'] .home:before, + [data-path^='/work'] .home:before { + line-height: .7rem; + margin-left: .05rem; + font-size: 1rem; } } + +[data-path^='/docs/system/hoon/runes'] .nav-link { + font-family: 'scp'; } + +[data-path^='/docs/system/hoon/runes'] .nav-link, +[data-path^='/docs/system/hoon/runes'] .ctrl .selected a.nav-link { + font-weight: 600; } + +.app { + vertical-align: top; + font-size: 1.6rem; + font-weight: 500; + line-height: 1.6rem; + margin-top: 0; } + +@media (max-width: 991px) { + .app { + font-size: 1.3rem; + line-height: 1.3rem; } } + +@media (max-width: 767px) { + .app { + margin-top: .1rem; + line-height: 1rem; } } + +.context { + margin-top: 1rem; } + .context .name { + font-weight: 300; + font-size: 1.2rem; + font-family: 'scp'; } + +@media (max-width: 991px) { + .context .name { + font-size: 1rem; } } + +@media (max-width: 767px) { + .context { + line-height: 1rem; + margin-bottom: 1rem; } } + +.urbit.navbar.ctrl { + margin-top: 1rem; } + .urbit.navbar.ctrl, + .urbit.navbar.ctrl .items { + height: 3rem; } + .urbit.navbar.ctrl .icon .home { + border-color: #B1B7BD; + background-color: #B1B7BD; + width: 3rem; + height: 3rem; + margin: 0 4rem 0 0; } + .urbit.navbar.ctrl .icon .home:before { + content: "~"; + color: #fff; + font-size: 2.6rem; + line-height: 2.6rem; + text-align: center; + width: 2.4rem; + display: inline-block; } + .urbit.navbar.ctrl ul.nav li { + height: 3rem; + vertical-align: middle; } + .urbit.navbar.ctrl ul.nav li a { + text-decoration: none; + color: #B1B7BD; + font-weight: 500; + font-size: 1rem; + line-height: 3rem; } + .urbit.navbar.ctrl ul.nav .btn { + border: 3px solid #000; + margin-top: -3px; + height: 3rem; + padding: 0rem; } + .urbit.navbar.ctrl ul.nav .btn a { + font-size: 1rem; + color: #000; + letter-spacing: 0; } + .urbit.navbar.ctrl ul.nav .btn.selected, + .urbit.navbar.ctrl ul.nav .btn:hover { + background-color: #000; } + .urbit.navbar.ctrl ul.nav .btn.selected a, + .urbit.navbar.ctrl ul.nav .btn:hover a { + color: #fff; } + .urbit.navbar.ctrl ul.nav li a:hover, + .urbit.navbar.ctrl ul.nav li.selected a { + color: #000; } + .urbit.navbar.ctrl .subnav ul.nav { + height: 1.5rem; } + .urbit.navbar.ctrl .subnav ul.nav li { + height: 1.5rem; } + .urbit.navbar.ctrl .subnav ul.nav li a { + line-height: 1.5rem; } + .urbit.navbar.ctrl .subnav ul.nav .btn { + position: relative; + height: 3rem; } + .urbit.navbar.ctrl .subnav ul.nav .btn a { + line-height: 3rem; } + +.urbit.home.navbar.ctrl .icon .home { + opacity: 0; + border-color: #fff; + background-color: #fff; } + +.urbit.home.navbar.ctrl .icon .home:before { + color: #B1B7BD; } + +.urbit.home.navbar.ctrl ul.nav li a { + color: #f7f7f9; } + +@media (max-width: 767px) { + .urbit.navbar.ctrl .icon { + margin-top: .5rem; + margin-bottom: .5rem; } + .urbit.navbar.ctrl .icon .home { + width: 2rem; + height: 2rem; + margin: 0; } + .urbit.navbar.ctrl .icon .home:before { + font-size: 1.6rem; + line-height: 1.8rem; + width: 1.6rem; } + .urbit.navbar.ctrl .navbar-toggler { + margin-top: .5rem; + margin-left: 1rem; } + .urbit.navbar.ctrl ul.nav, + .urbit.navbar.ctrl .subnav ul.nav { + overflow: visible; + height: auto; + margin-left: 3rem; + float: left; } + .urbit.navbar.ctrl ul.nav li, + .urbit.navbar.ctrl .subnav ul.nav li { + display: block; + height: 1.5rem; } + .urbit.navbar.ctrl ul.nav li a, + .urbit.navbar.ctrl .subnav ul.nav li a { + line-height: 1.5rem; } + .urbit.navbar.ctrl ul.nav li.btn, + .urbit.navbar.ctrl .subnav ul.nav li.btn { + height: 1.5rem; + border: 0; } + .urbit.navbar.ctrl ul.nav li.btn a, + .urbit.navbar.ctrl .subnav ul.nav li.btn a { + color: #64DE79; + line-height: 1.5rem; } } + +#tree > div > .container { + padding-top: 3rem; + padding-bottom: 6rem; } + +@media (max-width: 767px) { + #tree > div > .container { + padding-top: 0; } + #body { + padding-top: 4rem; } } + +.lead h1:first-of-type { + padding-bottom: 0; } + +.flush { + padding-top: 0; } + +.h-arrow { + width: 100%; + height: 9rem; + margin-bottom: 3rem; } + .h-arrow h1, + .h-arrow img { + float: left; } + .h-arrow img { + height: 6rem; + margin: 1rem 0 0 1rem; } + .h-arrow h1 { + color: #000; + display: inline-block; + line-height: 4rem; } + .h-arrow h1 code { + background-color: transparent; + color: #000; } + +.footer { + margin-top: 6rem; + font-weight: 500; + color: #B1B7BD; } + .footer a { + color: #55595c; + text-decoration: none; + border-bottom: 2px solid #55595c; + margin-left: .6rem; } + +.body[data-path^='/docs'] h1, +.body[data-path^='/work'] h1 { + color: #000; } + +.body[data-path^='/docs'] h1 code, +.body[data-path^='/work'] h1 code { + background-color: transparent; + color: #000; + padding: 0; } + +.body[data-path^='/docs'] .book h2, +.body[data-path^='/work'] .book h2 { + color: #B1B7BD; } + +.body[data-path^='/docs'] .book h2 code, +.body[data-path^='/work'] .book h2 code { + color: #000; + background-color: transparent; } + +.body[data-path^='/docs'] .book h2 a, +.body[data-path^='/work'] .book h2 a { + color: #000; } + +.body[data-path^='/docs'] .book hr, +.body[data-path^='/work'] .book hr { + margin-bottom: 3rem; } + +.body[data-path^='/work'] h2 { + color: #000; } + +.body[data-path^='/docs/system/hoon/runes/'] h1 { + color: #B1B7BD; } + +.body[data-path^='/docs/system/hoon/runes/basic'] h1 { + color: #000; } + +.body[data-path^='/docs/system/hoon/library/'] h3 { + font-size: 1.5rem; } + +.body[data-path^='/docs/system/hoon/library/'] h2 { + font-size: 1rem; } + +.body[data-path^='/docs/system/hoon/library/'] .toc h3 { + padding-top: 0; + margin-bottom: 0; } + +.body .urbit .logo { + background-color: #fff; } + +.body .urbit h1 { + color: #000; + line-height: 4rem; } + +.body .urbit a.green:hover { + color: #64DE79; } + +.body .urbit .container.stack { + margin-bottom: 3rem; } + .body .urbit .container.stack p { + font-size: 1.2rem; + line-height: 2rem; } + +.body .urbit .container.stack.six { + margin-top: 12rem; + margin-bottom: 6rem; } + +.body .urbit .btn.black { + text-transform: none; + text-decoration: none; + border: 3px solid #000; + letter-spacing: 0; + margin-right: 1rem; } + +.body .urbit button.submit:hover, +.body .urbit .btn.black:hover { + background-color: #000; + color: #fff; } + +.body .urbit .front { + padding-bottom: 4rem; } + .body .urbit .front h1 { + padding-top: 0; } + .body .urbit .front h1, + .body .urbit .front h1 a { + font-size: 4rem; + line-height: 6rem; } + +.body .urbit .image-fs { + height: 44rem; + margin-bottom: 3rem; } + .body .urbit .image-fs .text-container, + .body .urbit .image-fs .image-container { + position: absolute; } + .body .urbit .image-fs .text-container { + display: table; + height: 44rem; + width: 100%; + z-index: 1; } + .body .urbit .image-fs .text-container .text { + display: table-cell; + vertical-align: middle; } + .body .urbit .image-fs .text-container .rect { + width: 60%; + margin-left: auto; + margin-right: auto; } + .body .urbit .image-fs .text-container .rect h1 { + padding-bottom: 1rem; + text-align: left; } + .body .urbit .image-fs .text-container .rect.no-header { + font-weight: 500; + color: #fff; + font-size: 1.4rem; } + .body .urbit .image-fs .text-container .rect.no-header p.email { + font-size: 1rem; } + .body .urbit .image-fs .text-container .rect.no-header button.submit { + background-color: transparent; + border-color: #fff; } + .body .urbit .image-fs .image-container { + z-index: 0; + height: 44rem; + width: 100%; + overflow: hidden; } + .body .urbit .image-fs .image-container img { + position: relative; + left: 50%; + margin-left: -50%; + top: 50%; + margin-top: -50%; + min-height: 44rem; + min-width: 100%; } + .body .urbit .image-fs h1 { + text-align: center; + color: #fff; } + +.body .urbit .image-fs.first { + margin-top: -9rem; } + +.body .urbit .slide { + margin-bottom: 12rem; + position: relative; } + .body .urbit .slide h1 { + padding-bottom: 1rem; } + .body .urbit .slide .pair { + display: table; } + .body .urbit .slide .pair .text, + .body .urbit .slide .pair .image { + display: table-cell; + vertical-align: middle; } + .body .urbit .slide .pair .image.right { + padding-left: 5%; } + .body .urbit .slide .pair .image.left { + padding-right: 5%; } + .body .urbit .slide .pair .text { + width: 75%; } + .body .urbit .slide .pair .image { + width: 20%; } + .body .urbit .slide .pair p:last-child { + margin-bottom: 0; } + +.body .urbit .end { + padding: 1rem; + background-color: #64DE79; + color: white; + text-decoration: none; + font-size: 2rem; + font-weight: 500; } + +.body .urbit input.email, +.body .urbit button.submit { + line-height: 1rem; + padding: .6rem; + border: 0; } + +.body .urbit input.email { + font-weight: 500; + background-color: #B1B7BD; + color: #fff; + margin-right: 1rem; + border: 3px solid #B1B7BD; } + +.body .urbit input.email::-moz-placeholder { + color: #D2D2D2; } + +.body .urbit input.email::-webkit-input-placeholder { + color: #D2D2D2; } + +.body .urbit button.submit { + text-transform: none; + text-decoration: none; + border: 3px solid #000; + background-color: #fff; + font-weight: 500; + letter-spacing: 0; } + +.body .urbit .last a { + display: block; + font-weight: 500; + color: #B1B7BD; } + +.body .urbit .last h2 { + padding-top: 0; + padding-bottom: 1rem; + margin-bottom: 0; } + +.body .urbit.home p.email { + margin-top: 3rem; } + +@media (max-width: 767px) { + .body .urbit { + margin-top: 4rem; } + .body .urbit .slide .pair, + .body .urbit .slide .pair .text, + .body .urbit .slide .pair .image { + display: block; + width: 100%; } + .body .urbit .slide .pair .image { + text-align: center; } + .body .urbit .slide .pair .image.left { + margin-bottom: 2rem; } + .body .urbit .slide .pair .image.right { + margin-top: 2rem; } } + +@media (max-width: 767px) { + #body.plan { + padding-top: 0; } } + +.body .plan .above { + background-color: #000; } + .body .plan .above .mono, + .body .plan .above h6 { + font-size: 1.2rem; } + .body .plan .above h6 { + padding-top: 0; } + .body .plan .above .mono { + font-weight: 200; } + .body .plan .above > .container { + padding-top: 6rem; + padding-bottom: 6rem; } + .body .plan .above .home { + border-radius: 50%; + height: 2.4rem; + width: 2.4rem; + border: 4px solid #fff; + display: inline-block; + float: left; + margin-left: -4.4rem; + margin-top: 1rem; } + .body .plan .above .edit { + background-color: transparent; + border: 0; + padding: 0; + font-weight: 500; + border-bottom: 3px solid #fff; + line-height: 1rem; + padding-top: 2rem; } + .body .plan .above .grid .tr .td { + font-family: 'scp'; } + .body .plan .above .grid .tr .td:first-child { + font-family: 'bau'; } + .body .plan .above input { + background-color: #373a3c; + border: none; } + .body .plan .above .panel a { + text-decoration: none; + border-bottom: 2px solid #55595c; + font-weight: 500; + color: #55595c; } + .body .plan .above .panel a:hover { + border-color: #fff; + color: #fff; } + +.body .plan .panel.stack { + padding-top: 0; + padding-bottom: 0; } + +.body .plan .plan.stack { + padding-top: 4rem; } + +.body .plan .pull-right { + float: right; } + +.body .plan .above, +.body .plan .above a { + color: #fff; } + +.body .plan .service { + white-space: nowrap; } + +.body .plan .service:before { + content: " "; + display: inline-block; + border-radius: 50%; + height: .5rem; + width: .5rem; + background-color: #64DE79; + margin-right: .6rem; } + +.body .plan .grid .td { + display: table-cell; } + +.body .plan .grid .tr .td:first-child { + min-width: 9rem; + margin-right: 2rem; + letter-spacing: 1px; + color: #B1B7BD; } + +.stream .mini-module { + margin-top: 3rem; } + +.stream h6 { + color: #55595c; + font-size: 1rem; + margin-bottom: 2rem; } + +@media (max-width: 767px) { + .grid .td { + display: block; } + .tr .td:first-child { + margin-top: 1rem; } } + +@keyframes menu-open { + 0% { + visibility: hidden; } + 1% { + visibility: visible; } + 100% { + visibility: visible; } } + +@keyframes menu-close { + 0% { + visibility: visible; } + 1% { + visibility: visible; } + 100% { + visibility: hidden; } } + +.menu { + padding-left: 0; + padding-right: 0; + position: fixed; + overflow: hidden; + z-index: 99; + margin-top: -3rem; } + .menu .contents { + padding-left: 0.9375rem; + padding-right: 0.9375rem; + padding-bottom: 6rem; + position: relative; + left: -100%; + -webkit-transition: left 0.3s ease-in-out; + -moz-transition: left 0.3s ease-in-out; + transition: left 0.3s ease-in-out; } + .menu .close { + margin-top: -2rem; } + .menu .close:hover { + opacity: 1; } + .menu h2 { + font-size: 1rem; + padding-top: 3rem; } + .menu h2:first-of-type { + padding-top: 0; } + .menu label.sum { + font-family: 'scp'; + margin-left: 0.9375rem; + font-size: 1.2rem; } + +.menu.depth-1 .contents { + background-color: #f7f7f9; + border-left: 2px solid #B1B7BD; } + +.menu.depth-2 .contents { + background-color: #eceeef; + border-left: 2px solid #B1B7BD; } + +.menu.closed { + animation-name: menu-close; + animation-duration: .3s; + animation-fill-mode: forwards; } + +.menu.open { + animation-name: menu-open; + animation-duration: .3s; + animation-fill-mode: forwards; } + +.menu.open .contents { + left: 0; } + +@media (max-width: 767px) { + .menu { + height: 100%; + padding-left: 0; + padding-right: 2.8125rem; + border-left: 0; } + .menu .contents { + left: inherit; + top: -100%; + padding-top: 0.9375rem; + padding-bottom: 2.8125rem; + -webkit-transition: top 0.3s ease-in-out; + -moz-transition: top 0.3s ease-in-out; + transition: top 0.3s ease-in-out; } + .menu.depth-1 .contents, + .menu.depth-2 .contents { + border-left: 0; + border-bottom: 2px solid #B1B7BD; } + .menu .close { + margin-top: 0; } + .menu.open .contents { + top: 3rem; } } + +.list h1, +.list h1:first-of-type { + font-size: inherit; + font-weight: inherit; + padding-bottom: 0; + margin-bottom: 0; + line-height: 2rem; } + +.list h1.error { + font-size: 1.6rem; + font-weight: 500; } + +.list.children h1 { + font-weight: 500; + font-size: 1.4rem; } + +.body[data-path^='/docs'] .list, +.body[data-path^='/work'] .list { + list-style-type: none; + padding-left: 0; } + .body[data-path^='/docs'] .list a, + .body[data-path^='/docs'] .list h1, + .body[data-path^='/work'] .list a, + .body[data-path^='/work'] .list h1 { + color: #55595c; + font-weight: 500; + height: 2rem; + display: inline; + text-decoration: none; } + .body[data-path^='/docs'] .list h1, + .body[data-path^='/work'] .list h1 { + border-bottom: 2px solid #000; } + +.body[data-path^='/work'] .list.main a, +.body[data-path^='/work'] .list.main h1 { + font-size: 2rem; + line-height: 4rem; + height: 4rem; } + +.body[data-path^='/work'] .list.main h1 { + border-width: 4px; } + +.body[data-path^='/docs'] .list.runes a h1, +.body[data-path^='/docs'] .list.runes a div, +.body[data-path^='/docs'] .list.runes a p { + display: inline-block; } + +.body[data-path^='/docs'] .list.runes a p { + font-weight: 300; } + +.body[data-path^='/docs'] .list.runes a { + text-decoration: none; } + +.body[data-path^='/docs'] .list.runes a, +.body[data-path^='/docs'] .list.runes a h1 code { + color: #000; } + +.body[data-path^='/docs'] .list.runes a h1 { + display: block; + margin-bottom: .3rem; + height: 1.8rem; } + +.body[data-path^='/docs'] .list.runes a h1 code { + background-color: transparent; + font-weight: 500; + font-size: 1.2rem; + padding: 0; } + +.body[data-path^='/docs'] .list.runes a code { + background-color: #eceeef; } + +.body[data-path^='/docs'] .list.runes a code { + padding: .3rem; } + +.urbit ul.blog { + list-style-type: none; + padding-left: 0; } + .urbit ul.blog li { + margin-bottom: 12rem; } + .urbit ul.blog .btn { + padding: .3rem; + border: 3px solid #64DE79; + color: #64DE79; + text-decoration: none; + text-transform: none; } + .urbit ul.blog .btn:hover { + background-color: #64DE79; + color: #fff; } + +.kids.runes h1 { + padding-top: 3rem; } + +.kids.runes h2 { + font-size: 1.5rem; + margin-bottom: 1rem; } + +.kids.runes > div { + margin-top: 6rem; } + +.kids.runes > hr { + display: none; } + +.kids.runes > div p:first-of-type { + font-weight: 500; } + +.urbit .post .date, +.urbit.post .date { + font-family: 'scp'; + color: #B1B7BD; + font-size: .7rem; + font-weight: 200; } + +.urbit .post h1.title, +.urbit .post p.preview, +.urbit.post h1.title, +.urbit.post p.preview { + font-weight: 500; } + +.urbit .post h1.title, +.urbit.post h1.title { + font-size: 2rem; + padding-bottom: 0; } + +.urbit .post h1.title, +.urbit .post img, +.urbit.post h1.title, +.urbit.post img { + width: 100%; + margin-bottom: 2rem; } + +.urbit .post .date, +.urbit .post p.preview, +.urbit .post h3.author, +.urbit.post .date, +.urbit.post p.preview, +.urbit.post h3.author { + margin-bottom: .6rem; } + +.urbit .post h3.author, +.urbit.post h3.author { + padding-top: 0; + font-size: 1rem; + font-weight: 200; } + +.urbit .post h3:before, +.urbit.post h3:before { + content: "—"; + margin-right: .6rem; } + +.urbit.post .preview { + max-width: 75%; } + +.sections h1 { + font-size: 2rem; + color: #0500F0; } + +.sections h1:first-of-type { + padding-bottom: 0; } + +.sections li h1 { + font-size: 1.2rem; } + +.sections ul { + list-style-type: none; + font-weight: 500; + padding-left: 0; } + +.sections ul li, +.sections ul li a, +.sections ul li h1 span { + color: #55595c; + margin-bottom: 1rem; + line-height: 1.5rem; } + +.sections .kids > div { + display: inline-block; + vertical-align: top; + margin-bottom: 3rem; + float: none; } + +.sections .kids > div p { + font-weight: 500; } + +.sections hr { + display: none; } + +.lead-offset { + margin-left: 4rem; } + +@media (max-width: 991px) { + .lead-offset { + margin-left: 4rem; } } + +@media (max-width: 767px) { + .lead-offset { + margin-left: 0; } + .sections h1 { + font-size: 1.6rem; } } + +.add-comment { + width: 100%; + border-top: 3px dotted #f7f7f9; + margin-top: 6rem; } + .add-comment .btn { + font-size: .8rem; } + .add-comment textarea { + width: 66%; + display: block; + height: 12rem; + background-color: #f7f7f9; + border-bottom: 0; + margin-bottom: 2rem; + margin-top: 3rem; + padding: .3rem; } + +.comments { + padding-top: 3rem; } + .comments .comment { + margin-top: 2rem; } + .comments .comment > span { + font-family: 'scp'; + font-size: .8rem; + color: #B1B7BD; } + .comments .comment h2 { + padding-top: 0; + font-size: 1rem; + font-weight: 500; } + .comments .comment h2 code { + background-color: transparent; + padding: 0; } + .comments .comment p { + width: 66%; } + +@media (max-width: 767px) { + .add-comment textarea, + .comments .comment p { + width: 100%; } } +.CodeMirror { + height: 100% +} +.cm-s-default .cm-atom {color: #70f} +.cm-s-default .cm-operator {color: #097} +@font-face { + font-family: "bau"; + src: url("//storage.googleapis.com/urbit-extra/bau.woff"); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: "bau"; + src: url("//storage.googleapis.com/urbit-extra/bau-italic.woff"); + font-weight: 400; + font-style: italic; +} +@font-face { + font-family: "bau"; + src: url("//storage.googleapis.com/urbit-extra/bau-medium.woff"); + font-weight: 500; + font-style: normal; +} +@font-face { + font-family: "bau"; + src: url("//storage.googleapis.com/urbit-extra/bau-mediumitalic.woff"); + font-weight: 500; + font-style: italic; +} +@font-face { + font-family: "bau"; + src: url("//storage.googleapis.com/urbit-extra/bau-bold.woff"); + font-weight: 600; + font-style: normal; +} +@font-face { + font-family: "bau"; + src: url("//storage.googleapis.com/urbit-extra/bau-bolditalic.woff"); + font-weight: 600; + font-style: italic; +} +@font-face { + font-family: "bau"; + src: url("//storage.googleapis.com/urbit-extra/bau-super.woff"); + font-weight: 600; + font-style: normal; +} +@font-face { + font-family: "bau"; + src: url("//storage.googleapis.com/urbit-extra/bau-superitalic.woff"); + font-weight: 600; + font-style: italic; +} +@font-face { + font-family: "scp"; + src: url("//storage.googleapis.com/urbit-extra/scp-extralight.woff"); + font-weight: 200; + font-style: normal; +} +@font-face { + font-family: "scp"; + src: url("//storage.googleapis.com/urbit-extra/scp-light.woff"); + font-weight: 300; + font-style: normal; +} +@font-face { + font-family: "scp"; + src: url("//storage.googleapis.com/urbit-extra/scp-regular.woff"); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: "scp"; + src: url("//storage.googleapis.com/urbit-extra/scp-medium.woff"); + font-weight: 500; + font-style: normal; +} +@font-face { + font-family: "scp"; + src: url("//storage.googleapis.com/urbit-extra/scp-bold.woff"); + font-weight: 600; + font-style: normal; +} +@font-face { + font-family: "scp"; + src: url("//storage.googleapis.com/urbit-extra/scp-black.woff"); + font-weight: 700; + font-style: normal; +}/*! + * Bootstrap v4.0.0-alpha.2 (http://getbootstrap.com) + * Copyright 2011-2015 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;-webkit-text-size-adjust:100%;-ms-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{outline:0}a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}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{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-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-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}@media print{*,::after,::before{text-shadow:none!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}abbr[title]::after{content:" (" attr(title) ")"}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{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 td,.table-bordered th{border:1px solid #ddd!important}}html{-webkit-box-sizing:border-box;box-sizing:border-box}*,::after,::before{-webkit-box-sizing:inherit;box-sizing:inherit}@-ms-viewport{width:device-width}@viewport{width:device-width}html{font-size:18px;-webkit-tap-highlight-color:transparent}body{font-family:bau,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:1rem;line-height:1.5;color:#373a3c;background-color:#fff}[tabindex="-1"]:focus{outline:0!important}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #b1b7bd}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}a{color:#000;text-decoration:underline}a:focus,a:hover{color:#000;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}pre{margin-top:0;margin-bottom:1rem}figure{margin:0 0 1rem}img{vertical-align:middle}[role=button]{cursor:pointer}[role=button],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation;touch-action:manipulation}table{background-color:transparent}caption{padding-top:.75rem;padding-bottom:.75rem;color:#b1b7bd;text-align:left;caption-side:bottom}th{text-align:left}label{display:inline-block;margin-bottom:.5rem}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select,textarea{margin:0;line-height:inherit;border-radius:0}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit}input[type=search]{-webkit-box-sizing:inherit;box-sizing:inherit;-webkit-appearance:none}output{display:inline-block}[hidden]{display:none!important}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-bottom:.5rem;font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1{font-size:2.5rem}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.5rem}h5{font-size:1rem}h6{font-size:1rem}.h1{font-size:2.5rem}.h2{font-size:2rem}.h3{font-size:1.5rem}.h4{font-size:1.5rem}.h5{font-size:1rem}.h6{font-size:1rem}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:6rem;font-weight:300}.display-2{font-size:5.5rem;font-weight:300}.display-3{font-size:4.5rem;font-weight:300}.display-4{font-size:3.5rem;font-weight:300}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:80%;font-weight:400}.mark,mark{padding:.2em;background-color:#fcf8e3}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:5px}.dl-horizontal{margin-right:-1.875rem;margin-left:-1.875rem}.dl-horizontal::after{display:table;clear:both;content:""}.initialism{font-size:90%;text-transform:uppercase}.blockquote{padding:.5rem 1rem;margin-bottom:1rem;font-size:1.25rem;border-left:.25rem solid #eceeef}.blockquote-footer{display:block;font-size:80%;line-height:1.5;color:#b1b7bd}.blockquote-footer::before{content:"\2014 \00A0"}.blockquote-reverse{padding-right:1rem;padding-left:0;text-align:right;border-right:.25rem solid #eceeef;border-left:0}.blockquote-reverse .blockquote-footer::before{content:""}.blockquote-reverse .blockquote-footer::after{content:"\00A0 \2014"}.carousel-inner>.carousel-item>a>img,.carousel-inner>.carousel-item>img,.img-fluid{display:block;max-width:100%;height:auto}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:.25rem;line-height:1.5;background-color:#fff;border:1px solid #ddd;border-radius:.25rem;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:90%;color:#b1b7bd}code,kbd,pre,samp{font-family:scp,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace}code{padding:.2rem .4rem;font-size:90%;color:#2f2f2f;background-color:#f7f7f7}kbd{padding:.2rem .4rem;font-size:90%;color:#fff;background-color:#333}kbd kbd{padding:0;font-size:100%;font-weight:700}pre{display:block;margin-top:0;margin-bottom:1rem;font-size:90%;line-height:1.5;color:#373a3c}pre code{padding:0;font-size:inherit;color:inherit;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:.9375rem;padding-left:.9375rem;margin-right:auto;margin-left:auto}.container::after{display:table;clear:both;content:""}@media (min-width:544px){.container{max-width:576px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:940px}}@media (min-width:1200px){.container{max-width:1140px}}.container-fluid{padding-right:.9375rem;padding-left:.9375rem;margin-right:auto;margin-left:auto}.container-fluid::after{display:table;clear:both;content:""}.row{margin-right:-.9375rem;margin-left:-.9375rem}.row::after{display:table;clear:both;content:""}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.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-md-1,.col-md-10,.col-md-11,.col-md-12,.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-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.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-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:.9375rem;padding-left:.9375rem}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-1{width:8.333333%}.col-xs-2{width:16.666667%}.col-xs-3{width:25%}.col-xs-4{width:33.333333%}.col-xs-5{width:41.666667%}.col-xs-6{width:50%}.col-xs-7{width:58.333333%}.col-xs-8{width:66.666667%}.col-xs-9{width:75%}.col-xs-10{width:83.333333%}.col-xs-11{width:91.666667%}.col-xs-12{width:100%}.col-xs-pull-0{right:auto}.col-xs-pull-1{right:8.333333%}.col-xs-pull-2{right:16.666667%}.col-xs-pull-3{right:25%}.col-xs-pull-4{right:33.333333%}.col-xs-pull-5{right:41.666667%}.col-xs-pull-6{right:50%}.col-xs-pull-7{right:58.333333%}.col-xs-pull-8{right:66.666667%}.col-xs-pull-9{right:75%}.col-xs-pull-10{right:83.333333%}.col-xs-pull-11{right:91.666667%}.col-xs-pull-12{right:100%}.col-xs-push-0{left:auto}.col-xs-push-1{left:8.333333%}.col-xs-push-2{left:16.666667%}.col-xs-push-3{left:25%}.col-xs-push-4{left:33.333333%}.col-xs-push-5{left:41.666667%}.col-xs-push-6{left:50%}.col-xs-push-7{left:58.333333%}.col-xs-push-8{left:66.666667%}.col-xs-push-9{left:75%}.col-xs-push-10{left:83.333333%}.col-xs-push-11{left:91.666667%}.col-xs-push-12{left:100%}.col-xs-offset-0{margin-left:0}.col-xs-offset-1{margin-left:8.333333%}.col-xs-offset-2{margin-left:16.666667%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-4{margin-left:33.333333%}.col-xs-offset-5{margin-left:41.666667%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-7{margin-left:58.333333%}.col-xs-offset-8{margin-left:66.666667%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-10{margin-left:83.333333%}.col-xs-offset-11{margin-left:91.666667%}.col-xs-offset-12{margin-left:100%}@media (min-width:544px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-1{width:8.333333%}.col-sm-2{width:16.666667%}.col-sm-3{width:25%}.col-sm-4{width:33.333333%}.col-sm-5{width:41.666667%}.col-sm-6{width:50%}.col-sm-7{width:58.333333%}.col-sm-8{width:66.666667%}.col-sm-9{width:75%}.col-sm-10{width:83.333333%}.col-sm-11{width:91.666667%}.col-sm-12{width:100%}.col-sm-pull-0{right:auto}.col-sm-pull-1{right:8.333333%}.col-sm-pull-2{right:16.666667%}.col-sm-pull-3{right:25%}.col-sm-pull-4{right:33.333333%}.col-sm-pull-5{right:41.666667%}.col-sm-pull-6{right:50%}.col-sm-pull-7{right:58.333333%}.col-sm-pull-8{right:66.666667%}.col-sm-pull-9{right:75%}.col-sm-pull-10{right:83.333333%}.col-sm-pull-11{right:91.666667%}.col-sm-pull-12{right:100%}.col-sm-push-0{left:auto}.col-sm-push-1{left:8.333333%}.col-sm-push-2{left:16.666667%}.col-sm-push-3{left:25%}.col-sm-push-4{left:33.333333%}.col-sm-push-5{left:41.666667%}.col-sm-push-6{left:50%}.col-sm-push-7{left:58.333333%}.col-sm-push-8{left:66.666667%}.col-sm-push-9{left:75%}.col-sm-push-10{left:83.333333%}.col-sm-push-11{left:91.666667%}.col-sm-push-12{left:100%}.col-sm-offset-0{margin-left:0}.col-sm-offset-1{margin-left:8.333333%}.col-sm-offset-2{margin-left:16.666667%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-4{margin-left:33.333333%}.col-sm-offset-5{margin-left:41.666667%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-7{margin-left:58.333333%}.col-sm-offset-8{margin-left:66.666667%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-10{margin-left:83.333333%}.col-sm-offset-11{margin-left:91.666667%}.col-sm-offset-12{margin-left:100%}}@media (min-width:768px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-1{width:8.333333%}.col-md-2{width:16.666667%}.col-md-3{width:25%}.col-md-4{width:33.333333%}.col-md-5{width:41.666667%}.col-md-6{width:50%}.col-md-7{width:58.333333%}.col-md-8{width:66.666667%}.col-md-9{width:75%}.col-md-10{width:83.333333%}.col-md-11{width:91.666667%}.col-md-12{width:100%}.col-md-pull-0{right:auto}.col-md-pull-1{right:8.333333%}.col-md-pull-2{right:16.666667%}.col-md-pull-3{right:25%}.col-md-pull-4{right:33.333333%}.col-md-pull-5{right:41.666667%}.col-md-pull-6{right:50%}.col-md-pull-7{right:58.333333%}.col-md-pull-8{right:66.666667%}.col-md-pull-9{right:75%}.col-md-pull-10{right:83.333333%}.col-md-pull-11{right:91.666667%}.col-md-pull-12{right:100%}.col-md-push-0{left:auto}.col-md-push-1{left:8.333333%}.col-md-push-2{left:16.666667%}.col-md-push-3{left:25%}.col-md-push-4{left:33.333333%}.col-md-push-5{left:41.666667%}.col-md-push-6{left:50%}.col-md-push-7{left:58.333333%}.col-md-push-8{left:66.666667%}.col-md-push-9{left:75%}.col-md-push-10{left:83.333333%}.col-md-push-11{left:91.666667%}.col-md-push-12{left:100%}.col-md-offset-0{margin-left:0}.col-md-offset-1{margin-left:8.333333%}.col-md-offset-2{margin-left:16.666667%}.col-md-offset-3{margin-left:25%}.col-md-offset-4{margin-left:33.333333%}.col-md-offset-5{margin-left:41.666667%}.col-md-offset-6{margin-left:50%}.col-md-offset-7{margin-left:58.333333%}.col-md-offset-8{margin-left:66.666667%}.col-md-offset-9{margin-left:75%}.col-md-offset-10{margin-left:83.333333%}.col-md-offset-11{margin-left:91.666667%}.col-md-offset-12{margin-left:100%}}@media (min-width:992px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-1{width:8.333333%}.col-lg-2{width:16.666667%}.col-lg-3{width:25%}.col-lg-4{width:33.333333%}.col-lg-5{width:41.666667%}.col-lg-6{width:50%}.col-lg-7{width:58.333333%}.col-lg-8{width:66.666667%}.col-lg-9{width:75%}.col-lg-10{width:83.333333%}.col-lg-11{width:91.666667%}.col-lg-12{width:100%}.col-lg-pull-0{right:auto}.col-lg-pull-1{right:8.333333%}.col-lg-pull-2{right:16.666667%}.col-lg-pull-3{right:25%}.col-lg-pull-4{right:33.333333%}.col-lg-pull-5{right:41.666667%}.col-lg-pull-6{right:50%}.col-lg-pull-7{right:58.333333%}.col-lg-pull-8{right:66.666667%}.col-lg-pull-9{right:75%}.col-lg-pull-10{right:83.333333%}.col-lg-pull-11{right:91.666667%}.col-lg-pull-12{right:100%}.col-lg-push-0{left:auto}.col-lg-push-1{left:8.333333%}.col-lg-push-2{left:16.666667%}.col-lg-push-3{left:25%}.col-lg-push-4{left:33.333333%}.col-lg-push-5{left:41.666667%}.col-lg-push-6{left:50%}.col-lg-push-7{left:58.333333%}.col-lg-push-8{left:66.666667%}.col-lg-push-9{left:75%}.col-lg-push-10{left:83.333333%}.col-lg-push-11{left:91.666667%}.col-lg-push-12{left:100%}.col-lg-offset-0{margin-left:0}.col-lg-offset-1{margin-left:8.333333%}.col-lg-offset-2{margin-left:16.666667%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-4{margin-left:33.333333%}.col-lg-offset-5{margin-left:41.666667%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-7{margin-left:58.333333%}.col-lg-offset-8{margin-left:66.666667%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-10{margin-left:83.333333%}.col-lg-offset-11{margin-left:91.666667%}.col-lg-offset-12{margin-left:100%}}@media (min-width:1200px){.col-xl-1,.col-xl-10,.col-xl-11,.col-xl-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-5,.col-xl-6,.col-xl-7,.col-xl-8,.col-xl-9{float:left}.col-xl-1{width:8.333333%}.col-xl-2{width:16.666667%}.col-xl-3{width:25%}.col-xl-4{width:33.333333%}.col-xl-5{width:41.666667%}.col-xl-6{width:50%}.col-xl-7{width:58.333333%}.col-xl-8{width:66.666667%}.col-xl-9{width:75%}.col-xl-10{width:83.333333%}.col-xl-11{width:91.666667%}.col-xl-12{width:100%}.col-xl-pull-0{right:auto}.col-xl-pull-1{right:8.333333%}.col-xl-pull-2{right:16.666667%}.col-xl-pull-3{right:25%}.col-xl-pull-4{right:33.333333%}.col-xl-pull-5{right:41.666667%}.col-xl-pull-6{right:50%}.col-xl-pull-7{right:58.333333%}.col-xl-pull-8{right:66.666667%}.col-xl-pull-9{right:75%}.col-xl-pull-10{right:83.333333%}.col-xl-pull-11{right:91.666667%}.col-xl-pull-12{right:100%}.col-xl-push-0{left:auto}.col-xl-push-1{left:8.333333%}.col-xl-push-2{left:16.666667%}.col-xl-push-3{left:25%}.col-xl-push-4{left:33.333333%}.col-xl-push-5{left:41.666667%}.col-xl-push-6{left:50%}.col-xl-push-7{left:58.333333%}.col-xl-push-8{left:66.666667%}.col-xl-push-9{left:75%}.col-xl-push-10{left:83.333333%}.col-xl-push-11{left:91.666667%}.col-xl-push-12{left:100%}.col-xl-offset-0{margin-left:0}.col-xl-offset-1{margin-left:8.333333%}.col-xl-offset-2{margin-left:16.666667%}.col-xl-offset-3{margin-left:25%}.col-xl-offset-4{margin-left:33.333333%}.col-xl-offset-5{margin-left:41.666667%}.col-xl-offset-6{margin-left:50%}.col-xl-offset-7{margin-left:58.333333%}.col-xl-offset-8{margin-left:66.666667%}.col-xl-offset-9{margin-left:75%}.col-xl-offset-10{margin-left:83.333333%}.col-xl-offset-11{margin-left:91.666667%}.col-xl-offset-12{margin-left:100%}}.table{width:100%;max-width:100%;margin-bottom:1rem}.table td,.table th{padding:.75rem;line-height:1.5;vertical-align:top;border-top:1px solid #eceeef}.table thead th{vertical-align:bottom;border-bottom:2px solid #eceeef}.table tbody+tbody{border-top:2px solid #eceeef}.table .table{background-color:#fff}.table-sm td,.table-sm th{padding:.3rem}.table-bordered{border:1px solid #eceeef}.table-bordered td,.table-bordered th{border:1px solid #eceeef}.table-bordered thead td,.table-bordered thead th{border-bottom-width:2px}.table-striped tbody tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover tbody tr:hover{background-color:#f5f5f5}.table-active,.table-active>td,.table-active>th{background-color:#f5f5f5}.table-hover .table-active:hover{background-color:#e8e8e8}.table-hover .table-active:hover>td,.table-hover .table-active:hover>th{background-color:#e8e8e8}.table-success,.table-success>td,.table-success>th{background-color:#dff0d8}.table-hover .table-success:hover{background-color:#d0e9c6}.table-hover .table-success:hover>td,.table-hover .table-success:hover>th{background-color:#d0e9c6}.table-info,.table-info>td,.table-info>th{background-color:#d9edf7}.table-hover .table-info:hover{background-color:#c4e3f3}.table-hover .table-info:hover>td,.table-hover .table-info:hover>th{background-color:#c4e3f3}.table-warning,.table-warning>td,.table-warning>th{background-color:#fcf8e3}.table-hover .table-warning:hover{background-color:#faf2cc}.table-hover .table-warning:hover>td,.table-hover .table-warning:hover>th{background-color:#faf2cc}.table-danger,.table-danger>td,.table-danger>th{background-color:#f2dede}.table-hover .table-danger:hover{background-color:#ebcccc}.table-hover .table-danger:hover>td,.table-hover .table-danger:hover>th{background-color:#ebcccc}.table-responsive{display:block;width:100%;min-height:.01%;overflow-x:auto}.thead-inverse th{color:#fff;background-color:#373a3c}.thead-default th{color:#55595c;background-color:#eceeef}.table-inverse{color:#eceeef;background-color:#373a3c}.table-inverse.table-bordered{border:0}.table-inverse td,.table-inverse th,.table-inverse thead th{border-color:#55595c}.table-reflow thead{float:left}.table-reflow tbody{display:block;white-space:nowrap}.table-reflow td,.table-reflow th{border-top:1px solid #eceeef;border-left:1px solid #eceeef}.table-reflow td:last-child,.table-reflow th:last-child{border-right:1px solid #eceeef}.table-reflow tbody:last-child tr:last-child td,.table-reflow tbody:last-child tr:last-child th,.table-reflow tfoot:last-child tr:last-child td,.table-reflow tfoot:last-child tr:last-child th,.table-reflow thead:last-child tr:last-child td,.table-reflow thead:last-child tr:last-child th{border-bottom:1px solid #eceeef}.table-reflow tr{float:left}.table-reflow tr td,.table-reflow tr th{display:block!important;border:1px solid #eceeef}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;line-height:1.5;color:#55595c;background-color:#fff;background-image:none;border:1px solid #ccc}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{border-color:#66afe9;outline:0}.form-control::-webkit-input-placeholder{color:#999;opacity:1}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999;opacity:1}.form-control::placeholder{color:#999;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#eceeef;opacity:1}.form-control:disabled{cursor:not-allowed}.form-control-file,.form-control-range{display:block}.form-control-label{padding:.375rem .75rem;margin-bottom:0}@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:2.25rem}.input-group-sm input[type=date].form-control,.input-group-sm input[type=time].form-control,.input-group-sm input[type=datetime-local].form-control,.input-group-sm input[type=month].form-control,input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:1.8625rem}.input-group-lg input[type=date].form-control,.input-group-lg input[type=time].form-control,.input-group-lg input[type=datetime-local].form-control,.input-group-lg input[type=month].form-control,input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:3.166667rem}}.form-control-static{min-height:2.25rem;padding-top:.375rem;padding-bottom:.375rem;margin-bottom:0}.form-control-static.form-control-lg,.form-control-static.form-control-sm,.input-group-lg>.form-control-static.form-control,.input-group-lg>.form-control-static.input-group-addon,.input-group-lg>.input-group-btn>.form-control-static.btn,.input-group-sm>.form-control-static.form-control,.input-group-sm>.form-control-static.input-group-addon,.input-group-sm>.input-group-btn>.form-control-static.btn{padding-right:0;padding-left:0}.form-control-sm,.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{padding:.275rem .75rem;font-size:.875rem;line-height:1.5}.form-control-lg,.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{padding:.75rem 1.25rem;font-size:1.25rem;line-height:1.333333}.form-group{margin-bottom:1rem}.checkbox,.radio{position:relative;display:block;margin-bottom:.75rem}.checkbox label,.radio label{padding-left:1.25rem;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox label input:only-child,.radio label input:only-child{position:static}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:.25rem;margin-left:-1.25rem}.checkbox+.checkbox,.radio+.radio{margin-top:-.25rem}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:1.25rem;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:.75rem}input[type=checkbox].disabled,input[type=checkbox]:disabled,input[type=radio].disabled,input[type=radio]:disabled{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label{cursor:not-allowed}.form-control-danger,.form-control-success,.form-control-warning{padding-right:2.25rem;background-repeat:no-repeat;background-position:center right .5625rem;-webkit-background-size:1.4625rem 1.4625rem;background-size:1.4625rem 1.4625rem}.has-success .checkbox,.has-success .checkbox-inline,.has-success .form-control-label,.has-success .radio,.has-success .radio-inline,.has-success .text-help,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#64de79}.has-success .form-control{border-color:#64de79}.has-success .input-group-addon{color:#64de79;background-color:#fff;border-color:#64de79}.has-success .form-control-feedback{color:#64de79}.has-success .form-control-success{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjNWNiODVjIiBkPSJNMjMzLjggNjEwYy0xMy4zIDAtMjYtNi0zNC0xNi44TDkwLjUgNDQ4LjhDNzYuMyA0MzAgODAgNDAzLjMgOTguOCAzODljMTguOC0xNC4yIDQ1LjUtMTAuNCA1OS44IDguNGw3MiA5NUw0NTEuMyAyNDJjMTIuNS0yMCAzOC44LTI2LjIgNTguOC0xMy43IDIwIDEyLjQgMjYgMzguNyAxMy43IDU4LjhMMjcwIDU5MGMtNy40IDEyLTIwLjIgMTkuNC0zNC4zIDIwaC0yeiIvPjwvc3ZnPg==)}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .form-control-label,.has-warning .radio,.has-warning .radio-inline,.has-warning .text-help,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#a100fe}.has-warning .form-control{border-color:#a100fe}.has-warning .input-group-addon{color:#a100fe;background-color:#eccbff;border-color:#a100fe}.has-warning .form-control-feedback{color:#a100fe}.has-warning .form-control-warning{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZjBhZDRlIiBkPSJNNjAzIDY0MC4ybC0yNzguNS01MDljLTMuOC02LjYtMTAuOC0xMC42LTE4LjUtMTAuNnMtMTQuNyA0LTE4LjUgMTAuNkw5IDY0MC4yYy0zLjcgNi41LTMuNiAxNC40LjIgMjAuOCAzLjggNi41IDEwLjggMTAuNCAxOC4zIDEwLjRoNTU3YzcuNiAwIDE0LjYtNCAxOC40LTEwLjQgMy41LTYuNCAzLjYtMTQuNCAwLTIwLjh6bS0yNjYuNC0zMGgtNjEuMlY1NDloNjEuMnY2MS4yem0wLTEwN2gtNjEuMlYzMDRoNjEuMnYxOTl6Ii8+PC9zdmc+)}.has-danger .checkbox,.has-danger .checkbox-inline,.has-danger .form-control-label,.has-danger .radio,.has-danger .radio-inline,.has-danger .text-help,.has-danger.checkbox label,.has-danger.checkbox-inline label,.has-danger.radio label,.has-danger.radio-inline label{color:#ff0808}.has-danger .form-control{border-color:#ff0808}.has-danger .input-group-addon{color:#ff0808;background-color:#ffd4d4;border-color:#ff0808}.has-danger .form-control-feedback{color:#ff0808}.has-danger .form-control-danger{background-image:url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA2MTIgNzkyIj48cGF0aCBmaWxsPSIjZDk1MzRmIiBkPSJNNDQ3IDU0NC40Yy0xNC40IDE0LjQtMzcuNiAxNC40LTUyIDBsLTg5LTkyLjctODkgOTIuN2MtMTQuNSAxNC40LTM3LjcgMTQuNC01MiAwLTE0LjQtMTQuNC0xNC40LTM3LjYgMC01Mmw5Mi40LTk2LjMtOTIuNC05Ni4zYy0xNC40LTE0LjQtMTQuNC0zNy42IDAtNTJzMzcuNi0xNC4zIDUyIDBsODkgOTIuOCA4OS4yLTkyLjdjMTQuNC0xNC40IDM3LjYtMTQuNCA1MiAwIDE0LjMgMTQuNCAxNC4zIDM3LjYgMCA1MkwzNTQuNiAzOTZsOTIuNCA5Ni40YzE0LjQgMTQuNCAxNC40IDM3LjYgMCA1MnoiLz48L3N2Zz4=)}@media (min-width:544px){.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 .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .form-control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.btn{display:inline-block;padding:.375rem 1rem;font-size:1rem;font-weight:400;line-height:1.5;text-align:center;white-space:nowrap;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border:1px solid transparent}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:focus,.btn:hover{text-decoration:none}.btn.focus{text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0}.btn.disabled,.btn:disabled{cursor:not-allowed;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-primary{color:#fff;background-color:#000;border-color:#000}.btn-primary:hover{color:#fff;background-color:#000;border-color:#000}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#000;border-color:#000}.btn-primary.active,.btn-primary:active,.open>.btn-primary.dropdown-toggle{color:#fff;background-color:#000;background-image:none;border-color:#000}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.btn-primary.dropdown-toggle.focus,.open>.btn-primary.dropdown-toggle:focus,.open>.btn-primary.dropdown-toggle:hover{color:#fff;background-color:#000;border-color:#000}.btn-primary.disabled.focus,.btn-primary.disabled:focus,.btn-primary:disabled.focus,.btn-primary:disabled:focus{background-color:#000;border-color:#000}.btn-primary.disabled:hover,.btn-primary:disabled:hover{background-color:#000;border-color:#000}.btn-secondary{color:#373a3c;background-color:#fff;border-color:#ccc}.btn-secondary:hover{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary.focus,.btn-secondary:focus{color:#373a3c;background-color:#e6e6e6;border-color:#adadad}.btn-secondary.active,.btn-secondary:active,.open>.btn-secondary.dropdown-toggle{color:#373a3c;background-color:#e6e6e6;background-image:none;border-color:#adadad}.btn-secondary.active.focus,.btn-secondary.active:focus,.btn-secondary.active:hover,.btn-secondary:active.focus,.btn-secondary:active:focus,.btn-secondary:active:hover,.open>.btn-secondary.dropdown-toggle.focus,.open>.btn-secondary.dropdown-toggle:focus,.open>.btn-secondary.dropdown-toggle:hover{color:#373a3c;background-color:#d4d4d4;border-color:#8c8c8c}.btn-secondary.disabled.focus,.btn-secondary.disabled:focus,.btn-secondary:disabled.focus,.btn-secondary:disabled:focus{background-color:#fff;border-color:#ccc}.btn-secondary.disabled:hover,.btn-secondary:disabled:hover{background-color:#fff;border-color:#ccc}.btn-info{color:#fff;background-color:#0500f0;border-color:#0500f0}.btn-info:hover{color:#fff;background-color:#0400bd;border-color:#0400b3}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#0400bd;border-color:#0400b3}.btn-info.active,.btn-info:active,.open>.btn-info.dropdown-toggle{color:#fff;background-color:#0400bd;background-image:none;border-color:#0400b3}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.btn-info.dropdown-toggle.focus,.open>.btn-info.dropdown-toggle:focus,.open>.btn-info.dropdown-toggle:hover{color:#fff;background-color:#030099;border-color:#020071}.btn-info.disabled.focus,.btn-info.disabled:focus,.btn-info:disabled.focus,.btn-info:disabled:focus{background-color:#0500f0;border-color:#0500f0}.btn-info.disabled:hover,.btn-info:disabled:hover{background-color:#0500f0;border-color:#0500f0}.btn-success{color:#fff;background-color:#64de79;border-color:#64de79}.btn-success:hover{color:#fff;background-color:#3ad555;border-color:#32d34d}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#3ad555;border-color:#32d34d}.btn-success.active,.btn-success:active,.open>.btn-success.dropdown-toggle{color:#fff;background-color:#3ad555;background-image:none;border-color:#32d34d}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.btn-success.dropdown-toggle.focus,.open>.btn-success.dropdown-toggle:focus,.open>.btn-success.dropdown-toggle:hover{color:#fff;background-color:#29c244;border-color:#22a038}.btn-success.disabled.focus,.btn-success.disabled:focus,.btn-success:disabled.focus,.btn-success:disabled:focus{background-color:#64de79;border-color:#64de79}.btn-success.disabled:hover,.btn-success:disabled:hover{background-color:#64de79;border-color:#64de79}.btn-warning{color:#fff;background-color:#a100fe;border-color:#a100fe}.btn-warning:hover{color:#fff;background-color:#8100cb;border-color:#7a00c1}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#8100cb;border-color:#7a00c1}.btn-warning.active,.btn-warning:active,.open>.btn-warning.dropdown-toggle{color:#fff;background-color:#8100cb;background-image:none;border-color:#7a00c1}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.btn-warning.dropdown-toggle.focus,.open>.btn-warning.dropdown-toggle:focus,.open>.btn-warning.dropdown-toggle:hover{color:#fff;background-color:#6a00a7;border-color:#50007f}.btn-warning.disabled.focus,.btn-warning.disabled:focus,.btn-warning:disabled.focus,.btn-warning:disabled:focus{background-color:#a100fe;border-color:#a100fe}.btn-warning.disabled:hover,.btn-warning:disabled:hover{background-color:#a100fe;border-color:#a100fe}.btn-danger{color:#fff;background-color:#ff0808;border-color:#ff0808}.btn-danger:hover{color:#fff;background-color:#d40000;border-color:#ca0000}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#d40000;border-color:#ca0000}.btn-danger.active,.btn-danger:active,.open>.btn-danger.dropdown-toggle{color:#fff;background-color:#d40000;background-image:none;border-color:#ca0000}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.btn-danger.dropdown-toggle.focus,.open>.btn-danger.dropdown-toggle:focus,.open>.btn-danger.dropdown-toggle:hover{color:#fff;background-color:#b00000;border-color:#800}.btn-danger.disabled.focus,.btn-danger.disabled:focus,.btn-danger:disabled.focus,.btn-danger:disabled:focus{background-color:#ff0808;border-color:#ff0808}.btn-danger.disabled:hover,.btn-danger:disabled:hover{background-color:#ff0808;border-color:#ff0808}.btn-primary-outline{color:#000;background-color:transparent;background-image:none;border-color:#000}.btn-primary-outline.active,.btn-primary-outline.focus,.btn-primary-outline:active,.btn-primary-outline:focus,.open>.btn-primary-outline.dropdown-toggle{color:#fff;background-color:#000;border-color:#000}.btn-primary-outline:hover{color:#fff;background-color:#000;border-color:#000}.btn-primary-outline.disabled.focus,.btn-primary-outline.disabled:focus,.btn-primary-outline:disabled.focus,.btn-primary-outline:disabled:focus{border-color:#333}.btn-primary-outline.disabled:hover,.btn-primary-outline:disabled:hover{border-color:#333}.btn-secondary-outline{color:#ccc;background-color:transparent;background-image:none;border-color:#ccc}.btn-secondary-outline.active,.btn-secondary-outline.focus,.btn-secondary-outline:active,.btn-secondary-outline:focus,.open>.btn-secondary-outline.dropdown-toggle{color:#fff;background-color:#ccc;border-color:#ccc}.btn-secondary-outline:hover{color:#fff;background-color:#ccc;border-color:#ccc}.btn-secondary-outline.disabled.focus,.btn-secondary-outline.disabled:focus,.btn-secondary-outline:disabled.focus,.btn-secondary-outline:disabled:focus{border-color:#fff}.btn-secondary-outline.disabled:hover,.btn-secondary-outline:disabled:hover{border-color:#fff}.btn-info-outline{color:#0500f0;background-color:transparent;background-image:none;border-color:#0500f0}.btn-info-outline.active,.btn-info-outline.focus,.btn-info-outline:active,.btn-info-outline:focus,.open>.btn-info-outline.dropdown-toggle{color:#fff;background-color:#0500f0;border-color:#0500f0}.btn-info-outline:hover{color:#fff;background-color:#0500f0;border-color:#0500f0}.btn-info-outline.disabled.focus,.btn-info-outline.disabled:focus,.btn-info-outline:disabled.focus,.btn-info-outline:disabled:focus{border-color:#5b57ff}.btn-info-outline.disabled:hover,.btn-info-outline:disabled:hover{border-color:#5b57ff}.btn-success-outline{color:#64de79;background-color:transparent;background-image:none;border-color:#64de79}.btn-success-outline.active,.btn-success-outline.focus,.btn-success-outline:active,.btn-success-outline:focus,.open>.btn-success-outline.dropdown-toggle{color:#fff;background-color:#64de79;border-color:#64de79}.btn-success-outline:hover{color:#fff;background-color:#64de79;border-color:#64de79}.btn-success-outline.disabled.focus,.btn-success-outline.disabled:focus,.btn-success-outline:disabled.focus,.btn-success-outline:disabled:focus{border-color:#b8f0c2}.btn-success-outline.disabled:hover,.btn-success-outline:disabled:hover{border-color:#b8f0c2}.btn-warning-outline{color:#a100fe;background-color:transparent;background-image:none;border-color:#a100fe}.btn-warning-outline.active,.btn-warning-outline.focus,.btn-warning-outline:active,.btn-warning-outline:focus,.open>.btn-warning-outline.dropdown-toggle{color:#fff;background-color:#a100fe;border-color:#a100fe}.btn-warning-outline:hover{color:#fff;background-color:#a100fe;border-color:#a100fe}.btn-warning-outline.disabled.focus,.btn-warning-outline.disabled:focus,.btn-warning-outline:disabled.focus,.btn-warning-outline:disabled:focus{border-color:#c765ff}.btn-warning-outline.disabled:hover,.btn-warning-outline:disabled:hover{border-color:#c765ff}.btn-danger-outline{color:#ff0808;background-color:transparent;background-image:none;border-color:#ff0808}.btn-danger-outline.active,.btn-danger-outline.focus,.btn-danger-outline:active,.btn-danger-outline:focus,.open>.btn-danger-outline.dropdown-toggle{color:#fff;background-color:#ff0808;border-color:#ff0808}.btn-danger-outline:hover{color:#fff;background-color:#ff0808;border-color:#ff0808}.btn-danger-outline.disabled.focus,.btn-danger-outline.disabled:focus,.btn-danger-outline:disabled.focus,.btn-danger-outline:disabled:focus{border-color:#ff6e6e}.btn-danger-outline.disabled:hover,.btn-danger-outline:disabled:hover{border-color:#ff6e6e}.btn-link{font-weight:400;color:#000;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link:disabled{background-color:transparent}.btn-link,.btn-link:active,.btn-link:focus{border-color:transparent}.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#000;text-decoration:underline;background-color:transparent}.btn-link:disabled:focus,.btn-link:disabled:hover{color:#b1b7bd;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:.75rem 1.25rem;font-size:1.25rem;line-height:1.333333}.btn-group-sm>.btn,.btn-sm{padding:.25rem .75rem;font-size:.875rem;line-height:1.5}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height;-o-transition-property:height;transition-property:height}.dropdown,.dropup{position:relative}.dropdown-toggle::after{display:inline-block;width:0;height:0;margin-right:.25rem;margin-left:.25rem;vertical-align:middle;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-left:.3em solid transparent}.dropdown-toggle:focus{outline:0}.dropup .dropdown-toggle::after{border-top:0;border-bottom:.3em solid}.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;font-size:1rem;color:#373a3c;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.15)}.dropdown-divider{height:1px;margin:.5rem 0;overflow:hidden;background-color:#e5e5e5}.dropdown-item{display:block;width:100%;padding:3px 20px;clear:both;font-weight:400;line-height:1.5;color:#373a3c;text-align:inherit;white-space:nowrap;background:0 0;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#2b2d2f;text-decoration:none;background-color:#f5f5f5}.dropdown-item.active,.dropdown-item.active:focus,.dropdown-item.active:hover{color:#fff;text-decoration:none;background-color:#000;outline:0}.dropdown-item.disabled,.dropdown-item.disabled:focus,.dropdown-item.disabled:hover{color:#b1b7bd}.dropdown-item.disabled:focus,.dropdown-item.disabled:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:"progid:DXImageTransform.Microsoft.gradient(enabled = false)"}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:.875rem;line-height:1.5;color:#b1b7bd;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:.3em solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus{z-index:2}.btn-group-vertical>.btn:hover,.btn-group>.btn:hover{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::after{display:table;clear:both;content:""}.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-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group-lg.btn-group>.btn+.dropdown-toggle,.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn .caret{margin-left:0}.btn-group-lg>.btn .caret,.btn-lg .caret{border-width:.3em .3em 0;border-bottom-width:0}.dropup .btn-group-lg>.btn .caret,.dropup .btn-lg .caret{border-width:0 .3em .3em}.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::after{display:table;clear:both;content:""}.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:.25rem}.btn-group-vertical>.btn:last-child:not(:first-child){border-bottom-left-radius:.25rem}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group .form-control:active,.input-group .form-control:focus,.input-group .form-control:hover{z-index:3}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1;color:#55595c;text-align:center;background-color:#eceeef;border:1px solid #ccc}.input-group-addon.form-control-sm,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.input-group-addon.btn{padding:.275rem .75rem;font-size:.875rem}.input-group-addon.form-control-lg,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.input-group-addon.btn{padding:.75rem 1.25rem;font-size:1.25rem}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group-addon:first-child{border-right: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:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:3}.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}.input-group-btn:last-child>.btn-group:active,.input-group-btn:last-child>.btn-group:focus,.input-group-btn:last-child>.btn-group:hover,.input-group-btn:last-child>.btn:active,.input-group-btn:last-child>.btn:focus,.input-group-btn:last-child>.btn:hover{z-index:3}.c-input{position:relative;display:inline;padding-left:1.5rem;color:#555;cursor:pointer}.c-input>input{position:absolute;z-index:-1;opacity:0}.c-input>input:checked~.c-indicator{color:#fff;background-color:#0074d9}.c-input>input:focus~.c-indicator{-webkit-box-shadow:0 0 0 .075rem #fff,0 0 0 .2rem #0074d9;box-shadow:0 0 0 .075rem #fff,0 0 0 .2rem #0074d9}.c-input>input:active~.c-indicator{color:#fff;background-color:#84c6ff}.c-input+.c-input{margin-left:1rem}.c-indicator{position:absolute;top:0;left:0;display:block;width:1rem;height:1rem;font-size:65%;line-height:1rem;color:#eee;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#eee;background-repeat:no-repeat;background-position:center center;-webkit-background-size:50% 50%;background-size:50% 50%}.c-checkbox .c-indicator{border-radius:.25rem}.c-checkbox input:checked~.c-indicator{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTYuNCwxTDUuNywxLjdMMi45LDQuNUwyLjEsMy43TDEuNCwzTDAsNC40bDAuNywwLjdsMS41LDEuNWwwLjcsMC43bDAuNy0wLjdsMy41LTMuNWwwLjctMC43TDYuNCwxTDYuNCwxeiINCgkvPg0KPC9zdmc+DQo=)}.c-checkbox input:indeterminate~.c-indicator{background-color:#0074d9;background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iOHB4IiBoZWlnaHQ9IjhweCIgdmlld0JveD0iMCAwIDggOCIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgOCA4IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxwYXRoIGZpbGw9IiNGRkZGRkYiIGQ9Ik0wLDN2Mmg4VjNIMHoiLz4NCjwvc3ZnPg0K)}.c-radio .c-indicator{border-radius:50%}.c-radio input:checked~.c-indicator{background-image:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNy4xLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgOCA4IiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA4IDgiIHhtbDpzcGFjZT0icHJlc2VydmUiPg0KPHBhdGggZmlsbD0iI0ZGRkZGRiIgZD0iTTQsMUMyLjMsMSwxLDIuMywxLDRzMS4zLDMsMywzczMtMS4zLDMtM1M1LjcsMSw0LDF6Ii8+DQo8L3N2Zz4NCg==)}.c-inputs-stacked .c-input{display:inline}.c-inputs-stacked .c-input::after{display:block;margin-bottom:.25rem;content:""}.c-inputs-stacked .c-input+.c-input{margin-left:0}.c-select{display:inline-block;max-width:100%;-webkit-appearance:none;padding:.375rem 1.75rem .375rem .75rem;padding-right:.75rem\9;color:#55595c;vertical-align:middle;background:#fff url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAUCAMAAACzvE1FAAAADFBMVEUzMzMzMzMzMzMzMzMKAG/3AAAAA3RSTlMAf4C/aSLHAAAAPElEQVR42q3NMQ4AIAgEQTn//2cLdRKppSGzBYwzVXvznNWs8C58CiussPJj8h6NwgorrKRdTvuV9v16Afn0AYFOB7aYAAAAAElFTkSuQmCC) no-repeat right .75rem center;background-image:none\9;-webkit-background-size:8px 10px;background-size:8px 10px;border:1px solid #ccc;-moz-appearance:none}.c-select:focus{border-color:#51a7e8;outline:0}.c-select::-ms-expand{opacity:0}.c-select-sm{padding-top:3px;padding-bottom:3px;font-size:12px}.c-select-sm:not([multiple]){height:26px;min-height:26px}.file{position:relative;display:inline-block;height:2.5rem;cursor:pointer}.file input{min-width:14rem;margin:0;filter:alpha(opacity=0);opacity:0}.file-custom{position:absolute;top:0;right:0;left:0;z-index:5;height:2.5rem;padding:.5rem 1rem;line-height:1.5;color:#555;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:#fff;border:1px solid #ddd;border-radius:.25rem}.file-custom::after{content:"Choose file..."}.file-custom::before{position:absolute;top:-.075rem;right:-.075rem;bottom:-.075rem;z-index:6;display:block;height:2.5rem;padding:.5rem 1rem;line-height:1.5;color:#555;content:"Browse";background-color:#eee;border:1px solid #ddd;border-radius:0 .25rem .25rem 0}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:inline-block}.nav-link:focus,.nav-link:hover{text-decoration:none}.nav-link.disabled{color:#b1b7bd}.nav-link.disabled,.nav-link.disabled:focus,.nav-link.disabled:hover{color:#b1b7bd;cursor:not-allowed;background-color:transparent}.nav-inline .nav-item{display:inline-block}.nav-inline .nav-item+.nav-item,.nav-inline .nav-link+.nav-link{margin-left:1rem}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs::after{display:table;clear:both;content:""}.nav-tabs .nav-item{float:left;margin-bottom:-1px}.nav-tabs .nav-item+.nav-item{margin-left:.2rem}.nav-tabs .nav-link{display:block;padding:.5em 1em;border:1px solid transparent}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#eceeef #eceeef #ddd}.nav-tabs .nav-link.disabled,.nav-tabs .nav-link.disabled:focus,.nav-tabs .nav-link.disabled:hover{color:#b1b7bd;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.open .nav-link,.nav-tabs .nav-item.open .nav-link:focus,.nav-tabs .nav-item.open .nav-link:hover,.nav-tabs .nav-link.active,.nav-tabs .nav-link.active:focus,.nav-tabs .nav-link.active:hover{color:#55595c;background-color:#fff;border-color:#ddd #ddd transparent}.nav-pills::after{display:table;clear:both;content:""}.nav-pills .nav-item{float:left}.nav-pills .nav-item+.nav-item{margin-left:.2rem}.nav-pills .nav-link{display:block;padding:.5em 1em}.nav-pills .nav-item.open .nav-link,.nav-pills .nav-item.open .nav-link:focus,.nav-pills .nav-item.open .nav-link:hover,.nav-pills .nav-link.active,.nav-pills .nav-link.active:focus,.nav-pills .nav-link.active:hover{color:#fff;cursor:default;background-color:#000}.nav-stacked .nav-item{display:block;float:none}.nav-stacked .nav-item+.nav-item{margin-top:.2rem;margin-left:0}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px}.navbar{position:relative;padding:.5rem 1rem}.navbar::after{display:table;clear:both;content:""}.navbar-full{z-index:1000}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}.navbar-fixed-top{top:0}.navbar-fixed-bottom{bottom:0}.navbar-sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1030;width:100%}.navbar-brand{float:left;padding-top:.25rem;padding-bottom:.25rem;margin-right:1rem;font-size:1.25rem}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}.navbar-divider{float:left;width:1px;padding-top:.425rem;padding-bottom:.425rem;margin-right:1rem;margin-left:1rem;overflow:hidden}.navbar-divider::before{content:"\00a0"}.navbar-toggler{padding:.5rem .75rem;font-size:1.25rem;line-height:1;background:0 0;border:1px solid transparent}.navbar-toggler:focus,.navbar-toggler:hover{text-decoration:none}@media (min-width:544px){.navbar-toggleable-xs{display:block!important}}@media (min-width:768px){.navbar-toggleable-sm{display:block!important}}@media (min-width:992px){.navbar-toggleable-md{display:block!important}}.navbar-nav .nav-item{float:left}.navbar-nav .nav-link{display:block;padding-top:.425rem;padding-bottom:.425rem}.navbar-nav .nav-link+.nav-link{margin-left:1rem}.navbar-nav .nav-item+.nav-item{margin-left:1rem}.navbar-light .navbar-brand{color:rgba(0,0,0,.8)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.8)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.6)}.navbar-light .navbar-nav .active>.nav-link,.navbar-light .navbar-nav .active>.nav-link:focus,.navbar-light .navbar-nav .active>.nav-link:hover,.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .nav-link.active:focus,.navbar-light .navbar-nav .nav-link.active:hover,.navbar-light .navbar-nav .nav-link.open,.navbar-light .navbar-nav .nav-link.open:focus,.navbar-light .navbar-nav .nav-link.open:hover,.navbar-light .navbar-nav .open>.nav-link,.navbar-light .navbar-nav .open>.nav-link:focus,.navbar-light .navbar-nav .open>.nav-link:hover{color:rgba(0,0,0,.8)}.navbar-light .navbar-divider{background-color:rgba(0,0,0,.075)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.5)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .active>.nav-link,.navbar-dark .navbar-nav .active>.nav-link:focus,.navbar-dark .navbar-nav .active>.nav-link:hover,.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .nav-link.active:focus,.navbar-dark .navbar-nav .nav-link.active:hover,.navbar-dark .navbar-nav .nav-link.open,.navbar-dark .navbar-nav .nav-link.open:focus,.navbar-dark .navbar-nav .nav-link.open:hover,.navbar-dark .navbar-nav .open>.nav-link,.navbar-dark .navbar-nav .open>.nav-link:focus,.navbar-dark .navbar-nav .open>.nav-link:hover{color:#fff}.navbar-dark .navbar-divider{background-color:rgba(255,255,255,.075)}.card{position:relative;display:block;margin-bottom:.75rem;background-color:#fff;border:1px solid #e5e5e5}.card-block{padding:1.25rem}.card-title{margin-bottom:.75rem}.card-subtitle{margin-top:-.375rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link:hover{text-decoration:none}.card-link+.card-link{margin-left:1.25rem}.card-header{padding:.75rem 1.25rem;background-color:#f5f5f5;border-bottom:1px solid #e5e5e5}.card-footer{padding:.75rem 1.25rem;background-color:#f5f5f5;border-top:1px solid #e5e5e5}.card-primary{background-color:#000;border-color:#000}.card-success{background-color:#64de79;border-color:#64de79}.card-info{background-color:#0500f0;border-color:#0500f0}.card-warning{background-color:#a100fe;border-color:#a100fe}.card-danger{background-color:#ff0808;border-color:#ff0808}.card-primary-outline{background-color:transparent;border-color:#000}.card-secondary-outline{background-color:transparent;border-color:#ccc}.card-info-outline{background-color:transparent;border-color:#0500f0}.card-success-outline{background-color:transparent;border-color:#64de79}.card-warning-outline{background-color:transparent;border-color:#a100fe}.card-danger-outline{background-color:transparent;border-color:#ff0808}.card-inverse .card-footer,.card-inverse .card-header{border-bottom:1px solid rgba(255,255,255,.2)}.card-inverse .card-blockquote,.card-inverse .card-footer,.card-inverse .card-header,.card-inverse .card-title{color:#fff}.card-inverse .card-blockquote>footer,.card-inverse .card-link,.card-inverse .card-text{color:rgba(255,255,255,.65)}.card-inverse .card-link:focus,.card-inverse .card-link:hover{color:#fff}.card-blockquote{padding:0;margin-bottom:0;border-left:0}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1.25rem}@media (min-width:544px){.card-deck{display:table;table-layout:fixed;border-spacing:1.25rem 0}.card-deck .card{display:table-cell;width:1%;vertical-align:top}.card-deck-wrapper{margin-right:-1.25rem;margin-left:-1.25rem}}@media (min-width:544px){.card-group{display:table;width:100%;table-layout:fixed}.card-group .card{display:table-cell;vertical-align:top}.card-group .card+.card{margin-left:0;border-left:0}}@media (min-width:544px){.card-columns{-webkit-column-count:3;-moz-column-count:3;column-count:3;-webkit-column-gap:1.25rem;-moz-column-gap:1.25rem;column-gap:1.25rem}.card-columns .card{display:inline-block;width:100%}}.breadcrumb{padding:.75rem 1rem;margin-bottom:1rem;list-style:none;background-color:#eceeef}.breadcrumb::after{display:table;clear:both;content:""}.breadcrumb>li{float:left}.breadcrumb>li+li::before{padding-right:.5rem;padding-left:.5rem;color:#b1b7bd;content:"/"}.breadcrumb>.active{color:#b1b7bd}.pagination{display:inline-block;padding-left:0;margin-top:1rem;margin-bottom:1rem}.page-item{display:inline}.page-item:first-child .page-link{margin-left:0}.page-item.active .page-link,.page-item.active .page-link:focus,.page-item.active .page-link:hover{z-index:2;color:#fff;cursor:default;background-color:#000;border-color:#000}.page-item.disabled .page-link,.page-item.disabled .page-link:focus,.page-item.disabled .page-link:hover{color:#b1b7bd;cursor:not-allowed;background-color:#fff;border-color:#ddd}.page-link{position:relative;float:left;padding:.5rem .75rem;margin-left:-1px;line-height:1.5;color:#000;text-decoration:none;background-color:#fff;border:1px solid #ddd}.page-link:focus,.page-link:hover{color:#000;background-color:#eceeef;border-color:#ddd}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem;line-height:1.333333}.pagination-sm .page-link{padding:.275rem .75rem;font-size:.875rem;line-height:1.5}.pager{padding-left:0;margin-top:1rem;margin-bottom:1rem;text-align:center;list-style:none}.pager::after{display:table;clear:both;content:""}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eceeef}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover{color:#b1b7bd;cursor:not-allowed;background-color:#fff}.pager .disabled>span{color:#b1b7bd;cursor:not-allowed;background-color:#fff}.pager-next>a,.pager-next>span{float:right}.pager-prev>a,.pager-prev>span{float:left}.label{display:inline-block;padding:.25em .4em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline}.label:empty{display:none}.btn .label{position:relative;top:-1px}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label-pill{padding-right:.6em;padding-left:.6em}.label-default{background-color:#b1b7bd}.label-default[href]:focus,.label-default[href]:hover{background-color:#959ea6}.label-primary{background-color:#000}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#000}.label-success{background-color:#64de79}.label-success[href]:focus,.label-success[href]:hover{background-color:#3ad555}.label-info{background-color:#0500f0}.label-info[href]:focus,.label-info[href]:hover{background-color:#0400bd}.label-warning{background-color:#a100fe}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#8100cb}.label-danger{background-color:#ff0808}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#d40000}.jumbotron{padding:2rem 1rem;margin-bottom:2rem;background-color:#eceeef}@media (min-width:544px){.jumbotron{padding:4rem 2rem}}.jumbotron-hr{border-top-color:#d0d5d8}.jumbotron-fluid{padding-right:0;padding-left:0}.alert{padding:15px;margin-bottom:1rem;border:1px solid transparent}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:35px}.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d0e9c6}.alert-success hr{border-top-color:#c1e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bcdff1}.alert-info hr{border-top-color:#a6d5ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faf2cc}.alert-warning hr{border-top-color:#f7ecb5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebcccc}.alert-danger hr{border-top-color:#e4b9b9}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:1rem 0}to{background-position:0 0}}.progress{display:block;width:100%;height:1rem;margin-bottom:1rem}.progress[value]{-webkit-appearance:none;color:#0074d9;border:0;-moz-appearance:none;appearance:none}.progress[value]::-webkit-progress-bar{background-color:#eee}.progress[value]::-webkit-progress-value::before{content:attr(value)}.progress[value]::-webkit-progress-value{background-color:#0074d9;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.progress[value="100"]::-webkit-progress-value{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}@media screen and (min-width:0\0){.progress{background-color:#eee}.progress-bar{display:inline-block;height:1rem;text-indent:-999rem;background-color:#0074d9;border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.progress[width^="0"]{min-width:2rem;color:#b1b7bd;background-color:transparent;background-image:none}.progress[width="100%"]{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}}.progress-striped[value]::-webkit-progress-value{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:1rem 1rem;background-size:1rem 1rem}.progress-striped[value]::-moz-progress-bar{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}@media screen and (min-width:0\0){.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:1rem 1rem;background-size:1rem 1rem}}.progress-animated[value]::-webkit-progress-value{-webkit-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-animated[value]::-moz-progress-bar{animation:progress-bar-stripes 2s linear infinite}@media screen and (min-width:0\0){.progress-animated .progress-bar-striped{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}}.progress-success[value]::-webkit-progress-value{background-color:#64de79}.progress-success[value]::-moz-progress-bar{background-color:#64de79}@media screen and (min-width:0\0){.progress-success .progress-bar{background-color:#64de79}}.progress-info[value]::-webkit-progress-value{background-color:#0500f0}.progress-info[value]::-moz-progress-bar{background-color:#0500f0}@media screen and (min-width:0\0){.progress-info .progress-bar{background-color:#0500f0}}.progress-warning[value]::-webkit-progress-value{background-color:#a100fe}.progress-warning[value]::-moz-progress-bar{background-color:#a100fe}@media screen and (min-width:0\0){.progress-warning .progress-bar{background-color:#a100fe}}.progress-danger[value]::-webkit-progress-value{background-color:#ff0808}.progress-danger[value]::-moz-progress-bar{background-color:#ff0808}@media screen and (min-width:0\0){.progress-danger .progress-bar{background-color:#ff0808}}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right{padding-left:10px}.media-left{padding-right:10px}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:0}.list-group-item{position:relative;display:block;padding:.75rem 1.25rem;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:last-child{margin-bottom:0}.list-group-flush .list-group-item{border-width:1px 0;border-radius:0}.list-group-flush:first-child .list-group-item:first-child{border-top:0}.list-group-flush:last-child .list-group-item:last-child{border-bottom:0}a.list-group-item,button.list-group-item{width:100%;color:#555;text-align:inherit}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#b1b7bd;cursor:not-allowed;background-color:#eceeef}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#b1b7bd}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#000;border-color:#000}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#666}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}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:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}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:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}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:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}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:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-21by9{padding-bottom:42.857143%}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.embed-responsive-1by1{padding-bottom:100%}.close{float:right;font-size:1.5rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:transform .3s ease-out,-o-transform .3s ease-out;transition:-webkit-transform .3s ease-out;transition:transform .3s ease-out;transition:transform .3s ease-out,-webkit-transform .3s ease-out,-o-transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.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:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.in{opacity:.5}.modal-header{padding:15px;border-bottom:1px solid #e5e5e5}.modal-header::after{display:table;clear:both;content:""}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.5}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer::after{display:table;clear:both;content:""}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.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:544px){.modal-dialog{width:600px;margin:30px auto}.modal-sm{width:300px}}@media (min-width:768px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:bau,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;opacity:0;line-break:auto}.tooltip.in{opacity:.9}.tooltip.bs-tether-element-attached-bottom,.tooltip.tooltip-top{padding:5px 0;margin-top:-3px}.tooltip.bs-tether-element-attached-bottom .tooltip-arrow,.tooltip.tooltip-top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.bs-tether-element-attached-left,.tooltip.tooltip-right{padding:0 5px;margin-left:3px}.tooltip.bs-tether-element-attached-left .tooltip-arrow,.tooltip.tooltip-right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.bs-tether-element-attached-top,.tooltip.tooltip-bottom{padding:5px 0;margin-top:3px}.tooltip.bs-tether-element-attached-top .tooltip-arrow,.tooltip.tooltip-bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bs-tether-element-attached-right,.tooltip.tooltip-left{padding:0 5px;margin-left:-3px}.tooltip.bs-tether-element-attached-right .tooltip-arrow,.tooltip.tooltip-left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.popover{position:absolute;top:0;left:0;z-index:1060;display:block;max-width:276px;padding:1px;font-family:bau,"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:.875rem;font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);line-break:auto}.popover.bs-tether-element-attached-bottom,.popover.popover-top{margin-top:-10px}.popover.bs-tether-element-attached-bottom .popover-arrow,.popover.popover-top .popover-arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.bs-tether-element-attached-bottom .popover-arrow::after,.popover.popover-top .popover-arrow::after{bottom:1px;margin-left:-10px;content:"";border-top-color:#fff;border-bottom-width:0}.popover.bs-tether-element-attached-left,.popover.popover-right{margin-left:10px}.popover.bs-tether-element-attached-left .popover-arrow,.popover.popover-right .popover-arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.bs-tether-element-attached-left .popover-arrow::after,.popover.popover-right .popover-arrow::after{bottom:-10px;left:1px;content:"";border-right-color:#fff;border-left-width:0}.popover.bs-tether-element-attached-top,.popover.popover-bottom{margin-top:10px}.popover.bs-tether-element-attached-top .popover-arrow,.popover.popover-bottom .popover-arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-top .popover-arrow::after,.popover.popover-bottom .popover-arrow::after{top:1px;margin-left:-10px;content:"";border-top-width:0;border-bottom-color:#fff}.popover.bs-tether-element-attached-right,.popover.popover-left{margin-left:-10px}.popover.bs-tether-element-attached-right .popover-arrow,.popover.popover-left .popover-arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:rgba(0,0,0,.25)}.popover.bs-tether-element-attached-right .popover-arrow::after,.popover.popover-left .popover-arrow::after{right:1px;bottom:-10px;content:"";border-right-width:0;border-left-color:#fff}.popover-title{padding:8px 14px;margin:0;font-size:1rem;background-color:#f7f7f7;border-bottom:1px solid #ebebeb}.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{content:"";border-width:10px}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.carousel-item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.carousel-item>a>img,.carousel-inner>.carousel-item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.carousel-item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:transform .6s ease-in-out,-o-transform .6s ease-in-out;transition:-webkit-transform .6s ease-in-out;transition:transform .6s ease-in-out;transition:transform .6s ease-in-out,-webkit-transform .6s ease-in-out,-o-transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.carousel-item.active.right,.carousel-inner>.carousel-item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.carousel-item.active.left,.carousel-inner>.carousel-item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.carousel-item.active,.carousel-inner>.carousel-item.next.left,.carousel-inner>.carousel-item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,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;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);opacity:.5}.carousel-control.left{background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;width:20px;height:20px;margin-top:-10px;font-family:serif;line-height:1}.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .icon-next{right:50%;margin-right:-10px}.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%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:transparent;border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media (min-width:544px){.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .icon-prev{margin-left:-15px}.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix::after{display:table;clear:both;content:""}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-xs-left{float:left!important}.pull-xs-right{float:right!important}.pull-xs-none{float:none!important}@media (min-width:544px){.pull-sm-left{float:left!important}.pull-sm-right{float:right!important}.pull-sm-none{float:none!important}}@media (min-width:768px){.pull-md-left{float:left!important}.pull-md-right{float:right!important}.pull-md-none{float:none!important}}@media (min-width:992px){.pull-lg-left{float:left!important}.pull-lg-right{float:right!important}.pull-lg-none{float:none!important}}@media (min-width:1200px){.pull-xl-left{float:left!important}.pull-xl-right{float:right!important}.pull-xl-none{float:none!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;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}.invisible{visibility:hidden!important}.text-hide{font:"0/0" a;color:transparent;text-shadow:none;background-color:transparent;border:0}.text-justify{text-align:justify!important}.text-nowrap{white-space:nowrap!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-xs-left{text-align:left!important}.text-xs-right{text-align:right!important}.text-xs-center{text-align:center!important}@media (min-width:544px){.text-sm-left{text-align:left!important}.text-sm-right{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.text-md-left{text-align:left!important}.text-md-right{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.text-lg-left{text-align:left!important}.text-lg-right{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.text-xl-left{text-align:left!important}.text-xl-right{text-align:right!important}.text-xl-center{text-align:center!important}}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.font-weight-normal{font-weight:400}.font-weight-bold{font-weight:700}.font-italic{font-style:italic}.text-muted{color:#b1b7bd}.text-primary{color:#000!important}a.text-primary:focus,a.text-primary:hover{color:#000}.text-success{color:#64de79!important}a.text-success:focus,a.text-success:hover{color:#3ad555}.text-info{color:#0500f0!important}a.text-info:focus,a.text-info:hover{color:#0400bd}.text-warning{color:#a100fe!important}a.text-warning:focus,a.text-warning:hover{color:#8100cb}.text-danger{color:#ff0808!important}a.text-danger:focus,a.text-danger:hover{color:#d40000}.bg-inverse{color:#eceeef;background-color:#373a3c}.bg-faded{background-color:#f7f7f9}.bg-primary{color:#fff!important;background-color:#000!important}a.bg-primary:focus,a.bg-primary:hover{background-color:#000}.bg-success{color:#fff!important;background-color:#64de79!important}a.bg-success:focus,a.bg-success:hover{background-color:#3ad555}.bg-info{color:#fff!important;background-color:#0500f0!important}a.bg-info:focus,a.bg-info:hover{background-color:#0400bd}.bg-warning{color:#fff!important;background-color:#a100fe!important}a.bg-warning:focus,a.bg-warning:hover{background-color:#8100cb}.bg-danger{color:#fff!important;background-color:#ff0808!important}a.bg-danger:focus,a.bg-danger:hover{background-color:#d40000}.m-x-auto{margin-right:auto!important;margin-left:auto!important}.m-a-0{margin:0 0!important}.m-t-0{margin-top:0!important}.m-r-0{margin-right:0!important}.m-b-0{margin-bottom:0!important}.m-l-0{margin-left:0!important}.m-x-0{margin-right:0!important;margin-left:0!important}.m-y-0{margin-top:0!important;margin-bottom:0!important}.m-a-1{margin:1rem 1rem!important}.m-t-1{margin-top:1rem!important}.m-r-1{margin-right:1rem!important}.m-b-1{margin-bottom:1rem!important}.m-l-1{margin-left:1rem!important}.m-x-1{margin-right:1rem!important;margin-left:1rem!important}.m-y-1{margin-top:1rem!important;margin-bottom:1rem!important}.m-a-2{margin:1.5rem 1.5rem!important}.m-t-2{margin-top:1.5rem!important}.m-r-2{margin-right:1.5rem!important}.m-b-2{margin-bottom:1.5rem!important}.m-l-2{margin-left:1.5rem!important}.m-x-2{margin-right:1.5rem!important;margin-left:1.5rem!important}.m-y-2{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.m-a-3{margin:3rem 3rem!important}.m-t-3{margin-top:3rem!important}.m-r-3{margin-right:3rem!important}.m-b-3{margin-bottom:3rem!important}.m-l-3{margin-left:3rem!important}.m-x-3{margin-right:3rem!important;margin-left:3rem!important}.m-y-3{margin-top:3rem!important;margin-bottom:3rem!important}.p-a-0{padding:0 0!important}.p-t-0{padding-top:0!important}.p-r-0{padding-right:0!important}.p-b-0{padding-bottom:0!important}.p-l-0{padding-left:0!important}.p-x-0{padding-right:0!important;padding-left:0!important}.p-y-0{padding-top:0!important;padding-bottom:0!important}.p-a-1{padding:1rem 1rem!important}.p-t-1{padding-top:1rem!important}.p-r-1{padding-right:1rem!important}.p-b-1{padding-bottom:1rem!important}.p-l-1{padding-left:1rem!important}.p-x-1{padding-right:1rem!important;padding-left:1rem!important}.p-y-1{padding-top:1rem!important;padding-bottom:1rem!important}.p-a-2{padding:1.5rem 1.5rem!important}.p-t-2{padding-top:1.5rem!important}.p-r-2{padding-right:1.5rem!important}.p-b-2{padding-bottom:1.5rem!important}.p-l-2{padding-left:1.5rem!important}.p-x-2{padding-right:1.5rem!important;padding-left:1.5rem!important}.p-y-2{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.p-a-3{padding:3rem 3rem!important}.p-t-3{padding-top:3rem!important}.p-r-3{padding-right:3rem!important}.p-b-3{padding-bottom:3rem!important}.p-l-3{padding-left:3rem!important}.p-x-3{padding-right:3rem!important;padding-left:3rem!important}.p-y-3{padding-top:3rem!important;padding-bottom:3rem!important}.pos-f-t{position:fixed;top:0;right:0;left:0;z-index:1030}.hidden-xs-up{display:none!important}@media (max-width:543px){.hidden-xs-down{display:none!important}}@media (min-width:544px){.hidden-sm-up{display:none!important}}@media (max-width:767px){.hidden-sm-down{display:none!important}}@media (min-width:768px){.hidden-md-up{display:none!important}}@media (max-width:991px){.hidden-md-down{display:none!important}}@media (min-width:992px){.hidden-lg-up{display:none!important}}@media (max-width:1199px){.hidden-lg-down{display:none!important}}@media (min-width:1200px){.hidden-xl-up{display:none!important}}.hidden-xl-down{display:none!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}}a{cursor:pointer}ul{padding:0 1rem}b,strong{font-weight:500}hr{width:66.666667%;height:1px;margin-left:0;background-color:#000;border-top:none}button:focus{outline:0}h1,h2,h3{padding-top:2rem}h4,h5,h6{padding-top:1rem}h3,h4{line-height:3rem}h5,h6{line-height:2rem}h1 code,h2 code,h3 code,h4 code,h5 code,h6 code{font-weight:400}.even,h1:first-of-type{padding-top:0;padding-bottom:3rem;margin-bottom:0}h1.first,h2.first,h3.first{padding-top:0;padding-bottom:2rem}h1.child,h2.child,h3.child{padding-bottom:0}.gray{color:#55595c}.gray-light{color:#b1b7bd}.gray-lighter{color:#eceeef}@media (max-width:767px){h1{font-size:2rem;line-height:3rem}h2{font-size:1.6rem}}code,pre{background-color:#f7f7f7}p code{padding:.2rem .1rem}pre code{padding-left:0;margin-left:0;background-color:transparent}input,textarea{border:0;border-bottom:.2rem solid #b1b7bd;outline:0}input:focus,textarea:focus{border-color:#000}.container.top{padding-top:3rem}.lead{margin-bottom:3rem}@media (max-width:767px){.container{padding-top:0}.lead{margin-bottom:1rem}}.close{font-size:1rem;font-weight:300;text-shadow:none;opacity:1}.btn{font-weight:500;text-transform:uppercase;letter-spacing:.06rem;background-color:#fff;border-width:3px}.btn-primary{color:#000}.red{color:#ff0808}.green{color:#64de79}.yellow{color:#fff900}.blue{color:#0500f0}.inverse,.inverse:focus,.inverse:hover{color:#fff}.inverse.red{background-color:#ff0808}.inverse.green{background-color:#64de79}.inverse.yellow{background-color:#fff900}.inverse.blue{background-color:#0500f0}.block{display:inline-block;padding:.6rem;font-weight:500}.block:first-of-type{padding-top:.6rem}.i-b{display:inline-block}.action{margin-top:1rem;font-weight:500;letter-spacing:1px}.action>label{margin-right:.9375rem;line-height:1rem}.action.create>label{width:16px;height:16px;vertical-align:middle;background-color:transparent;border:3px solid #000;border-radius:50%}.action.add>label:before{font-size:1.3rem;font-weight:500;content:"+"}.mono{font-family:scp}h1.sign{line-height:2;color:#a100fe}h2.advice{font-size:2rem;line-height:3rem;color:#b1b7bd}p.ship{white-space:nowrap}input#ship{width:66.7%}#pass,#ship,.sig{font-size:2rem}.sig{margin-right:.3rem}#pass{width:100%}button#act{font-size:1.6rem;font-weight:500;color:#fff;text-decoration:underline;background-color:#000;border:0}.lead .logo{display:inline-block;width:3rem;height:3rem;margin-right:1rem;text-align:center;border-radius:50%}@media (max-width:991px){.lead .logo{width:3rem;height:3rem;margin-right:1rem;font-size:3.3rem;line-height:3.3rem;border-radius:3rem}}@media (max-width:767px){.lead .logo{display:block;margin-bottom:1rem}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/web/tree/main_hoon_urb.js b/web/tree/main_hoon_urb.js new file mode 100644 index 000000000..6ee6cb824 --- /dev/null +++ b/web/tree/main_hoon_urb.js @@ -0,0 +1,3714 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1) { + index = keys.indexOf(this.props.curr); + next = index + 1; + if (next === keys.length) { + next = 0; + } + next = keys[next]; + next = this.props.kids[next]; + if (next) { + return div({ + className: "link-next" + }, a({ + href: this.props.path + "/" + next.name + }, "Next: " + next.meta.title)); + } + } + } + return div({}, ""); + } + })), + comments: Comments, + footer: recl({ + displayName: "Footer", + render: function() { + var containerClas, footerClas; + containerClas = clas({ + footer: true, + container: this.props.container === 'false' + }); + footerClas = clas({ + 'col-md-12': this.props.container === 'false' + }); + return div({ + className: containerClas, + key: 'footer-container' + }, [ + div({ + className: footerClas, + key: 'footer-inner' + }, [ + "This page was made by Urbit. ", a({ + href: "urbit.org" + }, "urbit.org"), a({ + href: "mailto:urbit@urbit.org" + }, "contact") + ]) + ]); + } + }) +}; + +module.exports = query({ + body: 'r', + name: 't', + path: 't', + meta: 'j', + sein: 't' +}, recl({ + displayName: "Body", + stateFromStore: function() { + return { + curr: TreeStore.getCurr() + }; + }, + getInitialState: function() { + return this.stateFromStore(); + }, + _onChangeStore: function() { + if (this.isMounted()) { + return this.setState(this.stateFromStore()); + } + }, + componentDidMount: function() { + return TreeStore.addChangeListener(this._onChangeStore); + }, + render: function() { + var bodyClas, extra, innerClas, parts, ref1; + extra = (function(_this) { + return function(name, props) { + if (props == null) { + props = {}; + } + if (_this.props.meta[name] != null) { + if ((_.keys(props)).length === 0) { + props[name] = _this.props.meta[name]; + } + props.key = name; + return React.createElement(extras[name], props); + } + }; + })(this); + innerClas = { + body: true + }; + if (this.props.meta.anchor !== 'none' && this.props.meta.navmode !== 'navbar') { + innerClas['col-md-9'] = true; + innerClas['col-md-offset-3'] = true; + } + if (this.props.meta.navmode === 'navbar' && this.props.meta.container !== 'false') { + innerClas['col-md-9'] = true; + innerClas['col-md-offset-1'] = true; + } + innerClas = clas(innerClas); + bodyClas = clas((ref1 = this.props.meta.layout) != null ? ref1.split(',') : void 0); + if (this.props.meta.type && bodyClas.indexOf(this.props.meta.type) === -1) { + bodyClas += " " + this.props.meta.type; + } + parts = [ + extra('spam'), extra('logo', { + color: this.props.meta.logo + }), reactify(this.props.body, 'body'), extra('next', { + dataPath: this.props.sein, + curr: this.props.name + }), extra('comments'), extra('footer', { + container: this.props.meta.container + }) + ]; + if (this.props.meta.type === "post") { + parts.splice(1, 0, extra('date'), extra('title'), extra('image'), extra('preview'), extra('author')); + } + return div({ + dataPath: this.state.curr, + key: this.state.curr + }, [ + div({ + className: innerClas, + 'data-path': this.props.path, + key: 'body-inner' + }, [ + div({ + key: "body" + this.props.path, + id: 'body', + className: bodyClas + }, parts) + ]) + ]); + } +}), recl({ + render: function() { + return div({ + id: 'body', + className: "col-md-offset-3 col-md-9" + }, rele(load)); + } +})); + + +},{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":25,"../utils/util.coffee":27,"./Async.coffee":2,"./CommentsComponent.coffee":5,"./LoadComponent.coffee":11,"./Reactify.coffee":16,"classnames":28}],4:[function(require,module,exports){ +var div, recl, ref, textarea; + +recl = React.createClass; + +ref = React.DOM, div = ref.div, textarea = ref.textarea; + +module.exports = recl({ + render: function() { + return div({}, textarea({ + ref: 'ed', + value: this.props.value + })); + }, + componentDidMount: function() { + return CodeMirror.fromTextArea(ReactDOM.findDOMNode(this.refs.ed), { + readOnly: true, + lineNumbers: true + }); + } +}); + + +},{}],5:[function(require,module,exports){ +var Comment, TreeActions, a, clas, div, form, img, input, load, p, query, reactify, recl, ref, rele, textarea, util; + +clas = require('classnames'); + +load = require('./LoadComponent.coffee'); + +query = require('./Async.coffee'); + +reactify = require('./Reactify.coffee'); + +TreeActions = require('../actions/TreeActions.coffee'); + +util = require('../utils/util.coffee'); + +recl = React.createClass; + +rele = React.createElement; + +ref = React.DOM, div = ref.div, p = ref.p, img = ref.img, a = ref.a, form = ref.form, textarea = ref.textarea, input = ref.input; + +Comment = function(arg) { + var body, time; + time = arg.time, body = arg.body; + return div({ + className: "comment" + }, "" + (window.urb.util.toDate(new Date(time))), reactify(body)); +}; + +module.exports = query({ + comt: 'j', + path: 't' +}, recl({ + displayName: "Comments", + getInitialState: function() { + return { + loading: false, + value: "" + }; + }, + componentDidUpdate: function(_props) { + if (this.props.comt.length > _props.comt.length) { + return this.setState({ + loading: false + }); + } + }, + onSubmit: function(e) { + TreeActions.addComment(this.props.path, this.refs["in"].comment.value); + this.setState({ + loading: true, + value: "" + }); + return e.preventDefault(); + }, + onChange: function(e) { + return this.setState({ + value: e.target.value + }); + }, + render: function() { + var _attr, inputAttr, textareaAttr; + _attr = {}; + if (this.state.loading === true) { + _attr.disabled = "true"; + } + textareaAttr = _.create(_attr, { + type: "text", + name: "comment", + value: this.state.value, + onChange: this.onChange + }); + inputAttr = _.create(_attr, { + type: "submit", + value: "Add comment", + className: "btn btn-primary" + }); + return div({}, div({ + className: "add-comment" + }, form({ + ref: "in", + onSubmit: this.onSubmit + }, textarea(textareaAttr), input(inputAttr))), (this.state.loading === true ? rele(load) : ""), div({ + className: "comments" + }, this.props.comt.map(function(props, key) { + return rele(Comment, _.extend({ + key: key + }, props)); + }))); + } +})); + + +},{"../actions/TreeActions.coffee":1,"../utils/util.coffee":27,"./Async.coffee":2,"./LoadComponent.coffee":11,"./Reactify.coffee":16,"classnames":28}],6:[function(require,module,exports){ +var div, recl; + +recl = React.createClass; + +div = React.DOM.div; + +module.exports = { + codemirror: require('./CodeMirror.coffee'), + search: require('./SearchComponent.coffee'), + list: require('./ListComponent.coffee'), + kids: require('./KidsComponent.coffee'), + toc: require('./TocComponent.coffee'), + email: require('./EmailComponent.coffee'), + module: require('./ModuleComponent.coffee'), + script: require('./ScriptComponent.coffee'), + plan: require('./PlanComponent.coffee'), + panel: require('./PanelComponent.coffee'), + lost: recl({ + render: function() { + return div({}, ""); + } + }) +}; + + +},{"./CodeMirror.coffee":4,"./EmailComponent.coffee":8,"./KidsComponent.coffee":9,"./ListComponent.coffee":10,"./ModuleComponent.coffee":12,"./PanelComponent.coffee":14,"./PlanComponent.coffee":15,"./ScriptComponent.coffee":17,"./SearchComponent.coffee":18,"./TocComponent.coffee":20}],7:[function(require,module,exports){ +var a, div, recl, ref, util; + +util = require('../utils/util.coffee'); + +recl = React.createClass; + +ref = React.DOM, div = ref.div, a = ref.a; + +module.exports = recl({ + displayName: "Dpad", + renderUp: function() { + if (this.props.sein) { + return this.renderArrow("up", this.props.sein); + } + }, + renderArrow: function(name, path) { + var href; + href = util.basepath(path); + return a({ + href: href, + key: "" + name, + className: "" + name + }, ""); + }, + renderArrows: function() { + var index, keys, next, prev, sein; + keys = util.getKeys(this.props.kids); + if (keys.length > 1) { + index = keys.indexOf(this.props.curr); + prev = index - 1; + next = index + 1; + if (prev < 0) { + prev = keys.length - 1; + } + if (next === keys.length) { + next = 0; + } + prev = keys[prev]; + next = keys[next]; + } + if (this.props.sein) { + sein = this.props.sein; + if (sein === "/") { + sein = ""; + } + return div({}, prev ? this.renderArrow("prev", sein + "/" + prev) : void 0, next ? this.renderArrow("next", sein + "/" + next) : void 0); + } + }, + render: function() { + return div({ + className: 'dpad', + key: 'dpad' + }, this.renderUp(), this.renderArrows()); + } +}); + + +},{"../utils/util.coffee":27}],8:[function(require,module,exports){ +var button, div, input, p, reactify, recl, ref; + +reactify = require('./Reactify.coffee'); + +recl = React.createClass; + +ref = React.DOM, div = ref.div, p = ref.p, button = ref.button, input = ref.input; + +module.exports = recl({ + displayName: "email", + getInitialState: function() { + return { + submit: false, + email: "" + }; + }, + onClick: function() { + return this.submit(); + }, + onChange: function(e) { + var email, valid; + email = e.target.value; + this.setState({ + email: e.target.value + }); + valid = email.indexOf('@') !== -1 && email.indexOf('.') !== -1 && email.length > 7 && email.split(".")[1].length > 1 && email.split("@")[0].length > 0 && email.split("@")[1].length > 4; + this.$email.toggleClass('valid', valid); + this.$email.removeClass('error'); + if (e.keyCode === 13) { + if (valid === true) { + this.submit(); + e.stopPropagation(); + e.preventDefault(); + return false; + } else { + return this.$email.addClass('error'); + } + } + }, + submit: function() { + return $.post(this.props.dataPath, { + email: this.$email.val() + }, (function(_this) { + return function() { + return _this.setState({ + submit: true + }); + }; + })(this)); + }, + componentDidMount: function() { + return this.$email = $('input.email'); + }, + render: function() { + var cont, ref1, submit; + if (this.state.submit === false) { + submit = (ref1 = this.props.submit) != null ? ref1 : "Sign up"; + cont = [ + input({ + key: "field", + className: "email", + placeholder: "your@email.com", + onChange: this.onChange, + value: this.state.email + }), button({ + key: "submit", + className: "submit btn", + onClick: this.onClick + }, submit) + ]; + } else { + cont = [ + div({ + className: "submitted" + }, "Got it. Thanks!") + ]; + } + return p({ + className: "email", + id: "sign-up" + }, cont); + } +}); + + +},{"./Reactify.coffee":16}],9:[function(require,module,exports){ +var a, clas, div, hr, li, query, reactify, recl, ref, ul; + +clas = require('classnames'); + +reactify = require('./Reactify.coffee'); + +query = require('./Async.coffee'); + +recl = React.createClass; + +ref = React.DOM, div = ref.div, a = ref.a, ul = ref.ul, li = ref.li, hr = ref.hr; + +module.exports = query({ + kids: { + body: 'r', + meta: 'j', + path: 't' + } +}, recl({ + displayName: "Kids", + render: function() { + var _k, body, d, elem, k, keyed, keys, kidClas, kidsClas, ref1, ref2, ref3, ref4, sorted, str, v; + sorted = true; + keyed = {}; + ref1 = this.props.kids; + for (k in ref1) { + v = ref1[k]; + if (this.props.sortBy) { + if (this.props.sortBy === 'date') { + if (((ref2 = v.meta) != null ? ref2.date : void 0) == null) { + sorted = false; + continue; + } + d = v.meta.date.slice(1).split("."); + if (d.length < 3) { + sorted = false; + continue; + } + str = d[0] + "-" + d[1] + "-" + d[2]; + if (d.length > 3) { + str += " " + d[3] + ":" + d[4] + ":" + d[5]; + } + _k = Number(new Date(str)); + keyed[_k] = k; + } + } else { + if (((ref3 = v.meta) != null ? ref3.sort : void 0) == null) { + sorted = false; + } + keyed[Number((ref4 = v.meta) != null ? ref4.sort : void 0)] = k; + } + } + if (sorted === false) { + keyed = _.keys(this.props.kids); + } + keys = _.keys(keyed).sort(); + if (this.props.sortBy === 'date') { + keys.reverse(); + } + kidsClas = clas({ + kids: true + }, this.props.className); + kidClas = clas({ + "col-md-4": this.props.grid === 'true' + }); + return div({ + className: kidsClas, + key: "kids" + }, (function() { + var i, len, ref5, results; + results = []; + for (i = 0, len = keys.length; i < len; i++) { + k = keys[i]; + elem = (ref5 = this.props.kids[keyed[k]]) != null ? ref5 : ""; + body = reactify(elem.body, k, { + basePath: elem.path + }); + results.push([ + div({ + key: keyed[k], + id: keyed[k], + className: kidClas + }, body), hr({}) + ]); + } + return results; + }).call(this)); + } +})); + + +},{"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],10:[function(require,module,exports){ +var a, clas, div, h1, li, pre, query, reactify, recl, ref, span, ul, util; + +clas = require('classnames'); + +reactify = require('./Reactify.coffee'); + +query = require('./Async.coffee'); + +util = require('../utils/util.coffee'); + +recl = React.createClass; + +ref = React.DOM, div = ref.div, pre = ref.pre, span = ref.span, a = ref.a, ul = ref.ul, li = ref.li, h1 = ref.h1; + +module.exports = query({ + path: 't', + kids: { + snip: 'r', + head: 'r', + meta: 'j' + } +}, recl({ + displayName: "List", + render: function() { + var k, kids; + k = clas({ + list: true + }, this.props.dataType, { + "default": this.props['data-source'] === 'default' + }, this.props.className); + kids = this.renderList(); + if (!(kids.length === 0 && (this.props.is404 != null))) { + return ul({ + className: k + }, kids); + } + return div({ + className: k + }, h1({ + className: 'red inverse block error' + }, 'Error: Empty path'), div({}, pre({}, this.props.path), span({}, 'is either empty or does not exist.'))); + }, + renderList: function() { + var _date, _k, _keys, author, date, elem, href, i, image, item, k, len, linked, node, parts, path, preview, ref1, ref2, ref3, ref4, ref5, ref6, results, sorted, title, v; + sorted = true; + _keys = []; + ref1 = this.props.kids; + for (k in ref1) { + v = ref1[k]; + if (this.props.sortBy) { + if (this.props.sortBy === 'date') { + if (((ref2 = v.meta) != null ? ref2.date : void 0) == null) { + sorted = false; + } + _k = Number(v.meta.date.slice(1).replace(/\./g, "")); + _keys[_k] = k; + } + } else { + if (((ref3 = v.meta) != null ? ref3.sort : void 0) == null) { + sorted = false; + } + _keys[Number((ref4 = v.meta) != null ? ref4.sort : void 0)] = k; + } + } + if (this.props.sortBy === 'date') { + _keys.reverse(); + } + if (sorted !== true) { + _keys = _.keys(this.props.kids).sort(); + } + if (this.props.dataType === 'post') { + _keys = _keys.reverse(); + } + ref5 = _.values(_keys); + results = []; + for (i = 0, len = ref5.length; i < len; i++) { + item = ref5[i]; + path = this.props.path + "/" + item; + elem = this.props.kids[item]; + if (elem.meta.hide != null) { + continue; + } + href = util.basepath(path); + if (this.props.linkToFragments != null) { + href = "#" + item; + } + if (this.props.childIsFragment != null) { + href = (util.basepath(this.props.path)) + "#" + item; + } + if (elem.meta.link) { + href = elem.meta.link; + } + parts = []; + title = null; + if ((ref6 = elem.meta) != null ? ref6.title : void 0) { + if (this.props.dataType === 'post') { + title = { + gn: 'a', + ga: { + href: href + }, + c: [ + { + gn: 'h1', + ga: { + className: 'title' + }, + c: [elem.meta.title] + } + ] + }; + } else { + title = { + gn: 'h1', + ga: { + className: 'title' + }, + c: [elem.meta.title] + }; + } + } + if (!title && elem.head.c.length > 0) { + title = elem.head; + } + if (!title) { + title = { + gn: 'h1', + ga: { + className: 'title' + }, + c: [item] + }; + } + if (!this.props.titlesOnly) { + _date = elem.meta.date; + if (!_date || _date.length === 0) { + _date = ""; + } + date = { + gn: 'div', + ga: { + className: 'date' + }, + c: [_date] + }; + parts.push(date); + } + parts.push(title); + if (!this.props.titlesOnly) { + if (this.props.dataType === 'post') { + if (elem.meta.image) { + image = { + gn: 'a', + ga: { + href: href + }, + c: [ + { + gn: 'img', + ga: { + src: elem.meta.image + } + } + ] + }; + parts.push(image); + } + } + if (this.props.dataPreview) { + if (!elem.meta.preview) { + parts.push.apply(parts, elem.snip.c.slice(0, 2)); + } else { + if (elem.meta.preview) { + preview = { + gn: 'p', + ga: { + className: 'preview' + }, + c: [elem.meta.preview] + }; + } else { + preview = elem.snip; + } + parts.push(preview); + } + } + if (this.props.dataType === 'post') { + if (elem.meta.author) { + author = { + gn: 'h3', + ga: { + className: 'author' + }, + c: [elem.meta.author] + }; + parts.push(author); + } + linked = true; + } + } + node = reactify({ + gn: 'div', + c: parts + }); + if (linked == null) { + node = a({ + href: href, + className: clas({ + preview: this.props.dataPreview != null + }) + }, node); + } + results.push(li({ + key: item + }, node)); + } + return results; + } +})); + + +},{"../utils/util.coffee":27,"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],11:[function(require,module,exports){ +var div, recl, ref, span; + +recl = React.createClass; + +ref = React.DOM, span = ref.span, div = ref.div; + +module.exports = recl({ + displayName: "Load", + getInitialState: function() { + return { + anim: 0 + }; + }, + componentDidMount: function() { + return this.interval = setInterval(this.setAnim, 100); + }, + componentWillUnmount: function() { + return clearInterval(this.interval); + }, + setAnim: function() { + var anim; + anim = this.state.anim + 1; + if (anim > 3) { + anim = 0; + } + return this.setState({ + anim: anim + }); + }, + render: function() { + return span({ + className: "loading state-" + this.state.anim + }, ''); + } +}); + + +},{}],12:[function(require,module,exports){ +var TreeActions, div, recl; + +recl = React.createClass; + +div = React.DOM.div; + +TreeActions = require('../actions/TreeActions.coffee'); + +module.exports = recl({ + displayName: "Module", + componentDidMount: function() { + return setTimeout((function(_this) { + return function() { + return TreeActions.setNav({ + title: _this.props["nav:title"], + dpad: _this.props["nav:no-dpad"] != null ? false : void 0, + sibs: _this.props["nav:no-sibs"] != null ? false : void 0, + subnav: _this.props["nav:subnav"] + }, 0); + }; + })(this)); + }, + componentWillUnmount: function() { + return TreeActions.clearNav(); + }, + render: function() { + return div({ + className: "module" + }, this.props.children); + } +}); + + +},{"../actions/TreeActions.coffee":1}],13:[function(require,module,exports){ +var BodyComponent, Dpad, Nav, Sibs, TreeActions, TreeStore, a, button, clas, div, li, query, reactify, recl, ref, rend, ul, util; + +clas = require('classnames'); + +BodyComponent = React.createFactory(require('./BodyComponent.coffee')); + +query = require('./Async.coffee'); + +reactify = require('./Reactify.coffee'); + +TreeStore = require('../stores/TreeStore.coffee'); + +TreeActions = require('../actions/TreeActions.coffee'); + +Sibs = React.createFactory(require('./SibsComponent.coffee')); + +Dpad = React.createFactory(require('./DpadComponent.coffee')); + +util = require('../utils/util.coffee'); + +recl = React.createClass; + +rend = ReactDOM.render; + +ref = React.DOM, div = ref.div, a = ref.a, ul = ref.ul, li = ref.li, button = ref.button; + +Nav = React.createFactory(query({ + path: 't', + kids: { + name: 't', + head: 'r', + meta: 'j' + } +}, recl({ + displayName: "Links", + stateFromStore: function() { + return TreeStore.getNav(); + }, + getInitialState: function() { + return this.stateFromStore(); + }, + _onChangeStore: function() { + if (this.isMounted()) { + return this.setState(this.stateFromStore()); + } + }, + componentDidMount: function() { + return TreeStore.addChangeListener(this._onChangeStore); + }, + componentWillUnmount: function() { + return TreeStore.removeChangeListener(this._onChangeStore); + }, + onClick: function() { + return this.toggleFocus(); + }, + onMouseOver: function() { + return this.toggleFocus(true); + }, + onMouseOut: function() { + return this.toggleFocus(false); + }, + onTouchStart: function() { + return this.ts = Number(Date.now()); + }, + onTouchEnd: function() { + var dt; + return dt = this.ts - Number(Date.now()); + }, + _home: function() { + return this.props.goTo(this.props.meta.navhome ? this.props.meta.navhome : "/"); + }, + toggleFocus: function(state) { + return $(ReactDOM.findDOMNode(this)).toggleClass('focus', state); + }, + toggleNav: function() { + return TreeActions.toggleNav(); + }, + closeNav: function() { + return TreeActions.closeNav(); + }, + render: function() { + var attr, dpad, i, iconClass, itemsClass, len, linksClas, navClas, ref1, ref2, ref3, sibs, sub, subprops, title, toggleClas, v; + attr = { + onMouseOver: this.onMouseOver, + onMouseOut: this.onMouseOut, + onClick: this.onClick, + onTouchStart: this.onTouchStart, + onTouchEnd: this.onTouchEnd, + 'data-path': this.props.dataPath + }; + if (_.keys(window).indexOf("ontouchstart") !== -1) { + delete attr.onMouseOver; + delete attr.onMouseOut; + } + linksClas = clas({ + links: true, + subnav: (this.props.meta.navsub != null) + }); + navClas = { + navbar: this.props.meta.navmode === 'navbar', + ctrl: true, + open: this.state.open === true + }; + if (this.props.meta.layout) { + ref1 = this.props.meta.layout.split(","); + for (i = 0, len = ref1.length; i < len; i++) { + v = ref1[i]; + navClas[v.trim()] = true; + } + } + navClas = clas(navClas); + iconClass = clas({ + icon: true, + 'col-md-1': this.props.meta.navmode === 'navbar' + }); + attr = _.extend(attr, { + className: navClas, + key: "nav" + }); + title = this.state.title ? this.state.title : ""; + dpad = this.state.dpad !== false && ((ref2 = this.props.meta) != null ? ref2.navdpad : void 0) !== "false" ? Dpad(this.props, "") : ""; + sibs = this.state.sibs !== false && ((ref3 = this.props.meta) != null ? ref3.navsibs : void 0) !== "false" ? Sibs(_.merge(_.clone(this.props), { + closeNav: this.closeNav + }), "") : ""; + itemsClass = clas({ + items: true, + 'col-md-11': this.props.meta.navmode === 'navbar' + }); + if (this.props.meta.navsub) { + subprops = _.cloneDeep(this.props); + subprops.dataPath = subprops.meta.navsub; + delete subprops.meta.navselect; + subprops.className = 'subnav'; + sub = Sibs(_.merge(subprops, { + toggleNav: this.toggleNav + }), ""); + } + toggleClas = clas({ + 'navbar-toggler': true, + show: this.state.subnav != null + }); + return div(attr, div({ + className: linksClas, + key: "links" + }, div({ + className: iconClass + }, div({ + className: 'home', + onClick: this._home + }, ""), div({ + className: 'app' + }, title), dpad, button({ + className: toggleClas, + type: 'button', + onClick: this.toggleNav + }, "☰")), div({ + className: itemsClass + }, sibs, sub))); + } +}), recl({ + displayName: "Links_loading", + _home: function() { + return this.props.goTo("/"); + }, + render: function() { + return div({ + className: "ctrl", + "data-path": this.props.dataPath, + key: "nav-loading" + }, div({ + className: 'links' + }, div({ + className: 'icon' + }, div({ + className: 'home', + onClick: this._home + }, "")), ul({ + className: "nav" + }, li({ + className: "nav-item selected" + }, a({ + className: "nav-link" + }, this.props.curr))))); + } +}))); + +module.exports = query({ + sein: 't', + path: 't', + name: 't', + meta: 'j' +}, recl({ + displayName: "Nav", + stateFromStore: function() { + return TreeStore.getNav(); + }, + getInitialState: function() { + return _.extend(this.stateFromStore(), { + url: window.location.pathname + }); + }, + _onChangeStore: function() { + if (this.isMounted()) { + return this.setState(this.stateFromStore()); + } + }, + componentWillUnmount: function() { + clearInterval(this.interval); + $('body').off('click', 'a'); + return TreeStore.removeChangeListener(this._onChangeStore); + }, + componentDidUpdate: function() { + this.setTitle(); + return this.checkRedirect(); + }, + componentDidMount: function() { + var _this; + this.setTitle(); + window.onpopstate = this.pullPath; + TreeStore.addChangeListener(this._onChangeStore); + _this = this; + $('body').on('click', 'a', function(e) { + var href, url; + href = $(this).attr('href'); + if (href[0] === "#") { + return true; + } + if (href && !/^https?:\/\//i.test(href)) { + e.preventDefault(); + url = new URL(this.href); + if (urb.util.basepath("", url.pathname) !== urb.util.basepath("", document.location.pathname)) { + document.location = this.href; + return; + } + if (url.pathname.substr(-1) !== "/") { + url.pathname += "/"; + } + return _this.goTo(url.pathname + url.search + url.hash); + } + }); + return this.checkRedirect(); + }, + checkRedirect: function() { + if (this.props.meta.redirect) { + return setTimeout(((function(_this) { + return function() { + return _this.goTo(_this.props.meta.redirect); + }; + })(this)), 0); + } + }, + setTitle: function() { + var path, ref1, title; + title = $('#body h1').first().text() || this.props.name; + if ((ref1 = this.props.meta) != null ? ref1.title : void 0) { + title = this.props.meta.title; + } + path = this.props.path; + if (path === "") { + path = "/"; + } + return document.title = title + " - " + path; + }, + pullPath: function() { + var l, path; + l = document.location; + path = l.pathname + l.search + l.hash; + return this.setPath(path, false); + }, + setPath: function(path, hist) { + var next; + if (hist !== false) { + history.pushState({}, "", path); + } + next = util.fragpath(path.split('#')[0]); + if (next !== this.props.path) { + return TreeActions.setCurr(next); + } + }, + reset: function() { + return $("html,body").animate({ + scrollTop: 0 + }); + }, + goTo: function(path) { + this.reset(); + return this.setPath(path); + }, + render: function() { + var kids, kidsPath, navClas; + if (this.props.meta.anchor === 'none') { + return div({}, ""); + } + navClas = clas({ + container: this.props.meta.container === 'false' + }); + kidsPath = this.props.sein; + if (this.props.meta.navpath) { + kidsPath = this.props.meta.navpath; + } + kids = [ + Nav({ + curr: this.props.name, + dataPath: kidsPath, + meta: this.props.meta, + sein: this.props.sein, + goTo: this.goTo, + key: "nav" + }, "div") + ]; + if (this.state.subnav) { + kids.push(reactify({ + gn: this.state.subnav, + ga: { + open: this.state.open, + toggle: TreeActions.toggleNav + }, + c: [] + }, "subnav")); + } + return div({ + id: 'head', + className: navClas + }, kids); + } +})); + + +},{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":25,"../utils/util.coffee":27,"./Async.coffee":2,"./BodyComponent.coffee":3,"./DpadComponent.coffee":7,"./Reactify.coffee":16,"./SibsComponent.coffee":19,"classnames":28}],14:[function(require,module,exports){ +var a, li, nav, recl, ref, rele, ul; + +recl = React.createClass; + +rele = React.createElement; + +ref = React.DOM, nav = ref.nav, ul = ref.ul, li = ref.li, a = ref.a; + +module.exports = recl({ + render: function() { + if (urb.user !== urb.ship) { + return nav({ + className: "navbar panel" + }, [ + ul({ + className: "nav navbar-nav" + }, [ + li({ + className: 'nav-item pull-right' + }, a({ + href: "/~~" + }, "Log in")) + ]) + ]); + } else { + return nav({ + className: "navbar panel" + }, [ + ul({ + className: "nav navbar-nav" + }, [ + li({ + className: "nav-item" + }, a({ + href: "/~~/talk" + }, "Talk")), li({ + className: "nav-item" + }, a({ + href: "/~~/dojo" + }, "Dojo")), li({ + className: "nav-item" + }, a({ + href: "/~~/static" + }, "Static")), li({ + className: 'nav-item pull-right' + }, a({ + href: "/~/away" + }, "Log out")) + ]) + ]); + } + } +}); + + +},{}],15:[function(require,module,exports){ +var Grid, TreeActions, a, button, code, div, h6, input, load, query, recl, ref1, ref2, rele, span, table, tbody, td, textarea, tr, + slice = [].slice; + +load = require('./LoadComponent.coffee'); + +query = require('./Async.coffee'); + +TreeActions = require('../actions/TreeActions.coffee'); + +recl = React.createClass; + +rele = React.createElement; + +ref1 = React.DOM, div = ref1.div, textarea = ref1.textarea, button = ref1.button, input = ref1.input, a = ref1.a, h6 = ref1.h6, code = ref1.code, span = ref1.span; + +ref2 = React.DOM, table = ref2.table, tbody = ref2.tbody, tr = ref2.tr, td = ref2.td; + +Grid = function() { + var _td, _tr, props, rows; + props = arguments[0], rows = 2 <= arguments.length ? slice.call(arguments, 1) : []; + _td = function(x) { + return div({ + className: "td" + }, x); + }; + _tr = function(x) { + if (x != null) { + return div.apply(null, [{ + className: "tr" + }].concat(slice.call(x.map(_td)))); + } + }; + return div.apply(null, [props].concat(slice.call(rows.map(_tr)))); +}; + +module.exports = query({ + plan: 'j', + beak: 't', + path: 't' +}, recl({ + displayName: "Plan", + getInitialState: function() { + return { + edit: false, + plan: this.props.plan, + focus: null + }; + }, + componentWillReceiveProps: function(props) { + if (_.isEqual(this.props.plan, this.state.plan)) { + return this.setState({ + plan: props.plan + }); + } + }, + refInput: function(ref) { + return (function(_this) { + return function(node) { + _this[ref] = node; + if (ref === _this.state.focus) { + return node != null ? node.focus() : void 0; + } + }; + })(this); + }, + saveInfo: function() { + var plan, ref3; + plan = { + who: this.who.value, + loc: this.loc.value, + acc: (ref3 = this.props.plan) != null ? ref3.acc : void 0 + }; + if (!_.isEqual(plan, this.state.plan)) { + TreeActions.setPlanInfo(plan); + this.setState({ + plan: plan + }); + } + return this.setState({ + edit: false, + focus: null + }); + }, + render: function() { + var acc, beak, editButton, editable, issuedBy, key, loc, path, ref3, ref4, ref5, url, usr, who; + ref3 = this.props, beak = ref3.beak, path = ref3.path; + ref5 = (ref4 = this.state.plan) != null ? ref4 : {}, acc = ref5.acc, loc = ref5.loc, who = ref5.who; + issuedBy = urb.sein !== urb.ship ? "~" + urb.sein : "self"; + if (urb.user !== urb.ship) { + editButton = null; + editable = function(ref, val, placeholder) { + return val != null ? val : placeholder; + }; + } else if (this.state.edit) { + editButton = button({ + className: 'edit', + onClick: (function(_this) { + return function() { + return _this.saveInfo(); + }; + })(this) + }, "Save"); + editable = (function(_this) { + return function(ref, val, placeholder) { + return input({ + placeholder: placeholder, + defaultValue: val, + ref: _this.refInput(ref), + onKeyDown: function(arg) { + var keyCode; + keyCode = arg.keyCode; + if (keyCode === 13) { + return _this.saveInfo(); + } + } + }); + }; + })(this); + } else { + editButton = button({ + className: 'edit', + onClick: (function(_this) { + return function() { + return _this.setState({ + edit: true + }); + }; + })(this) + }, "Edit"); + editable = (function(_this) { + return function(ref, val, placeholder) { + var ref6, ref7; + return span({ + onClick: function() { + return _this.setState({ + edit: true, + focus: ref + }); + } + }, val != null ? val : placeholder, ((ref6 = _this.props.plan) != null ? ref6[ref] : void 0) !== ((ref7 = _this.state.plan) != null ? ref7[ref] : void 0) ? rele(load, {}) : void 0); + }; + })(this); + } + return div({ + className: "plan" + }, div({ + className: "home" + }, ""), div({ + className: "mono" + }, "~" + urb.ship), (who != null) || this.state.edit ? h6({}, editable('who', who, "Sun Tzu")) : void 0, Grid({ + className: "grid" + }, ["Location:", editable('loc', loc, "Unknown")], ["Issued by:", issuedBy], [ + "Immutable link:", a({ + href: beak + "/web" + path + }, beak) + ], !_.isEmpty(acc) ? [ + "Connected to:", div({}, (function() { + var ref6, results; + results = []; + for (key in acc) { + ref6 = acc[key], usr = ref6.usr, url = ref6.url; + results.push(div({ + key: key, + className: 'service' + }, url == null ? key + "/" + usr : a({ + href: url + }, key + "/" + usr))); + } + return results; + })()) + ] : void 0), editButton); + } +})); + + +},{"../actions/TreeActions.coffee":1,"./Async.coffee":2,"./LoadComponent.coffee":11}],16:[function(require,module,exports){ +var TreeStore, Virtual, div, load, reactify, recl, ref, rele, span, walk; + +recl = React.createClass; + +rele = React.createElement; + +ref = React.DOM, div = ref.div, span = ref.span; + +load = React.createFactory(require('./LoadComponent.coffee')); + +TreeStore = require('../stores/TreeStore.coffee'); + +walk = function(root, _nil, _str, _comp) { + var _walk; + _walk = function(elem, key) { + var c, ga, gn, ref1; + switch (false) { + case !(elem == null): + return _nil(); + case typeof elem !== "string": + return _str(elem); + case elem.gn == null: + gn = elem.gn, ga = elem.ga, c = elem.c; + c = (ref1 = c != null ? c.map(_walk) : void 0) != null ? ref1 : []; + return _comp.call(elem, { + gn: gn, + ga: ga, + c: c + }, key); + default: + throw "Bad react-json " + (JSON.stringify(elem)); + } + }; + return _walk(root); +}; + +Virtual = recl({ + displayName: "Virtual", + getInitialState: function() { + return this.stateFromStore(); + }, + stateFromStore: function() { + return { + components: TreeStore.getVirtualComponents() + }; + }, + _onChangeStore: function() { + if (this.isMounted()) { + return this.setState(this.stateFromStore()); + } + }, + componentDidMount: function() { + return TreeStore.addChangeListener(this._onChangeStore); + }, + componentWillUnmount: function() { + return TreeStore.removeChangeListener(this._onChangeStore); + }, + render: function() { + var basePath, components; + components = this.state.components; + basePath = this.props.basePath; + return walk(this.props.manx, function() { + return load({}, ""); + }, function(str) { + return str; + }, function(arg, key) { + var c, e, error, ga, gn, props, ref1; + gn = arg.gn, ga = arg.ga, c = arg.c; + props = { + key: key + }; + if (ga != null ? ga.style : void 0) { + try { + ga.style = eval("(" + ga.style + ")"); + } catch (error) { + e = error; + ga.style = ga.style; + } + } + if (components[gn]) { + props.basePath = basePath; + } + return rele((ref1 = components[gn]) != null ? ref1 : gn, _.extend(props, ga), c.length ? c : void 0); + }); + } +}); + +reactify = function(manx, key, arg) { + var basePath; + basePath = (arg != null ? arg : {}).basePath; + return rele(Virtual, { + manx: manx, + key: key, + basePath: basePath + }); +}; + +module.exports = _.extend(reactify, { + walk: walk, + Virtual: Virtual +}); + + +},{"../stores/TreeStore.coffee":25,"./LoadComponent.coffee":11}],17:[function(require,module,exports){ +var appendNext, recl, rele, waitingScripts; + +recl = React.createClass; + +rele = React.createElement; + +waitingScripts = null; + +appendNext = function() { + if (waitingScripts == null) { + return; + } + if (waitingScripts.length === 0) { + return waitingScripts = null; + } else { + return document.body.appendChild(waitingScripts.shift()); + } +}; + +module.exports = recl({ + displayName: "Script", + componentDidMount: function() { + var s; + s = document.createElement('script'); + _.assign(s, this.props); + urb.waspElem(s); + s.onload = appendNext; + this.js = s; + if (waitingScripts != null) { + return waitingScripts.push(s); + } else { + waitingScripts = [s]; + return appendNext(); + } + }, + componentWillUnmount: function() { + if (this.js.parentNode === document.body) { + return document.body.removeChild(this.js); + } + }, + render: function() { + return rele("script", this.props); + } +}); + + +},{}],18:[function(require,module,exports){ +var a, div, input, query, reactify, recl, ref, + slice = [].slice; + +query = require('./Async.coffee'); + +reactify = require('./Reactify.coffee'); + +recl = React.createClass; + +ref = React.DOM, a = ref.a, div = ref.div, input = ref.input; + +module.exports = query({ + name: 't', + kids: { + sect: 'j' + } +}, recl({ + hash: null, + displayName: "Search", + getInitialState: function() { + return { + search: 'wut' + }; + }, + onKeyUp: function(e) { + return this.setState({ + search: e.target.value + }); + }, + wrap: function(elem, dir, path) { + var c, ga, gn, href, ref1; + if (path.slice(-1) === "/") { + path = path.slice(0, -1); + } + href = this.props.name + "/" + dir + path; + if (elem != null ? (ref1 = elem.ga) != null ? ref1.id : void 0 : void 0) { + gn = elem.gn, ga = elem.ga, c = elem.c; + ga = _.clone(ga); + href += "#" + ga.id; + delete ga.id; + elem = { + gn: gn, + ga: ga, + c: c + }; + } + return { + gn: 'div', + c: [ + { + gn: 'a', + ga: { + href: href + }, + c: [elem] + } + ] + }; + }, + render: function() { + return div({}, input({ + onKeyUp: this.onKeyUp, + ref: 'inp', + defaultValue: 'wut' + }), _(this.props.kids).map((function(_this) { + return function(arg, dir) { + var h, heds, path, results, sect; + sect = arg.sect; + results = []; + for (path in sect) { + heds = sect[path]; + results.push((function() { + var i, len, results1; + results1 = []; + for (i = 0, len = heds.length; i < len; i++) { + h = heds[i]; + results1.push(this.wrap(h, dir, path)); + } + return results1; + }).call(_this)); + } + return results; + }; + })(this)).flatten().flatten().map(this.highlight).filter().take(50).map(reactify).value()); + }, + highlight: function(e) { + var got, res; + if (!this.state.search) { + return e; + } + got = false; + res = reactify.walk(e, function() { + return null; + }, (function(_this) { + return function(s) { + var lit, m; + m = s.split(_this.state.search); + if (m[1] == null) { + return [s]; + } + lit = { + gn: 'span', + c: [_this.state.search], + ga: { + style: { + background: '#ff6' + } + } + }; + got = true; + return [m[0]].concat(slice.call(_.flatten((function() { + var i, len, ref1, results; + ref1 = m.slice(1); + results = []; + for (i = 0, len = ref1.length; i < len; i++) { + s = ref1[i]; + results.push([lit, s]); + } + return results; + })()))); + }; + })(this), function(arg) { + var c, ga, gn; + gn = arg.gn, ga = arg.ga, c = arg.c; + return { + gn: gn, + ga: ga, + c: _.flatten(c) + }; + }); + if (got) { + return res; + } + } +})); + + +},{"./Async.coffee":2,"./Reactify.coffee":16}],19:[function(require,module,exports){ +var a, clas, li, query, reactify, recl, ref, ul, util; + +util = require('../utils/util.coffee'); + +clas = require('classnames'); + +reactify = require('./Reactify.coffee'); + +query = require('./Async.coffee'); + +recl = React.createClass; + +ref = React.DOM, ul = ref.ul, li = ref.li, a = ref.a; + +module.exports = query({ + path: 't', + kids: { + head: 'r', + meta: 'j' + } +}, recl({ + displayName: "Siblings", + toText: function(elem) { + return reactify.walk(elem, function() { + return ''; + }, function(s) { + return s; + }, function(arg) { + var c; + c = arg.c; + return (c != null ? c : []).join(''); + }); + }, + render: function() { + var keys, navClas; + keys = util.getKeys(this.props.kids); + navClas = { + nav: true, + 'col-md-12': this.props.meta.navmode === 'navbar' + }; + if (this.props.className) { + navClas[this.props.className] = true; + } + navClas = clas(navClas); + return ul({ + className: navClas + }, keys.map((function(_this) { + return function(key) { + var className, data, head, href, selected; + selected = key === _this.props.curr; + if (_this.props.meta.navselect) { + selected = key === _this.props.meta.navselect; + } + href = util.basepath(_this.props.path + "/" + key); + data = _this.props.kids[key]; + if (data.meta) { + head = data.meta.title; + } + if (head == null) { + head = _this.toText(data.head); + } + head || (head = key); + className = clas({ + "nav-item": true, + selected: selected + }); + if (data.meta.sibsclass) { + className += " " + clas(data.meta.sibsclass.split(",")); + } + return li({ + className: className, + key: key + }, a({ + className: "nav-link", + href: href, + onClick: _this.props.closeNav + }, head)); + }; + })(this))); + } +})); + + +},{"../utils/util.coffee":27,"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],20:[function(require,module,exports){ +var div, query, reactify, recl, + slice = [].slice; + +query = require('./Async.coffee'); + +reactify = require('./Reactify.coffee'); + +recl = React.createClass; + +div = React.DOM.div; + +module.exports = query({ + body: 'r' +}, recl({ + hash: null, + displayName: "TableOfContents", + _click: function(id) { + return function() { + if (id) { + return document.location.hash = id; + } + }; + }, + componentDidMount: function() { + this.int = setInterval(this.checkHash, 100); + this.st = $(window).scrollTop(); + return this.$headers = $('#toc').children('h1,h2,h3,h4').filter('[id]'); + }, + checkScroll: function() { + var $h, hash, hst, i, len, ref, results, st, v; + st = $(window).scrollTop(); + if (Math.abs(this.st - st) > 10) { + hash = null; + this.st = st; + ref = this.$headers; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + v = ref[i]; + if (v.tagName === void 0) { + continue; + } + $h = $(v); + hst = $h.offset().top - $h.outerHeight(true) + 10; + if (hst < st) { + hash = $h.attr('id'); + } + if (hst > st && hash !== this.hash && hash !== null) { + this.hash = "#" + hash; + document.location.hash = hash; + break; + } else { + results.push(void 0); + } + } + return results; + } + }, + checkHash: function() { + var $h, hash, i, len, offset, ref, ref1, results, v; + if (((ref = document.location.hash) != null ? ref.length : void 0) > 0 && document.location.hash !== this.hash) { + hash = document.location.hash.slice(1); + ref1 = this.$headers; + results = []; + for (i = 0, len = ref1.length; i < len; i++) { + v = ref1[i]; + $h = $(v); + if (hash === $h.attr('id')) { + this.hash = document.location.hash; + offset = $h.offset().top - $h.outerHeight(true); + setTimeout(function() { + return $(window).scrollTop(offset, 10); + }); + break; + } else { + results.push(void 0); + } + } + return results; + } + }, + componentWillUnmount: function() { + return clearInterval(this.int); + }, + collectHeader: function(arg) { + var c, comp, ga, gn; + gn = arg.gn, ga = arg.ga, c = arg.c; + if (this.props.match) { + comp = gn === this.props.match; + } else { + comp = gn && gn[0] === 'h' && parseInt(gn[1]) !== NaN; + } + if (comp) { + ga = _.clone(ga); + ga.onClick = this._click(ga.id); + delete ga.id; + return { + gn: gn, + ga: ga, + c: c + }; + } + }, + parseHeaders: function() { + var contents, i, len, ref, ref1, v; + if (this.props.body.c) { + ref = this.props.body.c; + for (i = 0, len = ref.length; i < len; i++) { + v = ref[i]; + if (v.gn === 'div' && ((ref1 = v.ga) != null ? ref1.id : void 0) === "toc") { + contents = [{ + gn: "h1", + ga: { + className: "t" + }, + c: ["Table of contents"] + }].concat(slice.call(_.filter(v.c.map(this.collectHeader)))); + if (this.props.noHeader) { + contents.shift(); + } + return { + gn: "div", + ga: { + className: "toc" + }, + c: contents + }; + } + } + } + }, + render: function() { + return reactify(this.parseHeaders()); + } +})); + + +},{"./Async.coffee":2,"./Reactify.coffee":16}],21:[function(require,module,exports){ +var body, clas, div, head, query, recf, recl; + +query = require('./Async.coffee'); + +clas = require('classnames'); + +recf = React.createFactory; + +recl = React.createClass; + +head = recf(require('./NavComponent.coffee')); + +body = recf(require('./BodyComponent.coffee')); + +div = React.DOM.div; + +module.exports = query({ + body: 'r', + name: 't', + path: 't', + meta: 'j', + sein: 't' +}, recl({ + displayName: "Tree", + render: function() { + var treeClas; + treeClas = clas({ + container: this.props.meta.container !== 'false' + }); + return div({ + className: treeClas + }, [ + head({ + key: 'head-container' + }, ""), body({ + key: 'body-container' + }, "") + ]); + } +})); + + +},{"./Async.coffee":2,"./BodyComponent.coffee":3,"./NavComponent.coffee":13,"classnames":28}],22:[function(require,module,exports){ +module.exports = _.extend(new Flux.Dispatcher(), { + handleServerAction: function(action) { + return this.dispatch({ + source: 'server', + action: action + }); + }, + handleViewAction: function(action) { + return this.dispatch({ + source: 'view', + action: action + }); + } +}); + + +},{}],23:[function(require,module,exports){ +var rend; + +rend = ReactDOM.render; + +$(function() { + var frag, main, util; + util = require('./utils/util.coffee'); + require('./utils/scroll.coffee'); + if (document.location.pathname.substr(-1) !== "/") { + history.replaceState({}, "", document.location.pathname + "/" + document.location.search + document.location.hash); + } + window.tree.actions = require('./actions/TreeActions.coffee'); + window.tree.actions.addVirtual(require('./components/Components.coffee')); + frag = util.fragpath(window.location.pathname.replace(/\.[^\/]*$/, '')); + window.tree.actions.setCurr(frag); + window.tree.actions.loadPath(frag, window.tree.data); + if (window.tree.sein != null) { + window.tree.actions.loadSein(frag, window.tree.sein); + } + window.urb.ondataupdate = function(dep) { + var dat; + for (dat in window.urb.datadeps) { + window.urb.dewasp(dat); + } + return window.tree.actions.clearData(); + }; + main = React.createFactory(require('./components/TreeComponent.coffee')); + return rend(main({}, ""), document.getElementById('tree')); +}); + + +},{"./actions/TreeActions.coffee":1,"./components/Components.coffee":6,"./components/TreeComponent.coffee":21,"./utils/scroll.coffee":26,"./utils/util.coffee":27}],24:[function(require,module,exports){ +var dedup, pending, util, waspWait; + +util = require('../utils/util.coffee'); + +dedup = {}; + +pending = {}; + +waspWait = []; + +module.exports = { + refresh: function() { + return dedup = {}; + }, + get: function(path, query, cb) { + var url; + if (query == null) { + query = "no-query"; + } + url = (util.basepath(path)) + ".tree-json?q=" + (this.encode(query)); + if (dedup[url]) { + return; + } + dedup[url] = true; + pending[url] = true; + return $.get(url, {}, function(data, status, xhr) { + var dep; + delete pending[url]; + dep = urb.getXHRWasp(xhr); + urb.sources[dep] = url; + waspWait.push(dep); + if (_.isEmpty(pending)) { + waspWait.map(urb.waspData); + waspWait = []; + } + if (cb) { + return cb(null, data); + } + }); + }, + put: function(data, mark, appl) { + if (appl == null) { + appl = /[a-z]*/.exec(mark)[0]; + } + return urb.send(data, { + mark: mark, + appl: appl + }); + }, + encode: function(obj) { + var _encode, delim; + delim = function(n) { + return Array(n + 1).join('_') || '.'; + }; + _encode = function(obj) { + var _dep, dep, k, res, sub, v; + if (typeof obj !== 'object') { + return [0, obj]; + } + dep = 0; + sub = (function() { + var ref, results; + results = []; + for (k in obj) { + v = obj[k]; + ref = _encode(v), _dep = ref[0], res = ref[1]; + if (_dep > dep) { + dep = _dep; + } + if (res != null) { + results.push(k + (delim(_dep)) + res); + } else { + results.push(void 0); + } + } + return results; + })(); + dep++; + return [dep, sub.join(delim(dep))]; + }; + return (_encode(obj))[1]; + } +}; + + +},{"../utils/util.coffee":27}],25:[function(require,module,exports){ +var EventEmitter, MessageDispatcher, QUERIES, TreeStore, _curr, _data, _nav, _tree, _virt, clog; + +EventEmitter = require('events').EventEmitter.EventEmitter; + +MessageDispatcher = require('../dispatcher/Dispatcher.coffee'); + +clog = console.log.bind(console); + +_virt = {}; + +_tree = {}; + +_data = {}; + +_curr = ""; + +_nav = {}; + +QUERIES = { + body: 'r', + head: 'r', + snip: 'r', + sect: 'j', + meta: 'j', + comt: 'j', + plan: 'j', + beak: 't' +}; + +TreeStore = _.extend((new EventEmitter).setMaxListeners(50), { + addChangeListener: function(cb) { + return this.on('change', cb); + }, + removeChangeListener: function(cb) { + return this.removeListener("change", cb); + }, + emitChange: function() { + return this.emit('change'); + }, + pathToArr: function(_path) { + return _path.split("/"); + }, + fulfill: function(path, query) { + if (path === "/") { + path = ""; + } + return this.fulfillAt(this.getTree(path.split('/')), path, query); + }, + fulfillAt: function(tree, path, query) { + var data, have, k, sub, t; + data = this.fulfillLocal(path, query); + have = _data[path]; + if (have != null) { + for (k in query) { + t = query[k]; + if (!QUERIES[k]) { + continue; + } + if (t !== QUERIES[k]) { + throw TypeError("Wrong query type: " + k + ", '" + t + "'"); + } + data[k] = have[k]; + } + } + if (query.kids) { + if ((have != null ? have.kids : void 0) === false) { + data.kids = {}; + } else { + for (k in tree) { + sub = tree[k]; + if (data.kids == null) { + data.kids = {}; + } + data.kids[k] = this.fulfillAt(sub, path + "/" + k, query.kids); + } + } + } + if (!_.isEmpty(data)) { + return data; + } + }, + fulfillLocal: function(path, query) { + var data; + data = {}; + if (query.path) { + data.path = path; + } + if (query.name) { + data.name = path.split("/").pop(); + } + if (query.sein) { + data.sein = this.getPare(path); + } + if (query.next) { + data.next = this.getNext(path); + } + if (query.prev) { + data.prev = this.getPrev(path); + } + return data; + }, + setCurr: function(arg) { + var path; + path = arg.path; + return _curr = path; + }, + getCurr: function() { + return _curr; + }, + addVirtual: function(arg) { + var components; + components = arg.components; + return _.extend(_virt, components); + }, + getVirtualComponents: function() { + return _virt; + }, + clearData: function() { + _data = {}; + return _tree = {}; + }, + loadSein: function(arg) { + var data, path, sein; + path = arg.path, data = arg.data; + sein = this.getPare(path); + if (sein != null) { + return this.loadPath({ + path: sein, + data: data + }); + } + }, + loadPath: function(arg) { + var data, path; + path = arg.path, data = arg.data; + return this.loadValues(this.getTree(path.split('/'), true), path, data); + }, + loadValues: function(tree, path, data) { + var _path, k, old, ref, ref1, v; + old = (ref = _data[path]) != null ? ref : {}; + for (k in data) { + if (QUERIES[k]) { + old[k] = data[k]; + } + } + ref1 = data.kids; + for (k in ref1) { + v = ref1[k]; + if (tree[k] == null) { + tree[k] = {}; + } + _path = path; + if (_path === "/") { + _path = ""; + } + this.loadValues(tree[k], _path + "/" + k, v); + } + if (data.kids && _.isEmpty(data.kids)) { + old.kids = false; + } + return _data[path] = old; + }, + getSiblings: function(path) { + var curr; + if (path == null) { + path = _curr; + } + curr = path.split("/"); + curr.pop(); + if (curr.length !== 0) { + return this.getTree(curr); + } else { + return {}; + } + }, + getTree: function(_path, make) { + var i, len, sub, tree; + if (make == null) { + make = false; + } + tree = _tree; + for (i = 0, len = _path.length; i < len; i++) { + sub = _path[i]; + if (!sub) { + continue; + } + if (tree[sub] == null) { + if (!make) { + return null; + } + tree[sub] = {}; + } + tree = tree[sub]; + } + return tree; + }, + getPrev: function(path) { + var ind, key, par, sibs, win; + if (path == null) { + path = _curr; + } + sibs = _.keys(this.getSiblings(path)).sort(); + if (sibs.length < 2) { + return null; + } else { + par = path.split("/"); + key = par.pop(); + ind = sibs.indexOf(key); + win = ind - 1 >= 0 ? sibs[ind - 1] : sibs[sibs.length - 1]; + par.push(win); + return par.join("/"); + } + }, + getNext: function(path) { + var ind, key, par, sibs, win; + if (path == null) { + path = _curr; + } + sibs = _.keys(this.getSiblings(path)).sort(); + if (sibs.length < 2) { + return null; + } else { + par = path.split("/"); + key = par.pop(); + ind = sibs.indexOf(key); + win = ind + 1 < sibs.length ? sibs[ind + 1] : sibs[0]; + par.push(win); + return par.join("/"); + } + }, + getPare: function(path) { + var _path; + if (path == null) { + path = _curr; + } + _path = this.pathToArr(path); + if (_path.length > 1) { + _path.pop(); + _path = _path.join("/"); + if (_path === "") { + _path = "/"; + } + return _path; + } else { + return null; + } + }, + setNav: function(arg) { + var dpad, nav, sibs, subnav, title; + title = arg.title, dpad = arg.dpad, sibs = arg.sibs, subnav = arg.subnav; + nav = { + title: title, + dpad: dpad, + sibs: sibs, + subnav: subnav, + open: (_nav.open ? _nav.open : false) + }; + return _nav = nav; + }, + getNav: function() { + return _nav; + }, + toggleNav: function() { + return _nav.open = !_nav.open; + }, + closeNav: function() { + return _nav.open = false; + }, + clearNav: function() { + return _nav = { + title: null, + dpad: null, + sibs: null, + subnav: null, + open: false + }; + } +}); + +TreeStore.dispatchToken = MessageDispatcher.register(function(p) { + var a; + a = p.action; + if (TreeStore[a.type]) { + TreeStore[a.type](a); + return TreeStore.emitChange(); + } +}); + +module.exports = TreeStore; + + +},{"../dispatcher/Dispatcher.coffee":22,"events":29}],26:[function(require,module,exports){ +var scroll; + +scroll = { + w: null, + $d: null, + $n: null, + nh: null, + cs: null, + ls: null, + track: function() { + this.w = $(window).width(); + this.$n = $('#head'); + this.$d = $('#head .ctrl'); + return this.nh = $('#head .ctrl').outerHeight(true); + }, + clearNav: function() { + return this.$n.removeClass('m-up m-down m-fixed'); + }, + resize: function() { + if (this.w > 1170) { + return this.clearNav(); + } + }, + scroll: function() { + var ct, dy, top; + this.cs = $(window).scrollTop(); + if (this.w > 767) { + this.clearNav(); + } + if (this.w < 767) { + dy = this.ls - this.cs; + this.$d.removeClass('focus'); + if (this.cs <= 0) { + this.$n.removeClass('m-up'); + this.$n.addClass('m-down m-fixed'); + return; + } + if (dy > 0) { + if (!this.$n.hasClass('m-down')) { + this.$n.removeClass('m-up').addClass('m-down'); + ct = this.$n.offset().top; + top = this.cs - this.nh; + if (this.cs > ct && this.cs < ct + this.nh) { + top = ct; + } + this.$n.offset({ + top: top + }); + } + if (this.$n.hasClass('m-down') && !this.$n.hasClass('m-fixed') && this.$n.offset().top >= this.cs) { + this.$n.addClass('m-fixed'); + this.$n.attr({ + style: '' + }); + } + } + if (dy < 0) { + if (!this.$n.hasClass('m-up')) { + this.$n.removeClass('m-down m-fixed').addClass('m-up'); + this.$d.removeClass('open'); + $('.menu.open').removeClass('open'); + top = this.cs < 0 ? 0 : this.cs; + ct = this.$n.offset().top; + if (top > ct && top < ct + this.nh) { + top = ct; + } + this.$n.offset({ + top: top + }); + } + if (this.$n.hasClass('m-up') && this.$d.hasClass('open')) { + if (this.cs > this.$n.offset().top + this.$n.height()) { + this.$d.removeClass('open'); + } + } + } + } + return this.ls = this.cs; + }, + init: function() { + setInterval(this.track.bind(this), 200); + this.ls = $(window).scrollTop(); + this.cs = $(window).scrollTop(); + $(window).on('resize', this.resize.bind(this)); + return $(window).on('scroll', this.scroll.bind(this)); + } +}; + +scroll.init(); + +module.exports = scroll; + + +},{}],27:[function(require,module,exports){ +var _basepath; + +_basepath = window.urb.util.basepath("/"); + +_basepath += (window.location.pathname.replace(window.tree._basepath, "")).split("/")[0]; + +module.exports = { + basepath: function(path) { + var _path, prefix; + prefix = _basepath; + if (prefix === "/") { + prefix = ""; + } + if (path[0] !== "/") { + path = "/" + path; + } + _path = prefix + path; + if (_path.slice(-1) === "/" && _path.length > 1) { + _path = _path.slice(0, -1); + } + return _path; + }, + fragpath: function(path) { + return path.replace(/\/$/, '').replace(_basepath, ""); + }, + getKeys: function(kids) { + var k, keys, ref, ref1, ref2, sorted, v; + sorted = true; + keys = []; + for (k in kids) { + v = kids[k]; + if ((ref = v.meta) != null ? ref.hide : void 0) { + continue; + } + if (((ref1 = v.meta) != null ? ref1.sort : void 0) == null) { + sorted = false; + } + keys[Number((ref2 = v.meta) != null ? ref2.sort : void 0)] = k; + } + if (sorted !== true) { + return keys = _.keys(kids).sort(); + } else { + return keys = _.values(keys); + } + } +}; + + +},{}],28:[function(require,module,exports){ +/*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + 'use strict'; + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg)) { + classes.push(classNames.apply(null, arg)); + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (typeof module !== 'undefined' && module.exports) { + module.exports = classNames; + } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) { + // register as 'classnames', consistent with npm package name + define('classnames', [], function () { + return classNames; + }); + } else { + window.classNames = classNames; + } +}()); + +},{}],29:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +function EventEmitter() { + this._events = this._events || {}; + this._maxListeners = this._maxListeners || undefined; +} +module.exports = EventEmitter; + +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._maxListeners = undefined; + +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +EventEmitter.defaultMaxListeners = 10; + +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function(n) { + if (!isNumber(n) || n < 0 || isNaN(n)) + throw TypeError('n must be a positive number'); + this._maxListeners = n; + return this; +}; + +EventEmitter.prototype.emit = function(type) { + var er, handler, len, args, i, listeners; + + if (!this._events) + this._events = {}; + + // If there is no 'error' event listener then throw. + if (type === 'error') { + if (!this._events.error || + (isObject(this._events.error) && !this._events.error.length)) { + er = arguments[1]; + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } + throw TypeError('Uncaught, unspecified "error" event.'); + } + } + + handler = this._events[type]; + + if (isUndefined(handler)) + return false; + + if (isFunction(handler)) { + switch (arguments.length) { + // fast cases + case 1: + handler.call(this); + break; + case 2: + handler.call(this, arguments[1]); + break; + case 3: + handler.call(this, arguments[1], arguments[2]); + break; + // slower + default: + args = Array.prototype.slice.call(arguments, 1); + handler.apply(this, args); + } + } else if (isObject(handler)) { + args = Array.prototype.slice.call(arguments, 1); + listeners = handler.slice(); + len = listeners.length; + for (i = 0; i < len; i++) + listeners[i].apply(this, args); + } + + return true; +}; + +EventEmitter.prototype.addListener = function(type, listener) { + var m; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events) + this._events = {}; + + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (this._events.newListener) + this.emit('newListener', type, + isFunction(listener.listener) ? + listener.listener : listener); + + if (!this._events[type]) + // Optimize the case of one listener. Don't need the extra array object. + this._events[type] = listener; + else if (isObject(this._events[type])) + // If we've already got an array, just append. + this._events[type].push(listener); + else + // Adding the second element, need to change to array. + this._events[type] = [this._events[type], listener]; + + // Check for listener leak + if (isObject(this._events[type]) && !this._events[type].warned) { + if (!isUndefined(this._maxListeners)) { + m = this._maxListeners; + } else { + m = EventEmitter.defaultMaxListeners; + } + + if (m && m > 0 && this._events[type].length > m) { + this._events[type].warned = true; + console.error('(node) warning: possible EventEmitter memory ' + + 'leak detected. %d listeners added. ' + + 'Use emitter.setMaxListeners() to increase limit.', + this._events[type].length); + if (typeof console.trace === 'function') { + // not supported in IE 10 + console.trace(); + } + } + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + var fired = false; + + function g() { + this.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + g.listener = listener; + this.on(type, g); + + return this; +}; + +// emits a 'removeListener' event iff the listener was removed +EventEmitter.prototype.removeListener = function(type, listener) { + var list, position, length, i; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events || !this._events[type]) + return this; + + list = this._events[type]; + length = list.length; + position = -1; + + if (list === listener || + (isFunction(list.listener) && list.listener === listener)) { + delete this._events[type]; + if (this._events.removeListener) + this.emit('removeListener', type, listener); + + } else if (isObject(list)) { + for (i = length; i-- > 0;) { + if (list[i] === listener || + (list[i].listener && list[i].listener === listener)) { + position = i; + break; + } + } + + if (position < 0) + return this; + + if (list.length === 1) { + list.length = 0; + delete this._events[type]; + } else { + list.splice(position, 1); + } + + if (this._events.removeListener) + this.emit('removeListener', type, listener); + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + var key, listeners; + + if (!this._events) + return this; + + // not listening for removeListener, no need to emit + if (!this._events.removeListener) { + if (arguments.length === 0) + this._events = {}; + else if (this._events[type]) + delete this._events[type]; + return this; + } + + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + for (key in this._events) { + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = {}; + return this; + } + + listeners = this._events[type]; + + if (isFunction(listeners)) { + this.removeListener(type, listeners); + } else if (listeners) { + // LIFO order + while (listeners.length) + this.removeListener(type, listeners[listeners.length - 1]); + } + delete this._events[type]; + + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + var ret; + if (!this._events || !this._events[type]) + ret = []; + else if (isFunction(this._events[type])) + ret = [this._events[type]]; + else + ret = this._events[type].slice(); + return ret; +}; + +EventEmitter.prototype.listenerCount = function(type) { + if (this._events) { + var evlistener = this._events[type]; + + if (isFunction(evlistener)) + return 1; + else if (evlistener) + return evlistener.length; + } + return 0; +}; + +EventEmitter.listenerCount = function(emitter, type) { + return emitter.listenerCount(type); +}; + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isUndefined(arg) { + return arg === void 0; +} + +},{}]},{},[23]); +CodeMirror.defineMode("hoon", function() { + glyph = /[+\-|$%:.#^~;=?!_,&\/<>%*]/ + term = /^[$&|]|^[a-z]([a-z0-9\-]*[a-z0-9])?/ + num = /~[a-z0-9._~-]+|-?-?^[0-9]([0-9.]*|[xwbv]?[0-9a-zA-Z.-~]*)/ + res = {} + res.startState = function(){return {soblock: false, doqblock:false, sail:false, space:true}} + var propOrVar = function(c){ + if(c == '.') + return 'property' + return 'variable' + } + res.token = function(stream, state){ + if(state.soqblock && stream.sol()){ + if(stream.match(/\s*'''/)){ + state.soqblock = false + } + else { + stream.skipToEnd() + } + return "string" + } + if(state.doqblock){ + if(stream.match(/\s*"""/)){ + state.doqblock = false + } + else { + stream.skipToEnd() + } + return "string" + } + + if(stream.sol()) + state.space = true + + if(state.sail){ + if(stream.peek().match(/[^#./() ]/)||stream.eol()){ + state.sail = false + if(stream.match(/:? /)){ + stream.skipToEnd() + return 'string' + } + if(stream.match(term)) + state.sail = true + return; + if(stream.match(':')) + state.sail = true + return 'operator' + } + } + if(stream.match("'")){ + if(stream.match("''")){ + state.soqblock = true + return 'string' + } + while(stream.match(/^[^'\\]/) || stream.match(/\\./)); + stream.eat("'") + return 'string' + } + if(stream.match('"')){ + if(stream.match('""')){ + state.doqblock = true + stream.skipToEnd() + return 'string' + } + while(stream.match(/^[^"\\]/) || stream.match(/\\./)); + stream.eat('"') + return 'string' + } + if(stream.match(' ;')){ + if(stream.eat(' ')){ + stream.skipToEnd() + return 'string' + } + if(!stream.match(glyph)){ + state.sail = true + } + return 'builtin' + } + + if(stream.match('::')){ + stream.skipToEnd() + return 'comment' + } + + if(stream.match('++ ') || stream.match('+- ')){ + stream.match(term) + return 'header' + } + if(state.space && stream.match('--')){ + if(stream.eat(glyph) || stream.eat(/[a-z0-9]/)) + stream.backUp(3) + else return 'header' + } + + if(stream.match(/^@[a-z]*[A-Z]?/)) + return 'atom' + if(stream.match(num)) + return 'number' + + if(stream.eat(/[%$]/)) + if(stream.match(term) || stream.match(num) || stream.match('~')) + return 'tag' + else stream.backUp(1) + if(state.space && stream.match('==')){ + return 'tag' + } + + if(stream.eat('~')){ + if(/[()]/.exec(stream.peek())) + return 'builtin' + return 'tag' + } + + if(stream.eat(/[+\-]/)){ + while(stream.eat(/[<>]/) && stream.eat(/[+\-]/)); + return propOrVar(stream.peek()) + } + + if(stream.eat('`')){ + state.space = false + return 'operator' + } + if(stream.sol() && stream.eatWhile(glyph)){ + state.space = false + return 'builtin' + } + if(stream.eat(glyph)){ + state.space = false + stream.backUp(2) + if(stream.eat(/[ ([{]/) || (stream.peek().match(/[^+\-<>]/) + && stream.eat(glyph))){ // expression start + stream.eatWhile(glyph) + return 'builtin' + } + stream.next() + if(state.space && stream.eat('=')){ + if(/[()]/.exec(stream.peek())) + return 'builtin' + return 'operator' + } + if(stream.eat(/[=:.^/]/)) + return 'operator' + stream.next() + return 'builtin' + } + + if(stream.match(term)){ + if(state.space && stream.match('+')) + return 'tag' + state.space = false + return propOrVar(stream.peek()) + } + if(stream.eat(/[ \[({]/)){ + state.space = true + return + } + stream.next() + } + res.lineComment = '::' + res.fold = "indent" + return res +}); + +CodeMirror.defineMIME("text/x-hoon", "hoon"); +window.urb = window.urb || {} +window.urb.appl = window.urb.appl || null + +window.urb.req = function(method,url,params,json,cb) { + var xhr = new XMLHttpRequest() + method = method.toUpperCase() + if(method == "PUT" || method == "DELETE") + xhr.open("POST", url+"?"+method) + else xhr.open(method, url) + + if(json) + xhr.setRequestHeader("content-type", "text/json") + + if(!window.urb.oryx) throw "No CSRF token" // XX fetch auth.json + _data = {oryx: window.urb.oryx} + if(params.xyro) { _data.xyro = params.xyro; } + if(params.ship) { _data.ship = params.ship; } + if(params.path) { _data.path = params.path; } + if(params.appl) { _data.appl = params.appl; } + if(params.mark) { _data.mark = params.mark; } + if(params.wire) { _data.wire = params.wire; } + if(cb) { + xhr.onload = function() { + var err,res + try { + err = null + res = { + status:this.status, + data: JSON.parse(this.responseText) + } + if(res.data.reload) + res.reload = res.data.reload + } catch(e) { + // if(urb.wall !== false) document.write(this.responseText) // XX + err = { + message:"Failed to parse JSON", + raw:this.responseText + } + res = null + } + finally { + cb(err,res) + } + } + xhr.onerror = function() { + cb({ + status:this.status, + data:this.responseText + }) + } + } + xhr.send(JSON.stringify(_data)) +} + +// window.urb.getJSON = function(url,cb){ window.urb.reqJSON("GET",url, null, cb)} +// window.urb.reqJSON = function(method, url, data, cb){ +// var xhr = new XMLHttpRequest() +// xhr.open(method, url) +// xhr.onload = function(){ +// urb.fetchTag.call(xhr) +// if(cb) cb(JSON.parse(xhr.responseText)) +// } +// xhr.send(data === null ? null : JSON.stringify(data)) +// } + +window.urb.reqq = [] +window.urb.qreq = function(method,url,params,json,cb) { + walk = function() { + qobj = {} + qobj.oargs = window.urb.reqq[0] + qobj.nargs = [].slice.call(qobj.oargs,0,4) + qobj.nargs.push(function(){ + if(this.oargs[4]) + this.oargs[4].apply(window.urb,arguments) + window.urb.reqq.shift() + if(window.urb.reqq.length > 0) + walk() + }.bind(qobj)) + window.urb.req.apply(this,qobj.nargs) + } + l = window.urb.reqq.length + window.urb.reqq.push(arguments); + if(l == 0) { walk() } +} + +window.urb.send = function(data,params,cb) { // or send(data, cb) + if(!params || typeof params === "function") + {cb = params; params = {}} + + var url, $send + $send = this.send + + params.data = data + params.ship = params.ship || this.ship + params.appl = params.appl || this.appl + params.mark = params.mark || $send.mark + // params.seqn = params.seqn || $send.seqn + params.wire = params.wire || "/" + params.xyro = (typeof(params.data) === 'undefined') ? null : params.data + + + if(!params.mark) throw new Error("You must specify a mark for urb.send.") + if(!params.appl) throw new Error("You must specify an appl for urb.send.") + + url = ["to",params.appl,params.mark] + url = "/~/"+url.join("/") + + // $send.seqn++ + + this.qreq('post',url,params,true,function(err,data) { + /* if(err) { $send.seqn--; } + else */ if(data && data.data.fail && urb.wall !== false && params.wall !== false) { + document.location = "#ERROR" + document.write("
"+JSON.stringify(params.xyro)+"\n"
+                            +data.data.mess+"
") // XX + } + if(cb) { cb.apply(this,arguments); } + }) +} +// window.urb.send.seqn = 0 +window.urb.send.mark = "json" + + +window.urb.gsig = function(params) { + var path = params.path + if(!path) path = "" + if(path[0] !== "/") path = "/"+path + return "~"+params.ship+"/"+ + params.appl+ + path.replace(/[^\x00-\x7F]/g, "") +} + +window.urb.puls = false +window.urb.cabs = {} +window.urb.poll = function(params) { + if(!params) throw new Error("You must supply params to urb.poll.") + + var url, $this + + seqn = this.poll.seqn + if(params.seqn) seqn = params.seqn() + + url = "/~/of/"+this.ixor+"?poll="+seqn + + this.puls = true + + $this = this + this.req("get",url,params,true,function(err,res) { + $this.poll.dely = params.dely || $this.poll.dely + if(res){ + if(res.data.beat) + return $this.poll(params) + switch(res.data.type){ + case "news": + return document.location.reload() // XX check autoreload + case "rush": + case "mean": + var err2 = err + if(res.data.type == "mean") + err2 = res.data.data + var fn = $this.gsig(res.data.from) + if($this.cabs[fn]) + $this.cabs[fn].call(this,err2, + {status: res.status, data: res.data.data.json}) // XX non-json + break; + case "quit": + // XX necessary behaviour? + break; + default: + throw new Error("Lost event %"+res.data.type) + } + if(params.incs) + params.incs() + else + $this.poll.seqn++ + $this.poll.dely = 250 + return $this.poll(params) + } + + else if(err){ + setTimeout(function() { + $this.poll(params) + }, $this.poll.dely) + $this.poll.dely += Math.ceil($this.poll.dely*.2) + } + else throw "Neither error nor result on poll" + }) +} +window.urb.poll.seqn = 1 +window.urb.poll.dely = 250 + +window.urb.bind = function(path, params, cb, nicecb){ // or bind(path, cb) + if(!params || typeof params === "function") + {cb = params; params = {}} + + params.path = path + if(params.path[0] !== "/") params.path = "/"+params.path + params.ship = params.ship || this.ship + params.appl = params.appl || this.appl + params.mark = params.mark || this.bind.mark + params.wire = params.wire || params.path + + if(typeof path != "string") + throw new Error("You must specify a string path for urb.bind.") + if(!params.appl) throw new Error("You must specify an appl for urb.bind.") + if(!cb) throw new Error("You must supply a callback to urb.bind.") + + var method, perm, url, $this + + if(params.mark !== "json") + throw new Error("Non-json subscriptions unimplemented.") // XX + url = "/~/is/"+this.gsig(params)+"."+params.mark + + params.path = params.wire + this.cabs[this.gsig(params)] = cb + + $this = this + this.qreq("put",url,params,true,function(err,res) { + if(nicecb) { nicecb.apply(this,[err,{status: res.status, data: res.data}])} + // XX give raw data + // + if(!err && !$this.puls) $this.poll(params) + }) +} +urb.bind.mark = "json" + +window.urb.drop = function(path, params, cb){ // or drop(path,cb) + if(typeof params === "function") + {cb = params; params = {}} + + params.path = path + if(params.path[0] !== "/") params.path = "/"+params.path + params.ship = params.ship || this.ship + params.appl = params.appl || this.appl + params.wire = params.wire || params.path + + if(typeof path != "string") + throw new Error("You must specify a string path for urb.drop.") + if(!params.appl) throw new Error("You must specify an appl for urb.drop.") + + url = "/~/is/"+this.gsig(params)+".json" + method = "delete" + this.req("delete",url,params,true,function(err,res) { + if(cb) cb(err,res) + }) +} + +window.urb.subscribe = function(params,cb) { // legacy interface + if(!params) throw new Error("You must supply params to urb.subscribe") + return window.urb.bind(params.path, params, cb, cb) +} + +window.urb.unsubscribe = function(params,cb) { // legacy intreface + if(!params) throw new Error("You must supply params to urb.unsubscribe.") + return window.urb.drop(params.path, params, cb) +} + +window.urb.util = { + isURL: function(s) { + r = new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', 'i'); + return s.length < 2083 && r.test(s); + }, + numDot: function(n) { + _n = String(n) + fun = function(s){ + if(s.length <= 3) + return s + return fun(s.slice(0,-3))+"."+s.slice(-3) + } + return fun((_n)) + }, + toDate: function (dat){ + var mils = Math.floor((0x10000 * dat.getUTCMilliseconds()) / 1000).toString(16) + function pad(num, str){ + return ((new Array(num + 1)).join('0') + str).substr(-num,num) + } + return '~' + dat.getUTCFullYear() + + '.' + (dat.getUTCMonth() + 1) + + '.' + dat.getUTCDate() + + '..' + pad(2, dat.getUTCHours()) + + '.' + pad(2, dat.getUTCMinutes()) + + '.' + pad(2, dat.getUTCSeconds()) + + '..' + pad(4, mils) + }, + basepath: function(spur, pathname){ + spur = spur || '' + if(spur === '/') spur = '' + pathname = pathname || window.location.pathname + + base = "" + + if(pathname.indexOf("/~~") == 0) + base = "/~~" + if(pathname.indexOf("/~/as/") == 0) + base = "/~/as/"+pathname.split("/")[3] + if(pathname.indexOf("/~/away") == 0) + base = "/~/away" + + return base+spur + } +} diff --git a/web/tree/main_urb.js b/web/tree/main_urb.js new file mode 100644 index 000000000..a41f41879 --- /dev/null +++ b/web/tree/main_urb.js @@ -0,0 +1,3550 @@ +(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 1) { + index = keys.indexOf(this.props.curr); + next = index + 1; + if (next === keys.length) { + next = 0; + } + next = keys[next]; + next = this.props.kids[next]; + if (next) { + return div({ + className: "link-next" + }, a({ + href: this.props.path + "/" + next.name + }, "Next: " + next.meta.title)); + } + } + } + return div({}, ""); + } + })), + comments: Comments, + footer: recl({ + displayName: "Footer", + render: function() { + var containerClas, footerClas; + containerClas = clas({ + footer: true, + container: this.props.container === 'false' + }); + footerClas = clas({ + 'col-md-12': this.props.container === 'false' + }); + return div({ + className: containerClas, + key: 'footer-container' + }, [ + div({ + className: footerClas, + key: 'footer-inner' + }, [ + "This page was made by Urbit. ", a({ + href: "urbit.org" + }, "urbit.org"), a({ + href: "mailto:urbit@urbit.org" + }, "contact") + ]) + ]); + } + }) +}; + +module.exports = query({ + body: 'r', + name: 't', + path: 't', + meta: 'j', + sein: 't' +}, recl({ + displayName: "Body", + stateFromStore: function() { + return { + curr: TreeStore.getCurr() + }; + }, + getInitialState: function() { + return this.stateFromStore(); + }, + _onChangeStore: function() { + if (this.isMounted()) { + return this.setState(this.stateFromStore()); + } + }, + componentDidMount: function() { + return TreeStore.addChangeListener(this._onChangeStore); + }, + render: function() { + var bodyClas, extra, innerClas, parts, ref1; + extra = (function(_this) { + return function(name, props) { + if (props == null) { + props = {}; + } + if (_this.props.meta[name] != null) { + if ((_.keys(props)).length === 0) { + props[name] = _this.props.meta[name]; + } + props.key = name; + return React.createElement(extras[name], props); + } + }; + })(this); + innerClas = { + body: true + }; + if (this.props.meta.anchor !== 'none' && this.props.meta.navmode !== 'navbar') { + innerClas['col-md-9'] = true; + innerClas['col-md-offset-3'] = true; + } + if (this.props.meta.navmode === 'navbar' && this.props.meta.container !== 'false') { + innerClas['col-md-9'] = true; + innerClas['col-md-offset-1'] = true; + } + innerClas = clas(innerClas); + bodyClas = clas((ref1 = this.props.meta.layout) != null ? ref1.split(',') : void 0); + if (this.props.meta.type && bodyClas.indexOf(this.props.meta.type) === -1) { + bodyClas += " " + this.props.meta.type; + } + parts = [ + extra('spam'), extra('logo', { + color: this.props.meta.logo + }), reactify(this.props.body, 'body'), extra('next', { + dataPath: this.props.sein, + curr: this.props.name + }), extra('comments'), extra('footer', { + container: this.props.meta.container + }) + ]; + if (this.props.meta.type === "post") { + parts.splice(1, 0, extra('date'), extra('title'), extra('image'), extra('preview'), extra('author')); + } + return div({ + dataPath: this.state.curr, + key: this.state.curr + }, [ + div({ + className: innerClas, + 'data-path': this.props.path, + key: 'body-inner' + }, [ + div({ + key: "body" + this.props.path, + id: 'body', + className: bodyClas + }, parts) + ]) + ]); + } +}), recl({ + render: function() { + return div({ + id: 'body', + className: "col-md-offset-3 col-md-9" + }, rele(load)); + } +})); + + +},{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":25,"../utils/util.coffee":27,"./Async.coffee":2,"./CommentsComponent.coffee":5,"./LoadComponent.coffee":11,"./Reactify.coffee":16,"classnames":28}],4:[function(require,module,exports){ +var div, recl, ref, textarea; + +recl = React.createClass; + +ref = React.DOM, div = ref.div, textarea = ref.textarea; + +module.exports = recl({ + render: function() { + return div({}, textarea({ + ref: 'ed', + value: this.props.value + })); + }, + componentDidMount: function() { + return CodeMirror.fromTextArea(ReactDOM.findDOMNode(this.refs.ed), { + readOnly: true, + lineNumbers: true + }); + } +}); + + +},{}],5:[function(require,module,exports){ +var Comment, TreeActions, a, clas, div, form, img, input, load, p, query, reactify, recl, ref, rele, textarea, util; + +clas = require('classnames'); + +load = require('./LoadComponent.coffee'); + +query = require('./Async.coffee'); + +reactify = require('./Reactify.coffee'); + +TreeActions = require('../actions/TreeActions.coffee'); + +util = require('../utils/util.coffee'); + +recl = React.createClass; + +rele = React.createElement; + +ref = React.DOM, div = ref.div, p = ref.p, img = ref.img, a = ref.a, form = ref.form, textarea = ref.textarea, input = ref.input; + +Comment = function(arg) { + var body, time; + time = arg.time, body = arg.body; + return div({ + className: "comment" + }, "" + (window.urb.util.toDate(new Date(time))), reactify(body)); +}; + +module.exports = query({ + comt: 'j', + path: 't' +}, recl({ + displayName: "Comments", + getInitialState: function() { + return { + loading: false, + value: "" + }; + }, + componentDidUpdate: function(_props) { + if (this.props.comt.length > _props.comt.length) { + return this.setState({ + loading: false + }); + } + }, + onSubmit: function(e) { + TreeActions.addComment(this.props.path, this.refs["in"].comment.value); + this.setState({ + loading: true, + value: "" + }); + return e.preventDefault(); + }, + onChange: function(e) { + return this.setState({ + value: e.target.value + }); + }, + render: function() { + var _attr, inputAttr, textareaAttr; + _attr = {}; + if (this.state.loading === true) { + _attr.disabled = "true"; + } + textareaAttr = _.create(_attr, { + type: "text", + name: "comment", + value: this.state.value, + onChange: this.onChange + }); + inputAttr = _.create(_attr, { + type: "submit", + value: "Add comment", + className: "btn btn-primary" + }); + return div({}, div({ + className: "add-comment" + }, form({ + ref: "in", + onSubmit: this.onSubmit + }, textarea(textareaAttr), input(inputAttr))), (this.state.loading === true ? rele(load) : ""), div({ + className: "comments" + }, this.props.comt.map(function(props, key) { + return rele(Comment, _.extend({ + key: key + }, props)); + }))); + } +})); + + +},{"../actions/TreeActions.coffee":1,"../utils/util.coffee":27,"./Async.coffee":2,"./LoadComponent.coffee":11,"./Reactify.coffee":16,"classnames":28}],6:[function(require,module,exports){ +var div, recl; + +recl = React.createClass; + +div = React.DOM.div; + +module.exports = { + codemirror: require('./CodeMirror.coffee'), + search: require('./SearchComponent.coffee'), + list: require('./ListComponent.coffee'), + kids: require('./KidsComponent.coffee'), + toc: require('./TocComponent.coffee'), + email: require('./EmailComponent.coffee'), + module: require('./ModuleComponent.coffee'), + script: require('./ScriptComponent.coffee'), + plan: require('./PlanComponent.coffee'), + panel: require('./PanelComponent.coffee'), + lost: recl({ + render: function() { + return div({}, ""); + } + }) +}; + + +},{"./CodeMirror.coffee":4,"./EmailComponent.coffee":8,"./KidsComponent.coffee":9,"./ListComponent.coffee":10,"./ModuleComponent.coffee":12,"./PanelComponent.coffee":14,"./PlanComponent.coffee":15,"./ScriptComponent.coffee":17,"./SearchComponent.coffee":18,"./TocComponent.coffee":20}],7:[function(require,module,exports){ +var a, div, recl, ref, util; + +util = require('../utils/util.coffee'); + +recl = React.createClass; + +ref = React.DOM, div = ref.div, a = ref.a; + +module.exports = recl({ + displayName: "Dpad", + renderUp: function() { + if (this.props.sein) { + return this.renderArrow("up", this.props.sein); + } + }, + renderArrow: function(name, path) { + var href; + href = util.basepath(path); + return a({ + href: href, + key: "" + name, + className: "" + name + }, ""); + }, + renderArrows: function() { + var index, keys, next, prev, sein; + keys = util.getKeys(this.props.kids); + if (keys.length > 1) { + index = keys.indexOf(this.props.curr); + prev = index - 1; + next = index + 1; + if (prev < 0) { + prev = keys.length - 1; + } + if (next === keys.length) { + next = 0; + } + prev = keys[prev]; + next = keys[next]; + } + if (this.props.sein) { + sein = this.props.sein; + if (sein === "/") { + sein = ""; + } + return div({}, prev ? this.renderArrow("prev", sein + "/" + prev) : void 0, next ? this.renderArrow("next", sein + "/" + next) : void 0); + } + }, + render: function() { + return div({ + className: 'dpad', + key: 'dpad' + }, this.renderUp(), this.renderArrows()); + } +}); + + +},{"../utils/util.coffee":27}],8:[function(require,module,exports){ +var button, div, input, p, reactify, recl, ref; + +reactify = require('./Reactify.coffee'); + +recl = React.createClass; + +ref = React.DOM, div = ref.div, p = ref.p, button = ref.button, input = ref.input; + +module.exports = recl({ + displayName: "email", + getInitialState: function() { + return { + submit: false, + email: "" + }; + }, + onClick: function() { + return this.submit(); + }, + onChange: function(e) { + var email, valid; + email = e.target.value; + this.setState({ + email: e.target.value + }); + valid = email.indexOf('@') !== -1 && email.indexOf('.') !== -1 && email.length > 7 && email.split(".")[1].length > 1 && email.split("@")[0].length > 0 && email.split("@")[1].length > 4; + this.$email.toggleClass('valid', valid); + this.$email.removeClass('error'); + if (e.keyCode === 13) { + if (valid === true) { + this.submit(); + e.stopPropagation(); + e.preventDefault(); + return false; + } else { + return this.$email.addClass('error'); + } + } + }, + submit: function() { + return $.post(this.props.dataPath, { + email: this.$email.val() + }, (function(_this) { + return function() { + return _this.setState({ + submit: true + }); + }; + })(this)); + }, + componentDidMount: function() { + return this.$email = $('input.email'); + }, + render: function() { + var cont, ref1, submit; + if (this.state.submit === false) { + submit = (ref1 = this.props.submit) != null ? ref1 : "Sign up"; + cont = [ + input({ + key: "field", + className: "email", + placeholder: "your@email.com", + onChange: this.onChange, + value: this.state.email + }), button({ + key: "submit", + className: "submit btn", + onClick: this.onClick + }, submit) + ]; + } else { + cont = [ + div({ + className: "submitted" + }, "Got it. Thanks!") + ]; + } + return p({ + className: "email", + id: "sign-up" + }, cont); + } +}); + + +},{"./Reactify.coffee":16}],9:[function(require,module,exports){ +var a, clas, div, hr, li, query, reactify, recl, ref, ul; + +clas = require('classnames'); + +reactify = require('./Reactify.coffee'); + +query = require('./Async.coffee'); + +recl = React.createClass; + +ref = React.DOM, div = ref.div, a = ref.a, ul = ref.ul, li = ref.li, hr = ref.hr; + +module.exports = query({ + kids: { + body: 'r', + meta: 'j', + path: 't' + } +}, recl({ + displayName: "Kids", + render: function() { + var _k, body, d, elem, k, keyed, keys, kidClas, kidsClas, ref1, ref2, ref3, ref4, sorted, str, v; + sorted = true; + keyed = {}; + ref1 = this.props.kids; + for (k in ref1) { + v = ref1[k]; + if (this.props.sortBy) { + if (this.props.sortBy === 'date') { + if (((ref2 = v.meta) != null ? ref2.date : void 0) == null) { + sorted = false; + continue; + } + d = v.meta.date.slice(1).split("."); + if (d.length < 3) { + sorted = false; + continue; + } + str = d[0] + "-" + d[1] + "-" + d[2]; + if (d.length > 3) { + str += " " + d[3] + ":" + d[4] + ":" + d[5]; + } + _k = Number(new Date(str)); + keyed[_k] = k; + } + } else { + if (((ref3 = v.meta) != null ? ref3.sort : void 0) == null) { + sorted = false; + } + keyed[Number((ref4 = v.meta) != null ? ref4.sort : void 0)] = k; + } + } + if (sorted === false) { + keyed = _.keys(this.props.kids); + } + keys = _.keys(keyed).sort(); + if (this.props.sortBy === 'date') { + keys.reverse(); + } + kidsClas = clas({ + kids: true + }, this.props.className); + kidClas = clas({ + "col-md-4": this.props.grid === 'true' + }); + return div({ + className: kidsClas, + key: "kids" + }, (function() { + var i, len, ref5, results; + results = []; + for (i = 0, len = keys.length; i < len; i++) { + k = keys[i]; + elem = (ref5 = this.props.kids[keyed[k]]) != null ? ref5 : ""; + body = reactify(elem.body, k, { + basePath: elem.path + }); + results.push([ + div({ + key: keyed[k], + id: keyed[k], + className: kidClas + }, body), hr({}) + ]); + } + return results; + }).call(this)); + } +})); + + +},{"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],10:[function(require,module,exports){ +var a, clas, div, h1, li, pre, query, reactify, recl, ref, span, ul, util; + +clas = require('classnames'); + +reactify = require('./Reactify.coffee'); + +query = require('./Async.coffee'); + +util = require('../utils/util.coffee'); + +recl = React.createClass; + +ref = React.DOM, div = ref.div, pre = ref.pre, span = ref.span, a = ref.a, ul = ref.ul, li = ref.li, h1 = ref.h1; + +module.exports = query({ + path: 't', + kids: { + snip: 'r', + head: 'r', + meta: 'j' + } +}, recl({ + displayName: "List", + render: function() { + var k, kids; + k = clas({ + list: true + }, this.props.dataType, { + "default": this.props['data-source'] === 'default' + }, this.props.className); + kids = this.renderList(); + if (!(kids.length === 0 && (this.props.is404 != null))) { + return ul({ + className: k + }, kids); + } + return div({ + className: k + }, h1({ + className: 'red inverse block error' + }, 'Error: Empty path'), div({}, pre({}, this.props.path), span({}, 'is either empty or does not exist.'))); + }, + renderList: function() { + var _date, _k, _keys, author, date, elem, href, i, image, item, k, len, linked, node, parts, path, preview, ref1, ref2, ref3, ref4, ref5, ref6, results, sorted, title, v; + sorted = true; + _keys = []; + ref1 = this.props.kids; + for (k in ref1) { + v = ref1[k]; + if (this.props.sortBy) { + if (this.props.sortBy === 'date') { + if (((ref2 = v.meta) != null ? ref2.date : void 0) == null) { + sorted = false; + } + _k = Number(v.meta.date.slice(1).replace(/\./g, "")); + _keys[_k] = k; + } + } else { + if (((ref3 = v.meta) != null ? ref3.sort : void 0) == null) { + sorted = false; + } + _keys[Number((ref4 = v.meta) != null ? ref4.sort : void 0)] = k; + } + } + if (this.props.sortBy === 'date') { + _keys.reverse(); + } + if (sorted !== true) { + _keys = _.keys(this.props.kids).sort(); + } + if (this.props.dataType === 'post') { + _keys = _keys.reverse(); + } + ref5 = _.values(_keys); + results = []; + for (i = 0, len = ref5.length; i < len; i++) { + item = ref5[i]; + path = this.props.path + "/" + item; + elem = this.props.kids[item]; + if (elem.meta.hide != null) { + continue; + } + href = util.basepath(path); + if (this.props.linkToFragments != null) { + href = "#" + item; + } + if (this.props.childIsFragment != null) { + href = (util.basepath(this.props.path)) + "#" + item; + } + if (elem.meta.link) { + href = elem.meta.link; + } + parts = []; + title = null; + if ((ref6 = elem.meta) != null ? ref6.title : void 0) { + if (this.props.dataType === 'post') { + title = { + gn: 'a', + ga: { + href: href + }, + c: [ + { + gn: 'h1', + ga: { + className: 'title' + }, + c: [elem.meta.title] + } + ] + }; + } else { + title = { + gn: 'h1', + ga: { + className: 'title' + }, + c: [elem.meta.title] + }; + } + } + if (!title && elem.head.c.length > 0) { + title = elem.head; + } + if (!title) { + title = { + gn: 'h1', + ga: { + className: 'title' + }, + c: [item] + }; + } + if (!this.props.titlesOnly) { + _date = elem.meta.date; + if (!_date || _date.length === 0) { + _date = ""; + } + date = { + gn: 'div', + ga: { + className: 'date' + }, + c: [_date] + }; + parts.push(date); + } + parts.push(title); + if (!this.props.titlesOnly) { + if (this.props.dataType === 'post') { + if (elem.meta.image) { + image = { + gn: 'a', + ga: { + href: href + }, + c: [ + { + gn: 'img', + ga: { + src: elem.meta.image + } + } + ] + }; + parts.push(image); + } + } + if (this.props.dataPreview) { + if (!elem.meta.preview) { + parts.push.apply(parts, elem.snip.c.slice(0, 2)); + } else { + if (elem.meta.preview) { + preview = { + gn: 'p', + ga: { + className: 'preview' + }, + c: [elem.meta.preview] + }; + } else { + preview = elem.snip; + } + parts.push(preview); + } + } + if (this.props.dataType === 'post') { + if (elem.meta.author) { + author = { + gn: 'h3', + ga: { + className: 'author' + }, + c: [elem.meta.author] + }; + parts.push(author); + } + linked = true; + } + } + node = reactify({ + gn: 'div', + c: parts + }); + if (linked == null) { + node = a({ + href: href, + className: clas({ + preview: this.props.dataPreview != null + }) + }, node); + } + results.push(li({ + key: item + }, node)); + } + return results; + } +})); + + +},{"../utils/util.coffee":27,"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],11:[function(require,module,exports){ +var div, recl, ref, span; + +recl = React.createClass; + +ref = React.DOM, span = ref.span, div = ref.div; + +module.exports = recl({ + displayName: "Load", + getInitialState: function() { + return { + anim: 0 + }; + }, + componentDidMount: function() { + return this.interval = setInterval(this.setAnim, 100); + }, + componentWillUnmount: function() { + return clearInterval(this.interval); + }, + setAnim: function() { + var anim; + anim = this.state.anim + 1; + if (anim > 3) { + anim = 0; + } + return this.setState({ + anim: anim + }); + }, + render: function() { + return span({ + className: "loading state-" + this.state.anim + }, ''); + } +}); + + +},{}],12:[function(require,module,exports){ +var TreeActions, div, recl; + +recl = React.createClass; + +div = React.DOM.div; + +TreeActions = require('../actions/TreeActions.coffee'); + +module.exports = recl({ + displayName: "Module", + componentDidMount: function() { + return setTimeout((function(_this) { + return function() { + return TreeActions.setNav({ + title: _this.props["nav:title"], + dpad: _this.props["nav:no-dpad"] != null ? false : void 0, + sibs: _this.props["nav:no-sibs"] != null ? false : void 0, + subnav: _this.props["nav:subnav"] + }, 0); + }; + })(this)); + }, + componentWillUnmount: function() { + return TreeActions.clearNav(); + }, + render: function() { + return div({ + className: "module" + }, this.props.children); + } +}); + + +},{"../actions/TreeActions.coffee":1}],13:[function(require,module,exports){ +var BodyComponent, Dpad, Nav, Sibs, TreeActions, TreeStore, a, button, clas, div, li, query, reactify, recl, ref, rend, ul, util; + +clas = require('classnames'); + +BodyComponent = React.createFactory(require('./BodyComponent.coffee')); + +query = require('./Async.coffee'); + +reactify = require('./Reactify.coffee'); + +TreeStore = require('../stores/TreeStore.coffee'); + +TreeActions = require('../actions/TreeActions.coffee'); + +Sibs = React.createFactory(require('./SibsComponent.coffee')); + +Dpad = React.createFactory(require('./DpadComponent.coffee')); + +util = require('../utils/util.coffee'); + +recl = React.createClass; + +rend = ReactDOM.render; + +ref = React.DOM, div = ref.div, a = ref.a, ul = ref.ul, li = ref.li, button = ref.button; + +Nav = React.createFactory(query({ + path: 't', + kids: { + name: 't', + head: 'r', + meta: 'j' + } +}, recl({ + displayName: "Links", + stateFromStore: function() { + return TreeStore.getNav(); + }, + getInitialState: function() { + return this.stateFromStore(); + }, + _onChangeStore: function() { + if (this.isMounted()) { + return this.setState(this.stateFromStore()); + } + }, + componentDidMount: function() { + return TreeStore.addChangeListener(this._onChangeStore); + }, + componentWillUnmount: function() { + return TreeStore.removeChangeListener(this._onChangeStore); + }, + onClick: function() { + return this.toggleFocus(); + }, + onMouseOver: function() { + return this.toggleFocus(true); + }, + onMouseOut: function() { + return this.toggleFocus(false); + }, + onTouchStart: function() { + return this.ts = Number(Date.now()); + }, + onTouchEnd: function() { + var dt; + return dt = this.ts - Number(Date.now()); + }, + _home: function() { + return this.props.goTo(this.props.meta.navhome ? this.props.meta.navhome : "/"); + }, + toggleFocus: function(state) { + return $(ReactDOM.findDOMNode(this)).toggleClass('focus', state); + }, + toggleNav: function() { + return TreeActions.toggleNav(); + }, + closeNav: function() { + return TreeActions.closeNav(); + }, + render: function() { + var attr, dpad, i, iconClass, itemsClass, len, linksClas, navClas, ref1, ref2, ref3, sibs, sub, subprops, title, toggleClas, v; + attr = { + onMouseOver: this.onMouseOver, + onMouseOut: this.onMouseOut, + onClick: this.onClick, + onTouchStart: this.onTouchStart, + onTouchEnd: this.onTouchEnd, + 'data-path': this.props.dataPath + }; + if (_.keys(window).indexOf("ontouchstart") !== -1) { + delete attr.onMouseOver; + delete attr.onMouseOut; + } + linksClas = clas({ + links: true, + subnav: (this.props.meta.navsub != null) + }); + navClas = { + navbar: this.props.meta.navmode === 'navbar', + ctrl: true, + open: this.state.open === true + }; + if (this.props.meta.layout) { + ref1 = this.props.meta.layout.split(","); + for (i = 0, len = ref1.length; i < len; i++) { + v = ref1[i]; + navClas[v.trim()] = true; + } + } + navClas = clas(navClas); + iconClass = clas({ + icon: true, + 'col-md-1': this.props.meta.navmode === 'navbar' + }); + attr = _.extend(attr, { + className: navClas, + key: "nav" + }); + title = this.state.title ? this.state.title : ""; + dpad = this.state.dpad !== false && ((ref2 = this.props.meta) != null ? ref2.navdpad : void 0) !== "false" ? Dpad(this.props, "") : ""; + sibs = this.state.sibs !== false && ((ref3 = this.props.meta) != null ? ref3.navsibs : void 0) !== "false" ? Sibs(_.merge(_.clone(this.props), { + closeNav: this.closeNav + }), "") : ""; + itemsClass = clas({ + items: true, + 'col-md-11': this.props.meta.navmode === 'navbar' + }); + if (this.props.meta.navsub) { + subprops = _.cloneDeep(this.props); + subprops.dataPath = subprops.meta.navsub; + delete subprops.meta.navselect; + subprops.className = 'subnav'; + sub = Sibs(_.merge(subprops, { + toggleNav: this.toggleNav + }), ""); + } + toggleClas = clas({ + 'navbar-toggler': true, + show: this.state.subnav != null + }); + return div(attr, div({ + className: linksClas, + key: "links" + }, div({ + className: iconClass + }, div({ + className: 'home', + onClick: this._home + }, ""), div({ + className: 'app' + }, title), dpad, button({ + className: toggleClas, + type: 'button', + onClick: this.toggleNav + }, "☰")), div({ + className: itemsClass + }, sibs, sub))); + } +}), recl({ + displayName: "Links_loading", + _home: function() { + return this.props.goTo("/"); + }, + render: function() { + return div({ + className: "ctrl", + "data-path": this.props.dataPath, + key: "nav-loading" + }, div({ + className: 'links' + }, div({ + className: 'icon' + }, div({ + className: 'home', + onClick: this._home + }, "")), ul({ + className: "nav" + }, li({ + className: "nav-item selected" + }, a({ + className: "nav-link" + }, this.props.curr))))); + } +}))); + +module.exports = query({ + sein: 't', + path: 't', + name: 't', + meta: 'j' +}, recl({ + displayName: "Nav", + stateFromStore: function() { + return TreeStore.getNav(); + }, + getInitialState: function() { + return _.extend(this.stateFromStore(), { + url: window.location.pathname + }); + }, + _onChangeStore: function() { + if (this.isMounted()) { + return this.setState(this.stateFromStore()); + } + }, + componentWillUnmount: function() { + clearInterval(this.interval); + $('body').off('click', 'a'); + return TreeStore.removeChangeListener(this._onChangeStore); + }, + componentDidUpdate: function() { + this.setTitle(); + return this.checkRedirect(); + }, + componentDidMount: function() { + var _this; + this.setTitle(); + window.onpopstate = this.pullPath; + TreeStore.addChangeListener(this._onChangeStore); + _this = this; + $('body').on('click', 'a', function(e) { + var href, url; + href = $(this).attr('href'); + if (href[0] === "#") { + return true; + } + if (href && !/^https?:\/\//i.test(href)) { + e.preventDefault(); + url = new URL(this.href); + if (urb.util.basepath("", url.pathname) !== urb.util.basepath("", document.location.pathname)) { + document.location = this.href; + return; + } + if (url.pathname.substr(-1) !== "/") { + url.pathname += "/"; + } + return _this.goTo(url.pathname + url.search + url.hash); + } + }); + return this.checkRedirect(); + }, + checkRedirect: function() { + if (this.props.meta.redirect) { + return setTimeout(((function(_this) { + return function() { + return _this.goTo(_this.props.meta.redirect); + }; + })(this)), 0); + } + }, + setTitle: function() { + var path, ref1, title; + title = $('#body h1').first().text() || this.props.name; + if ((ref1 = this.props.meta) != null ? ref1.title : void 0) { + title = this.props.meta.title; + } + path = this.props.path; + if (path === "") { + path = "/"; + } + return document.title = title + " - " + path; + }, + pullPath: function() { + var l, path; + l = document.location; + path = l.pathname + l.search + l.hash; + return this.setPath(path, false); + }, + setPath: function(path, hist) { + var next; + if (hist !== false) { + history.pushState({}, "", path); + } + next = util.fragpath(path.split('#')[0]); + if (next !== this.props.path) { + return TreeActions.setCurr(next); + } + }, + reset: function() { + return $("html,body").animate({ + scrollTop: 0 + }); + }, + goTo: function(path) { + this.reset(); + return this.setPath(path); + }, + render: function() { + var kids, kidsPath, navClas; + if (this.props.meta.anchor === 'none') { + return div({}, ""); + } + navClas = clas({ + container: this.props.meta.container === 'false' + }); + kidsPath = this.props.sein; + if (this.props.meta.navpath) { + kidsPath = this.props.meta.navpath; + } + kids = [ + Nav({ + curr: this.props.name, + dataPath: kidsPath, + meta: this.props.meta, + sein: this.props.sein, + goTo: this.goTo, + key: "nav" + }, "div") + ]; + if (this.state.subnav) { + kids.push(reactify({ + gn: this.state.subnav, + ga: { + open: this.state.open, + toggle: TreeActions.toggleNav + }, + c: [] + }, "subnav")); + } + return div({ + id: 'head', + className: navClas + }, kids); + } +})); + + +},{"../actions/TreeActions.coffee":1,"../stores/TreeStore.coffee":25,"../utils/util.coffee":27,"./Async.coffee":2,"./BodyComponent.coffee":3,"./DpadComponent.coffee":7,"./Reactify.coffee":16,"./SibsComponent.coffee":19,"classnames":28}],14:[function(require,module,exports){ +var a, li, nav, recl, ref, rele, ul; + +recl = React.createClass; + +rele = React.createElement; + +ref = React.DOM, nav = ref.nav, ul = ref.ul, li = ref.li, a = ref.a; + +module.exports = recl({ + render: function() { + if (urb.user !== urb.ship) { + return nav({ + className: "navbar panel" + }, [ + ul({ + className: "nav navbar-nav" + }, [ + li({ + className: 'nav-item pull-right' + }, a({ + href: "/~~" + }, "Log in")) + ]) + ]); + } else { + return nav({ + className: "navbar panel" + }, [ + ul({ + className: "nav navbar-nav" + }, [ + li({ + className: "nav-item" + }, a({ + href: "/~~/talk" + }, "Talk")), li({ + className: "nav-item" + }, a({ + href: "/~~/dojo" + }, "Dojo")), li({ + className: "nav-item" + }, a({ + href: "/~~/static" + }, "Static")), li({ + className: 'nav-item pull-right' + }, a({ + href: "/~/away" + }, "Log out")) + ]) + ]); + } + } +}); + + +},{}],15:[function(require,module,exports){ +var Grid, TreeActions, a, button, code, div, h6, input, load, query, recl, ref1, ref2, rele, span, table, tbody, td, textarea, tr, + slice = [].slice; + +load = require('./LoadComponent.coffee'); + +query = require('./Async.coffee'); + +TreeActions = require('../actions/TreeActions.coffee'); + +recl = React.createClass; + +rele = React.createElement; + +ref1 = React.DOM, div = ref1.div, textarea = ref1.textarea, button = ref1.button, input = ref1.input, a = ref1.a, h6 = ref1.h6, code = ref1.code, span = ref1.span; + +ref2 = React.DOM, table = ref2.table, tbody = ref2.tbody, tr = ref2.tr, td = ref2.td; + +Grid = function() { + var _td, _tr, props, rows; + props = arguments[0], rows = 2 <= arguments.length ? slice.call(arguments, 1) : []; + _td = function(x) { + return div({ + className: "td" + }, x); + }; + _tr = function(x) { + if (x != null) { + return div.apply(null, [{ + className: "tr" + }].concat(slice.call(x.map(_td)))); + } + }; + return div.apply(null, [props].concat(slice.call(rows.map(_tr)))); +}; + +module.exports = query({ + plan: 'j', + beak: 't', + path: 't' +}, recl({ + displayName: "Plan", + getInitialState: function() { + return { + edit: false, + plan: this.props.plan, + focus: null + }; + }, + componentWillReceiveProps: function(props) { + if (_.isEqual(this.props.plan, this.state.plan)) { + return this.setState({ + plan: props.plan + }); + } + }, + refInput: function(ref) { + return (function(_this) { + return function(node) { + _this[ref] = node; + if (ref === _this.state.focus) { + return node != null ? node.focus() : void 0; + } + }; + })(this); + }, + saveInfo: function() { + var plan, ref3; + plan = { + who: this.who.value, + loc: this.loc.value, + acc: (ref3 = this.props.plan) != null ? ref3.acc : void 0 + }; + if (!_.isEqual(plan, this.state.plan)) { + TreeActions.setPlanInfo(plan); + this.setState({ + plan: plan + }); + } + return this.setState({ + edit: false, + focus: null + }); + }, + render: function() { + var acc, beak, editButton, editable, issuedBy, key, loc, path, ref3, ref4, ref5, url, usr, who; + ref3 = this.props, beak = ref3.beak, path = ref3.path; + ref5 = (ref4 = this.state.plan) != null ? ref4 : {}, acc = ref5.acc, loc = ref5.loc, who = ref5.who; + issuedBy = urb.sein !== urb.ship ? "~" + urb.sein : "self"; + if (urb.user !== urb.ship) { + editButton = null; + editable = function(ref, val, placeholder) { + return val != null ? val : placeholder; + }; + } else if (this.state.edit) { + editButton = button({ + className: 'edit', + onClick: (function(_this) { + return function() { + return _this.saveInfo(); + }; + })(this) + }, "Save"); + editable = (function(_this) { + return function(ref, val, placeholder) { + return input({ + placeholder: placeholder, + defaultValue: val, + ref: _this.refInput(ref), + onKeyDown: function(arg) { + var keyCode; + keyCode = arg.keyCode; + if (keyCode === 13) { + return _this.saveInfo(); + } + } + }); + }; + })(this); + } else { + editButton = button({ + className: 'edit', + onClick: (function(_this) { + return function() { + return _this.setState({ + edit: true + }); + }; + })(this) + }, "Edit"); + editable = (function(_this) { + return function(ref, val, placeholder) { + var ref6, ref7; + return span({ + onClick: function() { + return _this.setState({ + edit: true, + focus: ref + }); + } + }, val != null ? val : placeholder, ((ref6 = _this.props.plan) != null ? ref6[ref] : void 0) !== ((ref7 = _this.state.plan) != null ? ref7[ref] : void 0) ? rele(load, {}) : void 0); + }; + })(this); + } + return div({ + className: "plan" + }, div({ + className: "home" + }, ""), div({ + className: "mono" + }, "~" + urb.ship), (who != null) || this.state.edit ? h6({}, editable('who', who, "Sun Tzu")) : void 0, Grid({ + className: "grid" + }, ["Location:", editable('loc', loc, "Unknown")], ["Issued by:", issuedBy], [ + "Immutable link:", a({ + href: beak + "/web" + path + }, beak) + ], !_.isEmpty(acc) ? [ + "Connected to:", div({}, (function() { + var ref6, results; + results = []; + for (key in acc) { + ref6 = acc[key], usr = ref6.usr, url = ref6.url; + results.push(div({ + key: key, + className: 'service' + }, url == null ? key + "/" + usr : a({ + href: url + }, key + "/" + usr))); + } + return results; + })()) + ] : void 0), editButton); + } +})); + + +},{"../actions/TreeActions.coffee":1,"./Async.coffee":2,"./LoadComponent.coffee":11}],16:[function(require,module,exports){ +var TreeStore, Virtual, div, load, reactify, recl, ref, rele, span, walk; + +recl = React.createClass; + +rele = React.createElement; + +ref = React.DOM, div = ref.div, span = ref.span; + +load = React.createFactory(require('./LoadComponent.coffee')); + +TreeStore = require('../stores/TreeStore.coffee'); + +walk = function(root, _nil, _str, _comp) { + var _walk; + _walk = function(elem, key) { + var c, ga, gn, ref1; + switch (false) { + case !(elem == null): + return _nil(); + case typeof elem !== "string": + return _str(elem); + case elem.gn == null: + gn = elem.gn, ga = elem.ga, c = elem.c; + c = (ref1 = c != null ? c.map(_walk) : void 0) != null ? ref1 : []; + return _comp.call(elem, { + gn: gn, + ga: ga, + c: c + }, key); + default: + throw "Bad react-json " + (JSON.stringify(elem)); + } + }; + return _walk(root); +}; + +Virtual = recl({ + displayName: "Virtual", + getInitialState: function() { + return this.stateFromStore(); + }, + stateFromStore: function() { + return { + components: TreeStore.getVirtualComponents() + }; + }, + _onChangeStore: function() { + if (this.isMounted()) { + return this.setState(this.stateFromStore()); + } + }, + componentDidMount: function() { + return TreeStore.addChangeListener(this._onChangeStore); + }, + componentWillUnmount: function() { + return TreeStore.removeChangeListener(this._onChangeStore); + }, + render: function() { + var basePath, components; + components = this.state.components; + basePath = this.props.basePath; + return walk(this.props.manx, function() { + return load({}, ""); + }, function(str) { + return str; + }, function(arg, key) { + var c, e, error, ga, gn, props, ref1; + gn = arg.gn, ga = arg.ga, c = arg.c; + props = { + key: key + }; + if (ga != null ? ga.style : void 0) { + try { + ga.style = eval("(" + ga.style + ")"); + } catch (error) { + e = error; + ga.style = ga.style; + } + } + if (components[gn]) { + props.basePath = basePath; + } + return rele((ref1 = components[gn]) != null ? ref1 : gn, _.extend(props, ga), c.length ? c : void 0); + }); + } +}); + +reactify = function(manx, key, arg) { + var basePath; + basePath = (arg != null ? arg : {}).basePath; + return rele(Virtual, { + manx: manx, + key: key, + basePath: basePath + }); +}; + +module.exports = _.extend(reactify, { + walk: walk, + Virtual: Virtual +}); + + +},{"../stores/TreeStore.coffee":25,"./LoadComponent.coffee":11}],17:[function(require,module,exports){ +var appendNext, recl, rele, waitingScripts; + +recl = React.createClass; + +rele = React.createElement; + +waitingScripts = null; + +appendNext = function() { + if (waitingScripts == null) { + return; + } + if (waitingScripts.length === 0) { + return waitingScripts = null; + } else { + return document.body.appendChild(waitingScripts.shift()); + } +}; + +module.exports = recl({ + displayName: "Script", + componentDidMount: function() { + var s; + s = document.createElement('script'); + _.assign(s, this.props); + urb.waspElem(s); + s.onload = appendNext; + this.js = s; + if (waitingScripts != null) { + return waitingScripts.push(s); + } else { + waitingScripts = [s]; + return appendNext(); + } + }, + componentWillUnmount: function() { + if (this.js.parentNode === document.body) { + return document.body.removeChild(this.js); + } + }, + render: function() { + return rele("script", this.props); + } +}); + + +},{}],18:[function(require,module,exports){ +var a, div, input, query, reactify, recl, ref, + slice = [].slice; + +query = require('./Async.coffee'); + +reactify = require('./Reactify.coffee'); + +recl = React.createClass; + +ref = React.DOM, a = ref.a, div = ref.div, input = ref.input; + +module.exports = query({ + name: 't', + kids: { + sect: 'j' + } +}, recl({ + hash: null, + displayName: "Search", + getInitialState: function() { + return { + search: 'wut' + }; + }, + onKeyUp: function(e) { + return this.setState({ + search: e.target.value + }); + }, + wrap: function(elem, dir, path) { + var c, ga, gn, href, ref1; + if (path.slice(-1) === "/") { + path = path.slice(0, -1); + } + href = this.props.name + "/" + dir + path; + if (elem != null ? (ref1 = elem.ga) != null ? ref1.id : void 0 : void 0) { + gn = elem.gn, ga = elem.ga, c = elem.c; + ga = _.clone(ga); + href += "#" + ga.id; + delete ga.id; + elem = { + gn: gn, + ga: ga, + c: c + }; + } + return { + gn: 'div', + c: [ + { + gn: 'a', + ga: { + href: href + }, + c: [elem] + } + ] + }; + }, + render: function() { + return div({}, input({ + onKeyUp: this.onKeyUp, + ref: 'inp', + defaultValue: 'wut' + }), _(this.props.kids).map((function(_this) { + return function(arg, dir) { + var h, heds, path, results, sect; + sect = arg.sect; + results = []; + for (path in sect) { + heds = sect[path]; + results.push((function() { + var i, len, results1; + results1 = []; + for (i = 0, len = heds.length; i < len; i++) { + h = heds[i]; + results1.push(this.wrap(h, dir, path)); + } + return results1; + }).call(_this)); + } + return results; + }; + })(this)).flatten().flatten().map(this.highlight).filter().take(50).map(reactify).value()); + }, + highlight: function(e) { + var got, res; + if (!this.state.search) { + return e; + } + got = false; + res = reactify.walk(e, function() { + return null; + }, (function(_this) { + return function(s) { + var lit, m; + m = s.split(_this.state.search); + if (m[1] == null) { + return [s]; + } + lit = { + gn: 'span', + c: [_this.state.search], + ga: { + style: { + background: '#ff6' + } + } + }; + got = true; + return [m[0]].concat(slice.call(_.flatten((function() { + var i, len, ref1, results; + ref1 = m.slice(1); + results = []; + for (i = 0, len = ref1.length; i < len; i++) { + s = ref1[i]; + results.push([lit, s]); + } + return results; + })()))); + }; + })(this), function(arg) { + var c, ga, gn; + gn = arg.gn, ga = arg.ga, c = arg.c; + return { + gn: gn, + ga: ga, + c: _.flatten(c) + }; + }); + if (got) { + return res; + } + } +})); + + +},{"./Async.coffee":2,"./Reactify.coffee":16}],19:[function(require,module,exports){ +var a, clas, li, query, reactify, recl, ref, ul, util; + +util = require('../utils/util.coffee'); + +clas = require('classnames'); + +reactify = require('./Reactify.coffee'); + +query = require('./Async.coffee'); + +recl = React.createClass; + +ref = React.DOM, ul = ref.ul, li = ref.li, a = ref.a; + +module.exports = query({ + path: 't', + kids: { + head: 'r', + meta: 'j' + } +}, recl({ + displayName: "Siblings", + toText: function(elem) { + return reactify.walk(elem, function() { + return ''; + }, function(s) { + return s; + }, function(arg) { + var c; + c = arg.c; + return (c != null ? c : []).join(''); + }); + }, + render: function() { + var keys, navClas; + keys = util.getKeys(this.props.kids); + navClas = { + nav: true, + 'col-md-12': this.props.meta.navmode === 'navbar' + }; + if (this.props.className) { + navClas[this.props.className] = true; + } + navClas = clas(navClas); + return ul({ + className: navClas + }, keys.map((function(_this) { + return function(key) { + var className, data, head, href, selected; + selected = key === _this.props.curr; + if (_this.props.meta.navselect) { + selected = key === _this.props.meta.navselect; + } + href = util.basepath(_this.props.path + "/" + key); + data = _this.props.kids[key]; + if (data.meta) { + head = data.meta.title; + } + if (head == null) { + head = _this.toText(data.head); + } + head || (head = key); + className = clas({ + "nav-item": true, + selected: selected + }); + if (data.meta.sibsclass) { + className += " " + clas(data.meta.sibsclass.split(",")); + } + return li({ + className: className, + key: key + }, a({ + className: "nav-link", + href: href, + onClick: _this.props.closeNav + }, head)); + }; + })(this))); + } +})); + + +},{"../utils/util.coffee":27,"./Async.coffee":2,"./Reactify.coffee":16,"classnames":28}],20:[function(require,module,exports){ +var div, query, reactify, recl, + slice = [].slice; + +query = require('./Async.coffee'); + +reactify = require('./Reactify.coffee'); + +recl = React.createClass; + +div = React.DOM.div; + +module.exports = query({ + body: 'r' +}, recl({ + hash: null, + displayName: "TableOfContents", + _click: function(id) { + return function() { + if (id) { + return document.location.hash = id; + } + }; + }, + componentDidMount: function() { + this.int = setInterval(this.checkHash, 100); + this.st = $(window).scrollTop(); + return this.$headers = $('#toc').children('h1,h2,h3,h4').filter('[id]'); + }, + checkScroll: function() { + var $h, hash, hst, i, len, ref, results, st, v; + st = $(window).scrollTop(); + if (Math.abs(this.st - st) > 10) { + hash = null; + this.st = st; + ref = this.$headers; + results = []; + for (i = 0, len = ref.length; i < len; i++) { + v = ref[i]; + if (v.tagName === void 0) { + continue; + } + $h = $(v); + hst = $h.offset().top - $h.outerHeight(true) + 10; + if (hst < st) { + hash = $h.attr('id'); + } + if (hst > st && hash !== this.hash && hash !== null) { + this.hash = "#" + hash; + document.location.hash = hash; + break; + } else { + results.push(void 0); + } + } + return results; + } + }, + checkHash: function() { + var $h, hash, i, len, offset, ref, ref1, results, v; + if (((ref = document.location.hash) != null ? ref.length : void 0) > 0 && document.location.hash !== this.hash) { + hash = document.location.hash.slice(1); + ref1 = this.$headers; + results = []; + for (i = 0, len = ref1.length; i < len; i++) { + v = ref1[i]; + $h = $(v); + if (hash === $h.attr('id')) { + this.hash = document.location.hash; + offset = $h.offset().top - $h.outerHeight(true); + setTimeout(function() { + return $(window).scrollTop(offset, 10); + }); + break; + } else { + results.push(void 0); + } + } + return results; + } + }, + componentWillUnmount: function() { + return clearInterval(this.int); + }, + collectHeader: function(arg) { + var c, comp, ga, gn; + gn = arg.gn, ga = arg.ga, c = arg.c; + if (this.props.match) { + comp = gn === this.props.match; + } else { + comp = gn && gn[0] === 'h' && parseInt(gn[1]) !== NaN; + } + if (comp) { + ga = _.clone(ga); + ga.onClick = this._click(ga.id); + delete ga.id; + return { + gn: gn, + ga: ga, + c: c + }; + } + }, + parseHeaders: function() { + var contents, i, len, ref, ref1, v; + if (this.props.body.c) { + ref = this.props.body.c; + for (i = 0, len = ref.length; i < len; i++) { + v = ref[i]; + if (v.gn === 'div' && ((ref1 = v.ga) != null ? ref1.id : void 0) === "toc") { + contents = [{ + gn: "h1", + ga: { + className: "t" + }, + c: ["Table of contents"] + }].concat(slice.call(_.filter(v.c.map(this.collectHeader)))); + if (this.props.noHeader) { + contents.shift(); + } + return { + gn: "div", + ga: { + className: "toc" + }, + c: contents + }; + } + } + } + }, + render: function() { + return reactify(this.parseHeaders()); + } +})); + + +},{"./Async.coffee":2,"./Reactify.coffee":16}],21:[function(require,module,exports){ +var body, clas, div, head, query, recf, recl; + +query = require('./Async.coffee'); + +clas = require('classnames'); + +recf = React.createFactory; + +recl = React.createClass; + +head = recf(require('./NavComponent.coffee')); + +body = recf(require('./BodyComponent.coffee')); + +div = React.DOM.div; + +module.exports = query({ + body: 'r', + name: 't', + path: 't', + meta: 'j', + sein: 't' +}, recl({ + displayName: "Tree", + render: function() { + var treeClas; + treeClas = clas({ + container: this.props.meta.container !== 'false' + }); + return div({ + className: treeClas + }, [ + head({ + key: 'head-container' + }, ""), body({ + key: 'body-container' + }, "") + ]); + } +})); + + +},{"./Async.coffee":2,"./BodyComponent.coffee":3,"./NavComponent.coffee":13,"classnames":28}],22:[function(require,module,exports){ +module.exports = _.extend(new Flux.Dispatcher(), { + handleServerAction: function(action) { + return this.dispatch({ + source: 'server', + action: action + }); + }, + handleViewAction: function(action) { + return this.dispatch({ + source: 'view', + action: action + }); + } +}); + + +},{}],23:[function(require,module,exports){ +var rend; + +rend = ReactDOM.render; + +$(function() { + var frag, main, util; + util = require('./utils/util.coffee'); + require('./utils/scroll.coffee'); + if (document.location.pathname.substr(-1) !== "/") { + history.replaceState({}, "", document.location.pathname + "/" + document.location.search + document.location.hash); + } + window.tree.actions = require('./actions/TreeActions.coffee'); + window.tree.actions.addVirtual(require('./components/Components.coffee')); + frag = util.fragpath(window.location.pathname.replace(/\.[^\/]*$/, '')); + window.tree.actions.setCurr(frag); + window.tree.actions.loadPath(frag, window.tree.data); + if (window.tree.sein != null) { + window.tree.actions.loadSein(frag, window.tree.sein); + } + window.urb.ondataupdate = function(dep) { + var dat; + for (dat in window.urb.datadeps) { + window.urb.dewasp(dat); + } + return window.tree.actions.clearData(); + }; + main = React.createFactory(require('./components/TreeComponent.coffee')); + return rend(main({}, ""), document.getElementById('tree')); +}); + + +},{"./actions/TreeActions.coffee":1,"./components/Components.coffee":6,"./components/TreeComponent.coffee":21,"./utils/scroll.coffee":26,"./utils/util.coffee":27}],24:[function(require,module,exports){ +var dedup, pending, util, waspWait; + +util = require('../utils/util.coffee'); + +dedup = {}; + +pending = {}; + +waspWait = []; + +module.exports = { + refresh: function() { + return dedup = {}; + }, + get: function(path, query, cb) { + var url; + if (query == null) { + query = "no-query"; + } + url = (util.basepath(path)) + ".tree-json?q=" + (this.encode(query)); + if (dedup[url]) { + return; + } + dedup[url] = true; + pending[url] = true; + return $.get(url, {}, function(data, status, xhr) { + var dep; + delete pending[url]; + dep = urb.getXHRWasp(xhr); + urb.sources[dep] = url; + waspWait.push(dep); + if (_.isEmpty(pending)) { + waspWait.map(urb.waspData); + waspWait = []; + } + if (cb) { + return cb(null, data); + } + }); + }, + put: function(data, mark, appl) { + if (appl == null) { + appl = /[a-z]*/.exec(mark)[0]; + } + return urb.send(data, { + mark: mark, + appl: appl + }); + }, + encode: function(obj) { + var _encode, delim; + delim = function(n) { + return Array(n + 1).join('_') || '.'; + }; + _encode = function(obj) { + var _dep, dep, k, res, sub, v; + if (typeof obj !== 'object') { + return [0, obj]; + } + dep = 0; + sub = (function() { + var ref, results; + results = []; + for (k in obj) { + v = obj[k]; + ref = _encode(v), _dep = ref[0], res = ref[1]; + if (_dep > dep) { + dep = _dep; + } + if (res != null) { + results.push(k + (delim(_dep)) + res); + } else { + results.push(void 0); + } + } + return results; + })(); + dep++; + return [dep, sub.join(delim(dep))]; + }; + return (_encode(obj))[1]; + } +}; + + +},{"../utils/util.coffee":27}],25:[function(require,module,exports){ +var EventEmitter, MessageDispatcher, QUERIES, TreeStore, _curr, _data, _nav, _tree, _virt, clog; + +EventEmitter = require('events').EventEmitter.EventEmitter; + +MessageDispatcher = require('../dispatcher/Dispatcher.coffee'); + +clog = console.log.bind(console); + +_virt = {}; + +_tree = {}; + +_data = {}; + +_curr = ""; + +_nav = {}; + +QUERIES = { + body: 'r', + head: 'r', + snip: 'r', + sect: 'j', + meta: 'j', + comt: 'j', + plan: 'j', + beak: 't' +}; + +TreeStore = _.extend((new EventEmitter).setMaxListeners(50), { + addChangeListener: function(cb) { + return this.on('change', cb); + }, + removeChangeListener: function(cb) { + return this.removeListener("change", cb); + }, + emitChange: function() { + return this.emit('change'); + }, + pathToArr: function(_path) { + return _path.split("/"); + }, + fulfill: function(path, query) { + if (path === "/") { + path = ""; + } + return this.fulfillAt(this.getTree(path.split('/')), path, query); + }, + fulfillAt: function(tree, path, query) { + var data, have, k, sub, t; + data = this.fulfillLocal(path, query); + have = _data[path]; + if (have != null) { + for (k in query) { + t = query[k]; + if (!QUERIES[k]) { + continue; + } + if (t !== QUERIES[k]) { + throw TypeError("Wrong query type: " + k + ", '" + t + "'"); + } + data[k] = have[k]; + } + } + if (query.kids) { + if ((have != null ? have.kids : void 0) === false) { + data.kids = {}; + } else { + for (k in tree) { + sub = tree[k]; + if (data.kids == null) { + data.kids = {}; + } + data.kids[k] = this.fulfillAt(sub, path + "/" + k, query.kids); + } + } + } + if (!_.isEmpty(data)) { + return data; + } + }, + fulfillLocal: function(path, query) { + var data; + data = {}; + if (query.path) { + data.path = path; + } + if (query.name) { + data.name = path.split("/").pop(); + } + if (query.sein) { + data.sein = this.getPare(path); + } + if (query.next) { + data.next = this.getNext(path); + } + if (query.prev) { + data.prev = this.getPrev(path); + } + return data; + }, + setCurr: function(arg) { + var path; + path = arg.path; + return _curr = path; + }, + getCurr: function() { + return _curr; + }, + addVirtual: function(arg) { + var components; + components = arg.components; + return _.extend(_virt, components); + }, + getVirtualComponents: function() { + return _virt; + }, + clearData: function() { + _data = {}; + return _tree = {}; + }, + loadSein: function(arg) { + var data, path, sein; + path = arg.path, data = arg.data; + sein = this.getPare(path); + if (sein != null) { + return this.loadPath({ + path: sein, + data: data + }); + } + }, + loadPath: function(arg) { + var data, path; + path = arg.path, data = arg.data; + return this.loadValues(this.getTree(path.split('/'), true), path, data); + }, + loadValues: function(tree, path, data) { + var _path, k, old, ref, ref1, v; + old = (ref = _data[path]) != null ? ref : {}; + for (k in data) { + if (QUERIES[k]) { + old[k] = data[k]; + } + } + ref1 = data.kids; + for (k in ref1) { + v = ref1[k]; + if (tree[k] == null) { + tree[k] = {}; + } + _path = path; + if (_path === "/") { + _path = ""; + } + this.loadValues(tree[k], _path + "/" + k, v); + } + if (data.kids && _.isEmpty(data.kids)) { + old.kids = false; + } + return _data[path] = old; + }, + getSiblings: function(path) { + var curr; + if (path == null) { + path = _curr; + } + curr = path.split("/"); + curr.pop(); + if (curr.length !== 0) { + return this.getTree(curr); + } else { + return {}; + } + }, + getTree: function(_path, make) { + var i, len, sub, tree; + if (make == null) { + make = false; + } + tree = _tree; + for (i = 0, len = _path.length; i < len; i++) { + sub = _path[i]; + if (!sub) { + continue; + } + if (tree[sub] == null) { + if (!make) { + return null; + } + tree[sub] = {}; + } + tree = tree[sub]; + } + return tree; + }, + getPrev: function(path) { + var ind, key, par, sibs, win; + if (path == null) { + path = _curr; + } + sibs = _.keys(this.getSiblings(path)).sort(); + if (sibs.length < 2) { + return null; + } else { + par = path.split("/"); + key = par.pop(); + ind = sibs.indexOf(key); + win = ind - 1 >= 0 ? sibs[ind - 1] : sibs[sibs.length - 1]; + par.push(win); + return par.join("/"); + } + }, + getNext: function(path) { + var ind, key, par, sibs, win; + if (path == null) { + path = _curr; + } + sibs = _.keys(this.getSiblings(path)).sort(); + if (sibs.length < 2) { + return null; + } else { + par = path.split("/"); + key = par.pop(); + ind = sibs.indexOf(key); + win = ind + 1 < sibs.length ? sibs[ind + 1] : sibs[0]; + par.push(win); + return par.join("/"); + } + }, + getPare: function(path) { + var _path; + if (path == null) { + path = _curr; + } + _path = this.pathToArr(path); + if (_path.length > 1) { + _path.pop(); + _path = _path.join("/"); + if (_path === "") { + _path = "/"; + } + return _path; + } else { + return null; + } + }, + setNav: function(arg) { + var dpad, nav, sibs, subnav, title; + title = arg.title, dpad = arg.dpad, sibs = arg.sibs, subnav = arg.subnav; + nav = { + title: title, + dpad: dpad, + sibs: sibs, + subnav: subnav, + open: (_nav.open ? _nav.open : false) + }; + return _nav = nav; + }, + getNav: function() { + return _nav; + }, + toggleNav: function() { + return _nav.open = !_nav.open; + }, + closeNav: function() { + return _nav.open = false; + }, + clearNav: function() { + return _nav = { + title: null, + dpad: null, + sibs: null, + subnav: null, + open: false + }; + } +}); + +TreeStore.dispatchToken = MessageDispatcher.register(function(p) { + var a; + a = p.action; + if (TreeStore[a.type]) { + TreeStore[a.type](a); + return TreeStore.emitChange(); + } +}); + +module.exports = TreeStore; + + +},{"../dispatcher/Dispatcher.coffee":22,"events":29}],26:[function(require,module,exports){ +var scroll; + +scroll = { + w: null, + $d: null, + $n: null, + nh: null, + cs: null, + ls: null, + track: function() { + this.w = $(window).width(); + this.$n = $('#head'); + this.$d = $('#head .ctrl'); + return this.nh = $('#head .ctrl').outerHeight(true); + }, + clearNav: function() { + return this.$n.removeClass('m-up m-down m-fixed'); + }, + resize: function() { + if (this.w > 1170) { + return this.clearNav(); + } + }, + scroll: function() { + var ct, dy, top; + this.cs = $(window).scrollTop(); + if (this.w > 767) { + this.clearNav(); + } + if (this.w < 767) { + dy = this.ls - this.cs; + this.$d.removeClass('focus'); + if (this.cs <= 0) { + this.$n.removeClass('m-up'); + this.$n.addClass('m-down m-fixed'); + return; + } + if (dy > 0) { + if (!this.$n.hasClass('m-down')) { + this.$n.removeClass('m-up').addClass('m-down'); + ct = this.$n.offset().top; + top = this.cs - this.nh; + if (this.cs > ct && this.cs < ct + this.nh) { + top = ct; + } + this.$n.offset({ + top: top + }); + } + if (this.$n.hasClass('m-down') && !this.$n.hasClass('m-fixed') && this.$n.offset().top >= this.cs) { + this.$n.addClass('m-fixed'); + this.$n.attr({ + style: '' + }); + } + } + if (dy < 0) { + if (!this.$n.hasClass('m-up')) { + this.$n.removeClass('m-down m-fixed').addClass('m-up'); + this.$d.removeClass('open'); + $('.menu.open').removeClass('open'); + top = this.cs < 0 ? 0 : this.cs; + ct = this.$n.offset().top; + if (top > ct && top < ct + this.nh) { + top = ct; + } + this.$n.offset({ + top: top + }); + } + if (this.$n.hasClass('m-up') && this.$d.hasClass('open')) { + if (this.cs > this.$n.offset().top + this.$n.height()) { + this.$d.removeClass('open'); + } + } + } + } + return this.ls = this.cs; + }, + init: function() { + setInterval(this.track.bind(this), 200); + this.ls = $(window).scrollTop(); + this.cs = $(window).scrollTop(); + $(window).on('resize', this.resize.bind(this)); + return $(window).on('scroll', this.scroll.bind(this)); + } +}; + +scroll.init(); + +module.exports = scroll; + + +},{}],27:[function(require,module,exports){ +var _basepath; + +_basepath = window.urb.util.basepath("/"); + +_basepath += (window.location.pathname.replace(window.tree._basepath, "")).split("/")[0]; + +module.exports = { + basepath: function(path) { + var _path, prefix; + prefix = _basepath; + if (prefix === "/") { + prefix = ""; + } + if (path[0] !== "/") { + path = "/" + path; + } + _path = prefix + path; + if (_path.slice(-1) === "/" && _path.length > 1) { + _path = _path.slice(0, -1); + } + return _path; + }, + fragpath: function(path) { + return path.replace(/\/$/, '').replace(_basepath, ""); + }, + getKeys: function(kids) { + var k, keys, ref, ref1, ref2, sorted, v; + sorted = true; + keys = []; + for (k in kids) { + v = kids[k]; + if ((ref = v.meta) != null ? ref.hide : void 0) { + continue; + } + if (((ref1 = v.meta) != null ? ref1.sort : void 0) == null) { + sorted = false; + } + keys[Number((ref2 = v.meta) != null ? ref2.sort : void 0)] = k; + } + if (sorted !== true) { + return keys = _.keys(kids).sort(); + } else { + return keys = _.values(keys); + } + } +}; + + +},{}],28:[function(require,module,exports){ +/*! + Copyright (c) 2016 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ +/* global define */ + +(function () { + 'use strict'; + + var hasOwn = {}.hasOwnProperty; + + function classNames () { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg)) { + classes.push(classNames.apply(null, arg)); + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if (typeof module !== 'undefined' && module.exports) { + module.exports = classNames; + } else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) { + // register as 'classnames', consistent with npm package name + define('classnames', [], function () { + return classNames; + }); + } else { + window.classNames = classNames; + } +}()); + +},{}],29:[function(require,module,exports){ +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +function EventEmitter() { + this._events = this._events || {}; + this._maxListeners = this._maxListeners || undefined; +} +module.exports = EventEmitter; + +// Backwards-compat with node 0.10.x +EventEmitter.EventEmitter = EventEmitter; + +EventEmitter.prototype._events = undefined; +EventEmitter.prototype._maxListeners = undefined; + +// By default EventEmitters will print a warning if more than 10 listeners are +// added to it. This is a useful default which helps finding memory leaks. +EventEmitter.defaultMaxListeners = 10; + +// Obviously not all Emitters should be limited to 10. This function allows +// that to be increased. Set to zero for unlimited. +EventEmitter.prototype.setMaxListeners = function(n) { + if (!isNumber(n) || n < 0 || isNaN(n)) + throw TypeError('n must be a positive number'); + this._maxListeners = n; + return this; +}; + +EventEmitter.prototype.emit = function(type) { + var er, handler, len, args, i, listeners; + + if (!this._events) + this._events = {}; + + // If there is no 'error' event listener then throw. + if (type === 'error') { + if (!this._events.error || + (isObject(this._events.error) && !this._events.error.length)) { + er = arguments[1]; + if (er instanceof Error) { + throw er; // Unhandled 'error' event + } + throw TypeError('Uncaught, unspecified "error" event.'); + } + } + + handler = this._events[type]; + + if (isUndefined(handler)) + return false; + + if (isFunction(handler)) { + switch (arguments.length) { + // fast cases + case 1: + handler.call(this); + break; + case 2: + handler.call(this, arguments[1]); + break; + case 3: + handler.call(this, arguments[1], arguments[2]); + break; + // slower + default: + args = Array.prototype.slice.call(arguments, 1); + handler.apply(this, args); + } + } else if (isObject(handler)) { + args = Array.prototype.slice.call(arguments, 1); + listeners = handler.slice(); + len = listeners.length; + for (i = 0; i < len; i++) + listeners[i].apply(this, args); + } + + return true; +}; + +EventEmitter.prototype.addListener = function(type, listener) { + var m; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events) + this._events = {}; + + // To avoid recursion in the case that type === "newListener"! Before + // adding it to the listeners, first emit "newListener". + if (this._events.newListener) + this.emit('newListener', type, + isFunction(listener.listener) ? + listener.listener : listener); + + if (!this._events[type]) + // Optimize the case of one listener. Don't need the extra array object. + this._events[type] = listener; + else if (isObject(this._events[type])) + // If we've already got an array, just append. + this._events[type].push(listener); + else + // Adding the second element, need to change to array. + this._events[type] = [this._events[type], listener]; + + // Check for listener leak + if (isObject(this._events[type]) && !this._events[type].warned) { + if (!isUndefined(this._maxListeners)) { + m = this._maxListeners; + } else { + m = EventEmitter.defaultMaxListeners; + } + + if (m && m > 0 && this._events[type].length > m) { + this._events[type].warned = true; + console.error('(node) warning: possible EventEmitter memory ' + + 'leak detected. %d listeners added. ' + + 'Use emitter.setMaxListeners() to increase limit.', + this._events[type].length); + if (typeof console.trace === 'function') { + // not supported in IE 10 + console.trace(); + } + } + } + + return this; +}; + +EventEmitter.prototype.on = EventEmitter.prototype.addListener; + +EventEmitter.prototype.once = function(type, listener) { + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + var fired = false; + + function g() { + this.removeListener(type, g); + + if (!fired) { + fired = true; + listener.apply(this, arguments); + } + } + + g.listener = listener; + this.on(type, g); + + return this; +}; + +// emits a 'removeListener' event iff the listener was removed +EventEmitter.prototype.removeListener = function(type, listener) { + var list, position, length, i; + + if (!isFunction(listener)) + throw TypeError('listener must be a function'); + + if (!this._events || !this._events[type]) + return this; + + list = this._events[type]; + length = list.length; + position = -1; + + if (list === listener || + (isFunction(list.listener) && list.listener === listener)) { + delete this._events[type]; + if (this._events.removeListener) + this.emit('removeListener', type, listener); + + } else if (isObject(list)) { + for (i = length; i-- > 0;) { + if (list[i] === listener || + (list[i].listener && list[i].listener === listener)) { + position = i; + break; + } + } + + if (position < 0) + return this; + + if (list.length === 1) { + list.length = 0; + delete this._events[type]; + } else { + list.splice(position, 1); + } + + if (this._events.removeListener) + this.emit('removeListener', type, listener); + } + + return this; +}; + +EventEmitter.prototype.removeAllListeners = function(type) { + var key, listeners; + + if (!this._events) + return this; + + // not listening for removeListener, no need to emit + if (!this._events.removeListener) { + if (arguments.length === 0) + this._events = {}; + else if (this._events[type]) + delete this._events[type]; + return this; + } + + // emit removeListener for all listeners on all events + if (arguments.length === 0) { + for (key in this._events) { + if (key === 'removeListener') continue; + this.removeAllListeners(key); + } + this.removeAllListeners('removeListener'); + this._events = {}; + return this; + } + + listeners = this._events[type]; + + if (isFunction(listeners)) { + this.removeListener(type, listeners); + } else if (listeners) { + // LIFO order + while (listeners.length) + this.removeListener(type, listeners[listeners.length - 1]); + } + delete this._events[type]; + + return this; +}; + +EventEmitter.prototype.listeners = function(type) { + var ret; + if (!this._events || !this._events[type]) + ret = []; + else if (isFunction(this._events[type])) + ret = [this._events[type]]; + else + ret = this._events[type].slice(); + return ret; +}; + +EventEmitter.prototype.listenerCount = function(type) { + if (this._events) { + var evlistener = this._events[type]; + + if (isFunction(evlistener)) + return 1; + else if (evlistener) + return evlistener.length; + } + return 0; +}; + +EventEmitter.listenerCount = function(emitter, type) { + return emitter.listenerCount(type); +}; + +function isFunction(arg) { + return typeof arg === 'function'; +} + +function isNumber(arg) { + return typeof arg === 'number'; +} + +function isObject(arg) { + return typeof arg === 'object' && arg !== null; +} + +function isUndefined(arg) { + return arg === void 0; +} + +},{}]},{},[23]); +window.urb = window.urb || {} +window.urb.appl = window.urb.appl || null + +window.urb.req = function(method,url,params,json,cb) { + var xhr = new XMLHttpRequest() + method = method.toUpperCase() + if(method == "PUT" || method == "DELETE") + xhr.open("POST", url+"?"+method) + else xhr.open(method, url) + + if(json) + xhr.setRequestHeader("content-type", "text/json") + + if(!window.urb.oryx) throw "No CSRF token" // XX fetch auth.json + _data = {oryx: window.urb.oryx} + if(params.xyro) { _data.xyro = params.xyro; } + if(params.ship) { _data.ship = params.ship; } + if(params.path) { _data.path = params.path; } + if(params.appl) { _data.appl = params.appl; } + if(params.mark) { _data.mark = params.mark; } + if(params.wire) { _data.wire = params.wire; } + if(cb) { + xhr.onload = function() { + var err,res + try { + err = null + res = { + status:this.status, + data: JSON.parse(this.responseText) + } + if(res.data.reload) + res.reload = res.data.reload + } catch(e) { + // if(urb.wall !== false) document.write(this.responseText) // XX + err = { + message:"Failed to parse JSON", + raw:this.responseText + } + res = null + } + finally { + cb(err,res) + } + } + xhr.onerror = function() { + cb({ + status:this.status, + data:this.responseText + }) + } + } + xhr.send(JSON.stringify(_data)) +} + +// window.urb.getJSON = function(url,cb){ window.urb.reqJSON("GET",url, null, cb)} +// window.urb.reqJSON = function(method, url, data, cb){ +// var xhr = new XMLHttpRequest() +// xhr.open(method, url) +// xhr.onload = function(){ +// urb.fetchTag.call(xhr) +// if(cb) cb(JSON.parse(xhr.responseText)) +// } +// xhr.send(data === null ? null : JSON.stringify(data)) +// } + +window.urb.reqq = [] +window.urb.qreq = function(method,url,params,json,cb) { + walk = function() { + qobj = {} + qobj.oargs = window.urb.reqq[0] + qobj.nargs = [].slice.call(qobj.oargs,0,4) + qobj.nargs.push(function(){ + if(this.oargs[4]) + this.oargs[4].apply(window.urb,arguments) + window.urb.reqq.shift() + if(window.urb.reqq.length > 0) + walk() + }.bind(qobj)) + window.urb.req.apply(this,qobj.nargs) + } + l = window.urb.reqq.length + window.urb.reqq.push(arguments); + if(l == 0) { walk() } +} + +window.urb.send = function(data,params,cb) { // or send(data, cb) + if(!params || typeof params === "function") + {cb = params; params = {}} + + var url, $send + $send = this.send + + params.data = data + params.ship = params.ship || this.ship + params.appl = params.appl || this.appl + params.mark = params.mark || $send.mark + // params.seqn = params.seqn || $send.seqn + params.wire = params.wire || "/" + params.xyro = (typeof(params.data) === 'undefined') ? null : params.data + + + if(!params.mark) throw new Error("You must specify a mark for urb.send.") + if(!params.appl) throw new Error("You must specify an appl for urb.send.") + + url = ["to",params.appl,params.mark] + url = "/~/"+url.join("/") + + // $send.seqn++ + + this.qreq('post',url,params,true,function(err,data) { + /* if(err) { $send.seqn--; } + else */ if(data && data.data.fail && urb.wall !== false && params.wall !== false) { + document.location = "#ERROR" + document.write("
"+JSON.stringify(params.xyro)+"\n"
+                            +data.data.mess+"
") // XX + } + if(cb) { cb.apply(this,arguments); } + }) +} +// window.urb.send.seqn = 0 +window.urb.send.mark = "json" + + +window.urb.gsig = function(params) { + var path = params.path + if(!path) path = "" + if(path[0] !== "/") path = "/"+path + return "~"+params.ship+"/"+ + params.appl+ + path.replace(/[^\x00-\x7F]/g, "") +} + +window.urb.puls = false +window.urb.cabs = {} +window.urb.poll = function(params) { + if(!params) throw new Error("You must supply params to urb.poll.") + + var url, $this + + seqn = this.poll.seqn + if(params.seqn) seqn = params.seqn() + + url = "/~/of/"+this.ixor+"?poll="+seqn + + this.puls = true + + $this = this + this.req("get",url,params,true,function(err,res) { + $this.poll.dely = params.dely || $this.poll.dely + if(res){ + if(res.data.beat) + return $this.poll(params) + switch(res.data.type){ + case "news": + return document.location.reload() // XX check autoreload + case "rush": + case "mean": + var err2 = err + if(res.data.type == "mean") + err2 = res.data.data + var fn = $this.gsig(res.data.from) + if($this.cabs[fn]) + $this.cabs[fn].call(this,err2, + {status: res.status, data: res.data.data.json}) // XX non-json + break; + case "quit": + // XX necessary behaviour? + break; + default: + throw new Error("Lost event %"+res.data.type) + } + if(params.incs) + params.incs() + else + $this.poll.seqn++ + $this.poll.dely = 250 + return $this.poll(params) + } + + else if(err){ + setTimeout(function() { + $this.poll(params) + }, $this.poll.dely) + $this.poll.dely += Math.ceil($this.poll.dely*.2) + } + else throw "Neither error nor result on poll" + }) +} +window.urb.poll.seqn = 1 +window.urb.poll.dely = 250 + +window.urb.bind = function(path, params, cb, nicecb){ // or bind(path, cb) + if(!params || typeof params === "function") + {cb = params; params = {}} + + params.path = path + if(params.path[0] !== "/") params.path = "/"+params.path + params.ship = params.ship || this.ship + params.appl = params.appl || this.appl + params.mark = params.mark || this.bind.mark + params.wire = params.wire || params.path + + if(typeof path != "string") + throw new Error("You must specify a string path for urb.bind.") + if(!params.appl) throw new Error("You must specify an appl for urb.bind.") + if(!cb) throw new Error("You must supply a callback to urb.bind.") + + var method, perm, url, $this + + if(params.mark !== "json") + throw new Error("Non-json subscriptions unimplemented.") // XX + url = "/~/is/"+this.gsig(params)+"."+params.mark + + params.path = params.wire + this.cabs[this.gsig(params)] = cb + + $this = this + this.qreq("put",url,params,true,function(err,res) { + if(nicecb) { nicecb.apply(this,[err,{status: res.status, data: res.data}])} + // XX give raw data + // + if(!err && !$this.puls) $this.poll(params) + }) +} +urb.bind.mark = "json" + +window.urb.drop = function(path, params, cb){ // or drop(path,cb) + if(typeof params === "function") + {cb = params; params = {}} + + params.path = path + if(params.path[0] !== "/") params.path = "/"+params.path + params.ship = params.ship || this.ship + params.appl = params.appl || this.appl + params.wire = params.wire || params.path + + if(typeof path != "string") + throw new Error("You must specify a string path for urb.drop.") + if(!params.appl) throw new Error("You must specify an appl for urb.drop.") + + url = "/~/is/"+this.gsig(params)+".json" + method = "delete" + this.req("delete",url,params,true,function(err,res) { + if(cb) cb(err,res) + }) +} + +window.urb.subscribe = function(params,cb) { // legacy interface + if(!params) throw new Error("You must supply params to urb.subscribe") + return window.urb.bind(params.path, params, cb, cb) +} + +window.urb.unsubscribe = function(params,cb) { // legacy intreface + if(!params) throw new Error("You must supply params to urb.unsubscribe.") + return window.urb.drop(params.path, params, cb) +} + +window.urb.util = { + isURL: function(s) { + r = new RegExp('^(?!mailto:)(?:(?:http|https|ftp)://)(?:\\S+(?::\\S*)?@)?(?:(?:(?:[1-9]\\d?|1\\d\\d|2[01]\\d|22[0-3])(?:\\.(?:1?\\d{1,2}|2[0-4]\\d|25[0-5])){2}(?:\\.(?:[0-9]\\d?|1\\d\\d|2[0-4]\\d|25[0-4]))|(?:(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)(?:\\.(?:[a-z\\u00a1-\\uffff0-9]+-?)*[a-z\\u00a1-\\uffff0-9]+)*(?:\\.(?:[a-z\\u00a1-\\uffff]{2,})))|localhost)(?::\\d{2,5})?(?:(/|\\?|#)[^\\s]*)?$', 'i'); + return s.length < 2083 && r.test(s); + }, + numDot: function(n) { + _n = String(n) + fun = function(s){ + if(s.length <= 3) + return s + return fun(s.slice(0,-3))+"."+s.slice(-3) + } + return fun((_n)) + }, + toDate: function (dat){ + var mils = Math.floor((0x10000 * dat.getUTCMilliseconds()) / 1000).toString(16) + function pad(num, str){ + return ((new Array(num + 1)).join('0') + str).substr(-num,num) + } + return '~' + dat.getUTCFullYear() + + '.' + (dat.getUTCMonth() + 1) + + '.' + dat.getUTCDate() + + '..' + pad(2, dat.getUTCHours()) + + '.' + pad(2, dat.getUTCMinutes()) + + '.' + pad(2, dat.getUTCSeconds()) + + '..' + pad(4, mils) + }, + basepath: function(spur, pathname){ + spur = spur || '' + if(spur === '/') spur = '' + pathname = pathname || window.location.pathname + + base = "" + + if(pathname.indexOf("/~~") == 0) + base = "/~~" + if(pathname.indexOf("/~/as/") == 0) + base = "/~/as/"+pathname.split("/")[3] + if(pathname.indexOf("/~/away") == 0) + base = "/~/away" + + return base+spur + } +}