meta data for this page
  •  

Erot

Tämä näyttää erot valitun ja nykyisen version kesken tästä sivusta.

Linkki vertailunäkymään

Both sides previous revisionEdellinen revisio
playground:playground [30/10/2019 16:23] harriplayground:playground [07/11/2022 21:28] (nykyinen) harri
Rivi 1: Rivi 1:
 +<html>
 +<head>
 +    <title>Valintakoe</title>
 +    <meta charset="UTF-8">
 +    <meta name="format-detection" content="telephone=no">
 +    <meta name="app-path" content="./">
 +    <meta name="page-integrity" content="false">
 +    <meta name="answer-key" content="-">
 +    <meta name="tz-offset" content="-10800000">
 +    <meta name="google" content="notranslate">
 +    <meta name="base-timestamp" content="1664892858486">
 +    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 +
 +
 +<style>
 +#footer{clear:both;z-index:0;height:25px;background:#fff;width:100%;border-top:1px solid #2f6394}body,html{margin:0;padding:0;font-family:Helvetica,Arial,sans-serif;font-size:100%;background:#fcfcfc;color:#444}#header{border-bottom:none}#header:after{content:"";display:block;position:absolute;left:0;right:0;padding-top:1em;border-bottom:3px solid #de1b1b}.topbar-wrap,div.header.topbar{background:#f6f6f6 none repeat scroll 0 0;border-bottom:3px solid #de1b1b;color:#2b2b2b;padding:1em;width:100%;position:relative;z-index:50}.topbar-wrap .header-content,div.header.topbar .header-content{max-width:908px;margin:0 auto;padding:.5em 0;display:flex;justify-content:space-between;align-items:center}.topbar-wrap .exam-data,div.header.topbar .exam-data{max-width:908px;margin:0 auto}.topbar-wrap .name,div.header.topbar .name{line-height:1;font-size:2em;display:inline-block;margin:0;padding:0;font-weight:400}div.header.topbar .name:empty:before{content:"\a0"}div.topbar-wrap{padding:0;border-bottom:0;background:0 0}div.topbar{padding:.5em;background:#2b2b2b none repeat scroll 0 0;border-bottom:3px solid #e9e581;color:#fff}div.topbar>div{max-width:908px;margin:0 auto}body.lobby div.topbar{padding:1em .5em}.wrapper{margin:0 auto 0;margin:0 auto;max-width:700px;width:98%;padding:2em;padding-top:0}.wrapper .help-text{font-size:large;padding:0 0 2em}.wrapper .help-text.success{background-color:#dff0d8;border:1px solid #d6e9c6;color:#3c763d;padding:1em;margin-bottom:1em;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.wrapper .help-text.error{background-color:#f2dede;border:1px solid #ebccd1;color:#a94442;padding:1em;margin-bottom:1em;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.wrapper .help-text.notice{background-color:#ffc;border:1px solid #cc0;padding:1em;margin-bottom:1em;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px}.wrapper .help-text .title{font-weight:700;margin-bottom:3px}.wrapper .help-text .link{display:block;text-decoration:none;margin-top:3px;float:right;font-weight:700}.wrapper .help-text *:first-child,.wrapper .help-text .title{margin-top:0}body.full .wrapper{max-width:908px}#main-content-wrapper{margin-top:2em}#container{overflow:visible;margin:0 5%;max-width:908px;margin:0 auto 0}div.header.topbar{background:#f6f6f6 none repeat scroll 0 0;color:#2b2b2b}div.header.topbar .header-content{max-width:900px;margin:0 auto}div.header.topbar .header-content .name span{display:block}div.header.topbar .name{display:inline-block;font-size:2em;margin:0;padding:0}div.header.topbar .links{display:inline-block;line-height:2em}div.header.topbar .links button>span{white-space:nowrap;display:block}div.header.topbar .links .link{display:inline-block;line-height:1.3;padding:0 8px 0 0}div.header.topbar .links .link a{color:#2b2b2b;text-decoration:none;font-size:1.1em}div.header.topbar .links .link:not(:first-child){border-left:1px solid #de1b1b;padding-left:10px}div.header.topbar form{display:inline-block}div.topbar-wrap{border-top:3px solid #de1b1b;position:absolute}div.topbar-wrap .exam-data{margin:0 auto 0;max-width:900px;width:100%}div.topbar-wrap .exam-data>div{display:inline-block}div.topbar-wrap .exam-data>div.exam-info{line-height:24px;vertical-align:middle;float:right}div.topbar-wrap .exam-data .timer{display:inline-block}div.topbar-wrap .exam-data .timer .title{display:inline-block;text-align:right}div.topbar-wrap .exam-data .timer{margin-left:1em}div.topbar-wrap .exam-data span{font-size:18px}div.topbar-wrap .exam-data span.username{font-size:24px}div.topbar-wrap .exam-data:after{clear:both;content:".";display:block;height:0;visibility:hidden}body.fixed div.topbar-wrap{position:fixed;top:0;border-top:3px solid #de1b1b;z-index:50}body.fixed.lobby section.wrapper{margin-top:60px!important}body.fixed.lobby div.topbar{padding:0 1em 1em}body.fixed.lobby div.topbar>div .exam-data{margin:1em auto}html:after{clear:both;content:".";display:block;height:0;visibility:hidden}@media (max-width:923px){#container{padding:0 .5em}}button.linklike{background:0 0;border:none;padding:0;color:#2b2b2b;cursor:pointer;width:auto}.login section.wrapper{margin:60px auto 0;padding:2em;max-width:500px}.login .language-choice{display:flex;justify-content:space-between;font-size:1.1em;margin-bottom:2em}.login .language-choice button{background-color:transparent;color:inherit;padding:inherit;width:inherit;max-width:inherit;border:inherit;font-size:1.1em}.login .display-language-fi .language-choice button:lang(fi){text-decoration:underline}.login .display-language-sv .language-choice button:lang(sv){text-decoration:underline}.login .display-language-en .language-choice button:lang(en){text-decoration:underline}.login .display-language-fi [lang]:not(.language-option):not(:lang(fi)){display:none}.login .display-language-sv [lang]:not(.language-option):not(:lang(sv)){display:none}.login .display-language-en [lang]:not(.language-option):not(:lang(en)){display:none}.login section.wrapper h3{border-bottom:1px solid #3b3738;color:#3b3738;margin-top:0;padding-bottom:.5em;text-align:center}.login.credentials section.wrapper{max-width:500px}.login *{box-sizing:border-box}.login label{width:38%;display:inline-block;font-size:1.1em;padding:.5em;text-align:right}.login .input.credentials label[for=username],.login form.ajax-submit.processing .processing-notification{padding:.5em 0}.login input{display:inline-block;border:1px solid #060606;padding:.3em;font-size:1em;width:60%}.login input:focus{border:1px solid #de1b1b}.login .btn,.login button{background:#3b3738;-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;color:#fff;display:inline-block;border:0;padding:.4em 1em;width:60%;max-width:60%;cursor:pointer}.login .input{text-align:right}.login .input.credentials{margin:0;text-align:right;width:auto}.login .input.credentials label{padding-left:0;text-align:center;width:100%;float:left}.login .input.credentials input{font-size:1.5em;line-height:1;text-align:center;vertical-align:middle;width:100%}.login .input.toggle{margin:.4em 0}.login .input.toggle label{padding:0 .5em 0 0;text-align:left;float:right;width:auto}.login .input.toggle input{text-align:center;vertical-align:middle;padding:.5em;width:auto}.login .input.access-token input{text-transform:uppercase}.login .input.credentials .btn,.login .input.credentials button{width:100%;max-width:100%;margin-top:.5em;display:inline-block}.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}@media speech,aural{.sr-hide{display:none!important}}a img,fieldset{border:none}a{color:#0a79a4}a:hover{color:#176280}:focus{outline:1px dotted #1471ce;-webkit-box-shadow:0 0 6px 1px #63a4e4;-moz-box-shadow:0 0 6px 1px #63a4e4;box-shadow:0 0 6px 1px #63a4e4}.form-button a:focus{outline:1px dotted #155ca2;-webkit-box-shadow:0 0 8px 2px #1b5c9e;-moz-box-shadow:0 0 8px 2px #1b5c9e;box-shadow:0 0 8px 2px #1b5c9e}img{border:0;margin:0}.form-button{border-top:1px solid rgba(0,0,0,.2);margin-bottom:1em}.form-button a{text-decoration:none}.form-button h2{margin-bottom:.4em}.btn,.form-button a,button,input[type=button]{background:#3b3738;font-size:1.2em;color:#f6f6f6;-webkit-border-radius:2px;border:0;-moz-border-radius:2px;border-radius:2px;display:inline-block;padding:.5em 1em;width:47%;max-width:320px;cursor:pointer;vertical-align:top;text-align:center}.form-button .examination-info-wrap{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%}.form-button .examination-info-wrap>*{width:50%}.form-button .examination-info{display:flex;flex-direction:column;gap:.5em}.examination-list button{display:block}.examination-list .help-text.notice{margin-top:10px}div.form-button,.help-text{clear:both}div.help-text div{margin-top:10px}*{box-sizing:border-box}table{border-collapse:collapse}th,td{padding:.3em;border:2px solid #575757}.form{font-size:1.3em;line-height:calc(100% + .4em)}.form div.html-content,.form fieldset{margin-top:2em;margin-bottom:2em}.form legend{margin-bottom:.5em;display:inline}.form input{margin:0}.form .input-wrap{box-sizing:border-box;line-height:1px}.form .input-wrap.inline{display:inline-block}.form fieldset h1:first-child,.form div h1:first-child,.form fieldset h2:first-child,.form div h2:first-child,.form fieldset h3:first-child,.form div h3:first-child,.form fieldset h4:first-child,.form div h4:first-child,.form fieldset h5:first-child,.form div h5:first-child,.form fieldset p:first-child,.form div p:first-child,.form fieldset ul:first-child,.form div ul:first-child,.form fieldset ol:first-child,.form div ol:first-child{padding-top:0;margin-top:0}.form fieldset h1:last-child,.form div h1:last-child,.form fieldset h2:last-child,.form div h2:last-child,.form fieldset h3:last-child,.form div h3:last-child,.form fieldset h4:last-child,.form div h4:last-child,.form fieldset h5:last-child,.form div h5:last-child,.form fieldset p:last-child,.form div p:last-child,.form fieldset ul:last-child,.form div ul:last-child,.form fieldset ol:last-child,.form div ol:last-child{padding-bottom:0;margin-bottom:0}.form table+table{margin-top:1.5em}@keyframes saved-border{from{padding:.3em;border:.3em solid #444}to{padding:.3em;border:.3em solid #fcfcfc}}.form .radio,.form .checkboxes{display:-ms-grid;display:grid;-ms-grid-columns:2em auto;grid-template-columns:2em auto}.form .radio .input-wrap,.form .checkboxes .input-wrap{-ms-grid-column:1;grid-column:1;-ms-grid-column-align:center;justify-self:center;-ms-grid-row-align:center;align-self:center;display:flex;justify-content:center;align-items:center;position:relative}.form .inline.input-wrap{position:relative}.form .radio .input-wrap input,.form .checkboxes .input-wrap input{position:absolute;-ms-transform:translate(-50%,-50%)}.form .radio .input-wrap:before,.form .checkboxes .input-wrap:before{content:"";position:absolute;width:100%;height:100%;-ms-transform:translate(-50%,-50%)}@keyframes saving-border{0%{border-color:#444}50%{border-color:#aaa}100%{border-color:#444}}.form .radio .input-wrap.saving:before,.form .checkboxes .input-wrap.saving:before,.form .inline .inline-status.saving{padding:.3em;border:.3em solid #444;animation-name:saving-border;animation-duration:8s;animation-iteration-count:infinite;animation-delay:5s}.form .inline.saving:before,.form .inline .inline-status.saving{content:"";padding:.3em;border:.3em solid #444;border-radius:7px;border-color:#444;animation-name:saving-border;animation-duration:8s;animation-iteration-count:infinite;animation-delay:5s;position:absolute;top:-.3rem;right:-.3rem;bottom:-.3rem;left:-.3rem;pointer-events:none;z-index:1}.form .radio .input-wrap.saved-animation:before,.form .checkboxes .input-wrap.saved-animation:before{animation-name:saved-border;animation-duration:.5s}.form .radio .input-wrap,.form .radio .input-wrap:before{border-radius:50%}.form .checkboxes .input-wrap,.form .checkboxes .input-wrap:before{border-radius:30%}@keyframes saved-text{0%{opacity:0;z-index:1;visibility:visible}10%{opacity:1;z-index:1;visibility:visible}90%{opacity:1;z-index:1;visibility:visible}100%{opacity:0;z-index:1;visibility:visible}}.form .radio .input-wrap.saved-animation:after,.form .checkboxes .input-wrap.saved-animation:after,.form .connect-options .connection.saved-animation:after,.form .text .text-saved-notification.saved-animation:after,.form .inline.saved-animation:after,.form .inline-status.saved-animation:after,.form .inline-saved-notification.saved-animation:after{content:attr(data-saved-message);position:absolute;bottom:calc(100% + .8em);display:block;background-color:#444;color:#fcfcfc;padding:.4em;vertical-align:middle;line-height:1em;z-index:-1;opacity:0;font-size:1.1rem;animation-name:saved-text;animation-duration:3s;visibility:hidden;-ms-transform:translate(-50%,0%)}.form .text .text-saved-notification{position:relative}.form .inline .inline-saved-notification{position:absolute;top:0;left:0;right:0}.form .text .text-saved-notification.saved-animation:after{bottom:.8em;left:50%;transform:translateX(-50%)}.form .inline.saved-animation:after,.form .inline-status.saved-animation:after,.form .inline .inline-saved-notification:after{bottom:calc(100% + .4em);left:50%;transform:translateX(-50%)}.form input,.form label{cursor:pointer}.form input[type=text]{cursor:auto}.form .radio label,.form .checkboxes label{-ms-grid-column:2;grid-column:2;padding:.5em;display:block}.form .radio.delete-answer label{font-style:italic}.form .connect-options{display:-ms-grid;display:grid;-ms-grid-columns:1fr 4em 1fr;grid-template-columns:1fr 4em 1fr}.form .connect-options label,.form .connect-options input{display:block}.form .connect-options .connect-options-from{-ms-grid-column:1;grid-column:1;text-align:right}.form .connect-options .connect-options-to{-ms-grid-column:3;grid-column:3}.form .connect-options .connect-option{margin:.5em;padding:.5em}.form .connect-options .connection{padding:0;position:relative;display:flex;justify-content:center}.form .connect-options .connection{top:calc(1.5em - 4px);height:calc(100% + 8px)}.form .connect-options .connect-options-to,.form .connect-options .connection-input{display:none}.form .connect-options .connect-options-to.active,.form .connect-options .connection-input.active{display:block}.form .connect-options .connect-options-from,.form .connect-options .connect-options-to{border:3px solid transparent}.form .connect-options input:checked+.connect-option,.form .connect-options input:focus+.connect-option{border-color:#575757}.form .connect-options input:checked+.connect-option{border-style:dashed}.form .connect-options input:focus+.connect-option{border-style:solid}.form .connect-options .connect-option{cursor:pointer}.form .connect-options .connect-option.connect-options-to-default{cursor:default}.form .connect-options.active .connection svg .connection-line{opacity:.25}.form .connect-options.active input:checked+.connect-options-to.active+.connection svg .connection-line{opacity:1}.form .connect-options.active input:checked+.connect-options-to.active+.connection{z-index:1}.form .connect-options .connection svg{position:absolute;width:100%;height:100%}.form .connect-options .connection.saving svg .connection-line{stroke-dasharray:5}.form .connect-options input{opacity:0;z-index:-1}.form .connect-options .help-from{text-align:right}.form .connect-options .help-from,.form .connect-options .help-to{margin:.5em;padding:.5em;background-color:#444;color:#fcfcfc}.form .connect-options.active .help-from{visibility:hidden}.form .connect-options:not(.active) .help-to{visibility:hidden}.form .essay .essay-wrap{display:-ms-grid;display:grid;-ms-grid-columns:100%;grid-template-columns:100%;width:100%}.form .essay .essay-wrap textarea.text-input,.form .essay .essay-wrap.auto-grow:after{-ms-grid-row:1;-ms-grid-column:1;grid-row:1;grid-column:1;font-family:Helvetica,Arial,sans-serif;font-size:1em;min-height:10em;max-height:calc(100vh - 10em)}.form .essay .essay-wrap.auto-grow:after{display:block;content:attr(data-value) " ";white-space:pre-wrap;visibility:hidden;overflow:hidden}.form .essay .essay-wrap textarea.text-input{resize:none}.form .text .text-controls button{font-size:1.2rem;width:auto}.form .text .text-controls{display:flex;flex-direction:row;align-items:center;margin-top:.5em;justify-content:flex-end}.form .text .status{margin-right:1em;font-size:1.2rem}.form .text .status .has-been-modified,.form .text .status .saving-changes,.form .text .status .too-long-answer{display:none}.form .text .status .too-long-answer{color:red}.form .text.changed .status .has-been-modified,.form .text.saving .status .saving-changes,.form .text.too-long-answer .status .too-long-answer{display:inline}.form .text.changed.saving .status .has-been-modified{display:none}.form .text.too-long-answer button{background-color:#575757}.form .single-line input.text-input{font-size:.8em}.form .inline-item{white-space:nowrap;display:inline-block}.form .inline-item label{font-size:1rem;font-style:italic;margin-right:1px}.inline.select select,.inline.single-line input{max-width:100%}.inline.select select{font-size:.8em;color:#444;text-overflow:ellipsis}.inline.select select[data-current-value=""],.inline.select select option[value=""]{font-style:italic}.inline.select select option{font-style:normal}.inline.single-line input{font-size:.8em}.inline .inline-status{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}div.message-container{position:fixed;top:0;left:0;right:0;bottom:0;z-index:10;background-color:#fcfcfc;background:linear-gradient(90deg,#fcfcfc 10%,#ddd 30%,#ddd 70%,#fcfcfc 90%);visibility:hidden}div.message-container:before{content:"";position:absolute;top:0;bottom:20px;width:908px;margin-left:50%;transform:translateX(-50%);box-shadow:0 0 5px #222;background-color:#fcfcfc}#default-message-container div.message-container{visibility:visible;z-index:-1}#active-message-container div.message-container:last-of-type{visibility:visible}div.message-container div.message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:inline-block;padding-top:25px;font-size:20px;text-align:center;width:calc(100% - 2em);max-width:calc(908px - 2em)}#page-load-failure div.message{text-align:left}div.message-container div.message div{margin-bottom:10px}div.message-container div.message div.title{font-weight:700}div.message-container div.message:after{content:"";display:block;position:absolute;background:center no-repeat url(../img/loader.gif);width:100%;height:60px;visibility:hidden}div.message-container div.message.loading:after{visibility:visible}button.confirm{background-color:#006400}button.cancel{background-color:#666}div.examination-status{font-size:large}div.examination-status span.returned{color:green}div.notification-container{display:block;position:absolute;left:0;right:0;text-align:center;width:100%}div.notification-container div.notification{display:inline-block;border:2px solid #2b2b2b;color:#2b2b2b;padding:.3rem;background-color:#fcfcfc}fieldset.disabled{opacity:.5}fieldset.question-item.invalid{border:2px solid red}fieldset.question-item.invalid div.validation-error-message{display:block;color:red;padding:0 0 .5em}form.ajax-submit:before{content:"";background-image:url(../img/loader.gif);display:block;position:absolute;width:0;height:0;z-index:-1000}form.ajax-submit{position:relative}form.ajax-submit div.processing-notification{display:none}form.ajax-submit.processing div.processing-notification div.processing-text{z-index:2;font-size:1.5rem;background-color:#fff;display:inline-block;position:absolute;background-color:#fcfcfc;margin:1em 0;text-align:center;left:50%;transform:translateX(-50%);bottom:calc(50% + 2em);width:100%}form.ajax-submit.processing div.processing-notification{display:block;position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;background:center no-repeat url(../img/loader.gif);background-color:rgba(252,252,252,.8)}form.ajax-submit.processing div.opaque{background-color:rgba(252,252,252,1) !important}form.ajax-submit div.processing-error-message{display:none}form.ajax-submit.processing-error fieldset.submit div.processing-error-message{color:red;display:block;margin-bottom:1em;font-size:1.3rem}div.validation-error-message{display:none}form.validation-error fieldset.submit div.validation-error-message{color:red;display:block;margin-bottom:1em;font-size:1.3em}form.require-all-fields legend{position:relative}form.require-all-fields fieldset:not(.disabled) legend{padding-right:.8em}form.require-all-fields fieldset:not(.disabled) legend:empty{padding-left:0;padding-right:0}form.require-all-fields fieldset:not(.disabled) legend:not(:empty):after{content:"*";color:red;position:absolute;top:0;right:.2em}div#calcwrapper,div#calcwrapper *{box-sizing:content-box}div#calcwrapper{position:fixed;top:50%;transform:translateY(-50%);right:0;z-index:100}#calcwrapper.closed div.calctab.close,#calcwrapper.opened div.calctab.open{display:none}#calcwrapper.closed{transform:translate(100%,-50%)}div.calctab{cursor:pointer;padding:5px;border:1px solid #2b2b2b;border-right:none;border-radius:8px 0 0 8px;background-color:#2b2b2b;text-transform:uppercase;width:10px;word-break:break-all;padding:5px 13px 5px 12px;text-align:center;font-size:16px;color:#fff;position:absolute;transform:translateX(-100%)}div.calctab.open{position:absolute;top:50%;transform:translate(-100%,-50%)}div.calctab.close{background-color:#eee;color:red}div#calc{border:1px solid #2b2b2b;width:286px;padding:3px;border-radius:0 8px 8px;background-color:#eee}div#calc div#display{clear:both}input#expression,input#result{border:1px solid #2b2b2b;margin:2px;width:271px;text-align:right;padding:4px;font-size:18px}input#result{background:#d3d3d3;border-top-left-radius:5px;border-top-right-radius:5px}span.resultbg{position:relative}span.resultbg input{padding-left:18px}span.resultbg:before{position:absolute;top:0;content:"=";left:5px}div#calc div.keyrow{clear:both;display:table-row}div#calc button.key,div#calc div.nokey{border:1px solid #2b2b2b;margin:2px;padding:3px;float:left;width:45px;height:20px;line-height:19px;text-align:center;vertical-align:middle;cursor:pointer;display:table-cell;border-radius:5px}div.nokey{border:1px solid transparent !important}div#calc button.key,input#expression,input#result{font-family:"DejaVu Sans",Helvetica,Arial,sans-serif}div#calc button{color:#000;font-size:100%}div#calc button.key:hover{background:#ddd}div#calc button.key:active{background:#ccc}div.larger{font-size:22px}div#calc .lettersymbol{font-style:italic}div#calc button.trigonometry,div#calc button.power,div#calc button.logarithm{background:#ffffe0}div#calc button.arithmetics,div#calc button.parenthesis{background:#e0ffff}div#calc button.storage{background:#d3d3d3}div#calc button.available{background:#90ee90}div#calc button.delete{background:#ffa07a}div#calc button.number,div#calc button.equals{background:#fff}div#calc button.key sup,div#calc button.key sub{font-size:12px;vertical-align:baseline;position:relative}div#calc button.key sup{top:-.4em}div#calc button.key sub{top:.4em}input::-ms-clear{display:none}div.tex-loading{display:inline-block;background-color:#ededed;margin:.14em;font-size:.9em;padding:0 .3em}.mq-math-mode{font-size:1em}
 +</style>
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +    <script type="text/javascript">
 +    window.mathParser=(function(){"use strict";function peg$subclass(child,parent){function ctor(){this.constructor=child;}
 +ctor.prototype=parent.prototype;child.prototype=new ctor();}
 +function peg$SyntaxError(message,expected,found,location){this.message=message;this.expected=expected;this.found=found;this.location=location;this.name="SyntaxError";if(typeof Error.captureStackTrace==="function"){Error.captureStackTrace(this,peg$SyntaxError);}}
 +peg$subclass(peg$SyntaxError,Error);peg$SyntaxError.buildMessage=function(expected,found){var DESCRIBE_EXPECTATION_FNS={literal:function(expectation){return"\""+literalEscape(expectation.text)+"\"";},"class":function(expectation){var escapedParts="",i;for(i=0;i<expectation.parts.length;i++){escapedParts+=expectation.parts[i]instanceof Array?classEscape(expectation.parts[i][0])+"-"+classEscape(expectation.parts[i][1]):classEscape(expectation.parts[i]);}
 +return"["+(expectation.inverted?"^":"")+escapedParts+"]";},any:function(expectation){return"any character";},end:function(expectation){return"end of input";},other:function(expectation){return expectation.description;}};function hex(ch){return ch.charCodeAt(0).toString(16).toUpperCase();}
 +function literalEscape(s){return s.replace(/\\/g,'\\\\').replace(/"/g,'\\"').replace(/\0/g,'\\0').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\r/g,'\\r').replace(/[\x00-\x0F]/g,function(ch){return'\\x0'+hex(ch);}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return'\\x'+hex(ch);});}
 +function classEscape(s){return s.replace(/\\/g,'\\\\').replace(/\]/g,'\\]').replace(/\^/g,'\\^').replace(/-/g,'\\-').replace(/\0/g,'\\0').replace(/\t/g,'\\t').replace(/\n/g,'\\n').replace(/\r/g,'\\r').replace(/[\x00-\x0F]/g,function(ch){return'\\x0'+hex(ch);}).replace(/[\x10-\x1F\x7F-\x9F]/g,function(ch){return'\\x'+hex(ch);});}
 +function describeExpectation(expectation){return DESCRIBE_EXPECTATION_FNS[expectation.type](expectation);}
 +function describeExpected(expected){var descriptions=new Array(expected.length),i,j;for(i=0;i<expected.length;i++){descriptions[i]=describeExpectation(expected[i]);}
 +descriptions.sort();if(descriptions.length>0){for(i=1,j=1;i<descriptions.length;i++){if(descriptions[i-1]!==descriptions[i]){descriptions[j]=descriptions[i];j++;}}
 +descriptions.length=j;}
 +switch(descriptions.length){case 1:return descriptions[0];case 2:return descriptions[0]+" or "+descriptions[1];default:return descriptions.slice(0,-1).join(", ")
 ++", or "
 ++descriptions[descriptions.length-1];}}
 +function describeFound(found){return found?"\""+literalEscape(found)+"\"":"end of input";}
 +return"Expected "+describeExpected(expected)+" but "+describeFound(found)+" found.";};function toCustomPrecision(number){var PRECISION_DECIMALS_SMALL=8;var PRECISION_DECIMALS_BIG=14;var PRECISION_THRESHOLD=0.01;var precision;if(Math.abs(number)<PRECISION_THRESHOLD){precision=PRECISION_DECIMALS_SMALL;}else{precision=PRECISION_DECIMALS_BIG;}
 +return parseFloat(number.toPrecision(precision));}
 +function peg$parse(input,options){options=options!==void 0?options:{};var peg$FAILED={},peg$startRuleFunctions={start:peg$parsestart},peg$startRuleFunction=peg$parsestart,peg$c0=/^[+\-]/,peg$c1=peg$classExpectation(["+","-"],false,false),peg$c2=function(left,right){var ret=left;var i;if(isNaN(ret)||!isFinite(ret))
 +return ret
 +for(i=0;i<right.length;++i){var num=right[i][1];if(isNaN(num)||!isFinite(num))
 +return num
 +if(right[i][0]=="+"){ret=ret+num;}else if(right[i][0]=="-"){ret=ret-num;}
 +if(i<right.length-1){ret=toCustomPrecision(ret);}}
 +return parseFloat(ret);},peg$c3=/^[\xD7\xF7*\/]/,peg$c4=peg$classExpectation(["\xD7","\xF7","*","/"],false,false),peg$c5=function(left,right){var ret=left;var i;if(isNaN(ret)||!isFinite(ret))
 +return ret
 +for(i=0;i<right.length;++i){var num=right[i][1];if(isNaN(num)||!isFinite(num))
 +return num
 +if(right[i][0]=="×"||right[i][0]=="*"){ret=ret*num;}else if(right[i][0]=="÷"||right[i][0]=="/"){ret=ret / num;}else{ret=ret*right[i][0];}
 +if(i<right.length-1){ret=toCustomPrecision(ret);}}
 +return parseFloat(ret);},peg$c6=/^[\-]/,peg$c7=peg$classExpectation(["-"],false,false),peg$c8=function(sign,expression){var ret=expression;if(sign){ret=-ret;}
 +return ret;},peg$c9="log(",peg$c10=peg$literalExpectation("log(",false),peg$c11=")",peg$c12=peg$literalExpectation(")",false),peg$c13=function(operand){return Math.log(operand)/ Math.LN10;},peg$c14="ln(",peg$c15=peg$literalExpectation("ln(",false),peg$c16=function(operand){return Math.log(operand);},peg$c17="\u221A",peg$c18=peg$literalExpectation("\u221A",false),peg$c19=function(radicand){return Math.sqrt(radicand);},peg$c20="^",peg$c21=peg$literalExpectation("^",false),peg$c22=function(operand,exponent){return Math.pow(operand,exponent);},peg$c23="sin(",peg$c24=peg$literalExpectation("sin(",false),peg$c25=function(operand){return Math.sin(operand*(Math.PI / 180));},peg$c26="cos(",peg$c27=peg$literalExpectation("cos(",false),peg$c28=function(operand){return operand==90?0:Math.cos(operand*(Math.PI / 180));},peg$c29="tan(",peg$c30=peg$literalExpectation("tan(",false),peg$c31=function(operand){return operand==90?Number.NaN:Math.tan(operand*(Math.PI / 180));},peg$c32="asin(",peg$c33=peg$literalExpectation("asin(",false),peg$c34=function(operand){return Math.asin(operand)/(Math.PI / 180);},peg$c35="acos(",peg$c36=peg$literalExpectation("acos(",false),peg$c37=function(operand){return Math.acos(operand)/(Math.PI / 180);},peg$c38="atan(",peg$c39=peg$literalExpectation("atan(",false),peg$c40=function(operand){return Math.atan(operand)/(Math.PI / 180);},peg$c41="!",peg$c42=peg$literalExpectation("!",false),peg$c43=function(operand){var ret=Number.NaN;if(parseInt(operand)===operand&&operand>=0){ret=1;for(var i=2;i<=operand;i++){ret*=i}}
 +return ret;},peg$c44="(",peg$c45=peg$literalExpectation("(",false),peg$c46=function(additive){return additive;},peg$c47="\u03C0",peg$c48=peg$literalExpectation("\u03C0",false),peg$c49=function(operand){return operand*Math.PI;},peg$c50=function(){return Math.PI;},peg$c51="e",peg$c52=peg$literalExpectation("e",false),peg$c53=function(operand){return operand*Math.E;},peg$c54=function(){return Math.E;},peg$c55=/^[0-9]/,peg$c56=peg$classExpectation([["0","9"]],false,false),peg$c57=/^[.]/,peg$c58=peg$classExpectation(["."],false,false),peg$c59=function(wholepart,fractionalpart){var ret;if(fractionalpart){ret=parseFloat(wholepart.join("")+"."+fractionalpart[1].join(""));}else{ret=parseInt(wholepart.join(""));}
 +return ret;},peg$c60=function(fractionalpart){return parseFloat("0."+fractionalpart[1].join(""));},peg$currPos=0,peg$savedPos=0,peg$posDetailsCache=[{line:1,column:1}],peg$maxFailPos=0,peg$maxFailExpected=[],peg$silentFails=0,peg$result;if("startRule"in options){if(!(options.startRule in peg$startRuleFunctions)){throw new Error("Can't start parsing from rule \""+options.startRule+"\".");}
 +peg$startRuleFunction=peg$startRuleFunctions[options.startRule];}
 +function text(){return input.substring(peg$savedPos,peg$currPos);}
 +function location(){return peg$computeLocation(peg$savedPos,peg$currPos);}
 +function expected(description,location){location=location!==void 0?location:peg$computeLocation(peg$savedPos,peg$currPos)
 +throw peg$buildStructuredError([peg$otherExpectation(description)],input.substring(peg$savedPos,peg$currPos),location);}
 +function error(message,location){location=location!==void 0?location:peg$computeLocation(peg$savedPos,peg$currPos)
 +throw peg$buildSimpleError(message,location);}
 +function peg$literalExpectation(text,ignoreCase){return{type:"literal",text:text,ignoreCase:ignoreCase};}
 +function peg$classExpectation(parts,inverted,ignoreCase){return{type:"class",parts:parts,inverted:inverted,ignoreCase:ignoreCase};}
 +function peg$anyExpectation(){return{type:"any"};}
 +function peg$endExpectation(){return{type:"end"};}
 +function peg$otherExpectation(description){return{type:"other",description:description};}
 +function peg$computePosDetails(pos){var details=peg$posDetailsCache[pos],p;if(details){return details;}else{p=pos-1;while(!peg$posDetailsCache[p]){p--;}
 +details=peg$posDetailsCache[p];details={line:details.line,column:details.column};while(p<pos){if(input.charCodeAt(p)===10){details.line++;details.column=1;}else{details.column++;}
 +p++;}
 +peg$posDetailsCache[pos]=details;return details;}}
 +function peg$computeLocation(startPos,endPos){var startPosDetails=peg$computePosDetails(startPos),endPosDetails=peg$computePosDetails(endPos);return{start:{offset:startPos,line:startPosDetails.line,column:startPosDetails.column},end:{offset:endPos,line:endPosDetails.line,column:endPosDetails.column}};}
 +function peg$fail(expected){if(peg$currPos<peg$maxFailPos){return;}
 +if(peg$currPos>peg$maxFailPos){peg$maxFailPos=peg$currPos;peg$maxFailExpected=[];}
 +peg$maxFailExpected.push(expected);}
 +function peg$buildSimpleError(message,location){return new peg$SyntaxError(message,null,null,location);}
 +function peg$buildStructuredError(expected,found,location){return new peg$SyntaxError(peg$SyntaxError.buildMessage(expected,found),expected,found,location);}
 +function peg$parsestart(){var s0;s0=peg$parseadditive();return s0;}
 +function peg$parseadditive(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parsemultiplicative();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;if(peg$c0.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c1);}}
 +if(s4!==peg$FAILED){s5=peg$parsemultiplicative();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}
 +while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;if(peg$c0.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c1);}}
 +if(s4!==peg$FAILED){s5=peg$parsemultiplicative();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}}
 +if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c2(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsemultiplicative(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=peg$parsesignedexpression();if(s1!==peg$FAILED){s2=[];s3=peg$currPos;if(peg$c3.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c4);}}
 +if(s4!==peg$FAILED){s5=peg$parsesignedexpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}
 +if(s3===peg$FAILED){s3=peg$parsetrigonometric();if(s3===peg$FAILED){s3=peg$parsenumberlog();if(s3===peg$FAILED){s3=peg$parsesquareroot();}}}
 +while(s3!==peg$FAILED){s2.push(s3);s3=peg$currPos;if(peg$c3.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c4);}}
 +if(s4!==peg$FAILED){s5=peg$parsesignedexpression();if(s5!==peg$FAILED){s4=[s4,s5];s3=s4;}else{peg$currPos=s3;s3=peg$FAILED;}}else{peg$currPos=s3;s3=peg$FAILED;}
 +if(s3===peg$FAILED){s3=peg$parsetrigonometric();if(s3===peg$FAILED){s3=peg$parsenumberlog();if(s3===peg$FAILED){s3=peg$parsesquareroot();}}}}
 +if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c5(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsesignedexpression(){var s0,s1,s2;s0=peg$currPos;if(peg$c6.test(input.charAt(peg$currPos))){s1=input.charAt(peg$currPos);peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c7);}}
 +if(s1===peg$FAILED){s1=null;}
 +if(s1!==peg$FAILED){s2=peg$parseexpression();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c8(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parseexpression(){var s0;s0=peg$parsenumberlog();if(s0===peg$FAILED){s0=peg$parsepowerandroot();if(s0===peg$FAILED){s0=peg$parsetrigonometric();if(s0===peg$FAILED){s0=peg$parsefactorial();if(s0===peg$FAILED){s0=peg$parsenumberpi();if(s0===peg$FAILED){s0=peg$parsenumbere();if(s0===peg$FAILED){s0=peg$parseprimary();}}}}}}
 +return s0;}
 +function peg$parsenumberlog(){var s0;s0=peg$parselog10();if(s0===peg$FAILED){s0=peg$parseln();}
 +return s0;}
 +function peg$parselog10(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c9){s1=peg$c9;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c10);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c13(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parseln(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,3)===peg$c14){s1=peg$c14;peg$currPos+=3;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c15);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c16(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsepowerandroot(){var s0;s0=peg$parsesquareroot();if(s0===peg$FAILED){s0=peg$parsenthpower();}
 +return s0;}
 +function peg$parsepowerable(){var s0;s0=peg$parsenumberlog();if(s0===peg$FAILED){s0=peg$parsesquareroot();if(s0===peg$FAILED){s0=peg$parsetrigonometric();if(s0===peg$FAILED){s0=peg$parsefactorial();if(s0===peg$FAILED){s0=peg$parsenumberpi();if(s0===peg$FAILED){s0=peg$parsenumbere();if(s0===peg$FAILED){s0=peg$parseprimary();}}}}}}
 +return s0;}
 +function peg$parsesquareroot(){var s0,s1,s2;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===8730){s1=peg$c17;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c18);}}
 +if(s1!==peg$FAILED){s2=peg$parsesignedexpression();if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c19(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsenthpower(){var s0,s1,s2,s3;s0=peg$currPos;s1=peg$parsepowerable();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===94){s2=peg$c20;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c21);}}
 +if(s2!==peg$FAILED){s3=peg$parsesignedexpression();if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c22(s1,s3);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsetrigonometric(){var s0;s0=peg$parsesin();if(s0===peg$FAILED){s0=peg$parsecos();if(s0===peg$FAILED){s0=peg$parsetan();if(s0===peg$FAILED){s0=peg$parsearcsin();if(s0===peg$FAILED){s0=peg$parsearccos();if(s0===peg$FAILED){s0=peg$parsearctan();}}}}}
 +return s0;}
 +function peg$parsesin(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c23){s1=peg$c23;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c24);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c25(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsecos(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c26){s1=peg$c26;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c27);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c28(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsetan(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,4)===peg$c29){s1=peg$c29;peg$currPos+=4;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c30);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c31(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsearcsin(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c32){s1=peg$c32;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c33);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c34(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsearccos(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c35){s1=peg$c35;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c36);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c37(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsearctan(){var s0,s1,s2,s3;s0=peg$currPos;if(input.substr(peg$currPos,5)===peg$c38){s1=peg$c38;peg$currPos+=5;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c39);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c40(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsefactorial(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseprimary();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===33){s2=peg$c41;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c42);}}
 +if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c43(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parseprimary(){var s0,s1,s2,s3;s0=peg$parsepi();if(s0===peg$FAILED){s0=peg$parsee();if(s0===peg$FAILED){s0=peg$parsenumber();if(s0===peg$FAILED){s0=peg$currPos;if(input.charCodeAt(peg$currPos)===40){s1=peg$c44;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c45);}}
 +if(s1!==peg$FAILED){s2=peg$parseadditive();if(s2!==peg$FAILED){if(input.charCodeAt(peg$currPos)===41){s3=peg$c11;peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c12);}}
 +if(s3!==peg$FAILED){peg$savedPos=s0;s1=peg$c46(s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}}}}
 +return s0;}
 +function peg$parsenumberpi(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseprimary();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===960){s2=peg$c47;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48);}}
 +if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c49(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsepi(){var s0,s1;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===960){s1=peg$c47;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c48);}}
 +if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c50();}
 +s0=s1;return s0;}
 +function peg$parsenumbere(){var s0,s1,s2;s0=peg$currPos;s1=peg$parseprimary();if(s1!==peg$FAILED){if(input.charCodeAt(peg$currPos)===101){s2=peg$c51;peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c52);}}
 +if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c53(s1);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +return s0;}
 +function peg$parsee(){var s0,s1;s0=peg$currPos;if(input.charCodeAt(peg$currPos)===101){s1=peg$c51;peg$currPos++;}else{s1=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c52);}}
 +if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c54();}
 +s0=s1;return s0;}
 +function peg$parsenumber(){var s0,s1,s2,s3,s4,s5;s0=peg$currPos;s1=[];if(peg$c55.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c56);}}
 +if(s2!==peg$FAILED){while(s2!==peg$FAILED){s1.push(s2);if(peg$c55.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c56);}}}}else{s1=peg$FAILED;}
 +if(s1!==peg$FAILED){s2=peg$currPos;if(peg$c57.test(input.charAt(peg$currPos))){s3=input.charAt(peg$currPos);peg$currPos++;}else{s3=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c58);}}
 +if(s3!==peg$FAILED){s4=[];if(peg$c55.test(input.charAt(peg$currPos))){s5=input.charAt(peg$currPos);peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c56);}}
 +if(s5!==peg$FAILED){while(s5!==peg$FAILED){s4.push(s5);if(peg$c55.test(input.charAt(peg$currPos))){s5=input.charAt(peg$currPos);peg$currPos++;}else{s5=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c56);}}}}else{s4=peg$FAILED;}
 +if(s4!==peg$FAILED){s3=[s3,s4];s2=s3;}else{peg$currPos=s2;s2=peg$FAILED;}}else{peg$currPos=s2;s2=peg$FAILED;}
 +if(s2===peg$FAILED){s2=null;}
 +if(s2!==peg$FAILED){peg$savedPos=s0;s1=peg$c59(s1,s2);s0=s1;}else{peg$currPos=s0;s0=peg$FAILED;}}else{peg$currPos=s0;s0=peg$FAILED;}
 +if(s0===peg$FAILED){s0=peg$currPos;s1=peg$currPos;if(peg$c57.test(input.charAt(peg$currPos))){s2=input.charAt(peg$currPos);peg$currPos++;}else{s2=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c58);}}
 +if(s2!==peg$FAILED){s3=[];if(peg$c55.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c56);}}
 +if(s4!==peg$FAILED){while(s4!==peg$FAILED){s3.push(s4);if(peg$c55.test(input.charAt(peg$currPos))){s4=input.charAt(peg$currPos);peg$currPos++;}else{s4=peg$FAILED;if(peg$silentFails===0){peg$fail(peg$c56);}}}}else{s3=peg$FAILED;}
 +if(s3!==peg$FAILED){s2=[s2,s3];s1=s2;}else{peg$currPos=s1;s1=peg$FAILED;}}else{peg$currPos=s1;s1=peg$FAILED;}
 +if(s1!==peg$FAILED){peg$savedPos=s0;s1=peg$c60(s1);}
 +s0=s1;}
 +return s0;}
 +peg$result=peg$startRuleFunction();if(peg$result!==peg$FAILED&&peg$currPos===input.length){return peg$result;}else{if(peg$result!==peg$FAILED&&peg$currPos<input.length){peg$fail(peg$endExpectation());}
 +throw peg$buildStructuredError(peg$maxFailExpected,peg$maxFailPos<input.length?input.charAt(peg$maxFailPos):null,peg$maxFailPos<input.length?peg$computeLocation(peg$maxFailPos,peg$maxFailPos+1):peg$computeLocation(peg$maxFailPos,peg$maxFailPos));}}
 +return{SyntaxError:peg$SyntaxError,parse:peg$parse};})();
 +    </script>
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    
 +    <script type="text/javascript">
 +    if(!Element.prototype.matches){Element.prototype.matches=Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector;}
 +if(!Element.prototype.closest){Element.prototype.closest=function(s){'use strict';var el=this;do{if(el.matches(s)){return el;}
 +el=el.parentElement||el.parentNode;}while(el!==null&&el.nodeType===1);return null;};}
 +if(window.NodeList&&!NodeList.prototype.forEach){NodeList.prototype.forEach=function(callback,thisArg){'use strict';thisArg=thisArg||window;for(var i=0;i<this.length;i++){callback.call(thisArg,this[i],i,this);}};}
 +Number.isInteger=Number.isInteger||function(value){'use strict';return typeof value==='number'&&isFinite(value)&&Math.floor(value)===value;};if(!String.prototype.repeat){String.prototype.repeat=function(count){'use strict';if(this===null){throw new TypeError('can\'t convert '+this+' to object');}
 +var str=''+this;count=+count;if(count!==count){count=0;}
 +if(count<0){throw new RangeError('repeat count must be non-negative');}
 +if(count===Infinity){throw new RangeError('repeat count must be less than infinity');}
 +count=Math.floor(count);if(str.length===0||count===0){return'';}
 +if(str.length*count>=Math.pow(2,28)){throw new RangeError('repeat count must not overflow maximum string size');}
 +var maxCount=str.length*count;count=Math.floor(Math.log(count)/ Math.log(2));while(count){str+=str;count--;}
 +str+=str.substring(0,maxCount-str.length);return str;};}
 +if(typeof window.CustomEvent!=='function'){window.CustomEvent=function(eventName,params){'use strict';var bubbles=params.bubbles||false;var cancelable=params.cancelable||false;var detail=params.detail||null;var event=document.createEvent('CustomEvent');event.initCustomEvent(eventName,bubbles,cancelable,detail);return event;};window.CustomEvent.prototype=window.Event.prototype;}
 +if(!Array.prototype.includes){Array.prototype.includes=function(valueToFind){'use strict';return this.indexOf(valueToFind)!==-1;};}
 +(function(){'use strict';var answerSaver;var pinger;function MetaMap(){var metaMap={};document.querySelectorAll('meta').forEach(function(meta){if(meta.name in metaMap){if(Array.isArray(metaMap[meta.name])){metaMap[meta.name].push(meta.content);}else{metaMap[meta.name]=[metaMap[meta.name],meta.content,];}}else{metaMap[meta.name]=meta.content;}});this.getString=function(name){return metaMap[name];};this.getBool=function(name){var value=metaMap[name];if(typeof value==='undefined'){return value;}
 +return value==='true';};this.getInt=function(name){var value=metaMap[name];if(typeof value==='undefined'){return value;}
 +return parseInt(value,10);};this.getArray=function(name){var value=metaMap[name];if(Array.isArray(value)){return value;}else if(typeof value!=='undefined'){return[value];}else{return[];}};}
 +var metaMap=new MetaMap();var appPath=metaMap.getString('app-path');var pageId=metaMap.getString('page-id');var isExaminationPage=metaMap.getBool('examination')===true;var isExaminationForm=metaMap.getBool('examination-form')===true;var timerCheckpoint=metaMap.getInt('timer-checkpoint');var timerCountdown=metaMap.getInt('timer-countdown');var timerTitle=metaMap.getString('timer-title');var basetimeStamp=metaMap.getInt('base-timestamp');var tzOffset=metaMap.getInt('tz-offset');function currentTimestampMs(){return basetimeStamp+window.performance.now();}
 +function getClientTzOffset(){var clientTzOffset=new Date().getTimezoneOffset()*60*1000;return clientTzOffset-tzOffset;}
 +function timestampToTzCorrectedDate(timestamp){var date=new Date();var tzDiff=getClientTzOffset();date.setTime(timestamp+tzDiff);return date;}
 +function debounce(fn,delay){var debounceId=0;return function(){var context=this;var args=arguments;clearTimeout(debounceId);debounceId=setTimeout(function(){fn.apply(context,args);},delay);};}
 +function keyedDebounce(fn,delay){var map=new Map();return function(key){if(map.has(key)){return map.get(key);}else{var debouncedFn=debounce(fn,delay);map.set(key,debouncedFn);return debouncedFn;}};}
 +function DialogHandler(){this.previouslyActiveElement=null;this.mainContentWrapper=document.getElementById('main-content-wrapper');this.hiddenMessageContainer=document.getElementById('hidden-message-container');this.activeMessageContainer=document.getElementById('active-message-container');this.openDialog=function(dialogName){var dialog=document.getElementById(dialogName);if(dialog.parentNode===this.activeMessageContainer){return;}
 +dialog.querySelectorAll('form.ajax-submit.processing-error').forEach(function(form){form.classList.remove('processing-error');});dialog.querySelectorAll('form.ajax-submit fieldset.question-item.invalid').forEach(function(form){form.classList.remove('invalid');});if(!dialog.getAttribute('aria-label')){var dialogLabel=dialog.querySelector('.dialog-label');if(dialogLabel){dialog.setAttribute('aria-label',dialogLabel.textContent);}}
 +var priority=dialog.dataset.messagePriority;var topmostMessage=this.activeMessageContainer.querySelector('div.message-container:last-of-type');if(!topmostMessage){this.previouslyActiveElement=document.activeElement;}
 +if(priority==='logout'){this.activeMessageContainer.appendChild(dialog);}else if(priority==='urgent'){var loginDialog=this.activeMessageContainer.querySelector('div.message-container[data-message-priority="logout"]');this.activeMessageContainer.insertBefore(dialog,loginDialog);}else if(priority==='background'){var topmostBackgroundMessage=this.activeMessageContainer.querySelector('div.message-container[data-message-priority="background"]:last-of-type');if(topmostBackgroundMessage){if(topmostMessage.dataset.messagePriority==='background'){this.activeMessageContainer.insertBefore(dialog,topmostMessage);}else{this.activeMessageContainer.insertBefore(dialog,topmostBackgroundMessage.nextSibling);}}else{this.activeMessageContainer.insertBefore(dialog,this.activeMessageContainer.firstChild);}}else{var bottommostUrgentMessage=this.activeMessageContainer.querySelector('div.message-container[data-message-priority="urgent"]');this.activeMessageContainer.insertBefore(dialog,bottommostUrgentMessage);}
 +this.mainContentWrapper.style.visibility='hidden';this.mainContentWrapper.setAttribute('aria-hidden','true');var newTopmostMessage=this.activeMessageContainer.querySelector('div.message-container:last-of-type');if(dialog===newTopmostMessage){var firstFocusable=dialog.querySelector('input, select, button, [tabindex]');if(firstFocusable){firstFocusable.focus();}else{dialog.focus();}}};this.closeDialog=function(dialogName){this.hiddenMessageContainer.appendChild(document.getElementById(dialogName));if(!this.activeMessageContainer.querySelector('div.message-container')){this.mainContentWrapper.style.visibility='visible';this.mainContentWrapper.setAttribute('aria-hidden','false');if(this.previouslyActiveElement){this.previouslyActiveElement.focus();this.previouslyActiveElement=null;}}};this.isOpen=function(dialogName){var dialog=document.getElementById(dialogName);return dialog.parentNode===this.activeMessageContainer;};}
 +var dialogHandler=new DialogHandler();window.openDialog=function(id){dialogHandler.openDialog(id);};window.closeDialog=function(id){dialogHandler.closeDialog(id);};var REQUEST_KEY_HEADER='Request-Key';var PING_JITTER=1000;var PING_TIMEOUT=20*1000;var PING_DEFAULT_WAIT=10*1000;var PING_NETWORK_ERROR_WAIT=20*1000;var PING_TIMEOUT_WAIT=20*1000;var PING_ABORT_WAIT=10*1000;var PING_FAST_ENOUGH=250;var NETWORK_ERROR_MESSAGE_DELAY=30*1000*2;var NETWORK_ERROR_INTERRUPTION_MESSAGE_DELAY=60*1000*1000;var CHECK_FOCUS_INTERVAL=600;var ANSWER_DELAY=300;var ANSWER_TIMEOUT=PING_TIMEOUT;var ANSWER_RETRY_WAIT=PING_DEFAULT_WAIT;var TEXT_AUTOSAVE_FREQUENCY=30*1000;var TEXT_MODIFICATION_CHECK_DELAY=250;var INLINE_TEXT_AUTOSAVE_DELAY=2*1000;var INLINE_SELECT_AUTOSAVE_DELAY=800;var REQUEST_TIMEOUT=PING_TIMEOUT;var NOTIFICATION_DURATION=10*1000;var FORMULA_SVG_SCALE_FACTOR=1.25;function doRequest(method,path,data,successCallback,errorCallback,csrfToken){var request=new XMLHttpRequest();request.open(method,appPath+path,true);request.timeout=REQUEST_TIMEOUT;request.onload=function(){if(this.status>=200&&this.status<400){successCallback.call(this);}else{errorCallback.call(this,'load');}};request.onerror=function(){errorCallback.call(this,'error');};request.onabort=function(){errorCallback.call(this,'abort');};request.ontimeout=function(){errorCallback.call(this,'timeout');};if(csrfToken){request.setRequestHeader(REQUEST_KEY_HEADER,csrfToken);}
 +request.send(data);}
 +function onEvent(eventNames,handlerSelector,targetFilter,handler){if(!Array.isArray(eventNames)){eventNames=[eventNames];}
 +document.querySelectorAll(handlerSelector).forEach(function(handlerElement){eventNames.forEach(function(eventName){handlerElement.addEventListener(eventName,function(e){if(targetFilter===null){return handler.call(handlerElement,e);}else{var element=e.target;while(element){if(element.matches(targetFilter)){return handler.call(element,e);}
 +if(element===handlerElement){return;}
 +element=element.parentElement;}}},true);});});}
 +function documentReady(fn){if(document.attachEvent?document.readyState==='complete':document.readyState!=='loading'){fn();}else{document.addEventListener('DOMContentLoaded',fn);}}
 +function documentLoaded(fn){if(document.readyState==='complete'){fn();}else{window.addEventListener('load',fn);}}
 +function objectKeys(obj){var keys=[];for(var key in obj){if(Object.prototype.hasOwnProperty.call(obj,key)){keys.push(key);}}
 +return keys;}
 +function camelToUpper(camelStr){return camelStr.replace(/[\w]([A-Z])/g,function(match){return match[0]+'_'+match[1];}).toUpperCase();}
 +function PingState(){this.working=true;this.errors={};this.lastSuccessfulPing=0;this.connectionErrorTimer=null;this.requestTimestamp=null;this.lastResponseTime=null;this.setConnectionErrorTimeout=function(fn,timeout){this.clearConnectionErrorTimeout();var pingState=this;this.connectionErrorTimer=setTimeout(function(){pingState.clearConnectionErrorTimeout();fn(pingState);},timeout);};this.clearConnectionErrorTimeout=function(){if(this.connectionErrorTimer){clearTimeout(this.connectionErrorTimer);}
 +this.connectionErrorTimer=null;};this.resetErrors=function(){this.errors={};};this.clockIn=function(){this.requestTimestamp=performance.now();};this.clockOut=function(){this.lastResponseTime=null;if(this.requestTimestamp!==null){this.lastResponseTime=Math.round(performance.now()-this.requestTimestamp);}};this.asPingStatusJson=function(){var pingStatus={errorStatus:[],lastResponseTime:this.lastResponseTime};for(var property in this.errors){if(Object.prototype.hasOwnProperty.call(this.errors,property)&&this.errors[property]===true){pingStatus.errorStatus.push(camelToUpper(property));}}
 +return JSON.stringify(pingStatus);};}
 +function checkFocus(pingState){var hasFocus=document.hasFocus();if(!hasFocus){pingState.errors.lostFocus=true;}}
 +function svgViewBox(width,height){return'0 0 '+width+' '+height;}
 +function svgPathDefinition(width,height,classList){function d(template,values){var parts=template.split('?');var interleaved=[];for(var i=0;i<values.length;i++){interleaved.push(parts[i],values[i]);}
 +interleaved.push(parts[parts.length-1]);return interleaved.join('');}
 +var margin=4;var bezierCurve=width*0.25;if(classList.contains('horizontal')){return d('M?,? L?,?',[margin,margin,width-margin,margin,]);}else if(classList.contains('down')){return d('M?,? C?,? ?,? ?,?',[margin,margin,bezierCurve,margin,width-bezierCurve,height-margin,width-margin,height-margin,]);}else{return d('M?,? C?,? ?,? ?,?',[margin,height-margin,bezierCurve,height-margin,width-bezierCurve,margin,width-margin,margin,]);}}
 +function createConnectionSvg(referenceElement){var ns='http://www.w3.org/2000/svg';var svg=document.createElementNS(ns,'svg');var width=referenceElement.offsetWidth;var height=referenceElement.offsetHeight;svg.setAttributeNS(null,'viewBox',svgViewBox(width,height));svg.setAttributeNS(null,'preserveAspectRatio','none');svg.setAttributeNS(null,'focusable','false');var path=document.createElementNS(ns,'path');var pathSpec={stroke:'black','stroke-width':3,'stroke-linecap':'round',class:'connection-line',fill:'transparent',d:svgPathDefinition(width,height,referenceElement.classList),};for(var attribute in pathSpec){if(Object.prototype.hasOwnProperty.call(pathSpec,attribute)){path.setAttributeNS(null,attribute,pathSpec[attribute]);}}
 +svg.appendChild(path);return svg;}
 +function setConnectionSvg(container,svg){while(container.firstChild){container.removeChild(container.firstChild);}
 +if(svg){container.appendChild(svg);}}
 +function getRichTextInputValue(textInput){if(!textInput.matches('.formula-editor')){return textInput.innerHTML;}else{var clone=textInput.cloneNode(true);clone.querySelectorAll('[data-js="mathEditor"]').forEach(function(mathEditor){mathEditor.parentNode.removeChild(mathEditor);});var images=clone.getElementsByTagName('img');while(images.length>0){var image=images[0];var tex=image.alt;if(tex.length>0){var texSource=document.createElement('tex-source');texSource.innerText=tex;image.parentNode.replaceChild(texSource,image);}else{image.parentNode.removeChild(image);}}
 +var topLevelChild=textInput.firstChild;while(topLevelChild){var nextChild=topLevelChild.nextSibling;if(topLevelChild.tagName==='DIV'&&topLevelChild.childNodes.length===0){topLevelChild.parentNode.removeChild(topLevelChild);}
 +topLevelChild=nextChild;}
 +return clone.innerHTML;}}
 +function isRichTextInput(textInput){return textInput.classList.contains('formula-editor');}
 +function getTextInputValue(textInput){return isRichTextInput(textInput)?getRichTextInputValue(textInput):textInput.value;}
 +function getTextInputName(textInput){return textInput.name?textInput.name:textInput.dataset.name;}
 +function getTextInputMaxLength(textInput){return textInput.maxLength?textInput.maxLength:parseInt(textInput.dataset.maxLength);}
 +function encodeMultibyteUnicodeCharactersWithEntities(str){return str.replace(/[^\x00-\xFF]/g,function(c){return'&#'+c.charCodeAt(0).toString(10)+';';});}
 +function scaleSvgLength(value,factor){return value.replace(/^(.+?)([a-z%]*)$/,function(_,value,unit){var scaled=parseFloat(value)*factor;var result=''+scaled+unit;return result;});}
 +function makeOutputJaxContainer(){var container=document.createElement('div');container.style.visibility='hidden';container.style.position='absolute';container.style.width='0';container.style.height='0';container.innerText='\\({}\\)';return container;}
 +function jaxContainerToSvgUri(container){var svgElem=container.querySelector('svg');if(svgElem){svgElem=svgElem.cloneNode(true);svgElem.setAttribute('width',scaleSvgLength(svgElem.getAttribute('width'),FORMULA_SVG_SCALE_FACTOR));svgElem.setAttribute('height',scaleSvgLength(svgElem.getAttribute('height'),FORMULA_SVG_SCALE_FACTOR));svgElem.setAttribute('xmlns','http://www.w3.org/2000/svg');svgElem.querySelectorAll('use').forEach(function(useElem){if(!useElem.hasAttribute('xmlns:xlink')){useElem.setAttribute('xmlns:xlink','http://www.w3.org/1999/xlink');}});var svgHtml=svgElem.outerHTML;svgHtml=svgHtml.replace(' xlink=',' xmlns:xlink=');svgHtml=svgHtml.replace(/ ns\d+:href/gi,' xlink:href');return'data:image/svg+xml;base64,'+window.btoa(encodeMultibyteUnicodeCharactersWithEntities(svgHtml));}else{return'data:image/svg+xml;base64,'+window.btoa('<'+'?xml version="1.0" encoding="UTF-8" standalone="no"?>\n'+'<svg width="17px" height="15px" viewBox="0 0 17 15" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">\n'+'<title>Group 2</title>\n'+'<defs></defs>\n'+'<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">\n'+'    <g transform="translate(-241.000000, -219.000000)">\n'+'        <g transform="translate(209.000000, 207.000000)">\n'+'            <rect x="-1.58632797e-14" y="0" width="80" height="40"></rect>\n'+'            <g transform="translate(32.000000, 12.000000)">\n'+'                <polygon id="Combined-Shape" fill="#9B0000" fill-rule="nonzero" points="0 15 8.04006 0 16.08012 15"></polygon>\n'+'                <polygon id="Combined-Shape-path" fill="#FFFFFF" points="7 11 9 11 9 13 7 13"></polygon>\n'+'                <polygon id="Combined-Shape-path" fill="#FFFFFF" points="7 5 9 5 9 10 7 10"></polygon>\n'+'            </g>\n'+'        </g>\n'+'    </g>\n'+'</g>\n'+'</svg>');}}
 +function makeRenderFormulaFunction(){var mathjaxContainer=makeOutputJaxContainer();document.body.appendChild(mathjaxContainer);var outputJaxPromise=new Promise(function(resolve){MathJax.Hub.Queue(['Typeset',MathJax.Hub,mathjaxContainer]);MathJax.Hub.Queue(function(){var outputJax=MathJax.Hub.getAllJax(mathjaxContainer)[0];resolve(outputJax);});});return function(latex,callback){outputJaxPromise.then(function(outputJax){MathJax.Hub.Queue(['Text',outputJax,'\\displaystyle{'+latex+'}']);MathJax.Hub.Queue(function(){callback(jaxContainerToSvgUri(mathjaxContainer));});});};}
 +function loadAnswerCount(callback){var status={total:0,answered:0,saved:0,unsaved:0};var radioItems={};document.querySelectorAll('fieldset > div.radio > div.input-wrap > input').forEach(function(radio){radioItems[radio.name]=true;if(radio.checked){status.answered++;}});status.total+=Object.keys(radioItems).length;var savedRadioCount=document.querySelectorAll('fieldset > div.radio > div.input-wrap.saved').length;status.saved+=savedRadioCount;var unsavedRadioCount=document.querySelectorAll('fieldset > div.radio > div.input-wrap.saving').length;status.unsaved+=unsavedRadioCount;var checkboxItems={};document.querySelectorAll('fieldset > div.checkboxes > div.input-wrap > input').forEach(function(checkbox){checkboxItems[checkbox.name]=true;});var checkboxesCount=Object.keys(checkboxItems).length;status.total+=checkboxesCount;var checkedboxItems={};document.querySelectorAll('fieldset > div.checkboxes > div.input-wrap.saved > input:checked').forEach(function(checkedbox){checkedboxItems[checkedbox.name]=true;});var savedCheckboxesCount=Object.keys(checkedboxItems).length;status.saved+=savedCheckboxesCount;var connectOptionsCount=document.querySelectorAll('fieldset > div.connect-options').length;status.total+=connectOptionsCount;var connectedConnectOptionsItems={};document.querySelectorAll('fieldset div.connect-options input.connection-input:checked').forEach(function(connectionInput){var connectionElement=document.getElementById(connectionInput.dataset.connectionElementId);if(connectionElement.classList.contains('saved')){connectedConnectOptionsItems[connectionInput.dataset.itemId]=true;}});status.saved+=Object.keys(connectedConnectOptionsItems).length;document.querySelectorAll('fieldset > div.text .text-input').forEach(function(textInput){status.total++;if(textInput.dataset.lastSavedValue&&textInput.dataset.lastSavedValue.length>0){status.saved++;}
 +if(textInput.dataset.lastSavedValue!==getTextInputValue(textInput).trim()){status.unsaved++;}
 +if(getTextInputValue(textInput).trim()){status.answered++;}});document.querySelectorAll('.inline-item .text-input').forEach(function(textInput){var inputWrap=textInput.closest('.input-wrap');status.total++;var hasContent=getTextInputValue(textInput).trim().length>0;if(inputWrap.classList.contains('saved')&&hasContent){status.saved++;}
 +if(inputWrap.classList.contains('saving')){status.unsaved++;}
 +if(hasContent){status.answered++;}});document.querySelectorAll('.inline-item select').forEach(function(select){var inlineStatus=select.parentNode.querySelector('.inline-status');status.total++;if(inlineStatus.classList.contains('saved')){status.saved++;}
 +if(inlineStatus.classList.contains('saving')){status.unsaved++;}
 +if(select.value||select.selectedIndex>0){status.answered++;}});callback(status);}
 +function updateAnswerCount(callback){loadAnswerCount(function(status){var displayAllNotAnswered=status.answered<status.total;document.querySelectorAll('.all-not-answered').forEach(function(element){element.style.display=displayAllNotAnswered?'':'none';});var displayUnsavedChanges=status.unsaved>0;document.querySelectorAll('.unsaved-answers').forEach(function(element){element.style.display=displayUnsavedChanges?'':'none';});var answerStatusContent=document.getElementById('return-confirmation-answer-status');if(answerStatusContent!==null){var templateText=answerStatusContent.dataset.templateText;answerStatusContent.textContent=templateText.replace('{questions}',status.total).replace('{answers}',status.saved);}
 +callback();});}
 +var onloadResizeFunction;documentReady(function(){var enableAutosaving=!!metaMap.getString('answer-key');var connectionCheckOnlyWhenPinging=metaMap.getBool('ping-connection-check-only');pinger={enablePings:!!metaMap.getString('ping-key'),pauseActivatedByPing:false,pingKey:metaMap.getString('ping-key'),currentTimeout:null,eventEndTimeElement:document.querySelector('.event-end-time'),setPingTimeout:function(pingState,timeout){var pinger=this;var jitter=PING_JITTER*2*Math.random()-PING_JITTER;pinger.currentTimeout=setTimeout(function(){pinger.ping(pingState);},timeout+jitter);},ping:function(pingState){if(!this.enablePings){return;}
 +if(!pingState){pingState=new PingState();setInterval(function(){checkFocus(pingState);},CHECK_FOCUS_INTERVAL);}
 +var pinger=this;var networkErrorMessage=document.getElementById('network-error-message');var networkErrorOverMessage=document.getElementById('network-error-over-message');var networkInterruptionDialog='network-error';var request=new XMLHttpRequest();request.open('POST',appPath+'/ping',true);request.timeout=PING_TIMEOUT;request.onload=function(){pingState.clockOut();pingState.clearConnectionErrorTimeout();networkErrorMessage.style.display='none';dialogHandler.closeDialog(networkInterruptionDialog);if(pingState.working===false){networkErrorOverMessage.style.display='';}else{networkErrorOverMessage.style.display='none';}
 +pingState.working=true;if(!pinger.enablePings){return;}
 +if(this.status>=200&&this.status<400){pinger.setPingTimeout(pingState,PING_DEFAULT_WAIT);pingState.lastSuccessfulPing=currentTimestampMs();pingState.resetErrors();var response=JSON.parse(this.response);if(!connectionCheckOnlyWhenPinging){var setRemainingTime=false;var pauseResponse=response.view.includes('pause');var currentPageIdIsValid=response.view.includes(pageId);if(pauseResponse){if(!pinger.pauseActivatedByPing){setRemainingTime=true;pinger.pauseActivatedByPing=true;dialogHandler.openDialog('paused-examination');document.getElementById('pause-over-message').style.display='none';answerSaver.cancelRetries();}}else{if(pinger.pauseActivatedByPing){setRemainingTime=true;pinger.pauseActivatedByPing=false;dialogHandler.closeDialog('paused-examination');document.getElementById('pause-over-message').style.display='';setTimeout(function(){document.getElementById('pause-over-message').style.display='none';},NOTIFICATION_DURATION);answerSaver.flushAnswers();}
 +if(isExaminationPage&&response.totalTimeLeft<=0||isExaminationForm&&response.sectionTimeLeft<=0){setRemainingTime=true;if(response.totalTimeLeft<=0){pinger.stopPinging();}
 +if(!dialogHandler.isOpen('forced-end-examination')){updateAnswerCount(function(){dialogHandler.openDialog('forced-end-examination');});}}
 +if(pingState.lastResponseTime<PING_FAST_ENOUGH){setRemainingTime=true;}
 +if(!currentPageIdIsValid){pinger.stopPinging();dialogHandler.openDialog('forced-refresh');window.location.reload();}}
 +if(setRemainingTime){timerCheckpoint=currentTimestampMs();if(isExaminationForm){timerCountdown=response.sectionTimeLeft;}else{timerCountdown=response.totalTimeLeft;}
 +if(pinger.eventEndTimeElement){var remainingTime=timestampToTzCorrectedDate(currentTimestampMs()+response.totalTimeLeft*1000+1000);var hours=remainingTime.getHours();var minutes=remainingTime.getMinutes();if(minutes<10){minutes='0'+minutes;}
 +var time=hours+'.'+minutes;pinger.eventEndTimeElement.textContent=time;}}}}else if(this.status===401){dialogHandler.openDialog('session-invalid');}else if(this.status===409){dialogHandler.openDialog('invalid-page-load-id');}else{pingState.errors.errorStatus=true;pinger.setPingTimeout(pingState,PING_DEFAULT_WAIT);}};request.onerror=function(){if(pingState.working&&pingState.connectionErrorTimer===null){pingState.setConnectionErrorTimeout(function(){networkErrorMessage.style.display='';networkErrorOverMessage.style.display='none';pingState.working=false;pingState.setConnectionErrorTimeout(function(){dialogHandler.openDialog(networkInterruptionDialog);timerCountdown=null;},NETWORK_ERROR_INTERRUPTION_MESSAGE_DELAY-NETWORK_ERROR_MESSAGE_DELAY);},NETWORK_ERROR_MESSAGE_DELAY);}
 +pingState.errors.connectionError=true;pinger.setPingTimeout(pingState,PING_NETWORK_ERROR_WAIT);};request.onabort=function(){pingState.errors.requestAborted=true;pinger.setPingTimeout(pingState,PING_ABORT_WAIT);};request.ontimeout=function(){pingState.errors.connectionTimeout=true;pinger.setPingTimeout(pingState,PING_TIMEOUT_WAIT);};request.setRequestHeader(REQUEST_KEY_HEADER,pinger.pingKey);pingState.clockIn();request.send(pingState.asPingStatusJson());},stopPinging:function(){if(this.currentTimeout!==null){clearTimeout(this.currentTimeout);}
 +this.currentTimeout=null;this.enablePings=false;},};if(pinger.enablePings){setTimeout(function(){pinger.ping();},2*1000);}
 +window.addEventListener('beforeunload',function(event){pinger.stopPinging();delete event.returnValue;});function setFieldsetDisabled(fieldset,disabled){fieldset.querySelectorAll('input, select, button, textarea').forEach(function(element){element.disabled=disabled;});if(disabled){fieldset.classList.add('disabled');fieldset.classList.remove('invalid');}else{fieldset.classList.remove('disabled');}}
 +var consentQuestionIds=metaMap.getArray('consent-question-id');var agreeAnswerIds=metaMap.getArray('consent-agree-answer-id');function defineConsentSelectionHandler(consentQuestionId){onEvent('change','#'+consentQuestionId,'input',function(){var agreed=false;for(var i=0;i<agreeAnswerIds.length;i++){agreed=agreed||document.querySelector('.form input[value="'+agreeAnswerIds[i]+'"]').checked;}
 +document.querySelectorAll('.form fieldset.question-item').forEach(function(fieldset){if(consentQuestionIds.indexOf(fieldset.id)!==-1){setFieldsetDisabled(fieldset,false);}else{setFieldsetDisabled(fieldset,!agreed);}});});}
 +if(consentQuestionIds.length&&agreeAnswerIds.length){document.querySelectorAll('.form fieldset.question-item').forEach(function(fieldset){if(consentQuestionIds.indexOf(fieldset.id)!==-1){setFieldsetDisabled(fieldset,false);}else{setFieldsetDisabled(fieldset,true);}});for(var i=0;i<consentQuestionIds.length;i++){var consentQuestionId=consentQuestionIds[i];defineConsentSelectionHandler(consentQuestionId);}}
 +function checkRequiredFields(form){var isValid=true;if(form.matches('.require-all-fields')){form.querySelectorAll('fieldset.question-item:not(.disabled)').forEach(function(fieldset){var checkedElement=fieldset.querySelector('input:checked, option:checked');if(!checkedElement||!checkedElement.value){isValid=false;fieldset.classList.add('invalid');}});if(!isValid){form.classList.add('validation-error');return isValid;}
 +form.classList.remove('validation-error');}else if(form.matches('.require-credentials')){form.querySelectorAll('div.help-text').forEach(function(helpItem){helpItem.style.display='none';});form.querySelectorAll('div.input.credentials input[type=text], div.input.credentials input[type=password]').forEach(function(input){var val=input.value.trim();if(val===''){isValid=false;document.getElementById('error-check-username').style.display='';}});if(!isValid){return isValid;}}
 +return isValid;}
 +function createValidationErrorElement(fieldset,htmlContent){if(!htmlContent){return;}
 +var div=document.createElement('div');div.classList.add('validation-error-message');div.innerHTML=htmlContent;fieldset.insertBefore(div,fieldset.firstChild);}
 +document.querySelectorAll('form.require-all-fields').forEach(function(form){var formMessage=form.dataset.invalidMessage;form.querySelectorAll('fieldset.question-item').forEach(function(fieldset){createValidationErrorElement(fieldset,fieldset.dataset.invalidMessage||formMessage);});});onEvent('submit','body','form.ajax-submit',function(event){event.preventDefault();var form=this;if(form.classList.contains('processing')){return;}
 +form.classList.remove('processing-error');if(!checkRequiredFields(form)){return;}
 +form.classList.add('processing');doRequest('POST',form.getAttribute('action'),new FormData(form),function(){var response=JSON.parse(this.responseText);if(response.location){pinger.stopPinging();window.location.replace(response.location);}else{form.classList.remove('processing');}},function(){form.classList.remove('processing');form.classList.add('processing-error');var event=new CustomEvent('ajax-submit-error',{detail:this});form.dispatchEvent(event);},form.dataset.formKey);});onEvent('change','body','form.require-all-fields input',function(){var form=this.closest('form');form.classList.remove('validation-error');});function AnswerSet(){this.answers={};this.putAnswer=function(answer){var key=answer.itemId;if(answer.subItem2Id){key+='-'+answer.subItemId;}
 +this.answers[key]=answer;};this.forEach=function(fn){var answers=this.answers;objectKeys(answers).forEach(function(key){fn(answers[key],key);});};this.clone=function(){var answers=this.answers;var clone=new AnswerSet();objectKeys(answers).forEach(function(key){clone.putAnswer(answers[key]);});return clone;};this.diff=function(other){var answers=this.answers;var diff=new AnswerSet();objectKeys(answers).forEach(function(key){var current=answers[key];var otherValue=other.get(key);if(current!==otherValue){diff.putAnswer(current);}});return diff;};this.get=function(key){return this.answers[key];};this.isEmpty=function(){return objectKeys(this.answers).length===0;};}
 +function AnswerSaver(){var answerKey=metaMap.getString('answer-key');function requestData(answers){var data=[];answers.forEach(function(answer){data.push({itemId:answer.itemId,subItemId:answer.subItemId,subItem2Id:answer.subItem2Id,setValue:answer.setValue,textValue:answer.textValue,timestamp:answer.timestamp,});});return JSON.stringify(data);}
 +function answerXhr(data,successCallback,errorCallback){var request=new XMLHttpRequest();request.open('POST',appPath+'/answer',true);request.timeout=ANSWER_TIMEOUT;request.onload=function(){if(this.status>=200&&this.status<400){successCallback.call(this);}else{errorCallback.call(this,'load');}};request.onerror=function(){errorCallback.call(this,'error');};request.onabort=function(){errorCallback.call(this,'abort');};request.ontimeout=function(){errorCallback.call(this,'timeout');};request.setRequestHeader(REQUEST_KEY_HEADER,answerKey);request.send(data);}
 +this.savedTimestamps={};this.awaitingAnswers=new AnswerSet();this.retryTimerId=0;this.save=function(answer){this.awaitingAnswers.putAnswer(answer);this.doAnswerRequest();};this.flushAnswers=function(){if(this.awaitingAnswers.isEmpty()){return;}
 +this.doAnswerRequest();};this.cancelRetries=function(){if(this.retryTimerId){clearTimeout(this.retryTimerId);}
 +this.retryTimerId=0;};this.scheduleRetry=function(){var answerSaver=this;answerSaver.cancelRetries();answerSaver.retryTimerId=setTimeout(function(){answerSaver.retryTimerId=0;answerSaver.doAnswerRequest();},ANSWER_RETRY_WAIT);};this.doAnswerRequest=function(){this.cancelRetries();if(this.awaitingAnswers.isEmpty()){return;}
 +var requestAnswers=this.awaitingAnswers.clone();var data=requestData(requestAnswers);var answerSaver=this;answerXhr(data,function(){var xhr=this;var diff=answerSaver.awaitingAnswers.diff(requestAnswers);answerSaver.awaitingAnswers=diff;requestAnswers.forEach(function(answer,key){var savedTimestamp=answerSaver.savedTimestamps[key];if(typeof savedTimestamp==='undefined'){savedTimestamp=0;}
 +if(answer.timestamp>savedTimestamp){answer.savedCallBack.call(xhr);answerSaver.savedTimestamps[key]=answer.timestamp;}});if(!answerSaver.awaitingAnswers.isEmpty()){answerSaver.scheduleRetry();}},function(errorType){var retry=false;if(errorType==='load'&&this.status>=400&&this.status<500){if(this.status===401){dialogHandler.openDialog('session-invalid');}else if(this.status===409){dialogHandler.openDialog('invalid-page-load-id');}else if(this.status===429){retry=true;}
 +if(retry){answerSaver.scheduleRetry();}}else{answerSaver.scheduleRetry();}
 +requestAnswers.forEach(function(answer,key){if(answer.errorCallback){var savedTimestamp=answerSaver.savedTimestamps[key];if(typeof savedTimestamp==='undefined'){savedTimestamp=0;}
 +if(answer.timestamp>savedTimestamp){answer.errorCallback.call(this,retry);}}});});};}
 +answerSaver=new AnswerSaver();function baseSaveAnswer(itemId,options,savedCallBack,errorCallback){answerSaver.save({itemId:itemId,subItemId:options.subItemId,subItem2Id:options.subItem2Id,setValue:options.setValue,textValue:options.textValue,timestamp:Math.round(currentTimestampMs()),savedCallBack:savedCallBack,errorCallback:errorCallback,});}
 +function makeSaveFunction(delay){var debounced=keyedDebounce(baseSaveAnswer,delay);return function(){debounced(arguments[0]).apply(null,arguments);};}
 +var saveAnswer=makeSaveFunction(ANSWER_DELAY);var mouseActivatedConnectFromInput=null;onEvent('mouseup','html',null,function(){mouseActivatedConnectFromInput=null;});onEvent('mousedown','.form','.connect-options .connect-options-from-input',function(){mouseActivatedConnectFromInput=this;});function getConnectToContainer(containedElement){return containedElement.closest('.connect-options');}
 +function switchConnectToOptions(container,connectFromInput){var targetClass;if(connectFromInput&&connectFromInput.checked){targetClass=connectFromInput.dataset.targetClass;}else{targetClass='connect-options-to-default';}
 +container.querySelectorAll('.connect-options-to, .connection-input').forEach(function(target){var matches=target.matches('.'+targetClass);if(matches){target.classList.add('active');}else{target.classList.remove('active');}});}
 +function updateContainerActivity(container){var anyFromChecked=container.querySelector('input.connect-options-from-input:checked');if(anyFromChecked){container.classList.add('active');}else{container.classList.remove('active');}}
 +function clearOtherConnectFromInputs(container,connectFromInput){var referenceId=null;if(connectFromInput){referenceId=connectFromInput.id;}
 +container.querySelectorAll('.connect-options-from-input').forEach(function(otherInput){var isSame=referenceId===otherInput.id;if(!isSame){otherInput.checked=false;}});updateContainerActivity(container);}
 +onEvent('change','.form','.connect-options .connect-options-from-input',function(){var container=getConnectToContainer(this);clearOtherConnectFromInputs(container,this);switchConnectToOptions(container,this);});onEvent('focus','.form','.connect-options .connect-options-from-input',function(){if(mouseActivatedConnectFromInput===this){return;}
 +var container=getConnectToContainer(this);clearOtherConnectFromInputs(container,this);switchConnectToOptions(container,this);});function focusOrChangeAnywhere(e){var targetContainer=getConnectToContainer(e.target);document.querySelectorAll('.form .connect-options').forEach(function(anotherContainer){if(anotherContainer!==targetContainer){clearOtherConnectFromInputs(anotherContainer,null);switchConnectToOptions(anotherContainer,null);anotherContainer.classList.remove('active');}});}
 +onEvent('focus','html',null,focusOrChangeAnywhere);onEvent('change','html',null,focusOrChangeAnywhere);onEvent('change','.form','.connect-options .connection-input',function(){var connectionInput=this;var fromId=connectionInput.dataset.fromId;var toId=connectionInput.dataset.toId;var container=connectionInput.closest('.connect-options');var connectionElement=document.getElementById(connectionInput.dataset.connectionElementId);var isChecked=connectionInput.checked;if(isChecked){container.querySelectorAll('.connection-input').forEach(function(otherInput){var sameFrom=fromId===otherInput.dataset.fromId;var sameTo=toId===otherInput.dataset.toId;if(sameFrom&&!sameTo||!sameFrom&&sameTo){otherInput.checked=false;var otherConnectionElement=document.getElementById(otherInput.dataset.connectionElementId);setConnectionSvg(otherConnectionElement,null);}});var svg=createConnectionSvg(connectionElement);setConnectionSvg(connectionElement,svg);}
 +if(enableAutosaving){connectionElement.classList.add('saving');connectionElement.classList.remove('saved');connectionElement.classList.remove('saved-animation');saveAnswer(container.dataset.itemId,{subItemId:connectionInput.dataset.fromId,subItem2Id:connectionInput.dataset.toId,setValue:connectionInput.checked},function(){connectionElement.classList.remove('saving');connectionElement.classList.add('saved');connectionElement.classList.add('saved-animation');if(!isChecked){setConnectionSvg(connectionElement,null);}});}});onEvent('change','.form','.connect-options input',function(){var container=getConnectToContainer(this);updateContainerActivity(container);});function resize(){document.querySelectorAll('.form .connect-options .connection svg').forEach(function(svg){var container=svg.parentNode;if(!container.offsetParent){return;}
 +var viewBox=svg.getAttribute('viewBox');var width=container.offsetWidth;var height=container.offsetHeight;var referenceBox=svgViewBox(width,height);if(referenceBox!==viewBox){var path=svg.querySelector('path');svg.setAttributeNS(null,'viewBox',referenceBox);path.setAttributeNS(null,'d',svgPathDefinition(width,height,container.classList));}});}
 +onloadResizeFunction=resize;var resizeTimeoutId=null;window.onresize=function(){if(resizeTimeoutId){clearTimeout(resizeTimeoutId);}
 +var id=setTimeout(function(){if(id===resizeTimeoutId){resizeTimeoutId=null;}
 +requestAnimationFrame(resize);},100);resizeTimeoutId=id;};document.querySelectorAll('.form .connect-options input.connection-input:checked').forEach(function(input){var connectionElement=document.getElementById(input.dataset.connectionElementId);var svg=createConnectionSvg(connectionElement);setConnectionSvg(connectionElement,svg);});onEvent('change','.form','.radio input',function(){var fieldset=this.closest('fieldset.question-item');fieldset.classList.remove('invalid');var radio=this;var wrapper=radio.parentNode;var container=radio.closest('fieldset');var allItemButtons=container.querySelectorAll('input');allItemButtons.forEach(function(itemButton){var wrapper=itemButton.parentNode;wrapper.classList.remove('saving');wrapper.classList.remove('saved');wrapper.classList.remove('saved-animation');});if(enableAutosaving){wrapper.classList.add('saving');var deleteItem=fieldset.querySelector('.radio.delete-answer');var deleteInput=deleteItem.querySelector('input');var setValue=radio.dataset.setValue!=='false';deleteInput.value=radio.value;saveAnswer(radio.name,{subItemId:radio.value,subItem2Id:null,setValue:setValue},function(){wrapper.classList.remove('saving');if(radio.checked){wrapper.classList.add('saved');wrapper.classList.add('saved-animation');deleteItem.style.visibility='visible';}});}});onEvent('change','.form','.checkboxes input',function(){this.closest('fieldset.question-item').classList.remove('invalid');var wrapper=this.parentNode;wrapper.classList.remove('saved');wrapper.classList.remove('saved-animation');if(enableAutosaving){wrapper.classList.add('saving');saveAnswer(this.name,{subItemId:this.value,subItem2Id:null,setValue:this.checked},function(){wrapper.classList.remove('saving');wrapper.classList.add('saved');wrapper.classList.add('saved-animation');});}});function stringToDate(dateString){var tzDiff=getClientTzOffset();var date=new Date(dateString);date.setTime(date.getTime()+tzDiff);return date;}
 +var textInputs=document.querySelectorAll('.form .text .text-input');var textIntevalId=0;function setupTextAutosaveInterval(saveTextCallback){if(textIntevalId){clearInterval(textIntevalId);}
 +textIntevalId=setInterval(function(){textInputs.forEach(function(textInput){saveTextCallback(textInput);});},TEXT_AUTOSAVE_FREQUENCY);}
 +function saveText(textInput){var trimmedValue=getTextInputValue(textInput).trim();if(textInput.dataset.lastSavedValue!==trimmedValue){if(trimmedValue.length>getTextInputMaxLength(textInput)){return;}
 +if(textInput.dataset.valueBeingSaved===trimmedValue){return;}
 +textInput.dataset.valueBeingSaved=trimmedValue;var container=textInput.closest('div.text');var savedNotificationElement=container.querySelector('.text-saved-notification');var lastSavedElement=container.querySelector('.status .last-saved');container.classList.add('saving');savedNotificationElement.classList.remove('saved-animation');var itemId=getTextInputName(textInput);var setValue=trimmedValue.length>0;saveAnswer(itemId,{textValue:getTextInputValue(textInput),setValue:setValue},function(){delete textInput.dataset.valueBeingSaved;textInput.dataset.lastSavedValue=trimmedValue;container.classList.remove('changed');container.classList.remove('saving');savedNotificationElement.classList.add('saved-animation');var serverDate=stringToDate(this.getResponseHeader('Date'));var hours=serverDate.getHours();var minutes=serverDate.getMinutes();if(minutes<10){minutes='0'+minutes;}
 +var time=hours+'.'+minutes;lastSavedElement.textContent=lastSavedElement.dataset.template.replace('{time}',time);setupTextAutosaveInterval(saveText);},function(){container.classList.remove('saving');delete textInput.dataset.valueBeingSaved;});}}
 +function updateLengthInfo(container,textInput,counter,value){var maxLength=getTextInputMaxLength(textInput);var errorMessageId=getTextInputName(textInput)+'-too-long-answer';var errorMessageElement=document.getElementById(errorMessageId);if(value.length>maxLength){container.classList.add('too-long-answer');if(errorMessageElement&&textInput.getAttribute('aria-invalid')!=='true'){textInput.setAttribute('aria-invalid','true');textInput.setAttribute('aria-errormessage',errorMessageId);errorMessageElement.setAttribute('role','alert');}}else{container.classList.remove('too-long-answer');if(errorMessageElement&&textInput.getAttribute('aria-invalid')!=='false'){textInput.setAttribute('aria-invalid','false');textInput.removeAttribute('aria-errormessage');errorMessageElement.removeAttribute('role');}}
 +if(counter){counter.textContent=counter.dataset.template.replace('{used}',textInput.value.length).replace('{total}',maxLength);}}
 +onEvent('click','.form','.text button.save-text',function(){var container=this.closest('div.text');var textInput=container.querySelector('.text-input');saveText(textInput);});onEvent(['input','math-input'],'.form','.text .text-input',function(){var textInput=this;if(textInput.tagName==='TEXTAREA'){textInput.parentNode.setAttribute('data-value',textInput.value);}
 +if(textInput.dataset.checkTimeoutId){return;}
 +textInput.dataset.checkTimeoutId=setTimeout(function(){delete textInput.dataset.checkTimeoutId;var container=textInput.closest('div.text');var value=getTextInputValue(textInput).trim();if(textInput.dataset.lastSavedValue!==value){container.classList.add('changed');}else{container.classList.remove('changed');}
 +updateLengthInfo(container,textInput,container.querySelector('.character-count'),value);},TEXT_MODIFICATION_CHECK_DELAY);});textInputs.forEach(function(textInput){var value=getTextInputValue(textInput).trim();textInput.dataset.lastSavedValue=value;var container=textInput.closest('div.text');updateLengthInfo(container,textInput,container.querySelector('.character-count'),value);});if(enableAutosaving&&textInputs.length>0){setupTextAutosaveInterval(saveText);}
 +onEvent('focus','.form','.inline.select select',function(){var select=this;if(select.value&&!select.dataset.currentValue){select.dataset.currentValue=select.value;}});var saveInlineSelectAnswer=makeSaveFunction(INLINE_SELECT_AUTOSAVE_DELAY);onEvent('change','.form','.inline.select select',function(){var select=this;var oldValue=select.dataset.currentValue;var inlinStatus=select.parentNode.querySelector('.inline-status');inlinStatus.classList.remove('saving');inlinStatus.classList.remove('saved');inlinStatus.classList.remove('saved-animation');if(enableAutosaving){inlinStatus.classList.add('saving');var subItemId=select.value;var setValue=true;if(!subItemId){setValue=false;subItemId=oldValue;if(!subItemId){for(var i=0;i<select.options.length;i++){var candidateValue=select.options[i].value;if(candidateValue){subItemId=candidateValue;break;}}}}
 +saveInlineSelectAnswer(select.name,{subItemId:subItemId,subItem2Id:null,setValue:setValue},function(){inlinStatus.classList.remove('saving');inlinStatus.classList.add('saved');inlinStatus.classList.add('saved-animation');});}
 +if(select.options[0].value===''&&select.selectedIndex>0){select.remove(0);}
 +select.dataset.currentValue=select.options[select.selectedIndex].value;});var saveInlineTextInputAnswer=makeSaveFunction(INLINE_TEXT_AUTOSAVE_DELAY);onEvent('input','.form','.inline.single-line .text-input',function(){var textInput=this;var wrapper=textInput.parentNode;wrapper.classList.remove('saved');wrapper.classList.remove('saved-animation');var savedNotificationElement=wrapper.querySelector('.inline-saved-notification');if(savedNotificationElement){savedNotificationElement.parentNode.removeChild(savedNotificationElement);}
 +if(enableAutosaving){wrapper.classList.add('saving');var trimmedValue=getTextInputValue(textInput).trim();var setValue=trimmedValue.length>0;saveInlineTextInputAnswer(getTextInputName(textInput),{textValue:getTextInputValue(textInput),setValue:setValue},function(){wrapper.classList.remove('saving');wrapper.classList.add('saved');var savedNotificationElement=document.createElement('DIV');savedNotificationElement.classList.add('saved-animation');savedNotificationElement.classList.add('inline-saved-notification');savedNotificationElement.dataset.savedMessage=wrapper.dataset.savedMessage;wrapper.appendChild(savedNotificationElement);});}});onEvent('click','#active-message-container','div.message-container .close-dialog',function(){var messageContainer=this.closest('div.message-container');dialogHandler.closeDialog(messageContainer.id);});onEvent('click','#logout-button',null,function(){dialogHandler.openDialog('confirm-logout');});onEvent('ajax-submit-error','#login-form',null,function(event){var xhr=event.detail;var status=xhr.status;var errorElement='';if(status===401){errorElement='error-check-username';}else if(status>=400&&status<500){errorElement='error-contact-supervisor';}else if(status>=500&&status<600){errorElement='error-server-failure';}else if(!status){errorElement='error-network-failure';}
 +document.getElementById(errorElement).style.display='';});onEvent('click','#end-examination-btn',null,function(){if(!dialogHandler.isOpen('end-examination')){updateAnswerCount(function(){dialogHandler.openDialog('end-examination');});}});onEvent('click','.start-examination-button',null,function(event){event.preventDefault();var form=document.getElementById('start-examination-form');form.action=this.dataset.action;form.dataset.formKey=this.dataset.formKey;var question=document.getElementById('confirm-start-examination-question');if(question===null){document.getElementById('confirm-start-examination-btn').click();dialogHandler.openDialog('start-examination');}else{question.textContent=question.dataset.text.replace('{examinationName}',this.dataset.examinationName);dialogHandler.openDialog('start-examination');}});onEvent('submit','#language-choice',null,function(event){event.preventDefault();if(!checkRequiredFields(this)){return;}
 +var languageInput=this.querySelector('input[name="language"]:checked');if(languageInput){var language=languageInput.value;dialogHandler.openDialog('confirm-language-'+language);}});function getVerticalScroll(){if(window.pageYOffset!==undefined){return window.pageYOffset;}else{var d=document,r=d.documentElement,b=d.body;return r.scrollTop||b.scrollTop||0;}}
 +var oldVerticalScroll=getVerticalScroll();var topBarTop=0;var topBarWrap=document.querySelector('div.topbar-wrap');if(topBarWrap){topBarTop=topBarWrap.getBoundingClientRect().top;}
 +var topBarPlaceholder=document.querySelector('div.topbar-placeholder');function resizeTopBarPlaceholder(){if(topBarPlaceholder){topBarPlaceholder.style.height=''+topBarWrap.offsetHeight+'px';}}
 +resizeTopBarPlaceholder();if(topBarPlaceholder){var scrollThreshold=Math.abs(oldVerticalScroll+topBarTop);if(oldVerticalScroll>scrollThreshold){document.body.classList.add('fixed');}
 +window.addEventListener('scroll',function(){var verticalScroll=getVerticalScroll();if(oldVerticalScroll>scrollThreshold===verticalScroll>scrollThreshold){return;}
 +if(verticalScroll>scrollThreshold){document.body.classList.add('fixed');}else{document.body.classList.remove('fixed');}
 +oldVerticalScroll=verticalScroll;},true);window.addEventListener('resize',function(){resizeTopBarPlaceholder();},true);}
 +var eTimer;function getRemainingTime(countDown){if(typeof timerCheckpoint==='undefined'){return null;}else{var diff=currentTimestampMs()-timerCheckpoint;return countDown-Math.floor(diff / 1000);}}
 +var remainingTimeElement=document.getElementById('remaining-time');var remainingTimeTitleElement=document.getElementById('remaining-time-title');function updateTextContent(element,text,callback){if(!element){return;}
 +if(element.dataset.textContentCache!==text){element.textContent=text;element.dataset.textContentCache=text;if(callback){callback();}}}
 +function UpdateRemainingTime(){if(typeof timerCheckpoint!=='undefined'&&typeof timerCountdown!=='undefined'&&typeof timerTitle!=='undefined'&&timerCountdown!==null){var timeLeft=getRemainingTime(timerCountdown);if(timerTitle!==null){updateTextContent(remainingTimeTitleElement,timerTitle,resizeTopBarPlaceholder);}
 +if(timeLeft>60){var text=remainingTimeElement.dataset.templateText.replace('{remainingTime}',Math.ceil(timeLeft / 60));updateTextContent(remainingTimeElement,text,resizeTopBarPlaceholder);}else if(timeLeft>0){updateTextContent(remainingTimeElement,remainingTimeElement.dataset.lessThanMinuteText,resizeTopBarPlaceholder);}else{if(eTimer!==undefined){clearInterval(eTimer);}
 +updateTextContent(remainingTimeTitleElement,'',resizeTopBarPlaceholder);updateTextContent(remainingTimeElement,'',resizeTopBarPlaceholder);if(!dialogHandler.isOpen('forced-end-examination')){updateAnswerCount(function(){dialogHandler.openDialog('forced-end-examination');});}}}else{updateTextContent(remainingTimeTitleElement,'',resizeTopBarPlaceholder);updateTextContent(remainingTimeElement,'',resizeTopBarPlaceholder);}}
 +(function(){var PRECISION_DECIMALS_SMALL=7;var PRECISION_DECIMALS_BIG=12;var PRECISION_THRESHOLD=0.01;var AVAILABLE_CLASS_NAME='available';var mem;var ans;function displayNotation(number,addParentheses){var rounded;var precision;if(Math.abs(number)<PRECISION_THRESHOLD){precision=PRECISION_DECIMALS_SMALL;}else{precision=PRECISION_DECIMALS_BIG;}
 +rounded=parseFloat(number.toPrecision(precision));var match=rounded.toString().match(/([^e]*)e([+-])(\d+)$/);var notation=rounded;if(match===null){notation=parseFloat(notation);}else{var coef=parseFloat(match[1]);var exp=parseInt(match[2]+match[3]);notation=coef+'×10^'+exp;if(addParentheses){notation='('+notation+')';}}
 +return notation;}
 +function evaluate(){var expr=document.getElementById('expression').value;expr=expr.replace(/\s/g,'');expr=expr.replace(/–/g,'-');expr=expr.replace(/ANS/g,'('+ans+')');var result=window.mathParser.parse(expr);return result;}
 +function memoryInActivation(){var memInAvailable=false;if(document.getElementById('expression').value){try{var a=evaluate();if(!isNaN(a)){memInAvailable=true;}}catch(e){memInAvailable=false;}}
 +if(memInAvailable){document.getElementById('m_in').classList.add(AVAILABLE_CLASS_NAME);}else{document.getElementById('m_in').classList.remove(AVAILABLE_CLASS_NAME);}}
 +function handleExpressionChange(fillParentheses,posFromEnd){var expression=document.getElementById('expression').value;if(fillParentheses){var missing=0;for(var i=0;i<expression.length;i++){if(expression[i]==='('){missing++;}else if(expression[i]===')'){missing--;}
 +if(missing<0){break;}}
 +if(missing>0){expression+=')'.repeat(missing);}}
 +expression=expression.replace(/([0-9)eÏ€S])([AsctlaeÏ€(√])/g,'$1×$2');expression=expression.replace(/\*/g,'×');expression=expression.replace(/-/g,'–');expression=expression.replace(/\//g,'÷');expression=expression.replace(/,/g,'.');expression=expression.replace(/[^0-9sincotalgeÏ€().+–×÷√^ANS]/g,'');document.getElementById('expression').value=expression;document.getElementById('expression').selectionStart=expression.length-posFromEnd;document.getElementById('expression').selectionEnd=document.getElementById('expression').selectionStart;document.getElementById('expression').focus();memoryInActivation();}
 +function calculate(){handleExpressionChange(true,0);var result=Number.NaN;try{result=evaluate();ans=displayNotation(result,true);}catch(e){}
 +if(isNaN(result)){document.getElementById('ans').classList.remove(AVAILABLE_CLASS_NAME);document.getElementById('result').value=document.getElementById('result').dataset.syntaxErrorMessage;}else{document.getElementById('ans').classList.add(AVAILABLE_CLASS_NAME);document.getElementById('result').value=displayNotation(result,false);}}
 +function toExpression(str){str=str.toString();var pos=document.getElementById('expression').selectionStart;var original=document.getElementById('expression').value;document.getElementById('expression').value=[original.slice(0,pos),str,original.slice(pos)].join('');var posFromEnd=document.getElementById('expression').value.length-pos-str.length;handleExpressionChange(false,posFromEnd);}
 +onEvent('click','#calc button.key',null,function(){if(this.classList.contains('input')){var content=this.dataset.expression||this.textContent;if(this.dataset.suffix){content+=this.dataset.suffix;}
 +toExpression(content);}else if(this.id==='m_in'){if(this.classList.contains(AVAILABLE_CLASS_NAME)){try{mem=displayNotation(evaluate(),true);document.getElementById('m_out').classList.add(AVAILABLE_CLASS_NAME);}catch(e){mem=null;document.getElementById('m_out').classList.remove(AVAILABLE_CLASS_NAME);memoryInActivation();}}}else if(this.id==='m_out'){if(this.classList.contains(AVAILABLE_CLASS_NAME)&&mem){toExpression(mem);}}else if(this.id==='ans'){if(this.classList.contains(AVAILABLE_CLASS_NAME)){toExpression('ANS');}}else if(this.id==='delete'){var val=document.getElementById('expression').value;document.getElementById('expression').value=val.substr(0,val.length-1);handleExpressionChange(false,0);}else if(this.id==='clearall'){if(document.getElementById('expression').value===''){document.getElementById('result').value='';}else{document.getElementById('expression').value='';}
 +memoryInActivation();}else if(this.id==='equals'){calculate();}});onEvent('keyup','#calc','input#expression',function(){var posFromEnd=document.getElementById('expression').value.length-document.getElementById('expression').selectionStart;if(event.which===13||event.keyCode===13){calculate();}else{handleExpressionChange(false,posFromEnd);}});onEvent('click','#calcwrapper','div.calctab',function(){var calcwrapper=document.getElementById('calcwrapper');if(calcwrapper.classList.contains('opened')){calcwrapper.classList.add('closed');calcwrapper.classList.remove('opened');}else{calcwrapper.classList.add('opened');calcwrapper.classList.remove('closed');}});})();(function(){var countdown=document.getElementById('countdown');if(countdown){var countdownInterval;var countdownTarget=metaMap.getInt('countdown-target');var templateText=countdown.dataset.template;var countdownFn=function(){var timeLeft=Math.round((countdownTarget-currentTimestampMs())/ 1000);if(timeLeft<1){clearInterval(countdownInterval);countdown.textContent=countdown.dataset.justAMoment;}else{var seconds=timeLeft%60;timeLeft=Math.floor(timeLeft / 60);var minutes=timeLeft;countdown.textContent=templateText.replace('{minutes}',minutes).replace('{seconds}',seconds);}};countdownInterval=setInterval(countdownFn,1000);countdownFn();}})();onEvent('change','body.login #viewUsername','input',function(e){document.getElementById('username').type=e.target.checked?'text':'password';});onEvent('click','body.login','.language-choice button',function(e){e.preventDefault();var loginContent=document.getElementById('content');loginContent.classList.remove('display-language-fi');loginContent.classList.remove('display-language-sv');loginContent.classList.remove('display-language-en');loginContent.classList.add('display-language-'+this.lang);});if(window.MathJax){var renderFormula=makeRenderFormulaFunction();var renderingFormulaLabel=metaMap.getString('rendering-formula-label');var formulaEditorLanguage=metaMap.getString('formula-editor-language');document.querySelectorAll('.formula-editor').forEach(function(element){var existingFormulas=[];element.querySelectorAll('tex-source').forEach(function(texSource){var initFormula=new Promise(function(resolve){var latex=texSource.innerText;var placeholder=document.createElement('div');placeholder.classList.add('tex-loading');placeholder.textContent=renderingFormulaLabel;texSource.parentNode.replaceChild(placeholder,texSource);renderFormula(latex,function(svg){var img=document.createElement('img');img.src=svg;img.alt=latex;placeholder.parentNode.replaceChild(img,placeholder);resolve();});});existingFormulas.push(initFormula);});onEvent('DOMNodeInserted',`[data-name="${element.dataset.name}"]`,null,function(e){var newElement=e.target;if(newElement.tagName==='SPAN'&&!newElement.closest('div.math-editor')){newElement.replaceWith(...newElement.childNodes);element.normalize();}});Promise.all(existingFormulas).then(function(){makeRichText(element,{baseUrl:'/',updateMathImg:function($img,latex){renderFormula(latex,function(svg){$img.prop({src:svg,alt:latex,});$img.closest('[data-js="answer"]').trigger('input');});},locale:formulaEditorLanguage,},function(){var event=new CustomEvent('math-input',{detail:element});element.dispatchEvent(event);});element.setAttribute('aria-readonly','false');});});}
 +eTimer=setInterval(UpdateRemainingTime,1000);UpdateRemainingTime();});documentLoaded(function(){var pageIntegrityEnabled=metaMap.getBool('page-integrity')!==false;function hideLoadingNotification(){var loadingElement=document.getElementById('loading-page-content');if(loadingElement&&loadingElement.parentNode){loadingElement.parentNode.removeChild(loadingElement);}}
 +function reportError(failureType,extraInfo){doRequest('POST','/report-error',JSON.stringify({pageLoadError:failureType,userAgent:window.navigator.userAgent,extraInfo:extraInfo,}),function(){},function(){},null);}
 +function loadingFailed(failureType,extraInfo){hideLoadingNotification();dialogHandler.openDialog('page-load-failure');extraInfo.preventedPageLoad=true;reportError(failureType,extraInfo);if(pinger){pinger.stopPinging();}}
 +var pageEndGuard=document.getElementById('page-end-guard');var endGuardOk=pageEndGuard&&pageEndGuard.parentNode===document.body;if(!endGuardOk&&pageIntegrityEnabled){loadingFailed('html-end-guard',{pageEndGuard:pageEndGuard?pageEndGuard.outerHTML:'<no pageEndGuard found>',parent:pageEndGuard&&pageEndGuard.parentNode?pageEndGuard.parentNode.tagName:'<parent node not found>',});return;}
 +if(typeof document.styleSheets!=='undefined'&&pageIntegrityEnabled){var origin=window.location.origin;var failedStyleSheets=[];var allGuardsOk=true;for(var i=0;i<document.styleSheets.length;i++){var styleSheet=document.styleSheets[i];var href='<unknown href>';try{href=styleSheet.href;if(!href){href='<no href>';}
 +if(href.substring(0,origin.length)!==origin){continue;}
 +var foundGuard=false;var lastSelector='<no rules>';for(var j=0;j<styleSheet.cssRules.length;j++){var selector=styleSheet.cssRules[j].selectorText;if(selector==='div.stylesheet-end-guard'){foundGuard=true;break;}
 +lastSelector=selector;}
 +if(!foundGuard){allGuardsOk=false;failedStyleSheets.push(href+': no end guard found, last selector is "'+lastSelector+'"');}}catch(e){failedStyleSheets.push(href+': '+(e.message?e.message:'<exception with no message>'));}}
 +if(!allGuardsOk){loadingFailed('css-end-guard',{failedStyleSheets:failedStyleSheets,});}}
 +var calculator=document.getElementById('calc-wrapper');if(calculator){if(typeof window.mathParser==='undefined'&&pageIntegrityEnabled){var scripts=[];document.querySelectorAll('script').forEach(function(script){scripts.push(script.src);});loadingFailed('calculator',{scripts:scripts,});return;}}
 +var mainContentWrapper=document.getElementById('main-content-wrapper');if(mainContentWrapper){mainContentWrapper.style.display='';}
 +hideLoadingNotification();onloadResizeFunction();});})();
 +    </script>
 +</head>
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +<!-- Calculator begins -->
 +<div id="calcwrapper" class="show" aria-display="hidden">
 +    <div class="calctab open" title="Näytä laskin">laskin</div>
 +    <div class="calctab close" title="Piilota laskin">&times;</div>
 +    <div id="calc">
 +        <div id="display">
 +            <span class="resultbg">
 +                <input type="text" name="result" id="result" readonly="readonly" value="" data-syntax-error-message="Tarkista syöte" />
 +            </span>
 +            <input type="text" name="expression" id="expression" />
 +        </div>
 +
 +        <div id="keypad">
 +            <div class="keyrow">
 +                <button class="key storage" id="m_in">M<sub>in</sub></button>
 +                <button class="key storage" id="m_out">M<sub>out</sub></button>
 +                <button class="key storage" id="ans">ANS</button>
 +                <button class="key input logarithm" data-suffix="(">log</button>
 +                <button class="key input logarithm" data-suffix="(">ln</button>
 +            </div>
 +            <div class="keyrow">
 +                <button class="key input trigonometry" data-suffix="(">sin</button>
 +                <button class="key input trigonometry" data-suffix="(">cos</button>
 +                <button class="key input trigonometry" data-suffix="(">tan</button>
 +                <button class="key input power" data-expression="&Hat;2"><span class="lettersymbol">x</span><sup>2</sup></button>
 +                <button class="key input power">&radic;</button>
 +            </div>
 +
 +            <div class="keyrow">
 +                <button class="key input trigonometry" data-expression="asin(">sin<sup>-1</sup></button>
 +                <button class="key input trigonometry" data-expression="acos(">cos<sup>-1</sup></button>
 +                <button class="key input trigonometry" data-expression="atan(">tan<sup>-1</sup></button>
 +                <button class="key input power" data-expression="&times;10&Hat;">&times;10<sup class="lettersymbol">x</sup></button>
 +                <button class="key input power lettersymbol" data-expression="&Hat;">x<sup>y</sup></button>
 +            </div>
 +
 +            <div class="keyrow">
 +                <button class="key input number">1</button>
 +                <button class="key input number">2</button>
 +                <button class="key input number">3</button>
 +                <button class="key input parenthesis">(</button>
 +                <button class="key input parenthesis">)</button>
 +            </div>
 +
 +            <div class="keyrow">
 +                <button class="key input number">4</button>
 +                <button class="key input number">5</button>
 +                <button class="key input number">6</button>
 +                <button class="key input arithmetics">+</button>
 +                <button class="key input arithmetics">&#8211;</button>
 +            </div>
 +
 +            <div class="keyrow">
 +                <button class="key input number">7</button>
 +                <button class="key input number">8</button>
 +                <button class="key input number">9</button>
 +                <button class="key input arithmetics">&times;</button>
 +                <button class="key input arithmetics">&divide;</button>
 +            </div>
 +
 +
 +            <div class="keyrow">
 +                <button class="key input number">.</button>
 +                <button class="key input number">0</button>
 +                <button class="key input number" data-expression="&#8211;">(-)</button>
 +                <button class="key input number lettersymbol">&pi;</button>
 +                <button class="key input number lettersymbol">e</button>
 +            </div>
 +
 +            <div class="keyrow">
 +                <button class="key delete" id="delete">&#x232b;</button>
 +                <button class="key delete" id="clearall">AC</button>
 +                <div class="nokey"></div>
 +                <div class="nokey"></div>
 +                <button class="key equals" id="equals">=</button>
 +            </div>
 +
 +        </div>
 +    </div>
 +</div>
 +<!-- Calculator ends --></html>
 +
 {{statdisplay>all}} {{statdisplay>all}}