function _typeof(obj){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(obj){return typeof obj}:function(obj){return obj&&"function"==typeof Symbol&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj},_typeof(obj)}define("taoQtiTest/controller/creator/areaBroker",["lodash","ui/areaBroker"],function(_,areaBroker){'use strict';return _.partial(areaBroker,["creator","itemSelectorPanel","contentCreatorPanel","propertyPanel","elementPropertyPanel"])}),define("taoQtiTest/controller/creator/config/defaults",["lodash","module"],function(_,module){'use strict';return function(){var config=0= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,helperMissing=helpers.helperMissing,stack1,helper,options;return buffer+="
\n\n

",(helper=helpers.identifier)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.identifier,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n \n

\n
\n\n \n
\n\n \n
\n
",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/section",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,helperMissing=helpers.helperMissing,stack1,helper,options;return buffer+="
\n\n\n

",(helper=helpers.title)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.title,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n

\n\n
\n

\n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Rubric Blocks",options):helperMissing.call(depth0,"__","Rubric Blocks",options)))+"\n

\n
    \n \n
    \n
    \n

    \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Items",options):helperMissing.call(depth0,"__","Items",options)))+"\n

    \n
      \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Add selected item(s) here.",options):helperMissing.call(depth0,"__","Add selected item(s) here.",options)))+"\n
      \n
      \n
      ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/rubricblock",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,helper,options;return buffer+="
    1. \n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n
      \n
    2. ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/itemref",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,helperMissing=helpers.helperMissing,stack1,helper,options;return buffer+="
    3. \n ",stack1=(helper=helpers.dompurify||depth0&&depth0.dompurify,options={hash:{},data:data},helper?helper.call(depth0,depth0&&depth0.label,options):helperMissing.call(depth0,"dompurify",depth0&&depth0.label,options)),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n
      \n
      \n
      \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
      \n
      \n
      \n
    4. ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/outcomes",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(depth0,data){var buffer="",stack1,helper;return buffer+="\n
      \n
      ",(helper=helpers.name)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.name,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"
      \n
      ",(helper=helpers.type)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.type,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"
      \n
      ",(helper=helpers.cardinality)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.cardinality,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"
      \n
      \n",buffer}function program3(depth0,data){var buffer="",helper,options;return buffer+="\n
      \n
      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"no outcome declaration found",options):helperMissing.call(depth0,"__","no outcome declaration found",options)))+"
      \n
      \n",buffer}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,helperMissing=helpers.helperMissing,self=this,stack1,helper,options;return buffer+="
      \n
      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Identifier",options):helperMissing.call(depth0,"__","Identifier",options)))+"
      \n
      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Type",options):helperMissing.call(depth0,"__","Type",options)))+"
      \n
      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Cardinality",options):helperMissing.call(depth0,"__","Cardinality",options)))+"
      \n
      \n",stack1=helpers.each.call(depth0,depth0&&depth0.outcomes,{hash:{},inverse:self.program(3,program3,data),fn:self.program(1,program1,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer})}),define("tpl!taoQtiTest/controller/creator/templates/test-props",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(depth0,data){var buffer="",stack1,helper,options;return buffer+="\n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Select the way the responses of your test should be processed",options):helperMissing.call(depth0,"__","Select the way the responses of your test should be processed",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Also compute the score per categories",options):helperMissing.call(depth0,"__","Also compute the score per categories",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Set the cut score (or pass score ratio) associated to the test. It must be a float between 0 and 1.",options):helperMissing.call(depth0,"__","Set the cut score (or pass score ratio) associated to the test. It must be a float between 0 and 1.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Set the weight identifier used to process the score",options):helperMissing.call(depth0,"__","Set the weight identifier used to process the score",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n ",stack1=helpers.each.call(depth0,depth0&&depth0.modes,{hash:{},inverse:self.noop,fn:self.program(5,program5,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n
      \n
      \n
      \n",buffer}function program2(depth0,data){var buffer="",stack1,helper;return buffer+="\n \n ",buffer}function program3(){return"selected=\"selected\""}function program5(depth0,data){var buffer="",stack1,helper;return buffer+="\n
      \n \n ",(helper=helpers.description)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.description,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n
      \n ",buffer}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,self=this,helperMissing=helpers.helperMissing,stack1,helper,options;return buffer+="
      \n\n \n

      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The principle identifier of the test.",options):helperMissing.call(depth0,"__","The principle identifier of the test.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The test title.",options):helperMissing.call(depth0,"__","The test title.",options)))+"\n
      \n
      \n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Time Limits",options):helperMissing.call(depth0,"__","Time Limits",options)))+"

      \n\n\n
      \n\n\n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Maximum duration for the all test.",options):helperMissing.call(depth0,"__","Maximum duration for the all test.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Late submission allowed",options):helperMissing.call(depth0,"__","Late submission allowed",options)))+"\n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Whether a candidate's response that is beyond the maximum duration should still be accepted.",options):helperMissing.call(depth0,"__","Whether a candidate's response that is beyond the maximum duration should still be accepted.",options)))+"\n
      \n
      \n
      \n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Scoring",options):helperMissing.call(depth0,"__","Scoring",options)))+"

      \n\n\n",stack1=helpers["with"].call(depth0,depth0&&depth0.scoring,{hash:{},inverse:self.noop,fn:self.program(1,program1,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Outcome declarations",options):helperMissing.call(depth0,"__","Outcome declarations",options)))+"

      \n\n \n
      \n
      \n
      \n \n
      \n
      \n
      \n
      \n\n
      ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/testpart-props",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(){return"checked"}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,helperMissing=helpers.helperMissing,self=this,stack1,helper,options;return buffer+="
      \n

      ",(helper=helpers.identifier)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.identifier,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"

      \n\n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The test part identifier.",options):helperMissing.call(depth0,"__","The test part identifier.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Navigation",options):helperMissing.call(depth0,"__","Navigation",options)))+" *\n
      \n
      \n \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The navigation mode determines the general paths that the candidate may take. A linear mode restricts the candidate to attempt each item in turn. Non Linear removes this restriction.",options):helperMissing.call(depth0,"__","The navigation mode determines the general paths that the candidate may take. A linear mode restricts the candidate to attempt each item in turn. Non Linear removes this restriction.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Submission",options):helperMissing.call(depth0,"__","Submission",options)))+" *\n
      \n
      \n \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The submission mode determines when the candidate's responses are submitted for response processing. A testPart in individual mode requires the candidate to submit their responses on an item-by-item basis. In simultaneous mode the candidate's responses are all submitted together at the end of the testPart.",options):helperMissing.call(depth0,"__","The submission mode determines when the candidate's responses are submitted for response processing. A testPart in individual mode requires the candidate to submit their responses on an item-by-item basis. In simultaneous mode the candidate's responses are all submitted together at the end of the testPart.",options)))+"\n
      \n
      \n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Item Session Control",options):helperMissing.call(depth0,"__","Item Session Control",options)))+"

      \n\n\n\n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Controls the maximum number of attempts allowed. 0 means unlimited.",options):helperMissing.call(depth0,"__","Controls the maximum number of attempts allowed. 0 means unlimited.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"This constraint affects the visibility of feedback after the end of the last attempt.",options):helperMissing.call(depth0,"__","This constraint affects the visibility of feedback after the end of the last attempt.",options)))+"\n
      \n
      \n
      \n\n\n\n\n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"This constraint controls whether or not the candidate is allowed to provide a comment on the item during the session. Comments are not part of the assessed responses.",options):helperMissing.call(depth0,"__","This constraint controls whether or not the candidate is allowed to provide a comment on the item during the session. Comments are not part of the assessed responses.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"If the candidate can skip the item, without submitting a response (default is true).",options):helperMissing.call(depth0,"__","If the candidate can skip the item, without submitting a response (default is true).",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The candidate is not allowed to submit invalid responses.",options):helperMissing.call(depth0,"__","The candidate is not allowed to submit invalid responses.",options)))+"\n
      \n
      \n
      \n\n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Time Limits",options):helperMissing.call(depth0,"__","Time Limits",options)))+"

      \n\n\n
      \n\n\n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Maximum duration for this test part.",options):helperMissing.call(depth0,"__","Maximum duration for this test part.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Whether a candidate's response that is beyond the maximum duration of the test part should still be accepted.",options):helperMissing.call(depth0,"__","Whether a candidate's response that is beyond the maximum duration of the test part should still be accepted.",options)))+"\n
      \n
      \n
      \n
      \n
      \n
      ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/section-props",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(depth0,data){var buffer="",helper,options;return buffer+="\n
      \n
      \n \n
      \n\n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Associate a blueprint to a section allow you to validate this section against the specified blueprint.",options):helperMissing.call(depth0,"__","Associate a blueprint to a section allow you to validate this section against the specified blueprint.",options)))+"\n
      \n
      \n
      \n ",buffer}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,self=this,stack1,helper,options;return buffer+="
      \n

      ",(helper=helpers.title)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.title,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"

      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The identifier of the section.",options):helperMissing.call(depth0,"__","The identifier of the section.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The section title.",options):helperMissing.call(depth0,"__","The section title.",options)))+"\n
      \n
      \n
      \n\n\n\n\n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"A visible section is one that is identifiable by the candidate.",options):helperMissing.call(depth0,"__","A visible section is one that is identifiable by the candidate.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n\n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"An invisible section with a parent that is subject to shuffling can specify whether or not its children, which will appear to the candidate as if they were part of the parent, are shuffled as a block or mixed up with the other children of the parent section.",options):helperMissing.call(depth0,"__","An invisible section with a parent that is subject to shuffling can specify whether or not its children, which will appear to the candidate as if they were part of the parent, are shuffled as a block or mixed up with the other children of the parent section.",options)))+"\n
      \n
      \n
      \n\n ",stack1=helpers["if"].call(depth0,depth0&&depth0.hasBlueprint,{hash:{},inverse:self.noop,fn:self.program(1,program1,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n\n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Section level category enables configuring the categories of its composing items all at once. A category in gray means that all items have that category. A category in white means that only a few items have that category.",options):helperMissing.call(depth0,"__","Section level category enables configuring the categories of its composing items all at once. A category in gray means that all items have that category. A category in white means that only a few items have that category.",options)))+"\n
      \n
      \n
      \n\n \n
      \n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Selection",options):helperMissing.call(depth0,"__","Selection",options)))+"

      \n\n\n
      \n\n
      \n
      \n \n
      \n\n
      \n \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The number of child elements to be selected.",options):helperMissing.call(depth0,"__","The number of child elements to be selected.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n\n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"When selecting child elements each element is normally eligible for selection once only.",options):helperMissing.call(depth0,"__","When selecting child elements each element is normally eligible for selection once only.",options)))+"\n
      \n
      \n
      \n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Ordering",options):helperMissing.call(depth0,"__","Ordering",options)))+"

      \n\n\n
      \n\n
      \n
      \n \n
      \n\n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"If set, it causes the order of the child elements to be randomized, otherwise it uses the order in which the child elements are defined.",options):helperMissing.call(depth0,"__","If set, it causes the order of the child elements to be randomized, otherwise it uses the order in which the child elements are defined.",options)))+"\n
      \n
      \n
      \n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Item Session Control",options):helperMissing.call(depth0,"__","Item Session Control",options)))+"

      \n\n\n
      \n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Controls the maximum number of attempts allowed. 0 means unlimited.",options):helperMissing.call(depth0,"__","Controls the maximum number of attempts allowed. 0 means unlimited.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"This constraint affects the visibility of feedback after the end of the last attempt.",options):helperMissing.call(depth0,"__","This constraint affects the visibility of feedback after the end of the last attempt.",options)))+"\n
      \n
      \n
      \n\n\n\n\n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"This constraint controls whether or not the candidate is allowed to provide a comment on the item during the session. Comments are not part of the assessed responses.",options):helperMissing.call(depth0,"__","This constraint controls whether or not the candidate is allowed to provide a comment on the item during the session. Comments are not part of the assessed responses.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"If the candidate can skip the item, without submitting a response (default is true).",options):helperMissing.call(depth0,"__","If the candidate can skip the item, without submitting a response (default is true).",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The candidate is not allowed to submit invalid responses.",options):helperMissing.call(depth0,"__","The candidate is not allowed to submit invalid responses.",options)))+"\n
      \n
      \n
      \n\n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Time Limits",options):helperMissing.call(depth0,"__","Time Limits",options)))+"

      \n\n\n
      \n\n\n\n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Maximum duration for this section.",options):helperMissing.call(depth0,"__","Maximum duration for this section.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Whether a candidate's response that is beyond the maximum duration of the section should still be accepted.",options):helperMissing.call(depth0,"__","Whether a candidate's response that is beyond the maximum duration of the section should still be accepted.",options)))+"\n
      \n
      \n
      \n
      \n
      ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/itemref-props",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(){return"hidden"}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,helperMissing=helpers.helperMissing,self=this,stack1,helper,options;return buffer+="
      \n\n

      ",stack1=(helper=helpers.dompurify||depth0&&depth0.dompurify,options={hash:{},data:data},helper?helper.call(depth0,depth0&&depth0.label,options):helperMissing.call(depth0,"dompurify",depth0&&depth0.label,options)),(stack1||0===stack1)&&(buffer+=stack1),buffer+="

      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The identifier of the item reference.",options):helperMissing.call(depth0,"__","The identifier of the item reference.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The reference.",options):helperMissing.call(depth0,"__","The reference.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"If required it must appear (at least once) in the selection.",options):helperMissing.call(depth0,"__","If required it must appear (at least once) in the selection.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Not shuffled, the position remains fixed.",options):helperMissing.call(depth0,"__","Not shuffled, the position remains fixed.",options)))+"\n
      \n
      \n
      \n\n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Items can optionally be assigned to one or more categories.",options):helperMissing.call(depth0,"__","Items can optionally be assigned to one or more categories.",options)))+"\n
      \n
      \n
      \n\n \n \n\n \n
      \n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Weights",options):helperMissing.call(depth0,"__","Weights",options)))+"

      \n\n
      \n
      \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Identifier",options):helperMissing.call(depth0,"__","Identifier",options)))+"\n
      \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Value",options):helperMissing.call(depth0,"__","Value",options)))+"\n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Controls the contribution of an individual item score to the overall test score.",options):helperMissing.call(depth0,"__","Controls the contribution of an individual item score to the overall test score.",options)))+"\n
      \n
      \n
      \n\n
      \n \n
      \n\n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Item Session Control",options):helperMissing.call(depth0,"__","Item Session Control",options)))+"

      \n\n\n
      \n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Controls the maximum number of attempts allowed. 0 means unlimited.",options):helperMissing.call(depth0,"__","Controls the maximum number of attempts allowed. 0 means unlimited.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"This constraint affects the visibility of feedback after the end of the last attempt.",options):helperMissing.call(depth0,"__","This constraint affects the visibility of feedback after the end of the last attempt.",options)))+"\n
      \n
      \n
      \n\n\n\n\n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"This constraint controls whether or not the candidate is allowed to provide a comment on the item during the session. Comments are not part of the assessed responses.",options):helperMissing.call(depth0,"__","This constraint controls whether or not the candidate is allowed to provide a comment on the item during the session. Comments are not part of the assessed responses.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"If the candidate can skip the item, without submitting a response (default is true).",options):helperMissing.call(depth0,"__","If the candidate can skip the item, without submitting a response (default is true).",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"The candidate is not allowed to submit invalid responses.",options):helperMissing.call(depth0,"__","The candidate is not allowed to submit invalid responses.",options)))+"\n
      \n
      \n
      \n\n
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Time Limits",options):helperMissing.call(depth0,"__","Time Limits",options)))+"

      \n\n\n
      \n\n
      \n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Minimum duration : enforces the test taker to stay on the item for the given duration.",options):helperMissing.call(depth0,"__","Minimum duration : enforces the test taker to stay on the item for the given duration.",options)))+"
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Maximum duration : the items times out when the duration reaches 0.",options):helperMissing.call(depth0,"__","Maximum duration : the items times out when the duration reaches 0.",options)))+"
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Locked duration : guided navigation. The test transition to the next item once the duration reaches 0.",options):helperMissing.call(depth0,"__","Locked duration : guided navigation. The test transition to the next item once the duration reaches 0.",options)))+"
      \n
      \n
      \n
      \n
      \n \n
      \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Maximum duration for this item.",options):helperMissing.call(depth0,"__","Maximum duration for this item.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Minimum duration for this item.",options):helperMissing.call(depth0,"__","Minimum duration for this item.",options)))+"\n
      \n
      \n
      \n\n\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Whether a candidate's response that is beyond the maximum duration of the item should still be accepted.",options):helperMissing.call(depth0,"__","Whether a candidate's response that is beyond the maximum duration of the item should still be accepted.",options)))+"\n
      \n
      \n
      \n
      \n
      ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/itemref-props-weight",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,stack1,helper;return buffer+="
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n \n \n
      \n
      ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/rubricblock-props",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(depth0,data){var buffer="",helper,options;return buffer+="\n
      \n\n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Set the rubric block as a feedback block",options):helperMissing.call(depth0,"__","Set the rubric block as a feedback block",options)))+"\n
      \n
      \n
      \n\n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Set outcome identifier the feedback block is related to",options):helperMissing.call(depth0,"__","Set outcome identifier the feedback block is related to",options)))+"\n
      \n
      \n
      \n\n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Set the value of the outcome that will activate the feedback block",options):helperMissing.call(depth0,"__","Set the value of the outcome that will activate the feedback block",options)))+"\n
      \n
      \n
      \n
      \n ",buffer}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",helperMissing=helpers.helperMissing,escapeExpression=this.escapeExpression,self=this,stack1,helper,options;return buffer+="
      \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Rubric Block",options):helperMissing.call(depth0,"__","Rubric Block",options)))+": ",(helper=helpers.orderIndex)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.orderIndex,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"

      \n\n \n \n \n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Set the XHTML-QTI class of the rubric block.",options):helperMissing.call(depth0,"__","Set the XHTML-QTI class of the rubric block.",options)))+"\n
      \n
      \n
      \n\n \n \n\n

      "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"Feedback block",options):helperMissing.call(depth0,"__","Feedback block",options)))+"

      \n\n \n ",stack1=helpers["with"].call(depth0,depth0&&depth0.feedback,{hash:{},inverse:self.noop,fn:self.program(1,program1,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n
      ",buffer})}),define("tpl!taoQtiTest/controller/creator/templates/category-presets",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(depth0,data,depth1){var buffer="",stack1,helper;return buffer+="\n

      ",(helper=helpers.groupLabel)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.groupLabel,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"

      \n\n
      \n ",stack1=helpers.each.call(depth0,depth0&&depth0.presets,{hash:{},inverse:self.noop,fn:self.programWithDepth(2,program2,data,depth1),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n
      \n\n",buffer}function program2(depth0,data,depth2){var buffer="",stack1,helper,options;return buffer+="\n
      \n
      \n \n
      \n
      \n \n
      \n
      \n \n
      \n ",(helper=helpers.description)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.description,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n
      \n
      \n
      \n ",buffer}function program3(){return"checked"}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var escapeExpression=this.escapeExpression,self=this,helperMissing=helpers.helperMissing,stack1;return stack1=helpers.each.call(depth0,depth0&&depth0.presetGroups,{hash:{},inverse:self.noop,fn:self.programWithDepth(1,program1,data,depth0),data:data}),stack1||0===stack1?stack1:""})}),define("taoQtiTest/controller/creator/templates/index",["taoQtiTest/controller/creator/config/defaults","tpl!taoQtiTest/controller/creator/templates/testpart","tpl!taoQtiTest/controller/creator/templates/section","tpl!taoQtiTest/controller/creator/templates/rubricblock","tpl!taoQtiTest/controller/creator/templates/itemref","tpl!taoQtiTest/controller/creator/templates/outcomes","tpl!taoQtiTest/controller/creator/templates/test-props","tpl!taoQtiTest/controller/creator/templates/testpart-props","tpl!taoQtiTest/controller/creator/templates/section-props","tpl!taoQtiTest/controller/creator/templates/itemref-props","tpl!taoQtiTest/controller/creator/templates/itemref-props-weight","tpl!taoQtiTest/controller/creator/templates/rubricblock-props","tpl!taoQtiTest/controller/creator/templates/category-presets"],function(defaults,testPart,section,rubricBlock,itemRef,outcomes,testProps,testPartProps,sectionProps,itemRefProps,itemRefPropsWeight,rubricBlockProps,categoryPresets){'use strict';var applyTemplateConfiguration=function(template){return function(config){return template(defaults(config))}};return{testpart:applyTemplateConfiguration(testPart),section:applyTemplateConfiguration(section),itemref:applyTemplateConfiguration(itemRef),rubricblock:applyTemplateConfiguration(rubricBlock),outcomes:applyTemplateConfiguration(outcomes),properties:{test:applyTemplateConfiguration(testProps),testpart:applyTemplateConfiguration(testPartProps),section:applyTemplateConfiguration(sectionProps),itemref:applyTemplateConfiguration(itemRefProps),itemrefweight:applyTemplateConfiguration(itemRefPropsWeight),rubricblock:applyTemplateConfiguration(rubricBlockProps),categorypresets:applyTemplateConfiguration(categoryPresets)}}}),define("taoQtiTest/controller/creator/views/property",["jquery","uikitLoader","core/databinder","taoQtiTest/controller/creator/templates/index"],function($,ui,DataBinder,templates){'use strict';return function(tmplName,model){function propValidation(){var $togglers;$view.on("validated.group",function(e,isValid){"group"===e.namespace&&($togglers=$("#test-creator .property-toggler, #saver"),!0===isValid?$togglers.removeClass("disabled"):$togglers.addClass("disabled"))}),$view.groupValidator()}var $container=$(".test-creator-props"),template=templates.properties[tmplName],open=function(){var binderOptions={templates:templates.properties},databinder;$container.children(".props").hide().trigger("propclose.propview"),$view=$(template(model)).appendTo($container).filter(".props"),ui.startDomComponent($view),databinder=new DataBinder($view,model,binderOptions),databinder.bind(),propValidation(),$view.trigger("propopen.propview")},getView=function(){return $view},isOpen=function(){return"none"!==$view.css("display")},onOpen=function(cb){$view.on("propopen.propview",function(e){e.stopPropagation(),cb()})},onClose=function(cb){$view.on("propclose.propview",function(e){e.stopPropagation(),cb()})},destroy=function(){$view.remove()},toggle=function(){$container.children(".props").not($view).hide().trigger("propclose.propview"),isOpen()?$view.hide().trigger("propclose.propview"):$view.show().trigger("propopen.propview")},$view;return{open:open,getView:getView,isOpen:isOpen,onOpen:onOpen,onClose:onClose,destroy:destroy,toggle:toggle}}}),define("taoQtiTest/controller/creator/views/actions",["jquery","taoQtiTest/controller/creator/views/property"],function($,propertyView){'use strict';return{properties:function($container,template,model,cb){var propView=null;$container.find(".property-toggler").on("click",function(e){e.preventDefault();var $elt=$(this);$(this).hasClass("disabled")||($elt.blur(),null===propView?($container.addClass("active"),$elt.addClass("tlb-button-on"),propView=propertyView(template,model),propView.open(),propView.onOpen(function(){$container.addClass("active"),$elt.addClass("tlb-button-on")}),propView.onClose(function(){$container.removeClass("active"),$elt.removeClass("tlb-button-on")}),"function"==typeof cb&&cb(propView)):propView.toggle())})},move:function($actionContainer,containerClass,elementClass){var $element=$actionContainer.parents("."+elementClass),$container=$element.parents("."+containerClass);$(".move-up",$actionContainer).click(function(e){var $elements,index;return e.preventDefault(),!$element.is(":animated")&&void($elements=$("."+elementClass,$container),index=$elements.index($element),0=$container.length?$delete.addClass("disabled"):$delete.removeClass("disabled")})},movable:function($container,elementClass,actionContainerElt){$container.each(function(){var $elt=$(this),$actionContainer=$(actionContainerElt,$elt),index=$container.index($elt),$moveUp=$(".move-up",$actionContainer),$moveDown=$(".move-down",$actionContainer);1===$container.length?($moveUp.addClass("disabled"),$moveDown.addClass("disabled")):0===index?($moveUp.addClass("disabled"),$moveDown.removeClass("disabled")):index>=$container.length-1?($moveDown.addClass("disabled"),$moveUp.removeClass("disabled")):($moveUp.removeClass("disabled"),$moveDown.removeClass("disabled"))})},disable:function($container,actionContainerElt){$container.find(actionContainerElt).find("[data-delete],.move-up,.move-down").addClass("disabled")},enable:function($container,actionContainerElt){$container.find(actionContainerElt).find("[data-delete],.move-up,.move-down").removeClass("disabled")}}}),define("taoQtiTest/controller/creator/helpers/categorySelector",["jquery","lodash","i18n","core/eventifier","ui/tooltip","taoQtiTest/controller/creator/templates/index","select2"],function($,_,__,eventifier,tooltip,templates){'use strict';function categorySelectorFactory($container){function updateCategories(){var presetSelected=$container.find(".category-preset input:checked").toArray().map(function(categoryEl){return categoryEl.value}),presetIndeterminate=$container.find(".category-preset input:indeterminate").toArray().map(function(categoryEl){return categoryEl.value}),customSelected=$customCategoriesSelect.siblings(".select2-container").find(".select2-search-choice").not(".partial").toArray().map(function(categoryEl){return categoryEl.textContent&&categoryEl.textContent.trim()}),customIndeterminate=$customCategoriesSelect.siblings(".select2-container").find(".select2-search-choice.partial").toArray().map(function(categoryEl){return categoryEl.textContent&&categoryEl.textContent.trim()}),selectedCategories,indeterminatedCategories;selectedCategories=presetSelected.concat(customSelected),indeterminatedCategories=presetIndeterminate.concat(customIndeterminate),this.trigger("category-change",selectedCategories,indeterminatedCategories)}var $presetsContainer=$container.find(".category-presets"),$customCategoriesSelect=$container.find("[name=category-custom]"),categorySelector,$presetsCheckboxes;return categorySelector={createForm:function(currentCategories){var self=this,presetsTpl=templates.properties.categorypresets,customCategories=_.difference(currentCategories,allQtiCategoriesPresets);$presetsContainer.append(presetsTpl({presetGroups:allPresets})),$presetsContainer.on("click",function(e){var $preset=$(e.target).closest(".category-preset"),$checkbox;$preset.length&&($checkbox=$preset.find("input"),$checkbox.prop("indeterminate",!1),_.defer(function(){updateCategories.call(self)}))}),$customCategoriesSelect.select2({width:"100%",tags:customCategories,multiple:!0,tokenSeparators:[","," ",";"],formatNoMatches:function formatNoMatches(){return __("Enter a custom category")},maximumInputLength:32}).on("change",function(){updateCategories.call(self)}),tooltip.lookup($container)},updateFormState:function(selected,indeterminate){var customCategories;indeterminate=indeterminate||[],customCategories=_.difference(selected.concat(indeterminate),allQtiCategoriesPresets),$presetsCheckboxes=$container.find(".category-preset input"),$presetsCheckboxes.each(function(){var category=this.value;this.indeterminate=!1,this.checked=!1,-1===indeterminate.indexOf(category)?-1!==selected.indexOf(category)&&(this.checked=!0):this.indeterminate=!0}),$customCategoriesSelect.select2("val",customCategories),$customCategoriesSelect.siblings(".select2-container").find(".select2-search-choice").each(function(){var $li=$(this),content=$li.find("div").text();-1!==indeterminate.indexOf(content)&&$li.addClass("partial")})}},eventifier(categorySelector),categorySelector}function extractCategoriesFromPresets(){return allPresets.reduce(function(prev,current){var groupIds=_.pluck(current.presets,"qtiCategory");return prev.concat(groupIds)},[])}var allPresets=[],allQtiCategoriesPresets=[];return categorySelectorFactory.setPresets=function(presets){_.isArray(presets)&&(allPresets=presets,allQtiCategoriesPresets=extractCategoriesFromPresets())},categorySelectorFactory}),define("taoQtiTest/controller/creator/helpers/sectionCategory",["lodash","i18n","core/errorHandler"],function(_,__,errorHandler){'use strict';function isValidSectionModel(model){return _.isObject(model)&&"assessmentSection"===model["qti-type"]&&_.isArray(model.sectionParts)}function getCategories(model){var itemCount=0,categories,arrays,union,propagated,partial;return isValidSectionModel(model)?(categories=_.map(model.sectionParts,function(itemRef){if("assessmentItemRef"===itemRef["qti-type"]&&++itemCount&&_.isArray(itemRef.categories))return _.compact(itemRef.categories)}),!itemCount)?createCategories(model.categories,model.categories):(arrays=_.values(categories),union=_.union.apply(null,arrays),propagated=_.intersection.apply(null,arrays),partial=_.difference(union,propagated),createCategories(union,propagated,partial)):errorHandler.throw(".sectionCategory","invalid tool config format")}function addCategories(model,categories){isValidSectionModel(model)?_.each(model.sectionParts,function(itemRef){"assessmentItemRef"===itemRef["qti-type"]&&(!_.isArray(itemRef.categories)&&(itemRef.categories=[]),itemRef.categories=_.union(itemRef.categories,categories))}):errorHandler.throw(".sectionCategory","invalid tool config format")}function removeCategories(model,categories){isValidSectionModel(model)?_.each(model.sectionParts,function(itemRef){"assessmentItemRef"===itemRef["qti-type"]&&_.isArray(itemRef.categories)&&(itemRef.categories=_.difference(itemRef.categories,categories))}):errorHandler.throw(".sectionCategory","invalid tool config format")}function createCategories(){var all=0counts[key]))}}},filterQtiType:function(value,type){return value["qti-type"]&&value["qti-type"]===type},addMissingQtiType:function(collection,parentType){var self=this;_.forEach(collection,function(value,key){!_.isObject(value)||_.isArray(value)||_.has(value,"qti-type")||(_.isNumber(key)?parentType&&(value["qti-type"]=parentType):value["qti-type"]=key),_.isArray(value)?self.addMissingQtiType(value,key.replace(/s$/,"")):_.isObject(value)&&self.addMissingQtiType(value)})},consolidateModel:function(model){return model&&model.testParts&&_.isArray(model.testParts)&&_.forEach(model.testParts,function(testPart){testPart.assessmentSections&&_.isArray(testPart.assessmentSections)&&_.forEach(testPart.assessmentSections,function(assessmentSection){assessmentSection.ordering&&"undefined"!=typeof assessmentSection.ordering.shuffle&&!1===assessmentSection.ordering.shuffle&&delete assessmentSection.ordering,assessmentSection.sectionParts&&_.isArray(assessmentSection.sectionParts)&&_.forEach(assessmentSection.sectionParts,function(part){part.categories&&_.isArray(part.categories)&&(0===part.categories.length||0===part.categories[0].length)&&(part.categories=[])}),assessmentSection.rubricBlocks&&_.isArray(assessmentSection.rubricBlocks)&&(0===assessmentSection.rubricBlocks.length||1===assessmentSection.rubricBlocks.length&&0===assessmentSection.rubricBlocks[0].content.length?delete assessmentSection.rubricBlocks:0 .title").width(width)},100);return{setUp:function(creatorContext,refModel,sectionModel,partModel,$itemRef){function timeLimitsProperty(propView){var $view=propView.getView(),$minTimeContainer=$(".mintime-container",$view),$maxTimeContainer=$(".maxtime-container",$view),$lockedTimeContainer=$(".lockedtime-container",$view),$locker=$(".locker button",$lockedTimeContainer),$durationFields=$(":text[data-duration]",$lockedTimeContainer),$minTimeField=$(":text[name=\"min-time\"]",$lockedTimeContainer),$maxTimeField=$(":text[name=\"max-time\"]",$lockedTimeContainer),minToMaxHandler=_.throttle(function(){$maxTimeField.off("change.sync"),$maxTimeField.val($minTimeField.val()).trigger("change"),_.defer(function(){$maxTimeField.on("change.sync",minToMaxHandler)})},200),maxToMinHandler=_.throttle(function(){$minTimeField.off("change.sync"),$minTimeField.val($maxTimeField.val()).trigger("change"),_.defer(function(){$minTimeField.on("change.sync",minToMaxHandler)})},200),lockTimers=function(){$locker.removeClass("unlocked").addClass("locked").attr("title",__("Unlink to use separated durations")),$minTimeField.val($maxTimeField.val()).trigger("change"),$minTimeField.on("change.sync",minToMaxHandler),$maxTimeField.on("change.sync",maxToMinHandler)},unlockTimers=function(){$locker.removeClass("locked").addClass("unlocked").attr("title",__("Link durations to activate the guided navigation")),$durationFields.off("change.sync"),$minTimeField.val("00:00:00").trigger("change")},toggleTimeContainers=function(){refModel.isLinear=0===partModel.navigationMode,refModel.isLinear&&config.guidedNavigation?($minTimeContainer.addClass("hidden"),$maxTimeContainer.addClass("hidden"),$lockedTimeContainer.removeClass("hidden"),$minTimeField.val()===$maxTimeField.val()&&"00:00:00"!==$maxTimeField.val()&&lockTimers(),$locker.on("click",function(e){e.preventDefault(),$locker.hasClass("locked")?unlockTimers():lockTimers()})):refModel.isLinear?($lockedTimeContainer.addClass("hidden"),$minTimeContainer.removeClass("hidden"),$maxTimeContainer.removeClass("hidden")):($lockedTimeContainer.addClass("hidden"),$minTimeContainer.addClass("hidden"),$maxTimeContainer.removeClass("hidden"))};modelOverseer.on("testpart-change",function(){toggleTimeContainers()}),toggleTimeContainers(),$durationFields.on("change.check",function(){0refModel.timeLimits.maxTime?$minTimeField.parent("div").find(".duration-ctrl-wrapper").addClass("brd-danger"):$minTimeField.parent("div").find(".duration-ctrl-wrapper").removeClass("brd-danger")})}function categoriesProperty($view){var categorySelector=categorySelectorFactory($view),$categoryField=$view.find("[name=\"itemref-category\"]");categorySelector.createForm(),categorySelector.updateFormState(refModel.categories),$view.on("propopen.propview",function(){categorySelector.updateFormState(refModel.categories)}),categorySelector.on("category-change",function(selected){$categoryField.val(selected.join(",")),$categoryField.trigger("change"),modelOverseer.trigger("category-change",selected)})}function weightsProperty(propView){var $view=propView.getView(),$weightList=$view.find("[data-bind-each=\"weights\"]"),weightTpl=templates.properties.itemrefweight;$view.find(".itemref-weight-add").on("click",function(e){var defaultData={value:1,"qti-type":"weight",identifier:0===refModel.weights.length?"WEIGHT":qtiTestHelper.getAvailableIdentifier(refModel,"weight","WEIGHT")};e.preventDefault(),$weightList.append(weightTpl(defaultData)),refModel.weights.push(defaultData),$weightList.trigger("add.internalbinder"),$view.groupValidator()})}var modelOverseer=creatorContext.getModelOverseer(),config=modelOverseer.getConfig()||{},$actionContainer=$(".actions",$itemRef);refModel.itemSessionControl||(refModel.itemSessionControl={}),_.defaults(refModel.itemSessionControl,sectionModel.itemSessionControl),refModel.isLinear=0===partModel.navigationMode,actions.properties($actionContainer,"itemref",refModel,function(propView){categoriesProperty(propView.getView()),weightsProperty(propView),timeLimitsProperty(propView),$itemRef.parents(".testparts").on("deleted.deleter",function(e,$deletedNode){var validIds=[$itemRef.attr("id"),$itemRef.parents(".section").attr("id"),$itemRef.parents(".testpart").attr("id")],deletedNodeId=$deletedNode.attr("id");null!==propView&&validIds.includes(deletedNodeId)&&propView.destroy()})}),actions.move($actionContainer,"itemrefs","itemref"),resize()},listenActionState:function(){$(".itemrefs").each(function(){actions.movable($(".itemref",$(this)),"itemref",".actions")}),$(document).on("delete",function(e){var $target=$(e.target),$parent;$target.hasClass("itemref")&&($parent=$target.parents(".itemrefs"),actions.disable($parent.find(".itemref"),".actions"))}).on("add change undo.deleter deleted.deleter",".itemrefs",function(e){var $target=$(e.target),$parent;($target.hasClass("itemref")||$target.hasClass("itemrefs"))&&($parent=$(".itemref",$target.hasClass("itemrefs")?$target:$target.parents(".itemrefs")),actions.enable($parent,".actions"),actions.movable($parent,"itemref",".actions"))})},resize:resize}}),define("taoQtiTest/controller/creator/encoders/dom2qti",["jquery","lodash","taoQtiTest/controller/creator/helpers/qtiElement","taoQtiTest/controller/creator/helpers/baseType","lib/dompurify/purify"],function($,_,qtiElementHelper,baseType,DOMPurify){'use strict';function getAttributes(object){return _.omit(object,["qti-type","content","xmlBase","lang","label"])}function attrToStr(attributes){return _.reduce(attributes,function(acc,value,key){return _.isNumber(value)||_.isBoolean(value)||_.isString(value)&&!_.isEmpty(value)?acc+" "+key+"=\""+value+"\" ":acc},"")}function normalizeNodeName(nodeName){var normalized=nodeName?nodeName.toLocaleLowerCase():"";return normalizedNodes[normalized]||normalized}var normalizedNodes={feedbackblock:"feedbackBlock",outcomeidentifier:"outcomeIdentifier",showhide:"showHide",printedvariable:"printedVariable",powerform:"powerForm",mappingindicator:"mappingIndicator"},typedAttributes={printedVariable:{identifier:baseType.getConstantByName("identifier"),powerForm:baseType.getConstantByName("boolean"),base:baseType.getConstantByName("intOrIdentifier"),index:baseType.getConstantByName("intOrIdentifier"),delimiter:baseType.getConstantByName("string"),field:baseType.getConstantByName("string"),mappingIndicator:baseType.getConstantByName("string")}};return{encode:function encode(modelValue){var self=this,startTag;if(_.isArray(modelValue))return _.reduce(modelValue,function(result,value){return result+self.encode(value)},"");return _.isObject(modelValue)&&modelValue["qti-type"]?"textRun"===modelValue["qti-type"]?modelValue.content:(startTag="<"+modelValue["qti-type"]+attrToStr(getAttributes(modelValue)),modelValue.content?startTag+">"+self.encode(modelValue.content)+"":startTag+"/>"):""+modelValue},decode:function decode(nodeValue){var self=this,$nodeValue=nodeValue instanceof $?nodeValue:$(nodeValue),result=[],nodeName;return _.forEach($nodeValue,function(elt){var object;3===elt.nodeType?!_.isEmpty($.trim(elt.nodeValue))&&result.push(qtiElementHelper.create("textRun",{content:DOMPurify.sanitize(elt.nodeValue),xmlBase:""})):1===elt.nodeType&&(nodeName=normalizeNodeName(elt.nodeName),object=_.merge(qtiElementHelper.create(nodeName,{id:"",class:"",xmlBase:"",lang:"",label:""}),_.transform(elt.attributes,function(acc,value){var attrName=normalizeNodeName(value.nodeName);attrName&&(typedAttributes[nodeName]&&typedAttributes[nodeName][attrName]?acc[attrName]=baseType.getValue(typedAttributes[nodeName][attrName],value.nodeValue):acc[attrName]=value.nodeValue)})),0"!==html.charAt(html.length-1))&&(html="
      "+html+"
      "),1<$(html).length&&(html="
      "+html+"
      "),html}function editorToModel(html){var rubric=qtiElementHelper.lookupElement(rubricModel,"rubricBlock","content"),wrapper=qtiElementHelper.lookupElement(rubricModel,"rubricBlock.div.feedbackBlock","content"),content=Dom2QtiEncoder.decode(ensureWrap(html));wrapper?wrapper.content=content:rubric.content=content}function modelToEditor(){var rubric=qtiElementHelper.lookupElement(rubricModel,"rubricBlock","content")||{},wrapper=qtiElementHelper.lookupElement(rubricModel,"rubricBlock.div.feedbackBlock","content"),content=wrapper?wrapper.content:rubric.content,html=ensureWrap(Dom2QtiEncoder.encode(content));qtiContentCreator.destroy(creatorContext,$rubricBlockContent).then(function(){$rubricBlockContent.html(html),qtiContentCreator.create(creatorContext,$rubricBlockContent,{change:function(editorContent){editorToModel(editorContent)}})})}function updateFeedback(feedback){var activated=feedback&&feedback.activated,wrapper=qtiElementHelper.lookupElement(rubricModel,"rubricBlock.div.feedbackBlock","content");return activated?(wrapper?(wrapper.outcomeIdentifier=feedback.outcome,wrapper.identifier=feedback.matchValue):rubricModel.content=[qtiElementHelper.create("div",{content:[qtiElementHelper.create("feedbackBlock",{outcomeIdentifier:feedback.outcome,identifier:feedback.matchValue,content:rubricModel.content})]})],modelToEditor()):wrapper&&(rubricModel.content=wrapper.content,modelToEditor()),activated}function rbViews($propContainer){var $select=$("[name=view]",$propContainer);bindEvent($select.select2({width:"100%"}),"select2-removed",function(){0===$select.select2("val").length&&$select.select2("val",[1])}),0===$select.select2("val").length&&$select.select2("val",[1])}var modelOverseer=creatorContext.getModelOverseer(),areaBroker=creatorContext.getAreaBroker(),$rubricBlockContent=$(".rubricblock-content",$rubricBlock);rubricModel.orderIndex=(rubricModel.index||0)+1,rubricModel.uid=_.uniqueId("rb"),rubricModel.feedback={activated:!!qtiElementHelper.lookupElement(rubricModel,"rubricBlock.div.feedbackBlock","content"),outcome:qtiElementHelper.lookupProperty(rubricModel,"rubricBlock.div.feedbackBlock.outcomeIdentifier","content"),matchValue:qtiElementHelper.lookupProperty(rubricModel,"rubricBlock.div.feedbackBlock.identifier","content")},modelOverseer.before("scoring-write."+rubricModel.uid,function(){var feedbackOutcome=rubricModel.feedback&&rubricModel.feedback.outcome;feedbackOutcome&&0>_.indexOf(modelOverseer.getOutcomesNames(),feedbackOutcome)?(modelOverseer.changedRubricBlock=(modelOverseer.changedRubricBlock||0)+1,rubricModel.feedback.activated=!1,rubricModel.feedback.outcome="",updateFeedback(rubricModel.feedback),$rubricBlock.trigger("outcome-removed")):$rubricBlock.trigger("outcome-updated")}).on("scoring-write."+rubricModel.uid,function(){modelOverseer.changedRubricBlock&&(dialogAlert(__("Some rubric blocks have been updated to reflect the changes in the list of outcomes.")),modelOverseer.changedRubricBlock=0)}),actions.properties($rubricBlock,"rubricblock",rubricModel,function(propView){function changeFeedback(activated){hider.toggle($feedbackOutcomeLine,activated),hider.toggle($feedbackMatchLine,activated)}function removePropHandler(){rubricModel.feedback={},null!==propView&&propView.destroy()}function updateOutcomes(){var activated=rubricModel.feedback&&rubricModel.feedback.activated,outcomes=_.map(modelOverseer.getOutcomesNames(),function(name){return{id:name,text:name}});$feedbackOutcome.select2({minimumResultsForSearch:-1,width:"100%",data:outcomes}),activated||$feedbackActivated.prop("checked",!1),changeFeedback(activated)}var $view=propView.getView(),$feedbackOutcomeLine=$(".rubric-feedback-outcome",$view),$feedbackMatchLine=$(".rubric-feedback-match-value",$view),$feedbackOutcome=$("[name=feedback-outcome]",$view),$feedbackActivated=$("[name=activated]",$view);$("[name=type]",$view).select2({minimumResultsForSearch:-1,width:"100%"}),$view.on("change.binder",function(e,changedModel){"binder"===e.namespace&&"rubricBlock"===changedModel["qti-type"]&&changeFeedback(updateFeedback(changedModel.feedback))}),bindEvent($rubricBlock.parents(".testpart"),"delete",removePropHandler),bindEvent($rubricBlock.parents(".section"),"delete",removePropHandler),bindEvent($rubricBlock,"delete",removePropHandler),bindEvent($rubricBlock,"outcome-removed",function(){$feedbackOutcome.val(""),updateOutcomes()}),bindEvent($rubricBlock,"outcome-updated",function(){updateFeedback(rubricModel.feedback),updateOutcomes()}),changeFeedback(rubricModel.feedback),updateOutcomes(),rbViews($view)}),modelToEditor(),bindEvent($rubricBlock,"delete",function(){qtiContentCreator.destroy(creatorContext,$rubricBlockContent)}),$rubricBlockContent.on("editorfocus",function(){areaBroker.getPropertyPanelArea().children(".props").hide().trigger("propclose.propview")}),areaBroker.getContentCreatorPanelArea().find(".test-content").on("scroll",function(){CKEDITOR.document.getWindow().fire("scroll")})}}}),define("taoQtiTest/controller/creator/helpers/sectionBlueprints",["lodash","i18n","core/errorHandler"],function(_,__,errorHandler){'use strict';return{setBlueprint:function(model,blueprint){model.blueprint=blueprint},getBlueprint:function(getUrl,model){return $.ajax({url:getUrl,type:"GET",data:{section:model.identifier},dataType:"json"}).fail(function(){errorHandler.throw(".sectionBlueprint","invalid tool config format")})}}}),define("taoQtiTest/controller/creator/views/section",["jquery","lodash","uri","i18n","taoQtiTest/controller/creator/config/defaults","taoQtiTest/controller/creator/views/actions","taoQtiTest/controller/creator/views/itemref","taoQtiTest/controller/creator/views/rubricblock","taoQtiTest/controller/creator/templates/index","taoQtiTest/controller/creator/helpers/qtiTest","taoQtiTest/controller/creator/helpers/categorySelector","taoQtiTest/controller/creator/helpers/sectionCategory","taoQtiTest/controller/creator/helpers/sectionBlueprints"],function($,_,uri,__,defaults,actions,itemRefView,rubricBlockView,templates,qtiTestHelper,categorySelectorFactory,sectionCategory,sectionBlueprint){'use strict';return{setUp:function(creatorContext,sectionModel,partModel,$section){function addItemRef($refList,index,itemData){var $items=$refList.children("li"),$itemRef;index=index||$items.length,itemData.identifier=qtiTestHelper.getAvailableIdentifier(modelOverseer.getModel(),"assessmentItemRef","item"),itemData.index=index+1,$itemRef=$(templates.itemref(itemData)),0 

      "),rubricBlockView.setUp(creatorContext,rubricModel,$rubricBlock),modelOverseer.trigger("rubric-add",rubricModel))})}()},listenActionState:function(){var $sections;$(".sections").each(function(){$sections=$(".section",$(this)),actions.removable($sections,"h2"),actions.movable($sections,"section","h2")}),$(document).on("delete",function(e){var $target=$(e.target),$parent;$target.hasClass("section")&&($parent=$target.parents(".sections"),actions.disable($parent.find(".section"),"h2"))}).on("add change undo.deleter deleted.deleter",function(e){var $target=$(e.target);($target.hasClass("section")||$target.hasClass("sections"))&&($sections=$(".section",$target.hasClass("sections")?$target:$target.parents(".sections")),actions.removable($sections,"h2"),actions.movable($sections,"section","h2"))}).on("open.toggler",".rub-toggler",function(e){"toggler"===e.namespace&&$(this).parents("h2").addClass("active")}).on("close.toggler",".rub-toggler",function(e){"toggler"===e.namespace&&$(this).parents("h2").removeClass("active")})}}}),define("taoQtiTest/controller/creator/views/testpart",["jquery","lodash","taoQtiTest/controller/creator/config/defaults","taoQtiTest/controller/creator/views/actions","taoQtiTest/controller/creator/views/section","taoQtiTest/controller/creator/templates/index","taoQtiTest/controller/creator/helpers/qtiTest"],function($,_,defaults,actions,sectionView,templates,qtiTestHelper){'use strict';return{setUp:function(creatorContext,partModel,$testPart){var $actionContainer=$("h1",$testPart),modelOverseer=creatorContext.getModelOverseer();actions.properties($actionContainer,"testpart",partModel,function(propView){var $view=propView.getView(),$identifier=$("[data-bind=identifier]",$testPart);$view.on("change.binder",function(e,model){"binder"===e.namespace&&"testPart"===model["qti-type"]&&($identifier.text(model.identifier),modelOverseer.trigger("testpart-change",partModel))}),$testPart.parents(".testparts").on("deleted.deleter",function(e,$deletedNode){null!==propView&&$deletedNode.attr("id")===$testPart.attr("id")&&propView.destroy()})}),actions.move($actionContainer,"testparts","testpart"),function(){partModel.assessmentSections||(partModel.assessmentSections=[]),$(".section",$testPart).each(function(){var $section=$(this),index=$section.data("bind-index");partModel.assessmentSections[index]||(partModel.assessmentSections[index]={}),sectionView.setUp(creatorContext,partModel.assessmentSections[index],partModel,$section)})}(),function(){$(".section-adder",$testPart).adder({target:$(".sections",$testPart),content:templates.section,templateData:function templateData(cb){var sectionIndex=$(".section",$testPart).length;cb({"qti-type":"assessmentSection",identifier:qtiTestHelper.getAvailableIdentifier(modelOverseer.getModel(),"assessmentSection",defaults().sectionIdPrefix),title:"".concat(defaults().sectionTitlePrefix," ").concat(sectionIndex+1),index:0,sectionParts:[],visible:!0})}}),$(document).off("add.binder","#"+$testPart.attr("id")+" .sections").on("add.binder","#"+$testPart.attr("id")+" .sections",function(e,$section){var index,sectionModel;"binder"===e.namespace&&$section.hasClass("section")&&(index=$section.data("bind-index"),sectionModel=partModel.assessmentSections[index],sectionView.setUp(creatorContext,sectionModel,partModel,$section),modelOverseer.trigger("section-add",sectionModel))})}()},listenActionState:function(){var $testParts=$(".testpart");actions.removable($testParts,"h1"),actions.movable($testParts,"testpart","h1"),$(".testparts").on("delete",function(e){var $target=$(e.target);$target.hasClass("testpart")&&actions.disable($(".testpart"),"h1")}).on("add change undo.deleter deleted.deleter",function(e){var $target=$(e.target);($target.hasClass("testpart")||$target.hasClass("testparts"))&&($testParts=$(".testpart"),actions.removable($testParts,"h1"),actions.movable($testParts,"testpart","h1"))})}}}),define("taoQtiTest/controller/creator/views/test",["jquery","lodash","i18n","ui/hider","ui/feedback","taoQtiTest/controller/creator/config/defaults","taoQtiTest/controller/creator/views/actions","taoQtiTest/controller/creator/views/testpart","taoQtiTest/controller/creator/templates/index","taoQtiTest/controller/creator/helpers/qtiTest"],function($,_,__,hider,feedback,defaults,actions,testPartView,templates,qtiTestHelper){'use strict';return function(creatorContext){var modelOverseer=creatorContext.getModelOverseer(),testModel=modelOverseer.getModel();actions.properties($(".test-creator-test > h1"),"test",testModel,function(propView){function changeScoring(scoring){var noOptions=!!scoring&&-1===["none","custom"].indexOf(scoring.outcomeProcessing),newScoringState=JSON.stringify(scoring);hider.toggle($cutScoreLine,!!scoring&&"cut"===scoring.outcomeProcessing),hider.toggle($categoryScoreLine,noOptions),hider.toggle($weightIdentifierLine,noOptions),hider.hide($descriptions),hider.show($descriptions.filter("[data-key=\""+scoring.outcomeProcessing+"\"]")),scoringState!==newScoringState&&modelOverseer.trigger("scoring-change",testModel),scoringState=newScoringState}function updateOutcomes(){var $panel=$(".outcome-declarations",$view);$panel.html(templates.outcomes({outcomes:modelOverseer.getOutcomesList()}))}var $view=propView.getView(),$categoryScoreLine=$(".test-category-score",$view),$cutScoreLine=$(".test-cut-score",$view),$weightIdentifierLine=$(".test-weight-identifier",$view),$descriptions=$(".test-outcome-processing-description",$view),$generate=$("[data-action=\"generate-outcomes\"]",$view),$title=$(".test-creator-test > h1 [data-bind=title]"),scoringState=JSON.stringify(testModel.scoring);$("[name=test-outcome-processing]",$view).select2({minimumResultsForSearch:-1,width:"100%"}),$generate.on("click",function(){$generate.addClass("disabled").attr("disabled",!0),modelOverseer.on("scoring-write.regenerate",function(){modelOverseer.off("scoring-write.regenerate"),feedback().success(__("The outcomes have been regenerated!")).on("destroy",function(){$generate.removeClass("disabled").removeAttr("disabled")})}).trigger("scoring-change")}),$view.on("change.binder",function(e,model){"binder"===e.namespace&&"assessmentTest"===model["qti-type"]&&(changeScoring(model.scoring),$title.text(model.title))}),modelOverseer.on("scoring-write",updateOutcomes),changeScoring(testModel.scoring),updateOutcomes()}),function(){testModel.testParts||(testModel.testParts=[]),$(".testpart").each(function(){var $testPart=$(this),index=$testPart.data("bind-index");testModel.testParts[index]||(testModel.testParts[index]={}),testPartView.setUp(creatorContext,testModel.testParts[index],$testPart)})}(),function(){$(".testpart-adder").adder({target:$(".testparts"),content:templates.testpart,templateData:function templateData(cb){var testPartIndex=$(".testpart").length;cb({"qti-type":"testPart",identifier:qtiTestHelper.getAvailableIdentifier(modelOverseer.getModel(),"testPart",defaults().partIdPrefix),index:testPartIndex,navigationMode:defaults().navigationMode,submissionMode:defaults().submissionMode,assessmentSections:[{"qti-type":"assessmentSection",identifier:qtiTestHelper.getAvailableIdentifier(modelOverseer.getModel(),"assessmentSection",defaults().sectionIdPrefix),title:"".concat(defaults().sectionTitlePrefix," 1"),index:0,sectionParts:[],visible:!0}]})}}),$(document).off("add.binder",".testparts").on("add.binder",".testparts",function(e,$testPart,added){var partModel;"binder"===e.namespace&&$testPart.hasClass("testpart")&&(partModel=testModel.testParts[added.index],testPartView.setUp(creatorContext,partModel,$testPart),modelOverseer.trigger("part-add",partModel))})}()}}),define("taoQtiTest/controller/creator/helpers/processingRule",["lodash","taoQtiTest/controller/creator/helpers/outcomeValidator","taoQtiTest/controller/creator/helpers/qtiElement","taoQtiTest/controller/creator/helpers/baseType","taoQtiTest/controller/creator/helpers/cardinality"],function(_,outcomeValidator,qtiElementHelper,baseTypeHelper,cardinalityHelper){'use strict';function unaryOperator(type,expression,baseType,cardinality){var processingRule=processingRuleHelper.create(type,null,[expression]);return processingRule.minOperands=1,processingRule.maxOperands=1,addTypeAndCardinality(processingRule,baseType,cardinality),processingRule}function binaryOperator(type,left,right,baseType,cardinality){var processingRule=processingRuleHelper.create(type,null,[left,right]);return processingRule.minOperands=2,processingRule.maxOperands=2,addTypeAndCardinality(processingRule,baseType,cardinality),processingRule}function addTypeAndCardinality(processingRule,baseType,cardinality){return _.isUndefined(baseType)&&(baseType=[baseTypeHelper.INTEGER,baseTypeHelper.FLOAT]),_.isUndefined(cardinality)&&(cardinality=[cardinalityHelper.SINGLE]),processingRule.acceptedCardinalities=forceArray(cardinality),processingRule.acceptedBaseTypes=forceArray(baseType),processingRule}function addCategories(processingRule,includeCategories,excludeCategories){return processingRule.includeCategories=forceArray(includeCategories),processingRule.excludeCategories=forceArray(excludeCategories),processingRule}function addSectionIdentifier(processingRule,sectionIdentifier){if(sectionIdentifier){if(!outcomeValidator.validateIdentifier(sectionIdentifier))throw new TypeError("You must provide a valid weight identifier!");processingRule.sectionIdentifier=sectionIdentifier}else processingRule.sectionIdentifier="";return processingRule}function addWeightIdentifier(processingRule,weightIdentifier){if(weightIdentifier){if(!outcomeValidator.validateIdentifier(weightIdentifier))throw new TypeError("You must provide a valid weight identifier!");processingRule.weightIdentifier=weightIdentifier}else processingRule.weightIdentifier="";return processingRule}function validateIdentifier(identifier){if(!outcomeValidator.validateIdentifier(identifier))throw new TypeError("You must provide a valid identifier!");return identifier}function validateOutcome(outcome){if(!outcomeValidator.validateOutcome(outcome))throw new TypeError("You must provide a valid QTI element!");return outcome}function validateOutcomeList(outcomes){if(!outcomeValidator.validateOutcomes(outcomes))throw new TypeError("You must provide a valid list of QTI elements!");return outcomes}function forceArray(value){return value||(value=[]),_.isArray(value)||(value=[value]),value}var processingRuleHelper={create:function(type,identifier,expression){var processingRule=qtiElementHelper.create(type,identifier&&validateIdentifier(identifier));return expression&&processingRuleHelper.setExpression(processingRule,expression),processingRule},setExpression:function(processingRule,expression){processingRule&&(_.isArray(expression)?(processingRule.expression&&(processingRule.expression=null),processingRule.expressions=validateOutcomeList(expression)):(processingRule.expressions&&(processingRule.expressions=null),expression&&(processingRule.expression=validateOutcome(expression))))},addExpression:function(processingRule,expression){processingRule&&expression&&(processingRule.expression&&(processingRule.expressions=forceArray(processingRule.expression),processingRule.expression=null),_.isArray(expression)?processingRule.expressions=forceArray(processingRule.expressions).concat(validateOutcomeList(expression)):processingRule.expressions?processingRule.expressions.push(expression):processingRule.expression=validateOutcome(expression))},setOutcomeValue:function(identifier,expression){return processingRuleHelper.create("setOutcomeValue",validateIdentifier(identifier),expression)},gte:function(left,right){return binaryOperator("gte",left,right)},lte:function(left,right){return binaryOperator("lte",left,right)},divide:function(left,right){return binaryOperator("divide",left,right)},sum:function(terms){var processingRule=processingRuleHelper.create("sum",null,forceArray(terms));return processingRule.minOperands=1,processingRule.maxOperands=-1,processingRule.acceptedCardinalities=[cardinalityHelper.SINGLE,cardinalityHelper.MULTIPLE,cardinalityHelper.ORDERED],processingRule.acceptedBaseTypes=[baseTypeHelper.INTEGER,baseTypeHelper.FLOAT],processingRule},testVariables:function(identifier,type,weightIdentifier,includeCategories,excludeCategories){var processingRule=processingRuleHelper.create("testVariables");return processingRule.variableIdentifier=validateIdentifier(identifier),processingRule.baseType=baseTypeHelper.getValid(type),addWeightIdentifier(processingRule,weightIdentifier),addSectionIdentifier(processingRule,""),addCategories(processingRule,includeCategories,excludeCategories),processingRule},outcomeMaximum:function(identifier,weightIdentifier,includeCategories,excludeCategories){var processingRule=processingRuleHelper.create("outcomeMaximum");return processingRule.outcomeIdentifier=validateIdentifier(identifier),addWeightIdentifier(processingRule,weightIdentifier),addSectionIdentifier(processingRule,""),addCategories(processingRule,includeCategories,excludeCategories),processingRule},numberPresented:function(includeCategories,excludeCategories){var processingRule=processingRuleHelper.create("numberPresented");return addSectionIdentifier(processingRule,""),addCategories(processingRule,includeCategories,excludeCategories),processingRule},baseValue:function(value,type){var processingRule=processingRuleHelper.create("baseValue");return processingRule.baseType=baseTypeHelper.getValid(type,baseTypeHelper.FLOAT),processingRule.value=baseTypeHelper.getValue(processingRule.baseType,value),processingRule},variable:function(identifier,weightIdentifier){var processingRule=processingRuleHelper.create("variable",validateIdentifier(identifier));return addWeightIdentifier(processingRule,weightIdentifier),processingRule},match:function(left,right){return binaryOperator("match",left,right,cardinalityHelper.SAME,cardinalityHelper.SAME)},isNull:function(expression){return unaryOperator("isNull",expression,baseTypeHelper.ANY,cardinalityHelper.ANY)},outcomeCondition:function(outcomeIf,outcomeElse){var processingRule=processingRuleHelper.create("outcomeCondition");if(!outcomeValidator.validateOutcome(outcomeIf,!1,"outcomeIf"))throw new TypeError("You must provide a valid outcomeIf element!");if(outcomeElse&&!outcomeValidator.validateOutcome(outcomeElse,!1,"outcomeElse"))throw new TypeError("You must provide a valid outcomeElse element!");return processingRule.outcomeIf=outcomeIf,processingRule.outcomeElseIfs=[],outcomeElse&&(processingRule.outcomeElse=outcomeElse),processingRule},outcomeIf:function(expression,instruction){var processingRule=processingRuleHelper.create("outcomeIf");return _.isArray(instruction)||(instruction=[instruction]),processingRule.expression=validateOutcome(expression),processingRule.outcomeRules=validateOutcomeList(instruction),processingRule},outcomeElse:function(instruction){var processingRule=processingRuleHelper.create("outcomeElse");return _.isArray(instruction)||(instruction=[instruction]),processingRule.outcomeRules=validateOutcomeList(instruction),processingRule}};return processingRuleHelper}),define("taoQtiTest/controller/creator/helpers/scoring",["lodash","i18n","core/format","taoQtiTest/controller/creator/helpers/baseType","taoQtiTest/controller/creator/helpers/outcome","taoQtiTest/controller/creator/helpers/processingRule"],function(_,__,format,baseTypeHelper,outcomeHelper,processingRuleHelper){'use strict';var _Mathmax=Math.max;function addTotalScoreOutcomes(model,scoring,identifier,weight,category){var outcome=outcomeHelper.createOutcome(identifier,baseTypeHelper.FLOAT),processingRule=processingRuleHelper.setOutcomeValue(identifier,processingRuleHelper.sum(processingRuleHelper.testVariables(scoring.scoreIdentifier,-1,weight&&scoring.weightIdentifier,category)));outcomeHelper.addOutcome(model,outcome,processingRule)}function addMaxScoreOutcomes(model,scoring,identifier,weight,category){var outcome=outcomeHelper.createOutcome(identifier,baseTypeHelper.FLOAT),processingRule=processingRuleHelper.setOutcomeValue(identifier,processingRuleHelper.sum(processingRuleHelper.testVariables("MAXSCORE",-1,weight&&scoring.weightIdentifier,category)));outcomeHelper.addOutcome(model,outcome,processingRule)}function addRatioOutcomes(model,identifier,identifierTotal,identifierMax){var outcome=outcomeHelper.createOutcome(identifier,baseTypeHelper.FLOAT),outcomeCondition=processingRuleHelper.outcomeCondition(processingRuleHelper.outcomeIf(processingRuleHelper.isNull(processingRuleHelper.variable(identifierMax)),processingRuleHelper.setOutcomeValue(identifier,processingRuleHelper.baseValue(0,baseTypeHelper.FLOAT))),processingRuleHelper.outcomeElse(processingRuleHelper.setOutcomeValue(identifier,processingRuleHelper.divide(processingRuleHelper.variable(identifierTotal),processingRuleHelper.variable(identifierMax)))));outcomeHelper.addOutcome(model,outcome),outcomeHelper.addOutcomeProcessing(model,outcomeCondition)}function addCutScoreOutcomes(model,identifier,scoreIdentifier,countIdentifier,cutScore){var outcome=outcomeHelper.createOutcome(identifier,baseTypeHelper.BOOLEAN),processingRule=processingRuleHelper.setOutcomeValue(identifier,processingRuleHelper.gte(processingRuleHelper.divide(processingRuleHelper.variable(scoreIdentifier),processingRuleHelper.variable(countIdentifier)),processingRuleHelper.baseValue(cutScore,baseTypeHelper.FLOAT)));outcomeHelper.addOutcome(model,outcome,processingRule)}function addGlobalCutScoreOutcomes(model,identifier,ratioIdentifier,cutScore){var outcome=outcomeHelper.createOutcome(identifier,baseTypeHelper.BOOLEAN),processingRule=processingRuleHelper.setOutcomeValue(identifier,processingRuleHelper.gte(processingRuleHelper.variable(ratioIdentifier),processingRuleHelper.baseValue(cutScore,baseTypeHelper.FLOAT)));outcomeHelper.addOutcome(model,outcome,processingRule)}function addFeedbackScoreOutcomes(model,identifier,variable,passed,notPassed){var type=baseTypeHelper.IDENTIFIER,outcome=outcomeHelper.createOutcome(identifier,type),processingRule=processingRuleHelper.outcomeCondition(processingRuleHelper.outcomeIf(processingRuleHelper.match(processingRuleHelper.variable(variable),processingRuleHelper.baseValue(!0,baseTypeHelper.BOOLEAN)),processingRuleHelper.setOutcomeValue(identifier,processingRuleHelper.baseValue(passed,type))),processingRuleHelper.outcomeElse(processingRuleHelper.setOutcomeValue(identifier,processingRuleHelper.baseValue(notPassed,type))));outcomeHelper.addOutcome(model,outcome),outcomeHelper.addOutcomeProcessing(model,processingRule)}function formatCategoryOutcome(category,template){return format(template,category.toUpperCase())}function belongToRecipe(identifier,recipe,onlyCategories){var match=!1;return recipe.signature&&recipe.signature.test(identifier)&&(match=!0,onlyCategories&&_.forEach(recipe.outcomes,function(outcome){if(outcome.identifier===identifier||outcome.weighted&&outcome.weighted===identifier||outcome.feedback&&outcome.feedback===identifier)return match=!1,!1})),match}function matchRecipe(outcomeRecipe,outcomes,categories){function matchRecipeOutcome(recipe,identifier){var outcomeMatch=!1;return recipe.signature&&recipe.signature.test(identifier)&&_.forEach(recipe.outcomes,function(outcome){if(outcome.identifier!==identifier&&(!outcome.weighted||outcome.weighted&&outcome.weighted!==identifier)&&(!outcome.feedback||outcome.feedback&&outcome.feedback!==identifier)?categories&&_.forEach(categories,function(category){if(outcome.categoryIdentifier&&identifier===formatCategoryOutcome(category,outcome.categoryIdentifier)?outcomeMatch=!0:outcome.categoryWeighted&&identifier===formatCategoryOutcome(category,outcome.categoryWeighted)?outcomeMatch=!0:outcome.categoryFeedback&&identifier===formatCategoryOutcome(category,outcome.categoryFeedback)&&(outcomeMatch=!0),outcomeMatch)return!1}):outcomeMatch=!0,outcomeMatch)return!1}),!outcomeMatch&&recipe.include&&(outcomeMatch=matchRecipeOutcome(outcomesRecipes[recipe.include],identifier)),outcomeMatch}var signatures=getSignatures(outcomeRecipe),match=!0;return _.forEach(outcomes,function(identifier){var signatureMatch=!1;if(_.forEach(signatures,function(signature){if(signature.test(identifier))return signatureMatch=!0,!1}),signatureMatch&&(match=matchRecipeOutcome(outcomeRecipe,identifier),!match))return!1}),match}function getSignatures(recipe){for(var signatures=[];recipe;)recipe.signature&&signatures.push(recipe.signature),recipe=recipe.include&&outcomesRecipes[recipe.include];return signatures}function getRecipes(recipe){for(var descriptors=[];recipe;)recipe.outcomes&&(descriptors=[].concat(recipe.outcomes,descriptors)),recipe=recipe.include&&outcomesRecipes[recipe.include];return descriptors}function getOutcomesRecipe(outcome){var identifier=outcomeHelper.getOutcomeIdentifier(outcome),mode=null;return _.forEach(outcomesRecipes,function(processingRecipe){if(belongToRecipe(identifier,processingRecipe))return mode=processingRecipe,!1}),mode}function listScoringModes(outcomes){var modes={};return _.forEach(outcomes,function(outcome){var recipe=getOutcomesRecipe(outcome);recipe&&(modes[recipe.key]=!0)}),_.keys(modes)}function handleCategories(modelOverseer){var model=modelOverseer.getModel();return!!(model.scoring&&model.scoring.categoryScore)}function hasCategoryOutcome(model){var categoryOutcomes=!1;return _.forEach(outcomeHelper.getOutcomeDeclarations(model),function(outcomeDeclaration){var identifier=outcomeHelper.getOutcomeIdentifier(outcomeDeclaration);_.forEach(outcomesRecipes,function(processingRecipe){if(belongToRecipe(identifier,processingRecipe,!0))return categoryOutcomes=!0,!1})}),categoryOutcomes}function getCutScore(model){var values=_(outcomeHelper.getOutcomeProcessingRules(model)).map(function(outcome){return outcomeHelper.getProcessingRuleProperty(outcome,"setOutcomeValue.gte.baseValue.value")}).compact().uniq().value();return _.isEmpty(values)&&(values=[defaultCutScore]),_Mathmax(0,_.max(values))}function getWeightIdentifier(model){var values=[];return outcomeHelper.eachOutcomeProcessingRuleExpressions(model,function(processingRule){"testVariables"===processingRule["qti-type"]&&processingRule.weightIdentifier&&values.push(processingRule.weightIdentifier)}),values=_(values).compact().uniq().value(),values.length?values[0]:""}function getOutcomeProcessing(modelOverseer){var model=modelOverseer.getModel(),outcomeDeclarations=outcomeHelper.getOutcomeDeclarations(model),outcomeRules=outcomeHelper.getOutcomeProcessingRules(model),declarations=listScoringModes(outcomeDeclarations),processing=listScoringModes(outcomeRules),diff=_.difference(declarations,processing),count=_.size(declarations),outcomeProcessing="custom",included;return count===_.size(processing)&&(count?_.isEmpty(diff)&&(1order)return $before=$btn,$after=null,!1;_order===order?$after=$btn:_order= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",escapeExpression=this.escapeExpression,self=this,helperMissing=helpers.helperMissing,stack1,helper,options;return buffer+="",buffer})}),define("tpl!taoQtiTest/testRunner/tpl/navigatorTree",["handlebars"],function(hb){return hb.template(function(Handlebars,depth0,helpers,partials,data){function program1(depth0,data){var buffer="",stack1,helper;return buffer+="\n
    5. \n \n ",(helper=helpers.label)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.label,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n \n \n \n ",stack1=helpers["if"].call(depth0,(stack1=depth0&&depth0.sections,null==stack1||!1===stack1?stack1:stack1.length),{hash:{},inverse:self.program(29,program29,data),fn:self.program(6,program6,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n
    6. \n ",buffer}function program2(){return"active"}function program4(){return"collapsed"}function program6(depth0,data){var buffer="",stack1;return buffer+="\n
        \n ",stack1=helpers.each.call(depth0,depth0&&depth0.sections,{hash:{},inverse:self.noop,fn:self.program(7,program7,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n
      \n ",buffer}function program7(depth0,data){var buffer="",stack1,helper;return buffer+="\n
    7. \n \n ",(helper=helpers.label)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.label,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n ",(helper=helpers.answered)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.answered,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"/"+escapeExpression((stack1=(stack1=depth0&&depth0.items,null==stack1||!1===stack1?stack1:stack1.length),"function"===_typeof(stack1)?stack1.apply(depth0):stack1))+"\n \n
        \n ",stack1=helpers.each.call(depth0,depth0&&depth0.items,{hash:{},inverse:self.noop,fn:self.program(8,program8,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n
      \n
    8. \n ",buffer}function program8(depth0,data){var buffer="",stack1,helper;return buffer+="\n
    9. \n \n \n "+escapeExpression((stack1=null==data||!1===data?data:data.index,"function"===_typeof(stack1)?stack1.apply(depth0):stack1))+"\n ",(helper=helpers.label)?stack1=helper.call(depth0,{hash:{},data:data}):(helper=depth0&&depth0.label,stack1="function"===_typeof(helper)?helper.call(depth0,{hash:{},data:data}):helper),buffer+=escapeExpression(stack1)+"\n \n
    10. \n ",buffer}function program9(){return" active"}function program11(){return" flagged"}function program13(){return" answered"}function program15(){return" viewed"}function program17(){return" unseen"}function program19(){return"flagged"}function program21(depth0,data){var stack1;return stack1=helpers["if"].call(depth0,depth0&&depth0.answered,{hash:{},inverse:self.program(24,program24,data),fn:self.program(22,program22,data),data:data}),stack1||0===stack1?stack1:""}function program22(){return"answered"}function program24(depth0,data){var stack1;return stack1=helpers["if"].call(depth0,depth0&&depth0.viewed,{hash:{},inverse:self.program(27,program27,data),fn:self.program(25,program25,data),data:data}),stack1||0===stack1?stack1:""}function program25(){return"viewed"}function program27(){return"unseen"}function program29(depth0,data){var buffer="",stack1,helper,options;return buffer+="\n
      \n \n

      \n "+escapeExpression((helper=helpers.__||depth0&&depth0.__,options={hash:{},data:data},helper?helper.call(depth0,"In this part of the test navigation is not allowed.",options):helperMissing.call(depth0,"__","In this part of the test navigation is not allowed.",options)))+"\n

      \n

      \n \n

      \n
      \n ",buffer}this.compilerInfo=[4,">= 1.0.0"],helpers=this.merge(helpers,Handlebars.helpers),data=data||{};var buffer="",self=this,escapeExpression=this.escapeExpression,helperMissing=helpers.helperMissing,stack1;return buffer+="
        \n ",stack1=helpers.each.call(depth0,depth0&&depth0.parts,{hash:{},inverse:self.noop,fn:self.program(1,program1,data),data:data}),(stack1||0===stack1)&&(buffer+=stack1),buffer+="\n
      ",buffer})}),define("taoQtiTest/testRunner/testReview",["jquery","lodash","i18n","tpl!taoQtiTest/testRunner/tpl/navigator","tpl!taoQtiTest/testRunner/tpl/navigatorTree","util/capitalize"],function($,_,__,navigatorTpl,navigatorTreeTpl,capitalize){'use strict';var _cssCls={active:"active",collapsed:"collapsed",collapsible:"collapsible",hidden:"hidden",disabled:"disabled",flagged:"flagged",answered:"answered",viewed:"viewed",unseen:"unseen",icon:"qti-navigator-icon",scope:{test:"scope-test",testPart:"scope-test-part",testSection:"scope-test-section"}},_selectors={component:".qti-navigator",filterBar:".qti-navigator-filters",tree:".qti-navigator-tree",collapseHandle:".qti-navigator-collapsible",linearState:".qti-navigator-linear",infoAnswered:".qti-navigator-answered .qti-navigator-counter",infoViewed:".qti-navigator-viewed .qti-navigator-counter",infoUnanswered:".qti-navigator-unanswered .qti-navigator-counter",infoFlagged:".qti-navigator-flagged .qti-navigator-counter",infoPanel:".qti-navigator-info",infoPanelLabels:".qti-navigator-info > .qti-navigator-label",parts:".qti-navigator-part",partLabels:".qti-navigator-part > .qti-navigator-label",sections:".qti-navigator-section",sectionLabels:".qti-navigator-section > .qti-navigator-label",items:".qti-navigator-item",itemLabels:".qti-navigator-item > .qti-navigator-label",itemIcons:".qti-navigator-item > .qti-navigator-icon",icons:".qti-navigator-icon",linearStart:".qti-navigator-linear-part button",counters:".qti-navigator-counter",actives:".active",collapsible:".collapsible",collapsiblePanels:".collapsible-panel",unseen:".unseen",answered:".answered",flagged:".flagged",notFlagged:":not(.flagged)",notAnswered:":not(.answered)",hidden:".hidden"},_filterMap={all:"",unanswered:_selectors.answered,flagged:_selectors.notFlagged,answered:_selectors.notAnswered,filtered:_selectors.hidden},_optionsMap={reviewScope:"reviewScope",reviewPreventsUnseen:"preventsUnseen",canCollapse:"canCollapse"},_reviewScopes={test:"test",testPart:"testPart",testSection:"testSection"},testReview={init:function(element,options){var initOptions=_.isObject(options)&&options||{},putOnRight="right"===initOptions.region,insertMethod=putOnRight?"append":"prepend";if(this.options=initOptions,this.disabled=!1,this.hidden=!!initOptions.hidden,this.currentFilter="all",this.$component&&this.$component.remove(),this.$container=$(element),insertMethod=this.$container[insertMethod],insertMethod)insertMethod.call(this.$container,navigatorTpl({region:putOnRight?"right":"left",hidden:this.hidden}));else throw new Error("Unable to inject the component structure into the DOM");return this._loadDOM(),this._initEvents(),this._updateDisplayOptions(),this},_loadDOM:function _loadDOM(){this.$component=this.$container.find(_selectors.component),this.$infoAnswered=this.$component.find(_selectors.infoAnswered),this.$infoViewed=this.$component.find(_selectors.infoViewed),this.$infoUnanswered=this.$component.find(_selectors.infoUnanswered),this.$infoFlagged=this.$component.find(_selectors.infoFlagged),this.$filterBar=this.$component.find(_selectors.filterBar),this.$filters=this.$filterBar.find("li"),this.$tree=this.$component.find(_selectors.tree),this.$linearState=this.$component.find(_selectors.linearState)},_initEvents:function _initEvents(){var self=this;this.$component.on("click"+_selectors.component,_selectors.collapseHandle,function(){self.disabled||(self.$component.toggleClass(_cssCls.collapsed),self.$component.hasClass(_cssCls.collapsed)&&self._openSelected())}),this.$component.on("click"+_selectors.component,_selectors.infoPanelLabels,function(){if(!self.disabled){var $panel=$(this).closest(_selectors.infoPanel);self._togglePanel($panel,_selectors.infoPanel)}}),this.$tree.on("click"+_selectors.component,_selectors.partLabels,function(){if(!self.disabled){var $panel=$(this).closest(_selectors.parts),open=self._togglePanel($panel,_selectors.parts);open&&($panel.hasClass(_cssCls.active)?self._openSelected():self._openOnly($panel.find(_selectors.sections).first(),$panel))}}),this.$tree.on("click"+_selectors.component,_selectors.sectionLabels,function(){if(!self.disabled){var $panel=$(this).closest(_selectors.sections);self._togglePanel($panel,_selectors.sections)}}),this.$tree.on("click"+_selectors.component,_selectors.itemLabels,function(event){if(!self.disabled){var $item=$(this).closest(_selectors.items),$target;$item.hasClass(_cssCls.disabled)||($target=$(event.target),$target.is(_selectors.icons)&&!self.$component.hasClass(_cssCls.collapsed)?!$item.hasClass(_cssCls.unseen)&&self._mark($item):(self._select($item),self._jump($item)))}}),this.$tree.on("click"+_selectors.component,_selectors.linearStart,function(){if(!self.disabled){var $btn=$(this);$btn.hasClass(_cssCls.disabled)||($btn.addClass(_cssCls.disabled),self._jump($btn))}}),this.$filterBar.on("click"+_selectors.component,"li",function(){if(!self.disabled){var $btn=$(this),mode=$btn.data("mode");self.$filters.removeClass(_cssCls.active),self.$component.removeClass(_cssCls.collapsed),$btn.addClass(_cssCls.active),self._filter(mode)}})},_filter:function _filter(criteria){var $items=this.$tree.find(_selectors.items).removeClass(_cssCls.hidden),filter=_filterMap[criteria];filter&&$items.filter(filter).addClass(_cssCls.hidden),this._updateSectionCounters(!!filter),this.currentFilter=criteria},_select:function _select(position,open){var selected=position&&position.jquery?position:this.$tree.find("[data-position="+position+"]"),hierarchy=selected.parentsUntil(this.$tree);return open&&this._openOnly(hierarchy),this.$tree.find(_selectors.actives).removeClass(_cssCls.active),hierarchy.add(selected).addClass(_cssCls.active),selected},_openSelected:function _openSelected(){var selected=this.$tree.find(_selectors.items+_selectors.actives),hierarchy=selected.parentsUntil(this.$tree);return this._openOnly(hierarchy),selected},_openOnly:function _openOnly(opened,root){(root||this.$tree).find(_selectors.collapsible).addClass(_cssCls.collapsed),opened.removeClass(_cssCls.collapsed)},_togglePanel:function _togglePanel(panel,collapseSelector){var collapsed=panel.hasClass(_cssCls.collapsed);return collapseSelector&&this.$tree.find(collapseSelector).addClass(_cssCls.collapsed),collapsed?panel.removeClass(_cssCls.collapsed):panel.addClass(_cssCls.collapsed),collapsed},_setItemIcon:function _setItemIcon($item,icon){$item.find(_selectors.icons).attr("class",_cssCls.icon+" icon-"+icon)},_adjustItemIcon:function _adjustItemIcon($item){var icon=null,defaultIcon=_cssCls.unseen,iconCls=[_cssCls.flagged,_cssCls.answered,_cssCls.viewed];_.forEach(iconCls,function(cls){if($item.hasClass(cls))return icon=cls,!1}),this._setItemIcon($item,icon||defaultIcon)},_toggleFlag:function _toggleFlag($item,flag){$item.toggleClass(_cssCls.flagged,flag),this._adjustItemIcon($item)},_mark:function _mark($item){var itemId=$item.data("id"),itemPosition=$item.data("position"),flag=!$item.hasClass(_cssCls.flagged);this._toggleFlag($item),this.trigger("mark",[flag,itemPosition,itemId])},_jump:function _jump($item){var itemId=$item.data("id"),itemPosition=$item.data("position");this.trigger("jump",[itemPosition,itemId])},_updateSectionCounters:function _updateSectionCounters(filtered){var self=this,filter=_filterMap[filtered?"filtered":"answered"];this.$tree.find(_selectors.sections).each(function(){var $section=$(this),$items=$section.find(_selectors.items),$filtered=$items.filter(filter),total=$items.length,nb=total-$filtered.length;self._writeCount($section.find(_selectors.counters),nb,total)})},_updateDisplayOptions:function _updateDisplayOptions(){var reviewScope=_reviewScopes[this.options.reviewScope]||"test",scopeClass=_cssCls.scope[reviewScope],$root=this.$component;_.forEach(_cssCls.scope,function(cls){$root.removeClass(cls)}),scopeClass&&$root.addClass(scopeClass),$root.toggleClass(_cssCls.collapsible,this.options.canCollapse)},_updateOptions:function _updateOptions(testContext){var options=this.options;_.forEach(_optionsMap,function(optionKey,contextKey){void 0!==testContext[contextKey]&&(options[optionKey]=testContext[contextKey])})},_updateInfos:function _updateInfos(){var progression=this.progression,unanswered=+progression.total-+progression.answered;this._writeCount(this.$infoAnswered,progression.answered,progression.total),this._writeCount(this.$infoUnanswered,unanswered,progression.total),this._writeCount(this.$infoViewed,progression.viewed,progression.total),this._writeCount(this.$infoFlagged,progression.flagged,progression.total)},_writeCount:function _writeCount($place,count,total){$place.text(count+"/"+total)},_getProgressionOfTest:function _getProgressionOfTest(testContext){return{total:testContext.numberItems||0,answered:testContext.numberCompleted||0,viewed:testContext.numberPresented||0,flagged:testContext.numberFlagged||0}},_getProgressionOfTestPart:function _getProgressionOfTestPart(testContext){return{total:testContext.numberItemsPart||0,answered:testContext.numberCompletedPart||0,viewed:testContext.numberPresentedPart||0,flagged:testContext.numberFlaggedPart||0}},_getProgressionOfTestSection:function _getProgressionOfTestSection(testContext){return{total:testContext.numberItemsSection||0,answered:testContext.numberCompletedSection||0,viewed:testContext.numberPresentedSection||0,flagged:testContext.numberFlaggedSection||0}},_updateTree:function _updateTree(testContext){var navigatorMap=testContext.navigatorMap,reviewScope=this.options.reviewScope,reviewScopeSection="testSection"===reviewScope,_partsFilter=function(part){return reviewScopeSection&&part.sections&&(part.sections=_.filter(part.sections,_partsFilter)),part.active};navigatorMap?(("testPart"===reviewScope||reviewScopeSection)&&(navigatorMap=_.filter(navigatorMap,_partsFilter)),this.$filterBar.show(),this.$linearState.hide(),this.$tree.html(navigatorTreeTpl({parts:navigatorMap})),this.options.preventsUnseen&&this.$tree.find(_selectors.unseen).addClass(_cssCls.disabled)):(this.$filterBar.hide(),this.$linearState.show(),this.$tree.empty()),this._filter(this.$filters.filter(_selectors.actives).data("mode"))},setItemFlag:function(position,flag){var $item=position&&position.jquery?position:this.$tree.find("[data-position="+position+"]"),progression=this.progression;this._toggleFlag($item,flag),progression.flagged=this.$tree.find(_selectors.flagged).length,this._writeCount(this.$infoFlagged,progression.flagged,progression.total),this._filter(this.currentFilter)},updateNumberFlagged:function updateNumberFlagged(testContext,position,flag){var fields=["numberFlagged"],currentPosition=testContext.itemPosition,currentFound=!1,currentSection=null,currentPart=null,itemFound=!1,itemSection=null,itemPart=null;testContext.navigatorMap?(_.forEach(testContext.navigatorMap,function(part){if(_.forEach(part&&part.sections,function(section){if(_.forEach(section&§ion.items,function(item){if(item&&(item.position===position&&(itemPart=part,itemSection=section,itemFound=!0),item.position===currentPosition&&(currentPart=part,currentSection=section,currentFound=!0),itemFound&¤tFound))return!1}),itemFound&¤tFound)return!1}),itemFound&¤tFound)return!1}),itemFound&¤tPart===itemPart&&fields.push("numberFlaggedPart"),itemFound&¤tSection===itemSection&&fields.push("numberFlaggedSection")):(fields.push("numberFlaggedPart"),fields.push("numberFlaggedSection")),_.forEach(fields,function(field){field in testContext&&(testContext[field]+=flag?1:-1)})},getProgression:function getProgression(testContext){var reviewScope=_reviewScopes[this.options.reviewScope]||"test",progressInfoMethod="_getProgressionOf"+capitalize(reviewScope),getProgression=this[progressInfoMethod]||this._getProgressionOfTest,progression=getProgression&&getProgression(testContext)||{};return progression},update:function(testContext){return this.progression=this.getProgression(testContext),this._updateOptions(testContext),this._updateInfos(testContext),this._updateTree(testContext),this._updateDisplayOptions(testContext),this},disable:function(){return this.disabled=!0,this.$component.addClass(_cssCls.disabled),this},enable:function(){return this.disabled=!1,this.$component.removeClass(_cssCls.disabled),this},hide:function(){return this.disabled=!0,this.hidden=!0,this.$component.addClass(_cssCls.hidden),this},show:function(){return this.disabled=!1,this.hidden=!1,this.$component.removeClass(_cssCls.hidden),this},toggle:function(show){return void 0===show&&(show=this.hidden),show?this.show():this.hide(),this},on:function(){var dom=this.$component;return dom&&dom.on.apply(dom,arguments),this},off:function(){var dom=this.$component;return dom&&dom.off.apply(dom,arguments),this},trigger:function(eventName,extraParameters){var dom=this.$component;return void 0===extraParameters&&(extraParameters=[]),_.isArray(extraParameters)||(extraParameters=[extraParameters]),extraParameters.push(this),dom&&dom.trigger(eventName,extraParameters),this}};return function testReviewFactory(element,options){var component=_.clone(testReview,!0);return component.init(element,options)}}),define("taoQtiTest/testRunner/progressUpdater",["jquery","lodash","i18n","ui/progressbar"],function($,_,__){'use strict';var _Mathfloor=Math.floor,_Mathmax2=Math.max,progressUpdaters={init:function init(progressBar,progressLabel){return this.progressBar=$(progressBar).progressbar(),this.progressLabel=$(progressLabel),this},write:function write(label,ratio){return this.progressLabel.text(label),this.progressBar.progressbar("value",ratio),this},update:function update(testContext){var progressIndicator=testContext.progressIndicator||"percentage",getProgression=this[progressIndicator+"Progression"]||this.percentageProgression,progression=getProgression&&getProgression(testContext)||{};return this.write(progression.label,progression.ratio),progression},percentageProgression:function percentageProgression(testContext){var total=_Mathmax2(1,testContext.numberItems),ratio=_Mathfloor(100*(testContext.numberCompleted/total));return{ratio:ratio,label:ratio+"%"}},positionProgression:function positionProgression(testContext){var progressScope=testContext.progressIndicatorScope,progressScopeCounter={test:{total:"numberItems",position:"itemPosition"},testPart:{total:"numberItemsPart",position:"itemPositionPart"},testSection:{total:"numberItemsSection",position:"itemPositionSection"}},counter=progressScopeCounter[progressScope]||progressScopeCounter.test,total=_Mathmax2(1,testContext[counter.total]),position=testContext[counter.position]+1;return{ratio:_Mathfloor(100*(position/total)),label:__("Item %d of %d",position,total)}}};return function progressUpdaterFactory(progressBar,progressLabel){var updater=_.clone(progressUpdaters,!0);return updater.init(progressBar,progressLabel)}}),define("taoQtiTest/testRunner/testMetaData",["lodash"],function(_){'use strict';return function(options){function setLocalStorageData(val){var currentKey=testMetaData.getLocalStorageKey();try{window.localStorage.setItem(currentKey,val)}catch(domException){if("QuotaExceededError"===domException.name||"NS_ERROR_DOM_QUOTA_REACHED"===domException.name){for(var removed=0,i=window.localStorage.length,key;i--;)key=localStorage.key(i),/^testMetaData_.*/.test(key)&&key!==currentKey&&(window.localStorage.removeItem(key),removed++);if(removed)setLocalStorageData(val);else throw domException}else throw domException}}function getLocalStorageData(){var data=window.localStorage.getItem(testMetaData.getLocalStorageKey()),result=JSON.parse(data)||{};return result}var _data={},_testServiceCallId;if(!options||void 0===options.testServiceCallId)throw new TypeError("testServiceCallId option is required");var testMetaData={SECTION_EXIT_CODE:{COMPLETED_NORMALLY:700,QUIT:701,COMPLETE_TIMEOUT:703,TIMEOUT:704,FORCE_QUIT:705,IN_PROGRESS:706,ERROR:300},TEST_EXIT_CODE:{COMPLETE:"C",TERMINATED:"T",INCOMPLETE:"IC",INCOMPLETE_QUIT:"IQ",INACTIVE:"IA",CANDIDATE_DISAGREED_WITH_NDA:"DA"},getTestServiceCallId:function(){return _testServiceCallId},setTestServiceCallId:function(value){_testServiceCallId=value},setData:function(data){_data=data,setLocalStorageData(JSON.stringify(_data))},addData:function(data,overwrite){data=_.clone(data),void 0===overwrite&&(overwrite=!1),overwrite?_.merge(_data,data):_data=_.merge(data,_data),setLocalStorageData(JSON.stringify(_data))},getData:function(){return _.clone(_data)},clearData:function(){_data={},window.localStorage.removeItem(testMetaData.getLocalStorageKey())},getLocalStorageKey:function(){return"testMetaData_"+_testServiceCallId}};return function(){_testServiceCallId=options.testServiceCallId,testMetaData.setData(getLocalStorageData())}(),testMetaData}}),define("taoQtiTest/controller/runtime/testRunner",["jquery","lodash","i18n","module","taoQtiTest/testRunner/actionBarTools","taoQtiTest/testRunner/testReview","taoQtiTest/testRunner/progressUpdater","taoQtiTest/testRunner/testMetaData","serviceApi/ServiceApi","serviceApi/UserInfoService","serviceApi/StateStorage","iframeNotifier","mathJax","ui/feedback","ui/deleter","moment","ui/modal","ui/progressbar"],function($,_,__,module,actionBarTools,testReview,progressUpdater,testMetaDataFactory,ServiceApi,UserInfoService,StateStorage,iframeNotifier,MathJax,feedback,deleter,moment,modal){'use strict';var _Mathfloor2=Math.floor,_Mathmax3=Math.max,timerIds=[],currentTimes=[],lastDates=[],timeDiffs=[],waitingTime=0,$doc=$(document),optionNextSection="x-tao-option-nextSection",optionNextSectionWarning="x-tao-option-nextSectionWarning",optionReviewScreen="x-tao-option-reviewScreen",optionEndTestWarning="x-tao-option-endTestWarning",optionNoExitTimedSectionWarning="x-tao-option-noExitTimedSectionWarning",TestRunner={TEST_STATE_INITIAL:0,TEST_STATE_INTERACTING:1,TEST_STATE_MODAL_FEEDBACK:2,TEST_STATE_SUSPENDED:3,TEST_STATE_CLOSED:4,TEST_NAVIGATION_LINEAR:0,TEST_NAVIGATION_NONLINEAR:1,TEST_ITEM_STATE_INTERACTING:1,beforeTransition:function beforeTransition(callback){iframeNotifier.parent("loading"),this.disableGui(),$controls.$itemFrame.hide(),$controls.$rubricBlocks.hide(),$controls.$timerWrapper.hide(),"function"==typeof callback&&setTimeout(callback,0)},afterTransition:function afterTransition(){this.enableGui(),iframeNotifier.parent("unloading"),testMetaData.addData({ITEM:{ITEM_START_TIME_CLIENT:Date.now()/1e3}})},jump:function jump(position){var self=this,params={position:position};this.disableGui(),this.isJumpOutOfSection(position)&&this.isCurrentItemActive()&&this.isTimedSection()?this.exitTimedSection("jump",params):this.killItemSession(function(){self.actionCall("jump",params)})},keepItemTimed:function keepItemTimed(duration){if(duration){var self=this;self.actionCall("keepItemTimed",{duration:duration})}},markForReview:function markForReview(flag,position){var self=this;iframeNotifier.parent("loading"),this.disableGui(),$.ajax({url:self.testContext.markForReviewUrl,cache:!1,async:!0,type:"POST",dataType:"json",data:{flag:flag,position:position},success:function success(){self.testReview&&(self.testReview.setItemFlag(position,flag),self.testReview.updateNumberFlagged(self.testContext,position,flag),self.testContext.itemPosition===position&&(self.testContext.itemFlagged=flag),self.updateTools(self.testContext)),self.enableGui(),iframeNotifier.parent("unloading")}})},moveForward:function moveForward(){function doExitSection(){self.isTimedSection()&&!self.testContext.isTimeout?self.exitTimedSection("moveForward"):self.exitSection("moveForward")}var self=this;this.disableGui(),0==this.testContext.numberItemsSection-this.testContext.itemPositionSection-1&&this.isCurrentItemActive()?this.shouldDisplayEndTestWarning()?(this.displayEndTestWarning(doExitSection),this.enableGui()):doExitSection():this.killItemSession(function(){self.actionCall("moveForward")})},shouldDisplayEndTestWarning:function shouldDisplayEndTestWarning(){return!0===this.testContext.isLast&&this.hasOption("x-tao-option-endTestWarning")},displayEndTestWarning:function displayEndTestWarning(nextAction){var options={confirmLabel:__("OK"),cancelLabel:__("Cancel"),showItemCount:!1};this.displayExitMessage(__("You are about to submit the test. You will not be able to access this test once submitted. Click OK to continue and submit the test."),nextAction,options)},moveBackward:function moveBackward(){var self=this;this.disableGui(),0==this.testContext.itemPositionSection&&this.isCurrentItemActive()&&this.isTimedSection()?this.exitTimedSection("moveBackward"):this.killItemSession(function(){self.actionCall("moveBackward")})},isJumpOutOfSection:function isJumpOutOfSection(jumpPosition){var items=this.getCurrentSectionItems(),isJumpToOtherSection=!0,isValidPosition=0<=jumpPosition&&jumpPosition"),$controls.$itemFrame.appendTo($controls.$contentBox),this.testContext.itemSessionState===this.TEST_ITEM_STATE_INTERACTING&&!1===self.testContext.isTimeout?($doc.off(".testRunner").on("serviceloaded.testRunner",function(){self.afterTransition(),self.adjustFrame(),$controls.$itemFrame.css({visibility:"visible"})}),this.itemServiceApi.loadInto($controls.$itemFrame[0],function(){})):self.afterTransition()},updateInformation:function updateInformation(){!0===this.testContext.isTimeout?feedback().error(__("Time limit reached for item \"%s\".",this.testContext.itemIdentifier)):this.testContext.itemSessionState!==this.TEST_ITEM_STATE_INTERACTING&&feedback().error(__("No more attempts allowed for item \"%s\".",this.testContext.itemIdentifier))},updateTools:function(testContext){var showSkip=!1,showSkipEnd=!1,showNextSection=!!testContext.nextSection&&(this.hasOption("x-tao-option-nextSection")||this.hasOption("x-tao-option-nextSectionWarning"));!0===this.testContext.allowSkipping&&(!1===this.testContext.isLast?showSkip=!0:showSkipEnd=!0),$controls.$skip.toggle(showSkip),$controls.$skipEnd.toggle(showSkipEnd),$controls.$nextSection.toggle(showNextSection),actionBarTools.render(".tools-box-list",testContext,TestRunner)},createTimer:function createTimer(cst){var $timer=$("
      ",{class:"qti-timer qti-timer__type-"+cst.qtiClassName}),$label=$("
      ",{class:"qti-timer_label truncate",text:cst.label}),$time=$("
      ",{class:"qti-timer_time",text:this.formatTime(cst.seconds)});return $timer.append($label),$timer.append($time),$timer},updateTimer:function updateTimer(){var self=this,hasTimers;$controls.$timerWrapper.empty();for(var i=0;i=currentTimes[timerIndex]?(currentTimes[timerIndex]=0,clearInterval(timerIds[timerIndex]),$controls.$itemFrame.hide(),self.timeout()):lastDates[timerIndex]=new Date;var warning=_.findLast(cst.warnings,{showed:!1});!_.isEmpty(warning)&&_.isFinite(warning.point)&¤tTimes[timerIndex]<=warning.point&&self.timeWarning(cst,warning)},1e3)})(timerIndex,cst)}}$timers=$controls.$timerWrapper.find(".qti-timer .qti-timer_time"),$controls.$timerWrapper.show()}},timeWarning:function timeWarning(cst,warning){var message="",$timer=$controls.$timerWrapper.find(".qti-timer__type-"+cst.qtiClassName),$time=$timer.find(".qti-timer_time"),remaining;switch($time.removeClass("txt-info txt-warning txt-danger").addClass("txt-"+warning.type),remaining=moment.duration(warning.point,"seconds").humanize(),cst.qtiClassName){case"assessmentItemRef":message=__("Warning \u2013 You have %s remaining to complete this item.",remaining);break;case"assessmentSection":message=__("Warning \u2013 You have %s remaining to complete this section.",remaining);break;case"testPart":message=__("Warning \u2013 You have %s remaining to complete this test part.",remaining);break;case"assessmentTest":message=__("Warning \u2013 You have %s remaining to complete the test.",remaining);}feedback()[warning.type](message),cst.warnings[warning.point].showed=!0},updateRubrics:function updateRubrics(){if($controls.$rubricBlocks.remove(),0");for(var i=0;ihours&&(hours="0"+hours),10>minutes&&(minutes="0"+minutes),10>seconds&&(seconds="0"+seconds);var time=hours+":"+minutes+":"+seconds;return time},processError:function(error){var self=this;this.hideGui(),this.beforeTransition(),iframeNotifier.parent("messagealert",{message:error.message,action:function action(){testMetaData&&testMetaData.clearData(),error.state===self.TEST_STATE_CLOSED?self.serviceApi.finish():self.serviceApi.exit()}})},actionCall:function actionCall(action,extraParams){var self=this,params={metaData:testMetaData?testMetaData.getData():{}};extraParams&&(params=_.assign(params,extraParams)),this.beforeTransition(function(){$.ajax({url:self.testContext[action+"Url"],cache:!1,data:params,async:!0,dataType:"json",success:function success(testContext){testMetaData.clearData(),testContext.success?testContext.state===self.TEST_STATE_CLOSED?self.serviceApi.finish():self.update(testContext):self.processError(testContext)}})})},exit:function exit(){var self=this;testMetaData.addData({TEST:{TEST_EXIT_CODE:testMetaData.TEST_EXIT_CODE.INCOMPLETE},SECTION:{SECTION_EXIT_CODE:testMetaData.SECTION_EXIT_CODE.QUIT}}),this.displayExitMessage(__("Are you sure you want to end the test?"),function(){self.killItemSession(function(){self.actionCall("endTestSession"),testMetaData.clearData()})},{scope:this.testReview?this.testContext.reviewScope:null})},setCurrentItemState:function setCurrentItemState(id,state){id&&(this.currentItemState[id]=state)},resetCurrentItemState:function resetCurrentItemState(){this.currentItemState={}},getCurrentItemState:function getCurrentItemState(){return this.currentItemState}},config=module.config(),$timers,$controls,timerIndex,testMetaData,sessionStateService;return config&&actionBarTools.register(config.qtiTools),{start:function start(testContext){$controls={$moveForward:$("[data-control=\"move-forward\"]"),$moveEnd:$("[data-control=\"move-end\"]"),$moveBackward:$("[data-control=\"move-backward\"]"),$nextSection:$("[data-control=\"next-section\"]"),$skip:$("[data-control=\"skip\"]"),$skipEnd:$("[data-control=\"skip-end\"]"),$exit:$(window.parent.document).find("[data-control=\"exit\"]"),$logout:$(window.parent.document).find("[data-control=\"logout\"]"),$naviButtons:$(".bottom-action-bar .action"),$skipButtons:$(".navi-box .skip"),$forwardButtons:$(".navi-box .forward"),$progressBar:$("[data-control=\"progress-bar\"]"),$progressLabel:$("[data-control=\"progress-label\"]"),$progressBox:$(".progress-box"),$title:$("[data-control=\"qti-test-title\"]"),$position:$("[data-control=\"qti-test-position\"]"),$timerWrapper:$("[data-control=\"qti-timers\"]"),$contentPanel:$(".content-panel"),$controls:$(".qti-controls"),$itemFrame:$("#qti-item"),$rubricBlocks:$("#qti-rubrics"),$contentBox:$("#qti-content"),$sideBars:$(".test-sidebar"),$topActionBar:$(".horizontal-action-bar.top-action-bar"),$bottomActionBar:$(".horizontal-action-bar.bottom-action-bar")},$controls.$titleGroup=$controls.$title.add($controls.$position),$doc.ajaxError(function(event,jqxhr){403===jqxhr.status&&iframeNotifier.parent("serviceforbidden")}),window.onServiceApiReady=function(serviceApi){TestRunner.serviceApi=serviceApi,testContext.success?testContext.state===TestRunner.TEST_STATE_CLOSED?(serviceApi.finish(),testMetaData.clearData()):TestRunner.getSessionStateService().getDuration()?(TestRunner.setTestContext(testContext),TestRunner.initMetadata(),TestRunner.keepItemTimed(TestRunner.getSessionStateService().getDuration()),TestRunner.getSessionStateService().restart()):TestRunner.update(testContext):TestRunner.processError(testContext)},TestRunner.beforeTransition(),TestRunner.testContext=testContext,$controls.$skipButtons.click(function(){$(this).hasClass("disabled")||TestRunner.skip()}),$controls.$forwardButtons.click(function(){$(this).hasClass("disabled")||TestRunner.moveForward()}),$controls.$moveBackward.click(function(){$(this).hasClass("disabled")||TestRunner.moveBackward()}),$controls.$nextSection.click(function(){$(this).hasClass("disabled")||TestRunner.nextSection()}),$controls.$exit.click(function(e){e.preventDefault(),TestRunner.exit()}),$(window).on("resize",_.throttle(function(){TestRunner.adjustFrame(),$controls.$titleGroup.show()},250)),$doc.on("loading",function(){iframeNotifier.parent("loading")}),$doc.on("unloading",function(){iframeNotifier.parent("unloading")}),TestRunner.progressUpdater=progressUpdater($controls.$progressBar,$controls.$progressLabel),testContext.reviewScreen&&(TestRunner.testReview=testReview($controls.$contentPanel,{region:testContext.reviewRegion||"left",hidden:!TestRunner.hasOption("x-tao-option-reviewScreen"),reviewScope:testContext.reviewScope,preventsUnseen:!!testContext.reviewPreventsUnseen,canCollapse:!!testContext.reviewCanCollapse}).on("jump",function(event,position){TestRunner.jump(position)}).on("mark",function(event,flag,position){TestRunner.markForReview(flag,position)}),$controls.$sideBars=$(".test-sidebar")),TestRunner.updateProgress(),TestRunner.updateTestReview(),iframeNotifier.parent("serviceready"),TestRunner.adjustFrame(),$controls.$topActionBar.add($controls.$bottomActionBar).animate({opacity:1},600),deleter($("#feedback-box")),modal($("body")),$(document).on("responsechange",function(e,responseId,response){responseId&&response&&TestRunner.setCurrentItemState(responseId,{response:response})}).on("stateready",function(e,id,state){id&&state&&TestRunner.setCurrentItemState(id,state)}).on("heightchange",function(e,height){$controls.$itemFrame.height(height)})}}}),function(c){var d=document,s=d.createElement("style");s.type="text/css",d.getElementsByTagName("head")[0].appendChild(s),s.styleSheet?s.styleSheet.cssText=c:s.appendChild(d.createTextNode(c))}(".qti-navigator{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;-o-flex-direction:column;flex-direction:column;padding:0;cursor:default;min-width:calc(18rem - 8px);height:100%;position:relative}.qti-navigator span{display:inline-block}.qti-navigator .collapsed .collapsible-panel{display:none !important}.qti-navigator .collapsed .qti-navigator-label .icon-up{display:none}.qti-navigator .collapsed .qti-navigator-label .icon-down{display:inline-block}.qti-navigator .collapsible>.qti-navigator-label,.qti-navigator .qti-navigator-item>.qti-navigator-label{cursor:pointer}.qti-navigator.scope-test-section .qti-navigator-part>.qti-navigator-label{display:none !important}.qti-navigator .qti-navigator-label{display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;min-width:calc(100% - 12px);padding:0 6px;line-height:3rem}.qti-navigator .qti-navigator-label .icon-up,.qti-navigator .qti-navigator-label .icon-down{line-height:3rem;margin-left:auto}.qti-navigator .qti-navigator-label .icon-down{display:none}.qti-navigator .qti-navigator-label .qti-navigator-number{display:none}.qti-navigator .qti-navigator-icon,.qti-navigator .icon{position:relative;top:1px;display:inline-block;width:2rem;line-height:2.8rem}.qti-navigator .unseen .qti-navigator-icon{cursor:default}.qti-navigator.prevents-unseen:not(.skipahead-enabled) .unseen .qti-navigator-icon,.qti-navigator.prevents-unseen:not(.skipahead-enabled) .unseen .qti-navigator-label{cursor:not-allowed !important}.qti-navigator .icon-answered:before{content:\"\\e69a\"}.qti-navigator .icon-viewed:before{content:\"\\e631\"}.qti-navigator .icon-flagged:before{content:\"\\e64e\"}.qti-navigator .icon-unanswered:before,.qti-navigator .icon-unseen:before{content:\"\\e6a5\"}.qti-navigator .qti-navigator-counter{text-align:right;margin-left:auto;font-size:12px;font-size:1.2rem}.qti-navigator .qti-navigator-actions{text-align:center}.qti-navigator .qti-navigator-info.collapsed{height:calc(3rem + 1px)}.qti-navigator .qti-navigator-info{height:calc(5 * (3rem + 1px));overflow:hidden}.qti-navigator .qti-navigator-info>.qti-navigator-label{min-width:calc(100% - 16px);padding:0 8px}.qti-navigator .qti-navigator-info ul{padding:0 4px}.qti-navigator .qti-navigator-info ul .qti-navigator-label span.qti-navigator-text{padding:0 6px;min-width:10rem}.qti-navigator .qti-navigator-info ul .qti-navigator-label span.qti-navigator-icon{min-width:1.5rem}.qti-navigator .qti-navigator-info ul .qti-navigator-label span.qti-navigator-counter{min-width:5rem}.qti-navigator .qti-navigator-filters{margin-top:1rem;text-align:center;width:15rem;height:calc(3rem + (2 * 1px))}.qti-navigator .qti-navigator-filters ul{display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch}.qti-navigator .qti-navigator-filters li{display:block}.qti-navigator .qti-navigator-filters li .qti-navigator-tab{border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;border-left:none;line-height:3rem;min-width:5rem;cursor:pointer;white-space:nowrap}.qti-navigator .qti-navigator-tree{-webkit-flex:1;-moz-flex:1;-ms-flex:1;-o-flex:1;flex:1;overflow-y:auto}.qti-navigator .qti-navigator-linear,.qti-navigator .qti-navigator-linear-part{padding:8px}.qti-navigator .qti-navigator-linear .icon,.qti-navigator .qti-navigator-linear-part .icon{display:none}.qti-navigator .qti-navigator-linear .qti-navigator-label,.qti-navigator .qti-navigator-linear-part .qti-navigator-label{font-size:14px;font-size:1.4rem}.qti-navigator .qti-navigator-linear .qti-navigator-title,.qti-navigator .qti-navigator-linear-part .qti-navigator-title{font-size:14px;font-size:1.4rem;margin:8px 0}.qti-navigator .qti-navigator-linear .qti-navigator-message,.qti-navigator .qti-navigator-linear-part .qti-navigator-message{font-size:14px;font-size:1.4rem}.qti-navigator .qti-navigator-part>.qti-navigator-label{padding:0 8px}.qti-navigator .qti-navigator-part:not(:first-child){margin-top:1px}.qti-navigator .qti-navigator-section>.qti-navigator-label{padding:0 8px}.qti-navigator .qti-navigator-item{margin:1px 0;padding-left:10px}.qti-navigator .qti-navigator-item:first-child{margin-top:0}.qti-navigator .qti-navigator-item.disabled>.qti-navigator-label{cursor:not-allowed}.qti-navigator .qti-navigator-collapsible{cursor:pointer;text-align:center;display:none;position:absolute;top:0;bottom:0;right:0;padding-top:50%}.qti-navigator .qti-navigator-collapsible .icon{font-size:20px;font-size:2rem;width:1rem !important;height:2rem !important}.qti-navigator .qti-navigator-collapsible .qti-navigator-expand{display:none}.qti-navigator.collapsible{padding-right:calc(1rem + 10px) !important}.qti-navigator.collapsible .qti-navigator-collapsible{display:block}.qti-navigator.collapsed{width:calc(8rem + 1rem + 10px);min-width:8rem}.qti-navigator.collapsed ul{padding:0 !important}.qti-navigator.collapsed .qti-navigator-text,.qti-navigator.collapsed .qti-navigator-info>.qti-navigator-label,.qti-navigator.collapsed .qti-navigator-part>.qti-navigator-label,.qti-navigator.collapsed .qti-navigator-section>.qti-navigator-label,.qti-navigator.collapsed .qti-navigator-message{display:none !important}.qti-navigator.collapsed .qti-navigator-label{padding:0 2px !important;width:calc(8rem - 4px);min-width:calc(8rem - 4px)}.qti-navigator.collapsed .qti-navigator-icon,.qti-navigator.collapsed .icon{width:auto}.qti-navigator.collapsed .qti-navigator-counter{margin-left:0;min-width:4rem !important}.qti-navigator.collapsed .qti-navigator-collapsible .qti-navigator-collapse{display:none}.qti-navigator.collapsed .qti-navigator-collapsible .qti-navigator-expand{display:block}.qti-navigator.collapsed .qti-navigator-info{height:calc(4 * (3rem + 1px))}.qti-navigator.collapsed .qti-navigator-info.collapsed .collapsible-panel{display:block !important}.qti-navigator.collapsed .qti-navigator-filters{width:calc(8rem - 16px)}.qti-navigator.collapsed .qti-navigator-filter span{display:none}.qti-navigator.collapsed .qti-navigator-filter.active span{display:block;border:0 none;width:calc(8rem - 16px)}.qti-navigator.collapsed .qti-navigator-item,.qti-navigator.collapsed .qti-navigator-linear,.qti-navigator.collapsed .qti-navigator-linear-part{padding-left:2px;text-align:center}.qti-navigator.collapsed .qti-navigator-item{overflow:hidden}.qti-navigator.collapsed .qti-navigator-item .qti-navigator-icon{padding-left:6px;width:2rem}.qti-navigator.collapsed .qti-navigator-item .qti-navigator-number{display:inline-block;margin-left:6px;margin-right:8rem}.qti-navigator.collapsed .qti-navigator-linear,.qti-navigator.collapsed .qti-navigator-linear-part{padding:0 0 8px 0}.qti-navigator.collapsed .qti-navigator-linear .icon,.qti-navigator.collapsed .qti-navigator-linear-part .icon{display:block}.qti-navigator.collapsed .qti-navigator-actions button{padding:0 9px 0 5px}.qti-navigator .qti-navigator-info>.qti-navigator-label{background-color:#D4D5D7;color:#222;border-top:1px solid #D4D5D7}.qti-navigator .qti-navigator-info li{border-bottom:1px solid #fff}.qti-navigator .qti-navigator-filter .qti-navigator-tab{background-color:#fff}.qti-navigator .qti-navigator-filter .qti-navigator-tab:hover{background-color:#3e7da7;color:#fff}.qti-navigator .qti-navigator-filter.active .qti-navigator-tab{background-color:#a4a9b1;color:#fff}.qti-navigator .qti-navigator-linear,.qti-navigator .qti-navigator-linear-part{background:#fff}.qti-navigator .qti-navigator-part>.qti-navigator-label{background-color:#dddfe2}.qti-navigator .qti-navigator-part>.qti-navigator-label:hover{background-color:#c6cacf}.qti-navigator .qti-navigator-part.active>.qti-navigator-label{background-color:#c0c4ca}.qti-navigator .qti-navigator-section>.qti-navigator-label{border-bottom:1px solid #fff}.qti-navigator .qti-navigator-section>.qti-navigator-label:hover{background-color:#ebe8e4}.qti-navigator .qti-navigator-section.active>.qti-navigator-label{background-color:#ded9d4}.qti-navigator .qti-navigator-item{background:#fff}.qti-navigator .qti-navigator-item.active{background:#0e5d91;color:#fff}.qti-navigator .qti-navigator-item:hover{background:#0a3f62;color:#fff}.qti-navigator .qti-navigator-item.disabled{background-color:#e2deda !important}.qti-navigator .qti-navigator-collapsible{background-color:#dfe1e4;color:#222}.qti-navigator .qti-navigator-collapsible .icon{color:#fff}.document-viewer-plugin{position:relative}.document-viewer-plugin .viewer-overlay{position:fixed;top:0;left:0;bottom:0;right:0;z-index:10000;width:100%;opacity:.5;background-color:#e4ecef}.document-viewer-plugin .viewer-panel{position:fixed;top:10px;left:10px;bottom:10px;right:10px;z-index:100000;color:#222;background:#f3f1ef;font-size:14px;font-size:1.4rem;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px}.document-viewer-plugin .viewer-header{position:relative;width:100%;height:30px;padding:5px 0;z-index:1}.document-viewer-plugin .viewer-header .viewer-title{font-size:15px;font-size:1.5rem;padding:0;margin:0 0 0 1.6rem}.document-viewer-plugin .viewer-header .icon{float:right;font-size:20px;font-size:2rem;color:#266d9c;margin:1px 6px;top:3px}.document-viewer-plugin .viewer-header .icon:hover{cursor:pointer;opacity:.75}.document-viewer-plugin .viewer-content{padding:0 20px;margin-top:4px;position:relative;height:calc(100% - 40px);overflow:auto}.qti-choiceInteraction.maskable .qti-choice .answer-mask{position:absolute;top:0;right:0;height:100%;padding:5px 10px 0 10px;z-index:10;color:#0e5d91;border:solid 1px #222;background-color:#c8d6dc;text-align:right;vertical-align:middle}.qti-choiceInteraction.maskable .qti-choice .answer-mask:hover{color:#568eb2}.qti-choiceInteraction.maskable .qti-choice .answer-mask .answer-mask-toggle:before{font-family:'tao' !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\e643\"}.qti-choiceInteraction.maskable .qti-choice .label-content{padding-right:40px}.qti-choiceInteraction.maskable .qti-choice.masked .answer-mask{width:100%}.qti-choiceInteraction.maskable .qti-choice.masked .answer-mask .answer-mask-toggle:before{font-family:'tao' !important;speak:never;font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;content:\"\\e631\"}.qti-choiceInteraction.maskable .qti-choice.masked .answer-mask:hover{background-color:#d2dde2}.mask-container.mask-container{background-color:transparent}.mask-container.mask-container .dynamic-component-title-bar{border-top-left-radius:5px;border-top-right-radius:5px;background-color:transparent;border:none;position:absolute;width:100%;z-index:1}.mask-container.mask-container .dynamic-component-title-bar.moving{background:#f3f1ef;border-bottom:1px solid #8d949e}.mask-container.mask-container .dynamic-component-title-bar .closer{display:none}.mask-container.mask-container .dynamic-component-resize-container .dynamic-component-resize-wrapper{bottom:0}.mask-container.mask-container .dynamic-component-resize-container .dynamic-component-resize-wrapper:hover,.mask-container.mask-container .dynamic-component-resize-container .dynamic-component-resize-wrapper.resizing{bottom:20px}.mask-container.mask-container .dynamic-component-content .mask{position:absolute;width:100%;height:100%;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;background:transparent;opacity:1}.mask-container.mask-container .dynamic-component-content .mask .inner{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;position:relative;width:100%;height:100%;background-color:#fff;opacity:1;box-sizing:content-box;padding-bottom:30px}.mask-container.mask-container .dynamic-component-content .mask .controls{background:#f3f1ef;position:absolute;top:0;right:0;padding:0 5px 0 10px;border-radius:5px;border-top-left-radius:0;border-bottom-right-radius:0;border-bottom:1px solid #8d949e;border-left:1px solid #8d949e;height:30px;z-index:2}.mask-container.mask-container .dynamic-component-content .mask .controls a{text-decoration:none;margin-right:5px;vertical-align:middle}.mask-container.mask-container .dynamic-component-content .mask .controls a:hover{color:#0a4166}.mask-container.mask-container .dynamic-component-content .mask .controls .view{font-size:20px;font-size:2rem}.mask-container.mask-container .dynamic-component-content .mask .controls .close{font-size:20px;font-size:2rem}.mask-container.mask-container .dynamic-component-content.moving .mask .inner{border-color:rgba(14,93,145,0.5);opacity:.55}.mask-container.mask-container .dynamic-component-content.moving .mask .controls{border-left:none;border-bottom-left-radius:0;z-index:2}.mask-container.mask-container .dynamic-component-content.sizing .mask{border-color:rgba(14,93,145,0.5)}.mask-container.mask-container .dynamic-component-content.sizing .mask .inner{opacity:.55}.mask-container.mask-container .dynamic-component-content.sizing .mask .controls{background-color:transparent;border-bottom:none;border-left:none}.mask-container.mask-container.previewing .dynamic-component-content .mask .inner{opacity:.15;-webkit-transition:opacity, 600ms, ease, 0s;-moz-transition:opacity, 600ms, ease, 0s;-ms-transition:opacity, 600ms, ease, 0s;-o-transition:opacity, 600ms, ease, 0s;transition:opacity, 600ms, ease, 0s}.mask-container.mask-container.previewing .dynamic-component-content .mask .controls{background-color:transparent;border-bottom:none;border-left:none}.connectivity-box{display:none;width:40px;margin-left:40px}.connectivity-box.with-message{width:60px}.connectivity-box .icon-connect,.connectivity-box .icon-disconnect{display:none;line-height:2;font-size:16px;font-size:1.6rem;text-shadow:0 1px 0 rgba(0,0,0,0.9)}.connectivity-box .message-connect,.connectivity-box .message-disconnected{display:none;font-size:14px;font-size:1.4rem;text-shadow:none;margin-right:3px}.connectivity-box.connected,.connectivity-box.disconnected{display:inline-block}.connectivity-box.connected .icon-connect,.connectivity-box.connected .message-connect{display:inline-block}.connectivity-box.disconnected .icon-disconnect,.connectivity-box.disconnected .message-disconnected{display:inline-block}.line-reader-mask{box-sizing:border-box;border:0 solid #0E5D91;background-color:#f3f7fa}.line-reader-mask.hidden{display:none}.line-reader-mask.resizing{background-color:rgba(243,247,250,0.8);border-color:rgba(14,93,145,0.5)}.line-reader-mask.resizer{z-index:99999 !important}.line-reader-mask.resizer.se .resize-control{border-right:2px solid #0E5D91;border-bottom:2px solid #0E5D91;width:40px;height:40px}.line-reader-mask.border-top{border-top-width:1px}.line-reader-mask.border-right{border-right-width:1px}.line-reader-mask.border-bottom{border-bottom-width:1px}.line-reader-mask.border-left{border-left-width:1px}.line-reader-mask.ne{-webkit-border-top-right-radius:5px;-moz-border-radius-topright:5px;border-top-right-radius:5px}.line-reader-mask.se{-webkit-border-bottom-right-radius:5px;-moz-border-radius-bottomright:5px;border-bottom-right-radius:5px}.line-reader-mask.sw{-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-left-radius:5px}.line-reader-mask.nw{-webkit-border-top-left-radius:5px;-moz-border-radius-topleft:5px;border-top-left-radius:5px}.line-reader-mask.se .resize-control{width:20px;height:20px;margin-bottom:10px;margin-right:10px;border-right:1px solid #0E5D91;border-bottom:1px solid #0E5D91;position:absolute;right:0;bottom:0;cursor:nwse-resize}.line-reader-mask.e .resize-control{position:absolute;width:20px;height:20px;bottom:-10px;left:-10px;border-right:1px solid #0E5D91;border-bottom:1px solid #0E5D91;cursor:nesw-resize}.line-reader-mask.s .resize-control{position:absolute;width:20px;height:10px;right:-10px;border-bottom:1px solid #0E5D91}.line-reader-overlay{box-sizing:border-box;opacity:0}.line-reader-overlay.hidden{display:none}.line-reader-overlay.moving{-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.line-reader-overlay.moving.n{max-height:none}.line-reader-overlay.moving,.line-reader-overlay .inner-window{overflow:hidden;position:absolute;opacity:1;background-color:transparent;border:1px solid rgba(14,93,145,0.5)}.line-reader-overlay .inner-window{box-sizing:content-box}.line-reader-overlay .mask-bg{box-sizing:border-box;border:0 solid rgba(243,247,250,0.8);background-color:transparent;position:absolute}.line-reader-overlay.n{max-height:30px;opacity:1}.line-reader-overlay.n .icon-mobile-menu{font-size:22px;font-size:2.2rem;display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;border-bottom:1px solid #0E5D91;color:#0E5D91;position:absolute;left:0;top:0;height:30px;width:100%;z-index:1}.line-reader-overlay.n .icon-mobile-menu:hover{color:#0a4166}.line-reader-overlay.n .icon-mobile-menu:before{position:relative;top:3px}.line-reader-overlay .icon-mobile-menu{display:none}.line-reader-inner-drag{-moz-border-radius:3px;-webkit-border-radius:3px;border-radius:3px;display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;text-align:center;padding-top:3px;color:#0E5D91}.line-reader-inner-drag.hidden{display:none}.line-reader-inner-drag:hover{background-color:#87aec8;color:#0a4166}.line-reader-inner-drag.moving{background-color:transparent;color:#9fbed3}.line-reader-inner-drag .icon{text-shadow:none !important;border-bottom-left-radius:110px;border-bottom-right-radius:110px;border:1px solid #0E5D91;border-top:0;width:50px;height:25px;position:relative;bottom:10px}.line-reader-inner-drag .icon:before{position:relative;top:5px;left:1px}.line-reader-closer{font-size:22px;font-size:2.2rem;cursor:pointer;color:#0E5D91;width:12px;height:12px}.line-reader-closer:hover{color:#0a4166}.line-reader-closer .icon{text-shadow:none !important}.magnifier-container.magnifier-container{background-color:transparent}.magnifier-container.magnifier-container .dynamic-component-title-bar{border-top-left-radius:5px;border-top-right-radius:5px;background-color:transparent;border:none;position:absolute;width:100%;z-index:3}.magnifier-container.magnifier-container .dynamic-component-title-bar.moving{background:#f3f1ef;border-bottom:1px solid #8d949e}.magnifier-container.magnifier-container .dynamic-component-title-bar .closer{display:none}.magnifier-container.magnifier-container .dynamic-component-resize-container .dynamic-component-resize-wrapper{bottom:0}.magnifier-container.magnifier-container .dynamic-component-resize-container .dynamic-component-resize-wrapper:hover,.magnifier-container.magnifier-container .dynamic-component-resize-container .dynamic-component-resize-wrapper.resizing{bottom:20px}.magnifier-container.magnifier-container .dynamic-component-content .magnifier{position:absolute;width:100%;height:100%;overflow:hidden;background-color:#fff;opacity:1;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;box-sizing:content-box;padding-bottom:30px}@-o-keyframes fadeIn{0%{opacity:0;visibility:visible}100%{opacity:1;visibility:visible}}@-moz-keyframes fadeIn{0%{opacity:0;visibility:visible}100%{opacity:1;visibility:visible}}@-webkit-keyframes fadeIn{0%{opacity:0;visibility:visible}100%{opacity:1;visibility:visible}}@keyframes fadeIn{0%{opacity:0;visibility:visible}100%{opacity:1;visibility:visible}}@-o-keyframes fadeOut{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}@-moz-keyframes fadeOut{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}@-webkit-keyframes fadeOut{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}@keyframes fadeOut{0%{opacity:1;visibility:visible}100%{opacity:0;visibility:hidden}}@-o-keyframes pop{0%{opacity:0;visibility:visible}50%{opacity:.5;visibility:visible;transform:scale(2)}100%{opacity:0;visibility:hidden;transform:scale(3)}}@-moz-keyframes pop{0%{opacity:0;visibility:visible}50%{opacity:.5;visibility:visible;transform:scale(2)}100%{opacity:0;visibility:hidden;transform:scale(3)}}@-webkit-keyframes pop{0%{opacity:0;visibility:visible}50%{opacity:.5;visibility:visible;transform:scale(2)}100%{opacity:0;visibility:hidden;transform:scale(3)}}@keyframes pop{0%{opacity:0;visibility:visible}50%{opacity:.5;visibility:visible;transform:scale(2)}100%{opacity:0;visibility:hidden;transform:scale(3)}}.magnifier-container.magnifier-container .dynamic-component-content .magnifier .level{position:absolute;overflow:hidden;z-index:1;top:0;left:0;bottom:0;right:0;background:transparent;color:#3e7da7;opacity:1;font-size:50px;font-size:5rem;display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-webkit-animation:pop 400ms forwards;-moz-animation:pop 400ms forwards;-ms-animation:pop 400ms forwards;-o-animation:pop 400ms forwards;animation:pop 400ms forwards}.magnifier-container.magnifier-container .dynamic-component-content .magnifier .level:before{content:\"x\"}.magnifier-container.magnifier-container .dynamic-component-content .magnifier .overlay{position:absolute;overflow:hidden;z-index:2;top:0;left:0;bottom:0;right:0;background:transparent}.magnifier-container.magnifier-container .dynamic-component-content .magnifier>.controls{position:absolute;background-color:#f3f1ef;border:0 solid #8d949e;min-height:29px;z-index:4}.magnifier-container.magnifier-container .dynamic-component-content .magnifier>.controls a{color:#222;text-decoration:none;font-size:20px;font-size:2rem;margin:0 2px}.magnifier-container.magnifier-container .dynamic-component-content .magnifier>.controls a:hover{color:#0a4166}.magnifier-container.magnifier-container .dynamic-component-content .magnifier>.controls.close{top:0;right:0;border-bottom-width:1px;border-left-width:1px;-webkit-border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-left-radius:5px}.magnifier-container.magnifier-container .dynamic-component-content .magnifier .inner{position:absolute}.magnifier-container.magnifier-container .dynamic-component-content.moving .magnifier .controls{border-left:none;border-bottom-left-radius:0}.magnifier-container.magnifier-container .dynamic-component-content.sizing{border-color:rgba(14,93,145,0.5)}.magnifier-container.magnifier-container .dynamic-component-content.sizing .inner,.magnifier-container.magnifier-container .dynamic-component-content.sizing .controls,.magnifier-container.magnifier-container .dynamic-component-content.sizing .level{opacity:0.45 !important}.progress-box .progressbar .progressbar-points{display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch}.progress-box .progressbar .progressbar-points>span.progressbar-point{flex:1;display:inline-block;border:1px solid #0e5d91;background-color:#f3f1ef;height:calc(1rem - 4px);margin:0 1px 0 0}.progress-box .progressbar .progressbar-points>span.progressbar-point:last-child{margin-right:0}.progress-box .progressbar .progressbar-points>span.progressbar-point.reached{background-color:#0e5d91}.progress-box .progressbar .progressbar-points>span.progressbar-point.current{background-color:#a4a9b1}.tts-container .tts-controls{display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;background-color:#f3f1ef;-webkit-box-shadow:0 2px 3px 1px rgba(0,0,0,0.2);-moz-box-shadow:0 2px 3px 1px rgba(0,0,0,0.2);-ms-box-shadow:0 2px 3px 1px rgba(0,0,0,0.2);-o-box-shadow:0 2px 3px 1px rgba(0,0,0,0.2);box-shadow:0 2px 3px 1px rgba(0,0,0,0.2)}.tts-container .tts-controls .tts-control{display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;-webkit-justify-content:center;-moz-justify-content:center;-ms-justify-content:center;-o-justify-content:center;justify-content:center;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center;color:#222;height:100%;padding:6px 8.5px;text-decoration:none}.tts-container .tts-controls .tts-control .tts-control-label{padding-left:7.5px}.tts-container .tts-controls .tts-control .tts-icon{font-size:18px;text-align:center;width:18px}.tts-container .tts-controls .tts-control .icon-pause{display:none}.tts-container .tts-controls .tts-control.tts-control-drag{cursor:move}.tts-container .tts-controls .tts-control.tts-control-drag .tts-icon{color:#555}.tts-container .tts-controls .tts-control.tts-control-drag:hover{background-color:transparent}.tts-container .tts-controls .tts-control:hover{background-color:#ddd8d2}.tts-container .tts-controls .tts-control-container{display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch}.tts-container .tts-controls .tts-control-container .tts-slider-container{display:none}.tts-container .tts-controls .tts-control-container .tts-slider-container .tts-slider{margin:0 8.5px;width:80px}.tts-container.playing .tts-controls .tts-control .icon-pause{display:block}.tts-container.playing .tts-controls .tts-control .icon-play{display:none}.tts-container.sfhMode .tts-controls .tts-control.tts-control-mode{-webkit-box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);-moz-box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);-ms-box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);-o-box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);background-color:#ddd8d2}.tts-container.settings .tts-controls .tts-control-container .tts-slider-container{display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;-webkit-align-items:center;-moz-align-items:center;-ms-align-items:center;-o-align-items:center;align-items:center}.tts-container.settings .tts-controls .tts-control-container:last-child{-webkit-box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);-moz-box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);-ms-box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);-o-box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);box-shadow:inset 2px 2px 4px rgba(0,0,0,0.2);background-color:#ddd8d2}.tts-container.settings .tts-controls .tts-control-container .tts-control-settings:hover{background-color:transparent}.tts-content-node{outline:none}.tts-visible.tts-component-container .test-runner-sections .tts-content-node:hover,.tts-visible.tts-component-container .test-runner-sections .tts-content-node:focus{background-color:transparent !important;color:#222 !important}.tts-visible.tts-component-container .test-runner-sections .tts-content-node .label-box,.tts-visible.tts-component-container .test-runner-sections .tts-content-node .qti-choice{cursor:default !important}.tts-sfhMode.tts-component-container .test-runner-sections{cursor:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxNHB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxNCAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAyPC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9IkFydGJvYXJkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjQuMDAwMDAwLCAtMTYuMDAwMDAwKSI+ICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzLjAwMDAwMCwgMTUuMDAwMDAwKSI+ICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtQ29weS02IiB4PSIwIiB5PSIwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvcmVjdD4gICAgICAgICAgICAgICAgPGcgaWQ9Imljb24tLy0xNi0vLWNoZXZyb24tYm90dG9tLWNvcHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuMDAwMDAwLCAyLjAwMDAwMCkiIGZpbGw9IiMyRDJEMkQiPiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9InN3YXAtaWNvbi1jb2xvciIgcG9pbnRzPSIwIDAgMCA4IDYgNCI+PC9wb2x5Z29uPiAgICAgICAgICAgICAgICA8L2c+ICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtQ29weSIgZmlsbD0iIzJEMkQyRCIgeD0iOSIgeT0iNSIgd2lkdGg9IjYiIGhlaWdodD0iMiI+PC9yZWN0PiAgICAgICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLUNvcHktNCIgZmlsbD0iIzJEMkQyRCIgeD0iOSIgeT0iMSIgd2lkdGg9IjYiIGhlaWdodD0iMiI+PC9yZWN0PiAgICAgICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLUNvcHktMiIgZmlsbD0iIzJEMkQyRCIgeD0iOSIgeT0iOSIgd2lkdGg9IjYiIGhlaWdodD0iMiI+PC9yZWN0PiAgICAgICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLUNvcHktMyIgZmlsbD0iIzJEMkQyRCIgeD0iMSIgeT0iMTMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIj48L3JlY3Q+ICAgICAgICAgICAgPC9nPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+) 0 32,auto !important}.tts-sfhMode.tts-component-container .test-runner-sections .tts-content-node.tts-active-content-node:hover{color:#222 !important;background-color:#ff0 !important}.tts-sfhMode.tts-component-container .test-runner-sections .tts-content-node:hover,.tts-sfhMode.tts-component-container .test-runner-sections .tts-content-node:focus{color:#222 !important;background-color:#f3f1ef !important}.tts-sfhMode.tts-component-container .test-runner-sections .tts-content-node .label-box,.tts-sfhMode.tts-component-container .test-runner-sections .tts-content-node .qti-choice{cursor:url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz48c3ZnIHdpZHRoPSIxNHB4IiBoZWlnaHQ9IjE0cHgiIHZpZXdCb3g9IjAgMCAxNCAxNCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4gICAgICAgIDx0aXRsZT5Hcm91cCAyPC90aXRsZT4gICAgPGRlc2M+Q3JlYXRlZCB3aXRoIFNrZXRjaC48L2Rlc2M+ICAgIDxnIGlkPSJQYWdlLTEiIHN0cm9rZT0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIxIiBmaWxsPSJub25lIiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPiAgICAgICAgPGcgaWQ9IkFydGJvYXJkIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgtMjQuMDAwMDAwLCAtMTYuMDAwMDAwKSI+ICAgICAgICAgICAgPGcgaWQ9Ikdyb3VwLTIiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDIzLjAwMDAwMCwgMTUuMDAwMDAwKSI+ICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtQ29weS02IiB4PSIwIiB5PSIwIiB3aWR0aD0iMTYiIGhlaWdodD0iMTYiPjwvcmVjdD4gICAgICAgICAgICAgICAgPGcgaWQ9Imljb24tLy0xNi0vLWNoZXZyb24tYm90dG9tLWNvcHkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDEuMDAwMDAwLCAyLjAwMDAwMCkiIGZpbGw9IiMyRDJEMkQiPiAgICAgICAgICAgICAgICAgICAgPHBvbHlnb24gaWQ9InN3YXAtaWNvbi1jb2xvciIgcG9pbnRzPSIwIDAgMCA4IDYgNCI+PC9wb2x5Z29uPiAgICAgICAgICAgICAgICA8L2c+ICAgICAgICAgICAgICAgIDxyZWN0IGlkPSJSZWN0YW5nbGUtQ29weSIgZmlsbD0iIzJEMkQyRCIgeD0iOSIgeT0iNSIgd2lkdGg9IjYiIGhlaWdodD0iMiI+PC9yZWN0PiAgICAgICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLUNvcHktNCIgZmlsbD0iIzJEMkQyRCIgeD0iOSIgeT0iMSIgd2lkdGg9IjYiIGhlaWdodD0iMiI+PC9yZWN0PiAgICAgICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLUNvcHktMiIgZmlsbD0iIzJEMkQyRCIgeD0iOSIgeT0iOSIgd2lkdGg9IjYiIGhlaWdodD0iMiI+PC9yZWN0PiAgICAgICAgICAgICAgICA8cmVjdCBpZD0iUmVjdGFuZ2xlLUNvcHktMyIgZmlsbD0iIzJEMkQyRCIgeD0iMSIgeT0iMTMiIHdpZHRoPSIxNCIgaGVpZ2h0PSIyIj48L3JlY3Q+ICAgICAgICAgICAgPC9nPiAgICAgICAgPC9nPiAgICA8L2c+PC9zdmc+) 0 32,auto !important}.tts-sfhMode.tts-component-container .test-runner-sections img.tts-content-node:hover,.tts-sfhMode.tts-component-container .test-runner-sections img.tts-content-node:focus{padding:5px}.tts-playing.tts-component-container .test-runner-sections .tts-content-node.tts-active-content-node,.tts-playing.tts-component-container .test-runner-sections .tts-content-node.tts-active-content-node *{color:#222 !important;background-color:#ff0 !important}.tts-playing.tts-component-container .test-runner-sections .tts-content-node.tts-active-content-node:hover,.tts-playing.tts-component-container .test-runner-sections .tts-content-node.tts-active-content-node *:hover{color:#222 !important;background-color:#ff0 !important}.tts-playing.tts-component-container .test-runner-sections img.tts-content-node.tts-active-content-node{padding:5px}body.delivery-scope{min-height:100vh;max-height:100vh;margin-bottom:0}.runner{position:relative}.qti-choiceInteraction .overlay-answer-eliminator{display:none}.test-runner-scope{position:relative;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;height:calc(100vh - 99px)}.test-runner-scope .landmark-title-hidden{width:1px;height:1px;overflow:hidden;position:absolute}.test-runner-scope .test-runner-sections{-webkit-flex:1 1 0%;-ms-flex:1 1 0%;flex:1 1 0%;overflow:hidden;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row}.test-runner-scope .test-sidebar{background:#f3f1ef;-webkit-flex:0 1 auto;-ms-flex:0 1 auto;flex:0 1 auto;overflow-y:auto;max-width:350px}.test-runner-scope .test-sidebar>.qti-panel{max-width:350px;padding:10px}@media only screen and (max-device-width: 800px){.test-runner-scope .test-sidebar{max-width:200px}.test-runner-scope .test-sidebar>.qti-panel{max-width:200px}}@media only screen and (min-device-width: 800px) and (max-device-width: 1280px){.test-runner-scope .test-sidebar{max-width:250px}.test-runner-scope .test-sidebar>.qti-panel{max-width:250px}}@media only screen and (min-device-width: 1280px) and (max-device-width: 1440px){.test-runner-scope .test-sidebar{max-width:300px}.test-runner-scope .test-sidebar>.qti-panel{max-width:300px}}.test-runner-scope .test-sidebar-left{border-right:1px #ddd solid}.test-runner-scope .test-sidebar-right{border-left:1px #ddd solid}.test-runner-scope .content-wrapper{position:relative;-webkit-flex:1 1 0%;-ms-flex:1 1 0%;flex:1 1 0%;overflow:auto;padding:0}.test-runner-scope .content-wrapper .overlay{position:absolute;left:0;right:0;top:0;bottom:0;width:100%;opacity:.9}.test-runner-scope .content-wrapper .overlay-full{background-color:#fff;opacity:1}.test-runner-scope #qti-content{-webkit-overflow-scrolling:touch;max-width:1024px;width:100%;margin:auto}.test-runner-scope #qti-item{width:100%;min-width:100%;height:auto;overflow:visible}.test-runner-scope .qti-item{padding:30px}.test-runner-scope .size-wrapper{max-width:1280px;margin:auto;width:100%}.test-runner-scope #qti-rubrics{margin:auto;max-width:1024px;width:100%}.test-runner-scope #qti-rubrics .qti-rubricBlock{margin:20px 0}.test-runner-scope #qti-rubrics .hidden{display:none}.test-runner-scope .visible-hidden{position:absolute;overflow:hidden;height:1px;width:1px;word-wrap:normal}.no-controls .test-runner-scope{height:100vh}.test-runner-scope .action-bar.content-action-bar{padding:2px}.test-runner-scope .action-bar.content-action-bar li{margin:2px 0 0 10px;border:none}.test-runner-scope .action-bar.content-action-bar li.btn-info{padding-top:6px;height:36px;margin-top:0;border-bottom:solid 2px transparent;border-radius:0}.test-runner-scope .action-bar.content-action-bar li.btn-info.btn-group{border:none !important;overflow:hidden;padding:0}.test-runner-scope .action-bar.content-action-bar li.btn-info.btn-group a{float:left;margin:0 2px;padding:0 15px;border:1px solid rgba(255,255,255,0.3);border-radius:0px;display:inline-block;height:inherit}.test-runner-scope .action-bar.content-action-bar li.btn-info.btn-group a:first-of-type{border-top-left-radius:3px;border-bottom-left-radius:3px;margin-left:0}.test-runner-scope .action-bar.content-action-bar li.btn-info.btn-group a:last-of-type{border-top-right-radius:3px;border-bottom-right-radius:3px;margin-right:0}.test-runner-scope .action-bar.content-action-bar li.btn-info.btn-group a:hover,.test-runner-scope .action-bar.content-action-bar li.btn-info.btn-group a.active{border-color:rgba(255,255,255,0.8)}.test-runner-scope .action-bar.content-action-bar li.btn-info.btn-group a .no-label{padding-right:0}.test-runner-scope .action-bar.content-action-bar li.btn-info:hover,.test-runner-scope .action-bar.content-action-bar li.btn-info.active{border-bottom-color:rgba(255,255,255,0.8)}.test-runner-scope .action-bar.content-action-bar li.btn-info:active,.test-runner-scope .action-bar.content-action-bar li.btn-info.active{background:#e7eff4;border-color:rgba(255,255,255,0.8)}.test-runner-scope .action-bar.content-action-bar li.btn-info:active a,.test-runner-scope .action-bar.content-action-bar li.btn-info.active a{color:#266d9c;text-shadow:none}.test-runner-scope .action-bar.content-action-bar li.btn-info:active:hover,.test-runner-scope .action-bar.content-action-bar li.btn-info.active:hover{background:#fff}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar{opacity:1;height:40px;flex-basis:40px}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar>.control-box{height:38px;display:-ms-flexbox;display:-webkit-flex;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-wrap:nowrap;-ms-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:space-between;-ms-flex-pack:space-between;justify-content:space-between;padding-left:10px;padding-right:10px}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar>.control-box .title-box{font-size:14px;font-size:1.4rem;padding:4px 0 0;-ms-flex:0 1 auto;-webkit-flex:0 1 auto;flex:0 1 auto}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar>.control-box .progress-box,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar>.control-box .item-number-box{padding-top:4px;white-space:nowrap;-ms-flex:0 1 auto;-webkit-flex:0 1 auto;flex:0 1 auto}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar>.control-box .progress-box .qti-controls,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar>.control-box .item-number-box .qti-controls{display:inline-block;margin-left:20px;white-space:nowrap}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar>.control-box .timer-box{-webkit-flex:1 0 auto;-ms-flex:1 0 auto;flex:1 0 auto}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar>.control-box .progressbar{margin-top:5px;min-width:150px;max-width:200px;height:0.6em}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box{color:rgba(255,255,255,0.9);text-shadow:1px 1px 0 black}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box .lft,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box .rgt{padding-left:20px}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box .lft:first-child,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box .rgt:first-child{padding-left:0}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box .lft:last-child ul,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box .rgt:last-child ul{display:inline-block}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box [class^=\"btn-\"],.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar>.control-box [class*=\" btn-\"]{white-space:nowrap}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .action{position:relative;overflow:visible}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu{color:#222;background:#f3f1ef;border:1px solid #aaa9a7;overflow:auto;list-style:none;min-width:150px;margin:0;padding:0;position:absolute;bottom:36px;left:-3px}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action{display:inline-block;text-align:left;width:100%;white-space:nowrap;overflow:hidden;color:#222;border-bottom:1px solid #c2c1bf;margin:0;-moz-border-radius:0px;-webkit-border-radius:0px;border-radius:0px;height:auto;padding:8px 15px 9px;line-height:1;border-left:solid 3px transparent}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action .icon-checkbox-checked{display:none}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.active{background-color:#dbd9d7;font-weight:bold}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.hover .icon-checkbox,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:hover .icon-checkbox,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.active .icon-checkbox{display:none}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.hover .icon-checkbox-checked,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:hover .icon-checkbox-checked,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.active .icon-checkbox-checked{display:inline-block}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:focus,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.hover,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:hover{background-color:#0e5d91;color:#fff;border-left-color:#313030 !important}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:focus .label,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:focus .icon,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.hover .label,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.hover .icon,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:hover .label,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:hover .icon{color:#fff}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:focus .icon,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action.hover .icon,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action:hover .icon{color:#e7eff4}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action .label,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar .tools-box .menu .action .icon{font-size:14px;font-size:1.4rem;text-shadow:none;color:#222}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar{overflow:visible;position:relative}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .action{line-height:1.6}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .icon.no-label{padding-right:0}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .tool-label-collapsed .btn-info .text,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .tool-label-collapsed-hover .btn-info:not(:hover) .text,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .btn-info.no-tool-label .text,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .btn-info.tool-label-collapsed .text,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .btn-info.tool-label-collapsed-over:not(:hover) .text{display:none}.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .tool-label-collapsed .btn-info .icon,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .tool-label-collapsed-hover .btn-info:not(:hover) .icon,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .btn-info.no-tool-label .icon,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .btn-info.tool-label-collapsed .icon,.test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.bottom-action-bar .btn-info.tool-label-collapsed-over:not(:hover) .icon{padding:0}.test-runner-scope [data-control=\"exit\"]{margin-left:20px}.test-runner-scope [data-control=\"comment-toggle\"]{display:none}.test-runner-scope.non-lti-context .title-box{display:none}.test-runner-scope [data-control=\"qti-comment\"]{background-color:#f3f1ef;position:absolute;bottom:33px;left:8px;text-align:right;padding:5px;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px;-webkit-box-shadow:0 0 15px 1px rgba(0,0,0,0.2);-moz-box-shadow:0 0 15px 1px rgba(0,0,0,0.2);-ms-box-shadow:0 0 15px 1px rgba(0,0,0,0.2);-o-box-shadow:0 0 15px 1px rgba(0,0,0,0.2);box-shadow:0 0 15px 1px rgba(0,0,0,0.2)}.test-runner-scope [data-control=\"qti-comment\"] textarea{display:block;height:100px;resize:none;width:350px;padding:3px;margin:0 0 10px 0;border:none;font-size:13px;font-size:1.3rem;border:1px solid #ddd;border-radius:2px;-webkit-border-radius:2px}.test-runner-scope .tools-box{position:relative;overflow:visible}.wait-content .wait-content_text--centered{text-align:center}.wait-content .wait-content_actions-list{display:-ms-flex;display:-webkit-flex;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row;-ms-flex-wrap:nowrap;-webkit-flex-wrap:nowrap;flex-wrap:nowrap;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-align-content:flex-start;align-content:flex-start;-webkit-align-items:stretch;align-items:stretch;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;-o-flex-direction:column;flex-direction:column}.wait-content .wait-content_actions-list .wait-content_text--centered{position:relative;right:15px}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box>.lft{float:right;margin:2px 10px 0 0}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .rgt{float:left}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list>.action>.li-inner>.icon,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list>.action>.li-inner>.icon{display:inline-block}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list>.action .action,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list>.action .action{text-align:right}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list>.action .action.active .icon.icon-checkbox-checked,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list>.action .action.active .icon.icon-checkbox-checked{display:inline-block}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list>.action .action:not(.active) .icon.icon-checkbox,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list>.action .action:not(.active) .icon.icon-checkbox{display:inline-block}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list>.action .action:not(.active):hover .icon.icon-checkbox,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list>.action .action:not(.active):hover .icon.icon-checkbox{display:none}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list>.action .action:not(.active):hover .icon.icon-checkbox-checked,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list>.action .action:not(.active):hover .icon.icon-checkbox-checked{display:inline-block}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list>.action .menu,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list>.action .menu{left:auto;right:-3px}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action{float:right}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon{padding:0 0 0 9px}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon.icon-right:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon.icon-left:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon.icon-fast-forward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon.icon-step-forward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon.icon-forward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon.icon-fast-backward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon.icon-step-backward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .icon.icon-backward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon.icon-right:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon.icon-left:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon.icon-fast-forward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon.icon-step-forward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon.icon-forward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon.icon-fast-backward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon.icon-step-backward:before,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .icon.icon-backward:before{display:inline-block;transform:scaleX(-1)}body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .tools-box-list .action .action,body.delivery-scope[dir=rtl] .runner .test-runner-scope .bottom-action-bar .control-box .navi-box-list .action .action{text-align:right}body.delivery-scope[dir=rtl] .qti-navigator .icon-up,body.delivery-scope[dir=rtl] .qti-navigator .icon-down{margin-left:0;margin-right:auto}body.delivery-scope[dir=rtl] .qti-navigator .qti-navigator-counter{margin-left:0;margin-right:auto;text-align:left}body.delivery-scope[dir=rtl] .qti-item [class^=\"feedback-\"].small,body.delivery-scope[dir=rtl] .qti-item [class*=\" feedback-\"].small{padding:8px 45px 8px 20px;text-align:right}body.delivery-scope[dir=rtl] .qti-item [class^=\"feedback-\"].small>[class^=\"icon-\"],body.delivery-scope[dir=rtl] .qti-item [class^=\"feedback-\"].small>[class*=\" icon-\"],body.delivery-scope[dir=rtl] .qti-item [class*=\" feedback-\"].small>[class^=\"icon-\"],body.delivery-scope[dir=rtl] .qti-item [class*=\" feedback-\"].small>[class*=\" icon-\"]{left:auto;right:10px}body.delivery-scope[dir=rtl] .runner .test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar .control-box>.connectivity-box{margin-left:0px;margin-right:40px}body.delivery-scope[dir=rtl] .runner .test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar .control-box>.connectivity-box.with-message .message-connect{margin-left:3px;margin-right:0px}body.delivery-scope[dir=rtl] .runner .test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar .control-box>.progress-box>.qti-controls{margin-left:0px;margin-right:20px}body.delivery-scope[dir=rtl] .runner .test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar .control-box>.timer-box .timer-toggler{right:20px}body.delivery-scope[dir=rtl] .runner .test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar .control-box>.timer-box .timer-wrapper .countdown:first-child::before{content:' '}body.delivery-scope[dir=rtl] .runner .test-runner-scope .action-bar.content-action-bar.horizontal-action-bar.top-action-bar .control-box>.timer-box .timer-wrapper .countdown:last-child::before{content:none}.action-bar .shortcuts-list-wrapper{width:100%;height:100%;position:fixed;top:0;left:0;display:flex;align-items:center;align-content:center;justify-content:center;overflow:auto;background:rgba(0,0,0,0.5);z-index:10001}.action-bar .shortcuts-list-wrapper .shortcuts-list{width:auto;min-width:400px;height:auto;min-height:300px;padding:30px !important;color:#222 !important;text-shadow:none !important;position:relative;background-color:#fff;border:1px solid #ddd}.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-list-description{width:450px}.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-list-title{font-size:24px;margin-top:0}.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-group-title{font-size:18px;margin-top:20px}.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-group-title:focus{outline:3px solid #276D9B;outline-offset:3px}.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-group-list{list-style:none;margin:0;padding:0}.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-group-list .shortcut-item{display:-ms-flexbox;display:-webkit-flex;display:flex;float:none;margin:0}.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-group-list .shortcut-item .shortcut-item-action,.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-group-list .shortcut-item .shortcut-item-shortcut{-ms-flex:0 1 50%;-webkit-flex:0 1 50%;flex:0 1 50%;margin:0;text-align:center}.action-bar .shortcuts-list-wrapper .shortcuts-list .shortcuts-group-list .shortcut-item .shortcut-item-action{text-align:left}.action-bar .shortcuts-list-wrapper .shortcuts-list .btn-close{background-color:transparent;box-shadow:none;height:20px;padding:0;position:absolute;right:12px;top:10px;width:20px}.action-bar .shortcuts-list-wrapper .shortcuts-list .btn-close .icon-close{color:#222;font-size:20px;padding:0}.action-bar .shortcuts-list-wrapper .shortcuts-list .btn-close:focus{outline:3px solid #276D9B;outline-offset:3px}.jump-links-container .jump-links-box{display:block;width:0;height:0;position:absolute}.jump-links-container .jump-links-box .jump-link-item{position:fixed;display:block;z-index:1001}.jump-links-container .jump-links-box .jump-link{z-index:1002;position:fixed;display:block;overflow:hidden;top:10px;left:10px;width:0;padding:0 !important;font-size:2.4rem !important}.jump-links-container .jump-links-box .jump-link:focus{width:auto;height:auto;padding:30px !important;background:#f3f1ef;color:#222 !important;border:3px solid #222;outline:none;text-shadow:none !important}.jump-links-container .jump-links-box .jump-link:focus:hover{background:#f3f1ef;text-decoration:underline}\n\n/*# sourceMappingURL=../../../taoQtiTest/views/css/new-test-runner.css.map */"),define("taoQtiTest/loader/taoQtiTest.bundle",function(){}),define("taoQtiTest/loader/taoQtiTest.min",["taoItems/loader/taoItems.min","taoQtiItem/loader/taoQtiItem.min","taoTests/loader/taoTests.min"],function(){}); //# sourceMappingURL=taoQtiTest.min.js.map