(function(scope){"use strict";function F(arity,fun,wrapper){wrapper.a=arity;wrapper.f=fun;return wrapper}function F2(fun){return F(2,fun,function(a){return function(b){return fun(a,b)}})}function F3(fun){return F(3,fun,function(a){return function(b){return function(c){return fun(a,b,c)}}})}function F4(fun){return F(4,fun,function(a){return function(b){return function(c){return function(d){return fun(a,b,c,d)}}}})}function F5(fun){return F(5,fun,function(a){return function(b){return function(c){return function(d){return function(e){return fun(a,b,c,d,e)}}}}})}function F6(fun){return F(6,fun,function(a){return function(b){return function(c){return function(d){return function(e){return function(f){return fun(a,b,c,d,e,f)}}}}}})}function F7(fun){return F(7,fun,function(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return fun(a,b,c,d,e,f,g)}}}}}}})}function F8(fun){return F(8,fun,function(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return function(h){return fun(a,b,c,d,e,f,g,h)}}}}}}}})}function F9(fun){return F(9,fun,function(a){return function(b){return function(c){return function(d){return function(e){return function(f){return function(g){return function(h){return function(i){return fun(a,b,c,d,e,f,g,h,i)}}}}}}}}})}function A2(fun,a,b){return fun.a===2?fun.f(a,b):fun(a)(b)}function A3(fun,a,b,c){return fun.a===3?fun.f(a,b,c):fun(a)(b)(c)}function A4(fun,a,b,c,d){return fun.a===4?fun.f(a,b,c,d):fun(a)(b)(c)(d)}function A5(fun,a,b,c,d,e){return fun.a===5?fun.f(a,b,c,d,e):fun(a)(b)(c)(d)(e)}function A6(fun,a,b,c,d,e,f){return fun.a===6?fun.f(a,b,c,d,e,f):fun(a)(b)(c)(d)(e)(f)}function A7(fun,a,b,c,d,e,f,g){return fun.a===7?fun.f(a,b,c,d,e,f,g):fun(a)(b)(c)(d)(e)(f)(g)}function A8(fun,a,b,c,d,e,f,g,h){return fun.a===8?fun.f(a,b,c,d,e,f,g,h):fun(a)(b)(c)(d)(e)(f)(g)(h)}function A9(fun,a,b,c,d,e,f,g,h,i){return fun.a===9?fun.f(a,b,c,d,e,f,g,h,i):fun(a)(b)(c)(d)(e)(f)(g)(h)(i)}var _JsArray_empty=[];function _JsArray_singleton(value){return[value]}function _JsArray_length(array){return array.length}var _JsArray_initialize=F3(function(size,offset,func){var result=new Array(size);for(var i=0;i=0;i--){acc=A2(func,array[i],acc)}return acc});var _JsArray_map=F2(function(func,array){var length=array.length;var result=new Array(length);for(var i=0;isource.length){itemsToCopy=source.length}var size=destLen+itemsToCopy;var result=new Array(size);for(var i=0;i"}function _Debug_toString_UNUSED(value){return _Debug_toAnsiString(false,value)}function _Debug_toAnsiString(ansi,value){if(typeof value==="function"){return _Debug_internalColor(ansi,"")}if(typeof value==="boolean"){return _Debug_ctorColor(ansi,value?"True":"False")}if(typeof value==="number"){return _Debug_numberColor(ansi,value+"")}if(value instanceof String){return _Debug_charColor(ansi,"'"+_Debug_addSlashes(value,true)+"'")}if(typeof value==="string"){return _Debug_stringColor(ansi,'"'+_Debug_addSlashes(value,false)+'"')}if(typeof value==="object"&&"$"in value){var tag=value.$;if(typeof tag==="number"){return _Debug_internalColor(ansi,"")}if(tag[0]==="#"){var output=[];for(var k in value){if(k==="$")continue;output.push(_Debug_toAnsiString(ansi,value[k]))}return"("+output.join(",")+")"}if(tag==="Set_elm_builtin"){return _Debug_ctorColor(ansi,"Set")+_Debug_fadeColor(ansi,".fromList")+" "+_Debug_toAnsiString(ansi,$elm$core$Set$toList(value))}if(tag==="RBNode_elm_builtin"||tag==="RBEmpty_elm_builtin"){return _Debug_ctorColor(ansi,"Dict")+_Debug_fadeColor(ansi,".fromList")+" "+_Debug_toAnsiString(ansi,$elm$core$Dict$toList(value))}if(tag==="Array_elm_builtin"){return _Debug_ctorColor(ansi,"Array")+_Debug_fadeColor(ansi,".fromList")+" "+_Debug_toAnsiString(ansi,$elm$core$Array$toList(value))}if(tag==="::"||tag==="[]"){var output="[";value.b&&(output+=_Debug_toAnsiString(ansi,value.a),value=value.b);for(;value.b;value=value.b){output+=","+_Debug_toAnsiString(ansi,value.a)}return output+"]"}var output="";for(var i in value){if(i==="$")continue;var str=_Debug_toAnsiString(ansi,value[i]);var c0=str[0];var parenless=c0==="{"||c0==="("||c0==="["||c0==="<"||c0==='"'||str.indexOf(" ")<0;output+=" "+(parenless?str:"("+str+")")}return _Debug_ctorColor(ansi,tag)+output}if(typeof DataView==="function"&&value instanceof DataView){return _Debug_stringColor(ansi,"<"+value.byteLength+" bytes>")}if(typeof File!=="undefined"&&value instanceof File){return _Debug_internalColor(ansi,"<"+value.name+">")}if(typeof value==="object"){var output=[];for(var key in value){var field=key[0]==="_"?key.slice(1):key;output.push(_Debug_fadeColor(ansi,field)+" = "+_Debug_toAnsiString(ansi,value[key]))}if(output.length===0){return"{}"}return"{ "+output.join(", ")+" }"}return _Debug_internalColor(ansi,"")}function _Debug_addSlashes(str,isChar){var s=str.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/\v/g,"\\v").replace(/\0/g,"\\0");if(isChar){return s.replace(/\'/g,"\\'")}else{return s.replace(/\"/g,'\\"')}}function _Debug_ctorColor(ansi,string){return ansi?""+string+"":string}function _Debug_numberColor(ansi,string){return ansi?""+string+"":string}function _Debug_stringColor(ansi,string){return ansi?""+string+"":string}function _Debug_charColor(ansi,string){return ansi?""+string+"":string}function _Debug_fadeColor(ansi,string){return ansi?""+string+"":string}function _Debug_internalColor(ansi,string){return ansi?""+string+"":string}function _Debug_toHexDigit(n){return String.fromCharCode(n<10?48+n:55+n)}function _Debug_crash(identifier){throw new Error("https://github.com/elm/core/blob/1.0.0/hints/"+identifier+".md")}function _Debug_crash_UNUSED(identifier,fact1,fact2,fact3,fact4){switch(identifier){case 0:throw new Error('What node should I take over? In JavaScript I need something like:\n\n Elm.Main.init({\n node: document.getElementById("elm-node")\n })\n\nYou need to do this with any Browser.sandbox or Browser.element program.');case 1:throw new Error("Browser.application programs cannot handle URLs like this:\n\n "+document.location.href+"\n\nWhat is the root? The root of your file system? Try looking at this program with `elm reactor` or some other server.");case 2:var jsonErrorString=fact1;throw new Error("Problem with the flags given to your Elm program on initialization.\n\n"+jsonErrorString);case 3:var portName=fact1;throw new Error("There can only be one port named `"+portName+"`, but your program has multiple.");case 4:var portName=fact1;var problem=fact2;throw new Error("Trying to send an unexpected type of value through port `"+portName+"`:\n"+problem);case 5:throw new Error('Trying to use `(==)` on functions.\nThere is no way to know if functions are "the same" in the Elm sense.\nRead more about this at https://package.elm-lang.org/packages/elm/core/latest/Basics#== which describes why it is this way and what the better version will look like.');case 6:var moduleName=fact1;throw new Error("Your page is loading multiple Elm scripts with a module named "+moduleName+". Maybe a duplicate script is getting loaded accidentally? If not, rename one of them so I know which is which!");case 8:var moduleName=fact1;var region=fact2;var message=fact3;throw new Error("TODO in module `"+moduleName+"` "+_Debug_regionToString(region)+"\n\n"+message);case 9:var moduleName=fact1;var region=fact2;var value=fact3;var message=fact4;throw new Error("TODO in module `"+moduleName+"` from the `case` expression "+_Debug_regionToString(region)+"\n\nIt received the following value:\n\n "+_Debug_toString(value).replace("\n","\n ")+"\n\nBut the branch that handles it says:\n\n "+message.replace("\n","\n "));case 10:throw new Error("Bug in https://github.com/elm/virtual-dom/issues");case 11:throw new Error("Cannot perform mod 0. Division by zero error.")}}function _Debug_regionToString(region){if(region.am.F===region.aE.F){return"on line "+region.am.F}return"on lines "+region.am.F+" through "+region.aE.F}function _Utils_eq(x,y){for(var pair,stack=[],isEqual=_Utils_eqHelp(x,y,0,stack);isEqual&&(pair=stack.pop());isEqual=_Utils_eqHelp(pair.a,pair.b,0,stack)){}return isEqual}function _Utils_eqHelp(x,y,depth,stack){if(x===y){return true}if(typeof x!=="object"||x===null||y===null){typeof x==="function"&&_Debug_crash(5);return false}if(depth>100){stack.push(_Utils_Tuple2(x,y));return true}if(x.$<0){x=$elm$core$Dict$toList(x);y=$elm$core$Dict$toList(y)}for(var key in x){if(!_Utils_eqHelp(x[key],y[key],depth+1,stack)){return false}}return true}var _Utils_equal=F2(_Utils_eq);var _Utils_notEqual=F2(function(a,b){return!_Utils_eq(a,b)});function _Utils_cmp(x,y,ord){if(typeof x!=="object"){return x===y?0:x0});var _Utils_ge=F2(function(a,b){return _Utils_cmp(a,b)>=0});var _Utils_compare=F2(function(x,y){var n=_Utils_cmp(x,y);return n<0?$elm$core$Basics$LT:n?$elm$core$Basics$GT:$elm$core$Basics$EQ});var _Utils_Tuple0=0;var _Utils_Tuple0_UNUSED={$:"#0"};function _Utils_Tuple2(a,b){return{a:a,b:b}}function _Utils_Tuple2_UNUSED(a,b){return{$:"#2",a:a,b:b}}function _Utils_Tuple3(a,b,c){return{a:a,b:b,c:c}}function _Utils_Tuple3_UNUSED(a,b,c){return{$:"#3",a:a,b:b,c:c}}function _Utils_chr(c){return c}function _Utils_chr_UNUSED(c){return new String(c)}function _Utils_update(oldRecord,updatedFields){var newRecord={};for(var key in oldRecord){newRecord[key]=oldRecord[key]}for(var key in updatedFields){newRecord[key]=updatedFields[key]}return newRecord}var _Utils_append=F2(_Utils_ap);function _Utils_ap(xs,ys){if(typeof xs==="string"){return xs+ys}if(!xs.b){return ys}var root=_List_Cons(xs.a,ys);xs=xs.b;for(var curr=root;xs.b;xs=xs.b){curr=curr.b=_List_Cons(xs.a,ys)}return root}var _List_Nil={$:0};var _List_Nil_UNUSED={$:"[]"};function _List_Cons(hd,tl){return{$:1,a:hd,b:tl}}function _List_Cons_UNUSED(hd,tl){return{$:"::",a:hd,b:tl}}var _List_cons=F2(_List_Cons);function _List_fromArray(arr){var out=_List_Nil;for(var i=arr.length;i--;){out=_List_Cons(arr[i],out)}return out}function _List_toArray(xs){for(var out=[];xs.b;xs=xs.b){out.push(xs.a)}return out}var _List_map2=F3(function(f,xs,ys){for(var arr=[];xs.b&&ys.b;xs=xs.b,ys=ys.b){arr.push(A2(f,xs.a,ys.a))}return _List_fromArray(arr)});var _List_map3=F4(function(f,xs,ys,zs){for(var arr=[];xs.b&&ys.b&&zs.b;xs=xs.b,ys=ys.b,zs=zs.b){arr.push(A3(f,xs.a,ys.a,zs.a))}return _List_fromArray(arr)});var _List_map4=F5(function(f,ws,xs,ys,zs){for(var arr=[];ws.b&&xs.b&&ys.b&&zs.b;ws=ws.b,xs=xs.b,ys=ys.b,zs=zs.b){arr.push(A4(f,ws.a,xs.a,ys.a,zs.a))}return _List_fromArray(arr)});var _List_map5=F6(function(f,vs,ws,xs,ys,zs){for(var arr=[];vs.b&&ws.b&&xs.b&&ys.b&&zs.b;vs=vs.b,ws=ws.b,xs=xs.b,ys=ys.b,zs=zs.b){arr.push(A5(f,vs.a,ws.a,xs.a,ys.a,zs.a))}return _List_fromArray(arr)});var _List_sortBy=F2(function(f,xs){return _List_fromArray(_List_toArray(xs).sort(function(a,b){return _Utils_cmp(f(a),f(b))}))});var _List_sortWith=F2(function(f,xs){return _List_fromArray(_List_toArray(xs).sort(function(a,b){var ord=A2(f,a,b);return ord===$elm$core$Basics$EQ?0:ord===$elm$core$Basics$LT?-1:1}))});var _Basics_add=F2(function(a,b){return a+b});var _Basics_sub=F2(function(a,b){return a-b});var _Basics_mul=F2(function(a,b){return a*b});var _Basics_fdiv=F2(function(a,b){return a/b});var _Basics_idiv=F2(function(a,b){return a/b|0});var _Basics_pow=F2(Math.pow);var _Basics_remainderBy=F2(function(b,a){return a%b});var _Basics_modBy=F2(function(modulus,x){var answer=x%modulus;return modulus===0?_Debug_crash(11):answer>0&&modulus<0||answer<0&&modulus>0?answer+modulus:answer});var _Basics_pi=Math.PI;var _Basics_e=Math.E;var _Basics_cos=Math.cos;var _Basics_sin=Math.sin;var _Basics_tan=Math.tan;var _Basics_acos=Math.acos;var _Basics_asin=Math.asin;var _Basics_atan=Math.atan;var _Basics_atan2=F2(Math.atan2);function _Basics_toFloat(x){return x}function _Basics_truncate(n){return n|0}function _Basics_isInfinite(n){return n===Infinity||n===-Infinity}var _Basics_ceiling=Math.ceil;var _Basics_floor=Math.floor;var _Basics_round=Math.round;var _Basics_sqrt=Math.sqrt;var _Basics_log=Math.log;var _Basics_isNaN=isNaN;function _Basics_not(bool){return!bool}var _Basics_and=F2(function(a,b){return a&&b});var _Basics_or=F2(function(a,b){return a||b});var _Basics_xor=F2(function(a,b){return a!==b});var _String_cons=F2(function(chr,str){return chr+str});function _String_uncons(string){var word=string.charCodeAt(0);return!isNaN(word)?$elm$core$Maybe$Just(55296<=word&&word<=56319?_Utils_Tuple2(_Utils_chr(string[0]+string[1]),string.slice(2)):_Utils_Tuple2(_Utils_chr(string[0]),string.slice(1))):$elm$core$Maybe$Nothing}var _String_append=F2(function(a,b){return a+b});function _String_length(str){return str.length}var _String_map=F2(function(func,string){var len=string.length;var array=new Array(len);var i=0;while(i-1});var _String_startsWith=F2(function(sub,str){return str.indexOf(sub)===0});var _String_endsWith=F2(function(sub,str){return str.length>=sub.length&&str.lastIndexOf(sub)===str.length-sub.length});var _String_indexes=F2(function(sub,str){var subLen=sub.length;if(subLen<1){return _List_Nil}var i=0;var is=[];while((i=str.indexOf(sub,i))>-1){is.push(i);i=i+subLen}return _List_fromArray(is)});function _String_fromNumber(number){return number+""}function _String_toInt(str){var total=0;var code0=str.charCodeAt(0);var start=code0==43||code0==45?1:0;for(var i=start;i=value.length){return _Json_expecting("a LONGER array. Need index "+index+" but only see "+value.length+" entries",value)}var result=_Json_runHelp(decoder.b,value[index]);return $elm$core$Result$isOk(result)?result:$elm$core$Result$Err(A2($elm$json$Json$Decode$Index,index,result.a));case 8:if(typeof value!=="object"||value===null||_Json_isArray(value)){return _Json_expecting("an OBJECT",value)}var keyValuePairs=_List_Nil;for(var key in value){if(value.hasOwnProperty(key)){var result=_Json_runHelp(decoder.b,value[key]);if(!$elm$core$Result$isOk(result)){return $elm$core$Result$Err(A2($elm$json$Json$Decode$Field,key,result.a))}keyValuePairs=_List_Cons(_Utils_Tuple2(key,result.a),keyValuePairs)}}return $elm$core$Result$Ok($elm$core$List$reverse(keyValuePairs));case 9:var answer=decoder.f;var decoders=decoder.g;for(var i=0;i=0){subs.splice(index,1)}}return{subscribe:subscribe,unsubscribe:unsubscribe}}function _Platform_incomingPort(name,converter){_Platform_checkPortName(name);_Platform_effectManagers[name]={f:_Platform_incomingPortMap,u:converter,a:_Platform_setupIncomingPort};return _Platform_leaf(name)}var _Platform_incomingPortMap=F2(function(tagger,finalTagger){return function(value){return tagger(finalTagger(value))}});function _Platform_setupIncomingPort(name,sendToApp){var subs=_List_Nil;var converter=_Platform_effectManagers[name].u;var init=_Scheduler_succeed(null);_Platform_effectManagers[name].b=init;_Platform_effectManagers[name].c=F3(function(router,subList,state){subs=subList;return init});function send(incomingValue){var result=A2(_Json_run,converter,_Json_wrap(incomingValue));$elm$core$Result$isOk(result)||_Debug_crash(4,name,result.a);var value=result.a;for(var temp=subs;temp.b;temp=temp.b){sendToApp(temp.a(value))}}return{send:send}}function _Platform_export(exports){scope["Elm"]?_Platform_mergeExportsProd(scope["Elm"],exports):scope["Elm"]=exports}function _Platform_mergeExportsProd(obj,exports){for(var name in exports){name in obj?name=="init"?_Debug_crash(6):_Platform_mergeExportsProd(obj[name],exports[name]):obj[name]=exports[name]}}function _Platform_export_UNUSED(exports){scope["Elm"]?_Platform_mergeExportsDebug("Elm",scope["Elm"],exports):scope["Elm"]=exports}function _Platform_mergeExportsDebug(moduleName,obj,exports){for(var name in exports){name in obj?name=="init"?_Debug_crash(6,moduleName):_Platform_mergeExportsDebug(moduleName+"."+name,obj[name],exports[name]):obj[name]=exports[name]}}var _VirtualDom_divertHrefToApp;var _VirtualDom_doc=typeof document!=="undefined"?document:{};function _VirtualDom_appendChild(parent,child){parent.appendChild(child)}var _VirtualDom_init=F4(function(virtualNode,flagDecoder,debugMetadata,args){var node=args["node"];node.parentNode.replaceChild(_VirtualDom_render(virtualNode,function(){}),node);return{}});function _VirtualDom_text(string){return{$:0,a:string}}var _VirtualDom_nodeNS=F2(function(namespace,tag){return F2(function(factList,kidList){for(var kids=[],descendantsCount=0;kidList.b;kidList=kidList.b){var kid=kidList.a;descendantsCount+=kid.b||0;kids.push(kid)}descendantsCount+=kids.length;return{$:1,c:tag,d:_VirtualDom_organizeFacts(factList),e:kids,f:namespace,b:descendantsCount}})});var _VirtualDom_node=_VirtualDom_nodeNS(undefined);var _VirtualDom_keyedNodeNS=F2(function(namespace,tag){return F2(function(factList,kidList){for(var kids=[],descendantsCount=0;kidList.b;kidList=kidList.b){var kid=kidList.a;descendantsCount+=kid.b.b||0;kids.push(kid)}descendantsCount+=kids.length;return{$:2,c:tag,d:_VirtualDom_organizeFacts(factList),e:kids,f:namespace,b:descendantsCount}})});var _VirtualDom_keyedNode=_VirtualDom_keyedNodeNS(undefined);function _VirtualDom_custom(factList,model,render,diff){return{$:3,d:_VirtualDom_organizeFacts(factList),g:model,h:render,i:diff}}var _VirtualDom_map=F2(function(tagger,node){return{$:4,j:tagger,k:node,b:1+(node.b||0)}});function _VirtualDom_thunk(refs,thunk){return{$:5,l:refs,m:thunk,k:undefined}}var _VirtualDom_lazy=F2(function(func,a){return _VirtualDom_thunk([func,a],function(){return func(a)})});var _VirtualDom_lazy2=F3(function(func,a,b){return _VirtualDom_thunk([func,a,b],function(){return A2(func,a,b)})});var _VirtualDom_lazy3=F4(function(func,a,b,c){return _VirtualDom_thunk([func,a,b,c],function(){return A3(func,a,b,c)})});var _VirtualDom_lazy4=F5(function(func,a,b,c,d){return _VirtualDom_thunk([func,a,b,c,d],function(){return A4(func,a,b,c,d)})});var _VirtualDom_lazy5=F6(function(func,a,b,c,d,e){return _VirtualDom_thunk([func,a,b,c,d,e],function(){return A5(func,a,b,c,d,e)})});var _VirtualDom_lazy6=F7(function(func,a,b,c,d,e,f){return _VirtualDom_thunk([func,a,b,c,d,e,f],function(){return A6(func,a,b,c,d,e,f)})});var _VirtualDom_lazy7=F8(function(func,a,b,c,d,e,f,g){return _VirtualDom_thunk([func,a,b,c,d,e,f,g],function(){return A7(func,a,b,c,d,e,f,g)})});var _VirtualDom_lazy8=F9(function(func,a,b,c,d,e,f,g,h){return _VirtualDom_thunk([func,a,b,c,d,e,f,g,h],function(){return A8(func,a,b,c,d,e,f,g,h)})});var _VirtualDom_on=F2(function(key,handler){return{$:"a0",n:key,o:handler}});var _VirtualDom_style=F2(function(key,value){return{$:"a1",n:key,o:value}});var _VirtualDom_property=F2(function(key,value){return{$:"a2",n:key,o:value}});var _VirtualDom_attribute=F2(function(key,value){return{$:"a3",n:key,o:value}});var _VirtualDom_attributeNS=F3(function(namespace,key,value){return{$:"a4",n:key,o:{f:namespace,o:value}}});function _VirtualDom_noScript(tag){return tag=="script"?"p":tag}function _VirtualDom_noOnOrFormAction(key){return/^(on|formAction$)/i.test(key)?"data-"+key:key}function _VirtualDom_noInnerHtmlOrFormAction(key){return key=="innerHTML"||key=="formAction"?"data-"+key:key}function _VirtualDom_noJavaScriptUri(value){return/^javascript:/i.test(value.replace(/\s/g,""))?"":value}function _VirtualDom_noJavaScriptUri_UNUSED(value){return/^javascript:/i.test(value.replace(/\s/g,""))?'javascript:alert("This is an XSS vector. Please use ports or web components instead.")':value}function _VirtualDom_noJavaScriptOrHtmlUri(value){return/^\s*(javascript:|data:text\/html)/i.test(value)?"":value}function _VirtualDom_noJavaScriptOrHtmlUri_UNUSED(value){return/^\s*(javascript:|data:text\/html)/i.test(value)?'javascript:alert("This is an XSS vector. Please use ports or web components instead.")':value}var _VirtualDom_mapAttribute=F2(function(func,attr){return attr.$==="a0"?A2(_VirtualDom_on,attr.n,_VirtualDom_mapHandler(func,attr.o)):attr});function _VirtualDom_mapHandler(func,handler){var tag=$elm$virtual_dom$VirtualDom$toHandlerInt(handler);return{$:handler.$,a:!tag?A2($elm$json$Json$Decode$map,func,handler.a):A3($elm$json$Json$Decode$map2,tag<3?_VirtualDom_mapEventTuple:_VirtualDom_mapEventRecord,$elm$json$Json$Decode$succeed(func),handler.a)}}var _VirtualDom_mapEventTuple=F2(function(func,tuple){return _Utils_Tuple2(func(tuple.a),tuple.b)});var _VirtualDom_mapEventRecord=F2(function(func,record){return{u:func(record.u),R:record.R,P:record.P}});function _VirtualDom_organizeFacts(factList){for(var facts={};factList.b;factList=factList.b){var entry=factList.a;var tag=entry.$;var key=entry.n;var value=entry.o;if(tag==="a2"){key==="className"?_VirtualDom_addClass(facts,key,_Json_unwrap(value)):facts[key]=_Json_unwrap(value);continue}var subFacts=facts[tag]||(facts[tag]={});tag==="a3"&&key==="class"?_VirtualDom_addClass(subFacts,key,value):subFacts[key]=value}return facts}function _VirtualDom_addClass(object,key,newClass){var classes=object[key];object[key]=classes?classes+" "+newClass:newClass}function _VirtualDom_render(vNode,eventNode){var tag=vNode.$;if(tag===5){return _VirtualDom_render(vNode.k||(vNode.k=vNode.m()),eventNode)}if(tag===0){return _VirtualDom_doc.createTextNode(vNode.a)}if(tag===4){var subNode=vNode.k;var tagger=vNode.j;while(subNode.$===4){typeof tagger!=="object"?tagger=[tagger,subNode.j]:tagger.push(subNode.j);subNode=subNode.k}var subEventRoot={j:tagger,p:eventNode};var domNode=_VirtualDom_render(subNode,subEventRoot);domNode.elm_event_node_ref=subEventRoot;return domNode}if(tag===3){var domNode=vNode.h(vNode.g);_VirtualDom_applyFacts(domNode,eventNode,vNode.d);return domNode}var domNode=vNode.f?_VirtualDom_doc.createElementNS(vNode.f,vNode.c):_VirtualDom_doc.createElement(vNode.c);if(_VirtualDom_divertHrefToApp&&vNode.c=="a"){domNode.addEventListener("click",_VirtualDom_divertHrefToApp(domNode))}_VirtualDom_applyFacts(domNode,eventNode,vNode.d);for(var kids=vNode.e,i=0;i0&&_VirtualDom_pushPatch(patches,1,index,subPatches);return;case 4:var xTaggers=x.j;var yTaggers=y.j;var nesting=false;var xSubNode=x.k;while(xSubNode.$===4){nesting=true;typeof xTaggers!=="object"?xTaggers=[xTaggers,xSubNode.j]:xTaggers.push(xSubNode.j);xSubNode=xSubNode.k}var ySubNode=y.k;while(ySubNode.$===4){nesting=true;typeof yTaggers!=="object"?yTaggers=[yTaggers,ySubNode.j]:yTaggers.push(ySubNode.j);ySubNode=ySubNode.k}if(nesting&&xTaggers.length!==yTaggers.length){_VirtualDom_pushPatch(patches,0,index,y);return}if(nesting?!_VirtualDom_pairwiseRefEqual(xTaggers,yTaggers):xTaggers!==yTaggers){_VirtualDom_pushPatch(patches,2,index,yTaggers)}_VirtualDom_diffHelp(xSubNode,ySubNode,patches,index+1);return;case 0:if(x.a!==y.a){_VirtualDom_pushPatch(patches,3,index,y.a)}return;case 1:_VirtualDom_diffNodes(x,y,patches,index,_VirtualDom_diffKids);return;case 2:_VirtualDom_diffNodes(x,y,patches,index,_VirtualDom_diffKeyedKids);return;case 3:if(x.h!==y.h){_VirtualDom_pushPatch(patches,0,index,y);return}var factsDiff=_VirtualDom_diffFacts(x.d,y.d);factsDiff&&_VirtualDom_pushPatch(patches,4,index,factsDiff);var patch=y.i(x.g,y.g);patch&&_VirtualDom_pushPatch(patches,5,index,patch);return}}function _VirtualDom_pairwiseRefEqual(as,bs){for(var i=0;iyLen){_VirtualDom_pushPatch(patches,6,index,{v:yLen,i:xLen-yLen})}else if(xLen0||inserts.length>0||endInserts){_VirtualDom_pushPatch(patches,8,rootIndex,{w:localPatches,x:inserts,y:endInserts})}}var _VirtualDom_POSTFIX="_elmW6BL";function _VirtualDom_insertNode(changes,localPatches,key,vnode,yIndex,inserts){var entry=changes[key];if(!entry){entry={c:0,z:vnode,r:yIndex,s:undefined};inserts.push({r:yIndex,A:entry});changes[key]=entry;return}if(entry.c===1){inserts.push({r:yIndex,A:entry});entry.c=2;var subPatches=[];_VirtualDom_diffHelp(entry.z,vnode,subPatches,entry.r);entry.r=yIndex;entry.s.s={w:subPatches,A:entry};return}_VirtualDom_insertNode(changes,localPatches,key+_VirtualDom_POSTFIX,vnode,yIndex,inserts)}function _VirtualDom_removeNode(changes,localPatches,key,vnode,index){var entry=changes[key];if(!entry){var patch=_VirtualDom_pushPatch(localPatches,9,index,undefined);changes[key]={c:1,z:vnode,r:index,s:patch};return}if(entry.c===0){entry.c=2;var subPatches=[];_VirtualDom_diffHelp(vnode,entry.z,subPatches,index);_VirtualDom_pushPatch(localPatches,9,index,{w:subPatches,A:entry});return}_VirtualDom_removeNode(changes,localPatches,key+_VirtualDom_POSTFIX,vnode,index)}function _VirtualDom_addDomNodes(domNode,vNode,patches,eventNode){_VirtualDom_addDomNodesHelp(domNode,vNode,patches,0,0,vNode.b,eventNode)}function _VirtualDom_addDomNodesHelp(domNode,vNode,patches,i,low,high,eventNode){var patch=patches[i];var index=patch.r;while(index===low){var patchType=patch.$;if(patchType===1){_VirtualDom_addDomNodes(domNode,vNode.k,patch.s,eventNode)}else if(patchType===8){patch.t=domNode;patch.u=eventNode;var subPatches=patch.s.w;if(subPatches.length>0){_VirtualDom_addDomNodesHelp(domNode,vNode,subPatches,0,low,high,eventNode)}}else if(patchType===9){patch.t=domNode;patch.u=eventNode;var data=patch.s;if(data){data.A.s=domNode;var subPatches=data.w;if(subPatches.length>0){_VirtualDom_addDomNodesHelp(domNode,vNode,subPatches,0,low,high,eventNode)}}}else{patch.t=domNode;patch.u=eventNode}i++;if(!(patch=patches[i])||(index=patch.r)>high){return i}}var tag=vNode.$;if(tag===4){var subNode=vNode.k;while(subNode.$===4){subNode=subNode.k}return _VirtualDom_addDomNodesHelp(domNode,subNode,patches,i,low+1,high,domNode.elm_event_node_ref)}var vKids=vNode.e;var childNodes=domNode.childNodes;for(var j=0;jhigh){return i}}low=nextLow}return i}function _VirtualDom_applyPatches(rootDomNode,oldVirtualNode,patches,eventNode){if(patches.length===0){return rootDomNode}_VirtualDom_addDomNodes(rootDomNode,oldVirtualNode,patches,eventNode);return _VirtualDom_applyPatchesHelp(rootDomNode,patches)}function _VirtualDom_applyPatchesHelp(rootDomNode,patches){for(var i=0;i0?x:y});var $elm$core$Basics$mul=_Basics_mul;var $elm$core$Array$SubTree=function(a){return{$:0,a:a}};var $elm$core$Elm$JsArray$initializeFromList=_JsArray_initializeFromList;var $elm$core$Array$compressNodes=F2(function(nodes,acc){compressNodes:while(true){var _v0=A2($elm$core$Elm$JsArray$initializeFromList,$elm$core$Array$branchFactor,nodes);var node=_v0.a;var remainingNodes=_v0.b;var newAcc=A2($elm$core$List$cons,$elm$core$Array$SubTree(node),acc);if(!remainingNodes.b){return $elm$core$List$reverse(newAcc)}else{var $temp$nodes=remainingNodes,$temp$acc=newAcc;nodes=$temp$nodes;acc=$temp$acc;continue compressNodes}}});var $elm$core$Tuple$first=function(_v0){var x=_v0.a;return x};var $elm$core$Array$treeFromBuilder=F2(function(nodeList,nodeListSize){treeFromBuilder:while(true){var newNodeSize=$elm$core$Basics$ceiling(nodeListSize/$elm$core$Array$branchFactor);if(newNodeSize===1){return A2($elm$core$Elm$JsArray$initializeFromList,$elm$core$Array$branchFactor,nodeList).a}else{var $temp$nodeList=A2($elm$core$Array$compressNodes,nodeList,_List_Nil),$temp$nodeListSize=newNodeSize;nodeList=$temp$nodeList;nodeListSize=$temp$nodeListSize;continue treeFromBuilder}}});var $elm$core$Array$builderToArray=F2(function(reverseNodeList,builder){if(!builder.g){return A4($elm$core$Array$Array_elm_builtin,$elm$core$Elm$JsArray$length(builder.i),$elm$core$Array$shiftStep,$elm$core$Elm$JsArray$empty,builder.i)}else{var treeLen=builder.g*$elm$core$Array$branchFactor;var depth=$elm$core$Basics$floor(A2($elm$core$Basics$logBase,$elm$core$Array$branchFactor,treeLen-1));var correctNodeList=reverseNodeList?$elm$core$List$reverse(builder.j):builder.j;var tree=A2($elm$core$Array$treeFromBuilder,correctNodeList,builder.g);return A4($elm$core$Array$Array_elm_builtin,$elm$core$Elm$JsArray$length(builder.i)+treeLen,A2($elm$core$Basics$max,5,depth*$elm$core$Array$shiftStep),tree,builder.i)}});var $elm$core$Basics$idiv=_Basics_idiv;var $elm$core$Basics$lt=_Utils_lt;var $elm$core$Array$initializeHelp=F5(function(fn,fromIndex,len,nodeList,tail){initializeHelp:while(true){if(fromIndex<0){return A2($elm$core$Array$builderToArray,false,{j:nodeList,g:len/$elm$core$Array$branchFactor|0,i:tail})}else{var leaf=$elm$core$Array$Leaf(A3($elm$core$Elm$JsArray$initialize,$elm$core$Array$branchFactor,fromIndex,fn));var $temp$fn=fn,$temp$fromIndex=fromIndex-$elm$core$Array$branchFactor,$temp$len=len,$temp$nodeList=A2($elm$core$List$cons,leaf,nodeList),$temp$tail=tail;fn=$temp$fn;fromIndex=$temp$fromIndex;len=$temp$len;nodeList=$temp$nodeList;tail=$temp$tail;continue initializeHelp}}});var $elm$core$Basics$remainderBy=_Basics_remainderBy;var $elm$core$Array$initialize=F2(function(len,fn){if(len<=0){return $elm$core$Array$empty}else{var tailLen=len%$elm$core$Array$branchFactor;var tail=A3($elm$core$Elm$JsArray$initialize,tailLen,len-tailLen,fn);var initialFromIndex=len-tailLen-$elm$core$Array$branchFactor;return A5($elm$core$Array$initializeHelp,fn,initialFromIndex,len,_List_Nil,tail)}});var $elm$core$Basics$True=0;var $elm$core$Result$isOk=function(result){if(!result.$){return true}else{return false}};var $elm$json$Json$Decode$map=_Json_map1;var $elm$json$Json$Decode$map2=_Json_map2;var $elm$json$Json$Decode$succeed=_Json_succeed;var $elm$virtual_dom$VirtualDom$toHandlerInt=function(handler){switch(handler.$){case 0:return 0;case 1:return 1;case 2:return 2;default:return 3}};var $elm$browser$Browser$External=function(a){return{$:1,a:a}};var $elm$browser$Browser$Internal=function(a){return{$:0,a:a}};var $elm$core$Basics$identity=function(x){return x};var $elm$browser$Browser$Dom$NotFound=$elm$core$Basics$identity;var $elm$url$Url$Http=0;var $elm$url$Url$Https=1;var $elm$url$Url$Url=F6(function(protocol,host,port_,path,query,fragment){return{X:fragment,Z:host,ab:path,ad:port_,ag:protocol,ah:query}});var $elm$core$String$contains=_String_contains;var $elm$core$String$length=_String_length;var $elm$core$String$slice=_String_slice;var $elm$core$String$dropLeft=F2(function(n,string){return n<1?string:A3($elm$core$String$slice,n,$elm$core$String$length(string),string)});var $elm$core$String$indexes=_String_indexes;var $elm$core$String$isEmpty=function(string){return string===""};var $elm$core$String$left=F2(function(n,string){return n<1?"":A3($elm$core$String$slice,0,n,string)});var $elm$core$String$toInt=_String_toInt;var $elm$url$Url$chompBeforePath=F5(function(protocol,path,params,frag,str){if($elm$core$String$isEmpty(str)||A2($elm$core$String$contains,"@",str)){return $elm$core$Maybe$Nothing}else{var _v0=A2($elm$core$String$indexes,":",str);if(!_v0.b){return $elm$core$Maybe$Just(A6($elm$url$Url$Url,protocol,str,$elm$core$Maybe$Nothing,path,params,frag))}else{if(!_v0.b.b){var i=_v0.a;var _v1=$elm$core$String$toInt(A2($elm$core$String$dropLeft,i+1,str));if(_v1.$===1){return $elm$core$Maybe$Nothing}else{var port_=_v1;return $elm$core$Maybe$Just(A6($elm$url$Url$Url,protocol,A2($elm$core$String$left,i,str),port_,path,params,frag))}}else{return $elm$core$Maybe$Nothing}}}});var $elm$url$Url$chompBeforeQuery=F4(function(protocol,params,frag,str){if($elm$core$String$isEmpty(str)){return $elm$core$Maybe$Nothing}else{var _v0=A2($elm$core$String$indexes,"/",str);if(!_v0.b){return A5($elm$url$Url$chompBeforePath,protocol,"/",params,frag,str)}else{var i=_v0.a;return A5($elm$url$Url$chompBeforePath,protocol,A2($elm$core$String$dropLeft,i,str),params,frag,A2($elm$core$String$left,i,str))}}});var $elm$url$Url$chompBeforeFragment=F3(function(protocol,frag,str){if($elm$core$String$isEmpty(str)){return $elm$core$Maybe$Nothing}else{var _v0=A2($elm$core$String$indexes,"?",str);if(!_v0.b){return A4($elm$url$Url$chompBeforeQuery,protocol,$elm$core$Maybe$Nothing,frag,str)}else{var i=_v0.a;return A4($elm$url$Url$chompBeforeQuery,protocol,$elm$core$Maybe$Just(A2($elm$core$String$dropLeft,i+1,str)),frag,A2($elm$core$String$left,i,str))}}});var $elm$url$Url$chompAfterProtocol=F2(function(protocol,str){if($elm$core$String$isEmpty(str)){return $elm$core$Maybe$Nothing}else{var _v0=A2($elm$core$String$indexes,"#",str);if(!_v0.b){return A3($elm$url$Url$chompBeforeFragment,protocol,$elm$core$Maybe$Nothing,str)}else{var i=_v0.a;return A3($elm$url$Url$chompBeforeFragment,protocol,$elm$core$Maybe$Just(A2($elm$core$String$dropLeft,i+1,str)),A2($elm$core$String$left,i,str))}}});var $elm$core$String$startsWith=_String_startsWith;var $elm$url$Url$fromString=function(str){return A2($elm$core$String$startsWith,"http://",str)?A2($elm$url$Url$chompAfterProtocol,0,A2($elm$core$String$dropLeft,7,str)):A2($elm$core$String$startsWith,"https://",str)?A2($elm$url$Url$chompAfterProtocol,1,A2($elm$core$String$dropLeft,8,str)):$elm$core$Maybe$Nothing};var $elm$core$Basics$never=function(_v0){never:while(true){var nvr=_v0;var $temp$_v0=nvr;_v0=$temp$_v0;continue never}};var $elm$core$Task$Perform=$elm$core$Basics$identity;var $elm$core$Task$succeed=_Scheduler_succeed;var $elm$core$Task$init=$elm$core$Task$succeed(0);var $elm$core$List$foldrHelper=F4(function(fn,acc,ctr,ls){if(!ls.b){return acc}else{var a=ls.a;var r1=ls.b;if(!r1.b){return A2(fn,a,acc)}else{var b=r1.a;var r2=r1.b;if(!r2.b){return A2(fn,a,A2(fn,b,acc))}else{var c=r2.a;var r3=r2.b;if(!r3.b){return A2(fn,a,A2(fn,b,A2(fn,c,acc)))}else{var d=r3.a;var r4=r3.b;var res=ctr>500?A3($elm$core$List$foldl,fn,acc,$elm$core$List$reverse(r4)):A4($elm$core$List$foldrHelper,fn,acc,ctr+1,r4);return A2(fn,a,A2(fn,b,A2(fn,c,A2(fn,d,res))))}}}}});var $elm$core$List$foldr=F3(function(fn,acc,ls){return A4($elm$core$List$foldrHelper,fn,acc,0,ls)});var $elm$core$List$map=F2(function(f,xs){return A3($elm$core$List$foldr,F2(function(x,acc){return A2($elm$core$List$cons,f(x),acc)}),_List_Nil,xs)});var $elm$core$Task$andThen=_Scheduler_andThen;var $elm$core$Task$map=F2(function(func,taskA){return A2($elm$core$Task$andThen,function(a){return $elm$core$Task$succeed(func(a))},taskA)});var $elm$core$Task$map2=F3(function(func,taskA,taskB){return A2($elm$core$Task$andThen,function(a){return A2($elm$core$Task$andThen,function(b){return $elm$core$Task$succeed(A2(func,a,b))},taskB)},taskA)});var $elm$core$Task$sequence=function(tasks){return A3($elm$core$List$foldr,$elm$core$Task$map2($elm$core$List$cons),$elm$core$Task$succeed(_List_Nil),tasks)};var $elm$core$Platform$sendToApp=_Platform_sendToApp;var $elm$core$Task$spawnCmd=F2(function(router,_v0){var task=_v0;return _Scheduler_spawn(A2($elm$core$Task$andThen,$elm$core$Platform$sendToApp(router),task))});var $elm$core$Task$onEffects=F3(function(router,commands,state){return A2($elm$core$Task$map,function(_v0){return 0},$elm$core$Task$sequence(A2($elm$core$List$map,$elm$core$Task$spawnCmd(router),commands)))});var $elm$core$Task$onSelfMsg=F3(function(_v0,_v1,_v2){return $elm$core$Task$succeed(0)});var $elm$core$Task$cmdMap=F2(function(tagger,_v0){var task=_v0;return A2($elm$core$Task$map,tagger,task)});_Platform_effectManagers["Task"]=_Platform_createManager($elm$core$Task$init,$elm$core$Task$onEffects,$elm$core$Task$onSelfMsg,$elm$core$Task$cmdMap);var $elm$core$Task$command=_Platform_leaf("Task");var $elm$core$Task$perform=F2(function(toMessage,task){return $elm$core$Task$command(A2($elm$core$Task$map,toMessage,task))});var $elm$core$Platform$Cmd$batch=_Platform_batch;var $elm$core$Platform$Cmd$none=$elm$core$Platform$Cmd$batch(_List_Nil);var $elm$core$Platform$Sub$batch=_Platform_batch;var $elm$core$Platform$Sub$none=$elm$core$Platform$Sub$batch(_List_Nil);var $elm$browser$Browser$sandbox=function(impl){return _Browser_element({aK:function(_v0){return _Utils_Tuple2(impl.aK,$elm$core$Platform$Cmd$none)},aZ:function(_v1){return $elm$core$Platform$Sub$none},a0:F2(function(msg,model){return _Utils_Tuple2(A2(impl.a0,msg,model),$elm$core$Platform$Cmd$none)}),a1:impl.a1})};var $elm$core$String$lines=_String_lines;var $author$project$QCM$Aremplacer=F2(function(_var,vals){return{ap:vals,aq:_var}});var $elm$parser$Parser$Optional=1;var $elm$core$Set$Set_elm_builtin=$elm$core$Basics$identity;var $elm$core$Dict$RBEmpty_elm_builtin={$:-2};var $elm$core$Dict$empty=$elm$core$Dict$RBEmpty_elm_builtin;var $elm$core$Set$empty=$elm$core$Dict$empty;var $elm$core$Dict$Black=1;var $elm$core$Dict$RBNode_elm_builtin=F5(function(a,b,c,d,e){return{$:-1,a:a,b:b,c:c,d:d,e:e}});var $elm$core$Dict$Red=0;var $elm$core$Dict$balance=F5(function(color,key,value,left,right){if(right.$===-1&&!right.a){var _v1=right.a;var rK=right.b;var rV=right.c;var rLeft=right.d;var rRight=right.e;if(left.$===-1&&!left.a){var _v3=left.a;var lK=left.b;var lV=left.c;var lLeft=left.d;var lRight=left.e;return A5($elm$core$Dict$RBNode_elm_builtin,0,key,value,A5($elm$core$Dict$RBNode_elm_builtin,1,lK,lV,lLeft,lRight),A5($elm$core$Dict$RBNode_elm_builtin,1,rK,rV,rLeft,rRight))}else{return A5($elm$core$Dict$RBNode_elm_builtin,color,rK,rV,A5($elm$core$Dict$RBNode_elm_builtin,0,key,value,left,rLeft),rRight)}}else{if(left.$===-1&&!left.a&&left.d.$===-1&&!left.d.a){var _v5=left.a;var lK=left.b;var lV=left.c;var _v6=left.d;var _v7=_v6.a;var llK=_v6.b;var llV=_v6.c;var llLeft=_v6.d;var llRight=_v6.e;var lRight=left.e;return A5($elm$core$Dict$RBNode_elm_builtin,0,lK,lV,A5($elm$core$Dict$RBNode_elm_builtin,1,llK,llV,llLeft,llRight),A5($elm$core$Dict$RBNode_elm_builtin,1,key,value,lRight,right))}else{return A5($elm$core$Dict$RBNode_elm_builtin,color,key,value,left,right)}}});var $elm$core$Basics$compare=_Utils_compare;var $elm$core$Dict$insertHelp=F3(function(key,value,dict){if(dict.$===-2){return A5($elm$core$Dict$RBNode_elm_builtin,0,key,value,$elm$core$Dict$RBEmpty_elm_builtin,$elm$core$Dict$RBEmpty_elm_builtin)}else{var nColor=dict.a;var nKey=dict.b;var nValue=dict.c;var nLeft=dict.d;var nRight=dict.e;var _v1=A2($elm$core$Basics$compare,key,nKey);switch(_v1){case 0:return A5($elm$core$Dict$balance,nColor,nKey,nValue,A3($elm$core$Dict$insertHelp,key,value,nLeft),nRight);case 1:return A5($elm$core$Dict$RBNode_elm_builtin,nColor,nKey,value,nLeft,nRight);default:return A5($elm$core$Dict$balance,nColor,nKey,nValue,nLeft,A3($elm$core$Dict$insertHelp,key,value,nRight))}}});var $elm$core$Dict$insert=F3(function(key,value,dict){var _v0=A3($elm$core$Dict$insertHelp,key,value,dict);if(_v0.$===-1&&!_v0.a){var _v1=_v0.a;var k=_v0.b;var v=_v0.c;var l=_v0.d;var r=_v0.e;return A5($elm$core$Dict$RBNode_elm_builtin,1,k,v,l,r)}else{var x=_v0;return x}});var $elm$core$Set$insert=F2(function(key,_v0){var dict=_v0;return A3($elm$core$Dict$insert,key,0,dict)});var $elm$core$Set$fromList=function(list){return A3($elm$core$List$foldl,$elm$core$Set$insert,$elm$core$Set$empty,list)};var $elm$core$Basics$always=F2(function(a,_v0){return a});var $elm$parser$Parser$Advanced$Bad=F2(function(a,b){return{$:1,a:a,b:b}});var $elm$parser$Parser$Advanced$Good=F3(function(a,b,c){return{$:0,a:a,b:b,c:c}});var $elm$parser$Parser$Advanced$Parser=$elm$core$Basics$identity;var $elm$parser$Parser$Advanced$map2=F3(function(func,_v0,_v1){var parseA=_v0;var parseB=_v1;return function(s0){var _v2=parseA(s0);if(_v2.$===1){var p=_v2.a;var x=_v2.b;return A2($elm$parser$Parser$Advanced$Bad,p,x)}else{var p1=_v2.a;var a=_v2.b;var s1=_v2.c;var _v3=parseB(s1);if(_v3.$===1){var p2=_v3.a;var x=_v3.b;return A2($elm$parser$Parser$Advanced$Bad,p1||p2,x)}else{var p2=_v3.a;var b=_v3.b;var s2=_v3.c;return A3($elm$parser$Parser$Advanced$Good,p1||p2,A2(func,a,b),s2)}}}});var $elm$parser$Parser$Advanced$ignorer=F2(function(keepParser,ignoreParser){return A3($elm$parser$Parser$Advanced$map2,$elm$core$Basics$always,keepParser,ignoreParser)});var $elm$parser$Parser$ignorer=$elm$parser$Parser$Advanced$ignorer;var $elm$parser$Parser$Advanced$keeper=F2(function(parseFunc,parseArg){return A3($elm$parser$Parser$Advanced$map2,$elm$core$Basics$apL,parseFunc,parseArg)});var $elm$parser$Parser$keeper=$elm$parser$Parser$Advanced$keeper;var $elm$core$Basics$neq=_Utils_notEqual;var $elm$parser$Parser$Advanced$andThen=F2(function(callback,_v0){var parseA=_v0;return function(s0){var _v1=parseA(s0);if(_v1.$===1){var p=_v1.a;var x=_v1.b;return A2($elm$parser$Parser$Advanced$Bad,p,x)}else{var p1=_v1.a;var a=_v1.b;var s1=_v1.c;var _v2=callback(a);var parseB=_v2;var _v3=parseB(s1);if(_v3.$===1){var p2=_v3.a;var x=_v3.b;return A2($elm$parser$Parser$Advanced$Bad,p1||p2,x)}else{var p2=_v3.a;var b=_v3.b;var s2=_v3.c;return A3($elm$parser$Parser$Advanced$Good,p1||p2,b,s2)}}}});var $elm$parser$Parser$Advanced$loopHelp=F4(function(p,state,callback,s0){loopHelp:while(true){var _v0=callback(state);var parse=_v0;var _v1=parse(s0);if(!_v1.$){var p1=_v1.a;var step=_v1.b;var s1=_v1.c;if(!step.$){var newState=step.a;var $temp$p=p||p1,$temp$state=newState,$temp$callback=callback,$temp$s0=s1;p=$temp$p;state=$temp$state;callback=$temp$callback;s0=$temp$s0;continue loopHelp}else{var result=step.a;return A3($elm$parser$Parser$Advanced$Good,p||p1,result,s1)}}else{var p1=_v1.a;var x=_v1.b;return A2($elm$parser$Parser$Advanced$Bad,p||p1,x)}}});var $elm$parser$Parser$Advanced$loop=F2(function(state,callback){return function(s){return A4($elm$parser$Parser$Advanced$loopHelp,false,state,callback,s)}});var $elm$parser$Parser$Advanced$map=F2(function(func,_v0){var parse=_v0;return function(s0){var _v1=parse(s0);if(!_v1.$){var p=_v1.a;var a=_v1.b;var s1=_v1.c;return A3($elm$parser$Parser$Advanced$Good,p,func(a),s1)}else{var p=_v1.a;var x=_v1.b;return A2($elm$parser$Parser$Advanced$Bad,p,x)}}});var $elm$parser$Parser$Advanced$Empty={$:0};var $elm$parser$Parser$Advanced$Append=F2(function(a,b){return{$:2,a:a,b:b}});var $elm$parser$Parser$Advanced$oneOfHelp=F3(function(s0,bag,parsers){oneOfHelp:while(true){if(!parsers.b){return A2($elm$parser$Parser$Advanced$Bad,false,bag)}else{var parse=parsers.a;var remainingParsers=parsers.b;var _v1=parse(s0);if(!_v1.$){var step=_v1;return step}else{var step=_v1;var p=step.a;var x=step.b;if(p){return step}else{var $temp$s0=s0,$temp$bag=A2($elm$parser$Parser$Advanced$Append,bag,x),$temp$parsers=remainingParsers;s0=$temp$s0;bag=$temp$bag;parsers=$temp$parsers;continue oneOfHelp}}}}});var $elm$parser$Parser$Advanced$oneOf=function(parsers){return function(s){return A3($elm$parser$Parser$Advanced$oneOfHelp,s,$elm$parser$Parser$Advanced$Empty,parsers)}};var $elm$parser$Parser$Advanced$Done=function(a){return{$:1,a:a}};var $elm$parser$Parser$Advanced$Loop=function(a){return{$:0,a:a}};var $elm$parser$Parser$Advanced$revAlways=F2(function(_v0,b){return b});var $elm$parser$Parser$Advanced$skip=F2(function(iParser,kParser){return A3($elm$parser$Parser$Advanced$map2,$elm$parser$Parser$Advanced$revAlways,iParser,kParser)});var $elm$parser$Parser$Advanced$sequenceEndForbidden=F5(function(ender,ws,parseItem,sep,revItems){var chompRest=function(item){return A5($elm$parser$Parser$Advanced$sequenceEndForbidden,ender,ws,parseItem,sep,A2($elm$core$List$cons,item,revItems))};return A2($elm$parser$Parser$Advanced$skip,ws,$elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$skip,sep,A2($elm$parser$Parser$Advanced$skip,ws,A2($elm$parser$Parser$Advanced$map,function(item){return $elm$parser$Parser$Advanced$Loop(A2($elm$core$List$cons,item,revItems))},parseItem))),A2($elm$parser$Parser$Advanced$map,function(_v0){return $elm$parser$Parser$Advanced$Done($elm$core$List$reverse(revItems))},ender)])))});var $elm$parser$Parser$Advanced$succeed=function(a){return function(s){return A3($elm$parser$Parser$Advanced$Good,false,a,s)}};var $elm$parser$Parser$Advanced$sequenceEndMandatory=F4(function(ws,parseItem,sep,revItems){return $elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$map,function(item){return $elm$parser$Parser$Advanced$Loop(A2($elm$core$List$cons,item,revItems))},A2($elm$parser$Parser$Advanced$ignorer,parseItem,A2($elm$parser$Parser$Advanced$ignorer,ws,A2($elm$parser$Parser$Advanced$ignorer,sep,ws)))),A2($elm$parser$Parser$Advanced$map,function(_v0){return $elm$parser$Parser$Advanced$Done($elm$core$List$reverse(revItems))},$elm$parser$Parser$Advanced$succeed(0))]))});var $elm$parser$Parser$Advanced$sequenceEndOptional=F5(function(ender,ws,parseItem,sep,revItems){var parseEnd=A2($elm$parser$Parser$Advanced$map,function(_v0){return $elm$parser$Parser$Advanced$Done($elm$core$List$reverse(revItems))},ender);return A2($elm$parser$Parser$Advanced$skip,ws,$elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$skip,sep,A2($elm$parser$Parser$Advanced$skip,ws,$elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$map,function(item){return $elm$parser$Parser$Advanced$Loop(A2($elm$core$List$cons,item,revItems))},parseItem),parseEnd])))),parseEnd])))});var $elm$parser$Parser$Advanced$sequenceEnd=F5(function(ender,ws,parseItem,sep,trailing){var chompRest=function(item){switch(trailing){case 0:return A2($elm$parser$Parser$Advanced$loop,_List_fromArray([item]),A4($elm$parser$Parser$Advanced$sequenceEndForbidden,ender,ws,parseItem,sep));case 1:return A2($elm$parser$Parser$Advanced$loop,_List_fromArray([item]),A4($elm$parser$Parser$Advanced$sequenceEndOptional,ender,ws,parseItem,sep));default:return A2($elm$parser$Parser$Advanced$ignorer,A2($elm$parser$Parser$Advanced$skip,ws,A2($elm$parser$Parser$Advanced$skip,sep,A2($elm$parser$Parser$Advanced$skip,ws,A2($elm$parser$Parser$Advanced$loop,_List_fromArray([item]),A3($elm$parser$Parser$Advanced$sequenceEndMandatory,ws,parseItem,sep))))),ender)}};return $elm$parser$Parser$Advanced$oneOf(_List_fromArray([A2($elm$parser$Parser$Advanced$andThen,chompRest,parseItem),A2($elm$parser$Parser$Advanced$map,function(_v0){return _List_Nil},ender)]))});var $elm$parser$Parser$Advanced$AddRight=F2(function(a,b){return{$:1,a:a,b:b}});var $elm$parser$Parser$Advanced$DeadEnd=F4(function(row,col,problem,contextStack){return{aA:col,aB:contextStack,aU:problem,ak:row}});var $elm$parser$Parser$Advanced$fromState=F2(function(s,x){return A2($elm$parser$Parser$Advanced$AddRight,$elm$parser$Parser$Advanced$Empty,A4($elm$parser$Parser$Advanced$DeadEnd,s.ak,s.aA,x,s.c))});var $elm$parser$Parser$Advanced$isSubString=_Parser_isSubString;var $elm$core$Basics$negate=function(n){return-n};var $elm$core$Basics$not=_Basics_not;var $elm$parser$Parser$Advanced$token=function(_v0){var str=_v0.a;var expecting=_v0.b;var progress=!$elm$core$String$isEmpty(str);return function(s){var _v1=A5($elm$parser$Parser$Advanced$isSubString,str,s.b,s.ak,s.aA,s.a);var newOffset=_v1.a;var newRow=_v1.b;var newCol=_v1.c;return _Utils_eq(newOffset,-1)?A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,expecting)):A3($elm$parser$Parser$Advanced$Good,progress,0,{aA:newCol,c:s.c,d:s.d,b:newOffset,ak:newRow,a:s.a})}};var $elm$parser$Parser$Advanced$sequence=function(i){return A2($elm$parser$Parser$Advanced$skip,$elm$parser$Parser$Advanced$token(i.am),A2($elm$parser$Parser$Advanced$skip,i.aY,A5($elm$parser$Parser$Advanced$sequenceEnd,$elm$parser$Parser$Advanced$token(i.aE),i.aY,i.aO,$elm$parser$Parser$Advanced$token(i.aX),i.a$)))};var $elm$parser$Parser$Advanced$Forbidden=0;var $elm$parser$Parser$Advanced$Mandatory=2;var $elm$parser$Parser$Advanced$Optional=1;var $elm$parser$Parser$toAdvancedTrailing=function(trailing){switch(trailing){case 0:return 0;case 1:return 1;default:return 2}};var $elm$parser$Parser$Expecting=function(a){return{$:0,a:a}};var $elm$parser$Parser$Advanced$Token=F2(function(a,b){return{$:0,a:a,b:b}});var $elm$parser$Parser$toToken=function(str){return A2($elm$parser$Parser$Advanced$Token,str,$elm$parser$Parser$Expecting(str))};var $elm$parser$Parser$sequence=function(i){return $elm$parser$Parser$Advanced$sequence({aE:$elm$parser$Parser$toToken(i.aE),aO:i.aO,aX:$elm$parser$Parser$toToken(i.aX),aY:i.aY,am:$elm$parser$Parser$toToken(i.am),a$:$elm$parser$Parser$toAdvancedTrailing(i.a$)})};var $elm$parser$Parser$Advanced$isSubChar=_Parser_isSubChar;var $elm$parser$Parser$Advanced$chompWhileHelp=F5(function(isGood,offset,row,col,s0){chompWhileHelp:while(true){var newOffset=A3($elm$parser$Parser$Advanced$isSubChar,isGood,offset,s0.a);if(_Utils_eq(newOffset,-1)){return A3($elm$parser$Parser$Advanced$Good,_Utils_cmp(s0.b,offset)<0,0,{aA:col,c:s0.c,d:s0.d,b:offset,ak:row,a:s0.a})}else{if(_Utils_eq(newOffset,-2)){var $temp$isGood=isGood,$temp$offset=offset+1,$temp$row=row+1,$temp$col=1,$temp$s0=s0;isGood=$temp$isGood;offset=$temp$offset;row=$temp$row;col=$temp$col;s0=$temp$s0;continue chompWhileHelp}else{var $temp$isGood=isGood,$temp$offset=newOffset,$temp$row=row,$temp$col=col+1,$temp$s0=s0;isGood=$temp$isGood;offset=$temp$offset;row=$temp$row;col=$temp$col;s0=$temp$s0;continue chompWhileHelp}}}});var $elm$parser$Parser$Advanced$chompWhile=function(isGood){return function(s){return A5($elm$parser$Parser$Advanced$chompWhileHelp,isGood,s.b,s.ak,s.aA,s)}};var $elm$parser$Parser$Advanced$spaces=$elm$parser$Parser$Advanced$chompWhile(function(c){return c===" "||(c==="\n"||c==="\r")});var $elm$parser$Parser$spaces=$elm$parser$Parser$Advanced$spaces;var $elm$parser$Parser$succeed=$elm$parser$Parser$Advanced$succeed;var $elm$parser$Parser$ExpectingSymbol=function(a){return{$:8,a:a}};var $elm$parser$Parser$Advanced$symbol=$elm$parser$Parser$Advanced$token;var $elm$parser$Parser$symbol=function(str){return $elm$parser$Parser$Advanced$symbol(A2($elm$parser$Parser$Advanced$Token,str,$elm$parser$Parser$ExpectingSymbol(str)))};var $elm$parser$Parser$ExpectingVariable={$:7};var $elm$core$Dict$get=F2(function(targetKey,dict){get:while(true){if(dict.$===-2){return $elm$core$Maybe$Nothing}else{var key=dict.b;var value=dict.c;var left=dict.d;var right=dict.e;var _v1=A2($elm$core$Basics$compare,targetKey,key);switch(_v1){case 0:var $temp$targetKey=targetKey,$temp$dict=left;targetKey=$temp$targetKey;dict=$temp$dict;continue get;case 1:return $elm$core$Maybe$Just(value);default:var $temp$targetKey=targetKey,$temp$dict=right;targetKey=$temp$targetKey;dict=$temp$dict;continue get}}}});var $elm$core$Dict$member=F2(function(key,dict){var _v0=A2($elm$core$Dict$get,key,dict);if(!_v0.$){return true}else{return false}});var $elm$core$Set$member=F2(function(key,_v0){var dict=_v0;return A2($elm$core$Dict$member,key,dict)});var $elm$parser$Parser$Advanced$varHelp=F7(function(isGood,offset,row,col,src,indent,context){varHelp:while(true){var newOffset=A3($elm$parser$Parser$Advanced$isSubChar,isGood,offset,src);if(_Utils_eq(newOffset,-1)){return{aA:col,c:context,d:indent,b:offset,ak:row,a:src}}else{if(_Utils_eq(newOffset,-2)){var $temp$isGood=isGood,$temp$offset=offset+1,$temp$row=row+1,$temp$col=1,$temp$src=src,$temp$indent=indent,$temp$context=context;isGood=$temp$isGood;offset=$temp$offset;row=$temp$row;col=$temp$col;src=$temp$src;indent=$temp$indent;context=$temp$context;continue varHelp}else{var $temp$isGood=isGood,$temp$offset=newOffset,$temp$row=row,$temp$col=col+1,$temp$src=src,$temp$indent=indent,$temp$context=context;isGood=$temp$isGood;offset=$temp$offset;row=$temp$row;col=$temp$col;src=$temp$src;indent=$temp$indent;context=$temp$context;continue varHelp}}}});var $elm$parser$Parser$Advanced$variable=function(i){return function(s){var firstOffset=A3($elm$parser$Parser$Advanced$isSubChar,i.am,s.b,s.a);if(_Utils_eq(firstOffset,-1)){return A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,i.W))}else{var s1=_Utils_eq(firstOffset,-2)?A7($elm$parser$Parser$Advanced$varHelp,i.aL,s.b+1,s.ak+1,1,s.a,s.d,s.c):A7($elm$parser$Parser$Advanced$varHelp,i.aL,firstOffset,s.ak,s.aA+1,s.a,s.d,s.c);var name=A3($elm$core$String$slice,s.b,s1.b,s.a);return A2($elm$core$Set$member,name,i.aV)?A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,i.W)):A3($elm$parser$Parser$Advanced$Good,true,name,s1)}}};var $elm$parser$Parser$variable=function(i){return $elm$parser$Parser$Advanced$variable({W:$elm$parser$Parser$ExpectingVariable,aL:i.aL,aV:i.aV,am:i.am})};var $author$project$QCM$aRemplacer=A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$QCM$Aremplacer),$elm$parser$Parser$spaces),A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$variable({aL:$elm$core$Char$isAlpha,aV:$elm$core$Set$fromList(_List_Nil),am:function(_v0){return true}}),$elm$parser$Parser$spaces),$elm$parser$Parser$symbol(":"))),$elm$parser$Parser$sequence({aE:"",aO:$elm$parser$Parser$variable({aL:$elm$core$Basics$neq(","),aV:$elm$core$Set$fromList(_List_Nil),am:$elm$core$Basics$neq(",")}),aX:",",aY:$elm$parser$Parser$spaces,am:"",a$:1}));var $elm$parser$Parser$DeadEnd=F3(function(row,col,problem){return{aA:col,aU:problem,ak:row}});var $elm$parser$Parser$problemToDeadEnd=function(p){return A3($elm$parser$Parser$DeadEnd,p.ak,p.aA,p.aU)};var $elm$parser$Parser$Advanced$bagToList=F2(function(bag,list){bagToList:while(true){switch(bag.$){case 0:return list;case 1:var bag1=bag.a;var x=bag.b;var $temp$bag=bag1,$temp$list=A2($elm$core$List$cons,x,list);bag=$temp$bag;list=$temp$list;continue bagToList;default:var bag1=bag.a;var bag2=bag.b;var $temp$bag=bag1,$temp$list=A2($elm$parser$Parser$Advanced$bagToList,bag2,list);bag=$temp$bag;list=$temp$list;continue bagToList}}});var $elm$parser$Parser$Advanced$run=F2(function(_v0,src){var parse=_v0;var _v1=parse({aA:1,c:_List_Nil,d:1,b:0,ak:1,a:src});if(!_v1.$){var value=_v1.b;return $elm$core$Result$Ok(value)}else{var bag=_v1.b;return $elm$core$Result$Err(A2($elm$parser$Parser$Advanced$bagToList,bag,_List_Nil))}});var $elm$parser$Parser$run=F2(function(parser,source){var _v0=A2($elm$parser$Parser$Advanced$run,parser,source);if(!_v0.$){var a=_v0.a;return $elm$core$Result$Ok(a)}else{var problems=_v0.a;return $elm$core$Result$Err(A2($elm$core$List$map,$elm$parser$Parser$problemToDeadEnd,problems))}});var $author$project$QCM$parserAremplacer=function(variables){var _v0=A2($elm$parser$Parser$run,$author$project$QCM$aRemplacer,variables);if(!_v0.$){var ars=_v0.a;return ars}else{return A2($author$project$QCM$Aremplacer,"",_List_Nil)}};var $elm$parser$Parser$map=$elm$parser$Parser$Advanced$map;var $elm$parser$Parser$toAdvancedStep=function(step){if(!step.$){var s=step.a;return $elm$parser$Parser$Advanced$Loop(s)}else{var a=step.a;return $elm$parser$Parser$Advanced$Done(a)}};var $elm$parser$Parser$loop=F2(function(state,callback){return A2($elm$parser$Parser$Advanced$loop,state,function(s){return A2($elm$parser$Parser$map,$elm$parser$Parser$toAdvancedStep,callback(s))})});var $elm$parser$Parser$Done=function(a){return{$:1,a:a}};var $elm$parser$Parser$Loop=function(a){return{$:0,a:a}};var $author$project$QCM$Variable=function(a){return{$:1,a:a}};var $elm$parser$Parser$Advanced$findSubString=_Parser_findSubString;var $elm$parser$Parser$Advanced$fromInfo=F4(function(row,col,x,context){return A2($elm$parser$Parser$Advanced$AddRight,$elm$parser$Parser$Advanced$Empty,A4($elm$parser$Parser$Advanced$DeadEnd,row,col,x,context))});var $elm$parser$Parser$Advanced$chompUntil=function(_v0){var str=_v0.a;var expecting=_v0.b;return function(s){var _v1=A5($elm$parser$Parser$Advanced$findSubString,str,s.b,s.ak,s.aA,s.a);var newOffset=_v1.a;var newRow=_v1.b;var newCol=_v1.c;return _Utils_eq(newOffset,-1)?A2($elm$parser$Parser$Advanced$Bad,false,A4($elm$parser$Parser$Advanced$fromInfo,newRow,newCol,expecting,s.c)):A3($elm$parser$Parser$Advanced$Good,_Utils_cmp(s.b,newOffset)<0,0,{aA:newCol,c:s.c,d:s.d,b:newOffset,ak:newRow,a:s.a})}};var $elm$parser$Parser$chompUntil=function(str){return $elm$parser$Parser$Advanced$chompUntil($elm$parser$Parser$toToken(str))};var $elm$parser$Parser$Advanced$mapChompedString=F2(function(func,_v0){var parse=_v0;return function(s0){var _v1=parse(s0);if(_v1.$===1){var p=_v1.a;var x=_v1.b;return A2($elm$parser$Parser$Advanced$Bad,p,x)}else{var p=_v1.a;var a=_v1.b;var s1=_v1.c;return A3($elm$parser$Parser$Advanced$Good,p,A2(func,A3($elm$core$String$slice,s0.b,s1.b,s0.a),a),s1)}}});var $elm$parser$Parser$Advanced$getChompedString=function(parser){return A2($elm$parser$Parser$Advanced$mapChompedString,$elm$core$Basics$always,parser)};var $elm$parser$Parser$getChompedString=$elm$parser$Parser$Advanced$getChompedString;var $author$project$QCM$expressionVariable=A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$QCM$Variable),$elm$parser$Parser$symbol("#")),A2($elm$parser$Parser$ignorer,$elm$parser$Parser$getChompedString($elm$parser$Parser$chompUntil("#")),$elm$parser$Parser$symbol("#")));var $elm$parser$Parser$oneOf=$elm$parser$Parser$Advanced$oneOf;var $author$project$QCM$Texte=function(a){return{$:0,a:a}};var $elm$parser$Parser$UnexpectedChar={$:11};var $elm$parser$Parser$Advanced$chompIf=F2(function(isGood,expecting){return function(s){var newOffset=A3($elm$parser$Parser$Advanced$isSubChar,isGood,s.b,s.a);return _Utils_eq(newOffset,-1)?A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,expecting)):_Utils_eq(newOffset,-2)?A3($elm$parser$Parser$Advanced$Good,true,0,{aA:1,c:s.c,d:s.d,b:s.b+1,ak:s.ak+1,a:s.a}):A3($elm$parser$Parser$Advanced$Good,true,0,{aA:s.aA+1,c:s.c,d:s.d,b:newOffset,ak:s.ak,a:s.a})}});var $elm$parser$Parser$chompIf=function(isGood){return A2($elm$parser$Parser$Advanced$chompIf,isGood,$elm$parser$Parser$UnexpectedChar)};var $elm$parser$Parser$chompWhile=$elm$parser$Parser$Advanced$chompWhile;var $author$project$QCM$texteSansVariables=A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$QCM$Texte),$elm$parser$Parser$getChompedString(A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(0),$elm$parser$Parser$chompIf($elm$core$Basics$neq("#"))),$elm$parser$Parser$chompWhile($elm$core$Basics$neq("#")))));var $author$project$QCM$questionsBis=function(ls){return $elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed(function(l){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,l,ls))}),$elm$parser$Parser$oneOf(_List_fromArray([$author$project$QCM$expressionVariable,$author$project$QCM$texteSansVariables]))),A2($elm$parser$Parser$map,function(_v0){return $elm$parser$Parser$Done($elm$core$List$reverse(ls))},$elm$parser$Parser$succeed(0))]))};var $author$project$QCM$questions=A2($elm$parser$Parser$loop,_List_Nil,$author$project$QCM$questionsBis);var $author$project$QCM$parserQuestion=function(question){var _v0=A2($elm$parser$Parser$run,$author$project$QCM$questions,question);if(!_v0.$){var macro=_v0.a;return macro}else{return _List_Nil}};var $elm$core$List$append=F2(function(xs,ys){if(!ys.b){return xs}else{return A3($elm$core$List$foldr,$elm$core$List$cons,ys,xs)}});var $elm$core$List$concat=function(lists){return A3($elm$core$List$foldr,$elm$core$List$append,_List_Nil,lists)};var $elm$core$String$replace=F3(function(before,after,string){return A2($elm$core$String$join,after,A2($elm$core$String$split,before,string))});var $author$project$QCM$remplacerLaVariableParLaValeurDansLeTexteVariable=F3(function(_var,val,tv){if(!tv.$){var chaine=tv.a;return $author$project$QCM$Texte(chaine)}else{var chaine=tv.a;return $author$project$QCM$Variable(A3($elm$core$String$replace,_var,val,chaine))}});var $author$project$QCM$remplacerLaVariableParLaValeurDansLaMacro=F3(function(_var,val,macro){return A2($elm$core$List$map,A2($author$project$QCM$remplacerLaVariableParLaValeurDansLeTexteVariable,_var,val),macro)});var $author$project$QCM$remplacerLaVariableDansLaMacro=F2(function(ar,macro){var f=function(val){return A3($author$project$QCM$remplacerLaVariableParLaValeurDansLaMacro,ar.aq,val,macro)};return A2($elm$core$List$map,f,ar.ap)});var $author$project$QCM$remplacerLesVariablesDansLaMacroBis=F2(function(ars,macros){if(!ars.b){return macros}else{var ar=ars.a;var arss=ars.b;return A2($author$project$QCM$remplacerLesVariablesDansLaMacroBis,arss,$elm$core$List$concat(A2($elm$core$List$map,$author$project$QCM$remplacerLaVariableDansLaMacro(ar),macros)))}});var $elm$core$String$concat=function(strings){return A2($elm$core$String$join,"",strings)};var $author$project$Fractions$Frac=F2(function(num,den){return{f:den,e:num}});var $elm$core$Basics$abs=function(n){return n<0?-n:n};var $elm$core$Basics$modBy=_Basics_modBy;var $lynn$elm_arithmetic$Arithmetic$gcd=F2(function(a,b){var gcd_=F2(function(x,y){gcd_:while(true){if(!y){return x}else{var $temp$x=y,$temp$y=A2($elm$core$Basics$modBy,y,x);x=$temp$x;y=$temp$y;continue gcd_}}});return A2(gcd_,$elm$core$Basics$abs(a),$elm$core$Basics$abs(b))});var $author$project$Fractions$simplifier=function(a){var sgnDuDen=a.f<0?-1:1;var pgcd=A2($lynn$elm_arithmetic$Arithmetic$gcd,a.e,a.f);return A2($author$project$Fractions$Frac,sgnDuDen*a.e/pgcd|0,sgnDuDen*a.f/pgcd|0)};var $author$project$Fractions$add=F2(function(a,b){return $author$project$Fractions$simplifier(A2($author$project$Fractions$Frac,a.e*b.f+a.f*b.e,a.f*b.f))});var $author$project$Fractions$inv=function(a){return $author$project$Fractions$simplifier(A2($author$project$Fractions$Frac,a.f,a.e))};var $author$project$Fractions$mul=F2(function(a,b){return $author$project$Fractions$simplifier(A2($author$project$Fractions$Frac,a.e*b.e,a.f*b.f))});var $author$project$Fractions$div=F2(function(a,b){return $author$project$Fractions$simplifier(A2($author$project$Fractions$mul,a,$author$project$Fractions$inv(b)))});var $elm$core$Basics$pow=_Basics_pow;var $author$project$Fractions$exp=F2(function(a,b){var bb=$author$project$Fractions$simplifier(b);var sgnDeB=bb.e<0?-1:1;var aa=$author$project$Fractions$simplifier(a);var sgnDeA=aa.e<0?-1:1;return bb.f===1&&bb.e<0?$elm$core$Maybe$Just(A2($author$project$Fractions$Frac,A2($elm$core$Basics$pow,sgnDeA*aa.f,sgnDeB*bb.e),A2($elm$core$Basics$pow,sgnDeA*aa.e,sgnDeB*bb.e))):bb.f===1?$elm$core$Maybe$Just(A2($author$project$Fractions$Frac,A2($elm$core$Basics$pow,aa.e,bb.e),A2($elm$core$Basics$pow,aa.f,bb.e))):$elm$core$Maybe$Nothing});var $elm$core$Maybe$map=F2(function(f,maybe){if(!maybe.$){var value=maybe.a;return $elm$core$Maybe$Just(f(value))}else{return $elm$core$Maybe$Nothing}});var $elm$core$Maybe$map2=F3(function(func,ma,mb){if(ma.$===1){return $elm$core$Maybe$Nothing}else{var a=ma.a;if(mb.$===1){return $elm$core$Maybe$Nothing}else{var b=mb.a;return $elm$core$Maybe$Just(A2(func,a,b))}}});var $author$project$Fractions$neg=function(a){return $author$project$Fractions$simplifier(A2($author$project$Fractions$Frac,-a.e,a.f))};var $author$project$Fractions$sub=F2(function(a,b){return $author$project$Fractions$simplifier(A2($author$project$Fractions$add,a,$author$project$Fractions$neg(b)))});var $author$project$ParserMaths$evaluer=function(expression){evaluer:while(true){switch(expression.$){case 0:var a=expression.a;var b=expression.b;return A3($elm$core$Maybe$map2,$author$project$Fractions$add,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));case 1:var a=expression.a;var b=expression.b;return A3($elm$core$Maybe$map2,$author$project$Fractions$sub,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));case 2:var a=expression.a;var b=expression.b;return A3($elm$core$Maybe$map2,$author$project$Fractions$mul,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));case 3:var a=expression.a;var b=expression.b;return A3($elm$core$Maybe$map2,$author$project$Fractions$div,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));case 4:var a=expression.a;var b=expression.b;var _v1=A3($elm$core$Maybe$map2,$author$project$Fractions$exp,$author$project$ParserMaths$evaluer(a),$author$project$ParserMaths$evaluer(b));if(_v1.$===1){return $elm$core$Maybe$Nothing}else{var p=_v1.a;return p}case 5:var a=expression.a;return A2($elm$core$Maybe$map,$author$project$Fractions$neg,$author$project$ParserMaths$evaluer(a));case 7:var l=expression.a;var $temp$expression=l;expression=$temp$expression;continue evaluer;case 6:var n=expression.a;return $elm$core$Maybe$Just(A2($author$project$Fractions$Frac,n,1));default:var a_i=expression.a;var x=expression.b;return $elm$core$Maybe$Just(A2($author$project$Fractions$Frac,50,1))}}};var $author$project$ParserMaths$AddOp=2;var $author$project$ParserMaths$DivOp=1;var $author$project$ParserMaths$ExpOp=4;var $elm$parser$Parser$Forbidden=0;var $author$project$ParserMaths$Grouping=function(a){return{$:7,a:a}};var $author$project$ParserMaths$MulOp=0;var $author$project$ParserMaths$Neg=function(a){return{$:5,a:a}};var $author$project$ParserMaths$NoOperand={$:0};var $author$project$ParserMaths$Operand=F2(function(a,b){return{$:1,a:a,b:b}});var $author$project$ParserMaths$Poly=F2(function(a,b){return{$:8,a:a,b:b}});var $author$project$ParserMaths$SubOp=3;var $author$project$ParserMaths$Add=F2(function(a,b){return{$:0,a:a,b:b}});var $author$project$ParserMaths$Div=F2(function(a,b){return{$:3,a:a,b:b}});var $author$project$ParserMaths$Exp=F2(function(a,b){return{$:4,a:a,b:b}});var $author$project$ParserMaths$Mul=F2(function(a,b){return{$:2,a:a,b:b}});var $author$project$ParserMaths$Sub=F2(function(a,b){return{$:1,a:a,b:b}});var $author$project$ParserMaths$binary=F2(function(a,b){if(!b.$){return a}else{var op=b.a;var e=b.b;switch(op){case 0:return A2($author$project$ParserMaths$Mul,a,e);case 1:return A2($author$project$ParserMaths$Div,a,e);case 2:return A2($author$project$ParserMaths$Add,a,e);case 3:return A2($author$project$ParserMaths$Sub,a,e);default:return A2($author$project$ParserMaths$Exp,a,e)}}});var $author$project$ParserMaths$foldBinary=F2(function(left,operands){return A3($elm$core$List$foldr,F2(function(operand,expression){return A2($author$project$ParserMaths$binary,expression,operand)}),left,operands)});var $elm$parser$Parser$ExpectingKeyword=function(a){return{$:9,a:a}};var $elm$parser$Parser$Advanced$keyword=function(_v0){var kwd=_v0.a;var expecting=_v0.b;var progress=!$elm$core$String$isEmpty(kwd);return function(s){var _v1=A5($elm$parser$Parser$Advanced$isSubString,kwd,s.b,s.ak,s.aA,s.a);var newOffset=_v1.a;var newRow=_v1.b;var newCol=_v1.c;return _Utils_eq(newOffset,-1)||0<=A3($elm$parser$Parser$Advanced$isSubChar,function(c){return $elm$core$Char$isAlphaNum(c)||c==="_"},newOffset,s.a)?A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,expecting)):A3($elm$parser$Parser$Advanced$Good,progress,0,{aA:newCol,c:s.c,d:s.d,b:newOffset,ak:newRow,a:s.a})}};var $elm$parser$Parser$keyword=function(kwd){return $elm$parser$Parser$Advanced$keyword(A2($elm$parser$Parser$Advanced$Token,kwd,$elm$parser$Parser$ExpectingKeyword(kwd)))};var $elm$parser$Parser$Advanced$lazy=function(thunk){return function(s){var _v0=thunk(0);var parse=_v0;return parse(s)}};var $elm$parser$Parser$lazy=$elm$parser$Parser$Advanced$lazy;var $author$project$ParserMaths$Entier=function(a){return{$:6,a:a}};var $elm$parser$Parser$ExpectingBinary={$:4};var $elm$parser$Parser$ExpectingFloat={$:5};var $elm$parser$Parser$ExpectingHex={$:2};var $elm$parser$Parser$ExpectingInt={$:1};var $elm$parser$Parser$ExpectingNumber={$:6};var $elm$parser$Parser$ExpectingOctal={$:3};var $elm$core$Result$fromMaybe=F2(function(err,maybe){if(!maybe.$){var v=maybe.a;return $elm$core$Result$Ok(v)}else{return $elm$core$Result$Err(err)}});var $elm$parser$Parser$Advanced$consumeBase=_Parser_consumeBase;var $elm$parser$Parser$Advanced$consumeBase16=_Parser_consumeBase16;var $elm$parser$Parser$Advanced$bumpOffset=F2(function(newOffset,s){return{aA:s.aA+(newOffset-s.b),c:s.c,d:s.d,b:newOffset,ak:s.ak,a:s.a}});var $elm$parser$Parser$Advanced$chompBase10=_Parser_chompBase10;var $elm$parser$Parser$Advanced$isAsciiCode=_Parser_isAsciiCode;var $elm$parser$Parser$Advanced$consumeExp=F2(function(offset,src){if(A3($elm$parser$Parser$Advanced$isAsciiCode,101,offset,src)||A3($elm$parser$Parser$Advanced$isAsciiCode,69,offset,src)){var eOffset=offset+1;var expOffset=A3($elm$parser$Parser$Advanced$isAsciiCode,43,eOffset,src)||A3($elm$parser$Parser$Advanced$isAsciiCode,45,eOffset,src)?eOffset+1:eOffset;var newOffset=A2($elm$parser$Parser$Advanced$chompBase10,expOffset,src);return _Utils_eq(expOffset,newOffset)?-newOffset:newOffset}else{return offset}});var $elm$parser$Parser$Advanced$consumeDotAndExp=F2(function(offset,src){return A3($elm$parser$Parser$Advanced$isAsciiCode,46,offset,src)?A2($elm$parser$Parser$Advanced$consumeExp,A2($elm$parser$Parser$Advanced$chompBase10,offset+1,src),src):A2($elm$parser$Parser$Advanced$consumeExp,offset,src)});var $elm$parser$Parser$Advanced$finalizeInt=F5(function(invalid,handler,startOffset,_v0,s){var endOffset=_v0.a;var n=_v0.b;if(handler.$===1){var x=handler.a;return A2($elm$parser$Parser$Advanced$Bad,true,A2($elm$parser$Parser$Advanced$fromState,s,x))}else{var toValue=handler.a;return _Utils_eq(startOffset,endOffset)?A2($elm$parser$Parser$Advanced$Bad,_Utils_cmp(s.b,startOffset)<0,A2($elm$parser$Parser$Advanced$fromState,s,invalid)):A3($elm$parser$Parser$Advanced$Good,true,toValue(n),A2($elm$parser$Parser$Advanced$bumpOffset,endOffset,s))}});var $elm$core$String$toFloat=_String_toFloat;var $elm$parser$Parser$Advanced$finalizeFloat=F6(function(invalid,expecting,intSettings,floatSettings,intPair,s){var intOffset=intPair.a;var floatOffset=A2($elm$parser$Parser$Advanced$consumeDotAndExp,intOffset,s.a);if(floatOffset<0){return A2($elm$parser$Parser$Advanced$Bad,true,A4($elm$parser$Parser$Advanced$fromInfo,s.ak,s.aA-(floatOffset+s.b),invalid,s.c))}else{if(_Utils_eq(s.b,floatOffset)){return A2($elm$parser$Parser$Advanced$Bad,false,A2($elm$parser$Parser$Advanced$fromState,s,expecting))}else{if(_Utils_eq(intOffset,floatOffset)){return A5($elm$parser$Parser$Advanced$finalizeInt,invalid,intSettings,s.b,intPair,s)}else{if(floatSettings.$===1){var x=floatSettings.a;return A2($elm$parser$Parser$Advanced$Bad,true,A2($elm$parser$Parser$Advanced$fromState,s,invalid))}else{var toValue=floatSettings.a;var _v1=$elm$core$String$toFloat(A3($elm$core$String$slice,s.b,floatOffset,s.a));if(_v1.$===1){return A2($elm$parser$Parser$Advanced$Bad,true,A2($elm$parser$Parser$Advanced$fromState,s,invalid))}else{var n=_v1.a;return A3($elm$parser$Parser$Advanced$Good,true,toValue(n),A2($elm$parser$Parser$Advanced$bumpOffset,floatOffset,s))}}}}}});var $elm$parser$Parser$Advanced$number=function(c){return function(s){if(A3($elm$parser$Parser$Advanced$isAsciiCode,48,s.b,s.a)){var zeroOffset=s.b+1;var baseOffset=zeroOffset+1;return A3($elm$parser$Parser$Advanced$isAsciiCode,120,zeroOffset,s.a)?A5($elm$parser$Parser$Advanced$finalizeInt,c.aN,c.aH,baseOffset,A2($elm$parser$Parser$Advanced$consumeBase16,baseOffset,s.a),s):A3($elm$parser$Parser$Advanced$isAsciiCode,111,zeroOffset,s.a)?A5($elm$parser$Parser$Advanced$finalizeInt,c.aN,c.aQ,baseOffset,A3($elm$parser$Parser$Advanced$consumeBase,8,baseOffset,s.a),s):A3($elm$parser$Parser$Advanced$isAsciiCode,98,zeroOffset,s.a)?A5($elm$parser$Parser$Advanced$finalizeInt,c.aN,c.ax,baseOffset,A3($elm$parser$Parser$Advanced$consumeBase,2,baseOffset,s.a),s):A6($elm$parser$Parser$Advanced$finalizeFloat,c.aN,c.W,c.aM,c.aG,_Utils_Tuple2(zeroOffset,0),s)}else{return A6($elm$parser$Parser$Advanced$finalizeFloat,c.aN,c.W,c.aM,c.aG,A3($elm$parser$Parser$Advanced$consumeBase,10,s.b,s.a),s)}}};var $elm$parser$Parser$number=function(i){return $elm$parser$Parser$Advanced$number({ax:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingBinary,i.ax),W:$elm$parser$Parser$ExpectingNumber,aG:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingFloat,i.aG),aH:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingHex,i.aH),aM:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingInt,i.aM),aN:$elm$parser$Parser$ExpectingNumber,aQ:A2($elm$core$Result$fromMaybe,$elm$parser$Parser$ExpectingOctal,i.aQ)})};var $author$project$ParserMaths$nombre=A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$ParserMaths$Entier),$elm$parser$Parser$number({ax:$elm$core$Maybe$Nothing,aG:$elm$core$Maybe$Nothing,aH:$elm$core$Maybe$Nothing,aM:$elm$core$Maybe$Just($elm$core$Basics$identity),aQ:$elm$core$Maybe$Nothing}));var $author$project$ParserMaths$addHelper=function(operands){return $elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(function(right){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,A2($author$project$ParserMaths$Operand,2,right),operands))}),$elm$parser$Parser$symbol("+")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v9){return $author$project$ParserMaths$cyclic$mul()})),A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(function(right){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,A2($author$project$ParserMaths$Operand,3,right),operands))}),$elm$parser$Parser$symbol("-")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v10){return $author$project$ParserMaths$cyclic$mul()})),A2($elm$parser$Parser$map,function(_v11){return $elm$parser$Parser$Done(operands)},$elm$parser$Parser$succeed(0))]))};var $author$project$ParserMaths$mulHelper=function(operands){return $elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(function(right){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,A2($author$project$ParserMaths$Operand,0,right),operands))}),$elm$parser$Parser$symbol("*")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v3){return $author$project$ParserMaths$cyclic$exp()})),A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed(function(right){return $elm$parser$Parser$Loop(A2($elm$core$List$cons,A2($author$project$ParserMaths$Operand,1,right),operands))}),$elm$parser$Parser$symbol("/")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v4){return $author$project$ParserMaths$cyclic$exp()})),A2($elm$parser$Parser$map,function(_v5){return $elm$parser$Parser$Done(operands)},$elm$parser$Parser$succeed(0))]))};function $author$project$ParserMaths$cyclic$expr(){return $author$project$ParserMaths$cyclic$add()}function $author$project$ParserMaths$cyclic$add(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$ParserMaths$foldBinary),A2($elm$parser$Parser$ignorer,$author$project$ParserMaths$cyclic$mul(),$elm$parser$Parser$spaces)),A2($elm$parser$Parser$loop,_List_Nil,$author$project$ParserMaths$addHelper))}function $author$project$ParserMaths$cyclic$mul(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$ParserMaths$foldBinary),A2($elm$parser$Parser$ignorer,$author$project$ParserMaths$cyclic$exp(),$elm$parser$Parser$spaces)),A2($elm$parser$Parser$loop,_List_Nil,$author$project$ParserMaths$mulHelper))}function $author$project$ParserMaths$cyclic$exp(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($author$project$ParserMaths$binary),A2($elm$parser$Parser$ignorer,$author$project$ParserMaths$cyclic$primary(),$elm$parser$Parser$spaces)),$elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$ParserMaths$Operand(4)),$elm$parser$Parser$symbol("^")),$elm$parser$Parser$spaces),$elm$parser$Parser$lazy(function(_v8){return $author$project$ParserMaths$cyclic$exp()})),$elm$parser$Parser$succeed($author$project$ParserMaths$NoOperand)])))}function $author$project$ParserMaths$cyclic$primary(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed(F2(function(op,literal){if(op.$===1){return literal}else{return $author$project$ParserMaths$Neg(literal)}})),$elm$parser$Parser$oneOf(_List_fromArray([A2($elm$parser$Parser$keeper,$elm$parser$Parser$succeed($elm$core$Maybe$Just),$elm$parser$Parser$symbol("-")),$elm$parser$Parser$succeed($elm$core$Maybe$Nothing)]))),$elm$parser$Parser$oneOf(_List_fromArray([$author$project$ParserMaths$cyclic$grouping(),$author$project$ParserMaths$cyclic$poly(),$author$project$ParserMaths$nombre])))}function $author$project$ParserMaths$cyclic$grouping(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$ParserMaths$Grouping),$elm$parser$Parser$symbol("(")),$elm$parser$Parser$spaces),A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$lazy(function(_v6){return $author$project$ParserMaths$cyclic$expr()}),$elm$parser$Parser$spaces),$elm$parser$Parser$symbol(")")))}function $author$project$ParserMaths$cyclic$poly(){return A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$keeper,A2($elm$parser$Parser$ignorer,A2($elm$parser$Parser$ignorer,$elm$parser$Parser$succeed($author$project$ParserMaths$Poly),$elm$parser$Parser$keyword("Poly")),$elm$parser$Parser$spaces),A2($elm$parser$Parser$ignorer,$elm$parser$Parser$sequence({aE:"]",aO:$elm$parser$Parser$lazy(function(_v0){return $author$project$ParserMaths$cyclic$expr()}),aX:",",aY:$elm$parser$Parser$spaces,am:"[",a$:0}),$elm$parser$Parser$spaces)),$elm$parser$Parser$variable({aL:function(_v1){return false},aV:$elm$core$Set$fromList(_List_Nil),am:function(_v2){return true}}))}var $author$project$ParserMaths$expr=$author$project$ParserMaths$cyclic$expr();$author$project$ParserMaths$cyclic$expr=function(){return $author$project$ParserMaths$expr};var $author$project$ParserMaths$add=$author$project$ParserMaths$cyclic$add();$author$project$ParserMaths$cyclic$add=function(){return $author$project$ParserMaths$add};var $author$project$ParserMaths$mul=$author$project$ParserMaths$cyclic$mul();$author$project$ParserMaths$cyclic$mul=function(){return $author$project$ParserMaths$mul};var $author$project$ParserMaths$exp=$author$project$ParserMaths$cyclic$exp();$author$project$ParserMaths$cyclic$exp=function(){return $author$project$ParserMaths$exp};var $author$project$ParserMaths$primary=$author$project$ParserMaths$cyclic$primary();$author$project$ParserMaths$cyclic$primary=function(){return $author$project$ParserMaths$primary};var $author$project$ParserMaths$grouping=$author$project$ParserMaths$cyclic$grouping();$author$project$ParserMaths$cyclic$grouping=function(){return $author$project$ParserMaths$grouping};var $author$project$ParserMaths$poly=$author$project$ParserMaths$cyclic$poly();$author$project$ParserMaths$cyclic$poly=function(){return $author$project$ParserMaths$poly};var $author$project$ParserMaths$parseMaths=function(source){return A2($elm$parser$Parser$run,$author$project$ParserMaths$expr,source)};var $author$project$Fractions$teX=function(a){var _v0=a.f;if(_v0===1){return $elm$core$String$fromInt(a.e)}else{return a.e<0?"-\\frac{"+($elm$core$String$fromInt(-a.e)+("}{"+($elm$core$String$fromInt(a.f)+"}"))):"\\frac{"+($elm$core$String$fromInt(a.e)+("}{"+($elm$core$String$fromInt(a.f)+"}")))}};var $author$project$QCM$voirTexteVariable=function(txtvar){if(!txtvar.$){var txt=txtvar.a;return txt}else{var _var=txtvar.a;var expressionParseePotentielle=$author$project$ParserMaths$parseMaths(_var);if(expressionParseePotentielle.$===1){var erreur=expressionParseePotentielle.a;return"L'expression est mal formée."}else{var expressionParsee=expressionParseePotentielle.a;var _v2=A2($elm$core$Maybe$map,$author$project$Fractions$teX,$author$project$ParserMaths$evaluer(expressionParsee));if(!_v2.$){var a=_v2.a;return a}else{return"Les puissances non-entières ne sont pas acceptées."}}}};var $author$project$QCM$voirMacro=function(macro){return $elm$core$String$concat(A2($elm$core$List$map,$author$project$QCM$voirTexteVariable,macro))};var $author$project$QCM$remplacerLesVariablesDansLaMacro=F2(function(ars,macro){return A2($elm$core$List$map,$author$project$QCM$voirMacro,A2($author$project$QCM$remplacerLesVariablesDansLaMacroBis,ars,_List_fromArray([macro])))});var $author$project$QCM$remplacer=F2(function(variables,question){var macro=$author$project$QCM$parserQuestion(question);var ars=A2($elm$core$List$map,$author$project$QCM$parserAremplacer,$elm$core$String$lines(variables));return A2($author$project$QCM$remplacerLesVariablesDansLaMacro,ars,macro)});var $author$project$QCM$update=F2(function(msg,model){switch(msg.$){case 0:var nouvelleQuestion=msg.a;return _Utils_update(model,{G:nouvelleQuestion});case 1:var nouvellesVariables=msg.a;return _Utils_update(model,{L:nouvellesVariables});default:return _Utils_update(model,{M:A2($author$project$QCM$remplacer,model.L,model.G)})}});var $author$project$QCM$GenererQuestion={$:2};var $author$project$QCM$Question=function(a){return{$:0,a:a}};var $author$project$QCM$Variables=function(a){return{$:1,a:a}};var $elm$html$Html$button=_VirtualDom_node("button");var $elm$html$Html$div=_VirtualDom_node("div");var $elm$virtual_dom$VirtualDom$Normal=function(a){return{$:0,a:a}};var $elm$virtual_dom$VirtualDom$on=_VirtualDom_on;var $elm$html$Html$Events$on=F2(function(event,decoder){return A2($elm$virtual_dom$VirtualDom$on,event,$elm$virtual_dom$VirtualDom$Normal(decoder))});var $elm$html$Html$Events$onClick=function(msg){return A2($elm$html$Html$Events$on,"click",$elm$json$Json$Decode$succeed(msg))};var $elm$html$Html$Events$alwaysStop=function(x){return _Utils_Tuple2(x,true)};var $elm$virtual_dom$VirtualDom$MayStopPropagation=function(a){return{$:1,a:a}};var $elm$html$Html$Events$stopPropagationOn=F2(function(event,decoder){return A2($elm$virtual_dom$VirtualDom$on,event,$elm$virtual_dom$VirtualDom$MayStopPropagation(decoder))});var $elm$json$Json$Decode$field=_Json_decodeField;var $elm$json$Json$Decode$at=F2(function(fields,decoder){return A3($elm$core$List$foldr,$elm$json$Json$Decode$field,decoder,fields)});var $elm$json$Json$Decode$string=_Json_decodeString;var $elm$html$Html$Events$targetValue=A2($elm$json$Json$Decode$at,_List_fromArray(["target","value"]),$elm$json$Json$Decode$string);var $elm$html$Html$Events$onInput=function(tagger){return A2($elm$html$Html$Events$stopPropagationOn,"input",A2($elm$json$Json$Decode$map,$elm$html$Html$Events$alwaysStop,A2($elm$json$Json$Decode$map,tagger,$elm$html$Html$Events$targetValue)))};var $elm$html$Html$p=_VirtualDom_node("p");var $elm$json$Json$Encode$string=_Json_wrap;var $elm$html$Html$Attributes$stringProperty=F2(function(key,string){return A2(_VirtualDom_property,key,$elm$json$Json$Encode$string(string))});var $elm$html$Html$Attributes$placeholder=$elm$html$Html$Attributes$stringProperty("placeholder");var $elm$virtual_dom$VirtualDom$text=_VirtualDom_text;var $elm$html$Html$text=$elm$virtual_dom$VirtualDom$text;var $elm$html$Html$textarea=_VirtualDom_node("textarea");var $elm$html$Html$Attributes$value=$elm$html$Html$Attributes$stringProperty("value");var $author$project$QCM$view=function(model){return A2($elm$html$Html$div,_List_Nil,A2($elm$core$List$cons,A2($elm$html$Html$textarea,_List_fromArray([$elm$html$Html$Attributes$placeholder("Liste des variables"),$elm$html$Html$Attributes$value(model.L),$elm$html$Html$Events$onInput($author$project$QCM$Variables)]),_List_Nil),A2($elm$core$List$cons,A2($elm$html$Html$textarea,_List_fromArray([$elm$html$Html$Attributes$placeholder("Format de la question"),$elm$html$Html$Attributes$value(model.G),$elm$html$Html$Events$onInput($author$project$QCM$Question)]),_List_Nil),A2($elm$core$List$cons,A2($elm$html$Html$button,_List_fromArray([$elm$html$Html$Events$onClick($author$project$QCM$GenererQuestion)]),_List_fromArray([$elm$html$Html$text("Générer les questions")])),_List_fromArray([A2($elm$html$Html$p,_List_Nil,A2($elm$core$List$map,function(q){return A2($elm$html$Html$p,_List_Nil,_List_fromArray([$elm$html$Html$text(q)]))},model.M))])))))};var $author$project$QCM$main=$elm$browser$Browser$sandbox({aK:$author$project$QCM$init,a0:$author$project$QCM$update,a1:$author$project$QCM$view});_Platform_export({QCM:{init:$author$project$QCM$main($elm$json$Json$Decode$succeed(0))(0)}})})(this);