Added submission list viewing
authorBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 16 Sep 2019 18:09:25 +0000 (13:09 -0500)
committerBrendan Hansen <brendan.f.hansen@gmail.com>
Mon, 16 Sep 2019 18:09:25 +0000 (13:09 -0500)
17 files changed:
codebox/controllers/submission/list.moon
codebox/models/competitions.moon
codebox/services/queries.moon
codebox/static/coffee/pie_chart.coffee
codebox/static/css/core.css
codebox/static/css/core.css.map
codebox/static/js/pie_chart.js
codebox/static/js/pie_chart.js.map
codebox/static/scss/_utils.scss
codebox/static/scss/core.scss
codebox/views/problem/problem.moon
codebox/views/problem/submit.moon
codebox/views/ssr/job_result.moon
codebox/views/submission/list.moon
codebox/views/submission/view.moon
executer/app/executer.coffee
executer/app/executers/py_executer.coffee [new file with mode: 0644]

index 746594357296138c0e904645f3a660b7cd8cb61b..f9484b20bd6e6390e4a6a85c33e3459ea87ee323 100644 (file)
@@ -2,15 +2,20 @@ import make_controller from require "controllers.controller"
 import from_json, to_json from require 'lapis.util'
 import assert_valid from require 'lapis.validate'
 import capture_errors, yield_error from require 'lapis.application'
-import Competitions, Jobs from require 'models'
+import Competitions, Problems from require 'models'
 
 make_controller
        inject:
                queries: 'queries'
 
        middleware: { 'logged_in' }
+       scripts: { 'pie_chart' }
 
     get: =>
                @navbar.selected = 2
 
+               @competition = Competitions\find active: true
+               @problem_ids = @competition\get_problem_ids!
+               @problems = [Problems\find id for id in *@problem_ids]
+
        render: 'submission.list'
\ No newline at end of file
index 7e720d5a3b7ee68999d83071ec07542c01b73080..7489692a8d1b8bcc3ecd8007a91dc914c0042bf5 100644 (file)
@@ -10,5 +10,12 @@ class Competitions extends Model
                        inner join competitions on competition_problems.competition_id = competitions.id
                        where competitions.id=? order by competition_problems.letter asc", @id
                }
+               { "problem_ids", fetch: =>
+                       db.select "problems.id AS id
+                       from problems
+                       inner join competition_problems on problems.id = competition_problems.problem_id
+                       inner join competitions on competition_problems.competition_id = competitions.id
+                       where competitions.id=? order by competition_problems.letter asc", @id
+               }
                { "competition_problems", has_many: "CompetitionProblems" }
        }
index fbecf621846acaf620f3ec5493c595fba67749f0..ba72a6d7e29f2de07125bcb0831d8814d6b00d5f 100644 (file)
@@ -23,4 +23,7 @@ import Jobs from require 'models'
             }), user_id, problem_name
         
         return count[1].count > 0
+
+    get_jobs_by_user_and_problem: (user_id, problem_id) ->
+        db.select "* from jobs where user_id=? and problem_id=? order by time_initiated desc", user_id, problem_id
 }
\ No newline at end of file
index 369e1768ae7de561d6655f8efb0c598907f22fd2..11ba88663b6e5988055ee13ab0d2e1c1793f7e2b 100644 (file)
@@ -2,10 +2,11 @@ $(document).ready ->
     $('piechart').each (_, p) ->
         $p = $ p
         segments = $p.attr 'data-segments'
+        size = ($p.attr 'data-size') || 256
 
         canvas = document.createElement "canvas"
-        canvas.width = 256
-        canvas.height = 256
+        canvas.width = size
+        canvas.height = size
         $p.append canvas
         ctx = canvas.getContext "2d"
 
@@ -13,8 +14,8 @@ $(document).ready ->
         for i in [1..segments]
             total += parseInt ($p.attr "data-segment-#{i}")
         
+        half_size = size / 2
         fill_perc = 0.01
-
         anim = ->
             acc = 0
             for i in [1..segments]
@@ -22,8 +23,8 @@ $(document).ready ->
                 color = $p.attr "data-segment-#{i}-color"
 
                 ctx.beginPath()
-                ctx.moveTo 128, 128
-                ctx.arc 128, 128, 128, (-2 * Math.PI * (ratio + acc) / total), (-2 * Math.PI * acc / total)
+                ctx.moveTo half_size, half_size
+                ctx.arc half_size, half_size, half_size, (-2 * Math.PI * (ratio + acc) / total), (-2 * Math.PI * acc / total)
                 ctx.closePath()
                 ctx.fillStyle = color
                 ctx.fill()
index e0e7c36c41778306f58ff034e5472dbe927e00f7..311edc66ce593d37b1847cd597f7f246f3a40938 100644 (file)
@@ -1 +1 @@
-.navbar{z-index:10000;width:100%;background:#0077c2;height:47px;position:relative;box-shadow:0px 0px 10px 0px rgba(0,0,0,.7);display:grid;grid-template-columns:1fr 6fr 1fr}.navbar .navbar-logo{padding-left:8px;text-align:center}.navbar .navbar-logo img{max-height:calc(47px - 2px);display:inline}.navbar ul{display:block;text-align:center;font-size:0}.navbar ul a li{margin:0;display:inline-block;cursor:pointer;font-size:24px;list-style:none;line-height:40px;padding-left:30px;padding-right:30px;padding-top:4px;color:#f2f2f2;border-top-color:#0077c2;transition:200ms all}.navbar ul a li.selected,.navbar ul a li:hover{border-bottom:2px solid #ffe766;color:#fff}.content,.error-list{width:100%;padding:10px 10%}.right{float:right}.left{float:left}.hidden{visibility:hidden}a{text-decoration:none;color:inherit}.split-2{display:grid;grid-template-columns:repeat(2, 1fr)}.split-2>*:first-child{margin-right:12px}.split-2>*:last-child{margin-left:12px}.split-3{display:grid;grid-template-columns:repeat(3, 1fr)}.split-3>*:first-child{margin-right:12px}.split-3>*:last-child{margin-left:12px}.split-4{display:grid;grid-template-columns:repeat(4, 1fr)}.split-4>*:first-child{margin-right:12px}.split-4>*:last-child{margin-left:12px}.split-lr{display:grid;grid-template-columns:1fr 1fr}.split-lr>*:first-child{text-align:left}.split-lr>*:last-child{text-align:right}pre{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);font-size:1rem}pre .hljs-ln td{padding-right:8px}pre .hljs-ln-line{max-width:200px !important}.fixed-half-split{display:grid;grid-template-columns:275px 1fr}.tabbed-split{display:grid !important}.tabbed-split.tab-12{grid-template-columns:12px 1fr}.tabbed-split.tab-16{grid-template-columns:16px 1fr}.tabbed-split.tab-24{grid-template-columns:24px 1fr}.tabbed-split.tab-32{grid-template-columns:32px 1fr}.tabbed-split.tab-48{grid-template-columns:48px 1fr}.tabbed-split.tab-64{grid-template-columns:64px 1fr}.tabbed-split.primary>span{background-color:#42a5f5}.tabbed-split.primary-light>span{background-color:#80d6ff}.tabbed-split.primary-dark>span{background-color:#0077c2}.tabbed-split.secondary>span{background-color:gold}.tabbed-split.secondary-light>span{background-color:#ffe766}.tabbed-split.secondary-dark>span{background-color:#998100}.tabbed-split.error>span{background-color:#d00}.tabbed-split.error-light>span{background-color:#f44}.tabbed-split.error-dark>span{background-color:#700}.box{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#111}.box .highlight:hover{background-color:#333}.w50{width:50%}.w100{width:100%}.pad-1{padding:1px}.pad-l-1{padding-left:1px}.pad-r-1{padding-right:1px}.pad-t-1{padding-top:1px}.pad-b-1{padding-bottom:1px}.mar-1{margin:1px}.mar-l-1{margin-left:1px}.mar-r-1{margin-right:1px}.mar-t-1{margin-top:1px}.mar-b-1{margin-bottom:1px}.pad-2{padding:2px}.pad-l-2{padding-left:2px}.pad-r-2{padding-right:2px}.pad-t-2{padding-top:2px}.pad-b-2{padding-bottom:2px}.mar-2{margin:2px}.mar-l-2{margin-left:2px}.mar-r-2{margin-right:2px}.mar-t-2{margin-top:2px}.mar-b-2{margin-bottom:2px}.pad-3{padding:3px}.pad-l-3{padding-left:3px}.pad-r-3{padding-right:3px}.pad-t-3{padding-top:3px}.pad-b-3{padding-bottom:3px}.mar-3{margin:3px}.mar-l-3{margin-left:3px}.mar-r-3{margin-right:3px}.mar-t-3{margin-top:3px}.mar-b-3{margin-bottom:3px}.pad-4{padding:4px}.pad-l-4{padding-left:4px}.pad-r-4{padding-right:4px}.pad-t-4{padding-top:4px}.pad-b-4{padding-bottom:4px}.mar-4{margin:4px}.mar-l-4{margin-left:4px}.mar-r-4{margin-right:4px}.mar-t-4{margin-top:4px}.mar-b-4{margin-bottom:4px}.pad-5{padding:5px}.pad-l-5{padding-left:5px}.pad-r-5{padding-right:5px}.pad-t-5{padding-top:5px}.pad-b-5{padding-bottom:5px}.mar-5{margin:5px}.mar-l-5{margin-left:5px}.mar-r-5{margin-right:5px}.mar-t-5{margin-top:5px}.mar-b-5{margin-bottom:5px}.pad-6{padding:6px}.pad-l-6{padding-left:6px}.pad-r-6{padding-right:6px}.pad-t-6{padding-top:6px}.pad-b-6{padding-bottom:6px}.mar-6{margin:6px}.mar-l-6{margin-left:6px}.mar-r-6{margin-right:6px}.mar-t-6{margin-top:6px}.mar-b-6{margin-bottom:6px}.pad-7{padding:7px}.pad-l-7{padding-left:7px}.pad-r-7{padding-right:7px}.pad-t-7{padding-top:7px}.pad-b-7{padding-bottom:7px}.mar-7{margin:7px}.mar-l-7{margin-left:7px}.mar-r-7{margin-right:7px}.mar-t-7{margin-top:7px}.mar-b-7{margin-bottom:7px}.pad-8{padding:8px}.pad-l-8{padding-left:8px}.pad-r-8{padding-right:8px}.pad-t-8{padding-top:8px}.pad-b-8{padding-bottom:8px}.mar-8{margin:8px}.mar-l-8{margin-left:8px}.mar-r-8{margin-right:8px}.mar-t-8{margin-top:8px}.mar-b-8{margin-bottom:8px}.pad-9{padding:9px}.pad-l-9{padding-left:9px}.pad-r-9{padding-right:9px}.pad-t-9{padding-top:9px}.pad-b-9{padding-bottom:9px}.mar-9{margin:9px}.mar-l-9{margin-left:9px}.mar-r-9{margin-right:9px}.mar-t-9{margin-top:9px}.mar-b-9{margin-bottom:9px}.pad-10{padding:10px}.pad-l-10{padding-left:10px}.pad-r-10{padding-right:10px}.pad-t-10{padding-top:10px}.pad-b-10{padding-bottom:10px}.mar-10{margin:10px}.mar-l-10{margin-left:10px}.mar-r-10{margin-right:10px}.mar-t-10{margin-top:10px}.mar-b-10{margin-bottom:10px}.pad-11{padding:11px}.pad-l-11{padding-left:11px}.pad-r-11{padding-right:11px}.pad-t-11{padding-top:11px}.pad-b-11{padding-bottom:11px}.mar-11{margin:11px}.mar-l-11{margin-left:11px}.mar-r-11{margin-right:11px}.mar-t-11{margin-top:11px}.mar-b-11{margin-bottom:11px}.pad-12{padding:12px}.pad-l-12{padding-left:12px}.pad-r-12{padding-right:12px}.pad-t-12{padding-top:12px}.pad-b-12{padding-bottom:12px}.mar-12{margin:12px}.mar-l-12{margin-left:12px}.mar-r-12{margin-right:12px}.mar-t-12{margin-top:12px}.mar-b-12{margin-bottom:12px}.pad-13{padding:13px}.pad-l-13{padding-left:13px}.pad-r-13{padding-right:13px}.pad-t-13{padding-top:13px}.pad-b-13{padding-bottom:13px}.mar-13{margin:13px}.mar-l-13{margin-left:13px}.mar-r-13{margin-right:13px}.mar-t-13{margin-top:13px}.mar-b-13{margin-bottom:13px}.pad-14{padding:14px}.pad-l-14{padding-left:14px}.pad-r-14{padding-right:14px}.pad-t-14{padding-top:14px}.pad-b-14{padding-bottom:14px}.mar-14{margin:14px}.mar-l-14{margin-left:14px}.mar-r-14{margin-right:14px}.mar-t-14{margin-top:14px}.mar-b-14{margin-bottom:14px}.pad-15{padding:15px}.pad-l-15{padding-left:15px}.pad-r-15{padding-right:15px}.pad-t-15{padding-top:15px}.pad-b-15{padding-bottom:15px}.mar-15{margin:15px}.mar-l-15{margin-left:15px}.mar-r-15{margin-right:15px}.mar-t-15{margin-top:15px}.mar-b-15{margin-bottom:15px}.pad-16{padding:16px}.pad-l-16{padding-left:16px}.pad-r-16{padding-right:16px}.pad-t-16{padding-top:16px}.pad-b-16{padding-bottom:16px}.mar-16{margin:16px}.mar-l-16{margin-left:16px}.mar-r-16{margin-right:16px}.mar-t-16{margin-top:16px}.mar-b-16{margin-bottom:16px}.pad-17{padding:17px}.pad-l-17{padding-left:17px}.pad-r-17{padding-right:17px}.pad-t-17{padding-top:17px}.pad-b-17{padding-bottom:17px}.mar-17{margin:17px}.mar-l-17{margin-left:17px}.mar-r-17{margin-right:17px}.mar-t-17{margin-top:17px}.mar-b-17{margin-bottom:17px}.pad-18{padding:18px}.pad-l-18{padding-left:18px}.pad-r-18{padding-right:18px}.pad-t-18{padding-top:18px}.pad-b-18{padding-bottom:18px}.mar-18{margin:18px}.mar-l-18{margin-left:18px}.mar-r-18{margin-right:18px}.mar-t-18{margin-top:18px}.mar-b-18{margin-bottom:18px}.pad-19{padding:19px}.pad-l-19{padding-left:19px}.pad-r-19{padding-right:19px}.pad-t-19{padding-top:19px}.pad-b-19{padding-bottom:19px}.mar-19{margin:19px}.mar-l-19{margin-left:19px}.mar-r-19{margin-right:19px}.mar-t-19{margin-top:19px}.mar-b-19{margin-bottom:19px}.pad-20{padding:20px}.pad-l-20{padding-left:20px}.pad-r-20{padding-right:20px}.pad-t-20{padding-top:20px}.pad-b-20{padding-bottom:20px}.mar-20{margin:20px}.mar-l-20{margin-left:20px}.mar-r-20{margin-right:20px}.mar-t-20{margin-top:20px}.mar-b-20{margin-bottom:20px}.pad-21{padding:21px}.pad-l-21{padding-left:21px}.pad-r-21{padding-right:21px}.pad-t-21{padding-top:21px}.pad-b-21{padding-bottom:21px}.mar-21{margin:21px}.mar-l-21{margin-left:21px}.mar-r-21{margin-right:21px}.mar-t-21{margin-top:21px}.mar-b-21{margin-bottom:21px}.pad-22{padding:22px}.pad-l-22{padding-left:22px}.pad-r-22{padding-right:22px}.pad-t-22{padding-top:22px}.pad-b-22{padding-bottom:22px}.mar-22{margin:22px}.mar-l-22{margin-left:22px}.mar-r-22{margin-right:22px}.mar-t-22{margin-top:22px}.mar-b-22{margin-bottom:22px}.pad-23{padding:23px}.pad-l-23{padding-left:23px}.pad-r-23{padding-right:23px}.pad-t-23{padding-top:23px}.pad-b-23{padding-bottom:23px}.mar-23{margin:23px}.mar-l-23{margin-left:23px}.mar-r-23{margin-right:23px}.mar-t-23{margin-top:23px}.mar-b-23{margin-bottom:23px}.pad-24{padding:24px}.pad-l-24{padding-left:24px}.pad-r-24{padding-right:24px}.pad-t-24{padding-top:24px}.pad-b-24{padding-bottom:24px}.mar-24{margin:24px}.mar-l-24{margin-left:24px}.mar-r-24{margin-right:24px}.mar-t-24{margin-top:24px}.mar-b-24{margin-bottom:24px}.pad-25{padding:25px}.pad-l-25{padding-left:25px}.pad-r-25{padding-right:25px}.pad-t-25{padding-top:25px}.pad-b-25{padding-bottom:25px}.mar-25{margin:25px}.mar-l-25{margin-left:25px}.mar-r-25{margin-right:25px}.mar-t-25{margin-top:25px}.mar-b-25{margin-bottom:25px}.pad-26{padding:26px}.pad-l-26{padding-left:26px}.pad-r-26{padding-right:26px}.pad-t-26{padding-top:26px}.pad-b-26{padding-bottom:26px}.mar-26{margin:26px}.mar-l-26{margin-left:26px}.mar-r-26{margin-right:26px}.mar-t-26{margin-top:26px}.mar-b-26{margin-bottom:26px}.pad-27{padding:27px}.pad-l-27{padding-left:27px}.pad-r-27{padding-right:27px}.pad-t-27{padding-top:27px}.pad-b-27{padding-bottom:27px}.mar-27{margin:27px}.mar-l-27{margin-left:27px}.mar-r-27{margin-right:27px}.mar-t-27{margin-top:27px}.mar-b-27{margin-bottom:27px}.pad-28{padding:28px}.pad-l-28{padding-left:28px}.pad-r-28{padding-right:28px}.pad-t-28{padding-top:28px}.pad-b-28{padding-bottom:28px}.mar-28{margin:28px}.mar-l-28{margin-left:28px}.mar-r-28{margin-right:28px}.mar-t-28{margin-top:28px}.mar-b-28{margin-bottom:28px}.pad-29{padding:29px}.pad-l-29{padding-left:29px}.pad-r-29{padding-right:29px}.pad-t-29{padding-top:29px}.pad-b-29{padding-bottom:29px}.mar-29{margin:29px}.mar-l-29{margin-left:29px}.mar-r-29{margin-right:29px}.mar-t-29{margin-top:29px}.mar-b-29{margin-bottom:29px}.pad-30{padding:30px}.pad-l-30{padding-left:30px}.pad-r-30{padding-right:30px}.pad-t-30{padding-top:30px}.pad-b-30{padding-bottom:30px}.mar-30{margin:30px}.mar-l-30{margin-left:30px}.mar-r-30{margin-right:30px}.mar-t-30{margin-top:30px}.mar-b-30{margin-bottom:30px}.pad-31{padding:31px}.pad-l-31{padding-left:31px}.pad-r-31{padding-right:31px}.pad-t-31{padding-top:31px}.pad-b-31{padding-bottom:31px}.mar-31{margin:31px}.mar-l-31{margin-left:31px}.mar-r-31{margin-right:31px}.mar-t-31{margin-top:31px}.mar-b-31{margin-bottom:31px}.pad-32{padding:32px}.pad-l-32{padding-left:32px}.pad-r-32{padding-right:32px}.pad-t-32{padding-top:32px}.pad-b-32{padding-bottom:32px}.mar-32{margin:32px}.mar-l-32{margin-left:32px}.mar-r-32{margin-right:32px}.mar-t-32{margin-top:32px}.mar-b-32{margin-bottom:32px}.pad-33{padding:33px}.pad-l-33{padding-left:33px}.pad-r-33{padding-right:33px}.pad-t-33{padding-top:33px}.pad-b-33{padding-bottom:33px}.mar-33{margin:33px}.mar-l-33{margin-left:33px}.mar-r-33{margin-right:33px}.mar-t-33{margin-top:33px}.mar-b-33{margin-bottom:33px}.pad-34{padding:34px}.pad-l-34{padding-left:34px}.pad-r-34{padding-right:34px}.pad-t-34{padding-top:34px}.pad-b-34{padding-bottom:34px}.mar-34{margin:34px}.mar-l-34{margin-left:34px}.mar-r-34{margin-right:34px}.mar-t-34{margin-top:34px}.mar-b-34{margin-bottom:34px}.pad-35{padding:35px}.pad-l-35{padding-left:35px}.pad-r-35{padding-right:35px}.pad-t-35{padding-top:35px}.pad-b-35{padding-bottom:35px}.mar-35{margin:35px}.mar-l-35{margin-left:35px}.mar-r-35{margin-right:35px}.mar-t-35{margin-top:35px}.mar-b-35{margin-bottom:35px}.pad-36{padding:36px}.pad-l-36{padding-left:36px}.pad-r-36{padding-right:36px}.pad-t-36{padding-top:36px}.pad-b-36{padding-bottom:36px}.mar-36{margin:36px}.mar-l-36{margin-left:36px}.mar-r-36{margin-right:36px}.mar-t-36{margin-top:36px}.mar-b-36{margin-bottom:36px}.pad-37{padding:37px}.pad-l-37{padding-left:37px}.pad-r-37{padding-right:37px}.pad-t-37{padding-top:37px}.pad-b-37{padding-bottom:37px}.mar-37{margin:37px}.mar-l-37{margin-left:37px}.mar-r-37{margin-right:37px}.mar-t-37{margin-top:37px}.mar-b-37{margin-bottom:37px}.pad-38{padding:38px}.pad-l-38{padding-left:38px}.pad-r-38{padding-right:38px}.pad-t-38{padding-top:38px}.pad-b-38{padding-bottom:38px}.mar-38{margin:38px}.mar-l-38{margin-left:38px}.mar-r-38{margin-right:38px}.mar-t-38{margin-top:38px}.mar-b-38{margin-bottom:38px}.pad-39{padding:39px}.pad-l-39{padding-left:39px}.pad-r-39{padding-right:39px}.pad-t-39{padding-top:39px}.pad-b-39{padding-bottom:39px}.mar-39{margin:39px}.mar-l-39{margin-left:39px}.mar-r-39{margin-right:39px}.mar-t-39{margin-top:39px}.mar-b-39{margin-bottom:39px}.pad-40{padding:40px}.pad-l-40{padding-left:40px}.pad-r-40{padding-right:40px}.pad-t-40{padding-top:40px}.pad-b-40{padding-bottom:40px}.mar-40{margin:40px}.mar-l-40{margin-left:40px}.mar-r-40{margin-right:40px}.mar-t-40{margin-top:40px}.mar-b-40{margin-bottom:40px}.pad-41{padding:41px}.pad-l-41{padding-left:41px}.pad-r-41{padding-right:41px}.pad-t-41{padding-top:41px}.pad-b-41{padding-bottom:41px}.mar-41{margin:41px}.mar-l-41{margin-left:41px}.mar-r-41{margin-right:41px}.mar-t-41{margin-top:41px}.mar-b-41{margin-bottom:41px}.pad-42{padding:42px}.pad-l-42{padding-left:42px}.pad-r-42{padding-right:42px}.pad-t-42{padding-top:42px}.pad-b-42{padding-bottom:42px}.mar-42{margin:42px}.mar-l-42{margin-left:42px}.mar-r-42{margin-right:42px}.mar-t-42{margin-top:42px}.mar-b-42{margin-bottom:42px}.pad-43{padding:43px}.pad-l-43{padding-left:43px}.pad-r-43{padding-right:43px}.pad-t-43{padding-top:43px}.pad-b-43{padding-bottom:43px}.mar-43{margin:43px}.mar-l-43{margin-left:43px}.mar-r-43{margin-right:43px}.mar-t-43{margin-top:43px}.mar-b-43{margin-bottom:43px}.pad-44{padding:44px}.pad-l-44{padding-left:44px}.pad-r-44{padding-right:44px}.pad-t-44{padding-top:44px}.pad-b-44{padding-bottom:44px}.mar-44{margin:44px}.mar-l-44{margin-left:44px}.mar-r-44{margin-right:44px}.mar-t-44{margin-top:44px}.mar-b-44{margin-bottom:44px}.pad-45{padding:45px}.pad-l-45{padding-left:45px}.pad-r-45{padding-right:45px}.pad-t-45{padding-top:45px}.pad-b-45{padding-bottom:45px}.mar-45{margin:45px}.mar-l-45{margin-left:45px}.mar-r-45{margin-right:45px}.mar-t-45{margin-top:45px}.mar-b-45{margin-bottom:45px}.pad-46{padding:46px}.pad-l-46{padding-left:46px}.pad-r-46{padding-right:46px}.pad-t-46{padding-top:46px}.pad-b-46{padding-bottom:46px}.mar-46{margin:46px}.mar-l-46{margin-left:46px}.mar-r-46{margin-right:46px}.mar-t-46{margin-top:46px}.mar-b-46{margin-bottom:46px}.pad-47{padding:47px}.pad-l-47{padding-left:47px}.pad-r-47{padding-right:47px}.pad-t-47{padding-top:47px}.pad-b-47{padding-bottom:47px}.mar-47{margin:47px}.mar-l-47{margin-left:47px}.mar-r-47{margin-right:47px}.mar-t-47{margin-top:47px}.mar-b-47{margin-bottom:47px}.pad-48{padding:48px}.pad-l-48{padding-left:48px}.pad-r-48{padding-right:48px}.pad-t-48{padding-top:48px}.pad-b-48{padding-bottom:48px}.mar-48{margin:48px}.mar-l-48{margin-left:48px}.mar-r-48{margin-right:48px}.mar-t-48{margin-top:48px}.mar-b-48{margin-bottom:48px}.pad-49{padding:49px}.pad-l-49{padding-left:49px}.pad-r-49{padding-right:49px}.pad-t-49{padding-top:49px}.pad-b-49{padding-bottom:49px}.mar-49{margin:49px}.mar-l-49{margin-left:49px}.mar-r-49{margin-right:49px}.mar-t-49{margin-top:49px}.mar-b-49{margin-bottom:49px}.problem-info{float:right;width:300px}.sidebar-problem-list{z-index:50;box-shadow:0 10px 0 0 transparent,0 10px 0 0 transparent,10px 0 0 0 transparent,0 8px 8px 2px rgba(0,0,0,.5);background:#003252;position:relative;min-height:calc(100vh - 47px)}.sidebar-problem-list .sidebar-problem{width:100%;display:grid;grid-template-columns:32px 1fr;border-left-width:24px;border-left-style:solid;border-left-color:#0077c2;transition:background-color 200ms ease-in-out;transition:width 200ms ease-in-out;background-color:inherit;cursor:pointer}.sidebar-problem-list .sidebar-problem[correct]{border-left-color:lime}.sidebar-problem-list .sidebar-problem[wrong]{border-left-color:red}.sidebar-problem-list .sidebar-problem[selected],.sidebar-problem-list .sidebar-problem:hover{width:calc(100% + 24px)}.sidebar-problem-list .sidebar-problem[selected]{background-color:#42a5f5 !important}.sidebar-problem-list .sidebar-problem:hover{background-color:#128ef2}.sidebar-problem-list .sidebar-problem-letter{text-align:center;background-color:#001929;padding-top:20px;padding-bottom:20px;font-size:1.2rem}.sidebar-problem-list .sidebar-problem-name{text-align:left;font-size:1.2rem;padding-left:5px;padding-top:20px;padding-bottom:20px;margin-left:10px;margin-right:10px}.rect-auto,.c100.p100 .slice,.c100.p99 .slice,.c100.p98 .slice,.c100.p97 .slice,.c100.p96 .slice,.c100.p95 .slice,.c100.p94 .slice,.c100.p93 .slice,.c100.p92 .slice,.c100.p91 .slice,.c100.p90 .slice,.c100.p89 .slice,.c100.p88 .slice,.c100.p87 .slice,.c100.p86 .slice,.c100.p85 .slice,.c100.p84 .slice,.c100.p83 .slice,.c100.p82 .slice,.c100.p81 .slice,.c100.p80 .slice,.c100.p79 .slice,.c100.p78 .slice,.c100.p77 .slice,.c100.p76 .slice,.c100.p75 .slice,.c100.p74 .slice,.c100.p73 .slice,.c100.p72 .slice,.c100.p71 .slice,.c100.p70 .slice,.c100.p69 .slice,.c100.p68 .slice,.c100.p67 .slice,.c100.p66 .slice,.c100.p65 .slice,.c100.p64 .slice,.c100.p63 .slice,.c100.p62 .slice,.c100.p61 .slice,.c100.p60 .slice,.c100.p59 .slice,.c100.p58 .slice,.c100.p57 .slice,.c100.p56 .slice,.c100.p55 .slice,.c100.p54 .slice,.c100.p53 .slice,.c100.p52 .slice,.c100.p51 .slice{clip:rect(auto, auto, auto, auto)}.pie,.c100.p100 .fill,.c100.p99 .fill,.c100.p98 .fill,.c100.p97 .fill,.c100.p96 .fill,.c100.p95 .fill,.c100.p94 .fill,.c100.p93 .fill,.c100.p92 .fill,.c100.p91 .fill,.c100.p90 .fill,.c100.p89 .fill,.c100.p88 .fill,.c100.p87 .fill,.c100.p86 .fill,.c100.p85 .fill,.c100.p84 .fill,.c100.p83 .fill,.c100.p82 .fill,.c100.p81 .fill,.c100.p80 .fill,.c100.p79 .fill,.c100.p78 .fill,.c100.p77 .fill,.c100.p76 .fill,.c100.p75 .fill,.c100.p74 .fill,.c100.p73 .fill,.c100.p72 .fill,.c100.p71 .fill,.c100.p70 .fill,.c100.p69 .fill,.c100.p68 .fill,.c100.p67 .fill,.c100.p66 .fill,.c100.p65 .fill,.c100.p64 .fill,.c100.p63 .fill,.c100.p62 .fill,.c100.p61 .fill,.c100.p60 .fill,.c100.p59 .fill,.c100.p58 .fill,.c100.p57 .fill,.c100.p56 .fill,.c100.p55 .fill,.c100.p54 .fill,.c100.p53 .fill,.c100.p52 .fill,.c100.p51 .fill,.c100 .bar{position:absolute;border:.08em solid #307bbb;width:.84em;height:.84em;clip:rect(0em, 0.5em, 1em, 0em);border-radius:50%;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.pie-fill,.c100.p100 .fill,.c100.p100.bar:after,.c100.p99 .fill,.c100.p99.bar:after,.c100.p98 .fill,.c100.p98.bar:after,.c100.p97 .fill,.c100.p97.bar:after,.c100.p96 .fill,.c100.p96.bar:after,.c100.p95 .fill,.c100.p95.bar:after,.c100.p94 .fill,.c100.p94.bar:after,.c100.p93 .fill,.c100.p93.bar:after,.c100.p92 .fill,.c100.p92.bar:after,.c100.p91 .fill,.c100.p91.bar:after,.c100.p90 .fill,.c100.p90.bar:after,.c100.p89 .fill,.c100.p89.bar:after,.c100.p88 .fill,.c100.p88.bar:after,.c100.p87 .fill,.c100.p87.bar:after,.c100.p86 .fill,.c100.p86.bar:after,.c100.p85 .fill,.c100.p85.bar:after,.c100.p84 .fill,.c100.p84.bar:after,.c100.p83 .fill,.c100.p83.bar:after,.c100.p82 .fill,.c100.p82.bar:after,.c100.p81 .fill,.c100.p81.bar:after,.c100.p80 .fill,.c100.p80.bar:after,.c100.p79 .fill,.c100.p79.bar:after,.c100.p78 .fill,.c100.p78.bar:after,.c100.p77 .fill,.c100.p77.bar:after,.c100.p76 .fill,.c100.p76.bar:after,.c100.p75 .fill,.c100.p75.bar:after,.c100.p74 .fill,.c100.p74.bar:after,.c100.p73 .fill,.c100.p73.bar:after,.c100.p72 .fill,.c100.p72.bar:after,.c100.p71 .fill,.c100.p71.bar:after,.c100.p70 .fill,.c100.p70.bar:after,.c100.p69 .fill,.c100.p69.bar:after,.c100.p68 .fill,.c100.p68.bar:after,.c100.p67 .fill,.c100.p67.bar:after,.c100.p66 .fill,.c100.p66.bar:after,.c100.p65 .fill,.c100.p65.bar:after,.c100.p64 .fill,.c100.p64.bar:after,.c100.p63 .fill,.c100.p63.bar:after,.c100.p62 .fill,.c100.p62.bar:after,.c100.p61 .fill,.c100.p61.bar:after,.c100.p60 .fill,.c100.p60.bar:after,.c100.p59 .fill,.c100.p59.bar:after,.c100.p58 .fill,.c100.p58.bar:after,.c100.p57 .fill,.c100.p57.bar:after,.c100.p56 .fill,.c100.p56.bar:after,.c100.p55 .fill,.c100.p55.bar:after,.c100.p54 .fill,.c100.p54.bar:after,.c100.p53 .fill,.c100.p53.bar:after,.c100.p52 .fill,.c100.p52.bar:after,.c100.p51 .fill,.c100.p51.bar:after{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100{position:relative;font-size:120px;width:1em;height:1em;border-radius:50%;float:left;background-color:#ccc}.c100 *,.c100 *:before,.c100 *:after{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.c100.center{float:none;margin:0 auto}.c100.big{font-size:240px}.c100.small{font-size:80px}.c100>span{position:absolute;width:100%;z-index:1;left:0;top:0;width:5em;line-height:5em;font-size:.2em;color:#ccc;display:block;text-align:center;white-space:nowrap;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.c100:after{position:absolute;top:.08em;left:.08em;display:block;content:" ";border-radius:50%;background-color:#f5f5f5;width:.84em;height:.84em;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-in;-moz-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.c100 .slice{position:absolute;width:1em;height:1em;clip:rect(0em, 1em, 1em, 0.5em)}.c100.p1 .bar{-webkit-transform:rotate(3.6deg);-moz-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);-o-transform:rotate(3.6deg);transform:rotate(3.6deg)}.c100.p2 .bar{-webkit-transform:rotate(7.2deg);-moz-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);-o-transform:rotate(7.2deg);transform:rotate(7.2deg)}.c100.p3 .bar{-webkit-transform:rotate(10.8deg);-moz-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);-o-transform:rotate(10.8deg);transform:rotate(10.8deg)}.c100.p4 .bar{-webkit-transform:rotate(14.4deg);-moz-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);-o-transform:rotate(14.4deg);transform:rotate(14.4deg)}.c100.p5 .bar{-webkit-transform:rotate(18deg);-moz-transform:rotate(18deg);-ms-transform:rotate(18deg);-o-transform:rotate(18deg);transform:rotate(18deg)}.c100.p6 .bar{-webkit-transform:rotate(21.6deg);-moz-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);-o-transform:rotate(21.6deg);transform:rotate(21.6deg)}.c100.p7 .bar{-webkit-transform:rotate(25.2deg);-moz-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);-o-transform:rotate(25.2deg);transform:rotate(25.2deg)}.c100.p8 .bar{-webkit-transform:rotate(28.8deg);-moz-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);-o-transform:rotate(28.8deg);transform:rotate(28.8deg)}.c100.p9 .bar{-webkit-transform:rotate(32.4deg);-moz-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);-o-transform:rotate(32.4deg);transform:rotate(32.4deg)}.c100.p10 .bar{-webkit-transform:rotate(36deg);-moz-transform:rotate(36deg);-ms-transform:rotate(36deg);-o-transform:rotate(36deg);transform:rotate(36deg)}.c100.p11 .bar{-webkit-transform:rotate(39.6deg);-moz-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);-o-transform:rotate(39.6deg);transform:rotate(39.6deg)}.c100.p12 .bar{-webkit-transform:rotate(43.2deg);-moz-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);-o-transform:rotate(43.2deg);transform:rotate(43.2deg)}.c100.p13 .bar{-webkit-transform:rotate(46.8deg);-moz-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);-o-transform:rotate(46.8deg);transform:rotate(46.8deg)}.c100.p14 .bar{-webkit-transform:rotate(50.4deg);-moz-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);-o-transform:rotate(50.4deg);transform:rotate(50.4deg)}.c100.p15 .bar{-webkit-transform:rotate(54deg);-moz-transform:rotate(54deg);-ms-transform:rotate(54deg);-o-transform:rotate(54deg);transform:rotate(54deg)}.c100.p16 .bar{-webkit-transform:rotate(57.6deg);-moz-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);-o-transform:rotate(57.6deg);transform:rotate(57.6deg)}.c100.p17 .bar{-webkit-transform:rotate(61.2deg);-moz-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);-o-transform:rotate(61.2deg);transform:rotate(61.2deg)}.c100.p18 .bar{-webkit-transform:rotate(64.8deg);-moz-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);-o-transform:rotate(64.8deg);transform:rotate(64.8deg)}.c100.p19 .bar{-webkit-transform:rotate(68.4deg);-moz-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);-o-transform:rotate(68.4deg);transform:rotate(68.4deg)}.c100.p20 .bar{-webkit-transform:rotate(72deg);-moz-transform:rotate(72deg);-ms-transform:rotate(72deg);-o-transform:rotate(72deg);transform:rotate(72deg)}.c100.p21 .bar{-webkit-transform:rotate(75.6deg);-moz-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);-o-transform:rotate(75.6deg);transform:rotate(75.6deg)}.c100.p22 .bar{-webkit-transform:rotate(79.2deg);-moz-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);-o-transform:rotate(79.2deg);transform:rotate(79.2deg)}.c100.p23 .bar{-webkit-transform:rotate(82.8deg);-moz-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);-o-transform:rotate(82.8deg);transform:rotate(82.8deg)}.c100.p24 .bar{-webkit-transform:rotate(86.4deg);-moz-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);-o-transform:rotate(86.4deg);transform:rotate(86.4deg)}.c100.p25 .bar{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.c100.p26 .bar{-webkit-transform:rotate(93.6deg);-moz-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);-o-transform:rotate(93.6deg);transform:rotate(93.6deg)}.c100.p27 .bar{-webkit-transform:rotate(97.2deg);-moz-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);-o-transform:rotate(97.2deg);transform:rotate(97.2deg)}.c100.p28 .bar{-webkit-transform:rotate(100.8deg);-moz-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);-o-transform:rotate(100.8deg);transform:rotate(100.8deg)}.c100.p29 .bar{-webkit-transform:rotate(104.4deg);-moz-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);-o-transform:rotate(104.4deg);transform:rotate(104.4deg)}.c100.p30 .bar{-webkit-transform:rotate(108deg);-moz-transform:rotate(108deg);-ms-transform:rotate(108deg);-o-transform:rotate(108deg);transform:rotate(108deg)}.c100.p31 .bar{-webkit-transform:rotate(111.6deg);-moz-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);-o-transform:rotate(111.6deg);transform:rotate(111.6deg)}.c100.p32 .bar{-webkit-transform:rotate(115.2deg);-moz-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);-o-transform:rotate(115.2deg);transform:rotate(115.2deg)}.c100.p33 .bar{-webkit-transform:rotate(118.8deg);-moz-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);-o-transform:rotate(118.8deg);transform:rotate(118.8deg)}.c100.p34 .bar{-webkit-transform:rotate(122.4deg);-moz-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);-o-transform:rotate(122.4deg);transform:rotate(122.4deg)}.c100.p35 .bar{-webkit-transform:rotate(126deg);-moz-transform:rotate(126deg);-ms-transform:rotate(126deg);-o-transform:rotate(126deg);transform:rotate(126deg)}.c100.p36 .bar{-webkit-transform:rotate(129.6deg);-moz-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);-o-transform:rotate(129.6deg);transform:rotate(129.6deg)}.c100.p37 .bar{-webkit-transform:rotate(133.2deg);-moz-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);-o-transform:rotate(133.2deg);transform:rotate(133.2deg)}.c100.p38 .bar{-webkit-transform:rotate(136.8deg);-moz-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);-o-transform:rotate(136.8deg);transform:rotate(136.8deg)}.c100.p39 .bar{-webkit-transform:rotate(140.4deg);-moz-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);-o-transform:rotate(140.4deg);transform:rotate(140.4deg)}.c100.p40 .bar{-webkit-transform:rotate(144deg);-moz-transform:rotate(144deg);-ms-transform:rotate(144deg);-o-transform:rotate(144deg);transform:rotate(144deg)}.c100.p41 .bar{-webkit-transform:rotate(147.6deg);-moz-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);-o-transform:rotate(147.6deg);transform:rotate(147.6deg)}.c100.p42 .bar{-webkit-transform:rotate(151.2deg);-moz-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);-o-transform:rotate(151.2deg);transform:rotate(151.2deg)}.c100.p43 .bar{-webkit-transform:rotate(154.8deg);-moz-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);-o-transform:rotate(154.8deg);transform:rotate(154.8deg)}.c100.p44 .bar{-webkit-transform:rotate(158.4deg);-moz-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);-o-transform:rotate(158.4deg);transform:rotate(158.4deg)}.c100.p45 .bar{-webkit-transform:rotate(162deg);-moz-transform:rotate(162deg);-ms-transform:rotate(162deg);-o-transform:rotate(162deg);transform:rotate(162deg)}.c100.p46 .bar{-webkit-transform:rotate(165.6deg);-moz-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);-o-transform:rotate(165.6deg);transform:rotate(165.6deg)}.c100.p47 .bar{-webkit-transform:rotate(169.2deg);-moz-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);-o-transform:rotate(169.2deg);transform:rotate(169.2deg)}.c100.p48 .bar{-webkit-transform:rotate(172.8deg);-moz-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);-o-transform:rotate(172.8deg);transform:rotate(172.8deg)}.c100.p49 .bar{-webkit-transform:rotate(176.4deg);-moz-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);-o-transform:rotate(176.4deg);transform:rotate(176.4deg)}.c100.p50 .bar{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100.p51 .bar{-webkit-transform:rotate(183.6deg);-moz-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);-o-transform:rotate(183.6deg);transform:rotate(183.6deg)}.c100.p52 .bar{-webkit-transform:rotate(187.2deg);-moz-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);-o-transform:rotate(187.2deg);transform:rotate(187.2deg)}.c100.p53 .bar{-webkit-transform:rotate(190.8deg);-moz-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);-o-transform:rotate(190.8deg);transform:rotate(190.8deg)}.c100.p54 .bar{-webkit-transform:rotate(194.4deg);-moz-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);-o-transform:rotate(194.4deg);transform:rotate(194.4deg)}.c100.p55 .bar{-webkit-transform:rotate(198deg);-moz-transform:rotate(198deg);-ms-transform:rotate(198deg);-o-transform:rotate(198deg);transform:rotate(198deg)}.c100.p56 .bar{-webkit-transform:rotate(201.6deg);-moz-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);-o-transform:rotate(201.6deg);transform:rotate(201.6deg)}.c100.p57 .bar{-webkit-transform:rotate(205.2deg);-moz-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);-o-transform:rotate(205.2deg);transform:rotate(205.2deg)}.c100.p58 .bar{-webkit-transform:rotate(208.8deg);-moz-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);-o-transform:rotate(208.8deg);transform:rotate(208.8deg)}.c100.p59 .bar{-webkit-transform:rotate(212.4deg);-moz-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);-o-transform:rotate(212.4deg);transform:rotate(212.4deg)}.c100.p60 .bar{-webkit-transform:rotate(216deg);-moz-transform:rotate(216deg);-ms-transform:rotate(216deg);-o-transform:rotate(216deg);transform:rotate(216deg)}.c100.p61 .bar{-webkit-transform:rotate(219.6deg);-moz-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);-o-transform:rotate(219.6deg);transform:rotate(219.6deg)}.c100.p62 .bar{-webkit-transform:rotate(223.2deg);-moz-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);-o-transform:rotate(223.2deg);transform:rotate(223.2deg)}.c100.p63 .bar{-webkit-transform:rotate(226.8deg);-moz-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);-o-transform:rotate(226.8deg);transform:rotate(226.8deg)}.c100.p64 .bar{-webkit-transform:rotate(230.4deg);-moz-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);-o-transform:rotate(230.4deg);transform:rotate(230.4deg)}.c100.p65 .bar{-webkit-transform:rotate(234deg);-moz-transform:rotate(234deg);-ms-transform:rotate(234deg);-o-transform:rotate(234deg);transform:rotate(234deg)}.c100.p66 .bar{-webkit-transform:rotate(237.6deg);-moz-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);-o-transform:rotate(237.6deg);transform:rotate(237.6deg)}.c100.p67 .bar{-webkit-transform:rotate(241.2deg);-moz-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);-o-transform:rotate(241.2deg);transform:rotate(241.2deg)}.c100.p68 .bar{-webkit-transform:rotate(244.8deg);-moz-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);-o-transform:rotate(244.8deg);transform:rotate(244.8deg)}.c100.p69 .bar{-webkit-transform:rotate(248.4deg);-moz-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);-o-transform:rotate(248.4deg);transform:rotate(248.4deg)}.c100.p70 .bar{-webkit-transform:rotate(252deg);-moz-transform:rotate(252deg);-ms-transform:rotate(252deg);-o-transform:rotate(252deg);transform:rotate(252deg)}.c100.p71 .bar{-webkit-transform:rotate(255.6deg);-moz-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);-o-transform:rotate(255.6deg);transform:rotate(255.6deg)}.c100.p72 .bar{-webkit-transform:rotate(259.2deg);-moz-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);-o-transform:rotate(259.2deg);transform:rotate(259.2deg)}.c100.p73 .bar{-webkit-transform:rotate(262.8deg);-moz-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);-o-transform:rotate(262.8deg);transform:rotate(262.8deg)}.c100.p74 .bar{-webkit-transform:rotate(266.4deg);-moz-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);-o-transform:rotate(266.4deg);transform:rotate(266.4deg)}.c100.p75 .bar{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.c100.p76 .bar{-webkit-transform:rotate(273.6deg);-moz-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);-o-transform:rotate(273.6deg);transform:rotate(273.6deg)}.c100.p77 .bar{-webkit-transform:rotate(277.2deg);-moz-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);-o-transform:rotate(277.2deg);transform:rotate(277.2deg)}.c100.p78 .bar{-webkit-transform:rotate(280.8deg);-moz-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);-o-transform:rotate(280.8deg);transform:rotate(280.8deg)}.c100.p79 .bar{-webkit-transform:rotate(284.4deg);-moz-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);-o-transform:rotate(284.4deg);transform:rotate(284.4deg)}.c100.p80 .bar{-webkit-transform:rotate(288deg);-moz-transform:rotate(288deg);-ms-transform:rotate(288deg);-o-transform:rotate(288deg);transform:rotate(288deg)}.c100.p81 .bar{-webkit-transform:rotate(291.6deg);-moz-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);-o-transform:rotate(291.6deg);transform:rotate(291.6deg)}.c100.p82 .bar{-webkit-transform:rotate(295.2deg);-moz-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);-o-transform:rotate(295.2deg);transform:rotate(295.2deg)}.c100.p83 .bar{-webkit-transform:rotate(298.8deg);-moz-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);-o-transform:rotate(298.8deg);transform:rotate(298.8deg)}.c100.p84 .bar{-webkit-transform:rotate(302.4deg);-moz-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);-o-transform:rotate(302.4deg);transform:rotate(302.4deg)}.c100.p85 .bar{-webkit-transform:rotate(306deg);-moz-transform:rotate(306deg);-ms-transform:rotate(306deg);-o-transform:rotate(306deg);transform:rotate(306deg)}.c100.p86 .bar{-webkit-transform:rotate(309.6deg);-moz-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);-o-transform:rotate(309.6deg);transform:rotate(309.6deg)}.c100.p87 .bar{-webkit-transform:rotate(313.2deg);-moz-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);-o-transform:rotate(313.2deg);transform:rotate(313.2deg)}.c100.p88 .bar{-webkit-transform:rotate(316.8deg);-moz-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);-o-transform:rotate(316.8deg);transform:rotate(316.8deg)}.c100.p89 .bar{-webkit-transform:rotate(320.4deg);-moz-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);-o-transform:rotate(320.4deg);transform:rotate(320.4deg)}.c100.p90 .bar{-webkit-transform:rotate(324deg);-moz-transform:rotate(324deg);-ms-transform:rotate(324deg);-o-transform:rotate(324deg);transform:rotate(324deg)}.c100.p91 .bar{-webkit-transform:rotate(327.6deg);-moz-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);-o-transform:rotate(327.6deg);transform:rotate(327.6deg)}.c100.p92 .bar{-webkit-transform:rotate(331.2deg);-moz-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);-o-transform:rotate(331.2deg);transform:rotate(331.2deg)}.c100.p93 .bar{-webkit-transform:rotate(334.8deg);-moz-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);-o-transform:rotate(334.8deg);transform:rotate(334.8deg)}.c100.p94 .bar{-webkit-transform:rotate(338.4deg);-moz-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);-o-transform:rotate(338.4deg);transform:rotate(338.4deg)}.c100.p95 .bar{-webkit-transform:rotate(342deg);-moz-transform:rotate(342deg);-ms-transform:rotate(342deg);-o-transform:rotate(342deg);transform:rotate(342deg)}.c100.p96 .bar{-webkit-transform:rotate(345.6deg);-moz-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);-o-transform:rotate(345.6deg);transform:rotate(345.6deg)}.c100.p97 .bar{-webkit-transform:rotate(349.2deg);-moz-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);-o-transform:rotate(349.2deg);transform:rotate(349.2deg)}.c100.p98 .bar{-webkit-transform:rotate(352.8deg);-moz-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);-o-transform:rotate(352.8deg);transform:rotate(352.8deg)}.c100.p99 .bar{-webkit-transform:rotate(356.4deg);-moz-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);-o-transform:rotate(356.4deg);transform:rotate(356.4deg)}.c100.p100 .bar{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}.c100:hover{cursor:default}.c100:hover>span{width:3.33em;line-height:3.33em;font-size:.3em;color:#307bbb}.c100:hover:after{top:.04em;left:.04em;width:.92em;height:.92em}.c100.dark{background-color:#0077c2}.c100.dark .bar,.c100.dark .fill{border-color:#80d6ff !important}.c100.dark>span{color:#0077c2}.c100.dark:after{background-color:#111}.c100.dark:hover>span{color:#80d6ff}.c100.error{background-color:#700}.c100.error .bar,.c100.error .fill{border-color:#d00 !important}.c100.error:hover>span{color:#d00}.c100.error>span{color:#700}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}h1{width:100%;margin-top:12px;text-align:center}body{font-family:sans-serif;background:url(/static/imgs/grain_background.png);background-color:#111;background-repeat:repeat;color:#fff}button,a.button{box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);border:1px solid #0077c2;background-color:#0077c2;color:#fff;font-size:1rem;padding:.75rem;margin-bottom:12px;display:inline-block;cursor:pointer}button+button,button+a.button,a.button+button,a.button+a.button{margin-left:12px}input,textarea,select{border:none;background-color:#111;color:#fff;font-size:1rem;display:inline-block;padding:.25rem}input::placeholder,textarea::placeholder,select::placeholder{color:#999}input[type=submit]{cursor:pointer;background-color:#0077c2}form input,form textarea,form select{z-index:20;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);padding:.75rem;margin-bottom:12px;width:100%}form textarea{background-color:#111;height:50vh}form label{z-index:30;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);background-color:#0077c2;width:100%;line-height:44px;display:inline-block;padding:4px 12px 4px;margin-top:12px}.error-list ul li{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);list-style:none;background-color:#998100;padding:.5rem;margin-bottom:.5rem}.error-list ul li.success{background-color:#0077c2}.split{display:grid;grid-template-columns:1fr 1fr}.test-case{outline:none;box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);resize:none;border:none;height:200px;padding:8px;background-color:#111;color:#fff}.test-case:first-child{border-right:2px solid #0077c2}.header-line,.option-line{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#0077c2;padding:4px 12px 4px;margin-top:12px;display:inline-block;width:100%}.header-line>*,.option-line>*{line-height:44px;display:inline-block}.option-line{display:grid;grid-template-columns:1fr 1fr}.option-line>*:last-child{text-align:right}.button-list>*{margin:0px 8px 0px;background-color:#42a5f5;box-shadow:none;border:none;color:#fff;font-size:1rem;line-height:1.2rem;padding:4px 12px 4px;display:inline-block;cursor:pointer}.sidebar-page-container{display:grid;grid-template-columns:minmax(250px, 1fr) 5fr}#code-editor{position:relative;width:100%;min-height:16rem}/*# sourceMappingURL=core.css.map */
+.navbar{z-index:10000;width:100%;background:#0077c2;height:47px;position:relative;box-shadow:0px 0px 10px 0px rgba(0,0,0,.7);display:grid;grid-template-columns:1fr 6fr 1fr}.navbar .navbar-logo{padding-left:8px;text-align:center}.navbar .navbar-logo img{max-height:calc(47px - 2px);display:inline}.navbar ul{display:block;text-align:center;font-size:0}.navbar ul a li{margin:0;display:inline-block;cursor:pointer;font-size:24px;list-style:none;line-height:40px;padding-left:30px;padding-right:30px;padding-top:4px;color:#f2f2f2;border-top-color:#0077c2;transition:200ms all}.navbar ul a li.selected,.navbar ul a li:hover{border-bottom:2px solid #ffe766;color:#fff}.content,.error-list{width:100%;padding:10px 10%}.right{float:right}.left{float:left}.hidden{visibility:hidden}a{text-decoration:none;color:inherit}.split-2{display:grid;grid-template-columns:repeat(2, 1fr)}.split-2>*:first-child{margin-right:12px}.split-2>*:last-child{margin-left:12px}.split-3{display:grid;grid-template-columns:repeat(3, 1fr)}.split-4{display:grid;grid-template-columns:repeat(4, 1fr)}.split-lr{display:grid;grid-template-columns:1fr 1fr}.split-lr>*:first-child{text-align:left}.split-lr>*:last-child{text-align:right}.split-1-1{display:grid;grid-template-columns:1fr 1fr}.split-1-2{display:grid;grid-template-columns:1fr 2fr}.split-1-3{display:grid;grid-template-columns:1fr 3fr}.split-1-4{display:grid;grid-template-columns:1fr 4fr}.split-2-1{display:grid;grid-template-columns:2fr 1fr}.split-2-2{display:grid;grid-template-columns:2fr 2fr}.split-2-3{display:grid;grid-template-columns:2fr 3fr}.split-2-4{display:grid;grid-template-columns:2fr 4fr}.split-3-1{display:grid;grid-template-columns:3fr 1fr}.split-3-2{display:grid;grid-template-columns:3fr 2fr}.split-3-3{display:grid;grid-template-columns:3fr 3fr}.split-3-4{display:grid;grid-template-columns:3fr 4fr}.split-4-1{display:grid;grid-template-columns:4fr 1fr}.split-4-2{display:grid;grid-template-columns:4fr 2fr}.split-4-3{display:grid;grid-template-columns:4fr 3fr}.split-4-4{display:grid;grid-template-columns:4fr 4fr}pre{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);font-size:1rem}pre .hljs-ln td{padding-right:8px}pre .hljs-ln-line{max-width:200px !important}.fixed-half-split{display:grid;grid-template-columns:275px 1fr}.tabbed-split{display:grid !important}.tabbed-split.tab-12{grid-template-columns:12px 1fr}.tabbed-split.tab-16{grid-template-columns:16px 1fr}.tabbed-split.tab-24{grid-template-columns:24px 1fr}.tabbed-split.tab-32{grid-template-columns:32px 1fr}.tabbed-split.tab-48{grid-template-columns:48px 1fr}.tabbed-split.tab-64{grid-template-columns:64px 1fr}.tabbed-split.primary>span{background-color:#42a5f5}.tabbed-split.primary-light>span{background-color:#80d6ff}.tabbed-split.primary-dark>span{background-color:#0077c2}.tabbed-split.secondary>span{background-color:gold}.tabbed-split.secondary-light>span{background-color:#ffe766}.tabbed-split.secondary-dark>span{background-color:#998100}.tabbed-split.success>span{background-color:lime}.tabbed-split.error>span{background-color:#d00}.tabbed-split.error-light>span{background-color:#f44}.tabbed-split.error-dark>span{background-color:#700}.box{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#111}.box .highlight:hover{background-color:#333}.w50{width:50%}.w100{width:100%}.pad-1{padding:1px}.pad-l-1{padding-left:1px}.pad-r-1{padding-right:1px}.pad-t-1{padding-top:1px}.pad-b-1{padding-bottom:1px}.mar-1{margin:1px}.mar-l-1{margin-left:1px}.mar-r-1{margin-right:1px}.mar-t-1{margin-top:1px}.mar-b-1{margin-bottom:1px}.pad-2{padding:2px}.pad-l-2{padding-left:2px}.pad-r-2{padding-right:2px}.pad-t-2{padding-top:2px}.pad-b-2{padding-bottom:2px}.mar-2{margin:2px}.mar-l-2{margin-left:2px}.mar-r-2{margin-right:2px}.mar-t-2{margin-top:2px}.mar-b-2{margin-bottom:2px}.pad-3{padding:3px}.pad-l-3{padding-left:3px}.pad-r-3{padding-right:3px}.pad-t-3{padding-top:3px}.pad-b-3{padding-bottom:3px}.mar-3{margin:3px}.mar-l-3{margin-left:3px}.mar-r-3{margin-right:3px}.mar-t-3{margin-top:3px}.mar-b-3{margin-bottom:3px}.pad-4{padding:4px}.pad-l-4{padding-left:4px}.pad-r-4{padding-right:4px}.pad-t-4{padding-top:4px}.pad-b-4{padding-bottom:4px}.mar-4{margin:4px}.mar-l-4{margin-left:4px}.mar-r-4{margin-right:4px}.mar-t-4{margin-top:4px}.mar-b-4{margin-bottom:4px}.pad-5{padding:5px}.pad-l-5{padding-left:5px}.pad-r-5{padding-right:5px}.pad-t-5{padding-top:5px}.pad-b-5{padding-bottom:5px}.mar-5{margin:5px}.mar-l-5{margin-left:5px}.mar-r-5{margin-right:5px}.mar-t-5{margin-top:5px}.mar-b-5{margin-bottom:5px}.pad-6{padding:6px}.pad-l-6{padding-left:6px}.pad-r-6{padding-right:6px}.pad-t-6{padding-top:6px}.pad-b-6{padding-bottom:6px}.mar-6{margin:6px}.mar-l-6{margin-left:6px}.mar-r-6{margin-right:6px}.mar-t-6{margin-top:6px}.mar-b-6{margin-bottom:6px}.pad-7{padding:7px}.pad-l-7{padding-left:7px}.pad-r-7{padding-right:7px}.pad-t-7{padding-top:7px}.pad-b-7{padding-bottom:7px}.mar-7{margin:7px}.mar-l-7{margin-left:7px}.mar-r-7{margin-right:7px}.mar-t-7{margin-top:7px}.mar-b-7{margin-bottom:7px}.pad-8{padding:8px}.pad-l-8{padding-left:8px}.pad-r-8{padding-right:8px}.pad-t-8{padding-top:8px}.pad-b-8{padding-bottom:8px}.mar-8{margin:8px}.mar-l-8{margin-left:8px}.mar-r-8{margin-right:8px}.mar-t-8{margin-top:8px}.mar-b-8{margin-bottom:8px}.pad-9{padding:9px}.pad-l-9{padding-left:9px}.pad-r-9{padding-right:9px}.pad-t-9{padding-top:9px}.pad-b-9{padding-bottom:9px}.mar-9{margin:9px}.mar-l-9{margin-left:9px}.mar-r-9{margin-right:9px}.mar-t-9{margin-top:9px}.mar-b-9{margin-bottom:9px}.pad-10{padding:10px}.pad-l-10{padding-left:10px}.pad-r-10{padding-right:10px}.pad-t-10{padding-top:10px}.pad-b-10{padding-bottom:10px}.mar-10{margin:10px}.mar-l-10{margin-left:10px}.mar-r-10{margin-right:10px}.mar-t-10{margin-top:10px}.mar-b-10{margin-bottom:10px}.pad-11{padding:11px}.pad-l-11{padding-left:11px}.pad-r-11{padding-right:11px}.pad-t-11{padding-top:11px}.pad-b-11{padding-bottom:11px}.mar-11{margin:11px}.mar-l-11{margin-left:11px}.mar-r-11{margin-right:11px}.mar-t-11{margin-top:11px}.mar-b-11{margin-bottom:11px}.pad-12{padding:12px}.pad-l-12{padding-left:12px}.pad-r-12{padding-right:12px}.pad-t-12{padding-top:12px}.pad-b-12{padding-bottom:12px}.mar-12{margin:12px}.mar-l-12{margin-left:12px}.mar-r-12{margin-right:12px}.mar-t-12{margin-top:12px}.mar-b-12{margin-bottom:12px}.pad-13{padding:13px}.pad-l-13{padding-left:13px}.pad-r-13{padding-right:13px}.pad-t-13{padding-top:13px}.pad-b-13{padding-bottom:13px}.mar-13{margin:13px}.mar-l-13{margin-left:13px}.mar-r-13{margin-right:13px}.mar-t-13{margin-top:13px}.mar-b-13{margin-bottom:13px}.pad-14{padding:14px}.pad-l-14{padding-left:14px}.pad-r-14{padding-right:14px}.pad-t-14{padding-top:14px}.pad-b-14{padding-bottom:14px}.mar-14{margin:14px}.mar-l-14{margin-left:14px}.mar-r-14{margin-right:14px}.mar-t-14{margin-top:14px}.mar-b-14{margin-bottom:14px}.pad-15{padding:15px}.pad-l-15{padding-left:15px}.pad-r-15{padding-right:15px}.pad-t-15{padding-top:15px}.pad-b-15{padding-bottom:15px}.mar-15{margin:15px}.mar-l-15{margin-left:15px}.mar-r-15{margin-right:15px}.mar-t-15{margin-top:15px}.mar-b-15{margin-bottom:15px}.pad-16{padding:16px}.pad-l-16{padding-left:16px}.pad-r-16{padding-right:16px}.pad-t-16{padding-top:16px}.pad-b-16{padding-bottom:16px}.mar-16{margin:16px}.mar-l-16{margin-left:16px}.mar-r-16{margin-right:16px}.mar-t-16{margin-top:16px}.mar-b-16{margin-bottom:16px}.pad-17{padding:17px}.pad-l-17{padding-left:17px}.pad-r-17{padding-right:17px}.pad-t-17{padding-top:17px}.pad-b-17{padding-bottom:17px}.mar-17{margin:17px}.mar-l-17{margin-left:17px}.mar-r-17{margin-right:17px}.mar-t-17{margin-top:17px}.mar-b-17{margin-bottom:17px}.pad-18{padding:18px}.pad-l-18{padding-left:18px}.pad-r-18{padding-right:18px}.pad-t-18{padding-top:18px}.pad-b-18{padding-bottom:18px}.mar-18{margin:18px}.mar-l-18{margin-left:18px}.mar-r-18{margin-right:18px}.mar-t-18{margin-top:18px}.mar-b-18{margin-bottom:18px}.pad-19{padding:19px}.pad-l-19{padding-left:19px}.pad-r-19{padding-right:19px}.pad-t-19{padding-top:19px}.pad-b-19{padding-bottom:19px}.mar-19{margin:19px}.mar-l-19{margin-left:19px}.mar-r-19{margin-right:19px}.mar-t-19{margin-top:19px}.mar-b-19{margin-bottom:19px}.pad-20{padding:20px}.pad-l-20{padding-left:20px}.pad-r-20{padding-right:20px}.pad-t-20{padding-top:20px}.pad-b-20{padding-bottom:20px}.mar-20{margin:20px}.mar-l-20{margin-left:20px}.mar-r-20{margin-right:20px}.mar-t-20{margin-top:20px}.mar-b-20{margin-bottom:20px}.pad-21{padding:21px}.pad-l-21{padding-left:21px}.pad-r-21{padding-right:21px}.pad-t-21{padding-top:21px}.pad-b-21{padding-bottom:21px}.mar-21{margin:21px}.mar-l-21{margin-left:21px}.mar-r-21{margin-right:21px}.mar-t-21{margin-top:21px}.mar-b-21{margin-bottom:21px}.pad-22{padding:22px}.pad-l-22{padding-left:22px}.pad-r-22{padding-right:22px}.pad-t-22{padding-top:22px}.pad-b-22{padding-bottom:22px}.mar-22{margin:22px}.mar-l-22{margin-left:22px}.mar-r-22{margin-right:22px}.mar-t-22{margin-top:22px}.mar-b-22{margin-bottom:22px}.pad-23{padding:23px}.pad-l-23{padding-left:23px}.pad-r-23{padding-right:23px}.pad-t-23{padding-top:23px}.pad-b-23{padding-bottom:23px}.mar-23{margin:23px}.mar-l-23{margin-left:23px}.mar-r-23{margin-right:23px}.mar-t-23{margin-top:23px}.mar-b-23{margin-bottom:23px}.pad-24{padding:24px}.pad-l-24{padding-left:24px}.pad-r-24{padding-right:24px}.pad-t-24{padding-top:24px}.pad-b-24{padding-bottom:24px}.mar-24{margin:24px}.mar-l-24{margin-left:24px}.mar-r-24{margin-right:24px}.mar-t-24{margin-top:24px}.mar-b-24{margin-bottom:24px}.pad-25{padding:25px}.pad-l-25{padding-left:25px}.pad-r-25{padding-right:25px}.pad-t-25{padding-top:25px}.pad-b-25{padding-bottom:25px}.mar-25{margin:25px}.mar-l-25{margin-left:25px}.mar-r-25{margin-right:25px}.mar-t-25{margin-top:25px}.mar-b-25{margin-bottom:25px}.pad-26{padding:26px}.pad-l-26{padding-left:26px}.pad-r-26{padding-right:26px}.pad-t-26{padding-top:26px}.pad-b-26{padding-bottom:26px}.mar-26{margin:26px}.mar-l-26{margin-left:26px}.mar-r-26{margin-right:26px}.mar-t-26{margin-top:26px}.mar-b-26{margin-bottom:26px}.pad-27{padding:27px}.pad-l-27{padding-left:27px}.pad-r-27{padding-right:27px}.pad-t-27{padding-top:27px}.pad-b-27{padding-bottom:27px}.mar-27{margin:27px}.mar-l-27{margin-left:27px}.mar-r-27{margin-right:27px}.mar-t-27{margin-top:27px}.mar-b-27{margin-bottom:27px}.pad-28{padding:28px}.pad-l-28{padding-left:28px}.pad-r-28{padding-right:28px}.pad-t-28{padding-top:28px}.pad-b-28{padding-bottom:28px}.mar-28{margin:28px}.mar-l-28{margin-left:28px}.mar-r-28{margin-right:28px}.mar-t-28{margin-top:28px}.mar-b-28{margin-bottom:28px}.pad-29{padding:29px}.pad-l-29{padding-left:29px}.pad-r-29{padding-right:29px}.pad-t-29{padding-top:29px}.pad-b-29{padding-bottom:29px}.mar-29{margin:29px}.mar-l-29{margin-left:29px}.mar-r-29{margin-right:29px}.mar-t-29{margin-top:29px}.mar-b-29{margin-bottom:29px}.pad-30{padding:30px}.pad-l-30{padding-left:30px}.pad-r-30{padding-right:30px}.pad-t-30{padding-top:30px}.pad-b-30{padding-bottom:30px}.mar-30{margin:30px}.mar-l-30{margin-left:30px}.mar-r-30{margin-right:30px}.mar-t-30{margin-top:30px}.mar-b-30{margin-bottom:30px}.pad-31{padding:31px}.pad-l-31{padding-left:31px}.pad-r-31{padding-right:31px}.pad-t-31{padding-top:31px}.pad-b-31{padding-bottom:31px}.mar-31{margin:31px}.mar-l-31{margin-left:31px}.mar-r-31{margin-right:31px}.mar-t-31{margin-top:31px}.mar-b-31{margin-bottom:31px}.pad-32{padding:32px}.pad-l-32{padding-left:32px}.pad-r-32{padding-right:32px}.pad-t-32{padding-top:32px}.pad-b-32{padding-bottom:32px}.mar-32{margin:32px}.mar-l-32{margin-left:32px}.mar-r-32{margin-right:32px}.mar-t-32{margin-top:32px}.mar-b-32{margin-bottom:32px}.pad-33{padding:33px}.pad-l-33{padding-left:33px}.pad-r-33{padding-right:33px}.pad-t-33{padding-top:33px}.pad-b-33{padding-bottom:33px}.mar-33{margin:33px}.mar-l-33{margin-left:33px}.mar-r-33{margin-right:33px}.mar-t-33{margin-top:33px}.mar-b-33{margin-bottom:33px}.pad-34{padding:34px}.pad-l-34{padding-left:34px}.pad-r-34{padding-right:34px}.pad-t-34{padding-top:34px}.pad-b-34{padding-bottom:34px}.mar-34{margin:34px}.mar-l-34{margin-left:34px}.mar-r-34{margin-right:34px}.mar-t-34{margin-top:34px}.mar-b-34{margin-bottom:34px}.pad-35{padding:35px}.pad-l-35{padding-left:35px}.pad-r-35{padding-right:35px}.pad-t-35{padding-top:35px}.pad-b-35{padding-bottom:35px}.mar-35{margin:35px}.mar-l-35{margin-left:35px}.mar-r-35{margin-right:35px}.mar-t-35{margin-top:35px}.mar-b-35{margin-bottom:35px}.pad-36{padding:36px}.pad-l-36{padding-left:36px}.pad-r-36{padding-right:36px}.pad-t-36{padding-top:36px}.pad-b-36{padding-bottom:36px}.mar-36{margin:36px}.mar-l-36{margin-left:36px}.mar-r-36{margin-right:36px}.mar-t-36{margin-top:36px}.mar-b-36{margin-bottom:36px}.pad-37{padding:37px}.pad-l-37{padding-left:37px}.pad-r-37{padding-right:37px}.pad-t-37{padding-top:37px}.pad-b-37{padding-bottom:37px}.mar-37{margin:37px}.mar-l-37{margin-left:37px}.mar-r-37{margin-right:37px}.mar-t-37{margin-top:37px}.mar-b-37{margin-bottom:37px}.pad-38{padding:38px}.pad-l-38{padding-left:38px}.pad-r-38{padding-right:38px}.pad-t-38{padding-top:38px}.pad-b-38{padding-bottom:38px}.mar-38{margin:38px}.mar-l-38{margin-left:38px}.mar-r-38{margin-right:38px}.mar-t-38{margin-top:38px}.mar-b-38{margin-bottom:38px}.pad-39{padding:39px}.pad-l-39{padding-left:39px}.pad-r-39{padding-right:39px}.pad-t-39{padding-top:39px}.pad-b-39{padding-bottom:39px}.mar-39{margin:39px}.mar-l-39{margin-left:39px}.mar-r-39{margin-right:39px}.mar-t-39{margin-top:39px}.mar-b-39{margin-bottom:39px}.pad-40{padding:40px}.pad-l-40{padding-left:40px}.pad-r-40{padding-right:40px}.pad-t-40{padding-top:40px}.pad-b-40{padding-bottom:40px}.mar-40{margin:40px}.mar-l-40{margin-left:40px}.mar-r-40{margin-right:40px}.mar-t-40{margin-top:40px}.mar-b-40{margin-bottom:40px}.pad-41{padding:41px}.pad-l-41{padding-left:41px}.pad-r-41{padding-right:41px}.pad-t-41{padding-top:41px}.pad-b-41{padding-bottom:41px}.mar-41{margin:41px}.mar-l-41{margin-left:41px}.mar-r-41{margin-right:41px}.mar-t-41{margin-top:41px}.mar-b-41{margin-bottom:41px}.pad-42{padding:42px}.pad-l-42{padding-left:42px}.pad-r-42{padding-right:42px}.pad-t-42{padding-top:42px}.pad-b-42{padding-bottom:42px}.mar-42{margin:42px}.mar-l-42{margin-left:42px}.mar-r-42{margin-right:42px}.mar-t-42{margin-top:42px}.mar-b-42{margin-bottom:42px}.pad-43{padding:43px}.pad-l-43{padding-left:43px}.pad-r-43{padding-right:43px}.pad-t-43{padding-top:43px}.pad-b-43{padding-bottom:43px}.mar-43{margin:43px}.mar-l-43{margin-left:43px}.mar-r-43{margin-right:43px}.mar-t-43{margin-top:43px}.mar-b-43{margin-bottom:43px}.pad-44{padding:44px}.pad-l-44{padding-left:44px}.pad-r-44{padding-right:44px}.pad-t-44{padding-top:44px}.pad-b-44{padding-bottom:44px}.mar-44{margin:44px}.mar-l-44{margin-left:44px}.mar-r-44{margin-right:44px}.mar-t-44{margin-top:44px}.mar-b-44{margin-bottom:44px}.pad-45{padding:45px}.pad-l-45{padding-left:45px}.pad-r-45{padding-right:45px}.pad-t-45{padding-top:45px}.pad-b-45{padding-bottom:45px}.mar-45{margin:45px}.mar-l-45{margin-left:45px}.mar-r-45{margin-right:45px}.mar-t-45{margin-top:45px}.mar-b-45{margin-bottom:45px}.pad-46{padding:46px}.pad-l-46{padding-left:46px}.pad-r-46{padding-right:46px}.pad-t-46{padding-top:46px}.pad-b-46{padding-bottom:46px}.mar-46{margin:46px}.mar-l-46{margin-left:46px}.mar-r-46{margin-right:46px}.mar-t-46{margin-top:46px}.mar-b-46{margin-bottom:46px}.pad-47{padding:47px}.pad-l-47{padding-left:47px}.pad-r-47{padding-right:47px}.pad-t-47{padding-top:47px}.pad-b-47{padding-bottom:47px}.mar-47{margin:47px}.mar-l-47{margin-left:47px}.mar-r-47{margin-right:47px}.mar-t-47{margin-top:47px}.mar-b-47{margin-bottom:47px}.pad-48{padding:48px}.pad-l-48{padding-left:48px}.pad-r-48{padding-right:48px}.pad-t-48{padding-top:48px}.pad-b-48{padding-bottom:48px}.mar-48{margin:48px}.mar-l-48{margin-left:48px}.mar-r-48{margin-right:48px}.mar-t-48{margin-top:48px}.mar-b-48{margin-bottom:48px}.pad-49{padding:49px}.pad-l-49{padding-left:49px}.pad-r-49{padding-right:49px}.pad-t-49{padding-top:49px}.pad-b-49{padding-bottom:49px}.mar-49{margin:49px}.mar-l-49{margin-left:49px}.mar-r-49{margin-right:49px}.mar-t-49{margin-top:49px}.mar-b-49{margin-bottom:49px}.problem-info{float:right;width:300px}.sidebar-problem-list{z-index:50;box-shadow:0 10px 0 0 transparent,0 10px 0 0 transparent,10px 0 0 0 transparent,0 8px 8px 2px rgba(0,0,0,.5);background:#003252;position:relative;min-height:calc(100vh - 47px)}.sidebar-problem-list .sidebar-problem{width:100%;display:grid;grid-template-columns:32px 1fr;border-left-width:24px;border-left-style:solid;border-left-color:#0077c2;transition:background-color 200ms ease-in-out;transition:width 200ms ease-in-out;background-color:inherit;cursor:pointer}.sidebar-problem-list .sidebar-problem[correct]{border-left-color:lime}.sidebar-problem-list .sidebar-problem[wrong]{border-left-color:red}.sidebar-problem-list .sidebar-problem[selected],.sidebar-problem-list .sidebar-problem:hover{width:calc(100% + 24px)}.sidebar-problem-list .sidebar-problem[selected]{background-color:#42a5f5 !important}.sidebar-problem-list .sidebar-problem:hover{background-color:#128ef2}.sidebar-problem-list .sidebar-problem-letter{text-align:center;background-color:#001929;padding-top:20px;padding-bottom:20px;font-size:1.2rem}.sidebar-problem-list .sidebar-problem-name{text-align:left;font-size:1.2rem;padding-left:5px;padding-top:20px;padding-bottom:20px;margin-left:10px;margin-right:10px}.rect-auto,.c100.p100 .slice,.c100.p99 .slice,.c100.p98 .slice,.c100.p97 .slice,.c100.p96 .slice,.c100.p95 .slice,.c100.p94 .slice,.c100.p93 .slice,.c100.p92 .slice,.c100.p91 .slice,.c100.p90 .slice,.c100.p89 .slice,.c100.p88 .slice,.c100.p87 .slice,.c100.p86 .slice,.c100.p85 .slice,.c100.p84 .slice,.c100.p83 .slice,.c100.p82 .slice,.c100.p81 .slice,.c100.p80 .slice,.c100.p79 .slice,.c100.p78 .slice,.c100.p77 .slice,.c100.p76 .slice,.c100.p75 .slice,.c100.p74 .slice,.c100.p73 .slice,.c100.p72 .slice,.c100.p71 .slice,.c100.p70 .slice,.c100.p69 .slice,.c100.p68 .slice,.c100.p67 .slice,.c100.p66 .slice,.c100.p65 .slice,.c100.p64 .slice,.c100.p63 .slice,.c100.p62 .slice,.c100.p61 .slice,.c100.p60 .slice,.c100.p59 .slice,.c100.p58 .slice,.c100.p57 .slice,.c100.p56 .slice,.c100.p55 .slice,.c100.p54 .slice,.c100.p53 .slice,.c100.p52 .slice,.c100.p51 .slice{clip:rect(auto, auto, auto, auto)}.pie,.c100.p100 .fill,.c100.p99 .fill,.c100.p98 .fill,.c100.p97 .fill,.c100.p96 .fill,.c100.p95 .fill,.c100.p94 .fill,.c100.p93 .fill,.c100.p92 .fill,.c100.p91 .fill,.c100.p90 .fill,.c100.p89 .fill,.c100.p88 .fill,.c100.p87 .fill,.c100.p86 .fill,.c100.p85 .fill,.c100.p84 .fill,.c100.p83 .fill,.c100.p82 .fill,.c100.p81 .fill,.c100.p80 .fill,.c100.p79 .fill,.c100.p78 .fill,.c100.p77 .fill,.c100.p76 .fill,.c100.p75 .fill,.c100.p74 .fill,.c100.p73 .fill,.c100.p72 .fill,.c100.p71 .fill,.c100.p70 .fill,.c100.p69 .fill,.c100.p68 .fill,.c100.p67 .fill,.c100.p66 .fill,.c100.p65 .fill,.c100.p64 .fill,.c100.p63 .fill,.c100.p62 .fill,.c100.p61 .fill,.c100.p60 .fill,.c100.p59 .fill,.c100.p58 .fill,.c100.p57 .fill,.c100.p56 .fill,.c100.p55 .fill,.c100.p54 .fill,.c100.p53 .fill,.c100.p52 .fill,.c100.p51 .fill,.c100 .bar{position:absolute;border:.08em solid #307bbb;width:.84em;height:.84em;clip:rect(0em, 0.5em, 1em, 0em);border-radius:50%;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.pie-fill,.c100.p100 .fill,.c100.p100.bar:after,.c100.p99 .fill,.c100.p99.bar:after,.c100.p98 .fill,.c100.p98.bar:after,.c100.p97 .fill,.c100.p97.bar:after,.c100.p96 .fill,.c100.p96.bar:after,.c100.p95 .fill,.c100.p95.bar:after,.c100.p94 .fill,.c100.p94.bar:after,.c100.p93 .fill,.c100.p93.bar:after,.c100.p92 .fill,.c100.p92.bar:after,.c100.p91 .fill,.c100.p91.bar:after,.c100.p90 .fill,.c100.p90.bar:after,.c100.p89 .fill,.c100.p89.bar:after,.c100.p88 .fill,.c100.p88.bar:after,.c100.p87 .fill,.c100.p87.bar:after,.c100.p86 .fill,.c100.p86.bar:after,.c100.p85 .fill,.c100.p85.bar:after,.c100.p84 .fill,.c100.p84.bar:after,.c100.p83 .fill,.c100.p83.bar:after,.c100.p82 .fill,.c100.p82.bar:after,.c100.p81 .fill,.c100.p81.bar:after,.c100.p80 .fill,.c100.p80.bar:after,.c100.p79 .fill,.c100.p79.bar:after,.c100.p78 .fill,.c100.p78.bar:after,.c100.p77 .fill,.c100.p77.bar:after,.c100.p76 .fill,.c100.p76.bar:after,.c100.p75 .fill,.c100.p75.bar:after,.c100.p74 .fill,.c100.p74.bar:after,.c100.p73 .fill,.c100.p73.bar:after,.c100.p72 .fill,.c100.p72.bar:after,.c100.p71 .fill,.c100.p71.bar:after,.c100.p70 .fill,.c100.p70.bar:after,.c100.p69 .fill,.c100.p69.bar:after,.c100.p68 .fill,.c100.p68.bar:after,.c100.p67 .fill,.c100.p67.bar:after,.c100.p66 .fill,.c100.p66.bar:after,.c100.p65 .fill,.c100.p65.bar:after,.c100.p64 .fill,.c100.p64.bar:after,.c100.p63 .fill,.c100.p63.bar:after,.c100.p62 .fill,.c100.p62.bar:after,.c100.p61 .fill,.c100.p61.bar:after,.c100.p60 .fill,.c100.p60.bar:after,.c100.p59 .fill,.c100.p59.bar:after,.c100.p58 .fill,.c100.p58.bar:after,.c100.p57 .fill,.c100.p57.bar:after,.c100.p56 .fill,.c100.p56.bar:after,.c100.p55 .fill,.c100.p55.bar:after,.c100.p54 .fill,.c100.p54.bar:after,.c100.p53 .fill,.c100.p53.bar:after,.c100.p52 .fill,.c100.p52.bar:after,.c100.p51 .fill,.c100.p51.bar:after{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100{position:relative;font-size:120px;width:1em;height:1em;border-radius:50%;float:left;background-color:#ccc}.c100 *,.c100 *:before,.c100 *:after{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.c100.center{float:none;margin:0 auto}.c100.big{font-size:240px}.c100.small{font-size:80px}.c100>span{position:absolute;width:100%;z-index:1;left:0;top:0;width:5em;line-height:5em;font-size:.2em;color:#ccc;display:block;text-align:center;white-space:nowrap;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.c100:after{position:absolute;top:.08em;left:.08em;display:block;content:" ";border-radius:50%;background-color:#f5f5f5;width:.84em;height:.84em;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-in;-moz-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.c100 .slice{position:absolute;width:1em;height:1em;clip:rect(0em, 1em, 1em, 0.5em)}.c100.p1 .bar{-webkit-transform:rotate(3.6deg);-moz-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);-o-transform:rotate(3.6deg);transform:rotate(3.6deg)}.c100.p2 .bar{-webkit-transform:rotate(7.2deg);-moz-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);-o-transform:rotate(7.2deg);transform:rotate(7.2deg)}.c100.p3 .bar{-webkit-transform:rotate(10.8deg);-moz-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);-o-transform:rotate(10.8deg);transform:rotate(10.8deg)}.c100.p4 .bar{-webkit-transform:rotate(14.4deg);-moz-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);-o-transform:rotate(14.4deg);transform:rotate(14.4deg)}.c100.p5 .bar{-webkit-transform:rotate(18deg);-moz-transform:rotate(18deg);-ms-transform:rotate(18deg);-o-transform:rotate(18deg);transform:rotate(18deg)}.c100.p6 .bar{-webkit-transform:rotate(21.6deg);-moz-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);-o-transform:rotate(21.6deg);transform:rotate(21.6deg)}.c100.p7 .bar{-webkit-transform:rotate(25.2deg);-moz-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);-o-transform:rotate(25.2deg);transform:rotate(25.2deg)}.c100.p8 .bar{-webkit-transform:rotate(28.8deg);-moz-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);-o-transform:rotate(28.8deg);transform:rotate(28.8deg)}.c100.p9 .bar{-webkit-transform:rotate(32.4deg);-moz-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);-o-transform:rotate(32.4deg);transform:rotate(32.4deg)}.c100.p10 .bar{-webkit-transform:rotate(36deg);-moz-transform:rotate(36deg);-ms-transform:rotate(36deg);-o-transform:rotate(36deg);transform:rotate(36deg)}.c100.p11 .bar{-webkit-transform:rotate(39.6deg);-moz-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);-o-transform:rotate(39.6deg);transform:rotate(39.6deg)}.c100.p12 .bar{-webkit-transform:rotate(43.2deg);-moz-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);-o-transform:rotate(43.2deg);transform:rotate(43.2deg)}.c100.p13 .bar{-webkit-transform:rotate(46.8deg);-moz-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);-o-transform:rotate(46.8deg);transform:rotate(46.8deg)}.c100.p14 .bar{-webkit-transform:rotate(50.4deg);-moz-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);-o-transform:rotate(50.4deg);transform:rotate(50.4deg)}.c100.p15 .bar{-webkit-transform:rotate(54deg);-moz-transform:rotate(54deg);-ms-transform:rotate(54deg);-o-transform:rotate(54deg);transform:rotate(54deg)}.c100.p16 .bar{-webkit-transform:rotate(57.6deg);-moz-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);-o-transform:rotate(57.6deg);transform:rotate(57.6deg)}.c100.p17 .bar{-webkit-transform:rotate(61.2deg);-moz-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);-o-transform:rotate(61.2deg);transform:rotate(61.2deg)}.c100.p18 .bar{-webkit-transform:rotate(64.8deg);-moz-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);-o-transform:rotate(64.8deg);transform:rotate(64.8deg)}.c100.p19 .bar{-webkit-transform:rotate(68.4deg);-moz-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);-o-transform:rotate(68.4deg);transform:rotate(68.4deg)}.c100.p20 .bar{-webkit-transform:rotate(72deg);-moz-transform:rotate(72deg);-ms-transform:rotate(72deg);-o-transform:rotate(72deg);transform:rotate(72deg)}.c100.p21 .bar{-webkit-transform:rotate(75.6deg);-moz-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);-o-transform:rotate(75.6deg);transform:rotate(75.6deg)}.c100.p22 .bar{-webkit-transform:rotate(79.2deg);-moz-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);-o-transform:rotate(79.2deg);transform:rotate(79.2deg)}.c100.p23 .bar{-webkit-transform:rotate(82.8deg);-moz-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);-o-transform:rotate(82.8deg);transform:rotate(82.8deg)}.c100.p24 .bar{-webkit-transform:rotate(86.4deg);-moz-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);-o-transform:rotate(86.4deg);transform:rotate(86.4deg)}.c100.p25 .bar{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.c100.p26 .bar{-webkit-transform:rotate(93.6deg);-moz-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);-o-transform:rotate(93.6deg);transform:rotate(93.6deg)}.c100.p27 .bar{-webkit-transform:rotate(97.2deg);-moz-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);-o-transform:rotate(97.2deg);transform:rotate(97.2deg)}.c100.p28 .bar{-webkit-transform:rotate(100.8deg);-moz-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);-o-transform:rotate(100.8deg);transform:rotate(100.8deg)}.c100.p29 .bar{-webkit-transform:rotate(104.4deg);-moz-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);-o-transform:rotate(104.4deg);transform:rotate(104.4deg)}.c100.p30 .bar{-webkit-transform:rotate(108deg);-moz-transform:rotate(108deg);-ms-transform:rotate(108deg);-o-transform:rotate(108deg);transform:rotate(108deg)}.c100.p31 .bar{-webkit-transform:rotate(111.6deg);-moz-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);-o-transform:rotate(111.6deg);transform:rotate(111.6deg)}.c100.p32 .bar{-webkit-transform:rotate(115.2deg);-moz-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);-o-transform:rotate(115.2deg);transform:rotate(115.2deg)}.c100.p33 .bar{-webkit-transform:rotate(118.8deg);-moz-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);-o-transform:rotate(118.8deg);transform:rotate(118.8deg)}.c100.p34 .bar{-webkit-transform:rotate(122.4deg);-moz-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);-o-transform:rotate(122.4deg);transform:rotate(122.4deg)}.c100.p35 .bar{-webkit-transform:rotate(126deg);-moz-transform:rotate(126deg);-ms-transform:rotate(126deg);-o-transform:rotate(126deg);transform:rotate(126deg)}.c100.p36 .bar{-webkit-transform:rotate(129.6deg);-moz-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);-o-transform:rotate(129.6deg);transform:rotate(129.6deg)}.c100.p37 .bar{-webkit-transform:rotate(133.2deg);-moz-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);-o-transform:rotate(133.2deg);transform:rotate(133.2deg)}.c100.p38 .bar{-webkit-transform:rotate(136.8deg);-moz-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);-o-transform:rotate(136.8deg);transform:rotate(136.8deg)}.c100.p39 .bar{-webkit-transform:rotate(140.4deg);-moz-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);-o-transform:rotate(140.4deg);transform:rotate(140.4deg)}.c100.p40 .bar{-webkit-transform:rotate(144deg);-moz-transform:rotate(144deg);-ms-transform:rotate(144deg);-o-transform:rotate(144deg);transform:rotate(144deg)}.c100.p41 .bar{-webkit-transform:rotate(147.6deg);-moz-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);-o-transform:rotate(147.6deg);transform:rotate(147.6deg)}.c100.p42 .bar{-webkit-transform:rotate(151.2deg);-moz-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);-o-transform:rotate(151.2deg);transform:rotate(151.2deg)}.c100.p43 .bar{-webkit-transform:rotate(154.8deg);-moz-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);-o-transform:rotate(154.8deg);transform:rotate(154.8deg)}.c100.p44 .bar{-webkit-transform:rotate(158.4deg);-moz-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);-o-transform:rotate(158.4deg);transform:rotate(158.4deg)}.c100.p45 .bar{-webkit-transform:rotate(162deg);-moz-transform:rotate(162deg);-ms-transform:rotate(162deg);-o-transform:rotate(162deg);transform:rotate(162deg)}.c100.p46 .bar{-webkit-transform:rotate(165.6deg);-moz-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);-o-transform:rotate(165.6deg);transform:rotate(165.6deg)}.c100.p47 .bar{-webkit-transform:rotate(169.2deg);-moz-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);-o-transform:rotate(169.2deg);transform:rotate(169.2deg)}.c100.p48 .bar{-webkit-transform:rotate(172.8deg);-moz-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);-o-transform:rotate(172.8deg);transform:rotate(172.8deg)}.c100.p49 .bar{-webkit-transform:rotate(176.4deg);-moz-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);-o-transform:rotate(176.4deg);transform:rotate(176.4deg)}.c100.p50 .bar{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100.p51 .bar{-webkit-transform:rotate(183.6deg);-moz-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);-o-transform:rotate(183.6deg);transform:rotate(183.6deg)}.c100.p52 .bar{-webkit-transform:rotate(187.2deg);-moz-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);-o-transform:rotate(187.2deg);transform:rotate(187.2deg)}.c100.p53 .bar{-webkit-transform:rotate(190.8deg);-moz-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);-o-transform:rotate(190.8deg);transform:rotate(190.8deg)}.c100.p54 .bar{-webkit-transform:rotate(194.4deg);-moz-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);-o-transform:rotate(194.4deg);transform:rotate(194.4deg)}.c100.p55 .bar{-webkit-transform:rotate(198deg);-moz-transform:rotate(198deg);-ms-transform:rotate(198deg);-o-transform:rotate(198deg);transform:rotate(198deg)}.c100.p56 .bar{-webkit-transform:rotate(201.6deg);-moz-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);-o-transform:rotate(201.6deg);transform:rotate(201.6deg)}.c100.p57 .bar{-webkit-transform:rotate(205.2deg);-moz-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);-o-transform:rotate(205.2deg);transform:rotate(205.2deg)}.c100.p58 .bar{-webkit-transform:rotate(208.8deg);-moz-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);-o-transform:rotate(208.8deg);transform:rotate(208.8deg)}.c100.p59 .bar{-webkit-transform:rotate(212.4deg);-moz-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);-o-transform:rotate(212.4deg);transform:rotate(212.4deg)}.c100.p60 .bar{-webkit-transform:rotate(216deg);-moz-transform:rotate(216deg);-ms-transform:rotate(216deg);-o-transform:rotate(216deg);transform:rotate(216deg)}.c100.p61 .bar{-webkit-transform:rotate(219.6deg);-moz-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);-o-transform:rotate(219.6deg);transform:rotate(219.6deg)}.c100.p62 .bar{-webkit-transform:rotate(223.2deg);-moz-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);-o-transform:rotate(223.2deg);transform:rotate(223.2deg)}.c100.p63 .bar{-webkit-transform:rotate(226.8deg);-moz-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);-o-transform:rotate(226.8deg);transform:rotate(226.8deg)}.c100.p64 .bar{-webkit-transform:rotate(230.4deg);-moz-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);-o-transform:rotate(230.4deg);transform:rotate(230.4deg)}.c100.p65 .bar{-webkit-transform:rotate(234deg);-moz-transform:rotate(234deg);-ms-transform:rotate(234deg);-o-transform:rotate(234deg);transform:rotate(234deg)}.c100.p66 .bar{-webkit-transform:rotate(237.6deg);-moz-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);-o-transform:rotate(237.6deg);transform:rotate(237.6deg)}.c100.p67 .bar{-webkit-transform:rotate(241.2deg);-moz-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);-o-transform:rotate(241.2deg);transform:rotate(241.2deg)}.c100.p68 .bar{-webkit-transform:rotate(244.8deg);-moz-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);-o-transform:rotate(244.8deg);transform:rotate(244.8deg)}.c100.p69 .bar{-webkit-transform:rotate(248.4deg);-moz-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);-o-transform:rotate(248.4deg);transform:rotate(248.4deg)}.c100.p70 .bar{-webkit-transform:rotate(252deg);-moz-transform:rotate(252deg);-ms-transform:rotate(252deg);-o-transform:rotate(252deg);transform:rotate(252deg)}.c100.p71 .bar{-webkit-transform:rotate(255.6deg);-moz-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);-o-transform:rotate(255.6deg);transform:rotate(255.6deg)}.c100.p72 .bar{-webkit-transform:rotate(259.2deg);-moz-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);-o-transform:rotate(259.2deg);transform:rotate(259.2deg)}.c100.p73 .bar{-webkit-transform:rotate(262.8deg);-moz-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);-o-transform:rotate(262.8deg);transform:rotate(262.8deg)}.c100.p74 .bar{-webkit-transform:rotate(266.4deg);-moz-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);-o-transform:rotate(266.4deg);transform:rotate(266.4deg)}.c100.p75 .bar{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.c100.p76 .bar{-webkit-transform:rotate(273.6deg);-moz-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);-o-transform:rotate(273.6deg);transform:rotate(273.6deg)}.c100.p77 .bar{-webkit-transform:rotate(277.2deg);-moz-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);-o-transform:rotate(277.2deg);transform:rotate(277.2deg)}.c100.p78 .bar{-webkit-transform:rotate(280.8deg);-moz-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);-o-transform:rotate(280.8deg);transform:rotate(280.8deg)}.c100.p79 .bar{-webkit-transform:rotate(284.4deg);-moz-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);-o-transform:rotate(284.4deg);transform:rotate(284.4deg)}.c100.p80 .bar{-webkit-transform:rotate(288deg);-moz-transform:rotate(288deg);-ms-transform:rotate(288deg);-o-transform:rotate(288deg);transform:rotate(288deg)}.c100.p81 .bar{-webkit-transform:rotate(291.6deg);-moz-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);-o-transform:rotate(291.6deg);transform:rotate(291.6deg)}.c100.p82 .bar{-webkit-transform:rotate(295.2deg);-moz-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);-o-transform:rotate(295.2deg);transform:rotate(295.2deg)}.c100.p83 .bar{-webkit-transform:rotate(298.8deg);-moz-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);-o-transform:rotate(298.8deg);transform:rotate(298.8deg)}.c100.p84 .bar{-webkit-transform:rotate(302.4deg);-moz-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);-o-transform:rotate(302.4deg);transform:rotate(302.4deg)}.c100.p85 .bar{-webkit-transform:rotate(306deg);-moz-transform:rotate(306deg);-ms-transform:rotate(306deg);-o-transform:rotate(306deg);transform:rotate(306deg)}.c100.p86 .bar{-webkit-transform:rotate(309.6deg);-moz-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);-o-transform:rotate(309.6deg);transform:rotate(309.6deg)}.c100.p87 .bar{-webkit-transform:rotate(313.2deg);-moz-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);-o-transform:rotate(313.2deg);transform:rotate(313.2deg)}.c100.p88 .bar{-webkit-transform:rotate(316.8deg);-moz-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);-o-transform:rotate(316.8deg);transform:rotate(316.8deg)}.c100.p89 .bar{-webkit-transform:rotate(320.4deg);-moz-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);-o-transform:rotate(320.4deg);transform:rotate(320.4deg)}.c100.p90 .bar{-webkit-transform:rotate(324deg);-moz-transform:rotate(324deg);-ms-transform:rotate(324deg);-o-transform:rotate(324deg);transform:rotate(324deg)}.c100.p91 .bar{-webkit-transform:rotate(327.6deg);-moz-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);-o-transform:rotate(327.6deg);transform:rotate(327.6deg)}.c100.p92 .bar{-webkit-transform:rotate(331.2deg);-moz-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);-o-transform:rotate(331.2deg);transform:rotate(331.2deg)}.c100.p93 .bar{-webkit-transform:rotate(334.8deg);-moz-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);-o-transform:rotate(334.8deg);transform:rotate(334.8deg)}.c100.p94 .bar{-webkit-transform:rotate(338.4deg);-moz-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);-o-transform:rotate(338.4deg);transform:rotate(338.4deg)}.c100.p95 .bar{-webkit-transform:rotate(342deg);-moz-transform:rotate(342deg);-ms-transform:rotate(342deg);-o-transform:rotate(342deg);transform:rotate(342deg)}.c100.p96 .bar{-webkit-transform:rotate(345.6deg);-moz-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);-o-transform:rotate(345.6deg);transform:rotate(345.6deg)}.c100.p97 .bar{-webkit-transform:rotate(349.2deg);-moz-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);-o-transform:rotate(349.2deg);transform:rotate(349.2deg)}.c100.p98 .bar{-webkit-transform:rotate(352.8deg);-moz-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);-o-transform:rotate(352.8deg);transform:rotate(352.8deg)}.c100.p99 .bar{-webkit-transform:rotate(356.4deg);-moz-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);-o-transform:rotate(356.4deg);transform:rotate(356.4deg)}.c100.p100 .bar{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}.c100:hover{cursor:default}.c100:hover>span{width:3.33em;line-height:3.33em;font-size:.3em;color:#307bbb}.c100:hover:after{top:.04em;left:.04em;width:.92em;height:.92em}.c100.dark{background-color:#0077c2}.c100.dark .bar,.c100.dark .fill{border-color:#80d6ff !important}.c100.dark>span{color:#0077c2}.c100.dark:after{background-color:#111}.c100.dark:hover>span{color:#80d6ff}.c100.error{background-color:#700}.c100.error .bar,.c100.error .fill{border-color:#d00 !important}.c100.error:hover>span{color:#d00}.c100.error>span{color:#700}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}h1{width:100%;margin-top:12px;text-align:center}body{font-family:sans-serif;background:url(/static/imgs/grain_background.png);background-color:#111;background-repeat:repeat;color:#fff}button,a.button{box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);border:1px solid #0077c2;background-color:#0077c2;color:#fff;font-size:1rem;padding:.75rem;margin-bottom:12px;display:inline-block;cursor:pointer}button+button,button+a.button,a.button+button,a.button+a.button{margin-left:12px}input,textarea,select{border:none;background-color:#111;color:#fff;font-size:1rem;display:inline-block;padding:.25rem}input::placeholder,textarea::placeholder,select::placeholder{color:#999}input[type=submit]{cursor:pointer;background-color:#0077c2}form input,form textarea,form select{z-index:20;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);padding:.75rem;margin-bottom:12px;width:100%}form textarea{background-color:#111;height:50vh}form label{z-index:30;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);background-color:#0077c2;width:100%;line-height:44px;display:inline-block;padding:4px 12px 4px;margin-top:12px}.error-list ul li{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);list-style:none;background-color:#998100;padding:.5rem;margin-bottom:.5rem}.error-list ul li.success{background-color:#0077c2}.split{display:grid;grid-template-columns:1fr 1fr}.test-case{outline:none;box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);resize:none;border:none;height:200px;padding:8px;background-color:#111;color:#fff}.test-case:first-child{border-right:2px solid #0077c2}.header-line,.option-line{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#0077c2;padding:4px 12px 4px;margin-top:12px;display:inline-block;width:100%}.header-line>*,.option-line>*{line-height:44px;display:inline-block}.option-line{display:grid;grid-template-columns:1fr 1fr}.option-line>*:last-child{text-align:right}.button-list>*{margin:0px 8px 0px;background-color:#42a5f5;box-shadow:none;border:none;color:#fff;font-size:1rem;line-height:1.2rem;padding:4px 12px 4px;display:inline-block;cursor:pointer}.sidebar-page-container{display:grid;grid-template-columns:minmax(250px, 1fr) 5fr}#code-editor{position:relative;width:100%;min-height:24rem}/*# sourceMappingURL=core.css.map */
index 87848ca0b82fd3ec52ed5fee6ef5e78dbf9f37b2..be4a04308dc3a6e83c37ea63023c9b0d354b0b3e 100644 (file)
@@ -1 +1 @@
-{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_info.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA,QACC,cACA,WACA,WCIc,QDHd,OCoBe,KDnBf,kBAEA,2CAEA,aACA,kCAEA,qBACC,iBACA,kBAEA,yBACC,4BACA,eAIF,WACC,cACA,kBACA,YAEA,gBACC,SACA,qBACA,eAEA,eAEA,gBACA,iBACA,kBACA,mBACA,gBAEA,cACA,iBClCY,QDoCZ,qBAEA,+CACC,gCACA,WE/CJ,qBACC,WACA,iBAGD,OACC,YAGD,MACC,WAGD,QACC,kBAGD,EACC,qBACA,cAIA,SACC,aACA,qCAEA,uBACC,kBAGD,sBACC,iBATF,SACC,aACA,qCAEA,uBACC,kBAGD,sBACC,iBATF,SACC,aACA,qCAEA,uBACC,kBAGD,sBACC,iBAKH,UACC,aACA,8BAGC,wBACC,gBAGD,uBACC,iBAKH,ICnDI,2CDqDH,eAGC,gBAEC,kBAIF,kBAGC,2BAIF,kBACC,aACA,gCAGD,cACC,wBAEA,oDACA,oDACA,oDACA,oDACA,oDACA,oDAEY,4CDhFH,QCiFS,kDDhFH,QCiFE,iDDhFH,QCkFA,8CDhFH,KCiFS,oDDhFH,QCiFE,mDDhFH,QCkFN,0CDhFH,KCiFS,gDDhFH,KCiFE,+CDhFH,KCmFb,KCjGI,2CDmGH,sBAEA,sBACC,sBAIF,KACC,UAGD,MACC,WAIA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BE9HD,cACI,YACA,YCFJ,sBACC,WACA,6GACA,mBACA,kBACA,8BAEA,uCACC,WAEA,aACA,+BAEA,uBACA,wBACA,kBJRa,QIUb,8CACA,mCACA,yBAEA,eAEA,gDACC,uBAGD,8CACC,sBAGD,8FACC,wBAGD,iDACC,oCAGD,6CACC,yBAIF,8CACC,kBACA,yBACA,iBACA,oBACA,iBAGD,4CACC,gBACA,iBAEA,iBACA,iBACA,oBAEA,iBACA,kBCvDF,81BACI,kCAGJ,izBACI,kBACA,2BACA,YACA,aACA,gCACA,kBCNA,+BACA,4BACA,2BACA,0BACA,uBDMJ,oxDCVI,iCACA,8BACA,6BACA,4BACA,yBDWJ,MAMI,kBACA,gBACA,UACA,WACA,kBACA,WACA,iBEjCc,KFsBd,qCCRA,mBDWwB,YCVxB,gBDUwB,YCTxB,WDSwB,YAUxB,aACI,WACA,cAGJ,UACI,gBAGJ,YACI,eAGJ,WACI,kBACA,WACA,UACA,OACA,MACA,UACA,gBACA,eACA,MEzDU,KF0DV,cACA,kBACA,mBCzCJ,4BD0CiC,ICzCjC,yBDyCiC,ICxCjC,uBDwCiC,ICvCjC,oBDuCiC,ICnCjC,4BDoCiC,ICnCjC,yBDmCiC,IClCjC,uBDkCiC,ICjCjC,oBDiCiC,IC7BjC,mCD8BwC,SC7BxC,gCD6BwC,SC5BxC,8BD4BwC,SC3BxC,2BD2BwC,SAGxC,YACI,kBACA,IExEO,MFyEP,KEzEO,MF0EP,cACA,YACA,kBACA,iBExEG,QFyEH,YACA,aCxDJ,4BDyDiC,ICxDjC,yBDwDiC,ICvDjC,uBDuDiC,ICtDjC,oBDsDiC,IClDjC,4BDmDiC,IClDjC,yBDkDiC,ICjDjC,uBDiDiC,IChDjC,oBDgDiC,IC5CjC,mCD6CwC,QC5CxC,gCD4CwC,QC3CxC,8BD2CwC,QC1CxC,2BD0CwC,QAGxC,aACI,kBACA,UACA,WACA,gCAuBA,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,gBCtGJ,iCACA,8BACA,6BACA,4BACA,yBDwGA,YACI,eACA,iBACI,aACA,mBACA,eACA,MEzHI,QF2HR,kBACI,IE9HS,MF+HT,KE/HS,MFgIT,YACA,aAIR,WACI,iBLhIO,QKiIP,iCAEI,gCAEJ,gBACI,MLtIG,QKwIP,iBACI,iBErII,KFwIJ,sBACI,ML9IA,QKkJZ,YACF,iBL1IW,KK2IL,mCAEI,6BAGA,uBACI,MLnJR,KKsJN,iBACC,MLrJU,KQPb,EACC,SACA,UACA,sBAGD,MACC,eAGD,GACC,WACA,gBACA,kBAGD,KACC,uBAEA,kDACA,sBACA,yBACA,WAGD,gBNhCI,2CMkCH,yBACA,iBR7Bc,QQ8Bd,WAEA,eACA,eACA,mBACA,qBAEA,eAEA,gEACC,iBAIF,sBACC,YACA,sBACA,WAEA,eACA,qBACA,eAEA,6DACC,WAIF,mBACC,eACA,iBR5Dc,QQgEd,qCACC,WNvEE,2CM0EF,eACA,mBACA,WAGD,cACC,sBACA,YAGD,WACC,WNrFE,2CMuFF,iBRjFa,QQkFb,WACA,iBAEA,qBACA,qBACA,gBAOD,kBNpGG,2CMuGF,gBACA,iBR9Fe,QQ+Ff,cACA,oBAEA,0BACC,iBRvGY,QQ4Gf,OACC,aACA,8BAGD,WAKC,aN5HG,2CM+HH,YACA,YAEA,aACA,YACA,sBACA,MRtIO,KQyHP,uBACC,+BAeF,0BNxII,2CM2IH,iBRrIc,QQsId,qBACA,gBACA,qBACA,WAEA,8BACC,iBACA,qBAIF,aAGC,aACA,8BAEA,0BACC,iBAKD,eACC,mBACA,iBRjKQ,QQkKR,gBACA,YACA,WAEA,eACA,mBACA,qBACA,qBAEA,eAIF,wBACC,aACA,6CAGD,aACC,kBACA,WACA","file":"core.css"}
\ No newline at end of file
+{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_info.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA,QACC,cACA,WACA,WCIc,QDHd,OCoBe,KDnBf,kBAEA,2CAEA,aACA,kCAEA,qBACC,iBACA,kBAEA,yBACC,4BACA,eAIF,WACC,cACA,kBACA,YAEA,gBACC,SACA,qBACA,eAEA,eAEA,gBACA,iBACA,kBACA,mBACA,gBAEA,cACA,iBClCY,QDoCZ,qBAEA,+CACC,gCACA,WE/CJ,qBACC,WACA,iBAGD,OACC,YAGD,MACC,WAGD,QACC,kBAGD,EACC,qBACA,cAIA,SACC,aACA,qCAGC,uBACC,kBAGD,sBACC,iBAVH,SACC,aACA,qCAFD,SACC,aACA,qCAcF,UACC,aACA,8BAGC,wBACC,gBAGD,uBACC,iBAOD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAKH,IC9DI,2CDgEH,eAGC,gBAEC,kBAIF,kBAGC,2BAIF,kBACC,aACA,gCAGD,cACC,wBAEA,oDACA,oDACA,oDACA,oDACA,oDACA,oDAEY,4CD3FH,QC4FS,kDD3FH,QC4FE,iDD3FH,QC6FA,8CD3FH,KC4FS,oDD3FH,QC4FE,mDD3FH,QC6FJ,iDAEF,0CD7FH,KC8FS,gDD7FH,KC8FE,+CD7FH,KCgGb,KC9GI,2CDgHH,sBAEA,sBACC,sBAIF,KACC,UAGD,MACC,WAIA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BE3ID,cACI,YACA,YCFJ,sBACC,WACA,6GACA,mBACA,kBACA,8BAEA,uCACC,WAEA,aACA,+BAEA,uBACA,wBACA,kBJRa,QIUb,8CACA,mCACA,yBAEA,eAEA,gDACC,uBAGD,8CACC,sBAGD,8FACC,wBAGD,iDACC,oCAGD,6CACC,yBAIF,8CACC,kBACA,yBACA,iBACA,oBACA,iBAGD,4CACC,gBACA,iBAEA,iBACA,iBACA,oBAEA,iBACA,kBCvDF,81BACI,kCAGJ,izBACI,kBACA,2BACA,YACA,aACA,gCACA,kBCNA,+BACA,4BACA,2BACA,0BACA,uBDMJ,oxDCVI,iCACA,8BACA,6BACA,4BACA,yBDWJ,MAMI,kBACA,gBACA,UACA,WACA,kBACA,WACA,iBEjCc,KFsBd,qCCRA,mBDWwB,YCVxB,gBDUwB,YCTxB,WDSwB,YAUxB,aACI,WACA,cAGJ,UACI,gBAGJ,YACI,eAGJ,WACI,kBACA,WACA,UACA,OACA,MACA,UACA,gBACA,eACA,MEzDU,KF0DV,cACA,kBACA,mBCzCJ,4BD0CiC,ICzCjC,yBDyCiC,ICxCjC,uBDwCiC,ICvCjC,oBDuCiC,ICnCjC,4BDoCiC,ICnCjC,yBDmCiC,IClCjC,uBDkCiC,ICjCjC,oBDiCiC,IC7BjC,mCD8BwC,SC7BxC,gCD6BwC,SC5BxC,8BD4BwC,SC3BxC,2BD2BwC,SAGxC,YACI,kBACA,IExEO,MFyEP,KEzEO,MF0EP,cACA,YACA,kBACA,iBExEG,QFyEH,YACA,aCxDJ,4BDyDiC,ICxDjC,yBDwDiC,ICvDjC,uBDuDiC,ICtDjC,oBDsDiC,IClDjC,4BDmDiC,IClDjC,yBDkDiC,ICjDjC,uBDiDiC,IChDjC,oBDgDiC,IC5CjC,mCD6CwC,QC5CxC,gCD4CwC,QC3CxC,8BD2CwC,QC1CxC,2BD0CwC,QAGxC,aACI,kBACA,UACA,WACA,gCAuBA,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,gBCtGJ,iCACA,8BACA,6BACA,4BACA,yBDwGA,YACI,eACA,iBACI,aACA,mBACA,eACA,MEzHI,QF2HR,kBACI,IE9HS,MF+HT,KE/HS,MFgIT,YACA,aAIR,WACI,iBLhIO,QKiIP,iCAEI,gCAEJ,gBACI,MLtIG,QKwIP,iBACI,iBErII,KFwIJ,sBACI,ML9IA,QKkJZ,YACF,iBL1IW,KK2IL,mCAEI,6BAGA,uBACI,MLnJR,KKsJN,iBACC,MLrJU,KQPb,EACC,SACA,UACA,sBAGD,MACC,eAGD,GACC,WACA,gBACA,kBAGD,KACC,uBAEA,kDACA,sBACA,yBACA,WAGD,gBNhCI,2CMkCH,yBACA,iBR7Bc,QQ8Bd,WAEA,eACA,eACA,mBACA,qBAEA,eAEA,gEACC,iBAIF,sBACC,YACA,sBACA,WAEA,eACA,qBACA,eAEA,6DACC,WAIF,mBACC,eACA,iBR5Dc,QQgEd,qCACC,WNvEE,2CM0EF,eACA,mBACA,WAGD,cACC,sBACA,YAGD,WACC,WNrFE,2CMuFF,iBRjFa,QQkFb,WACA,iBAEA,qBACA,qBACA,gBAOD,kBNpGG,2CMuGF,gBACA,iBR9Fe,QQ+Ff,cACA,oBAEA,0BACC,iBRvGY,QQ4Gf,OACC,aACA,8BAGD,WAKC,aN5HG,2CM+HH,YACA,YAEA,aACA,YACA,sBACA,MRtIO,KQyHP,uBACC,+BAeF,0BNxII,2CM2IH,iBRrIc,QQsId,qBACA,gBACA,qBACA,WAEA,8BACC,iBACA,qBAIF,aAGC,aACA,8BAEA,0BACC,iBAKD,eACC,mBACA,iBRjKQ,QQkKR,gBACA,YACA,WAEA,eACA,mBACA,qBACA,qBAEA,eAIF,wBACC,aACA,6CAGD,aACC,kBACA,WACA","file":"core.css"}
\ No newline at end of file
index 3529949632196205f116673950226b4c5304b2d5..a6a3edcbbc8277ff7ef6d7bc62ac6d891d680b70 100644 (file)
@@ -2,18 +2,20 @@
 (function() {
   $(document).ready(function() {
     return $('piechart').each(function(_, p) {
-      var $p, anim, canvas, ctx, fill_perc, i, j, ref, segments, total;
+      var $p, anim, canvas, ctx, fill_perc, half_size, i, j, ref, segments, size, total;
       $p = $(p);
       segments = $p.attr('data-segments');
+      size = ($p.attr('data-size')) || 256;
       canvas = document.createElement("canvas");
-      canvas.width = 256;
-      canvas.height = 256;
+      canvas.width = size;
+      canvas.height = size;
       $p.append(canvas);
       ctx = canvas.getContext("2d");
       total = 0;
       for (i = j = 1, ref = segments; (1 <= ref ? j <= ref : j >= ref); i = 1 <= ref ? ++j : --j) {
         total += parseInt($p.attr(`data-segment-${i}`));
       }
+      half_size = size / 2;
       fill_perc = 0.01;
       anim = function() {
         var acc, color, k, ratio, ref1;
@@ -22,8 +24,8 @@
           ratio = (parseInt($p.attr(`data-segment-${i}`))) * fill_perc;
           color = $p.attr(`data-segment-${i}-color`);
           ctx.beginPath();
-          ctx.moveTo(128, 128);
-          ctx.arc(128, 128, 128, -2 * Math.PI * (ratio + acc) / total, -2 * Math.PI * acc / total);
+          ctx.moveTo(half_size, half_size);
+          ctx.arc(half_size, half_size, half_size, -2 * Math.PI * (ratio + acc) / total, -2 * Math.PI * acc / total);
           ctx.closePath();
           ctx.fillStyle = color;
           ctx.fill();
index 3b63c63c58a75db4241540b4fb2f4c49d1eee33a..251caefa2bd8cbc6c46225194d5627bb3d3f09d8 100644 (file)
@@ -6,8 +6,8 @@
     "coffee/pie_chart.coffee"
   ],
   "names": [],
-  "mappings": ";AAAA;EAAA,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;WACd,CAAA,CAAE,UAAF,CAAa,CAAC,IAAd,CAAmB,QAAA,CAAC,CAAD,EAAI,CAAJ,CAAA;AACf,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,QAAA,EAAA;MAAA,EAAA,GAAK,CAAA,CAAE,CAAF;MACL,QAAA,GAAW,EAAE,CAAC,IAAH,CAAQ,eAAR;MAEX,MAAA,GAAS,QAAQ,CAAC,aAAT,CAAuB,QAAvB;MACT,MAAM,CAAC,KAAP,GAAe;MACf,MAAM,CAAC,MAAP,GAAgB;MAChB,EAAE,CAAC,MAAH,CAAU,MAAV;MACA,GAAA,GAAM,MAAM,CAAC,UAAP,CAAkB,IAAlB;MAEN,KAAA,GAAQ;MACR,KAAS,qFAAT;QACI,KAAA,IAAS,QAAA,CAAU,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAA,CAAR,CAAV;MADb;MAGA,SAAA,GAAY;MAEZ,IAAA,GAAO,QAAA,CAAA,CAAA;AACH,YAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,KAAA,EAAA;QAAA,GAAA,GAAM;QACN,KAAS,0FAAT;UACI,KAAA,GAAQ,CAAC,QAAA,CAAU,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAA,CAAR,CAAV,CAAD,CAAA,GAA2C;UACnD,KAAA,GAAQ,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAkB,MAAlB,CAAR;UAER,GAAG,CAAC,SAAJ,CAAA;UACA,GAAG,CAAC,MAAJ,CAAW,GAAX,EAAgB,GAAhB;UACA,GAAG,CAAC,GAAJ,CAAQ,GAAR,EAAa,GAAb,EAAkB,GAAlB,EAAwB,CAAC,CAAD,GAAK,IAAI,CAAC,EAAV,GAAe,CAAC,KAAA,GAAQ,GAAT,CAAf,GAA+B,KAAvD,EAAgE,CAAC,CAAD,GAAK,IAAI,CAAC,EAAV,GAAe,GAAf,GAAqB,KAArF;UACA,GAAG,CAAC,SAAJ,CAAA;UACA,GAAG,CAAC,SAAJ,GAAgB;UAChB,GAAG,CAAC,IAAJ,CAAA;UAEA,GAAA,IAAO;QAXX;QAaA,SAAA,IAAa,SAAA,GAAY,EAAZ,GAAiB;QAE9B,IAAG,SAAA,IAAa,CAAhB;UACI,SAAA,GAAY;UACZ,MAAM,CAAC,qBAAP,CAA6B,IAA7B,EAFJ;;QAIA,IAAG,SAAA,GAAY,CAAf;iBACI,MAAM,CAAC,qBAAP,CAA6B,IAA7B,EADJ;;MArBG;aAwBP,MAAM,CAAC,qBAAP,CAA6B,IAA7B;IAxCe,CAAnB;EADc,CAAlB;AAAA",
+  "mappings": ";AAAA;EAAA,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;WACd,CAAA,CAAE,UAAF,CAAa,CAAC,IAAd,CAAmB,QAAA,CAAC,CAAD,EAAI,CAAJ,CAAA;AACf,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,QAAA,EAAA,IAAA,EAAA;MAAA,EAAA,GAAK,CAAA,CAAE,CAAF;MACL,QAAA,GAAW,EAAE,CAAC,IAAH,CAAQ,eAAR;MACX,IAAA,GAAO,CAAC,EAAE,CAAC,IAAH,CAAQ,WAAR,CAAD,CAAA,IAAyB;MAEhC,MAAA,GAAS,QAAQ,CAAC,aAAT,CAAuB,QAAvB;MACT,MAAM,CAAC,KAAP,GAAe;MACf,MAAM,CAAC,MAAP,GAAgB;MAChB,EAAE,CAAC,MAAH,CAAU,MAAV;MACA,GAAA,GAAM,MAAM,CAAC,UAAP,CAAkB,IAAlB;MAEN,KAAA,GAAQ;MACR,KAAS,qFAAT;QACI,KAAA,IAAS,QAAA,CAAU,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAA,CAAR,CAAV;MADb;MAGA,SAAA,GAAY,IAAA,GAAO;MACnB,SAAA,GAAY;MACZ,IAAA,GAAO,QAAA,CAAA,CAAA;AACH,YAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,KAAA,EAAA;QAAA,GAAA,GAAM;QACN,KAAS,0FAAT;UACI,KAAA,GAAQ,CAAC,QAAA,CAAU,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAA,CAAR,CAAV,CAAD,CAAA,GAA2C;UACnD,KAAA,GAAQ,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAkB,MAAlB,CAAR;UAER,GAAG,CAAC,SAAJ,CAAA;UACA,GAAG,CAAC,MAAJ,CAAW,SAAX,EAAsB,SAAtB;UACA,GAAG,CAAC,GAAJ,CAAQ,SAAR,EAAmB,SAAnB,EAA8B,SAA9B,EAA0C,CAAC,CAAD,GAAK,IAAI,CAAC,EAAV,GAAe,CAAC,KAAA,GAAQ,GAAT,CAAf,GAA+B,KAAzE,EAAkF,CAAC,CAAD,GAAK,IAAI,CAAC,EAAV,GAAe,GAAf,GAAqB,KAAvG;UACA,GAAG,CAAC,SAAJ,CAAA;UACA,GAAG,CAAC,SAAJ,GAAgB;UAChB,GAAG,CAAC,IAAJ,CAAA;UAEA,GAAA,IAAO;QAXX;QAaA,SAAA,IAAa,SAAA,GAAY,EAAZ,GAAiB;QAE9B,IAAG,SAAA,IAAa,CAAhB;UACI,SAAA,GAAY;UACZ,MAAM,CAAC,qBAAP,CAA6B,IAA7B,EAFJ;;QAIA,IAAG,SAAA,GAAY,CAAf;iBACI,MAAM,CAAC,qBAAP,CAA6B,IAA7B,EADJ;;MArBG;aAwBP,MAAM,CAAC,qBAAP,CAA6B,IAA7B;IAzCe,CAAnB;EADc,CAAlB;AAAA",
   "sourcesContent": [
-    "$(document).ready ->\n    $('piechart').each (_, p) ->\n        $p = $ p\n        segments = $p.attr 'data-segments'\n\n        canvas = document.createElement \"canvas\"\n        canvas.width = 256\n        canvas.height = 256\n        $p.append canvas\n        ctx = canvas.getContext \"2d\"\n\n        total = 0\n        for i in [1..segments]\n            total += parseInt ($p.attr \"data-segment-#{i}\")\n        \n        fill_perc = 0.01\n\n        anim = ->\n            acc = 0\n            for i in [1..segments]\n                ratio = (parseInt ($p.attr \"data-segment-#{i}\")) * fill_perc\n                color = $p.attr \"data-segment-#{i}-color\"\n\n                ctx.beginPath()\n                ctx.moveTo 128, 128\n                ctx.arc 128, 128, 128, (-2 * Math.PI * (ratio + acc) / total), (-2 * Math.PI * acc / total)\n                ctx.closePath()\n                ctx.fillStyle = color\n                ctx.fill()\n\n                acc += ratio\n\n            fill_perc += fill_perc / 10 + 0.01\n\n            if fill_perc >= 1\n                fill_perc = 1\n                window.requestAnimationFrame anim\n\n            if fill_perc < 1\n                window.requestAnimationFrame anim\n        \n        window.requestAnimationFrame anim\n\n"
+    "$(document).ready ->\n    $('piechart').each (_, p) ->\n        $p = $ p\n        segments = $p.attr 'data-segments'\n        size = ($p.attr 'data-size') || 256\n\n        canvas = document.createElement \"canvas\"\n        canvas.width = size\n        canvas.height = size\n        $p.append canvas\n        ctx = canvas.getContext \"2d\"\n\n        total = 0\n        for i in [1..segments]\n            total += parseInt ($p.attr \"data-segment-#{i}\")\n        \n        half_size = size / 2\n        fill_perc = 0.01\n        anim = ->\n            acc = 0\n            for i in [1..segments]\n                ratio = (parseInt ($p.attr \"data-segment-#{i}\")) * fill_perc\n                color = $p.attr \"data-segment-#{i}-color\"\n\n                ctx.beginPath()\n                ctx.moveTo half_size, half_size\n                ctx.arc half_size, half_size, half_size, (-2 * Math.PI * (ratio + acc) / total), (-2 * Math.PI * acc / total)\n                ctx.closePath()\n                ctx.fillStyle = color\n                ctx.fill()\n\n                acc += ratio\n\n            fill_perc += fill_perc / 10 + 0.01\n\n            if fill_perc >= 1\n                fill_perc = 1\n                window.requestAnimationFrame anim\n\n            if fill_perc < 1\n                window.requestAnimationFrame anim\n        \n        window.requestAnimationFrame anim\n\n"
   ]
 }
\ No newline at end of file
index 5b0db892487aa85bbaf10663509b2415976b8c2c..87b4a3f06df5f581979e2f1771f7ed59aa14e47c 100644 (file)
@@ -25,12 +25,14 @@ a {
                display: grid;
                grid-template-columns: repeat(#{$i}, 1fr);
 
-               & > *:first-child {
-                       margin-right: 12px;
-               }
-
-               & > *:last-child {
-                       margin-left: 12px;
+               @if ($i == 2) {
+                       & > *:first-child {
+                               margin-right: 12px;
+                       }
+
+                       & > *:last-child {
+                               margin-left: 12px;
+                       }
                }
        }
 }
@@ -50,6 +52,15 @@ a {
        }
 }
 
+@for $i from 1 to 5 {
+       @for $j from 1 to 5 {
+               .split-#{$i}-#{$j} {
+                       display: grid;
+                       grid-template-columns: #{$i}fr #{$j}fr; 
+               }
+       }
+}
+
 pre {
        @include elevate(2px, rgba(0, 0, 0, 0.5));
        font-size: 1rem;
@@ -91,6 +102,8 @@ pre {
        &.secondary-light { & > span { background-color: $secondary-light; } }
        &.secondary-dark { & > span { background-color: $secondary-dark; } }
 
+       &.success { & > span { background-color: #00ff00; } }
+
        &.error { & > span { background-color: $error; } }
        &.error-light { & > span { background-color: $error-light; } }
        &.error-dark { & > span { background-color: $error-dark; } }
index 9462751b2fba842cf15cdf625c42c0c577ba31cf..ec77337749a7b8137f31d02f8ded191384f0b244 100644 (file)
@@ -186,5 +186,5 @@ form {
 #code-editor {
        position: relative;
        width: 100%;
-       min-height: 16rem;
+       min-height: 24rem;
 }
\ No newline at end of file
index cbf18964f38e7b974d9935a1ab5bb1fcefc9adf9..7f158008eff420448873242dd7a80bec4e3820e8 100644 (file)
@@ -13,7 +13,7 @@ class Problems extends html.Widget
                                else
                                        h1 @problem.name
                                        div class: 'problem-info', ->
-                                               a style: "width: 100%; text-align: center", class: 'button', href: (@url_for 'problem.submit', { problem_name: @problem.short_name }), ->
+                                               a style: "text-align: center", class: 'button w100', href: (@url_for 'problem.submit', { problem_name: @problem.short_name }), ->
                                                        text "Make a submission"
 
                                                div style: 'font-size: 1.3rem; margin-top: 0', class: 'header-line', -> text "Stats for #{@problem.name}"
index 30360ca152d4a5753642781b6c3d6170d23ddd20..4017278729ef737b7f28ec2806a94d00880e7d83 100644 (file)
@@ -9,7 +9,7 @@ class ProblemSubmit extends html.Widget
                        div class: 'content', ->
                 h1 "Submit to '#{@problem.name}'"
 
-                div class: 'header-line', -> text "Code Editor"
+                div class: 'header-line', -> div "Code Editor"
                 div class: 'box', ->
                     div class: 'split-lr', ->
                         div class: 'mar-l-12', ->
index 7dd9950f16015b77f24a04299386bf4a1196e83c..bd9b9f9458f1157fc5bb539701ed22d4dd8d980f 100644 (file)
@@ -34,6 +34,11 @@ class JobResultView extends html.Widget
                        when Jobs.statuses.bad_language then @show_slash = false
                        when Jobs.statuses.bad_problem then @show_slash = false
 
+               @message = 'Error'
+               switch @job.status
+                       when Jobs.statuses.compiling then @message = 'Compiling'
+                       when Jobs.statuses.queued then @message = 'Queued'
+
                if @show_slash and type(@json_data) == "table"
                        @completed_percentage = math.floor(100 * (@json_data.completed / @json_data.total))
 
@@ -44,7 +49,7 @@ class JobResultView extends html.Widget
                                        if @show_slash and type(@json_data) == "table"
                                                span -> text "#{@json_data.completed} / #{@json_data.total}"
                                        else
-                                               span -> text "Error"
+                                               span -> text @message
 
                                        div class: 'slice', ->
                                                div class: 'bar', ''
@@ -102,7 +107,7 @@ class JobResultView extends html.Widget
                                                                                        p "Run time: #{@json_data.run_times[i] / 1000000}s"
                                else
                                        div class: 'header-line', ->
-                                               div 'Errors'
+                                               div @message
 
                                        div class: 'box', ->
                                                return unless @job.data
index 757fee6d4a77b208272028685df9866203eb9fc1..bcb85c3778a47114efa529f0e3f63fb768da5002 100644 (file)
@@ -1,5 +1,57 @@
 html = require 'lapis.html'
+import Jobs from require 'models'
 
 class SubmissionList extends html.Widget
     content: =>
-        h1 "Submission"
\ No newline at end of file
+        h1 "Submissions"
+
+        div class: 'content', ->
+            for prob in *@problems
+                div class: 'header-line', -> div prob.name
+                div class: 'box', ->
+                    jobs = @queries.get_jobs_by_user_and_problem @user.id, prob.id
+                    if #jobs == 0
+                        text "No submissions to this problem."
+                        return
+
+                    div class: 'split-4-1', ->
+                        div ->
+                            for job in *jobs
+                                tab_color = job.status == Jobs.statuses.correct and 'success' or 'error'
+                                a href: (@url_for 'submission.view', {}, { submission_id: job.job_id }), ->
+                                    div class: "highlight tabbed-split tab-32 #{tab_color}", ->
+                                        span ""
+                                        div class: 'pad-12 split-4', ->
+                                            div Jobs.statuses\to_name job.status
+                                            div job.lang\upper!
+                                            div "Average run time"
+                                            div job.time_initiated
+
+                        correct = 0
+                        wrong = 0
+                        timed_out = 0
+                        error = 0
+
+                        for job in *jobs
+                            switch job.status
+                                when Jobs.statuses.correct then correct += 1
+                                when Jobs.statuses.wrong_answer then wrong += 1
+                                when Jobs.statuses.timed_out then timed_out += 1
+                                when Jobs.statuses.error then error += 1
+                                when Jobs.statuses.compile_err then error += 1
+
+                        if (correct + wrong + timed_out + error) > 0
+                            piechart {
+                                style: 'display: inline-block; text-align: center; width: 100%',
+                                class: "highlight pad-12",
+                                "data-size": 200,
+                                "data-segments": 4,
+                                "data-segment-1": correct,
+                                "data-segment-1-color": "#44ff44",
+                                "data-segment-2": wrong,
+                                "data-segment-2-color": "#ff4444",
+                                "data-segment-3": timed_out,
+                                "data-segment-3-color": "#4444ff",
+                                "data-segment-4": error,
+                                "data-segment-4-color": "#777777"
+                            }, ""
\ No newline at end of file
index c4c5ef1ed0ee53d4e9e10d2d33a0ec49a55ee5af..06a9e83c277be5948db59df4fb22097c601d6922 100644 (file)
@@ -9,4 +9,11 @@ class SubmissionView extends html.Widget
                        div class: 'header-line', ->
                                div -> text "#{@job.lang\upper!} code"
 
-                       pre { id: 'code-editor', 'data-lang': 'c_cpp', 'data-readonly': 'true' }, -> text @job.code
\ No newline at end of file
+            lang = ''
+            switch @job.lang
+                when 'c' then lang = 'c_cpp'
+                when 'cpp' then lang = 'c_cpp'
+                when 'py' then lang = 'python'
+                when 'lua' then lang = 'lua'
+
+                       pre { id: 'code-editor', 'data-lang': lang, 'data-readonly': 'true' }, -> text @job.code
\ No newline at end of file
index 6b01fc3d67e01034c0427810864ea04e2de84927..cbf394d6072dd8e44f62b990237609aedf69cde5 100644 (file)
@@ -1,9 +1,11 @@
 { make_matcher } = require './matchers'
 { TempFile } = require './temp_file'
 
+{ BaseCompiler } = require './compilers/base_compiler'
 { CCompiler } = require './compilers/c_compiler'
 { CPPCompiler } = require './compilers/cpp_compiler'
 { CExecuter } = require './executers/c_executer'
+{ PyExecuter } = require './executers/py_executer'
 
 clean_output = (otpt) ->
        otpt.split '\n'
@@ -16,12 +18,14 @@ create_matchers = (otpt) ->
 class Executer
        compilers: {
                'c': new CCompiler(),
-               'cpp': new CPPCompiler()
+               'cpp': new CPPCompiler(),
+               'py': new BaseCompiler()
        }
 
        executers: {
                'c': new CExecuter(),
-               'cpp': new CExecuter()
+               'cpp': new CExecuter(),
+               'py': new PyExecuter()
        }
 
        process: (lang, code, test_cases, time_limit) ->
diff --git a/executer/app/executers/py_executer.coffee b/executer/app/executers/py_executer.coffee
new file mode 100644 (file)
index 0000000..a040a04
--- /dev/null
@@ -0,0 +1,34 @@
+{ BaseExecuter } = require './base_executer'
+{ spawn } = require 'child_process'
+{ on_child_exit } = require '../child_process'
+
+class PyExecuter extends BaseExecuter
+       execute: (path, input, time_limit) ->
+               bash_shell = spawn 'bash'
+
+               output = ""
+               bash_shell.stdout.on 'data', (data) => output += data.toString()
+
+               err_output = ""
+               bash_shell.stderr.on 'data', (data) => err_output += data.toString()
+
+               bash_shell.stdin.end "echo #{input} | timeout -s SIGKILL #{time_limit / 1000.0} python3 #{path}"
+
+               start_time = process.hrtime()
+               res_code = await on_child_exit bash_shell
+               diff_time = process.hrtime start_time
+
+               run_time = diff_time[0] * 1000000 + Math.floor(diff_time[1] / 1000) / 1000000
+
+               if res_code == 0
+                       return { status: 'SUCCESS', output: output, run_time: run_time }
+               else if res_code == 124 or res_code == 137
+                       bash_shell.kill()
+                       return { status: 'TIME_LIMIT_EXCEEDED' }
+               else
+                       bash_shell.kill()
+                       return { status: 'BAD_EXECUTION', err: err_output }
+
+module.exports = {
+       PyExecuter: PyExecuter
+}