░▒▓████████████████████████████████▓▒░ ░▒▓█ ▓▒░ ░▒▓█ ~ S W A M P ~ ▓▒░ ░▒▓█ ▓▒░ ░▒▓████████████████████████████████▓▒░
pplmvsvm
LOCATION:
/datadrive/moodledata/filedir/9c/db
☗ ROOT
↻ REFRESH
✎ CARVE FLESH
EDITING: 9cdb3e8c928944ec262217ff3218399891ad1bc1
/*! For license information please see h5p-game-map.js.LICENSE.txt */ !function(){var e={67:function(e,t,s){var a;e=s.nmd(e),function(){var i=t,r=(e&&e.exports,"object"==typeof s.g&&s.g);r.global!==r&&r.window;var n=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,o=/[\x01-\x7F]/g,l=/[\x01-\t\x0B\f\x0E-\x1F\x7F\x81\x8D\x8F\x90\x9D\xA0-\uFFFF]/g,c=/<\u20D2|=\u20E5|>\u20D2|\u205F\u200A|\u219D\u0338|\u2202\u0338|\u2220\u20D2|\u2229\uFE00|\u222A\uFE00|\u223C\u20D2|\u223D\u0331|\u223E\u0333|\u2242\u0338|\u224B\u0338|\u224D\u20D2|\u224E\u0338|\u224F\u0338|\u2250\u0338|\u2261\u20E5|\u2264\u20D2|\u2265\u20D2|\u2266\u0338|\u2267\u0338|\u2268\uFE00|\u2269\uFE00|\u226A\u0338|\u226A\u20D2|\u226B\u0338|\u226B\u20D2|\u227F\u0338|\u2282\u20D2|\u2283\u20D2|\u228A\uFE00|\u228B\uFE00|\u228F\u0338|\u2290\u0338|\u2293\uFE00|\u2294\uFE00|\u22B4\u20D2|\u22B5\u20D2|\u22D8\u0338|\u22D9\u0338|\u22DA\uFE00|\u22DB\uFE00|\u22F5\u0338|\u22F9\u0338|\u2933\u0338|\u29CF\u0338|\u29D0\u0338|\u2A6D\u0338|\u2A70\u0338|\u2A7D\u0338|\u2A7E\u0338|\u2AA1\u0338|\u2AA2\u0338|\u2AAC\uFE00|\u2AAD\uFE00|\u2AAF\u0338|\u2AB0\u0338|\u2AC5\u0338|\u2AC6\u0338|\u2ACB\uFE00|\u2ACC\uFE00|\u2AFD\u20E5|[\xA0-\u0113\u0116-\u0122\u0124-\u012B\u012E-\u014D\u0150-\u017E\u0192\u01B5\u01F5\u0237\u02C6\u02C7\u02D8-\u02DD\u0311\u0391-\u03A1\u03A3-\u03A9\u03B1-\u03C9\u03D1\u03D2\u03D5\u03D6\u03DC\u03DD\u03F0\u03F1\u03F5\u03F6\u0401-\u040C\u040E-\u044F\u0451-\u045C\u045E\u045F\u2002-\u2005\u2007-\u2010\u2013-\u2016\u2018-\u201A\u201C-\u201E\u2020-\u2022\u2025\u2026\u2030-\u2035\u2039\u203A\u203E\u2041\u2043\u2044\u204F\u2057\u205F-\u2063\u20AC\u20DB\u20DC\u2102\u2105\u210A-\u2113\u2115-\u211E\u2122\u2124\u2127-\u2129\u212C\u212D\u212F-\u2131\u2133-\u2138\u2145-\u2148\u2153-\u215E\u2190-\u219B\u219D-\u21A7\u21A9-\u21AE\u21B0-\u21B3\u21B5-\u21B7\u21BA-\u21DB\u21DD\u21E4\u21E5\u21F5\u21FD-\u2205\u2207-\u2209\u220B\u220C\u220F-\u2214\u2216-\u2218\u221A\u221D-\u2238\u223A-\u2257\u2259\u225A\u225C\u225F-\u2262\u2264-\u228B\u228D-\u229B\u229D-\u22A5\u22A7-\u22B0\u22B2-\u22BB\u22BD-\u22DB\u22DE-\u22E3\u22E6-\u22F7\u22F9-\u22FE\u2305\u2306\u2308-\u2310\u2312\u2313\u2315\u2316\u231C-\u231F\u2322\u2323\u232D\u232E\u2336\u233D\u233F\u237C\u23B0\u23B1\u23B4-\u23B6\u23DC-\u23DF\u23E2\u23E7\u2423\u24C8\u2500\u2502\u250C\u2510\u2514\u2518\u251C\u2524\u252C\u2534\u253C\u2550-\u256C\u2580\u2584\u2588\u2591-\u2593\u25A1\u25AA\u25AB\u25AD\u25AE\u25B1\u25B3-\u25B5\u25B8\u25B9\u25BD-\u25BF\u25C2\u25C3\u25CA\u25CB\u25EC\u25EF\u25F8-\u25FC\u2605\u2606\u260E\u2640\u2642\u2660\u2663\u2665\u2666\u266A\u266D-\u266F\u2713\u2717\u2720\u2736\u2758\u2772\u2773\u27C8\u27C9\u27E6-\u27ED\u27F5-\u27FA\u27FC\u27FF\u2902-\u2905\u290C-\u2913\u2916\u2919-\u2920\u2923-\u292A\u2933\u2935-\u2939\u293C\u293D\u2945\u2948-\u294B\u294E-\u2976\u2978\u2979\u297B-\u297F\u2985\u2986\u298B-\u2996\u299A\u299C\u299D\u29A4-\u29B7\u29B9\u29BB\u29BC\u29BE-\u29C5\u29C9\u29CD-\u29D0\u29DC-\u29DE\u29E3-\u29E5\u29EB\u29F4\u29F6\u2A00-\u2A02\u2A04\u2A06\u2A0C\u2A0D\u2A10-\u2A17\u2A22-\u2A27\u2A29\u2A2A\u2A2D-\u2A31\u2A33-\u2A3C\u2A3F\u2A40\u2A42-\u2A4D\u2A50\u2A53-\u2A58\u2A5A-\u2A5D\u2A5F\u2A66\u2A6A\u2A6D-\u2A75\u2A77-\u2A9A\u2A9D-\u2AA2\u2AA4-\u2AB0\u2AB3-\u2AC8\u2ACB\u2ACC\u2ACF-\u2ADB\u2AE4\u2AE6-\u2AE9\u2AEB-\u2AF3\u2AFD\uFB00-\uFB04]|\uD835[\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDCCF\uDD04\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDD6B]/g,u={"":"shy","":"zwnj","":"zwj","":"lrm","":"ic","":"it","":"af","":"rlm","":"ZeroWidthSpace","":"NoBreak","̑":"DownBreve","⃛":"tdot","⃜":"DotDot","\t":"Tab","\n":"NewLine"," ":"puncsp"," ":"MediumSpace"," ":"thinsp"," ":"hairsp"," ":"emsp13"," ":"ensp"," ":"emsp14"," ":"emsp"," ":"numsp"," ":"nbsp"," ":"ThickSpace","‾":"oline",_:"lowbar","‐":"dash","–":"ndash","—":"mdash","―":"horbar",",":"comma",";":"semi","⁏":"bsemi",":":"colon","⩴":"Colone","!":"excl","¡":"iexcl","?":"quest","¿":"iquest",".":"period","‥":"nldr","…":"mldr","·":"middot","'":"apos","‘":"lsquo","’":"rsquo","‚":"sbquo","‹":"lsaquo","›":"rsaquo",'"':"quot","“":"ldquo","”":"rdquo","„":"bdquo","«":"laquo","»":"raquo","(":"lpar",")":"rpar","[":"lsqb","]":"rsqb","{":"lcub","}":"rcub","⌈":"lceil","⌉":"rceil","⌊":"lfloor","⌋":"rfloor","⦅":"lopar","⦆":"ropar","⦋":"lbrke","⦌":"rbrke","⦍":"lbrkslu","⦎":"rbrksld","⦏":"lbrksld","⦐":"rbrkslu","⦑":"langd","⦒":"rangd","⦓":"lparlt","⦔":"rpargt","⦕":"gtlPar","⦖":"ltrPar","⟦":"lobrk","⟧":"robrk","⟨":"lang","⟩":"rang","⟪":"Lang","⟫":"Rang","⟬":"loang","⟭":"roang","❲":"lbbrk","❳":"rbbrk","‖":"Vert","§":"sect","¶":"para","@":"commat","*":"ast","/":"sol",undefined:null,"&":"amp","#":"num","%":"percnt","‰":"permil","‱":"pertenk","†":"dagger","‡":"Dagger","•":"bull","⁃":"hybull","′":"prime","″":"Prime","‴":"tprime","⁗":"qprime","‵":"bprime","⁁":"caret","`":"grave","´":"acute","˜":"tilde","^":"Hat","¯":"macr","˘":"breve","˙":"dot","¨":"die","˚":"ring","˝":"dblac","¸":"cedil","˛":"ogon","ˆ":"circ","ˇ":"caron","°":"deg","©":"copy","®":"reg","℗":"copysr","℘":"wp","℞":"rx","℧":"mho","℩":"iiota","←":"larr","↚":"nlarr","→":"rarr","↛":"nrarr","↑":"uarr","↓":"darr","↔":"harr","↮":"nharr","↕":"varr","↖":"nwarr","↗":"nearr","↘":"searr","↙":"swarr","↝":"rarrw","↝̸":"nrarrw","↞":"Larr","↟":"Uarr","↠":"Rarr","↡":"Darr","↢":"larrtl","↣":"rarrtl","↤":"mapstoleft","↥":"mapstoup","↦":"map","↧":"mapstodown","↩":"larrhk","↪":"rarrhk","↫":"larrlp","↬":"rarrlp","↭":"harrw","↰":"lsh","↱":"rsh","↲":"ldsh","↳":"rdsh","↵":"crarr","↶":"cularr","↷":"curarr","↺":"olarr","↻":"orarr","↼":"lharu","↽":"lhard","↾":"uharr","↿":"uharl","⇀":"rharu","⇁":"rhard","⇂":"dharr","⇃":"dharl","⇄":"rlarr","⇅":"udarr","⇆":"lrarr","⇇":"llarr","⇈":"uuarr","⇉":"rrarr","⇊":"ddarr","⇋":"lrhar","⇌":"rlhar","⇐":"lArr","⇍":"nlArr","⇑":"uArr","⇒":"rArr","⇏":"nrArr","⇓":"dArr","⇔":"iff","⇎":"nhArr","⇕":"vArr","⇖":"nwArr","⇗":"neArr","⇘":"seArr","⇙":"swArr","⇚":"lAarr","⇛":"rAarr","⇝":"zigrarr","⇤":"larrb","⇥":"rarrb","⇵":"duarr","⇽":"loarr","⇾":"roarr","⇿":"hoarr","∀":"forall","∁":"comp","∂":"part","∂̸":"npart","∃":"exist","∄":"nexist","∅":"empty","∇":"Del","∈":"in","∉":"notin","∋":"ni","∌":"notni","϶":"bepsi","∏":"prod","∐":"coprod","∑":"sum","+":"plus","±":"pm","÷":"div","×":"times","<":"lt","≮":"nlt","<⃒":"nvlt","=":"equals","≠":"ne","=⃥":"bne","⩵":"Equal",">":"gt","≯":"ngt",">⃒":"nvgt","¬":"not","|":"vert","¦":"brvbar","−":"minus","∓":"mp","∔":"plusdo","⁄":"frasl","∖":"setmn","∗":"lowast","∘":"compfn","√":"Sqrt","∝":"prop","∞":"infin","∟":"angrt","∠":"ang","∠⃒":"nang","∡":"angmsd","∢":"angsph","∣":"mid","∤":"nmid","∥":"par","∦":"npar","∧":"and","∨":"or","∩":"cap","∩︀":"caps","∪":"cup","∪︀":"cups","∫":"int","∬":"Int","∭":"tint","⨌":"qint","∮":"oint","∯":"Conint","∰":"Cconint","∱":"cwint","∲":"cwconint","∳":"awconint","∴":"there4","∵":"becaus","∶":"ratio","∷":"Colon","∸":"minusd","∺":"mDDot","∻":"homtht","∼":"sim","≁":"nsim","∼⃒":"nvsim","∽":"bsim","∽̱":"race","∾":"ac","∾̳":"acE","∿":"acd","≀":"wr","≂":"esim","≂̸":"nesim","≃":"sime","≄":"nsime","≅":"cong","≇":"ncong","≆":"simne","≈":"ap","≉":"nap","≊":"ape","≋":"apid","≋̸":"napid","≌":"bcong","≍":"CupCap","≭":"NotCupCap","≍⃒":"nvap","≎":"bump","≎̸":"nbump","≏":"bumpe","≏̸":"nbumpe","≐":"doteq","≐̸":"nedot","≑":"eDot","≒":"efDot","≓":"erDot","≔":"colone","≕":"ecolon","≖":"ecir","≗":"cire","≙":"wedgeq","≚":"veeeq","≜":"trie","≟":"equest","≡":"equiv","≢":"nequiv","≡⃥":"bnequiv","≤":"le","≰":"nle","≤⃒":"nvle","≥":"ge","≱":"nge","≥⃒":"nvge","≦":"lE","≦̸":"nlE","≧":"gE","≧̸":"ngE","≨︀":"lvnE","≨":"lnE","≩":"gnE","≩︀":"gvnE","≪":"ll","≪̸":"nLtv","≪⃒":"nLt","≫":"gg","≫̸":"nGtv","≫⃒":"nGt","≬":"twixt","≲":"lsim","≴":"nlsim","≳":"gsim","≵":"ngsim","≶":"lg","≸":"ntlg","≷":"gl","≹":"ntgl","≺":"pr","⊀":"npr","≻":"sc","⊁":"nsc","≼":"prcue","⋠":"nprcue","≽":"sccue","⋡":"nsccue","≾":"prsim","≿":"scsim","≿̸":"NotSucceedsTilde","⊂":"sub","⊄":"nsub","⊂⃒":"vnsub","⊃":"sup","⊅":"nsup","⊃⃒":"vnsup","⊆":"sube","⊈":"nsube","⊇":"supe","⊉":"nsupe","⊊︀":"vsubne","⊊":"subne","⊋︀":"vsupne","⊋":"supne","⊍":"cupdot","⊎":"uplus","⊏":"sqsub","⊏̸":"NotSquareSubset","⊐":"sqsup","⊐̸":"NotSquareSuperset","⊑":"sqsube","⋢":"nsqsube","⊒":"sqsupe","⋣":"nsqsupe","⊓":"sqcap","⊓︀":"sqcaps","⊔":"sqcup","⊔︀":"sqcups","⊕":"oplus","⊖":"ominus","⊗":"otimes","⊘":"osol","⊙":"odot","⊚":"ocir","⊛":"oast","⊝":"odash","⊞":"plusb","⊟":"minusb","⊠":"timesb","⊡":"sdotb","⊢":"vdash","⊬":"nvdash","⊣":"dashv","⊤":"top","⊥":"bot","⊧":"models","⊨":"vDash","⊭":"nvDash","⊩":"Vdash","⊮":"nVdash","⊪":"Vvdash","⊫":"VDash","⊯":"nVDash","⊰":"prurel","⊲":"vltri","⋪":"nltri","⊳":"vrtri","⋫":"nrtri","⊴":"ltrie","⋬":"nltrie","⊴⃒":"nvltrie","⊵":"rtrie","⋭":"nrtrie","⊵⃒":"nvrtrie","⊶":"origof","⊷":"imof","⊸":"mumap","⊹":"hercon","⊺":"intcal","⊻":"veebar","⊽":"barvee","⊾":"angrtvb","⊿":"lrtri","⋀":"Wedge","⋁":"Vee","⋂":"xcap","⋃":"xcup","⋄":"diam","⋅":"sdot","⋆":"Star","⋇":"divonx","⋈":"bowtie","⋉":"ltimes","⋊":"rtimes","⋋":"lthree","⋌":"rthree","⋍":"bsime","⋎":"cuvee","⋏":"cuwed","⋐":"Sub","⋑":"Sup","⋒":"Cap","⋓":"Cup","⋔":"fork","⋕":"epar","⋖":"ltdot","⋗":"gtdot","⋘":"Ll","⋘̸":"nLl","⋙":"Gg","⋙̸":"nGg","⋚︀":"lesg","⋚":"leg","⋛":"gel","⋛︀":"gesl","⋞":"cuepr","⋟":"cuesc","⋦":"lnsim","⋧":"gnsim","⋨":"prnsim","⋩":"scnsim","⋮":"vellip","⋯":"ctdot","⋰":"utdot","⋱":"dtdot","⋲":"disin","⋳":"isinsv","⋴":"isins","⋵":"isindot","⋵̸":"notindot","⋶":"notinvc","⋷":"notinvb","⋹":"isinE","⋹̸":"notinE","⋺":"nisd","⋻":"xnis","⋼":"nis","⋽":"notnivc","⋾":"notnivb","⌅":"barwed","⌆":"Barwed","⌌":"drcrop","⌍":"dlcrop","⌎":"urcrop","⌏":"ulcrop","⌐":"bnot","⌒":"profline","⌓":"profsurf","⌕":"telrec","⌖":"target","⌜":"ulcorn","⌝":"urcorn","⌞":"dlcorn","⌟":"drcorn","⌢":"frown","⌣":"smile","⌭":"cylcty","⌮":"profalar","⌶":"topbot","⌽":"ovbar","⌿":"solbar","⍼":"angzarr","⎰":"lmoust","⎱":"rmoust","⎴":"tbrk","⎵":"bbrk","⎶":"bbrktbrk","⏜":"OverParenthesis","⏝":"UnderParenthesis","⏞":"OverBrace","⏟":"UnderBrace","⏢":"trpezium","⏧":"elinters","␣":"blank","─":"boxh","│":"boxv","┌":"boxdr","┐":"boxdl","└":"boxur","┘":"boxul","├":"boxvr","┤":"boxvl","┬":"boxhd","┴":"boxhu","┼":"boxvh","═":"boxH","║":"boxV","╒":"boxdR","╓":"boxDr","╔":"boxDR","╕":"boxdL","╖":"boxDl","╗":"boxDL","╘":"boxuR","╙":"boxUr","╚":"boxUR","╛":"boxuL","╜":"boxUl","╝":"boxUL","╞":"boxvR","╟":"boxVr","╠":"boxVR","╡":"boxvL","╢":"boxVl","╣":"boxVL","╤":"boxHd","╥":"boxhD","╦":"boxHD","╧":"boxHu","╨":"boxhU","╩":"boxHU","╪":"boxvH","╫":"boxVh","╬":"boxVH","▀":"uhblk","▄":"lhblk","█":"block","░":"blk14","▒":"blk12","▓":"blk34","□":"squ","▪":"squf","▫":"EmptyVerySmallSquare","▭":"rect","▮":"marker","▱":"fltns","△":"xutri","▴":"utrif","▵":"utri","▸":"rtrif","▹":"rtri","▽":"xdtri","▾":"dtrif","▿":"dtri","◂":"ltrif","◃":"ltri","◊":"loz","○":"cir","◬":"tridot","◯":"xcirc","◸":"ultri","◹":"urtri","◺":"lltri","◻":"EmptySmallSquare","◼":"FilledSmallSquare","★":"starf","☆":"star","☎":"phone","♀":"female","♂":"male","♠":"spades","♣":"clubs","♥":"hearts","♦":"diams","♪":"sung","✓":"check","✗":"cross","✠":"malt","✶":"sext","❘":"VerticalSeparator","⟈":"bsolhsub","⟉":"suphsol","⟵":"xlarr","⟶":"xrarr","⟷":"xharr","⟸":"xlArr","⟹":"xrArr","⟺":"xhArr","⟼":"xmap","⟿":"dzigrarr","⤂":"nvlArr","⤃":"nvrArr","⤄":"nvHarr","⤅":"Map","⤌":"lbarr","⤍":"rbarr","⤎":"lBarr","⤏":"rBarr","⤐":"RBarr","⤑":"DDotrahd","⤒":"UpArrowBar","⤓":"DownArrowBar","⤖":"Rarrtl","⤙":"latail","⤚":"ratail","⤛":"lAtail","⤜":"rAtail","⤝":"larrfs","⤞":"rarrfs","⤟":"larrbfs","⤠":"rarrbfs","⤣":"nwarhk","⤤":"nearhk","⤥":"searhk","⤦":"swarhk","⤧":"nwnear","⤨":"toea","⤩":"tosa","⤪":"swnwar","⤳":"rarrc","⤳̸":"nrarrc","⤵":"cudarrr","⤶":"ldca","⤷":"rdca","⤸":"cudarrl","⤹":"larrpl","⤼":"curarrm","⤽":"cularrp","⥅":"rarrpl","⥈":"harrcir","⥉":"Uarrocir","⥊":"lurdshar","⥋":"ldrushar","⥎":"LeftRightVector","⥏":"RightUpDownVector","⥐":"DownLeftRightVector","⥑":"LeftUpDownVector","⥒":"LeftVectorBar","⥓":"RightVectorBar","⥔":"RightUpVectorBar","⥕":"RightDownVectorBar","⥖":"DownLeftVectorBar","⥗":"DownRightVectorBar","⥘":"LeftUpVectorBar","⥙":"LeftDownVectorBar","⥚":"LeftTeeVector","⥛":"RightTeeVector","⥜":"RightUpTeeVector","⥝":"RightDownTeeVector","⥞":"DownLeftTeeVector","⥟":"DownRightTeeVector","⥠":"LeftUpTeeVector","⥡":"LeftDownTeeVector","⥢":"lHar","⥣":"uHar","⥤":"rHar","⥥":"dHar","⥦":"luruhar","⥧":"ldrdhar","⥨":"ruluhar","⥩":"rdldhar","⥪":"lharul","⥫":"llhard","⥬":"rharul","⥭":"lrhard","⥮":"udhar","⥯":"duhar","⥰":"RoundImplies","⥱":"erarr","⥲":"simrarr","⥳":"larrsim","⥴":"rarrsim","⥵":"rarrap","⥶":"ltlarr","⥸":"gtrarr","⥹":"subrarr","⥻":"suplarr","⥼":"lfisht","⥽":"rfisht","⥾":"ufisht","⥿":"dfisht","⦚":"vzigzag","⦜":"vangrt","⦝":"angrtvbd","⦤":"ange","⦥":"range","⦦":"dwangle","⦧":"uwangle","⦨":"angmsdaa","⦩":"angmsdab","⦪":"angmsdac","⦫":"angmsdad","⦬":"angmsdae","⦭":"angmsdaf","⦮":"angmsdag","⦯":"angmsdah","⦰":"bemptyv","⦱":"demptyv","⦲":"cemptyv","⦳":"raemptyv","⦴":"laemptyv","⦵":"ohbar","⦶":"omid","⦷":"opar","⦹":"operp","⦻":"olcross","⦼":"odsold","⦾":"olcir","⦿":"ofcir","⧀":"olt","⧁":"ogt","⧂":"cirscir","⧃":"cirE","⧄":"solb","⧅":"bsolb","⧉":"boxbox","⧍":"trisb","⧎":"rtriltri","⧏":"LeftTriangleBar","⧏̸":"NotLeftTriangleBar","⧐":"RightTriangleBar","⧐̸":"NotRightTriangleBar","⧜":"iinfin","⧝":"infintie","⧞":"nvinfin","⧣":"eparsl","⧤":"smeparsl","⧥":"eqvparsl","⧫":"lozf","⧴":"RuleDelayed","⧶":"dsol","⨀":"xodot","⨁":"xoplus","⨂":"xotime","⨄":"xuplus","⨆":"xsqcup","⨍":"fpartint","⨐":"cirfnint","⨑":"awint","⨒":"rppolint","⨓":"scpolint","⨔":"npolint","⨕":"pointint","⨖":"quatint","⨗":"intlarhk","⨢":"pluscir","⨣":"plusacir","⨤":"simplus","⨥":"plusdu","⨦":"plussim","⨧":"plustwo","⨩":"mcomma","⨪":"minusdu","⨭":"loplus","⨮":"roplus","⨯":"Cross","⨰":"timesd","⨱":"timesbar","⨳":"smashp","⨴":"lotimes","⨵":"rotimes","⨶":"otimesas","⨷":"Otimes","⨸":"odiv","⨹":"triplus","⨺":"triminus","⨻":"tritime","⨼":"iprod","⨿":"amalg","⩀":"capdot","⩂":"ncup","⩃":"ncap","⩄":"capand","⩅":"cupor","⩆":"cupcap","⩇":"capcup","⩈":"cupbrcap","⩉":"capbrcup","⩊":"cupcup","⩋":"capcap","⩌":"ccups","⩍":"ccaps","⩐":"ccupssm","⩓":"And","⩔":"Or","⩕":"andand","⩖":"oror","⩗":"orslope","⩘":"andslope","⩚":"andv","⩛":"orv","⩜":"andd","⩝":"ord","⩟":"wedbar","⩦":"sdote","⩪":"simdot","⩭":"congdot","⩭̸":"ncongdot","⩮":"easter","⩯":"apacir","⩰":"apE","⩰̸":"napE","⩱":"eplus","⩲":"pluse","⩳":"Esim","⩷":"eDDot","⩸":"equivDD","⩹":"ltcir","⩺":"gtcir","⩻":"ltquest","⩼":"gtquest","⩽":"les","⩽̸":"nles","⩾":"ges","⩾̸":"nges","⩿":"lesdot","⪀":"gesdot","⪁":"lesdoto","⪂":"gesdoto","⪃":"lesdotor","⪄":"gesdotol","⪅":"lap","⪆":"gap","⪇":"lne","⪈":"gne","⪉":"lnap","⪊":"gnap","⪋":"lEg","⪌":"gEl","⪍":"lsime","⪎":"gsime","⪏":"lsimg","⪐":"gsiml","⪑":"lgE","⪒":"glE","⪓":"lesges","⪔":"gesles","⪕":"els","⪖":"egs","⪗":"elsdot","⪘":"egsdot","⪙":"el","⪚":"eg","⪝":"siml","⪞":"simg","⪟":"simlE","⪠":"simgE","⪡":"LessLess","⪡̸":"NotNestedLessLess","⪢":"GreaterGreater","⪢̸":"NotNestedGreaterGreater","⪤":"glj","⪥":"gla","⪦":"ltcc","⪧":"gtcc","⪨":"lescc","⪩":"gescc","⪪":"smt","⪫":"lat","⪬":"smte","⪬︀":"smtes","⪭":"late","⪭︀":"lates","⪮":"bumpE","⪯":"pre","⪯̸":"npre","⪰":"sce","⪰̸":"nsce","⪳":"prE","⪴":"scE","⪵":"prnE","⪶":"scnE","⪷":"prap","⪸":"scap","⪹":"prnap","⪺":"scnap","⪻":"Pr","⪼":"Sc","⪽":"subdot","⪾":"supdot","⪿":"subplus","⫀":"supplus","⫁":"submult","⫂":"supmult","⫃":"subedot","⫄":"supedot","⫅":"subE","⫅̸":"nsubE","⫆":"supE","⫆̸":"nsupE","⫇":"subsim","⫈":"supsim","⫋︀":"vsubnE","⫋":"subnE","⫌︀":"vsupnE","⫌":"supnE","⫏":"csub","⫐":"csup","⫑":"csube","⫒":"csupe","⫓":"subsup","⫔":"supsub","⫕":"subsub","⫖":"supsup","⫗":"suphsub","⫘":"supdsub","⫙":"forkv","⫚":"topfork","⫛":"mlcp","⫤":"Dashv","⫦":"Vdashl","⫧":"Barv","⫨":"vBar","⫩":"vBarv","⫫":"Vbar","⫬":"Not","⫭":"bNot","⫮":"rnmid","⫯":"cirmid","⫰":"midcir","⫱":"topcir","⫲":"nhpar","⫳":"parsim","⫽":"parsl","⫽⃥":"nparsl","♭":"flat","♮":"natur","♯":"sharp","¤":"curren","¢":"cent",$:"dollar","£":"pound","¥":"yen","€":"euro","¹":"sup1","½":"half","⅓":"frac13","¼":"frac14","⅕":"frac15","⅙":"frac16","⅛":"frac18","²":"sup2","⅔":"frac23","⅖":"frac25","³":"sup3","¾":"frac34","⅗":"frac35","⅜":"frac38","⅘":"frac45","⅚":"frac56","⅝":"frac58","⅞":"frac78","𝒶":"ascr","𝕒":"aopf","𝔞":"afr","𝔸":"Aopf","𝔄":"Afr","𝒜":"Ascr","ª":"ordf","á":"aacute","Á":"Aacute","à":"agrave","À":"Agrave","ă":"abreve","Ă":"Abreve","â":"acirc","Â":"Acirc","å":"aring","Å":"angst","ä":"auml","Ä":"Auml","ã":"atilde","Ã":"Atilde","ą":"aogon","Ą":"Aogon","ā":"amacr","Ā":"Amacr","æ":"aelig","Æ":"AElig","𝒷":"bscr","𝕓":"bopf","𝔟":"bfr","𝔹":"Bopf","ℬ":"Bscr","𝔅":"Bfr","𝔠":"cfr","𝒸":"cscr","𝕔":"copf","ℭ":"Cfr","𝒞":"Cscr","ℂ":"Copf","ć":"cacute","Ć":"Cacute","ĉ":"ccirc","Ĉ":"Ccirc","č":"ccaron","Č":"Ccaron","ċ":"cdot","Ċ":"Cdot","ç":"ccedil","Ç":"Ccedil","℅":"incare","𝔡":"dfr","ⅆ":"dd","𝕕":"dopf","𝒹":"dscr","𝒟":"Dscr","𝔇":"Dfr","ⅅ":"DD","𝔻":"Dopf","ď":"dcaron","Ď":"Dcaron","đ":"dstrok","Đ":"Dstrok","ð":"eth","Ð":"ETH","ⅇ":"ee","ℯ":"escr","𝔢":"efr","𝕖":"eopf","ℰ":"Escr","𝔈":"Efr","𝔼":"Eopf","é":"eacute","É":"Eacute","è":"egrave","È":"Egrave","ê":"ecirc","Ê":"Ecirc","ě":"ecaron","Ě":"Ecaron","ë":"euml","Ë":"Euml","ė":"edot","Ė":"Edot","ę":"eogon","Ę":"Eogon","ē":"emacr","Ē":"Emacr","𝔣":"ffr","𝕗":"fopf","𝒻":"fscr","𝔉":"Ffr","𝔽":"Fopf","ℱ":"Fscr","ff":"fflig","ffi":"ffilig","ffl":"ffllig","fi":"filig",fj:"fjlig","fl":"fllig","ƒ":"fnof","ℊ":"gscr","𝕘":"gopf","𝔤":"gfr","𝒢":"Gscr","𝔾":"Gopf","𝔊":"Gfr","ǵ":"gacute","ğ":"gbreve","Ğ":"Gbreve","ĝ":"gcirc","Ĝ":"Gcirc","ġ":"gdot","Ġ":"Gdot","Ģ":"Gcedil","𝔥":"hfr","ℎ":"planckh","𝒽":"hscr","𝕙":"hopf","ℋ":"Hscr","ℌ":"Hfr","ℍ":"Hopf","ĥ":"hcirc","Ĥ":"Hcirc","ℏ":"hbar","ħ":"hstrok","Ħ":"Hstrok","𝕚":"iopf","𝔦":"ifr","𝒾":"iscr","ⅈ":"ii","𝕀":"Iopf","ℐ":"Iscr","ℑ":"Im","í":"iacute","Í":"Iacute","ì":"igrave","Ì":"Igrave","î":"icirc","Î":"Icirc","ï":"iuml","Ï":"Iuml","ĩ":"itilde","Ĩ":"Itilde","İ":"Idot","į":"iogon","Į":"Iogon","ī":"imacr","Ī":"Imacr","ij":"ijlig","IJ":"IJlig","ı":"imath","𝒿":"jscr","𝕛":"jopf","𝔧":"jfr","𝒥":"Jscr","𝔍":"Jfr","𝕁":"Jopf","ĵ":"jcirc","Ĵ":"Jcirc","ȷ":"jmath","𝕜":"kopf","𝓀":"kscr","𝔨":"kfr","𝒦":"Kscr","𝕂":"Kopf","𝔎":"Kfr","ķ":"kcedil","Ķ":"Kcedil","𝔩":"lfr","𝓁":"lscr","ℓ":"ell","𝕝":"lopf","ℒ":"Lscr","𝔏":"Lfr","𝕃":"Lopf","ĺ":"lacute","Ĺ":"Lacute","ľ":"lcaron","Ľ":"Lcaron","ļ":"lcedil","Ļ":"Lcedil","ł":"lstrok","Ł":"Lstrok","ŀ":"lmidot","Ŀ":"Lmidot","𝔪":"mfr","𝕞":"mopf","𝓂":"mscr","𝔐":"Mfr","𝕄":"Mopf","ℳ":"Mscr","𝔫":"nfr","𝕟":"nopf","𝓃":"nscr","ℕ":"Nopf","𝒩":"Nscr","𝔑":"Nfr","ń":"nacute","Ń":"Nacute","ň":"ncaron","Ň":"Ncaron","ñ":"ntilde","Ñ":"Ntilde","ņ":"ncedil","Ņ":"Ncedil","№":"numero","ŋ":"eng","Ŋ":"ENG","𝕠":"oopf","𝔬":"ofr","ℴ":"oscr","𝒪":"Oscr","𝔒":"Ofr","𝕆":"Oopf","º":"ordm","ó":"oacute","Ó":"Oacute","ò":"ograve","Ò":"Ograve","ô":"ocirc","Ô":"Ocirc","ö":"ouml","Ö":"Ouml","ő":"odblac","Ő":"Odblac","õ":"otilde","Õ":"Otilde","ø":"oslash","Ø":"Oslash","ō":"omacr","Ō":"Omacr","œ":"oelig","Œ":"OElig","𝔭":"pfr","𝓅":"pscr","𝕡":"popf","ℙ":"Popf","𝔓":"Pfr","𝒫":"Pscr","𝕢":"qopf","𝔮":"qfr","𝓆":"qscr","𝒬":"Qscr","𝔔":"Qfr","ℚ":"Qopf","ĸ":"kgreen","𝔯":"rfr","𝕣":"ropf","𝓇":"rscr","ℛ":"Rscr","ℜ":"Re","ℝ":"Ropf","ŕ":"racute","Ŕ":"Racute","ř":"rcaron","Ř":"Rcaron","ŗ":"rcedil","Ŗ":"Rcedil","𝕤":"sopf","𝓈":"sscr","𝔰":"sfr","𝕊":"Sopf","𝔖":"Sfr","𝒮":"Sscr","Ⓢ":"oS","ś":"sacute","Ś":"Sacute","ŝ":"scirc","Ŝ":"Scirc","š":"scaron","Š":"Scaron","ş":"scedil","Ş":"Scedil","ß":"szlig","𝔱":"tfr","𝓉":"tscr","𝕥":"topf","𝒯":"Tscr","𝔗":"Tfr","𝕋":"Topf","ť":"tcaron","Ť":"Tcaron","ţ":"tcedil","Ţ":"Tcedil","™":"trade","ŧ":"tstrok","Ŧ":"Tstrok","𝓊":"uscr","𝕦":"uopf","𝔲":"ufr","𝕌":"Uopf","𝔘":"Ufr","𝒰":"Uscr","ú":"uacute","Ú":"Uacute","ù":"ugrave","Ù":"Ugrave","ŭ":"ubreve","Ŭ":"Ubreve","û":"ucirc","Û":"Ucirc","ů":"uring","Ů":"Uring","ü":"uuml","Ü":"Uuml","ű":"udblac","Ű":"Udblac","ũ":"utilde","Ũ":"Utilde","ų":"uogon","Ų":"Uogon","ū":"umacr","Ū":"Umacr","𝔳":"vfr","𝕧":"vopf","𝓋":"vscr","𝔙":"Vfr","𝕍":"Vopf","𝒱":"Vscr","𝕨":"wopf","𝓌":"wscr","𝔴":"wfr","𝒲":"Wscr","𝕎":"Wopf","𝔚":"Wfr","ŵ":"wcirc","Ŵ":"Wcirc","𝔵":"xfr","𝓍":"xscr","𝕩":"xopf","𝕏":"Xopf","𝔛":"Xfr","𝒳":"Xscr","𝔶":"yfr","𝓎":"yscr","𝕪":"yopf","𝒴":"Yscr","𝔜":"Yfr","𝕐":"Yopf","ý":"yacute","Ý":"Yacute","ŷ":"ycirc","Ŷ":"Ycirc","ÿ":"yuml","Ÿ":"Yuml","𝓏":"zscr","𝔷":"zfr","𝕫":"zopf","ℨ":"Zfr","ℤ":"Zopf","𝒵":"Zscr","ź":"zacute","Ź":"Zacute","ž":"zcaron","Ž":"Zcaron","ż":"zdot","Ż":"Zdot","Ƶ":"imped","þ":"thorn","Þ":"THORN","ʼn":"napos","α":"alpha","Α":"Alpha","β":"beta","Β":"Beta","γ":"gamma","Γ":"Gamma","δ":"delta","Δ":"Delta","ε":"epsi","ϵ":"epsiv","Ε":"Epsilon","ϝ":"gammad","Ϝ":"Gammad","ζ":"zeta","Ζ":"Zeta","η":"eta","Η":"Eta","θ":"theta","ϑ":"thetav","Θ":"Theta","ι":"iota","Ι":"Iota","κ":"kappa","ϰ":"kappav","Κ":"Kappa","λ":"lambda","Λ":"Lambda","μ":"mu","µ":"micro","Μ":"Mu","ν":"nu","Ν":"Nu","ξ":"xi","Ξ":"Xi","ο":"omicron","Ο":"Omicron","π":"pi","ϖ":"piv","Π":"Pi","ρ":"rho","ϱ":"rhov","Ρ":"Rho","σ":"sigma","Σ":"Sigma","ς":"sigmaf","τ":"tau","Τ":"Tau","υ":"upsi","Υ":"Upsilon","ϒ":"Upsi","φ":"phi","ϕ":"phiv","Φ":"Phi","χ":"chi","Χ":"Chi","ψ":"psi","Ψ":"Psi","ω":"omega","Ω":"ohm","а":"acy","А":"Acy","б":"bcy","Б":"Bcy","в":"vcy","В":"Vcy","г":"gcy","Г":"Gcy","ѓ":"gjcy","Ѓ":"GJcy","д":"dcy","Д":"Dcy","ђ":"djcy","Ђ":"DJcy","е":"iecy","Е":"IEcy","ё":"iocy","Ё":"IOcy","є":"jukcy","Є":"Jukcy","ж":"zhcy","Ж":"ZHcy","з":"zcy","З":"Zcy","ѕ":"dscy","Ѕ":"DScy","и":"icy","И":"Icy","і":"iukcy","І":"Iukcy","ї":"yicy","Ї":"YIcy","й":"jcy","Й":"Jcy","ј":"jsercy","Ј":"Jsercy","к":"kcy","К":"Kcy","ќ":"kjcy","Ќ":"KJcy","л":"lcy","Л":"Lcy","љ":"ljcy","Љ":"LJcy","м":"mcy","М":"Mcy","н":"ncy","Н":"Ncy","њ":"njcy","Њ":"NJcy","о":"ocy","О":"Ocy","п":"pcy","П":"Pcy","р":"rcy","Р":"Rcy","с":"scy","С":"Scy","т":"tcy","Т":"Tcy","ћ":"tshcy","Ћ":"TSHcy","у":"ucy","У":"Ucy","ў":"ubrcy","Ў":"Ubrcy","ф":"fcy","Ф":"Fcy","х":"khcy","Х":"KHcy","ц":"tscy","Ц":"TScy","ч":"chcy","Ч":"CHcy","џ":"dzcy","Џ":"DZcy","ш":"shcy","Ш":"SHcy","щ":"shchcy","Щ":"SHCHcy","ъ":"hardcy","Ъ":"HARDcy","ы":"ycy","Ы":"Ycy","ь":"softcy","Ь":"SOFTcy","э":"ecy","Э":"Ecy","ю":"yucy","Ю":"YUcy","я":"yacy","Я":"YAcy","ℵ":"aleph","ℶ":"beth","ℷ":"gimel","ℸ":"daleth"},h=/["&'<>`]/g,d={'"':""","&":"&","'":"'","<":"<",">":">","`":"`"},p=/&#(?:[xX][^a-fA-F0-9]|[^0-9xX])/,m=/[\0-\x08\x0B\x0E-\x1F\x7F-\x9F\uFDD0-\uFDEF\uFFFE\uFFFF]|[\uD83F\uD87F\uD8BF\uD8FF\uD93F\uD97F\uD9BF\uD9FF\uDA3F\uDA7F\uDABF\uDAFF\uDB3F\uDB7F\uDBBF\uDBFF][\uDFFE\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,g=/&(CounterClockwiseContourIntegral|DoubleLongLeftRightArrow|ClockwiseContourIntegral|NotNestedGreaterGreater|NotSquareSupersetEqual|DiacriticalDoubleAcute|NotRightTriangleEqual|NotSucceedsSlantEqual|NotPrecedesSlantEqual|CloseCurlyDoubleQuote|NegativeVeryThinSpace|DoubleContourIntegral|FilledVerySmallSquare|CapitalDifferentialD|OpenCurlyDoubleQuote|EmptyVerySmallSquare|NestedGreaterGreater|DoubleLongRightArrow|NotLeftTriangleEqual|NotGreaterSlantEqual|ReverseUpEquilibrium|DoubleLeftRightArrow|NotSquareSubsetEqual|NotDoubleVerticalBar|RightArrowLeftArrow|NotGreaterFullEqual|NotRightTriangleBar|SquareSupersetEqual|DownLeftRightVector|DoubleLongLeftArrow|leftrightsquigarrow|LeftArrowRightArrow|NegativeMediumSpace|blacktriangleright|RightDownVectorBar|PrecedesSlantEqual|RightDoubleBracket|SucceedsSlantEqual|NotLeftTriangleBar|RightTriangleEqual|SquareIntersection|RightDownTeeVector|ReverseEquilibrium|NegativeThickSpace|longleftrightarrow|Longleftrightarrow|LongLeftRightArrow|DownRightTeeVector|DownRightVectorBar|GreaterSlantEqual|SquareSubsetEqual|LeftDownVectorBar|LeftDoubleBracket|VerticalSeparator|rightleftharpoons|NotGreaterGreater|NotSquareSuperset|blacktriangleleft|blacktriangledown|NegativeThinSpace|LeftDownTeeVector|NotLessSlantEqual|leftrightharpoons|DoubleUpDownArrow|DoubleVerticalBar|LeftTriangleEqual|FilledSmallSquare|twoheadrightarrow|NotNestedLessLess|DownLeftTeeVector|DownLeftVectorBar|RightAngleBracket|NotTildeFullEqual|NotReverseElement|RightUpDownVector|DiacriticalTilde|NotSucceedsTilde|circlearrowright|NotPrecedesEqual|rightharpoondown|DoubleRightArrow|NotSucceedsEqual|NonBreakingSpace|NotRightTriangle|LessEqualGreater|RightUpTeeVector|LeftAngleBracket|GreaterFullEqual|DownArrowUpArrow|RightUpVectorBar|twoheadleftarrow|GreaterEqualLess|downharpoonright|RightTriangleBar|ntrianglerighteq|NotSupersetEqual|LeftUpDownVector|DiacriticalAcute|rightrightarrows|vartriangleright|UpArrowDownArrow|DiacriticalGrave|UnderParenthesis|EmptySmallSquare|LeftUpVectorBar|leftrightarrows|DownRightVector|downharpoonleft|trianglerighteq|ShortRightArrow|OverParenthesis|DoubleLeftArrow|DoubleDownArrow|NotSquareSubset|bigtriangledown|ntrianglelefteq|UpperRightArrow|curvearrowright|vartriangleleft|NotLeftTriangle|nleftrightarrow|LowerRightArrow|NotHumpDownHump|NotGreaterTilde|rightthreetimes|LeftUpTeeVector|NotGreaterEqual|straightepsilon|LeftTriangleBar|rightsquigarrow|ContourIntegral|rightleftarrows|CloseCurlyQuote|RightDownVector|LeftRightVector|nLeftrightarrow|leftharpoondown|circlearrowleft|SquareSuperset|OpenCurlyQuote|hookrightarrow|HorizontalLine|DiacriticalDot|NotLessGreater|ntriangleright|DoubleRightTee|InvisibleComma|InvisibleTimes|LowerLeftArrow|DownLeftVector|NotSubsetEqual|curvearrowleft|trianglelefteq|NotVerticalBar|TildeFullEqual|downdownarrows|NotGreaterLess|RightTeeVector|ZeroWidthSpace|looparrowright|LongRightArrow|doublebarwedge|ShortLeftArrow|ShortDownArrow|RightVectorBar|GreaterGreater|ReverseElement|rightharpoonup|LessSlantEqual|leftthreetimes|upharpoonright|rightarrowtail|LeftDownVector|Longrightarrow|NestedLessLess|UpperLeftArrow|nshortparallel|leftleftarrows|leftrightarrow|Leftrightarrow|LeftRightArrow|longrightarrow|upharpoonleft|RightArrowBar|ApplyFunction|LeftTeeVector|leftarrowtail|NotEqualTilde|varsubsetneqq|varsupsetneqq|RightTeeArrow|SucceedsEqual|SucceedsTilde|LeftVectorBar|SupersetEqual|hookleftarrow|DifferentialD|VerticalTilde|VeryThinSpace|blacktriangle|bigtriangleup|LessFullEqual|divideontimes|leftharpoonup|UpEquilibrium|ntriangleleft|RightTriangle|measuredangle|shortparallel|longleftarrow|Longleftarrow|LongLeftArrow|DoubleLeftTee|Poincareplane|PrecedesEqual|triangleright|DoubleUpArrow|RightUpVector|fallingdotseq|looparrowleft|PrecedesTilde|NotTildeEqual|NotTildeTilde|smallsetminus|Proportional|triangleleft|triangledown|UnderBracket|NotHumpEqual|exponentiale|ExponentialE|NotLessTilde|HilbertSpace|RightCeiling|blacklozenge|varsupsetneq|HumpDownHump|GreaterEqual|VerticalLine|LeftTeeArrow|NotLessEqual|DownTeeArrow|LeftTriangle|varsubsetneq|Intersection|NotCongruent|DownArrowBar|LeftUpVector|LeftArrowBar|risingdotseq|GreaterTilde|RoundImplies|SquareSubset|ShortUpArrow|NotSuperset|quaternions|precnapprox|backepsilon|preccurlyeq|OverBracket|blacksquare|MediumSpace|VerticalBar|circledcirc|circleddash|CircleMinus|CircleTimes|LessGreater|curlyeqprec|curlyeqsucc|diamondsuit|UpDownArrow|Updownarrow|RuleDelayed|Rrightarrow|updownarrow|RightVector|nRightarrow|nrightarrow|eqslantless|LeftCeiling|Equilibrium|SmallCircle|expectation|NotSucceeds|thickapprox|GreaterLess|SquareUnion|NotPrecedes|NotLessLess|straightphi|succnapprox|succcurlyeq|SubsetEqual|sqsupseteq|Proportion|Laplacetrf|ImaginaryI|supsetneqq|NotGreater|gtreqqless|NotElement|ThickSpace|TildeEqual|TildeTilde|Fouriertrf|rmoustache|EqualTilde|eqslantgtr|UnderBrace|LeftVector|UpArrowBar|nLeftarrow|nsubseteqq|subsetneqq|nsupseteqq|nleftarrow|succapprox|lessapprox|UpTeeArrow|upuparrows|curlywedge|lesseqqgtr|varepsilon|varnothing|RightFloor|complement|CirclePlus|sqsubseteq|Lleftarrow|circledast|RightArrow|Rightarrow|rightarrow|lmoustache|Bernoullis|precapprox|mapstoleft|mapstodown|longmapsto|dotsquare|downarrow|DoubleDot|nsubseteq|supsetneq|leftarrow|nsupseteq|subsetneq|ThinSpace|ngeqslant|subseteqq|HumpEqual|NotSubset|triangleq|NotCupCap|lesseqgtr|heartsuit|TripleDot|Leftarrow|Coproduct|Congruent|varpropto|complexes|gvertneqq|LeftArrow|LessTilde|supseteqq|MinusPlus|CircleDot|nleqslant|NotExists|gtreqless|nparallel|UnionPlus|LeftFloor|checkmark|CenterDot|centerdot|Mellintrf|gtrapprox|bigotimes|OverBrace|spadesuit|therefore|pitchfork|rationals|PlusMinus|Backslash|Therefore|DownBreve|backsimeq|backprime|DownArrow|nshortmid|Downarrow|lvertneqq|eqvparsl|imagline|imagpart|infintie|integers|Integral|intercal|LessLess|Uarrocir|intlarhk|sqsupset|angmsdaf|sqsubset|llcorner|vartheta|cupbrcap|lnapprox|Superset|SuchThat|succnsim|succneqq|angmsdag|biguplus|curlyvee|trpezium|Succeeds|NotTilde|bigwedge|angmsdah|angrtvbd|triminus|cwconint|fpartint|lrcorner|smeparsl|subseteq|urcorner|lurdshar|laemptyv|DDotrahd|approxeq|ldrushar|awconint|mapstoup|backcong|shortmid|triangle|geqslant|gesdotol|timesbar|circledR|circledS|setminus|multimap|naturals|scpolint|ncongdot|RightTee|boxminus|gnapprox|boxtimes|andslope|thicksim|angmsdaa|varsigma|cirfnint|rtriltri|angmsdab|rppolint|angmsdac|barwedge|drbkarow|clubsuit|thetasym|bsolhsub|capbrcup|dzigrarr|doteqdot|DotEqual|dotminus|UnderBar|NotEqual|realpart|otimesas|ulcorner|hksearow|hkswarow|parallel|PartialD|elinters|emptyset|plusacir|bbrktbrk|angmsdad|pointint|bigoplus|angmsdae|Precedes|bigsqcup|varkappa|notindot|supseteq|precneqq|precnsim|profalar|profline|profsurf|leqslant|lesdotor|raemptyv|subplus|notnivb|notnivc|subrarr|zigrarr|vzigzag|submult|subedot|Element|between|cirscir|larrbfs|larrsim|lotimes|lbrksld|lbrkslu|lozenge|ldrdhar|dbkarow|bigcirc|epsilon|simrarr|simplus|ltquest|Epsilon|luruhar|gtquest|maltese|npolint|eqcolon|npreceq|bigodot|ddagger|gtrless|bnequiv|harrcir|ddotseq|equivDD|backsim|demptyv|nsqsube|nsqsupe|Upsilon|nsubset|upsilon|minusdu|nsucceq|swarrow|nsupset|coloneq|searrow|boxplus|napprox|natural|asympeq|alefsym|congdot|nearrow|bigstar|diamond|supplus|tritime|LeftTee|nvinfin|triplus|NewLine|nvltrie|nvrtrie|nwarrow|nexists|Diamond|ruluhar|Implies|supmult|angzarr|suplarr|suphsub|questeq|because|digamma|Because|olcross|bemptyv|omicron|Omicron|rotimes|NoBreak|intprod|angrtvb|orderof|uwangle|suphsol|lesdoto|orslope|DownTee|realine|cudarrl|rdldhar|OverBar|supedot|lessdot|supdsub|topfork|succsim|rbrkslu|rbrksld|pertenk|cudarrr|isindot|planckh|lessgtr|pluscir|gesdoto|plussim|plustwo|lesssim|cularrp|rarrsim|Cayleys|notinva|notinvb|notinvc|UpArrow|Uparrow|uparrow|NotLess|dwangle|precsim|Product|curarrm|Cconint|dotplus|rarrbfs|ccupssm|Cedilla|cemptyv|notniva|quatint|frac35|frac38|frac45|frac56|frac58|frac78|tridot|xoplus|gacute|gammad|Gammad|lfisht|lfloor|bigcup|sqsupe|gbreve|Gbreve|lharul|sqsube|sqcups|Gcedil|apacir|llhard|lmidot|Lmidot|lmoust|andand|sqcaps|approx|Abreve|spades|circeq|tprime|divide|topcir|Assign|topbot|gesdot|divonx|xuplus|timesd|gesles|atilde|solbar|SOFTcy|loplus|timesb|lowast|lowbar|dlcorn|dlcrop|softcy|dollar|lparlt|thksim|lrhard|Atilde|lsaquo|smashp|bigvee|thinsp|wreath|bkarow|lsquor|lstrok|Lstrok|lthree|ltimes|ltlarr|DotDot|simdot|ltrPar|weierp|xsqcup|angmsd|sigmav|sigmaf|zeetrf|Zcaron|zcaron|mapsto|vsupne|thetav|cirmid|marker|mcomma|Zacute|vsubnE|there4|gtlPar|vsubne|bottom|gtrarr|SHCHcy|shchcy|midast|midcir|middot|minusb|minusd|gtrdot|bowtie|sfrown|mnplus|models|colone|seswar|Colone|mstpos|searhk|gtrsim|nacute|Nacute|boxbox|telrec|hairsp|Tcedil|nbumpe|scnsim|ncaron|Ncaron|ncedil|Ncedil|hamilt|Scedil|nearhk|hardcy|HARDcy|tcedil|Tcaron|commat|nequiv|nesear|tcaron|target|hearts|nexist|varrho|scedil|Scaron|scaron|hellip|Sacute|sacute|hercon|swnwar|compfn|rtimes|rthree|rsquor|rsaquo|zacute|wedgeq|homtht|barvee|barwed|Barwed|rpargt|horbar|conint|swarhk|roplus|nltrie|hslash|hstrok|Hstrok|rmoust|Conint|bprime|hybull|hyphen|iacute|Iacute|supsup|supsub|supsim|varphi|coprod|brvbar|agrave|Supset|supset|igrave|Igrave|notinE|Agrave|iiiint|iinfin|copysr|wedbar|Verbar|vangrt|becaus|incare|verbar|inodot|bullet|drcorn|intcal|drcrop|cularr|vellip|Utilde|bumpeq|cupcap|dstrok|Dstrok|CupCap|cupcup|cupdot|eacute|Eacute|supdot|iquest|easter|ecaron|Ecaron|ecolon|isinsv|utilde|itilde|Itilde|curarr|succeq|Bumpeq|cacute|ulcrop|nparsl|Cacute|nprcue|egrave|Egrave|nrarrc|nrarrw|subsup|subsub|nrtrie|jsercy|nsccue|Jsercy|kappav|kcedil|Kcedil|subsim|ulcorn|nsimeq|egsdot|veebar|kgreen|capand|elsdot|Subset|subset|curren|aacute|lacute|Lacute|emptyv|ntilde|Ntilde|lagran|lambda|Lambda|capcap|Ugrave|langle|subdot|emsp13|numero|emsp14|nvdash|nvDash|nVdash|nVDash|ugrave|ufisht|nvHarr|larrfs|nvlArr|larrhk|larrlp|larrpl|nvrArr|Udblac|nwarhk|larrtl|nwnear|oacute|Oacute|latail|lAtail|sstarf|lbrace|odblac|Odblac|lbrack|udblac|odsold|eparsl|lcaron|Lcaron|ograve|Ograve|lcedil|Lcedil|Aacute|ssmile|ssetmn|squarf|ldquor|capcup|ominus|cylcty|rharul|eqcirc|dagger|rfloor|rfisht|Dagger|daleth|equals|origof|capdot|equest|dcaron|Dcaron|rdquor|oslash|Oslash|otilde|Otilde|otimes|Otimes|urcrop|Ubreve|ubreve|Yacute|Uacute|uacute|Rcedil|rcedil|urcorn|parsim|Rcaron|Vdashl|rcaron|Tstrok|percnt|period|permil|Exists|yacute|rbrack|rbrace|phmmat|ccaron|Ccaron|planck|ccedil|plankv|tstrok|female|plusdo|plusdu|ffilig|plusmn|ffllig|Ccedil|rAtail|dfisht|bernou|ratail|Rarrtl|rarrtl|angsph|rarrpl|rarrlp|rarrhk|xwedge|xotime|forall|ForAll|Vvdash|vsupnE|preceq|bigcap|frac12|frac13|frac14|primes|rarrfs|prnsim|frac15|Square|frac16|square|lesdot|frac18|frac23|propto|prurel|rarrap|rangle|puncsp|frac25|Racute|qprime|racute|lesges|frac34|abreve|AElig|eqsim|utdot|setmn|urtri|Equal|Uring|seArr|uring|searr|dashv|Dashv|mumap|nabla|iogon|Iogon|sdote|sdotb|scsim|napid|napos|equiv|natur|Acirc|dblac|erarr|nbump|iprod|erDot|ucirc|awint|esdot|angrt|ncong|isinE|scnap|Scirc|scirc|ndash|isins|Ubrcy|nearr|neArr|isinv|nedot|ubrcy|acute|Ycirc|iukcy|Iukcy|xutri|nesim|caret|jcirc|Jcirc|caron|twixt|ddarr|sccue|exist|jmath|sbquo|ngeqq|angst|ccaps|lceil|ngsim|UpTee|delta|Delta|rtrif|nharr|nhArr|nhpar|rtrie|jukcy|Jukcy|kappa|rsquo|Kappa|nlarr|nlArr|TSHcy|rrarr|aogon|Aogon|fflig|xrarr|tshcy|ccirc|nleqq|filig|upsih|nless|dharl|nlsim|fjlig|ropar|nltri|dharr|robrk|roarr|fllig|fltns|roang|rnmid|subnE|subne|lAarr|trisb|Ccirc|acirc|ccups|blank|VDash|forkv|Vdash|langd|cedil|blk12|blk14|laquo|strns|diams|notin|vDash|larrb|blk34|block|disin|uplus|vdash|vBarv|aelig|starf|Wedge|check|xrArr|lates|lbarr|lBarr|notni|lbbrk|bcong|frasl|lbrke|frown|vrtri|vprop|vnsup|gamma|Gamma|wedge|xodot|bdquo|srarr|doteq|ldquo|boxdl|boxdL|gcirc|Gcirc|boxDl|boxDL|boxdr|boxdR|boxDr|TRADE|trade|rlhar|boxDR|vnsub|npart|vltri|rlarr|boxhd|boxhD|nprec|gescc|nrarr|nrArr|boxHd|boxHD|boxhu|boxhU|nrtri|boxHu|clubs|boxHU|times|colon|Colon|gimel|xlArr|Tilde|nsime|tilde|nsmid|nspar|THORN|thorn|xlarr|nsube|nsubE|thkap|xhArr|comma|nsucc|boxul|boxuL|nsupe|nsupE|gneqq|gnsim|boxUl|boxUL|grave|boxur|boxuR|boxUr|boxUR|lescc|angle|bepsi|boxvh|varpi|boxvH|numsp|Theta|gsime|gsiml|theta|boxVh|boxVH|boxvl|gtcir|gtdot|boxvL|boxVl|boxVL|crarr|cross|Cross|nvsim|boxvr|nwarr|nwArr|sqsup|dtdot|Uogon|lhard|lharu|dtrif|ocirc|Ocirc|lhblk|duarr|odash|sqsub|Hacek|sqcup|llarr|duhar|oelig|OElig|ofcir|boxvR|uogon|lltri|boxVr|csube|uuarr|ohbar|csupe|ctdot|olarr|olcir|harrw|oline|sqcap|omacr|Omacr|omega|Omega|boxVR|aleph|lneqq|lnsim|loang|loarr|rharu|lobrk|hcirc|operp|oplus|rhard|Hcirc|orarr|Union|order|ecirc|Ecirc|cuepr|szlig|cuesc|breve|reals|eDDot|Breve|hoarr|lopar|utrif|rdquo|Umacr|umacr|efDot|swArr|ultri|alpha|rceil|ovbar|swarr|Wcirc|wcirc|smtes|smile|bsemi|lrarr|aring|parsl|lrhar|bsime|uhblk|lrtri|cupor|Aring|uharr|uharl|slarr|rbrke|bsolb|lsime|rbbrk|RBarr|lsimg|phone|rBarr|rbarr|icirc|lsquo|Icirc|emacr|Emacr|ratio|simne|plusb|simlE|simgE|simeq|pluse|ltcir|ltdot|empty|xharr|xdtri|iexcl|Alpha|ltrie|rarrw|pound|ltrif|xcirc|bumpe|prcue|bumpE|asymp|amacr|cuvee|Sigma|sigma|iiint|udhar|iiota|ijlig|IJlig|supnE|imacr|Imacr|prime|Prime|image|prnap|eogon|Eogon|rarrc|mdash|mDDot|cuwed|imath|supne|imped|Amacr|udarr|prsim|micro|rarrb|cwint|raquo|infin|eplus|range|rangd|Ucirc|radic|minus|amalg|veeeq|rAarr|epsiv|ycirc|quest|sharp|quot|zwnj|Qscr|race|qscr|Qopf|qopf|qint|rang|Rang|Zscr|zscr|Zopf|zopf|rarr|rArr|Rarr|Pscr|pscr|prop|prod|prnE|prec|ZHcy|zhcy|prap|Zeta|zeta|Popf|popf|Zdot|plus|zdot|Yuml|yuml|phiv|YUcy|yucy|Yscr|yscr|perp|Yopf|yopf|part|para|YIcy|Ouml|rcub|yicy|YAcy|rdca|ouml|osol|Oscr|rdsh|yacy|real|oscr|xvee|andd|rect|andv|Xscr|oror|ordm|ordf|xscr|ange|aopf|Aopf|rHar|Xopf|opar|Oopf|xopf|xnis|rhov|oopf|omid|xmap|oint|apid|apos|ogon|ascr|Ascr|odot|odiv|xcup|xcap|ocir|oast|nvlt|nvle|nvgt|nvge|nvap|Wscr|wscr|auml|ntlg|ntgl|nsup|nsub|nsim|Nscr|nscr|nsce|Wopf|ring|npre|wopf|npar|Auml|Barv|bbrk|Nopf|nopf|nmid|nLtv|beta|ropf|Ropf|Beta|beth|nles|rpar|nleq|bnot|bNot|nldr|NJcy|rscr|Rscr|Vscr|vscr|rsqb|njcy|bopf|nisd|Bopf|rtri|Vopf|nGtv|ngtr|vopf|boxh|boxH|boxv|nges|ngeq|boxV|bscr|scap|Bscr|bsim|Vert|vert|bsol|bull|bump|caps|cdot|ncup|scnE|ncap|nbsp|napE|Cdot|cent|sdot|Vbar|nang|vBar|chcy|Mscr|mscr|sect|semi|CHcy|Mopf|mopf|sext|circ|cire|mldr|mlcp|cirE|comp|shcy|SHcy|vArr|varr|cong|copf|Copf|copy|COPY|malt|male|macr|lvnE|cscr|ltri|sime|ltcc|simg|Cscr|siml|csub|Uuml|lsqb|lsim|uuml|csup|Lscr|lscr|utri|smid|lpar|cups|smte|lozf|darr|Lopf|Uscr|solb|lopf|sopf|Sopf|lneq|uscr|spar|dArr|lnap|Darr|dash|Sqrt|LJcy|ljcy|lHar|dHar|Upsi|upsi|diam|lesg|djcy|DJcy|leqq|dopf|Dopf|dscr|Dscr|dscy|ldsh|ldca|squf|DScy|sscr|Sscr|dsol|lcub|late|star|Star|Uopf|Larr|lArr|larr|uopf|dtri|dzcy|sube|subE|Lang|lang|Kscr|kscr|Kopf|kopf|KJcy|kjcy|KHcy|khcy|DZcy|ecir|edot|eDot|Jscr|jscr|succ|Jopf|jopf|Edot|uHar|emsp|ensp|Iuml|iuml|eopf|isin|Iscr|iscr|Eopf|epar|sung|epsi|escr|sup1|sup2|sup3|Iota|iota|supe|supE|Iopf|iopf|IOcy|iocy|Escr|esim|Esim|imof|Uarr|QUOT|uArr|uarr|euml|IEcy|iecy|Idot|Euml|euro|excl|Hscr|hscr|Hopf|hopf|TScy|tscy|Tscr|hbar|tscr|flat|tbrk|fnof|hArr|harr|half|fopf|Fopf|tdot|gvnE|fork|trie|gtcc|fscr|Fscr|gdot|gsim|Gscr|gscr|Gopf|gopf|gneq|Gdot|tosa|gnap|Topf|topf|geqq|toea|GJcy|gjcy|tint|gesl|mid|Sfr|ggg|top|ges|gla|glE|glj|geq|gne|gEl|gel|gnE|Gcy|gcy|gap|Tfr|tfr|Tcy|tcy|Hat|Tau|Ffr|tau|Tab|hfr|Hfr|ffr|Fcy|fcy|icy|Icy|iff|ETH|eth|ifr|Ifr|Eta|eta|int|Int|Sup|sup|ucy|Ucy|Sum|sum|jcy|ENG|ufr|Ufr|eng|Jcy|jfr|els|ell|egs|Efr|efr|Jfr|uml|kcy|Kcy|Ecy|ecy|kfr|Kfr|lap|Sub|sub|lat|lcy|Lcy|leg|Dot|dot|lEg|leq|les|squ|div|die|lfr|Lfr|lgE|Dfr|dfr|Del|deg|Dcy|dcy|lne|lnE|sol|loz|smt|Cup|lrm|cup|lsh|Lsh|sim|shy|map|Map|mcy|Mcy|mfr|Mfr|mho|gfr|Gfr|sfr|cir|Chi|chi|nap|Cfr|vcy|Vcy|cfr|Scy|scy|ncy|Ncy|vee|Vee|Cap|cap|nfr|scE|sce|Nfr|nge|ngE|nGg|vfr|Vfr|ngt|bot|nGt|nis|niv|Rsh|rsh|nle|nlE|bne|Bfr|bfr|nLl|nlt|nLt|Bcy|bcy|not|Not|rlm|wfr|Wfr|npr|nsc|num|ocy|ast|Ocy|ofr|xfr|Xfr|Ofr|ogt|ohm|apE|olt|Rho|ape|rho|Rfr|rfr|ord|REG|ang|reg|orv|And|and|AMP|Rcy|amp|Afr|ycy|Ycy|yen|yfr|Yfr|rcy|par|pcy|Pcy|pfr|Pfr|phi|Phi|afr|Acy|acy|zcy|Zcy|piv|acE|acd|zfr|Zfr|pre|prE|psi|Psi|qfr|Qfr|zwj|Or|ge|Gg|gt|gg|el|oS|lt|Lt|LT|Re|lg|gl|eg|ne|Im|it|le|DD|wp|wr|nu|Nu|dd|lE|Sc|sc|pi|Pi|ee|af|ll|Ll|rx|gE|xi|pm|Xi|ic|pr|Pr|in|ni|mp|mu|ac|Mu|or|ap|Gt|GT|ii);|&(Aacute|Agrave|Atilde|Ccedil|Eacute|Egrave|Iacute|Igrave|Ntilde|Oacute|Ograve|Oslash|Otilde|Uacute|Ugrave|Yacute|aacute|agrave|atilde|brvbar|ccedil|curren|divide|eacute|egrave|frac12|frac14|frac34|iacute|igrave|iquest|middot|ntilde|oacute|ograve|oslash|otilde|plusmn|uacute|ugrave|yacute|AElig|Acirc|Aring|Ecirc|Icirc|Ocirc|THORN|Ucirc|acirc|acute|aelig|aring|cedil|ecirc|icirc|iexcl|laquo|micro|ocirc|pound|raquo|szlig|thorn|times|ucirc|Auml|COPY|Euml|Iuml|Ouml|QUOT|Uuml|auml|cent|copy|euml|iuml|macr|nbsp|ordf|ordm|ouml|para|quot|sect|sup1|sup2|sup3|uuml|yuml|AMP|ETH|REG|amp|deg|eth|not|reg|shy|uml|yen|GT|LT|gt|lt)(?!;)([=a-zA-Z0-9]?)|&#([0-9]+)(;?)|&#[xX]([a-fA-F0-9]+)(;?)|&([0-9a-zA-Z]+)/g,b={aacute:"á",Aacute:"Á",abreve:"ă",Abreve:"Ă",ac:"∾",acd:"∿",acE:"∾̳",acirc:"â",Acirc:"Â",acute:"´",acy:"а",Acy:"А",aelig:"æ",AElig:"Æ",af:"",afr:"𝔞",Afr:"𝔄",agrave:"à",Agrave:"À",alefsym:"ℵ",aleph:"ℵ",alpha:"α",Alpha:"Α",amacr:"ā",Amacr:"Ā",amalg:"⨿",amp:"&",AMP:"&",and:"∧",And:"⩓",andand:"⩕",andd:"⩜",andslope:"⩘",andv:"⩚",ang:"∠",ange:"⦤",angle:"∠",angmsd:"∡",angmsdaa:"⦨",angmsdab:"⦩",angmsdac:"⦪",angmsdad:"⦫",angmsdae:"⦬",angmsdaf:"⦭",angmsdag:"⦮",angmsdah:"⦯",angrt:"∟",angrtvb:"⊾",angrtvbd:"⦝",angsph:"∢",angst:"Å",angzarr:"⍼",aogon:"ą",Aogon:"Ą",aopf:"𝕒",Aopf:"𝔸",ap:"≈",apacir:"⩯",ape:"≊",apE:"⩰",apid:"≋",apos:"'",ApplyFunction:"",approx:"≈",approxeq:"≊",aring:"å",Aring:"Å",ascr:"𝒶",Ascr:"𝒜",Assign:"≔",ast:"*",asymp:"≈",asympeq:"≍",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",awconint:"∳",awint:"⨑",backcong:"≌",backepsilon:"϶",backprime:"‵",backsim:"∽",backsimeq:"⋍",Backslash:"∖",Barv:"⫧",barvee:"⊽",barwed:"⌅",Barwed:"⌆",barwedge:"⌅",bbrk:"⎵",bbrktbrk:"⎶",bcong:"≌",bcy:"б",Bcy:"Б",bdquo:"„",becaus:"∵",because:"∵",Because:"∵",bemptyv:"⦰",bepsi:"϶",bernou:"ℬ",Bernoullis:"ℬ",beta:"β",Beta:"Β",beth:"ℶ",between:"≬",bfr:"𝔟",Bfr:"𝔅",bigcap:"⋂",bigcirc:"◯",bigcup:"⋃",bigodot:"⨀",bigoplus:"⨁",bigotimes:"⨂",bigsqcup:"⨆",bigstar:"★",bigtriangledown:"▽",bigtriangleup:"△",biguplus:"⨄",bigvee:"⋁",bigwedge:"⋀",bkarow:"⤍",blacklozenge:"⧫",blacksquare:"▪",blacktriangle:"▴",blacktriangledown:"▾",blacktriangleleft:"◂",blacktriangleright:"▸",blank:"␣",blk12:"▒",blk14:"░",blk34:"▓",block:"█",bne:"=⃥",bnequiv:"≡⃥",bnot:"⌐",bNot:"⫭",bopf:"𝕓",Bopf:"𝔹",bot:"⊥",bottom:"⊥",bowtie:"⋈",boxbox:"⧉",boxdl:"┐",boxdL:"╕",boxDl:"╖",boxDL:"╗",boxdr:"┌",boxdR:"╒",boxDr:"╓",boxDR:"╔",boxh:"─",boxH:"═",boxhd:"┬",boxhD:"╥",boxHd:"╤",boxHD:"╦",boxhu:"┴",boxhU:"╨",boxHu:"╧",boxHU:"╩",boxminus:"⊟",boxplus:"⊞",boxtimes:"⊠",boxul:"┘",boxuL:"╛",boxUl:"╜",boxUL:"╝",boxur:"└",boxuR:"╘",boxUr:"╙",boxUR:"╚",boxv:"│",boxV:"║",boxvh:"┼",boxvH:"╪",boxVh:"╫",boxVH:"╬",boxvl:"┤",boxvL:"╡",boxVl:"╢",boxVL:"╣",boxvr:"├",boxvR:"╞",boxVr:"╟",boxVR:"╠",bprime:"‵",breve:"˘",Breve:"˘",brvbar:"¦",bscr:"𝒷",Bscr:"ℬ",bsemi:"⁏",bsim:"∽",bsime:"⋍",bsol:"\\",bsolb:"⧅",bsolhsub:"⟈",bull:"•",bullet:"•",bump:"≎",bumpe:"≏",bumpE:"⪮",bumpeq:"≏",Bumpeq:"≎",cacute:"ć",Cacute:"Ć",cap:"∩",Cap:"⋒",capand:"⩄",capbrcup:"⩉",capcap:"⩋",capcup:"⩇",capdot:"⩀",CapitalDifferentialD:"ⅅ",caps:"∩︀",caret:"⁁",caron:"ˇ",Cayleys:"ℭ",ccaps:"⩍",ccaron:"č",Ccaron:"Č",ccedil:"ç",Ccedil:"Ç",ccirc:"ĉ",Ccirc:"Ĉ",Cconint:"∰",ccups:"⩌",ccupssm:"⩐",cdot:"ċ",Cdot:"Ċ",cedil:"¸",Cedilla:"¸",cemptyv:"⦲",cent:"¢",centerdot:"·",CenterDot:"·",cfr:"𝔠",Cfr:"ℭ",chcy:"ч",CHcy:"Ч",check:"✓",checkmark:"✓",chi:"χ",Chi:"Χ",cir:"○",circ:"ˆ",circeq:"≗",circlearrowleft:"↺",circlearrowright:"↻",circledast:"⊛",circledcirc:"⊚",circleddash:"⊝",CircleDot:"⊙",circledR:"®",circledS:"Ⓢ",CircleMinus:"⊖",CirclePlus:"⊕",CircleTimes:"⊗",cire:"≗",cirE:"⧃",cirfnint:"⨐",cirmid:"⫯",cirscir:"⧂",ClockwiseContourIntegral:"∲",CloseCurlyDoubleQuote:"”",CloseCurlyQuote:"’",clubs:"♣",clubsuit:"♣",colon:":",Colon:"∷",colone:"≔",Colone:"⩴",coloneq:"≔",comma:",",commat:"@",comp:"∁",compfn:"∘",complement:"∁",complexes:"ℂ",cong:"≅",congdot:"⩭",Congruent:"≡",conint:"∮",Conint:"∯",ContourIntegral:"∮",copf:"𝕔",Copf:"ℂ",coprod:"∐",Coproduct:"∐",copy:"©",COPY:"©",copysr:"℗",CounterClockwiseContourIntegral:"∳",crarr:"↵",cross:"✗",Cross:"⨯",cscr:"𝒸",Cscr:"𝒞",csub:"⫏",csube:"⫑",csup:"⫐",csupe:"⫒",ctdot:"⋯",cudarrl:"⤸",cudarrr:"⤵",cuepr:"⋞",cuesc:"⋟",cularr:"↶",cularrp:"⤽",cup:"∪",Cup:"⋓",cupbrcap:"⩈",cupcap:"⩆",CupCap:"≍",cupcup:"⩊",cupdot:"⊍",cupor:"⩅",cups:"∪︀",curarr:"↷",curarrm:"⤼",curlyeqprec:"⋞",curlyeqsucc:"⋟",curlyvee:"⋎",curlywedge:"⋏",curren:"¤",curvearrowleft:"↶",curvearrowright:"↷",cuvee:"⋎",cuwed:"⋏",cwconint:"∲",cwint:"∱",cylcty:"⌭",dagger:"†",Dagger:"‡",daleth:"ℸ",darr:"↓",dArr:"⇓",Darr:"↡",dash:"‐",dashv:"⊣",Dashv:"⫤",dbkarow:"⤏",dblac:"˝",dcaron:"ď",Dcaron:"Ď",dcy:"д",Dcy:"Д",dd:"ⅆ",DD:"ⅅ",ddagger:"‡",ddarr:"⇊",DDotrahd:"⤑",ddotseq:"⩷",deg:"°",Del:"∇",delta:"δ",Delta:"Δ",demptyv:"⦱",dfisht:"⥿",dfr:"𝔡",Dfr:"𝔇",dHar:"⥥",dharl:"⇃",dharr:"⇂",DiacriticalAcute:"´",DiacriticalDot:"˙",DiacriticalDoubleAcute:"˝",DiacriticalGrave:"`",DiacriticalTilde:"˜",diam:"⋄",diamond:"⋄",Diamond:"⋄",diamondsuit:"♦",diams:"♦",die:"¨",DifferentialD:"ⅆ",digamma:"ϝ",disin:"⋲",div:"÷",divide:"÷",divideontimes:"⋇",divonx:"⋇",djcy:"ђ",DJcy:"Ђ",dlcorn:"⌞",dlcrop:"⌍",dollar:"$",dopf:"𝕕",Dopf:"𝔻",dot:"˙",Dot:"¨",DotDot:"⃜",doteq:"≐",doteqdot:"≑",DotEqual:"≐",dotminus:"∸",dotplus:"∔",dotsquare:"⊡",doublebarwedge:"⌆",DoubleContourIntegral:"∯",DoubleDot:"¨",DoubleDownArrow:"⇓",DoubleLeftArrow:"⇐",DoubleLeftRightArrow:"⇔",DoubleLeftTee:"⫤",DoubleLongLeftArrow:"⟸",DoubleLongLeftRightArrow:"⟺",DoubleLongRightArrow:"⟹",DoubleRightArrow:"⇒",DoubleRightTee:"⊨",DoubleUpArrow:"⇑",DoubleUpDownArrow:"⇕",DoubleVerticalBar:"∥",downarrow:"↓",Downarrow:"⇓",DownArrow:"↓",DownArrowBar:"⤓",DownArrowUpArrow:"⇵",DownBreve:"̑",downdownarrows:"⇊",downharpoonleft:"⇃",downharpoonright:"⇂",DownLeftRightVector:"⥐",DownLeftTeeVector:"⥞",DownLeftVector:"↽",DownLeftVectorBar:"⥖",DownRightTeeVector:"⥟",DownRightVector:"⇁",DownRightVectorBar:"⥗",DownTee:"⊤",DownTeeArrow:"↧",drbkarow:"⤐",drcorn:"⌟",drcrop:"⌌",dscr:"𝒹",Dscr:"𝒟",dscy:"ѕ",DScy:"Ѕ",dsol:"⧶",dstrok:"đ",Dstrok:"Đ",dtdot:"⋱",dtri:"▿",dtrif:"▾",duarr:"⇵",duhar:"⥯",dwangle:"⦦",dzcy:"џ",DZcy:"Џ",dzigrarr:"⟿",eacute:"é",Eacute:"É",easter:"⩮",ecaron:"ě",Ecaron:"Ě",ecir:"≖",ecirc:"ê",Ecirc:"Ê",ecolon:"≕",ecy:"э",Ecy:"Э",eDDot:"⩷",edot:"ė",eDot:"≑",Edot:"Ė",ee:"ⅇ",efDot:"≒",efr:"𝔢",Efr:"𝔈",eg:"⪚",egrave:"è",Egrave:"È",egs:"⪖",egsdot:"⪘",el:"⪙",Element:"∈",elinters:"⏧",ell:"ℓ",els:"⪕",elsdot:"⪗",emacr:"ē",Emacr:"Ē",empty:"∅",emptyset:"∅",EmptySmallSquare:"◻",emptyv:"∅",EmptyVerySmallSquare:"▫",emsp:" ",emsp13:" ",emsp14:" ",eng:"ŋ",ENG:"Ŋ",ensp:" ",eogon:"ę",Eogon:"Ę",eopf:"𝕖",Eopf:"𝔼",epar:"⋕",eparsl:"⧣",eplus:"⩱",epsi:"ε",epsilon:"ε",Epsilon:"Ε",epsiv:"ϵ",eqcirc:"≖",eqcolon:"≕",eqsim:"≂",eqslantgtr:"⪖",eqslantless:"⪕",Equal:"⩵",equals:"=",EqualTilde:"≂",equest:"≟",Equilibrium:"⇌",equiv:"≡",equivDD:"⩸",eqvparsl:"⧥",erarr:"⥱",erDot:"≓",escr:"ℯ",Escr:"ℰ",esdot:"≐",esim:"≂",Esim:"⩳",eta:"η",Eta:"Η",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",euro:"€",excl:"!",exist:"∃",Exists:"∃",expectation:"ℰ",exponentiale:"ⅇ",ExponentialE:"ⅇ",fallingdotseq:"≒",fcy:"ф",Fcy:"Ф",female:"♀",ffilig:"ffi",fflig:"ff",ffllig:"ffl",ffr:"𝔣",Ffr:"𝔉",filig:"fi",FilledSmallSquare:"◼",FilledVerySmallSquare:"▪",fjlig:"fj",flat:"♭",fllig:"fl",fltns:"▱",fnof:"ƒ",fopf:"𝕗",Fopf:"𝔽",forall:"∀",ForAll:"∀",fork:"⋔",forkv:"⫙",Fouriertrf:"ℱ",fpartint:"⨍",frac12:"½",frac13:"⅓",frac14:"¼",frac15:"⅕",frac16:"⅙",frac18:"⅛",frac23:"⅔",frac25:"⅖",frac34:"¾",frac35:"⅗",frac38:"⅜",frac45:"⅘",frac56:"⅚",frac58:"⅝",frac78:"⅞",frasl:"⁄",frown:"⌢",fscr:"𝒻",Fscr:"ℱ",gacute:"ǵ",gamma:"γ",Gamma:"Γ",gammad:"ϝ",Gammad:"Ϝ",gap:"⪆",gbreve:"ğ",Gbreve:"Ğ",Gcedil:"Ģ",gcirc:"ĝ",Gcirc:"Ĝ",gcy:"г",Gcy:"Г",gdot:"ġ",Gdot:"Ġ",ge:"≥",gE:"≧",gel:"⋛",gEl:"⪌",geq:"≥",geqq:"≧",geqslant:"⩾",ges:"⩾",gescc:"⪩",gesdot:"⪀",gesdoto:"⪂",gesdotol:"⪄",gesl:"⋛︀",gesles:"⪔",gfr:"𝔤",Gfr:"𝔊",gg:"≫",Gg:"⋙",ggg:"⋙",gimel:"ℷ",gjcy:"ѓ",GJcy:"Ѓ",gl:"≷",gla:"⪥",glE:"⪒",glj:"⪤",gnap:"⪊",gnapprox:"⪊",gne:"⪈",gnE:"≩",gneq:"⪈",gneqq:"≩",gnsim:"⋧",gopf:"𝕘",Gopf:"𝔾",grave:"`",GreaterEqual:"≥",GreaterEqualLess:"⋛",GreaterFullEqual:"≧",GreaterGreater:"⪢",GreaterLess:"≷",GreaterSlantEqual:"⩾",GreaterTilde:"≳",gscr:"ℊ",Gscr:"𝒢",gsim:"≳",gsime:"⪎",gsiml:"⪐",gt:">",Gt:"≫",GT:">",gtcc:"⪧",gtcir:"⩺",gtdot:"⋗",gtlPar:"⦕",gtquest:"⩼",gtrapprox:"⪆",gtrarr:"⥸",gtrdot:"⋗",gtreqless:"⋛",gtreqqless:"⪌",gtrless:"≷",gtrsim:"≳",gvertneqq:"≩︀",gvnE:"≩︀",Hacek:"ˇ",hairsp:" ",half:"½",hamilt:"ℋ",hardcy:"ъ",HARDcy:"Ъ",harr:"↔",hArr:"⇔",harrcir:"⥈",harrw:"↭",Hat:"^",hbar:"ℏ",hcirc:"ĥ",Hcirc:"Ĥ",hearts:"♥",heartsuit:"♥",hellip:"…",hercon:"⊹",hfr:"𝔥",Hfr:"ℌ",HilbertSpace:"ℋ",hksearow:"⤥",hkswarow:"⤦",hoarr:"⇿",homtht:"∻",hookleftarrow:"↩",hookrightarrow:"↪",hopf:"𝕙",Hopf:"ℍ",horbar:"―",HorizontalLine:"─",hscr:"𝒽",Hscr:"ℋ",hslash:"ℏ",hstrok:"ħ",Hstrok:"Ħ",HumpDownHump:"≎",HumpEqual:"≏",hybull:"⁃",hyphen:"‐",iacute:"í",Iacute:"Í",ic:"",icirc:"î",Icirc:"Î",icy:"и",Icy:"И",Idot:"İ",iecy:"е",IEcy:"Е",iexcl:"¡",iff:"⇔",ifr:"𝔦",Ifr:"ℑ",igrave:"ì",Igrave:"Ì",ii:"ⅈ",iiiint:"⨌",iiint:"∭",iinfin:"⧜",iiota:"℩",ijlig:"ij",IJlig:"IJ",Im:"ℑ",imacr:"ī",Imacr:"Ī",image:"ℑ",ImaginaryI:"ⅈ",imagline:"ℐ",imagpart:"ℑ",imath:"ı",imof:"⊷",imped:"Ƶ",Implies:"⇒",in:"∈",incare:"℅",infin:"∞",infintie:"⧝",inodot:"ı",int:"∫",Int:"∬",intcal:"⊺",integers:"ℤ",Integral:"∫",intercal:"⊺",Intersection:"⋂",intlarhk:"⨗",intprod:"⨼",InvisibleComma:"",InvisibleTimes:"",iocy:"ё",IOcy:"Ё",iogon:"į",Iogon:"Į",iopf:"𝕚",Iopf:"𝕀",iota:"ι",Iota:"Ι",iprod:"⨼",iquest:"¿",iscr:"𝒾",Iscr:"ℐ",isin:"∈",isindot:"⋵",isinE:"⋹",isins:"⋴",isinsv:"⋳",isinv:"∈",it:"",itilde:"ĩ",Itilde:"Ĩ",iukcy:"і",Iukcy:"І",iuml:"ï",Iuml:"Ï",jcirc:"ĵ",Jcirc:"Ĵ",jcy:"й",Jcy:"Й",jfr:"𝔧",Jfr:"𝔍",jmath:"ȷ",jopf:"𝕛",Jopf:"𝕁",jscr:"𝒿",Jscr:"𝒥",jsercy:"ј",Jsercy:"Ј",jukcy:"є",Jukcy:"Є",kappa:"κ",Kappa:"Κ",kappav:"ϰ",kcedil:"ķ",Kcedil:"Ķ",kcy:"к",Kcy:"К",kfr:"𝔨",Kfr:"𝔎",kgreen:"ĸ",khcy:"х",KHcy:"Х",kjcy:"ќ",KJcy:"Ќ",kopf:"𝕜",Kopf:"𝕂",kscr:"𝓀",Kscr:"𝒦",lAarr:"⇚",lacute:"ĺ",Lacute:"Ĺ",laemptyv:"⦴",lagran:"ℒ",lambda:"λ",Lambda:"Λ",lang:"⟨",Lang:"⟪",langd:"⦑",langle:"⟨",lap:"⪅",Laplacetrf:"ℒ",laquo:"«",larr:"←",lArr:"⇐",Larr:"↞",larrb:"⇤",larrbfs:"⤟",larrfs:"⤝",larrhk:"↩",larrlp:"↫",larrpl:"⤹",larrsim:"⥳",larrtl:"↢",lat:"⪫",latail:"⤙",lAtail:"⤛",late:"⪭",lates:"⪭︀",lbarr:"⤌",lBarr:"⤎",lbbrk:"❲",lbrace:"{",lbrack:"[",lbrke:"⦋",lbrksld:"⦏",lbrkslu:"⦍",lcaron:"ľ",Lcaron:"Ľ",lcedil:"ļ",Lcedil:"Ļ",lceil:"⌈",lcub:"{",lcy:"л",Lcy:"Л",ldca:"⤶",ldquo:"“",ldquor:"„",ldrdhar:"⥧",ldrushar:"⥋",ldsh:"↲",le:"≤",lE:"≦",LeftAngleBracket:"⟨",leftarrow:"←",Leftarrow:"⇐",LeftArrow:"←",LeftArrowBar:"⇤",LeftArrowRightArrow:"⇆",leftarrowtail:"↢",LeftCeiling:"⌈",LeftDoubleBracket:"⟦",LeftDownTeeVector:"⥡",LeftDownVector:"⇃",LeftDownVectorBar:"⥙",LeftFloor:"⌊",leftharpoondown:"↽",leftharpoonup:"↼",leftleftarrows:"⇇",leftrightarrow:"↔",Leftrightarrow:"⇔",LeftRightArrow:"↔",leftrightarrows:"⇆",leftrightharpoons:"⇋",leftrightsquigarrow:"↭",LeftRightVector:"⥎",LeftTee:"⊣",LeftTeeArrow:"↤",LeftTeeVector:"⥚",leftthreetimes:"⋋",LeftTriangle:"⊲",LeftTriangleBar:"⧏",LeftTriangleEqual:"⊴",LeftUpDownVector:"⥑",LeftUpTeeVector:"⥠",LeftUpVector:"↿",LeftUpVectorBar:"⥘",LeftVector:"↼",LeftVectorBar:"⥒",leg:"⋚",lEg:"⪋",leq:"≤",leqq:"≦",leqslant:"⩽",les:"⩽",lescc:"⪨",lesdot:"⩿",lesdoto:"⪁",lesdotor:"⪃",lesg:"⋚︀",lesges:"⪓",lessapprox:"⪅",lessdot:"⋖",lesseqgtr:"⋚",lesseqqgtr:"⪋",LessEqualGreater:"⋚",LessFullEqual:"≦",LessGreater:"≶",lessgtr:"≶",LessLess:"⪡",lesssim:"≲",LessSlantEqual:"⩽",LessTilde:"≲",lfisht:"⥼",lfloor:"⌊",lfr:"𝔩",Lfr:"𝔏",lg:"≶",lgE:"⪑",lHar:"⥢",lhard:"↽",lharu:"↼",lharul:"⥪",lhblk:"▄",ljcy:"љ",LJcy:"Љ",ll:"≪",Ll:"⋘",llarr:"⇇",llcorner:"⌞",Lleftarrow:"⇚",llhard:"⥫",lltri:"◺",lmidot:"ŀ",Lmidot:"Ŀ",lmoust:"⎰",lmoustache:"⎰",lnap:"⪉",lnapprox:"⪉",lne:"⪇",lnE:"≨",lneq:"⪇",lneqq:"≨",lnsim:"⋦",loang:"⟬",loarr:"⇽",lobrk:"⟦",longleftarrow:"⟵",Longleftarrow:"⟸",LongLeftArrow:"⟵",longleftrightarrow:"⟷",Longleftrightarrow:"⟺",LongLeftRightArrow:"⟷",longmapsto:"⟼",longrightarrow:"⟶",Longrightarrow:"⟹",LongRightArrow:"⟶",looparrowleft:"↫",looparrowright:"↬",lopar:"⦅",lopf:"𝕝",Lopf:"𝕃",loplus:"⨭",lotimes:"⨴",lowast:"∗",lowbar:"_",LowerLeftArrow:"↙",LowerRightArrow:"↘",loz:"◊",lozenge:"◊",lozf:"⧫",lpar:"(",lparlt:"⦓",lrarr:"⇆",lrcorner:"⌟",lrhar:"⇋",lrhard:"⥭",lrm:"",lrtri:"⊿",lsaquo:"‹",lscr:"𝓁",Lscr:"ℒ",lsh:"↰",Lsh:"↰",lsim:"≲",lsime:"⪍",lsimg:"⪏",lsqb:"[",lsquo:"‘",lsquor:"‚",lstrok:"ł",Lstrok:"Ł",lt:"<",Lt:"≪",LT:"<",ltcc:"⪦",ltcir:"⩹",ltdot:"⋖",lthree:"⋋",ltimes:"⋉",ltlarr:"⥶",ltquest:"⩻",ltri:"◃",ltrie:"⊴",ltrif:"◂",ltrPar:"⦖",lurdshar:"⥊",luruhar:"⥦",lvertneqq:"≨︀",lvnE:"≨︀",macr:"¯",male:"♂",malt:"✠",maltese:"✠",map:"↦",Map:"⤅",mapsto:"↦",mapstodown:"↧",mapstoleft:"↤",mapstoup:"↥",marker:"▮",mcomma:"⨩",mcy:"м",Mcy:"М",mdash:"—",mDDot:"∺",measuredangle:"∡",MediumSpace:" ",Mellintrf:"ℳ",mfr:"𝔪",Mfr:"𝔐",mho:"℧",micro:"µ",mid:"∣",midast:"*",midcir:"⫰",middot:"·",minus:"−",minusb:"⊟",minusd:"∸",minusdu:"⨪",MinusPlus:"∓",mlcp:"⫛",mldr:"…",mnplus:"∓",models:"⊧",mopf:"𝕞",Mopf:"𝕄",mp:"∓",mscr:"𝓂",Mscr:"ℳ",mstpos:"∾",mu:"μ",Mu:"Μ",multimap:"⊸",mumap:"⊸",nabla:"∇",nacute:"ń",Nacute:"Ń",nang:"∠⃒",nap:"≉",napE:"⩰̸",napid:"≋̸",napos:"ʼn",napprox:"≉",natur:"♮",natural:"♮",naturals:"ℕ",nbsp:" ",nbump:"≎̸",nbumpe:"≏̸",ncap:"⩃",ncaron:"ň",Ncaron:"Ň",ncedil:"ņ",Ncedil:"Ņ",ncong:"≇",ncongdot:"⩭̸",ncup:"⩂",ncy:"н",Ncy:"Н",ndash:"–",ne:"≠",nearhk:"⤤",nearr:"↗",neArr:"⇗",nearrow:"↗",nedot:"≐̸",NegativeMediumSpace:"",NegativeThickSpace:"",NegativeThinSpace:"",NegativeVeryThinSpace:"",nequiv:"≢",nesear:"⤨",nesim:"≂̸",NestedGreaterGreater:"≫",NestedLessLess:"≪",NewLine:"\n",nexist:"∄",nexists:"∄",nfr:"𝔫",Nfr:"𝔑",nge:"≱",ngE:"≧̸",ngeq:"≱",ngeqq:"≧̸",ngeqslant:"⩾̸",nges:"⩾̸",nGg:"⋙̸",ngsim:"≵",ngt:"≯",nGt:"≫⃒",ngtr:"≯",nGtv:"≫̸",nharr:"↮",nhArr:"⇎",nhpar:"⫲",ni:"∋",nis:"⋼",nisd:"⋺",niv:"∋",njcy:"њ",NJcy:"Њ",nlarr:"↚",nlArr:"⇍",nldr:"‥",nle:"≰",nlE:"≦̸",nleftarrow:"↚",nLeftarrow:"⇍",nleftrightarrow:"↮",nLeftrightarrow:"⇎",nleq:"≰",nleqq:"≦̸",nleqslant:"⩽̸",nles:"⩽̸",nless:"≮",nLl:"⋘̸",nlsim:"≴",nlt:"≮",nLt:"≪⃒",nltri:"⋪",nltrie:"⋬",nLtv:"≪̸",nmid:"∤",NoBreak:"",NonBreakingSpace:" ",nopf:"𝕟",Nopf:"ℕ",not:"¬",Not:"⫬",NotCongruent:"≢",NotCupCap:"≭",NotDoubleVerticalBar:"∦",NotElement:"∉",NotEqual:"≠",NotEqualTilde:"≂̸",NotExists:"∄",NotGreater:"≯",NotGreaterEqual:"≱",NotGreaterFullEqual:"≧̸",NotGreaterGreater:"≫̸",NotGreaterLess:"≹",NotGreaterSlantEqual:"⩾̸",NotGreaterTilde:"≵",NotHumpDownHump:"≎̸",NotHumpEqual:"≏̸",notin:"∉",notindot:"⋵̸",notinE:"⋹̸",notinva:"∉",notinvb:"⋷",notinvc:"⋶",NotLeftTriangle:"⋪",NotLeftTriangleBar:"⧏̸",NotLeftTriangleEqual:"⋬",NotLess:"≮",NotLessEqual:"≰",NotLessGreater:"≸",NotLessLess:"≪̸",NotLessSlantEqual:"⩽̸",NotLessTilde:"≴",NotNestedGreaterGreater:"⪢̸",NotNestedLessLess:"⪡̸",notni:"∌",notniva:"∌",notnivb:"⋾",notnivc:"⋽",NotPrecedes:"⊀",NotPrecedesEqual:"⪯̸",NotPrecedesSlantEqual:"⋠",NotReverseElement:"∌",NotRightTriangle:"⋫",NotRightTriangleBar:"⧐̸",NotRightTriangleEqual:"⋭",NotSquareSubset:"⊏̸",NotSquareSubsetEqual:"⋢",NotSquareSuperset:"⊐̸",NotSquareSupersetEqual:"⋣",NotSubset:"⊂⃒",NotSubsetEqual:"⊈",NotSucceeds:"⊁",NotSucceedsEqual:"⪰̸",NotSucceedsSlantEqual:"⋡",NotSucceedsTilde:"≿̸",NotSuperset:"⊃⃒",NotSupersetEqual:"⊉",NotTilde:"≁",NotTildeEqual:"≄",NotTildeFullEqual:"≇",NotTildeTilde:"≉",NotVerticalBar:"∤",npar:"∦",nparallel:"∦",nparsl:"⫽⃥",npart:"∂̸",npolint:"⨔",npr:"⊀",nprcue:"⋠",npre:"⪯̸",nprec:"⊀",npreceq:"⪯̸",nrarr:"↛",nrArr:"⇏",nrarrc:"⤳̸",nrarrw:"↝̸",nrightarrow:"↛",nRightarrow:"⇏",nrtri:"⋫",nrtrie:"⋭",nsc:"⊁",nsccue:"⋡",nsce:"⪰̸",nscr:"𝓃",Nscr:"𝒩",nshortmid:"∤",nshortparallel:"∦",nsim:"≁",nsime:"≄",nsimeq:"≄",nsmid:"∤",nspar:"∦",nsqsube:"⋢",nsqsupe:"⋣",nsub:"⊄",nsube:"⊈",nsubE:"⫅̸",nsubset:"⊂⃒",nsubseteq:"⊈",nsubseteqq:"⫅̸",nsucc:"⊁",nsucceq:"⪰̸",nsup:"⊅",nsupe:"⊉",nsupE:"⫆̸",nsupset:"⊃⃒",nsupseteq:"⊉",nsupseteqq:"⫆̸",ntgl:"≹",ntilde:"ñ",Ntilde:"Ñ",ntlg:"≸",ntriangleleft:"⋪",ntrianglelefteq:"⋬",ntriangleright:"⋫",ntrianglerighteq:"⋭",nu:"ν",Nu:"Ν",num:"#",numero:"№",numsp:" ",nvap:"≍⃒",nvdash:"⊬",nvDash:"⊭",nVdash:"⊮",nVDash:"⊯",nvge:"≥⃒",nvgt:">⃒",nvHarr:"⤄",nvinfin:"⧞",nvlArr:"⤂",nvle:"≤⃒",nvlt:"<⃒",nvltrie:"⊴⃒",nvrArr:"⤃",nvrtrie:"⊵⃒",nvsim:"∼⃒",nwarhk:"⤣",nwarr:"↖",nwArr:"⇖",nwarrow:"↖",nwnear:"⤧",oacute:"ó",Oacute:"Ó",oast:"⊛",ocir:"⊚",ocirc:"ô",Ocirc:"Ô",ocy:"о",Ocy:"О",odash:"⊝",odblac:"ő",Odblac:"Ő",odiv:"⨸",odot:"⊙",odsold:"⦼",oelig:"œ",OElig:"Œ",ofcir:"⦿",ofr:"𝔬",Ofr:"𝔒",ogon:"˛",ograve:"ò",Ograve:"Ò",ogt:"⧁",ohbar:"⦵",ohm:"Ω",oint:"∮",olarr:"↺",olcir:"⦾",olcross:"⦻",oline:"‾",olt:"⧀",omacr:"ō",Omacr:"Ō",omega:"ω",Omega:"Ω",omicron:"ο",Omicron:"Ο",omid:"⦶",ominus:"⊖",oopf:"𝕠",Oopf:"𝕆",opar:"⦷",OpenCurlyDoubleQuote:"“",OpenCurlyQuote:"‘",operp:"⦹",oplus:"⊕",or:"∨",Or:"⩔",orarr:"↻",ord:"⩝",order:"ℴ",orderof:"ℴ",ordf:"ª",ordm:"º",origof:"⊶",oror:"⩖",orslope:"⩗",orv:"⩛",oS:"Ⓢ",oscr:"ℴ",Oscr:"𝒪",oslash:"ø",Oslash:"Ø",osol:"⊘",otilde:"õ",Otilde:"Õ",otimes:"⊗",Otimes:"⨷",otimesas:"⨶",ouml:"ö",Ouml:"Ö",ovbar:"⌽",OverBar:"‾",OverBrace:"⏞",OverBracket:"⎴",OverParenthesis:"⏜",par:"∥",para:"¶",parallel:"∥",parsim:"⫳",parsl:"⫽",part:"∂",PartialD:"∂",pcy:"п",Pcy:"П",percnt:"%",period:".",permil:"‰",perp:"⊥",pertenk:"‱",pfr:"𝔭",Pfr:"𝔓",phi:"φ",Phi:"Φ",phiv:"ϕ",phmmat:"ℳ",phone:"☎",pi:"π",Pi:"Π",pitchfork:"⋔",piv:"ϖ",planck:"ℏ",planckh:"ℎ",plankv:"ℏ",plus:"+",plusacir:"⨣",plusb:"⊞",pluscir:"⨢",plusdo:"∔",plusdu:"⨥",pluse:"⩲",PlusMinus:"±",plusmn:"±",plussim:"⨦",plustwo:"⨧",pm:"±",Poincareplane:"ℌ",pointint:"⨕",popf:"𝕡",Popf:"ℙ",pound:"£",pr:"≺",Pr:"⪻",prap:"⪷",prcue:"≼",pre:"⪯",prE:"⪳",prec:"≺",precapprox:"⪷",preccurlyeq:"≼",Precedes:"≺",PrecedesEqual:"⪯",PrecedesSlantEqual:"≼",PrecedesTilde:"≾",preceq:"⪯",precnapprox:"⪹",precneqq:"⪵",precnsim:"⋨",precsim:"≾",prime:"′",Prime:"″",primes:"ℙ",prnap:"⪹",prnE:"⪵",prnsim:"⋨",prod:"∏",Product:"∏",profalar:"⌮",profline:"⌒",profsurf:"⌓",prop:"∝",Proportion:"∷",Proportional:"∝",propto:"∝",prsim:"≾",prurel:"⊰",pscr:"𝓅",Pscr:"𝒫",psi:"ψ",Psi:"Ψ",puncsp:" ",qfr:"𝔮",Qfr:"𝔔",qint:"⨌",qopf:"𝕢",Qopf:"ℚ",qprime:"⁗",qscr:"𝓆",Qscr:"𝒬",quaternions:"ℍ",quatint:"⨖",quest:"?",questeq:"≟",quot:'"',QUOT:'"',rAarr:"⇛",race:"∽̱",racute:"ŕ",Racute:"Ŕ",radic:"√",raemptyv:"⦳",rang:"⟩",Rang:"⟫",rangd:"⦒",range:"⦥",rangle:"⟩",raquo:"»",rarr:"→",rArr:"⇒",Rarr:"↠",rarrap:"⥵",rarrb:"⇥",rarrbfs:"⤠",rarrc:"⤳",rarrfs:"⤞",rarrhk:"↪",rarrlp:"↬",rarrpl:"⥅",rarrsim:"⥴",rarrtl:"↣",Rarrtl:"⤖",rarrw:"↝",ratail:"⤚",rAtail:"⤜",ratio:"∶",rationals:"ℚ",rbarr:"⤍",rBarr:"⤏",RBarr:"⤐",rbbrk:"❳",rbrace:"}",rbrack:"]",rbrke:"⦌",rbrksld:"⦎",rbrkslu:"⦐",rcaron:"ř",Rcaron:"Ř",rcedil:"ŗ",Rcedil:"Ŗ",rceil:"⌉",rcub:"}",rcy:"р",Rcy:"Р",rdca:"⤷",rdldhar:"⥩",rdquo:"”",rdquor:"”",rdsh:"↳",Re:"ℜ",real:"ℜ",realine:"ℛ",realpart:"ℜ",reals:"ℝ",rect:"▭",reg:"®",REG:"®",ReverseElement:"∋",ReverseEquilibrium:"⇋",ReverseUpEquilibrium:"⥯",rfisht:"⥽",rfloor:"⌋",rfr:"𝔯",Rfr:"ℜ",rHar:"⥤",rhard:"⇁",rharu:"⇀",rharul:"⥬",rho:"ρ",Rho:"Ρ",rhov:"ϱ",RightAngleBracket:"⟩",rightarrow:"→",Rightarrow:"⇒",RightArrow:"→",RightArrowBar:"⇥",RightArrowLeftArrow:"⇄",rightarrowtail:"↣",RightCeiling:"⌉",RightDoubleBracket:"⟧",RightDownTeeVector:"⥝",RightDownVector:"⇂",RightDownVectorBar:"⥕",RightFloor:"⌋",rightharpoondown:"⇁",rightharpoonup:"⇀",rightleftarrows:"⇄",rightleftharpoons:"⇌",rightrightarrows:"⇉",rightsquigarrow:"↝",RightTee:"⊢",RightTeeArrow:"↦",RightTeeVector:"⥛",rightthreetimes:"⋌",RightTriangle:"⊳",RightTriangleBar:"⧐",RightTriangleEqual:"⊵",RightUpDownVector:"⥏",RightUpTeeVector:"⥜",RightUpVector:"↾",RightUpVectorBar:"⥔",RightVector:"⇀",RightVectorBar:"⥓",ring:"˚",risingdotseq:"≓",rlarr:"⇄",rlhar:"⇌",rlm:"",rmoust:"⎱",rmoustache:"⎱",rnmid:"⫮",roang:"⟭",roarr:"⇾",robrk:"⟧",ropar:"⦆",ropf:"𝕣",Ropf:"ℝ",roplus:"⨮",rotimes:"⨵",RoundImplies:"⥰",rpar:")",rpargt:"⦔",rppolint:"⨒",rrarr:"⇉",Rrightarrow:"⇛",rsaquo:"›",rscr:"𝓇",Rscr:"ℛ",rsh:"↱",Rsh:"↱",rsqb:"]",rsquo:"’",rsquor:"’",rthree:"⋌",rtimes:"⋊",rtri:"▹",rtrie:"⊵",rtrif:"▸",rtriltri:"⧎",RuleDelayed:"⧴",ruluhar:"⥨",rx:"℞",sacute:"ś",Sacute:"Ś",sbquo:"‚",sc:"≻",Sc:"⪼",scap:"⪸",scaron:"š",Scaron:"Š",sccue:"≽",sce:"⪰",scE:"⪴",scedil:"ş",Scedil:"Ş",scirc:"ŝ",Scirc:"Ŝ",scnap:"⪺",scnE:"⪶",scnsim:"⋩",scpolint:"⨓",scsim:"≿",scy:"с",Scy:"С",sdot:"⋅",sdotb:"⊡",sdote:"⩦",searhk:"⤥",searr:"↘",seArr:"⇘",searrow:"↘",sect:"§",semi:";",seswar:"⤩",setminus:"∖",setmn:"∖",sext:"✶",sfr:"𝔰",Sfr:"𝔖",sfrown:"⌢",sharp:"♯",shchcy:"щ",SHCHcy:"Щ",shcy:"ш",SHcy:"Ш",ShortDownArrow:"↓",ShortLeftArrow:"←",shortmid:"∣",shortparallel:"∥",ShortRightArrow:"→",ShortUpArrow:"↑",shy:"",sigma:"σ",Sigma:"Σ",sigmaf:"ς",sigmav:"ς",sim:"∼",simdot:"⩪",sime:"≃",simeq:"≃",simg:"⪞",simgE:"⪠",siml:"⪝",simlE:"⪟",simne:"≆",simplus:"⨤",simrarr:"⥲",slarr:"←",SmallCircle:"∘",smallsetminus:"∖",smashp:"⨳",smeparsl:"⧤",smid:"∣",smile:"⌣",smt:"⪪",smte:"⪬",smtes:"⪬︀",softcy:"ь",SOFTcy:"Ь",sol:"/",solb:"⧄",solbar:"⌿",sopf:"𝕤",Sopf:"𝕊",spades:"♠",spadesuit:"♠",spar:"∥",sqcap:"⊓",sqcaps:"⊓︀",sqcup:"⊔",sqcups:"⊔︀",Sqrt:"√",sqsub:"⊏",sqsube:"⊑",sqsubset:"⊏",sqsubseteq:"⊑",sqsup:"⊐",sqsupe:"⊒",sqsupset:"⊐",sqsupseteq:"⊒",squ:"□",square:"□",Square:"□",SquareIntersection:"⊓",SquareSubset:"⊏",SquareSubsetEqual:"⊑",SquareSuperset:"⊐",SquareSupersetEqual:"⊒",SquareUnion:"⊔",squarf:"▪",squf:"▪",srarr:"→",sscr:"𝓈",Sscr:"𝒮",ssetmn:"∖",ssmile:"⌣",sstarf:"⋆",star:"☆",Star:"⋆",starf:"★",straightepsilon:"ϵ",straightphi:"ϕ",strns:"¯",sub:"⊂",Sub:"⋐",subdot:"⪽",sube:"⊆",subE:"⫅",subedot:"⫃",submult:"⫁",subne:"⊊",subnE:"⫋",subplus:"⪿",subrarr:"⥹",subset:"⊂",Subset:"⋐",subseteq:"⊆",subseteqq:"⫅",SubsetEqual:"⊆",subsetneq:"⊊",subsetneqq:"⫋",subsim:"⫇",subsub:"⫕",subsup:"⫓",succ:"≻",succapprox:"⪸",succcurlyeq:"≽",Succeeds:"≻",SucceedsEqual:"⪰",SucceedsSlantEqual:"≽",SucceedsTilde:"≿",succeq:"⪰",succnapprox:"⪺",succneqq:"⪶",succnsim:"⋩",succsim:"≿",SuchThat:"∋",sum:"∑",Sum:"∑",sung:"♪",sup:"⊃",Sup:"⋑",sup1:"¹",sup2:"²",sup3:"³",supdot:"⪾",supdsub:"⫘",supe:"⊇",supE:"⫆",supedot:"⫄",Superset:"⊃",SupersetEqual:"⊇",suphsol:"⟉",suphsub:"⫗",suplarr:"⥻",supmult:"⫂",supne:"⊋",supnE:"⫌",supplus:"⫀",supset:"⊃",Supset:"⋑",supseteq:"⊇",supseteqq:"⫆",supsetneq:"⊋",supsetneqq:"⫌",supsim:"⫈",supsub:"⫔",supsup:"⫖",swarhk:"⤦",swarr:"↙",swArr:"⇙",swarrow:"↙",swnwar:"⤪",szlig:"ß",Tab:"\t",target:"⌖",tau:"τ",Tau:"Τ",tbrk:"⎴",tcaron:"ť",Tcaron:"Ť",tcedil:"ţ",Tcedil:"Ţ",tcy:"т",Tcy:"Т",tdot:"⃛",telrec:"⌕",tfr:"𝔱",Tfr:"𝔗",there4:"∴",therefore:"∴",Therefore:"∴",theta:"θ",Theta:"Θ",thetasym:"ϑ",thetav:"ϑ",thickapprox:"≈",thicksim:"∼",ThickSpace:" ",thinsp:" ",ThinSpace:" ",thkap:"≈",thksim:"∼",thorn:"þ",THORN:"Þ",tilde:"˜",Tilde:"∼",TildeEqual:"≃",TildeFullEqual:"≅",TildeTilde:"≈",times:"×",timesb:"⊠",timesbar:"⨱",timesd:"⨰",tint:"∭",toea:"⤨",top:"⊤",topbot:"⌶",topcir:"⫱",topf:"𝕥",Topf:"𝕋",topfork:"⫚",tosa:"⤩",tprime:"‴",trade:"™",TRADE:"™",triangle:"▵",triangledown:"▿",triangleleft:"◃",trianglelefteq:"⊴",triangleq:"≜",triangleright:"▹",trianglerighteq:"⊵",tridot:"◬",trie:"≜",triminus:"⨺",TripleDot:"⃛",triplus:"⨹",trisb:"⧍",tritime:"⨻",trpezium:"⏢",tscr:"𝓉",Tscr:"𝒯",tscy:"ц",TScy:"Ц",tshcy:"ћ",TSHcy:"Ћ",tstrok:"ŧ",Tstrok:"Ŧ",twixt:"≬",twoheadleftarrow:"↞",twoheadrightarrow:"↠",uacute:"ú",Uacute:"Ú",uarr:"↑",uArr:"⇑",Uarr:"↟",Uarrocir:"⥉",ubrcy:"ў",Ubrcy:"Ў",ubreve:"ŭ",Ubreve:"Ŭ",ucirc:"û",Ucirc:"Û",ucy:"у",Ucy:"У",udarr:"⇅",udblac:"ű",Udblac:"Ű",udhar:"⥮",ufisht:"⥾",ufr:"𝔲",Ufr:"𝔘",ugrave:"ù",Ugrave:"Ù",uHar:"⥣",uharl:"↿",uharr:"↾",uhblk:"▀",ulcorn:"⌜",ulcorner:"⌜",ulcrop:"⌏",ultri:"◸",umacr:"ū",Umacr:"Ū",uml:"¨",UnderBar:"_",UnderBrace:"⏟",UnderBracket:"⎵",UnderParenthesis:"⏝",Union:"⋃",UnionPlus:"⊎",uogon:"ų",Uogon:"Ų",uopf:"𝕦",Uopf:"𝕌",uparrow:"↑",Uparrow:"⇑",UpArrow:"↑",UpArrowBar:"⤒",UpArrowDownArrow:"⇅",updownarrow:"↕",Updownarrow:"⇕",UpDownArrow:"↕",UpEquilibrium:"⥮",upharpoonleft:"↿",upharpoonright:"↾",uplus:"⊎",UpperLeftArrow:"↖",UpperRightArrow:"↗",upsi:"υ",Upsi:"ϒ",upsih:"ϒ",upsilon:"υ",Upsilon:"Υ",UpTee:"⊥",UpTeeArrow:"↥",upuparrows:"⇈",urcorn:"⌝",urcorner:"⌝",urcrop:"⌎",uring:"ů",Uring:"Ů",urtri:"◹",uscr:"𝓊",Uscr:"𝒰",utdot:"⋰",utilde:"ũ",Utilde:"Ũ",utri:"▵",utrif:"▴",uuarr:"⇈",uuml:"ü",Uuml:"Ü",uwangle:"⦧",vangrt:"⦜",varepsilon:"ϵ",varkappa:"ϰ",varnothing:"∅",varphi:"ϕ",varpi:"ϖ",varpropto:"∝",varr:"↕",vArr:"⇕",varrho:"ϱ",varsigma:"ς",varsubsetneq:"⊊︀",varsubsetneqq:"⫋︀",varsupsetneq:"⊋︀",varsupsetneqq:"⫌︀",vartheta:"ϑ",vartriangleleft:"⊲",vartriangleright:"⊳",vBar:"⫨",Vbar:"⫫",vBarv:"⫩",vcy:"в",Vcy:"В",vdash:"⊢",vDash:"⊨",Vdash:"⊩",VDash:"⊫",Vdashl:"⫦",vee:"∨",Vee:"⋁",veebar:"⊻",veeeq:"≚",vellip:"⋮",verbar:"|",Verbar:"‖",vert:"|",Vert:"‖",VerticalBar:"∣",VerticalLine:"|",VerticalSeparator:"❘",VerticalTilde:"≀",VeryThinSpace:" ",vfr:"𝔳",Vfr:"𝔙",vltri:"⊲",vnsub:"⊂⃒",vnsup:"⊃⃒",vopf:"𝕧",Vopf:"𝕍",vprop:"∝",vrtri:"⊳",vscr:"𝓋",Vscr:"𝒱",vsubne:"⊊︀",vsubnE:"⫋︀",vsupne:"⊋︀",vsupnE:"⫌︀",Vvdash:"⊪",vzigzag:"⦚",wcirc:"ŵ",Wcirc:"Ŵ",wedbar:"⩟",wedge:"∧",Wedge:"⋀",wedgeq:"≙",weierp:"℘",wfr:"𝔴",Wfr:"𝔚",wopf:"𝕨",Wopf:"𝕎",wp:"℘",wr:"≀",wreath:"≀",wscr:"𝓌",Wscr:"𝒲",xcap:"⋂",xcirc:"◯",xcup:"⋃",xdtri:"▽",xfr:"𝔵",Xfr:"𝔛",xharr:"⟷",xhArr:"⟺",xi:"ξ",Xi:"Ξ",xlarr:"⟵",xlArr:"⟸",xmap:"⟼",xnis:"⋻",xodot:"⨀",xopf:"𝕩",Xopf:"𝕏",xoplus:"⨁",xotime:"⨂",xrarr:"⟶",xrArr:"⟹",xscr:"𝓍",Xscr:"𝒳",xsqcup:"⨆",xuplus:"⨄",xutri:"△",xvee:"⋁",xwedge:"⋀",yacute:"ý",Yacute:"Ý",yacy:"я",YAcy:"Я",ycirc:"ŷ",Ycirc:"Ŷ",ycy:"ы",Ycy:"Ы",yen:"¥",yfr:"𝔶",Yfr:"𝔜",yicy:"ї",YIcy:"Ї",yopf:"𝕪",Yopf:"𝕐",yscr:"𝓎",Yscr:"𝒴",yucy:"ю",YUcy:"Ю",yuml:"ÿ",Yuml:"Ÿ",zacute:"ź",Zacute:"Ź",zcaron:"ž",Zcaron:"Ž",zcy:"з",Zcy:"З",zdot:"ż",Zdot:"Ż",zeetrf:"ℨ",ZeroWidthSpace:"",zeta:"ζ",Zeta:"Ζ",zfr:"𝔷",Zfr:"ℨ",zhcy:"ж",ZHcy:"Ж",zigrarr:"⇝",zopf:"𝕫",Zopf:"ℤ",zscr:"𝓏",Zscr:"𝒵",zwj:"",zwnj:""},f={aacute:"á",Aacute:"Á",acirc:"â",Acirc:"Â",acute:"´",aelig:"æ",AElig:"Æ",agrave:"à",Agrave:"À",amp:"&",AMP:"&",aring:"å",Aring:"Å",atilde:"ã",Atilde:"Ã",auml:"ä",Auml:"Ä",brvbar:"¦",ccedil:"ç",Ccedil:"Ç",cedil:"¸",cent:"¢",copy:"©",COPY:"©",curren:"¤",deg:"°",divide:"÷",eacute:"é",Eacute:"É",ecirc:"ê",Ecirc:"Ê",egrave:"è",Egrave:"È",eth:"ð",ETH:"Ð",euml:"ë",Euml:"Ë",frac12:"½",frac14:"¼",frac34:"¾",gt:">",GT:">",iacute:"í",Iacute:"Í",icirc:"î",Icirc:"Î",iexcl:"¡",igrave:"ì",Igrave:"Ì",iquest:"¿",iuml:"ï",Iuml:"Ï",laquo:"«",lt:"<",LT:"<",macr:"¯",micro:"µ",middot:"·",nbsp:" ",not:"¬",ntilde:"ñ",Ntilde:"Ñ",oacute:"ó",Oacute:"Ó",ocirc:"ô",Ocirc:"Ô",ograve:"ò",Ograve:"Ò",ordf:"ª",ordm:"º",oslash:"ø",Oslash:"Ø",otilde:"õ",Otilde:"Õ",ouml:"ö",Ouml:"Ö",para:"¶",plusmn:"±",pound:"£",quot:'"',QUOT:'"',raquo:"»",reg:"®",REG:"®",sect:"§",shy:"",sup1:"¹",sup2:"²",sup3:"³",szlig:"ß",thorn:"þ",THORN:"Þ",times:"×",uacute:"ú",Uacute:"Ú",ucirc:"û",Ucirc:"Û",ugrave:"ù",Ugrave:"Ù",uml:"¨",uuml:"ü",Uuml:"Ü",yacute:"ý",Yacute:"Ý",yen:"¥",yuml:"ÿ"},y={0:"�",128:"€",130:"‚",131:"ƒ",132:"„",133:"…",134:"†",135:"‡",136:"ˆ",137:"‰",138:"Š",139:"‹",140:"Œ",142:"Ž",145:"‘",146:"’",147:"“",148:"”",149:"•",150:"–",151:"—",152:"˜",153:"™",154:"š",155:"›",156:"œ",158:"ž",159:"Ÿ"},v=[1,2,3,4,5,6,7,8,11,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,64976,64977,64978,64979,64980,64981,64982,64983,64984,64985,64986,64987,64988,64989,64990,64991,64992,64993,64994,64995,64996,64997,64998,64999,65e3,65001,65002,65003,65004,65005,65006,65007,65534,65535,131070,131071,196606,196607,262142,262143,327678,327679,393214,393215,458750,458751,524286,524287,589822,589823,655358,655359,720894,720895,786430,786431,851966,851967,917502,917503,983038,983039,1048574,1048575,1114110,1114111],w=String.fromCharCode,S={}.hasOwnProperty,x=function(e,t){return S.call(e,t)},k=function(e,t){if(!e)return t;var s,a={};for(s in t)a[s]=x(e,s)?e[s]:t[s];return a},E=function(e,t){var s="";return e>=55296&&e<=57343||e>1114111?(t&&D("character reference outside the permissible Unicode range"),"�"):x(y,e)?(t&&D("disallowed character reference"),y[e]):(t&&function(e,t){for(var s=-1,a=e.length;++s<a;)if(e[s]==t)return!0;return!1}(v,e)&&D("disallowed character reference"),e>65535&&(s+=w((e-=65536)>>>10&1023|55296),e=56320|1023&e),s+=w(e))},A=function(e){return"&#x"+e.toString(16).toUpperCase()+";"},T=function(e){return"&#"+e+";"},D=function(e){throw Error("Parse error: "+e)},L=function(e,t){(t=k(t,L.options)).strict&&m.test(e)&&D("forbidden code point");var s=t.encodeEverything,a=t.useNamedReferences,i=t.allowUnsafeSymbols,r=t.decimal?T:A,d=function(e){return r(e.charCodeAt(0))};return s?(e=e.replace(o,(function(e){return a&&x(u,e)?"&"+u[e]+";":d(e)})),a&&(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒").replace(/fj/g,"fj")),a&&(e=e.replace(c,(function(e){return"&"+u[e]+";"})))):a?(i||(e=e.replace(h,(function(e){return"&"+u[e]+";"}))),e=(e=e.replace(/>\u20D2/g,">⃒").replace(/<\u20D2/g,"<⃒")).replace(c,(function(e){return"&"+u[e]+";"}))):i||(e=e.replace(h,d)),e.replace(n,(function(e){var t=e.charCodeAt(0),s=e.charCodeAt(1);return r(1024*(t-55296)+s-56320+65536)})).replace(l,d)};L.options={allowUnsafeSymbols:!1,encodeEverything:!1,strict:!1,useNamedReferences:!1,decimal:!1};var C=function(e,t){var s=(t=k(t,C.options)).strict;return s&&p.test(e)&&D("malformed character reference"),e.replace(g,(function(e,a,i,r,n,o,l,c,u){var h,d,p,m,g,y;return a?b[g=a]:i?(g=i,(y=r)&&t.isAttributeValue?(s&&"="==y&&D("`&` did not start a character reference"),e):(s&&D("named character reference was not terminated by a semicolon"),f[g]+(y||""))):n?(p=n,d=o,s&&!d&&D("character reference was not terminated by a semicolon"),h=parseInt(p,10),E(h,s)):l?(m=l,d=c,s&&!d&&D("character reference was not terminated by a semicolon"),h=parseInt(m,16),E(h,s)):(s&&D("named character reference was not terminated by a semicolon"),e)}))};C.options={isAttributeValue:!1,strict:!1};var q={version:"1.2.0",encode:L,decode:C,escape:function(e){return e.replace(h,(function(e){return d[e]}))},unescape:C};void 0===(a=function(){return q}.call(t,s,t,e))||(e.exports=a)}()}},t={};function s(a){var i=t[a];if(void 0!==i)return i.exports;var r=t[a]={id:a,loaded:!1,exports:{}};return e[a].call(r.exports,r,r.exports,s),r.loaded=!0,r.exports}s.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),s.nmd=function(e){return e.paths=[],e.children||(e.children=[]),e},function(){"use strict";var e=JSON.parse('[{"name":"showTitleScreen","label":"Show title screen","description":"If checked, a title screen will show up when starting.","type":"boolean","default":false,"optional":true},{"name":"titleScreen","label":"Title screen","type":"group","importance":"low","fields":[{"name":"titleScreenIntroduction","label":"Introduction","type":"text","widget":"html","placeholder":"Welcome to ...","optional":true,"enterMode":"div","tags":["sub","sup","strong","em","p","code","u","del","a","ul","ol","hr","pre","code"],"font":{"size":true,"color":true,"background":true},"default":"<p style=\\"text-align: center;\\"></p>"},{"name":"titleScreenMedium","label":"Title screen media","type":"library","optional":true,"options":["H5P.Image 1.1","H5P.Video 1.6"]}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"showTitleScreen","equals":true}]}},{"name":"headline","label":"Headline","type":"text","description":"Optional headline for the titlebar.","optional":true},{"name":"gamemapSteps","type":"group","label":"Game map editor","importance":"high","widget":"wizard","fields":[{"name":"backgroundImageSettings","label":"Background","type":"group","importance":"high","fields":[{"name":"backgroundImage","type":"image","label":"Background image","importance":"high","description":"Select an image to use as the background of the game map.","optional":true},{"name":"backgroundColor","type":"text","label":"Background color","description":"Choose a color to use as the background of the game map.","default":"rgb(255, 255, 255)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"preferredFormat":"rgb"}}]},{"name":"gamemap","label":"Game map","type":"group","importance":"high","widget":"gamemap","fields":[{"name":"dummy","type":"boolean","widget":"none","optional":true},{"name":"elements","type":"list","label":"Elements","importance":"high","entity":"Element","field":{"name":"elements","type":"group","label":"Elements","importance":"high","fields":[{"name":"id","type":"text","label":"Id","widget":"none"},{"name":"type","type":"text","label":"Type","widget":"none"},{"name":"label","type":"text","label":"Stage label","description":"This label will be displayed on top of your exercise and will help you to connect different stages with one another.","importance":"medium"},{"name":"canBeStartStage","type":"boolean","label":"User can start here","description":"If checked, this stage will be a stage that the user start at. If no stage or more than one stage can be the start stage, the starting stage will be chosen randomly.","importance":"medium","default":false},{"name":"time","type":"group","label":"Time limit","description":"Define timer related settings.","fields":[{"name":"timeLimit","type":"number","label":"Time limit","description":"Optional time limit in seconds. If a user exceeds this time, the exercise will close, be reset, and the user will loose a life if lives are limited.","min":1,"optional":true},{"name":"timeoutWarning","type":"number","label":"Timeout warning time","description":"Optionally set when a timeout warning audio should be played (number of remaining seconds). An audio needs to be set in the audio settings.","min":1,"optional":true}]},{"name":"accessRestrictions","type":"group","label":"Access restrictions","description":"Define restrictions for unlocking.","fields":[{"name":"allOrAnyRestrictionSet","type":"select","label":"All or any restriction set","description":"Choose if all or any of the following restrictions need to be met.","optional":true,"options":[{"value":"all","label":"All"},{"value":"any","label":"Any"}],"default":"all"},{"name":"restrictionSetList","type":"list","optional":true,"label":"Restriction sets","entity":"restriction set","widgets":[{"name":"VerticalTabs","label":"Default"}],"field":{"name":"restrictionSetGroup","type":"group","label":"Restriction set","fields":[{"name":"allOrAnyRestriction","type":"select","label":"All or any restriction","description":"Choose if all or any of the following restrictions need to be met.","options":[{"value":"all","label":"All"},{"value":"any","label":"Any"}],"default":"any"},{"name":"restrictionList","type":"list","label":"Restrictions","entity":"restriction","optional":true,"field":{"name":"restrictionGroup","type":"group","label":"Restriction","fields":[{"name":"restrictionType","label":"Restriction type","type":"select","optional":true,"options":[{"value":"totalScore","label":"Total score"},{"value":"stageScore","label":"Stage score"},{"value":"stageProgress","label":"Stage progress"},{"value":"time","label":"Time"}],"default":"totalScore"},{"name":"totalScoreGroup","type":"group","label":"Total score","expanded":true,"fields":[{"name":"totalScoreOperator","label":"Operator for total score","type":"select","optional":true,"options":[{"value":"lessThan","label":"less than"},{"value":"equalTo","label":"equal to"},{"value":"notEqualTo","label":"not equal to"},{"value":"greaterThan","label":"greater than"}],"default":"greaterThan"},{"name":"totalScoreValue","label":"Value of total score to compare to","type":"number","optional":true}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"restrictionType","equals":"totalScore"}]}},{"name":"stageScoreGroup","type":"group","label":"Stage score","expanded":true,"fields":[{"name":"stageScoreId","type":"select","label":"Stage to get score from","widget":"gamemapstageselect","optional":true,"options":[]},{"name":"stageScoreOperator","label":"Operator for stage score","type":"select","optional":true,"options":[{"value":"lessThan","label":"less than"},{"value":"equalTo","label":"equal to"},{"value":"notEqualTo","label":"not equal to"},{"value":"greaterThan","label":"greater than"}],"default":"before"},{"name":"stageScoreValue","label":"Score score to compare to","type":"number","optional":true}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"restrictionType","equals":"stageScore"}]}},{"name":"stageProgressGroup","type":"group","label":"Stage progress","expanded":true,"fields":[{"name":"stageProgressId","type":"select","label":"Stage to get progress from","widget":"gamemapstageselect","optional":true,"options":[]},{"name":"stageProgressOperator","label":"Operator for stage progress","type":"select","optional":true,"options":[{"value":"is","label":"is"},{"value":"isNot","label":"is not"}],"default":"is"},{"name":"stageProgressValue","label":"Progress to compare to","type":"select","options":[{"value":"unstarted","label":"not started"},{"value":"opened","label":"started"},{"value":"completed","label":"completed"},{"value":"cleared","label":"completed successfully"}],"default":"open","optional":true}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"restrictionType","equals":"stageProgress"}]}},{"name":"timeGroup","type":"group","label":"Time","expanded":true,"fields":[{"name":"timeOperator","label":"Operator for time","type":"select","optional":true,"options":[{"value":"before","label":"before"},{"value":"is","label":"is"},{"value":"is not","label":"is not"},{"value":"after","label":"after"}],"default":"before"},{"name":"timeValue","label":"Time to compare to","type":"text","widget":"datetime","optional":true}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"restrictionType","equals":"time"}]}}]}}]}},{"name":"dummy","type":"boolean","label":"Dummy","widget":"none","optional":true}]},{"name":"contentsList","type":"list","label":"Contents","entity":"content","min":1,"widgets":[{"name":"VerticalTabs","label":"Default"}],"field":{"name":"contentsGroup","type":"group","label":"Content","fields":[{"name":"contentType","type":"library","label":"Stage content","description":"Choose the type of content you would like to add.","importance":"high","options":["H5P.Accordion 1.0","H5P.Agamotto 1.6","H5P.Audio 1.5","H5P.AudioRecorder 1.0","H5P.ChoiceExplorer 1.0","H5P.CombinationLock 1.0","H5P.CoursePresentation 1.26","H5P.Crossword 0.5","H5P.Dialogcards 1.9","H5P.DragQuestion 1.14","H5P.DragText 1.10","H5P.Essay 1.5","H5P.Blanks 1.14","H5P.ImageHotspotQuestion 1.8","H5P.Image 1.1","H5P.MultiMediaChoice 0.3","H5P.ImageHotspots 1.10","H5P.ImageSlider 1.1","H5P.InteractiveVideo 1.27","H5P.MarkTheWords 1.11","H5P.MemoryGame 1.3","H5P.MultiChoice 1.16","H5P.QuestionSet 1.20","H5P.SingleChoiceSet 1.11","H5P.Tabs 1.1","H5P.AdvancedText 1.1","H5P.Transcript 1.1","H5P.TrueFalse 1.8","H5P.Video 1.6","H5P.XRay 0.1"]},{"name":"dummy","type":"boolean","label":"Dummy","widget":"none"}]}},{"name":"specialStageType","type":"select","label":"Special stage type","options":[{"value":"finish","label":"Finish"},{"value":"extra-life","label":"Extra life"},{"value":"extra-time","label":"Extra time"},{"value":"link","label":"Link to external content"}]},{"name":"specialStageExtraLives","type":"number","label":"Number of extra lives","description":"Set how many lives the user will get when entering this stage.","default":1,"min":1},{"name":"specialStageExtraTime","type":"number","label":"Number of seconds of extra time","description":"Set how many seconds the user will gain for the global time limit when entering this stage.","default":1,"min":1},{"name":"specialStageLinkURL","type":"text","label":"URL to link to","description":"Set where the user should be sent to when opening this stage.","optional":false},{"name":"specialStageLinkTarget","type":"select","label":"Place to open link in","options":[{"value":"_blank","label":"New tab"},{"value":"_parent","label":"Same tab"}],"default":"_blank"},{"name":"alwaysVisible","type":"boolean","label":"Always visible","description":"If checked, this stage will always be visible, even if the map\'s visibility range settings dictate otherwise.","default":false,"optional":true},{"name":"overrideSymbol","type":"boolean","label":"Override lock symbol","description":"If checked, locked stages will not use the lock symbol, but the symbol for the special stage type.","default":false,"optional":true},{"name":"neighbors","type":"select","label":"Connected stages","widget":"gamemapdynamiccheckboxes","importance":"medium","multiple":true,"options":[]},{"name":"telemetry","type":"group","label":"Telemetry","importance":"low","widget":"none","fields":[{"name":"x","type":"text"},{"name":"y","type":"text"},{"name":"height","type":"text"},{"name":"width","type":"text"}]}]}},{"name":"paths","type":"list","label":"Paths","entity":"path","field":{"name":"pathsGroup","type":"group","label":"Path","fields":[{"name":"from","type":"number","label":"From","widget":"none"},{"name":"to","type":"number","label":"To","widget":"none"},{"name":"visualsType","type":"select","label":"Visual settings","options":[{"value":"global","label":"Use global settings"},{"value":"custom","label":"Use custom settings"}],"default":"global"},{"name":"customVisuals","type":"group","expanded":true,"label":"Custom visual settings","fields":[{"name":"colorPath","type":"text","label":"Color path","optional":true,"default":"rgba(0, 0, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"pathWidth","type":"select","label":"Path width","default":"0.2","optional":false,"options":[{"value":"0.1","label":"thin"},{"value":"0.2","label":"medium"},{"value":"0.3","label":"thick"}]},{"name":"pathStyle","type":"select","label":"Path style","default":"dotted","optional":false,"options":[{"value":"solid","label":"Solid"},{"value":"dotted","label":"Dotted"},{"value":"dashed","label":"Dashed"},{"value":"double","label":"Double"}]}],"widget":"gamemapshowwhen","gamemapshowwhen":{"rules":[{"field":"visualsType","equals":"custom"}]}}]}}]}]},{"name":"endScreen","label":"End screen","type":"group","importance":"low","fields":[{"name":"noSuccess","label":"User not successful","type":"group","importance":"low","fields":[{"name":"endScreenTextNoSuccess","label":"Message (user not successful)","type":"text","widget":"html","placeholder":"You did not make it this time ...","optional":true,"enterMode":"div","tags":["sub","sup","strong","em","p","code","u","del","a","ul","ol","hr","pre","code"],"font":{"size":true,"color":true,"background":true},"default":"<p style=\\"text-align: center;\\"></p>"},{"name":"endScreenMediumNoSuccess","label":"End screen media (user not successful)","type":"library","optional":true,"options":["H5P.Image 1.1","H5P.Video 1.6"]}]},{"name":"success","label":"User successful","type":"group","importance":"low","fields":[{"name":"endScreenTextSuccess","label":"Message (user successful)","type":"text","widget":"html","placeholder":"You made it ...","optional":true,"enterMode":"div","tags":["sub","sup","strong","em","p","code","u","del","a","ul","ol","hr","pre","code"],"font":{"size":true,"color":true,"background":true},"default":"<p style=\\"text-align: center;\\"></p>"},{"name":"endScreenMediumSuccess","label":"End screen media (user successful)","type":"library","optional":true,"options":["H5P.Image 1.1","H5P.Video 1.6"]}]},{"name":"overallFeedback","type":"group","label":"Overall Feedback","importance":"low","expanded":true,"fields":[{"name":"overallFeedback","type":"list","widgets":[{"name":"RangeList","label":"Default"}],"importance":"high","label":"Define custom feedback for any score range","description":"Click the \\"Add range\\" button to add as many ranges as you need. Example: 0-20% Bad score, 21-91% Average Score, 91-100% Great Score!","entity":"range","min":1,"defaultNum":1,"optional":true,"field":{"name":"overallFeedback","type":"group","importance":"low","fields":[{"name":"from","type":"number","label":"Score Range","min":0,"max":100,"default":0,"unit":"%"},{"name":"to","type":"number","min":0,"max":100,"default":100,"unit":"%"},{"name":"feedback","type":"text","label":"Feedback for defined score range","placeholder":"Fill in the feedback","optional":true}]}}]}]},{"name":"visual","type":"group","importance":"low","label":"Visual settings","fields":[{"name":"stages","type":"group","label":"Stages","importance":"low","optional":true,"fields":[{"name":"colorStage","type":"text","label":"Color not visited stage","optional":true,"default":"rgba(250, 223, 10, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"colorStageLocked","type":"text","label":"Color locked stage","optional":true,"default":"rgba(153, 0, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"colorStageCleared","type":"text","label":"Color cleared stage","optional":true,"default":"rgba(0, 130, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"showScoreStars","type":"select","label":"Show stars for scores","description":"Choose if and when stars will be displayed on the map for the scores of the stages. Please note that stages without scored exercises will not get the stars.","options":[{"value":"never","label":"Never"},{"value":"onHover","label":"On hover"},{"value":"always","label":"Always"}],"default":"never"}]},{"name":"paths","type":"group","label":"Paths","importance":"low","optional":true,"fields":[{"name":"displayPaths","type":"boolean","label":"Display paths","description":"Choose whether paths will be displayed on the map. Please note: The paths are always visible in the editor.","optional":true,"default":true},{"name":"style","type":"group","label":"Style","importance":"low","expanded":true,"fields":[{"name":"colorPath","type":"text","label":"Color path","optional":true,"default":"rgba(0, 0, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"colorPathCleared","type":"text","label":"Color path cleared","optional":true,"default":"rgba(0, 130, 0, 0.7)","widget":"colorSelector","spectrum":{"showInput":true,"showInitial":true,"showAlpha":true,"preferredFormat":"rgb"}},{"name":"pathWidth","type":"select","label":"Path width","default":"0.2","optional":false,"options":[{"value":"0.1","label":"thin"},{"value":"0.2","label":"medium"},{"value":"0.3","label":"thick"}]},{"name":"pathStyle","type":"select","label":"Path style","default":"dotted","optional":false,"options":[{"value":"solid","label":"Solid"},{"value":"dotted","label":"Dotted"},{"value":"dashed","label":"Dashed"},{"value":"double","label":"Double"}]}]}]},{"name":"misc","type":"group","label":"Miscellaneous","collapsed":true,"importance":"low","fields":[{"name":"useAnimation","type":"boolean","label":"Animate map","description":"Decide if the map should be animated. Even if you set this option, the content type will honor the users\' browser setting if they prefer reduced motion.","default":true},{"name":"dummy","type":"boolean","label":"Dummy","widget":"none"}]}]},{"name":"audio","type":"group","importance":"low","label":"Audio settings","fields":[{"name":"backgroundMusic","type":"group","importance":"low","label":"Background music","fields":[{"name":"music","type":"audio","label":"Background music","optional":true},{"name":"muteDuringExercise","type":"boolean","label":"Mute when taking exercises","default":true,"optional":true}]},{"name":"ambient","type":"group","importance":"low","label":"Events","fields":[{"name":"clickStageLocked","type":"audio","label":"Click on locked stage","description":"Will be played on the map when clicking on a locked stage.","optional":true},{"name":"checkExerciseNotFullScore","type":"audio","label":"Check exercise (not full score)","description":"Will be played when an answer is checked and the user did not get full score.","optional":true},{"name":"checkExerciseFullScore","type":"audio","label":"Check exercise (full score)","description":"Will be played when an answer is checked and the user did get full score.","optional":true},{"name":"unlockStage","type":"audio","label":"Unlocking a stage","description":"Will be played on the map when a stage gets unlocked.","optional":true},{"name":"openExercise","type":"audio","label":"Open exercise","description":"Will be played when an exercise is opened.","optional":true},{"name":"closeExercise","type":"audio","label":"Close exercise","description":"Will be played when an exercise is closed.","optional":true},{"name":"showDialog","type":"audio","label":"Show dialog","description":"Will be played when a confirmation dialog is shown.","optional":true},{"name":"fullScore","type":"audio","label":"Full score","description":"Will be played when the user reaches full score for the map.","optional":true},{"name":"lostLife","type":"audio","label":"Lost a life","description":"Will be played when the user loses a life.","optional":true},{"name":"gainedLife","type":"audio","label":"Gained life","description":"Will be played when the user gains a life.","optional":true},{"name":"gameOver","type":"audio","label":"Game over","description":"Will be played when the user is game over.","optional":true},{"name":"extraTime","type":"audio","label":"Gained extra time","description":"Will be played when the user gains extra time.","optional":true},{"name":"timeoutWarning","type":"audio","label":"Timeout warning","description":"Will be played when the user is running out of time for an exercise or if the global time runs out.","optional":true},{"name":"endscreenNoSuccess","type":"audio","label":"End screen (not full score)","description":"Will be played on the end screen if the user did not get full score.","optional":true},{"name":"endscreenSuccess","type":"audio","label":"End screen (full score)","description":"Will be played on the end screen if the user got full score.","optional":true}]}]},{"name":"behaviour","type":"group","importance":"low","label":"Behavioural settings","fields":[{"name":"lives","label":"Lives","description":"Set the number of lives for a user or leave empty for unlimited lives. Users will lose a life when they do not get full score and they cannot continue once all lives are lost.","type":"number","min":1,"optional":true},{"name":"timeLimitGlobal","type":"number","label":"Global time limit","description":"Optional time limit in seconds for the whole game. If a user exceeds this time, the game will be over immediately.","min":1,"optional":true},{"name":"timeoutWarningGlobal","type":"number","label":"Timeout warning time","description":"Optionally set when a timeout warning audio should be played (number of remaining seconds). An audio needs to be set in the audio settings.","min":1,"optional":true},{"name":"finishScore","type":"number","label":"Finish score","description":"Optional score that can be lower than the summed maximum score of all exercises, so users can receive full score without completing all exercises.","min":0,"optional":true},{"name":"enableRetry","label":"Enable \\"Retry\\" button","type":"boolean","default":true,"optional":true},{"name":"enableSolutionsButton","label":"Enable \\"Show solutions\\" button","type":"boolean","default":true,"optional":true},{"name":"map","type":"group","label":"Map","fields":[{"name":"showLabels","type":"boolean","label":"Show stage labels","description":"Choose whether a stage\'s label will be shown on hovering a stage with the mouse. The label will not show on touch devices.","default":true},{"name":"roaming","type":"select","label":"Roaming","description":"Choose whether users can roam all stages freely, need to finish a stage to get access to that stage\'s neighbors, or need to pass a stage to get access to that stage\'s neigbors.","options":[{"value":"free","label":"Roam freely"},{"value":"complete","label":"Complete to clear stage"},{"value":"success","label":"Succeed to clear stage"}],"default":"free"},{"name":"fog","type":"select","label":"Visibility range","description":"Select how far the user can see ahead","optional":true,"options":[{"value":"all","label":"See all stages"},{"value":"1","label":"See all unlocked stages and their adjacent neighbors"},{"value":"0","label":"See only unlocked stages"}],"default":"all","widget":"gamemapshowwhen","gamemapshowwhen":{"nullWhenHidden":true,"rules":[{"field":"roaming","equals":["complete","success"]}]}}]}]},{"name":"l10n","type":"group","label":"User interface","common":true,"fields":[{"name":"start","type":"text","label":"Start","default":"Start"},{"name":"continue","type":"text","label":"Continue","default":"Continue"},{"name":"restart","type":"text","label":"Restart","default":"Restart"},{"name":"showSolutions","type":"text","label":"Show solutions","default":"Show solutions"},{"name":"completedMap","type":"text","label":"Completed the map","default":"You have completed the map!"},{"name":"fullScoreButnoLivesLeft","type":"text","label":"Full score, but no lives left","default":"You have achieved full score, but lost all your lifes!"},{"name":"fullScoreButTimeout","type":"text","label":"Full score, but timed out","default":"You have achieved full score, but ran out of time!"},{"name":"confirmFinishHeader","type":"text","label":"Dialog header finish map","default":"Finish map?"},{"name":"confirmFinishDialog","type":"text","label":"Dialog text finish map: General","default":"If you finish now, you will not be able to explore the map any longer."},{"name":"confirmFinishDialogSubmission","type":"text","label":"Dialog text finish map: Submission","default":"Your score will be submitted."},{"name":"confirmFinishDialogQuestion","type":"text","label":"Dialog text finish map: Question","default":"Do you really want to finish the map?"},{"name":"confirmAccessDeniedHeader","type":"text","label":"Dialog header access denied","default":"Stage locked"},{"name":"confirmAccessDeniedDialog","type":"text","label":"Dialog text access denied: General","default":"This stage requires you to meet some goals before it can be opened."},{"name":"yes","type":"text","label":"Yes","default":"Yes"},{"name":"no","type":"text","label":"No","default":"No"},{"name":"confirmGameOverHeader","type":"text","label":"Dialog header game over","default":"Game over!"},{"name":"confirmGameOverDialog","type":"text","label":"Dialog text game over","default":"You have lost all your lives. Please try again!"},{"name":"confirmGameOverDialogTimeout","type":"text","label":"Dialog text game over by timeout","default":"You have run out of time. Please try again!"},{"name":"confirmTimeoutHeader","type":"text","label":"Dialog header time out","default":"Time out!"},{"name":"confirmTimeoutDialog","type":"text","label":"Dialog text time out","default":"You ran out of time."},{"name":"confirmTimeoutDialogLostLife","type":"text","label":"Dialog text time out (lost a life)","default":"You ran out of time and lost a life."},{"name":"confirmScoreIncompleteHeader","type":"text","label":"Dialog header score incomplete","default":"Not full score!"},{"name":"confirmIncompleteScoreDialogLostLife","type":"text","label":"Dialog text score incomplete (lost a life)","default":"You did not achieve full score and lost a life."},{"name":"confirmFullScoreHeader","type":"text","label":"Dialog header full score","default":"You achieved full score!"},{"name":"confirmFullScoreDialog","type":"text","label":"Dialog text full score","default":"You have collected enough points to finish this map with a full score, but you are free to explore the rest if you wish to. Your score will be submitted once you finish the map."},{"name":"confirmFullScoreDialogLoseLivesAmendmend","type":"text","label":"Dialog text full score (amendment, if lives are set)","default":"But beware! You may still lose lives!"},{"name":"ok","type":"text","label":"OK","default":"OK"},{"name":"noStages","type":"text","label":"No stages were set","default":"No valid stages were set for the map."},{"name":"settings","type":"text","label":"Settings","default":"Settings"},{"name":"volumeMusic","type":"text","label":"Volume of music","default":"Volume of music"},{"name":"volumeSFX","type":"text","label":"Volume of sound effects","default":"Volume of sound effects"},{"name":"restrictionsAllOfLong","type":"text","label":"The stage will not be available unless","default":"The stage will not be available unless:"},{"name":"restrictionsAnyOfLong","type":"text","label":"The stage will not be available unless any of","default":"The stage will not be available unless any of:"},{"name":"restrictionsAllOf","type":"text","label":"All of:","default":"All of:"},{"name":"restrictionsAnyOf","type":"text","label":"Any of:","default":"Any of:"},{"name":"restrictionTotalScoreLessThan","type":"text","label":"Total score less than","default":"You have a total score less than @value."},{"name":"restrictionTotalScoreEqualTo","type":"text","label":"Total score equal to","default":"You have a total score equal to @value."},{"name":"restrictionTotalScoreNotEqualTo","type":"text","label":"Total score not equal to","default":"You have a total score not equal to @value."},{"name":"restrictionTotalScoreGreaterThan","type":"text","label":"Total score greater than","default":"You have a total score greater than @value."},{"name":"restrictionStageScoreLessThan","type":"text","label":"Stage score less than","default":"You have a score less than @value in stage @label."},{"name":"restrictionStageScoreEqualTo","type":"text","label":"Stage score equal to","default":"You have a score equal to @value in stage @label."},{"name":"restrictionStageScoreNotEqualTo","type":"text","label":"Stage score not equal to","default":"You have a score not equal to @value in stage @label."},{"name":"restrictionStageScoreGreaterThan","type":"text","label":"Stage score greater than","default":"You have a score greater than @value in stage @label."},{"name":"restrictionStageProgressIs","type":"text","label":"Stage progress is","default":"The progress of stage @label is @value."},{"name":"restrictionStageProgressIsNot","type":"text","label":"Stage progress is not","default":"Ths progress of stage @label is not @value."},{"name":"restrictionTimeBefore","type":"text","label":"Time before","default":"The current time is before @value."},{"name":"restrictionTimeOn","type":"text","label":"Time is","default":"The current time is @value."},{"name":"restrictionTimeNotOn","type":"text","label":"Time is not","default":"The current time is not @value."},{"name":"restrictionTimeAfter","type":"text","label":"Time after","default":"The current time is after @value."},{"name":"unstarted","type":"text","label":"Not started","default":"not started"},{"name":"opened","type":"text","label":"Started","default":"started"},{"name":"completed","type":"text","label":"Completed","default":"completed"},{"name":"cleared","type":"text","label":"Completed successfully","default":"completed successfully"},{"name":"missingContent","type":"text","label":"Missing content","default":"No content was set for this stage!"}]},{"name":"a11y","type":"group","label":"Accessibility texts","common":true,"fields":[{"name":"buttonFinish","type":"text","label":"Finish","default":"Finish the map"},{"name":"buttonAudioActive","type":"text","label":"Audio button (unmuted)","default":"Mute audio. Currently unmuted."},{"name":"buttonAudioInactive","type":"text","label":"Audio button (muted)","default":"Unmute audio. Currently muted."},{"name":"close","type":"text","label":"Close","default":"Close"},{"name":"yourResult","type":"text","label":"Your result","description":"@score will be replaced by the number of points. @total will be replaced by the maximum possible points.","default":"You got @score out of @total points"},{"name":"mapWasOpened","type":"text","label":"Map was opened","default":"The map was opened."},{"name":"mapSolutionsWasOpened","type":"text","label":"Map was opened (solutions mode)","default":"The map was opened in solutions mode."},{"name":"startScreenWasOpened","type":"text","label":"Title screen was opened","default":"The title screen was opened."},{"name":"endScreenWasOpened","type":"text","label":"End screen was opened","default":"The end screen was opened."},{"name":"exerciseLabel","type":"text","label":"Exercise label","description":"@stagelabel is a placeholder and will be replaced with the respective stage label.","default":". Exercise for @stagelabel"},{"name":"stageButtonLabel","type":"text","label":"Stage button label","description":"@stagelabel is a placeholder and will be replaced with the respective stage label.","default":"Stage: @stagelabel"},{"name":"adjacentStageLabel","type":"text","label":"adjacent stage label","description":"@stagelabelOrigin and @stagelabelNeighbor are placeholders and will be replaced with the respective stage labels.","default":"Adjacent stage of @stagelabelOrigin: @stagelabelNeighbor"},{"name":"locked","type":"text","label":"Locked","default":"Locked"},{"name":"cleared","type":"text","label":"Cleared","default":"Cleared"},{"name":"applicationInstructions","type":"text","label":"Description of map navigation","default":"Use space or enter key to activate current stage. Use arrow keys to select adjacent stage. Use space or enter key on adjacent stage to navigate there."},{"name":"applicationDescription","type":"text","label":"Description of map","default":"Map"},{"name":"movedToStage","type":"text","label":"Moved to stage","description":"@stagelabel is a placeholder and will be replaced with the respective stage label.","default":"Moved to @stagelabel"},{"name":"stageUnlocked","type":"text","label":"Unlocked stage","description":"@stagelabel is a placeholder and will be replaced with the respective stage label.","default":"Stage @stagelabel was unlocked."},{"name":"toolbarFallbackLabel","type":"text","label":"Toolbar fallback label","default":"Game Map"},{"name":"enterFullscreen","type":"text","label":"Enter fullscreen","default":"Enter fullscreen mode"},{"name":"exitFullscreen","type":"text","label":"Exit fullscreen","default":"Exit fullscreen mode"}]}]');let t=function(){function t(){}return t.isInstanceTask=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!e)return!1;if("boolean"==typeof e.isTask)return e.isTask;return!!("function"==typeof e.getMaxScore&&e.getMaxScore()>0)},t.getSemanticsDefaults=function(){let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e,a={};return Array.isArray(s)?(s.forEach((e=>{if("string"==typeof e.name)if(void 0!==e.default&&(a[e.name]=e.default),"list"===e.type)a[e.name]=[];else if("group"===e.type&&e.fields){const s=t.getSemanticsDefaults(e.fields);Object.keys(s).length&&(a[e.name]=s)}})),a):a},t}();var a=s(67);let i=function(){function e(){}return e.extend=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),a=1;a<t;a++)s[a-1]=arguments[a];return s.forEach((t=>{for(let s in t)if(Object.prototype.hasOwnProperty.call(t,s)){if("__proto__"===s||"constructor"===s)continue;"object"!=typeof e[s]||Array.isArray(e[s])||"object"!=typeof t[s]||Array.isArray(t[s])?Array.isArray(t[s])?e[s]=t[s].slice():e[s]=t[s]:this.extend(e[s],t[s])}})),e},e.formatLanguageCode=function(e){if("string"!=typeof e)return e;const t=e.split("-");return t[0]=t[0].toLowerCase(),t.length>1&&(t[1]=t[1].toUpperCase()),e=t.join("-")},e.supportsTouch=function(){return"ontouchstart"in window||navigator.maxTouchPoints>0},e.isHTMLWidgetFilled=function(e){const t=document.createElement("div");return t.innerHTML=e,t.firstChild?.innerText?.length>0},e.addMixins=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(!e.prototype)return;Array.isArray(t)||(t=[t]);const s=e.prototype;t.forEach((e=>{const t=e.prototype;Object.getOwnPropertyNames(t).forEach((e=>{"constructor"!==e&&(Object.getOwnPropertyNames(s).includes(e)||(s[e]=t[e]))}))}))},e.purifyHTML=function(e){if("string"!=typeof e)return"";let t=a.decode(e);const s=document.createElement("div");return s.innerHTML=t,t=s.textContent||s.innerText||"",t},e.callOnceVisible=async function(e,t){let s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("object"==typeof e&&"function"==typeof t)return s.threshold=s.threshold||0,await new Promise((a=>{(window.requestIdleCallback?window.requestIdleCallback:window.requestAnimationFrame)((()=>{const i=new IntersectionObserver((s=>{s[0].isIntersecting&&(i.unobserve(e),i.disconnect(),t())}),{...s.root&&{root:s.root},threshold:s.threshold});i.observe(e),a(i)}))}))},e.project=function(e,t,s,a,i){return a+(e-t)/(s-t)*(i-a)},e}(),r=function(){function e(){this.translation={}}var t=e.prototype;return t.fill=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.translation=this.sanitize(e)},t.get=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:this.translation;const s=e.split(/[./]+/);return 1===s.length?t[e]:"object"==typeof t[e=s.shift()]?this.get(s.join("."),t[e]):void 0},t.sanitize=function(e){if("object"==typeof e)for(let t in e)e[t]=this.sanitize(e[t]);else if("string"==typeof e){e=(0,a.decode)(e);const t=document.createElement("div");t.innerHTML=e,e=t.textContent||t.innerText||""}return e},e}(),n=function(){function e(){this.keys={}}var t=e.prototype;return t.set=function(e,t){"string"==typeof e&&(this.keys[e]=t)},t.get=function(e){if("string"==typeof e)return this.keys[e]},e}();const o={buffering:0,stopped:1,queued:2,playing:3,paused:4};let l=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.callbacks={},this.callbacks.onAudioContextReady=e.onAudioContextReady||(()=>{}),this.dispatcher=document.createElement("div"),this.dispatcher.addEventListener("bufferloaded",(e=>{this.setAudioBuffer(e.detail),this.queued.includes(e.detail.id)&&(this.removeFromQueue(e.detail.id),this.play())})),this.audios={},this.queued=[];const t=window.AudioContext||window.webkitAudioContext;this.audioContext||(this.audioContext=new t)}var t=e.prototype;return t.fill=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(const t in e)e[t].src&&this.add({id:t,src:e[t].src,options:e[t].options??{}})},t.add=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.audioContext&&(this.audios[e.id]={loop:e.options.loop||!1,isMuted:e.options.muted||!1,volume:100,groupId:e.options.groupId||"default"},this.bufferSound({id:e.id,url:e.src}))},t.getState=function(e){if(this.audios[e])return this.audios[e].state},t.setState=function(e,t){"string"==typeof t&&(t=o[t]),"number"==typeof t&&-1!==Object.values(o).indexOf(t)&&this.audios[e]&&this.audios[e].state!==t&&(this.audios[e].state=t,this.dispatcher.dispatchEvent(new CustomEvent("stateChanged",{detail:{id:e,state:t}})))},t.setAudioBuffer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.audios[e.id]&&(this.audios[e.id].buffer=e.buffer,this.setState(e.id,o.stopped))},t.bufferSound=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.audios[e.id]){this.setState(e.id,o.buffering);var t=new XMLHttpRequest;t.open("GET",e.url,!0),t.responseType="arraybuffer",t.onload=()=>{this.audioContext.decodeAudioData(t.response,(t=>{const s=new CustomEvent("bufferloaded",{detail:{id:e.id,buffer:t}});this.dispatcher.dispatchEvent(s)}))},t.send()}},t.play=function(e){if(!this.audios[e])return!1;if(this.audios[e].isMuted)return!1;if(this.getState(e)===o.playing)return!1;if("suspended"===this.audioContext.state)return!1;if(this.getState(e)===o.buffering)return this.addToQueue(e),!1;const t=this.audios[e],s=this.audioContext.createBufferSource();s.buffer=t.buffer;const a=this.audioContext.createGain();return s.connect(a).connect(this.audioContext.destination),this.audios[e].gainNode=a,a.gain.value=t.volume/100,s.loop=this.audios[e].loop,t.source=s,t.source.onended=()=>{this.stop(e)},t.source.start(),this.setState(e,o.playing),!0},t.addToQueue=function(e){this.queued.includes(e)||this.queued.push(e)},t.removeFromQueue=function(e){this.queued=this.queued.filter((t=>t!==e))},t.stop=function(e){this.audios[e]&&(this.removeFromQueue(e),this.getState(e)===o.playing&&(this.audios[e].source?.stop(),this.setState(e,o.stopped)))},t.stopGroup=function(e){if(e)for(const t in this.audios)this.audios[t].groupId===e&&this.stop(t)},t.stopAll=function(){for(const e in this.audios)this.stop(e)},t.isPlaying=function(e){return!!this.audios[e]&&this.getState(e)===o.playing},t.fade=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.audios[e]&&!this.audios[e].isMuted&&("in"!==t.type&&"out"!==t.type||(window.clearTimeout(this.audios[e].fadeTimeout),"out"===t.type&&0===this.audios[e].gainNode.gain.value||"in"===t.type&&this.audios[e].gainNode.gain.value>=this.audios[e].volume/100||("number"!=typeof t.time&&(t.time=1e3),t.time=Math.max(100,t.time),"number"!=typeof t.interval&&(t.interval=100),t.interval=Math.max(50,t.interval),("number"!=typeof t.gainDelta||t.gainDelta<=0)&&("in"===t.type?t.gainDelta=(1-this.audios[e].gainNode.gain.value)/(t.time/t.interval):t.gainDelta=this.audios[e].gainNode.gain.value/(t.time/t.interval)),t.time<=0?this.audios[e].gainNode.gain.value="in"===t.type?1:0:("in"===t.type?this.audios[e].gainNode.gain.value=Math.min(1,this.audios[e].gainNode.gain.value+=t.gainDelta):this.audios[e].gainNode.gain.value=Math.max(0,this.audios[e].gainNode.gain.value-=t.gainDelta),this.audios[e].fadeTimeout=window.setTimeout((()=>{this.fade(e,{time:t.time-t.interval,gainDelta:t.gainDelta,type:t.type})}),t.interval)))))},t.getDOM=function(e){if(this.audios[e])return this.audios[e].dom},t.getAudioIds=function(){return Object.keys(this.audios)},t.muteAll=function(){for(const e in this.audios)this.mute(e)},t.mute=function(e){this.audios[e]&&(this.stop(e),this.audios[e].isMuted=!0)},t.unmuteAll=function(){for(const e in this.audios)this.unmute(e)},t.unmute=function(e){this.audios[e]&&(this.audios[e].isMuted=!1)},t.isMuted=function(e){return!!this.audios[e]&&this.audios[e].isMuted},t.getVolume=function(e){if(this.audios[e])return this.audios[e].volume},t.getVolumeGroup=function(e){for(const t in this.audios)if(this.audios[t].groupId===e)return this.getVolume(t)},t.setVolume=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;this.audios[e]&&(t=Math.max(0,Math.min(t,100)),this.audios[e].volume=t,this.audios[e].gainNode&&(this.audios[e].gainNode.gain.value=t/100))},t.setVolumeGroup=function(e,t){for(const s in this.audios)this.audios[s].groupId===e&&this.setVolume(s,t)},t.setVolumeAll=function(e){for(const t in this.audios)this.setVolume(t,e)},e}(),c=function(){function e(){this.queued=[],this.scheduled=[],this.isClosed=!1,this.isSkippable=!0,this.respectsDelay=!0}var t=e.prototype;return t.add=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.isClosed||"function"==typeof e&&(t.delay=t.delay||0,t.block=t.block||0,t.skipQueue=t.skipQueue??!1,this.isSkippable||t.skipQueue?e():this.queued.push({callback:e,params:t}))},t.clearQueued=function(){this.queued=[]},t.clearScheduled=function(){[...this.scheduled].forEach((e=>{window.clearTimeout(e),this.scheduled=this.scheduled.filter((t=>t!==e))}))},t.scheduleQueued=function(){this.respectsDelay?this.queued=this.queued.map(((e,t,s)=>{if(0===t)return e;const a=s[t-1].params;return e.params.delay+=a.delay+a.block,e}),[]):this.queued=this.queued.map((e=>(e.params.delay=0,e.params.block=0,e))),this.queued.forEach((e=>{const t=window.setTimeout((()=>{e.callback()}),e.params.delay);this.scheduled.push(t)})),this.queued=[]},t.open=function(){this.isClosed=!1},t.close=function(){this.isClosed=!0},t.setSkippable=function(e){"boolean"==typeof e&&(this.isSkippable=e)},t.setRespectsDelay=function(e){"boolean"==typeof e&&(this.respectsDelay=e)},e}();const u=0,h=1,d=2,p=1,m=-1;let g=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({mode:"timer",interval:1e3},e),this.callbacks=i.extend({onStateChanged:()=>{},onExpired:()=>{},onTick:()=>{}},t),this.mode="stopwatch"===this.params.mode?p:m,this.params.interval=Math.max(50,this.params.interval),this.state=u,this.timeMs=0}var t=e.prototype;return t.setState=function(e){this.state=e,this.callbacks.onStateChanged(e,this.getTime())},t.getState=function(){return this.state},t.start=function(e){this.state===u&&(this.startTime=new Date,e&&this.setTime(e),this.setState(h),this.timeout=window.setTimeout((()=>{this.update()}),this.params.interval))},t.pause=function(){this.state===h&&(this.setState(d),this.startTime=this.getTime())},t.resume=function(){this.state===d&&(this.setState(h),this.timeout=window.setTimeout((()=>{this.update()}),this.params.interval))},t.stop=function(){clearTimeout(this.timeout),this.setState(u)},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;this.stop(),this.setTime(e)},t.setTime=function(e){this.timeMs=e},t.getTime=function(){return Math.max(0,this.timeMs)},t.update=function(){if(this.state===h){const e=(new Date).getTime()-this.startTime,t=this.getTime()+e*this.mode;this.setTime(t),this.callbacks.onTick(t)}if(this.mode===m&&this.getTime()<=0)return this.stop(),void this.callbacks.onExpired(0);this.startTime=new Date,this.timeout=window.setTimeout((()=>{this.update()}),this.params.interval)},e.toTimecode=function(e){if("number"!=typeof e)return;const t=new Date(0);return t.setSeconds(Math.round(Math.max(0,e/1e3))),t.toISOString().split("T")[1].split(".")[0].replace(/^[0:]+/,"")||"0"},e}(),b=function(){function e(){}var t=e.prototype;return t.toggleAudio=function(e){this.isAudioOn="boolean"==typeof e?e:!this.isAudioOn,this.isAudioOn?this.tryStartBackgroundMusic():this.params.jukebox.muteAll()},t.tryStartBackgroundMusic=async function(){return"suspended"===this.params.jukebox.audioContext.state?(await this.params.jukebox.audioContext.resume(),this.params.jukebox.unmuteAll(),this.params.jukebox.play("backgroundMusic")):(this.params.jukebox.unmuteAll(),this.params.jukebox.play("backgroundMusic"))},e}();let f=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=i.extend({visuals:{pathWidth:"0.2"}},e),this.params.state=this.params.state??this.params.globals.get("states").open,this.params.visuals.pathWidth=parseFloat(this.params.visuals.pathWidth),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-path"),this.dom.style.setProperty("--path-style",`${this.params.visuals.pathStyle}`),this.dom.style.setProperty("--path-color",`${this.params.visuals.colorPath}`),this.dom.style.setProperty("--path-color-cleared",`${this.params.visuals.colorPathCleared}`),this.params.visible?this.show():this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.getState=function(){return this.state},t.getStageIds=function(){return{from:this.params.fromId,to:this.params.toId}},t.connectsTo=function(e){return this.params.fromId===e||this.params.toId===e},t.setReachable=function(e){"boolean"==typeof e&&(this.isReachableState=e,this.isReachable()||this.hide())},t.isReachable=function(){return this.isReachableState},t.isVisible=function(){return this.isVisibleState},t.show=function(){this.params.globals.get("params").visual.paths.displayPaths&&(this.dom.classList.remove("display-none"),window.requestAnimationFrame((()=>{this.dom.classList.remove("transparent")})),this.isVisibleState=!0)},t.hide=function(){this.dom.classList.add("display-none"),this.dom.classList.add("transparent"),this.isVisibleState=!1},t.update=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"number"==typeof e.x&&(this.dom.style.left=`${e.x}%`),"number"==typeof e.y&&(this.dom.style.top=`${e.y}%`),"number"==typeof e.length&&(this.dom.style.width=`${e.length}px`),"number"==typeof e.angle&&(this.dom.style.transform=`rotate(${e.angle}rad)`),"number"==typeof e.width&&(this.dom.style.borderTopWidth=`${e.width}px`)},t.resize=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=this.computePathTelemetry({mapSize:e.mapSize});t&&this.update({x:t.x,y:t.y,length:t.length,angle:t.angle,width:t.width})},t.computePathTelemetry=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(0===e.mapSize.height||0===e.mapSize.width)return null;const t=this.params.telemetryFrom.x,s=this.params.telemetryFrom.y,a=this.params.telemetryFrom.width,i=this.params.telemetryFrom.height,r=this.params.telemetryTo.x,n=this.params.telemetryTo.y,o=parseFloat(t)/100*e.mapSize.width,l=parseFloat(s)/100*e.mapSize.height,c=parseFloat(r)/100*e.mapSize.width,u=parseFloat(n)/100*e.mapSize.height,h=parseFloat(a)/100*e.mapSize.width,d=parseFloat(i)/100*e.mapSize.height,p=o-c,m=l-u,g=Math.sign(p)>=0?Math.PI:0,b=Math.atan(m/p)+g,f=h/2*Math.cos(b)*100/e.mapSize.width,y=d/2*Math.sin(b)*100/e.mapSize.height,v=Math.min(Math.max(1,h*this.params.visuals.pathWidth),.3*h),w=v/2*100/e.mapSize.height;return{x:parseFloat(t)+parseFloat(a)/2+f,y:parseFloat(s)+parseFloat(i)/2+y-w,length:Math.sqrt(Math.abs(p)*Math.abs(p)+Math.abs(m)*Math.abs(m))-h,angle:b,width:v}},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setReachable(!0);const t=e.isInitial?this.params.state:this.params.globals.get("states").open;this.setState(t),e.isInitial&&this.params.visible?this.show():this.hide()},t.setState=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=this.params.globals.get("states");if("string"==typeof e&&(e=Object.entries(s).find((t=>t[0]===e))[1]),"number"!=typeof e)return;let a;if(t.force?a=s[e]:e===s.open?a=s.open:e===s.cleared&&(a=s.cleared),!this.state||this.state!==a){this.state=a;for(const[e,t]of Object.entries(s))t!==this.state?this.dom.classList.remove(`h5p-game-map-path-${e}`):this.dom.classList.add(`h5p-game-map-path-${e}`)}},e}(),y=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=i.extend({elements:{}},e),this.paths=this.buildPaths(this.params.elements)}var t=e.prototype;return t.getDOMs=function(){return this.paths.map((e=>e.getDOM()))},t.buildPaths=function(e){const t=[];if(!Object.keys(e??{}).length)return[];const s=this.params.globals.get("extras").previousState?.content?.paths??[],a=[];for(let i in e)(e[i].neighbors||[]).forEach((r=>{if(!a.includes(`${i}-${r}`)&&!a.includes(`${r}-${i}`)){const n=s.find((t=>t.stageIds?.from===e[i].id&&t.stageIds?.to===e[r].id));let o=(this.params.paths??[]).find((e=>e.from.toString()===i.toString()&&e.to.toString()===r.toString()&&"custom"===e.visualsType&&e.customVisuals))?.customVisuals;t.push(new f({globals:this.params.globals,fromId:e[i].id,toId:e[r].id,telemetryFrom:e[i].telemetry,telemetryTo:e[r].telemetry,index:a.length,visuals:{...this.params.visuals,...o},visible:n?.visible,...n?.state&&{state:n?.state}})),a.push(`${i}-${r}`)}}));return t},t.getCurrentState=function(){return this.paths.map((e=>({stageIds:e.getStageIds(),state:e.getState(),visible:e.isVisible()})))},t.update=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.paths.forEach((t=>{t.resize({mapSize:e.mapSize})}))},t.updateReachability=function(e){this.paths.forEach((t=>{t.setReachable(e.some((e=>t.connectsTo(e))))}))},t.updateState=function(e,t){const s=this.params.globals.get("params");if("free"===s.behaviour.map.roaming)return;const a=this.paths.filter((t=>{const s=t.getStageIds();return s.from===e||s.to===e}));t===this.params.globals.get("states").open&&s.visual.paths.displayPaths&&"0"!==s.behaviour.map.fog&&a.forEach((e=>{e.show()})),t===this.params.globals.get("states").cleared&&a.forEach((e=>{e.setState("cleared"),e.show()}))},t.forEach=function(e){for(let t=0;t<this.paths.length;t++)e(this.paths[t],t,this.paths)},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.paths.forEach((t=>{t.reset({isInitial:e.isInitial})}))},e}();var v={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};const w=Object.create(null);for(const e in v)Object.hasOwn(v,e)&&(w[v[e]]=e);const S={to:{},get:{}};function x(e,t,s){return Math.min(Math.max(t,e),s)}function k(e){const t=Math.round(e).toString(16).toUpperCase();return t.length<2?"0"+t:t}S.get=function(e){let t,s;switch(e.slice(0,3).toLowerCase()){case"hsl":t=S.get.hsl(e),s="hsl";break;case"hwb":t=S.get.hwb(e),s="hwb";break;default:t=S.get.rgb(e),s="rgb"}return t?{model:s,value:t}:null},S.get.rgb=function(e){if(!e)return null;let t,s,a,i=[0,0,0,1];if(t=e.match(/^#([a-f\d]{6})([a-f\d]{2})?$/i)){for(a=t[2],t=t[1],s=0;s<3;s++){const e=2*s;i[s]=Number.parseInt(t.slice(e,e+2),16)}a&&(i[3]=Number.parseInt(a,16)/255)}else if(t=e.match(/^#([a-f\d]{3,4})$/i)){for(t=t[1],a=t[3],s=0;s<3;s++)i[s]=Number.parseInt(t[s]+t[s],16);a&&(i[3]=Number.parseInt(a+a,16)/255)}else if(t=e.match(/^rgba?\(\s*([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)(?=[\s,])\s*(?:,\s*)?([+-]?\d+)\s*(?:[,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/)){for(s=0;s<3;s++)i[s]=Number.parseInt(t[s+1],10);t[4]&&(i[3]=t[5]?.01*Number.parseFloat(t[4]):Number.parseFloat(t[4]))}else{if(!(t=e.match(/^rgba?\(\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?[\d.]+)(%?)\s*)?\)$/)))return(t=e.match(/^(\w+)$/))?"transparent"===t[1]?[0,0,0,0]:Object.hasOwn(v,t[1])?(i=v[t[1]],i[3]=1,i):null:null;for(s=0;s<3;s++)i[s]=Math.round(2.55*Number.parseFloat(t[s+1]));t[4]&&(i[3]=t[5]?.01*Number.parseFloat(t[4]):Number.parseFloat(t[4]))}for(s=0;s<3;s++)i[s]=x(i[s],0,255);return i[3]=x(i[3],0,1),i},S.get.hsl=function(e){if(!e)return null;const t=e.match(/^hsla?\(\s*([+-]?(?:\d{0,3}\.)?\d+)(?:deg)?\s*,?\s*([+-]?[\d.]+)%\s*,?\s*([+-]?[\d.]+)%\s*(?:[,|/]\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){const e=Number.parseFloat(t[4]);return[(Number.parseFloat(t[1])%360+360)%360,x(Number.parseFloat(t[2]),0,100),x(Number.parseFloat(t[3]),0,100),x(Number.isNaN(e)?1:e,0,1)]}return null},S.get.hwb=function(e){if(!e)return null;const t=e.match(/^hwb\(\s*([+-]?\d{0,3}(?:\.\d+)?)(?:deg)?\s*,\s*([+-]?[\d.]+)%\s*,\s*([+-]?[\d.]+)%\s*(?:,\s*([+-]?(?=\.\d|\d)(?:0|[1-9]\d*)?(?:\.\d*)?(?:[eE][+-]?\d+)?)\s*)?\)$/);if(t){const e=Number.parseFloat(t[4]);return[(Number.parseFloat(t[1])%360+360)%360,x(Number.parseFloat(t[2]),0,100),x(Number.parseFloat(t[3]),0,100),x(Number.isNaN(e)?1:e,0,1)]}return null},S.to.hex=function(...e){return"#"+k(e[0])+k(e[1])+k(e[2])+(e[3]<1?k(Math.round(255*e[3])):"")},S.to.rgb=function(...e){return e.length<4||1===e[3]?"rgb("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+")":"rgba("+Math.round(e[0])+", "+Math.round(e[1])+", "+Math.round(e[2])+", "+e[3]+")"},S.to.rgb.percent=function(...e){const t=Math.round(e[0]/255*100),s=Math.round(e[1]/255*100),a=Math.round(e[2]/255*100);return e.length<4||1===e[3]?"rgb("+t+"%, "+s+"%, "+a+"%)":"rgba("+t+"%, "+s+"%, "+a+"%, "+e[3]+")"},S.to.hsl=function(...e){return e.length<4||1===e[3]?"hsl("+e[0]+", "+e[1]+"%, "+e[2]+"%)":"hsla("+e[0]+", "+e[1]+"%, "+e[2]+"%, "+e[3]+")"},S.to.hwb=function(...e){let t="";return e.length>=4&&1!==e[3]&&(t=", "+e[3]),"hwb("+e[0]+", "+e[1]+"%, "+e[2]+"%"+t+")"},S.to.keyword=function(...e){return w[e.slice(0,3)]};var E=S,A={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};const T={};for(const e of Object.keys(A))T[A[e]]=e;const D={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};var L=D;const C=(6/29)**3;for(const e of Object.keys(D)){if(!("channels"in D[e]))throw new Error("missing channels property: "+e);if(!("labels"in D[e]))throw new Error("missing channel labels property: "+e);if(D[e].labels.length!==D[e].channels)throw new Error("channel and label counts mismatch: "+e);const{channels:t,labels:s}=D[e];delete D[e].channels,delete D[e].labels,Object.defineProperty(D[e],"channels",{value:t}),Object.defineProperty(D[e],"labels",{value:s})}function q(e){const t=function(){const e={},t=Object.keys(L);for(let{length:s}=t,a=0;a<s;a++)e[t[a]]={distance:-1,parent:null};return e}(),s=[e];for(t[e].distance=0;s.length>0;){const e=s.pop(),a=Object.keys(L[e]);for(let{length:i}=a,r=0;r<i;r++){const i=a[r],n=t[i];-1===n.distance&&(n.distance=t[e].distance+1,n.parent=e,s.unshift(i))}}return t}function I(e,t){return function(s){return t(e(s))}}function O(e,t){const s=[t[e].parent,e];let a=L[t[e].parent][e],i=t[e].parent;for(;t[i].parent;)s.unshift(t[i].parent),a=I(L[t[i].parent][i],a),i=t[i].parent;return a.conversion=s,a}D.rgb.hsl=function(e){const t=e[0]/255,s=e[1]/255,a=e[2]/255,i=Math.min(t,s,a),r=Math.max(t,s,a),n=r-i;let o,l;switch(r){case i:o=0;break;case t:o=(s-a)/n;break;case s:o=2+(a-t)/n;break;case a:o=4+(t-s)/n}o=Math.min(60*o,360),o<0&&(o+=360);const c=(i+r)/2;return l=r===i?0:c<=.5?n/(r+i):n/(2-r-i),[o,100*l,100*c]},D.rgb.hsv=function(e){let t,s,a,i,r;const n=e[0]/255,o=e[1]/255,l=e[2]/255,c=Math.max(n,o,l),u=c-Math.min(n,o,l),h=function(e){return(c-e)/6/u+.5};if(0===u)i=0,r=0;else{switch(r=u/c,t=h(n),s=h(o),a=h(l),c){case n:i=a-s;break;case o:i=1/3+t-a;break;case l:i=2/3+s-t}i<0?i+=1:i>1&&(i-=1)}return[360*i,100*r,100*c]},D.rgb.hwb=function(e){const t=e[0],s=e[1];let a=e[2];const i=D.rgb.hsl(e)[0],r=1/255*Math.min(t,Math.min(s,a));return a=1-1/255*Math.max(t,Math.max(s,a)),[i,100*r,100*a]},D.rgb.cmyk=function(e){const t=e[0]/255,s=e[1]/255,a=e[2]/255,i=Math.min(1-t,1-s,1-a);return[100*((1-t-i)/(1-i)||0),100*((1-s-i)/(1-i)||0),100*((1-a-i)/(1-i)||0),100*i]},D.rgb.keyword=function(e){const t=T[e];if(t)return t;let s,a=Number.POSITIVE_INFINITY;for(const t of Object.keys(A)){const n=(r=A[t],((i=e)[0]-r[0])**2+(i[1]-r[1])**2+(i[2]-r[2])**2);n<a&&(a=n,s=t)}var i,r;return s},D.keyword.rgb=function(e){return A[e]},D.rgb.xyz=function(e){let t=e[0]/255,s=e[1]/255,a=e[2]/255;t=t>.04045?((t+.055)/1.055)**2.4:t/12.92,s=s>.04045?((s+.055)/1.055)**2.4:s/12.92,a=a>.04045?((a+.055)/1.055)**2.4:a/12.92;return[100*(.4124564*t+.3575761*s+.1804375*a),100*(.2126729*t+.7151522*s+.072175*a),100*(.0193339*t+.119192*s+.9503041*a)]},D.rgb.lab=function(e){const t=D.rgb.xyz(e);let s=t[0],a=t[1],i=t[2];s/=95.047,a/=100,i/=108.883,s=s>C?s**(1/3):7.787*s+16/116,a=a>C?a**(1/3):7.787*a+16/116,i=i>C?i**(1/3):7.787*i+16/116;return[116*a-16,500*(s-a),200*(a-i)]},D.hsl.rgb=function(e){const t=e[0]/360,s=e[1]/100,a=e[2]/100;let i,r;if(0===s)return r=255*a,[r,r,r];const n=a<.5?a*(1+s):a+s-a*s,o=2*a-n,l=[0,0,0];for(let e=0;e<3;e++)i=t+1/3*-(e-1),i<0&&i++,i>1&&i--,r=6*i<1?o+6*(n-o)*i:2*i<1?n:3*i<2?o+(n-o)*(2/3-i)*6:o,l[e]=255*r;return l},D.hsl.hsv=function(e){const t=e[0];let s=e[1]/100,a=e[2]/100,i=s;const r=Math.max(a,.01);a*=2,s*=a<=1?a:2-a,i*=r<=1?r:2-r;return[t,100*(0===a?2*i/(r+i):2*s/(a+s)),100*((a+s)/2)]},D.hsv.rgb=function(e){const t=e[0]/60,s=e[1]/100;let a=e[2]/100;const i=Math.floor(t)%6,r=t-Math.floor(t),n=255*a*(1-s),o=255*a*(1-s*r),l=255*a*(1-s*(1-r));switch(a*=255,i){case 0:return[a,l,n];case 1:return[o,a,n];case 2:return[n,a,l];case 3:return[n,o,a];case 4:return[l,n,a];case 5:return[a,n,o]}},D.hsv.hsl=function(e){const t=e[0],s=e[1]/100,a=e[2]/100,i=Math.max(a,.01);let r,n;n=(2-s)*a;const o=(2-s)*i;return r=s*i,r/=o<=1?o:2-o,r=r||0,n/=2,[t,100*r,100*n]},D.hwb.rgb=function(e){const t=e[0]/360;let s=e[1]/100,a=e[2]/100;const i=s+a;let r;i>1&&(s/=i,a/=i);const n=Math.floor(6*t),o=1-a;r=6*t-n,1&n&&(r=1-r);const l=s+r*(o-s);let c,u,h;switch(n){default:case 6:case 0:c=o,u=l,h=s;break;case 1:c=l,u=o,h=s;break;case 2:c=s,u=o,h=l;break;case 3:c=s,u=l,h=o;break;case 4:c=l,u=s,h=o;break;case 5:c=o,u=s,h=l}return[255*c,255*u,255*h]},D.cmyk.rgb=function(e){const t=e[0]/100,s=e[1]/100,a=e[2]/100,i=e[3]/100;return[255*(1-Math.min(1,t*(1-i)+i)),255*(1-Math.min(1,s*(1-i)+i)),255*(1-Math.min(1,a*(1-i)+i))]},D.xyz.rgb=function(e){const t=e[0]/100,s=e[1]/100,a=e[2]/100;let i,r,n;return i=3.2404542*t+-1.5371385*s+-.4985314*a,r=-.969266*t+1.8760108*s+.041556*a,n=.0556434*t+-.2040259*s+1.0572252*a,i=i>.0031308?1.055*i**(1/2.4)-.055:12.92*i,r=r>.0031308?1.055*r**(1/2.4)-.055:12.92*r,n=n>.0031308?1.055*n**(1/2.4)-.055:12.92*n,i=Math.min(Math.max(0,i),1),r=Math.min(Math.max(0,r),1),n=Math.min(Math.max(0,n),1),[255*i,255*r,255*n]},D.xyz.lab=function(e){let t=e[0],s=e[1],a=e[2];t/=95.047,s/=100,a/=108.883,t=t>C?t**(1/3):7.787*t+16/116,s=s>C?s**(1/3):7.787*s+16/116,a=a>C?a**(1/3):7.787*a+16/116;return[116*s-16,500*(t-s),200*(s-a)]},D.lab.xyz=function(e){let t,s,a;s=(e[0]+16)/116,t=e[1]/500+s,a=s-e[2]/200;const i=s**3,r=t**3,n=a**3;return s=i>C?i:(s-16/116)/7.787,t=r>C?r:(t-16/116)/7.787,a=n>C?n:(a-16/116)/7.787,t*=95.047,s*=100,a*=108.883,[t,s,a]},D.lab.lch=function(e){const t=e[0],s=e[1],a=e[2];let i;i=360*Math.atan2(a,s)/2/Math.PI,i<0&&(i+=360);return[t,Math.sqrt(s*s+a*a),i]},D.lch.lab=function(e){const t=e[0],s=e[1],a=e[2]/360*2*Math.PI;return[t,s*Math.cos(a),s*Math.sin(a)]},D.rgb.ansi16=function(e,t=null){const[s,a,i]=e;let r=null===t?D.rgb.hsv(e)[2]:t;if(r=Math.round(r/50),0===r)return 30;let n=30+(Math.round(i/255)<<2|Math.round(a/255)<<1|Math.round(s/255));return 2===r&&(n+=60),n},D.hsv.ansi16=function(e){return D.rgb.ansi16(D.hsv.rgb(e),e[2])},D.rgb.ansi256=function(e){const t=e[0],s=e[1],a=e[2];if(t>>4==s>>4&&s>>4==a>>4)return t<8?16:t>248?231:Math.round((t-8)/247*24)+232;return 16+36*Math.round(t/255*5)+6*Math.round(s/255*5)+Math.round(a/255*5)},D.ansi16.rgb=function(e){let t=(e=e[0])%10;if(0===t||7===t)return e>50&&(t+=3.5),t=t/10.5*255,[t,t,t];const s=.5*(Math.trunc(e>50)+1);return[(1&t)*s*255,(t>>1&1)*s*255,(t>>2&1)*s*255]},D.ansi256.rgb=function(e){if((e=e[0])>=232){const t=10*(e-232)+8;return[t,t,t]}let t;e-=16;return[Math.floor(e/36)/5*255,Math.floor((t=e%36)/6)/5*255,t%6/5*255]},D.rgb.hex=function(e){const t=(((255&Math.round(e[0]))<<16)+((255&Math.round(e[1]))<<8)+(255&Math.round(e[2]))).toString(16).toUpperCase();return"000000".slice(t.length)+t},D.hex.rgb=function(e){const t=e.toString(16).match(/[a-f\d]{6}|[a-f\d]{3}/i);if(!t)return[0,0,0];let s=t[0];3===t[0].length&&(s=[...s].map((e=>e+e)).join(""));const a=Number.parseInt(s,16);return[a>>16&255,a>>8&255,255&a]},D.rgb.hcg=function(e){const t=e[0]/255,s=e[1]/255,a=e[2]/255,i=Math.max(Math.max(t,s),a),r=Math.min(Math.min(t,s),a),n=i-r;let o;return o=n<=0?0:i===t?(s-a)/n%6:i===s?2+(a-t)/n:4+(t-s)/n,o/=6,o%=1,[360*o,100*n,100*(n<1?r/(1-n):0)]},D.hsl.hcg=function(e){const t=e[1]/100,s=e[2]/100,a=s<.5?2*t*s:2*t*(1-s);let i=0;return a<1&&(i=(s-.5*a)/(1-a)),[e[0],100*a,100*i]},D.hsv.hcg=function(e){const t=e[1]/100,s=e[2]/100,a=t*s;let i=0;return a<1&&(i=(s-a)/(1-a)),[e[0],100*a,100*i]},D.hcg.rgb=function(e){const t=e[0]/360,s=e[1]/100,a=e[2]/100;if(0===s)return[255*a,255*a,255*a];const i=[0,0,0],r=t%1*6,n=r%1,o=1-n;let l=0;switch(Math.floor(r)){case 0:i[0]=1,i[1]=n,i[2]=0;break;case 1:i[0]=o,i[1]=1,i[2]=0;break;case 2:i[0]=0,i[1]=1,i[2]=n;break;case 3:i[0]=0,i[1]=o,i[2]=1;break;case 4:i[0]=n,i[1]=0,i[2]=1;break;default:i[0]=1,i[1]=0,i[2]=o}return l=(1-s)*a,[255*(s*i[0]+l),255*(s*i[1]+l),255*(s*i[2]+l)]},D.hcg.hsv=function(e){const t=e[1]/100,s=t+e[2]/100*(1-t);let a=0;return s>0&&(a=t/s),[e[0],100*a,100*s]},D.hcg.hsl=function(e){const t=e[1]/100,s=e[2]/100*(1-t)+.5*t;let a=0;return s>0&&s<.5?a=t/(2*s):s>=.5&&s<1&&(a=t/(2*(1-s))),[e[0],100*a,100*s]},D.hcg.hwb=function(e){const t=e[1]/100,s=t+e[2]/100*(1-t);return[e[0],100*(s-t),100*(1-s)]},D.hwb.hcg=function(e){const t=e[1]/100,s=1-e[2]/100,a=s-t;let i=0;return a<1&&(i=(s-a)/(1-a)),[e[0],100*a,100*i]},D.apple.rgb=function(e){return[e[0]/65535*255,e[1]/65535*255,e[2]/65535*255]},D.rgb.apple=function(e){return[e[0]/255*65535,e[1]/255*65535,e[2]/255*65535]},D.gray.rgb=function(e){return[e[0]/100*255,e[0]/100*255,e[0]/100*255]},D.gray.hsl=function(e){return[0,0,e[0]]},D.gray.hsv=D.gray.hsl,D.gray.hwb=function(e){return[0,100,e[0]]},D.gray.cmyk=function(e){return[0,0,0,e[0]]},D.gray.lab=function(e){return[e[0],0,0]},D.gray.hex=function(e){const t=255&Math.round(e[0]/100*255),s=((t<<16)+(t<<8)+t).toString(16).toUpperCase();return"000000".slice(s.length)+s},D.rgb.gray=function(e){return[(e[0]+e[1]+e[2])/3/255*100]};var B=function(e){const t=q(e),s={},a=Object.keys(t);for(let{length:e}=a,i=0;i<e;i++){const e=a[i];null!==t[e].parent&&(s[e]=O(e,t))}return s};const M={},F=Object.keys(L);function P(e){const t=function(...t){const s=t[0];return null==s?s:(s.length>1&&(t=s),e(t))};return"conversion"in e&&(t.conversion=e.conversion),t}function R(e){const t=function(...t){const s=t[0];if(null==s)return s;s.length>1&&(t=s);const a=e(t);if("object"==typeof a)for(let{length:e}=a,t=0;t<e;t++)a[t]=Math.round(a[t]);return a};return"conversion"in e&&(t.conversion=e.conversion),t}for(const e of F){M[e]={},Object.defineProperty(M[e],"channels",{value:L[e].channels}),Object.defineProperty(M[e],"labels",{value:L[e].labels});const t=B(e),s=Object.keys(t);for(const a of s){const s=t[a];M[e][a]=R(s),M[e][a].raw=P(s)}}var V=M;const N=["keyword","gray","hex"],j={};for(const e of Object.keys(V))j[[...V[e].labels].sort().join("")]=e;const H={};function U(e,t){if(!(this instanceof U))return new U(e,t);if(t&&t in N&&(t=null),t&&!(t in V))throw new Error("Unknown model: "+t);let s,a;if(null==e)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(e instanceof U)this.model=e.model,this.color=[...e.color],this.valpha=e.valpha;else if("string"==typeof e){const t=E.get(e);if(null===t)throw new Error("Unable to parse color from string: "+e);this.model=t.model,a=V[this.model].channels,this.color=t.value.slice(0,a),this.valpha="number"==typeof t.value[a]?t.value[a]:1}else if(e.length>0){this.model=t||"rgb",a=V[this.model].channels;const s=Array.prototype.slice.call(e,0,a);this.color=$(s,a),this.valpha="number"==typeof e[a]?e[a]:1}else if("number"==typeof e)this.model="rgb",this.color=[e>>16&255,e>>8&255,255&e],this.valpha=1;else{this.valpha=1;const t=Object.keys(e);"alpha"in e&&(t.splice(t.indexOf("alpha"),1),this.valpha="number"==typeof e.alpha?e.alpha:0);const a=t.sort().join("");if(!(a in j))throw new Error("Unable to parse color from object: "+JSON.stringify(e));this.model=j[a];const{labels:i}=V[this.model],r=[];for(s=0;s<i.length;s++)r.push(e[i[s]]);this.color=$(r)}if(H[this.model])for(a=V[this.model].channels,s=0;s<a;s++){const e=H[this.model][s];e&&(this.color[s]=e(this.color[s]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}U.prototype={toString(){return this.string()},toJSON(){return this[this.model]()},string(e){let t=this.model in E.to?this:this.rgb();t=t.round("number"==typeof e?e:1);const s=1===t.valpha?t.color:[...t.color,this.valpha];return E.to[t.model](...s)},percentString(e){const t=this.rgb().round("number"==typeof e?e:1),s=1===t.valpha?t.color:[...t.color,this.valpha];return E.to.rgb.percent(...s)},array(){return 1===this.valpha?[...this.color]:[...this.color,this.valpha]},object(){const e={},{channels:t}=V[this.model],{labels:s}=V[this.model];for(let a=0;a<t;a++)e[s[a]]=this.color[a];return 1!==this.valpha&&(e.alpha=this.valpha),e},unitArray(){const e=this.rgb().color;return e[0]/=255,e[1]/=255,e[2]/=255,1!==this.valpha&&e.push(this.valpha),e},unitObject(){const e=this.rgb().object();return e.r/=255,e.g/=255,e.b/=255,1!==this.valpha&&(e.alpha=this.valpha),e},round(e){return e=Math.max(e||0,0),new U([...this.color.map(G(e)),this.valpha],this.model)},alpha(e){return void 0!==e?new U([...this.color,Math.max(0,Math.min(1,e))],this.model):this.valpha},red:z("rgb",0,W(255)),green:z("rgb",1,W(255)),blue:z("rgb",2,W(255)),hue:z(["hsl","hsv","hsl","hwb","hcg"],0,(e=>(e%360+360)%360)),saturationl:z("hsl",1,W(100)),lightness:z("hsl",2,W(100)),saturationv:z("hsv",1,W(100)),value:z("hsv",2,W(100)),chroma:z("hcg",1,W(100)),gray:z("hcg",2,W(100)),white:z("hwb",1,W(100)),wblack:z("hwb",2,W(100)),cyan:z("cmyk",0,W(100)),magenta:z("cmyk",1,W(100)),yellow:z("cmyk",2,W(100)),black:z("cmyk",3,W(100)),x:z("xyz",0,W(95.047)),y:z("xyz",1,W(100)),z:z("xyz",2,W(108.833)),l:z("lab",0,W(100)),a:z("lab",1),b:z("lab",2),keyword(e){return void 0!==e?new U(e):V[this.model].keyword(this.color)},hex(e){return void 0!==e?new U(e):E.to.hex(...this.rgb().round().color)},hexa(e){if(void 0!==e)return new U(e);const t=this.rgb().round().color;let s=Math.round(255*this.valpha).toString(16).toUpperCase();return 1===s.length&&(s="0"+s),E.to.hex(...t)+s},rgbNumber(){const e=this.rgb().color;return(255&e[0])<<16|(255&e[1])<<8|255&e[2]},luminosity(){const e=this.rgb().color,t=[];for(const[s,a]of e.entries()){const e=a/255;t[s]=e<=.04045?e/12.92:((e+.055)/1.055)**2.4}return.2126*t[0]+.7152*t[1]+.0722*t[2]},contrast(e){const t=this.luminosity(),s=e.luminosity();return t>s?(t+.05)/(s+.05):(s+.05)/(t+.05)},level(e){const t=this.contrast(e);return t>=7?"AAA":t>=4.5?"AA":""},isDark(){const e=this.rgb().color;return(2126*e[0]+7152*e[1]+722*e[2])/1e4<128},isLight(){return!this.isDark()},negate(){const e=this.rgb();for(let t=0;t<3;t++)e.color[t]=255-e.color[t];return e},lighten(e){const t=this.hsl();return t.color[2]+=t.color[2]*e,t},darken(e){const t=this.hsl();return t.color[2]-=t.color[2]*e,t},saturate(e){const t=this.hsl();return t.color[1]+=t.color[1]*e,t},desaturate(e){const t=this.hsl();return t.color[1]-=t.color[1]*e,t},whiten(e){const t=this.hwb();return t.color[1]+=t.color[1]*e,t},blacken(e){const t=this.hwb();return t.color[2]+=t.color[2]*e,t},grayscale(){const e=this.rgb().color,t=.3*e[0]+.59*e[1]+.11*e[2];return U.rgb(t,t,t)},fade(e){return this.alpha(this.valpha-this.valpha*e)},opaquer(e){return this.alpha(this.valpha+this.valpha*e)},rotate(e){const t=this.hsl();let s=t.color[0];return s=(s+e)%360,s=s<0?360+s:s,t.color[0]=s,t},mix(e,t){if(!e||!e.rgb)throw new Error('Argument to "mix" was not a Color instance, but rather an instance of '+typeof e);const s=e.rgb(),a=this.rgb(),i=void 0===t?.5:t,r=2*i-1,n=s.alpha()-a.alpha(),o=((r*n==-1?r:(r+n)/(1+r*n))+1)/2,l=1-o;return U.rgb(o*s.red()+l*a.red(),o*s.green()+l*a.green(),o*s.blue()+l*a.blue(),s.alpha()*i+a.alpha()*(1-i))}};for(const e of Object.keys(V)){if(N.includes(e))continue;const{channels:t}=V[e];U.prototype[e]=function(...t){return this.model===e?new U(this):t.length>0?new U(t,e):new U([...(s=V[this.model][e].raw(this.color),Array.isArray(s)?s:[s]),this.valpha],e);var s},U[e]=function(...s){let a=s[0];return"number"==typeof a&&(a=$(s,t)),new U(a,e)}}function G(e){return function(t){return function(e,t){return Number(e.toFixed(t))}(t,e)}}function z(e,t,s){e=Array.isArray(e)?e:[e];for(const a of e)(H[a]||=[])[t]=s;return e=e[0],function(a){let i;return void 0!==a?(s&&(a=s(a)),i=this[e](),i.color[t]=a,i):(i=this[e]().color[t],s&&(i=s(i)),i)}}function W(e){return function(t){return Math.max(0,Math.min(e,t))}}function $(e,t){for(let s=0;s<t;s++)"number"!=typeof e[s]&&(e[s]=0);return e}var Q=U;const Y=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"",s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>{};if(!e)return;if(null===t)return void e.dispatchEvent(new Event("animationend"));if("string"!=typeof t)return;const a=window.matchMedia("(prefers-reduced-motion: reduce)")?.matches;if(a)return;const i=`animate-${t}`,r=a=>{a.animationName!==t&&void 0!==a.animationName||(e.classList.remove("animate"),e.classList.remove(i),e.removeEventListener("animationend",r),s())};e.addEventListener("animationend",r),e.classList.add("animate"),e.classList.add(i)};let X=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=i.extend({position:"bottom"},e),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-stage-label-container"),this.dom.classList.add(this.params.position);const t=document.createElement("div");t.classList.add("h5p-game-map-stage-label"),this.dom.appendChild(t),this.labelInner=document.createElement("div"),this.labelInner.classList.add("h5p-game-map-stage-label-inner"),this.labelInner.innerText=this.params.text,t.appendChild(this.labelInner),this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.scale=e.scale??1,this.isShowing()||this.params.text&&(window.requestAnimationFrame((()=>{const t=parseFloat(window.getComputedStyle(this.labelInner).getPropertyValue("font-size")),s=Math.floor(this.labelInner.getBoundingClientRect().height);this.dom.classList.toggle("multiline",t*e.scale*1.5<s)})),this.dom.classList.toggle("touch-device",e.isTouch||!1),e.skipDelay?this.dom.classList.remove("visibility-hidden"):window.setTimeout((()=>{this.dom.classList.remove("visibility-hidden")}),10),this.dom.classList.remove("display-none"),this.showing=!0)},t.hide=function(){this.dom.classList.add("visibility-hidden"),window.setTimeout((()=>{this.dom.classList.add("display-none")}),0),this.showing=!1},t.isShowing=function(){return this.showing},e}();let _=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=i.extend({},e),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-stage-score-stars-container"),"onHover"===this.params.mode&&this.dom.style.setProperty("--on-hover-transition","var(--label-transition)"),this.addStars(),this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.isShowing()||(this.dom.classList.toggle("touch-device",e.isTouch||!1),e.skipDelay?this.dom.classList.remove("visibility-hidden"):window.setTimeout((()=>{this.dom.classList.remove("visibility-hidden")}),10),this.dom.classList.remove("display-none"),this.showing=!0)},t.buildStarSVG=function(){const e=document.createElementNS("http://www.w3.org/2000/svg","svg");e.setAttribute("viewBox","-22 0 1792 1717"),e.setAttribute("width","100%"),e.setAttribute("height","100%"),e.setAttribute("xmlns","http://www.w3.org/2000/svg");const t=document.createElementNS("http://www.w3.org/2000/svg","path");t.setAttribute("id","outline"),t.setAttribute("fill","currentColor"),t.setAttribute("d","M874 0q43 0 78 32 22 22 35 52l-2-4 207 419 462 68q38 5 66 24 20 13 35 38t15 53v8l-2 8q-11 50-49 84l2-1-335 324 80 460v-2q3 17 3 36-1 43-23 74-14 19-39 31.5t-50 12.5q-40-1-74-20l2 1-413-218-412 218 1-1q-32 18-70 20h-3q-25 0-49.5-12t-38.5-31q-24-32-24-76l2-21v-5l81-466L24 781l2 1q-40-37-47-91l-1-4v-5q0-27 15.5-52.5T29 591q24-16 62-24h2l463-68L764 80l-1 2q12-28 34-48 34-34 77-34Zm0 172L649 627l-506 74 366 356-87 502 450-238 451 238-87-502 366-357-503-73z"),e.appendChild(t);const s=document.createElementNS("http://www.w3.org/2000/svg","path");s.setAttribute("id","background-right"),s.setAttribute("d","M874 172 649 627l-506 74 366 356-87 502 450-238 2 1.055L1323 1559l-87-502 366-357-503-73zm775.24 678.404-.644.623h.644zm-839.555 662.569-5.072 2.683h5.072z"),e.appendChild(s);const a=document.createElementNS("http://www.w3.org/2000/svg","path");return a.setAttribute("id","background-left"),a.setAttribute("d","M874 172 649 627l-506 74 366 356-87 502 450-238 2 1.055zm-64.314 1340.973-5.073 2.683h5.073z"),e.appendChild(a),e},t.addStars=function(){this.starDOMLeft=document.createElement("div"),this.starDOMLeft.classList.add("h5p-game-map-stage-score-star"),this.starDOMLeft.classList.add("small"),this.starDOMLeft.classList.add("left");let e=this.buildStarSVG();this.starDOMLeft.appendChild(e),this.dom.appendChild(this.starDOMLeft),this.starDOMCenter=document.createElement("div"),this.starDOMCenter.classList.add("h5p-game-map-stage-score-star"),e=this.buildStarSVG(),this.starDOMCenter.appendChild(e),this.dom.appendChild(this.starDOMCenter),this.starDOMRight=document.createElement("div"),this.starDOMRight.classList.add("h5p-game-map-stage-score-star"),this.starDOMRight.classList.add("small"),this.starDOMRight.classList.add("right"),e=this.buildStarSVG(),this.starDOMRight.appendChild(e),this.dom.appendChild(this.starDOMRight)},t.setStarsBySegments=function(e){if("number"!=typeof e)return;const t=function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),a=1;a<t;a++)s[a-1]=arguments[a];e.forEach((e=>{s.forEach((t=>e.classList.add(t)))}))};e=Math.max(0,Math.min(e,6));switch(function(e){for(var t=arguments.length,s=new Array(t>1?t-1:0),a=1;a<t;a++)s[a-1]=arguments[a];e.forEach((e=>{s.forEach((t=>e.classList.remove(t)))}))}([this.starDOMLeft,this.starDOMCenter,this.starDOMRight],"half","full"),e){case 0:break;case 1:t([this.starDOMLeft],"half");break;case 2:t([this.starDOMLeft],"full");break;case 3:t([this.starDOMLeft],"full"),t([this.starDOMCenter],"half");break;case 4:t([this.starDOMLeft,this.starDOMCenter],"full");break;case 5:t([this.starDOMLeft,this.starDOMCenter],"full"),t([this.starDOMRight],"half");break;case 6:t([this.starDOMLeft,this.starDOMCenter,this.starDOMRight],"full")}},t.setStarsByPercentage=function(e){"number"==typeof e&&(0===(e=Math.max(0,Math.min(e,100)))?this.setStarsBySegments(0):100===e?this.setStarsBySegments(6):this.setStarsBySegments(Math.round(i.project(e,0,100,1,5))))},t.hide=function(){this.dom.classList.add("visibility-hidden"),window.setTimeout((()=>{this.dom.classList.add("display-none")}),0),this.showing=!1},t.isShowing=function(){return this.showing},e}(),K=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.type&&e.operator&&("number"==typeof e.value||"string"==typeof e.value)&&e.dictionary&&e.getCurrentValue?(this.label=e.label??"---",this.type=e.type,this.operator=e.operator,this.value=e.value,this.dictionary=e.dictionary,this.getCurrentValue=e.getCurrentValue,this.valueRepresentation=e.valueRepresentation??this.value,this):null}var t=e.prototype;return t.check=function(){throw new Error("Method not implemented")},t.getValidOperators=function(){throw new Error("Method not implemented")},t.isValid=function(){return this.getValidOperators().includes(this.getOperator())},t.getType=function(){return this.type},t.getOperator=function(){return this.operator},t.getValue=function(){return this.value},t.getValueRepresentation=function(){return this.valueRepresentation.toString()},t.getMessage=function(){const e=this.getType().charAt(0).toUpperCase()+this.getType().slice(1),t=this.getOperator().charAt(0).toUpperCase()+this.getOperator().slice(1);return(this.dictionary.get(`l10n.restriction${e}${t}`)??"").replace("@value",this.getValueRepresentation()).replace("@label",this.label)},e}();function J(e,t){return J=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},J(e,t)}const Z=["before","is","isNot","after"];let ee=function(e){function t(){var t;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return(t=e.call(this,s)||this).value=new Date(t.getValue()),t}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,J(s,a);var i=t.prototype;return i.check=function(){let e=this.getCurrentValue();if(null==e)return!0;switch(this.getOperator()){case"before":return e<this.getValue();case"is":return e===this.getValue();case"isNot":return e!==this.getValue();case"after":return e>this.getValue();default:return!0}},i.getValidOperators=function(){return Z},i.getValueRepresentation=function(){return`${this.value.toLocaleDateString()}, ${this.value.toLocaleTimeString()}`},t}(K);function te(e,t){return te=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},te(e,t)}const se=["lessThan","equalTo","notEqualTo","greaterThan"];let ae=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.call(this,t)||this}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,te(s,a);var i=t.prototype;return i.check=function(){const e=this.getCurrentValue();if(null==e)return!0;switch(this.getOperator()){case"lessThan":return e<this.getValue();case"equalTo":return e===this.getValue();case"notEqualTo":return e!==this.getValue();case"greaterThan":return e>this.getValue();default:return!0}},i.getValidOperators=function(){return se},t}(K);function ie(e,t){return ie=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ie(e,t)}const re=["lessThan","equalTo","notEqualTo","greaterThan"];let ne=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.call(this,t)||this}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,ie(s,a);var i=t.prototype;return i.check=function(){const e=this.getCurrentValue();if(null==e)return!0;switch(this.getOperator()){case"lessThan":return e<this.getValue();case"equalTo":return e===this.getValue();case"notEqualTo":return e!==this.getValue();case"greaterThan":return e>this.getValue();default:return!0}},i.getValidOperators=function(){return re},t}(K);function oe(e,t){return oe=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},oe(e,t)}const le=["is","isNot"];let ce=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return e.call(this,t)||this}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,oe(s,a);var i=t.prototype;return i.check=function(){const e=this.getCurrentValue();if(null==e)return!0;switch(this.getOperator()){case"is":return e===this.getValue();case"isNot":return e!==this.getValue();default:return!0}},i.getValidOperators=function(){return le},t}(K),ue=function(){function e(){}return e.produce=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t={label:e[`${e.restrictionType}Group`]?.[`${e.restrictionType}Label`],type:e.restrictionType,operator:e[`${e.restrictionType}Group`]?.[`${e.restrictionType}Operator`],value:e[`${e.restrictionType}Group`]?.[`${e.restrictionType}Value`],dictionary:e.dictionary,getCurrentValue:e.callbacks[e.restrictionType]};"stageScore"===e.restrictionType?t.getCurrentValue=()=>e.callbacks.stageScore(e.stageScoreGroup?.stageScoreId):"stageProgress"===e.restrictionType&&(t.valueRepresentation=e.stageProgressGroup?.stageProgressValueRepresentation,t.getCurrentValue=()=>e.callbacks.stageProgress(e.stageProgressGroup?.stageProgressId));const s=this.createRestriction(e.restrictionType,t);return s?.isValid()?s:null},e.createRestriction=function(e,t){switch(e){case"time":return new ee(t);case"totalScore":return new ae(t);case"stageScore":return new ne(t);case"stageProgress":return new ce(t);default:return null}},e}(),he=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.callbacks=i.extend({getTotalScore:()=>0,getStageScore:()=>0,getStageProgress:()=>-1,getTime:()=>new Date},t),this.dictionary=e.dictionary,this.globals=e.globals;const s=this.buildRestrictions(e.accessRestrictions.restrictionSetList);s.length?this.restrictions={allOrAnyRestrictionSet:e.accessRestrictions.allOrAnyRestrictionSet??"all",restrictionSetList:s}:this.restrictions=null}var t=e.prototype;return t.buildRestrictions=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((e=>({...e,restrictionList:this.sanitizeRestrictionList(e.restrictionList)}))).filter((e=>e.restrictionList.length))},t.sanitizeRestrictionList=function(){return(arguments.length>0&&void 0!==arguments[0]?arguments[0]:[]).map((e=>ue.produce({...e,dictionary:this.dictionary,callbacks:{totalScore:this.callbacks.getTotalScore,stageScore:this.callbacks.getStageScore,stageProgress:this.callbacks.getStageProgress,time:this.callbacks.getTime}}))).filter((e=>null!==e))},t.allPassed=function(){if(!this.restrictions)return!0;const e=this.restrictions.restrictionSetList.map((e=>this.checkRestrictionSet(e)));return this.checkAllOrAny(e,this.restrictions.allOrAnyRestrictionSet)},t.includeTimeRestriction=function(){return!!this.restrictions&&this.restrictions.restrictionSetList.some((e=>e.restrictionList.some((e=>"time"===e.type))))},t.checkRestrictionSet=function(e){const t=e.restrictionList.map((e=>e.check()));return this.checkAllOrAny(t,e.allOrAnyRestriction)},t.checkAllOrAny=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1?arguments[1]:void 0;return!e.length||!["all","any"].includes(t)||("all"===t?e.every(Boolean):e.some(Boolean))},t.generateRestrictionSetHTML=function(e){let t=e.restrictionList.map((e=>`<li>${e.getMessage()}</li>`)).join("");if(e.restrictionList.length>1){t=`<li>${"all"===e.allOrAnyRestriction?this.dictionary.get("l10n.restrictionsAllOf"):this.dictionary.get("l10n.restrictionsAnyOf")}<ul>${t}</ul></li>`}return t},t.getMessagesHTML=function(){return`${"all"===this.restrictions.allOrAnyRestrictionSet?this.dictionary.get("l10n.restrictionsAllOfLong"):this.dictionary.get("l10n.restrictionsAnyOfLong")}<ul>${this.restrictions.restrictionSetList.map((e=>this.generateRestrictionSetHTML(e))).join("")}</ul>`},e}();const de=0,pe=1;let me=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({accessRestrictions:{restrictionSetList:[]}},e),this.params.type=de,this.params.specialStageType&&(this.params.type=pe),this.params.state=this.params.state??this.params.globals.get("states").locked,this.callbacks=i.extend({onClicked:()=>{},onStateChanged:()=>{},onFocused:()=>{},onBecameActiveDescendant:()=>{},onAddedToQueue:()=>{},onAccessRestrictionsHit:()=>{}},t);const s=this.params.globals.get("params").gamemapSteps.gamemap.elements;this.params.accessRestrictions.restrictionSetList=(this.params.accessRestrictions.restrictionSetList??[]).filter((e=>e.restrictionList)).map((e=>(e.restrictionList=e.restrictionList.map((e=>{const t=e.stageProgressGroup?.stageProgressValue;if(t&&(e.stageProgressGroup.stageProgressValue=this.params.globals.get("states")[t],e.stageProgressGroup.stageProgressValueRepresentation=this.params.dictionary.get(`l10n.${t}`)),"stageScore"===e.restrictionType&&e.stageScoreGroup){const t=s.find((t=>t.id===e.stageScoreGroup.stageScoreId))?.label;e.stageScoreGroup.stageScoreLabel=t}else if("stageProgress"===e.restrictionType&&e.stageProgressGroup){const t=s.find((t=>t.id===e.stageProgressGroup.stageProgressId))?.label;e.stageProgressGroup.stageProgressLabel=t}return e})),e))),this.restrictions=new he({dictionary:this.params.dictionary,globals:this.params.globals,accessRestrictions:this.params.accessRestrictions},{getTotalScore:()=>this.callbacks.getTotalScore(),getStageScore:e=>this.callbacks.getScore(e),getStageProgress:e=>this.callbacks.getStageProgress(e),getTime:()=>new Date}),this.isDisabledState=!1,this.isAnimating=!1,this.shouldBePlayful=!0,this.isReachableState=!0,this.dom=document.createElement("button"),this.dom.classList.add("h5p-game-map-stage"),this.dom.setAttribute("id",`stage-button-${this.params.id}`),this.dom.addEventListener("click",(e=>{this.handleClick(e)})),this.dom.addEventListener("focus",(()=>{this.callbacks.onFocused(this.params.id)})),this.params.globals.get("params").behaviour.map.showLabels&&(this.dom.addEventListener("mouseenter",(e=>{this.handleMouseOver(e)})),this.dom.addEventListener("focus",(e=>{this.handleMouseOver(e)})),this.dom.addEventListener("mouseleave",(()=>{this.handleMouseOut()})),this.dom.addEventListener("blur",(e=>{this.handleMouseOut(e)}))),this.content=document.createElement("div"),this.content.classList.add("h5p-game-map-stage-content"),this.content.classList.add("dark-text"),this.dom.appendChild(this.content),this.contentComputedStyle=window.getComputedStyle(this.content);const a=this.params.telemetry.y<50?"bottom":"top";"never"!==this.params.showStars&&(this.scoreStars=new _({mode:this.params.showStars}),this.dom.appendChild(this.scoreStars.getDOM())),this.label=new X({position:a,text:this.params.label}),this.dom.appendChild(this.label.getDOM()),this.setState(this.params.state),this.setTabIndex("-1"),this.params.visible||this.params.alwaysVisible?this.show():this.hide(),this.update(e.telemetry)}var t=e.prototype;return t.getDOM=function(){return this.dom},t.getId=function(){return this.params.id},t.getLabel=function(){return this.params.label},t.getType=function(){return this.params.type},t.getNeighbors=function(){return this.params.neighbors},t.isVisible=function(){return this.isVisibleState},t.setReachable=function(e){"boolean"==typeof e&&(this.isReachableState=e,this.isReachable()||this.hide())},t.isReachable=function(){return this.isReachableState},t.togglePlayfulness=function(e){this.shouldBePlayful="boolean"==typeof e?e:!this.shouldBePlayful},t.focus=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.skipNextFocusHandler=e.skipNextFocusHandler,this.dom.focus()},t.updateAriaLabel=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=e.customText||this.params.dictionary.get("a11y.stageButtonLabel").replace(/@stagelabel/,this.params.label);let s;this.state===this.params.globals.get("states").locked?s=this.params.dictionary.get("a11y.locked"):this.state!==this.params.globals.get("states").completed&&this.state!==this.params.globals.get("states").cleared||(s=this.params.dictionary.get("a11y.cleared"));const a=e.customState||s,i=[t];a&&i.push(a),this.dom.setAttribute("aria-label",i.join(". "))},t.addEventListener=function(e,t){this.dom.addEventListener(e,t)},t.removeEventListener=function(e,t){this.dom.removeEventListener(e,t)},t.canBeStartStage=function(){return this.params.canBeStartStage||!1},t.getAccessRestrictions=function(){return this.params.accessRestrictions},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(!this.isReachable())return;const t=()=>{this.dom.classList.remove("display-none"),window.requestAnimationFrame((()=>{this.dom.classList.remove("transparent")}))};e.queue?this.callbacks.onAddedToQueue((()=>{t()})):t(),this.isVisibleState=!0},t.hide=function(){this.params.alwaysVisible&&this.isReachable()||(this.dom.classList.add("display-none"),this.dom.classList.add("transparent"),this.isVisibleState=!1)},t.setStartStage=function(){this.isStartStageState=!0},t.isStartStage=function(){return this.isStartStageState??!1},t.lock=function(){this.setState("locked")},t.unlock=function(){this.state===this.params.globals.get("states").locked&&(this.isStartStage()||this.passesRestrictions())&&(this.params.globals.get("read")(this.params.dictionary.get("a11y.stageUnlocked").replace(/@stagelabel/,this.params.label)),this.setState("open"))},t.update=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};for(let t in e){"string"==typeof e[t]&&(e[t]=parseFloat(e[t]));let s=t;if("x"===t)s="left";else{if("y"!==t)return;s="top"}this.dom.style.setProperty(`--stage-${s}`,`${e[t]}%`)}},t.updateColor=function(){if(!this.dom.isConnected)return;const e=Q(this.contentComputedStyle.getPropertyValue("background-color")),t=this.contentComputedStyle.getPropertyValue("--stage-color-contrast-dark"),s=this.contentComputedStyle.getPropertyValue("--stage-color-contrast-light"),a=e.contrast(Q(t)),i=e.contrast(Q(s));this.content.classList.toggle("dark-text",a>i),this.content.classList.toggle("light-text",a<=i),e.isDark()?this.content.style.setProperty("--stage-color-border",e.darken(.3).rgb().string()):this.content.style.setProperty("--stage-color-border",e.lighten(.3).rgb().string())},t.enable=function(){this.isDisabledState=!1,this.dom.removeAttribute("disabled")},t.disable=function(){this.dom.setAttribute("disabled","disabled"),this.isDisabledState=!0},t.animate=function(e){"string"!=typeof e||this.isAnimating||this.params.globals.get("params").visual.misc.useAnimation&&(this.isAnimating=!0,Y(this.dom,e,(()=>{this.isAnimating=!1})))},t.handleClick=function(){if(this.isDisabledState)return;this.label.hide(),"onHover"===this.params.showStars&&this.scoreStars.hide();const e=this.params.globals.get("states");if(this.state===e.locked||this.state===e.sealed)return this.animate("shake"),this.params.jukebox.play("clickStageLocked"),void(this.state!==e.locked||this.passesRestrictions()||this.callbacks.onAccessRestrictionsHit({id:this.params.id,html:this.restrictions.getMessagesHTML()}));this.callbacks.onClicked(this.params.id,this.state)},t.passesRestrictions=function(){return this.restrictions.allPassed()},t.handleMouseOver=function(e){if(this.skipNextFocusHandler)return void(this.skipNextFocusHandler=!1);if(this.isDisabledState)return;if(i.supportsTouch())return;let t=parseFloat(window.getComputedStyle(this.dom).getPropertyValue("scale"));t=Number.isNaN(t)?1:t,"onHover"===this.params.showStars&&this.belongsToTask&&this.scoreStars.show({skipDelay:e instanceof FocusEvent,scale:t}),this.label.show({skipDelay:e instanceof FocusEvent,scale:t})},t.handleMouseOut=function(){i.supportsTouch()||(this.label.hide(),"onHover"===this.params.showStars&&this.scoreStars.hide())},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.setReachable(!0),this.isStartStageState=!1;const t=e.isInitial?this.params.state:this.params.globals.get("states").locked;this.setState(t),t===this.params.globals.get("states").locked&&this.setTabIndex("-1"),this.shouldBePlayful=!0,e.isInitial&&this.params.visible?this.show():this.hide()},t.getState=function(){return this.state},t.setState=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=this.params.globals.get("states"),a=this.params.globals.get("params");if("string"==typeof e&&(e=Object.entries(s).find((t=>t[0]===e))[1]),"number"!=typeof e)return;let i;if(t.force?i=s[e]:e===s.locked?i=s.locked:e===s.open||e===s.opened?(this.state!==s.completed&&this.state!==s.cleared&&(i=s.open),this.show()):e!==s.completed||"free"!==a.behaviour.map.roaming&&"complete"!==a.behaviour.map.roaming?e===s.cleared?i=s.cleared:e===s.sealed&&(i=s.sealed):i=s.cleared,"number"==typeof i&&(!this.state||this.state!==i)){this.state=i;const e=()=>{for(const[e,t]of Object.entries(s))t!==this.state?this.content.classList.remove(`h5p-game-map-stage-${e}`):this.content.classList.add(`h5p-game-map-stage-${e}`);this.updateAriaLabel(),window.requestAnimationFrame((()=>{this.updateColor()})),this.shouldBePlayful&&(i===s.open||i===s.opened?(this.animate("bounce"),this.params.jukebox.play("unlockStage")):i===s.cleared&&(this.animate("bounce"),this.params.jukebox.play("clearStage")))},t={};this.shouldBePlayful?i===s.cleared?t.block=1e3:i===s.sealed&&(t.skipQueue=!0):t.block=0,this.callbacks.onAddedToQueue(e,t),this.callbacks.onStateChanged(this.params.id,this.state)}},t.setTabIndex=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"number"!=typeof e&&"string"!=typeof e||(this.dom.setAttribute("tabindex",`${e}`),"0"!==e||t.skipActiveDescendant||this.callbacks.onBecameActiveDescendant(this.params.id))},t.setTaskState=function(e){this.belongsToTask=e},t.showScoreStars=function(){this.scoreStars.show()},t.updateScoreStar=function(e){this.scoreStars?.setStarsByPercentage(e)},t.hasTimeRestriction=function(){return this.restrictions.includeTimeRestriction()},e}();function ge(e,t){return ge=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ge(e,t)}let be=function(e){function t(){var t;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(t=e.call(this,s,a)||this).content.classList.add(t.params.specialStageType),t.content.classList.toggle("override-symbol",!0===t.params.overrideSymbol),t.getState()===t.params.globals.get("states").cleared&&t.disable(),t}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,ge(s,a),t.prototype.runSpecialFeature=function(e){const t=this.params.globals.get("states");switch(this.params.specialStageType){case"finish":e.showFinishConfirmation();break;case"extra-life":e.addExtraLives(this.params.specialStageExtraLives??0),this.setState(t.cleared),e.handleSpecialFeatureRun("extra-life"),this.disable();break;case"extra-time":e.addExtraTime(this.params.specialStageExtraTime??0),this.setState(t.cleared),e.handleSpecialFeatureRun("extra-time"),this.disable();break;case"link":this.setState(t.cleared),window.open(this.params.specialStageLinkURL,this.params.specialStageLinkTarget)}},t}(me);let fe=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({elements:{}},e),this.callbacks=i.extend({onStageClicked:()=>{},onStageStateChanged:()=>{},onStageFocused:()=>{},onBecameActiveDescendant:()=>{},onAddedToQueue:()=>{},onAccessRestrictionsHit:()=>{},getStageScore:()=>0,getExerciseState:()=>0},t),this.handleSelectionKeydown=this.handleSelectionKeydown.bind(this),this.stages=this.buildStages(this.params.elements),this.stages.some((e=>e.hasTimeRestriction()))&&window.setInterval((()=>{this.updateStatePerRestrictions()}),2500)}var t=e.prototype;return t.getDOMs=function(){return this.stages.map((e=>e.getDOM()))},t.buildStages=function(e){var t=this;const s=[];if(!Object.keys(e??{}).length)return[];const a=this.params.globals.get("extras").previousState?.content?.stages??[];for(let i in e){const r=e[i],n=r.neighbors.map((t=>e[parseInt(t)].id)),o=a.find((e=>e.id===r.id));let l=this.params.globals.get("params").visual.stages.showScoreStars;r.specialStageType&&(l="never");const c={id:r.id,dictionary:this.params.dictionary,globals:this.params.globals,jukebox:this.params.jukebox,canBeStartStage:r.canBeStartStage,showStars:l,accessRestrictions:r.accessRestrictions,...r.contentType&&{contentType:r.contentType},specialStageType:r.specialStageType,...r.specialStageExtraLives&&{specialStageExtraLives:r.specialStageExtraLives},...r.specialStageExtraTime&&{specialStageExtraTime:r.specialStageExtraTime},...r.specialStageLinkURL&&{specialStageLinkURL:r.specialStageLinkURL},...r.specialStageLinkTarget&&{specialStageLinkTarget:r.specialStageLinkTarget},label:r.label,neighbors:n,telemetry:r.telemetry,visuals:this.params.visuals,visible:o?.visible,alwaysVisible:r.alwaysVisible,overrideSymbol:r.overrideSymbol,...o?.state&&{state:o?.state}},u={onClicked:(e,t)=>{this.callbacks.onStageClicked(e,t)},onStateChanged:(e,t)=>{this.callbacks.onStageStateChanged(e,t)},onFocused:e=>{this.selectionStage||this.callbacks.onFocused(),this.handleStageFocused(e)},onBecameActiveDescendant:e=>{this.callbacks.onBecameActiveDescendant(e)},onAddedToQueue:(e,t)=>{this.callbacks.onAddedToQueue(e,t)},onAccessRestrictionsHit:function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};t.callbacks.onAccessRestrictionsHit(e)},getTotalScore:()=>this.callbacks.getTotalScore(),getScore:e=>this.callbacks.getStageScore(e),getStageProgress:e=>this.callbacks.getExerciseState(e)},h=r.specialStageType?new be(c,u):new me(c,u);s.push(h)}return s},t.gatherSubGraphIds=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[],t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];if(0===e.length)return t;const s=(e,t,s)=>s.indexOf(e)===t,a=e.reduce(((e,t)=>[...e,...this.getStage(t).getNeighbors()]),[]).filter((s=>!t.includes(s)&&!e.includes(s))).filter(s);return[...t,...this.gatherSubGraphIds(a,e)].filter(s)},t.updateReachability=function(e){this.stages.forEach((t=>{t.setReachable(e.includes(t.getId()))}))},t.enable=function(){this.stages.forEach((e=>{e.enable()}))},t.disable=function(){this.stages.forEach((e=>{e.disable()}))},t.getCount=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=[...this.stages].filter((e=>e.isReachable()));e=i.extend({filters:{}},e);for(const s in e.filters)t=t.filter((t=>{let a=!0;return"state"===s&&(a=a&&e.filters[s].includes(t.getState())),"type"===s&&(a=a&&e.filters[s].includes(t.getType())),a}));return t.length},t.getStage=function(e){return this.stages.find((t=>t.getId()===e))},t.getCurrentState=function(){return this.stages.map((e=>({id:e.getId(),state:e.getState(),visible:e.isVisible()})))},t.updateState=function(e,t){const s=this.getStage(e);s&&s.setState(t)},t.updateStatePerRestrictions=function(){const e=this.params.globals.get("params").behaviour.map.roaming,t=this.params.globals.get("states");this.stages.forEach((s=>{("free"===e||s.getNeighbors().some((s=>{const a=this.getStage(s).getState();return"complete"===e&&(a===t.completed||a===t.cleared)||"success"===e&&a===t.cleared})))&&s.getState()===t.locked&&s.passesRestrictions()?s.unlock():s.isStartStage()||s.getState()!==t.open||s.passesRestrictions()||s.lock()}))},t.updateNeighborsState=function(e,t){const s=this.params.globals.get("params");if("free"===s.behaviour.map.roaming)return;const a=this.getStage(e);if(!a)return;const i=a.getNeighbors();t===this.params.globals.get("states").open&&"0"!==s.behaviour.map.fog&&i.forEach((e=>{const t=this.getStage(e);t&&t.show({queue:!0})})),t===this.params.globals.get("states").cleared&&i.forEach((e=>{const t=this.getStage(e);t&&t.unlock()}))},t.unlockStage=function(e){if("string"!=typeof e)return;const t=this.stages.find((t=>t.getId()===e));t&&t.unlock()},t.setStartStages=function(){let e=this.stages.filter((e=>e.canBeStartStage()&&e.passesRestrictions()));return e.length||(e=this.stages.filter((e=>e.getType()===de&&e.passesRestrictions()))),e.length||(e=this.stages.filter((e=>e.getType()===de))),e=[e[Math.floor(Math.random()*e.length)]],e.forEach(((e,t)=>{e.setStartStage(),e.unlock(),0===t&&e.setTabIndex("0")})),this.gatherSubGraphIds(e.map((e=>e.getId())))},t.getNextOpenStage=function(){const e=this.params.globals.get("states");return this.stages.find((t=>{const s=t.getState();return s===e.open||s===e.opened}))||null},t.handleStageFocused=function(e){this.selectionNeighbors?.map((e=>e.getId())).includes(e)||(this.stages.forEach((t=>{t.getId()!==e?t.setTabIndex("-1"):t.setTabIndex("0"),t.removeEventListener("keydown",this.handleSelectionKeydown)})),this.selectionStage=this.stages.find((t=>t.getId()===e)),this.selectionNeighbors=this.selectionStage.getNeighbors().map((e=>this.stages.find((t=>t.getId()===e)))),this.highlightedStageId=0,this.selectionStages=[this.selectionStage,...this.selectionNeighbors],this.selectionStages.forEach((e=>{e.addEventListener("keydown",this.handleSelectionKeydown)})))},t.handleSelectionKeydown=function(e){if(!["ArrowLeft","ArrowRight"," ","Enter","Escape","Tab"].includes(e.key))return;const t=this.selectionStages[this.highlightedStageId];"ArrowLeft"===e.key?(0!==this.highlightedStageId&&(t.setTabIndex("-1"),t.updateAriaLabel()),this.highlightStage(this.highlightedStageId=(this.highlightedStageId+1)%this.selectionStages.length),e.preventDefault()):"ArrowRight"===e.key?(0!==this.highlightedStageId&&(t.setTabIndex("-1"),t.updateAriaLabel()),this.highlightStage((this.highlightedStageId+this.selectionStages.length-1)%this.selectionStages.length),e.preventDefault()):" "===e.key||"Enter"===e.key?0!==this.highlightedStageId&&(this.selectionStages[0].setTabIndex("-1"),this.selectionNeighbors=null,t.updateAriaLabel(),t.animate("pulse"),this.params.globals.get("read")(this.params.dictionary.get("a11y.movedToStage").replace(/@stagelabel/,t.getLabel())),window.setTimeout((()=>{t.getDOM().blur(),t.getDOM().focus()}),100),e.preventDefault()):"Escape"===e.key?(t.setTabIndex("-1"),t.updateAriaLabel(),this.highlightStage(0)):"Tab"===e.key&&(0!==this.highlightedStageId&&(t.setTabIndex("-1"),t.updateAriaLabel()),this.selectionStage=null,this.selectionNeighbors=null,this.selectionStages=null)},t.highlightStage=function(e){if(!Array.isArray(this.selectionStages)||e>this.selectionStages.length)return;this.highlightedStageId=e;const t=this.selectionStages[this.highlightedStageId];0!==e&&t.updateAriaLabel({customText:this.params.dictionary.get("a11y.adjacentStageLabel").replace(/@stagelabelOrigin/,this.selectionStages[0].getLabel()).replace(/@stagelabelNeighbor/,t.getLabel())}),t.setTabIndex("0",{skipActiveDescendant:!0}),t.focus()},t.setTabIndex=function(e,t){const s=this.stages.find((t=>t.getId()===e));s?.setTabIndex(t)},t.togglePlayfulness=function(e){"boolean"==typeof e&&this.stages.forEach((e=>{e.togglePlayfulness(!1)}))},t.forEach=function(e){for(let t=0;t<this.stages.length;t++)e(this.stages[t],t,this.stages)},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.stages.forEach((t=>{t.reset({isInitial:e.isInitial})}))},t.setTaskState=function(e,t){const s=this.getStage(e);s&&(s.setTaskState(t),t&&"always"===this.params.globals.get("params").visual.stages.showScoreStars&&s.showScoreStars())},t.updateScoreStar=function(e,t){if("*"===e)return void this.stages.forEach((e=>{e.updateScoreStar(t)}));const s=this.getStage(e);s&&s.updateScoreStar(t)},e}();let ye=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({buttons:[],l10n:{buttonText:"Close"},a11y:{screenOpened:"Screen was opened"}},e),this.callbacks=i.extend({onButtonClicked:()=>{},onRead:()=>{}},t),this.buttons=[],this.dom=this.buildDOM(),this.visuals=this.buildVisualsElement(this.params.medium),this.dom.append(this.visuals),this.setMedium(this.params.medium),this.introduction=this.buildIntroduction(),this.setIntroduction(this.params.introduction),this.dom.append(this.introduction),this.content=this.buildContent(),this.setContent(this.params.content),this.dom.append(this.content);const s=document.createElement("div");s.classList.add("media-screen-buttons-wrapper"),this.dom.append(s),this.params.buttons.forEach((e=>{const t=this.buildButton(e.id,e.text,e.className);s.append(t),this.buttons.push(t)}))}var t=e.prototype;return t.getDOM=function(){return this.dom},t.buildDOM=function(){const e=document.createElement("div");return e.classList.add("media-screen"),this.params.id&&e.classList.add(this.params.id),e},t.buildVisualsElement=function(){const e=document.createElement("div");return e.classList.add("media-screen-medium"),e},t.buildBar=function(){const e=document.createElement("div");return e.classList.add("media-screen-bar"),e},t.buildIntroduction=function(){const e=document.createElement("div");return e.classList.add("media-screen-introduction"),e},t.buildContent=function(){const e=document.createElement("div");return e.classList.add("media-screen-content"),e},t.buildButton=function(e,t,s){const a=document.createElement("button");s&&a.classList.add(s),a.innerText=t,a.addEventListener("click",(()=>{this.hide(),this.callbacks.onButtonClicked(e)}));const i=document.createElement("div");return s||i.classList.add("media-screen-button"),i.classList.add(`media-screen-button-${e}`),i.appendChild(a),i},t.setIntroduction=function(e){e?(this.introduction.innerHTML=e,this.introduction.classList.remove("display-none")):this.introduction.classList.add("display-none")},t.setContent=function(e){e?(this.content.innerHTML="",this.content.append(e),this.content.classList.remove("display-none")):this.content.classList.add("display-none")},t.setMedium=function(e){if(this.medium=e,this.mediumFile=this.getMediumFile(e),this.mediumFile){const e=this.buildVisualsElement(this.params.medium);this.dom.replaceChild(e,this.visuals),this.visuals=e,i.callOnceVisible(this.dom,(()=>{this.initMedia()}),{root:document.documentElement})}else this.visuals.classList.add("display-none")},t.getMediumFile=function(e){return e?.params?.file?e.params.file:Array.isArray(e?.params?.sources)&&e.params.sources.length?e.params.sources[0]:null},t.initMedia=function(){if(this.visuals&&this.mediumFile&&void 0!==this.params.contentId){if("H5P.Video"===(this.medium.library||"").split(" ")[0]&&(this.medium.params.visuals.fit=!1),H5P.newRunnable(this.medium,this.params.contentId,H5P.jQuery(this.visuals),!1,{metadata:this.medium.medatata}),"H5P.Image"===(this.medium.library||"").split(" ")[0]){const e=this.visuals.querySelector("img")||this.visuals.querySelector(".h5p-placeholder");e.style.height="auto",e.style.width="auto"}this.visuals.appendChild(this.buildBar())}},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.dom.classList.remove("display-none"),e.readOpened&&this.callbacks.read(this.params.a11y.screenOpened),window.setTimeout((()=>{e.focusButton&&this.buttons.length&&this.buttons[0].querySelector("button").focus()}),100)},t.hide=function(){this.dom.classList.add("display-none")},e}();function ve(e,t){return ve=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},ve(e,t)}let we=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.call(this,t,s)||this}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,ve(s,a),t}(ye);function Se(e,t){return Se=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Se(e,t)}let xe=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.call(this,t,s)||this}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,Se(s,a),t}(ye);let ke=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.callbacks=i.extend({onImageLoaded:()=>{}},t),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-map");const s=this.params.globals.get("params"),a=s.gamemapSteps?.gamemap?.elements[0]?.telemetry?.width,r=s.gamemapSteps?.gamemap?.elements[0]?.telemetry?.height;this.dom.style.setProperty("--stage-height",`${r}%`),this.dom.style.setProperty("--stage-width",`${a}%`),this.dom.style.setProperty("--stage-color",s.visual.stages.colorStage),this.dom.style.setProperty("--stage-color-cleared",s.visual.stages.colorStageCleared),this.dom.style.setProperty("--stage-color-locked",s.visual.stages.colorStageLocked),this.dom.style.setProperty("--stage-color-contrast-dark","#000"),this.dom.style.setProperty("--stage-color-contrast-light","#fff"),this.dom.style.setProperty("--path-color",s.visual.paths.style.colorPath),this.dom.style.setProperty("--path-color-cleared",s.visual.paths.style.colorPathCleared),this.dom.style.setProperty("--path-style",s.visual.paths.style.pathStyle),this.image=document.createElement("img"),this.image.classList.add("h5p-game-map-background-image"),this.image.alt="",this.image.addEventListener("load",(()=>{this.callbacks.onImageLoaded(this.image)})),this.params.backgroundImage?this.image.src=this.params.backgroundImage:this.image.classList.add("hidden"),this.params.backgroundColor&&this.dom.style.setProperty("--map-background-color",this.params.backgroundColor),this.dom.appendChild(this.image),this.pathWrapper=document.createElement("div"),this.pathWrapper.classList.add("h5p-game-map-path-wrapper"),this.params.paths.getDOMs().forEach((e=>{this.pathWrapper.appendChild(e)})),this.dom.appendChild(this.pathWrapper),this.stageWrapper=document.createElement("div"),this.stageWrapper.classList.add("h5p-game-map-stage-wrapper"),this.stageWrapper.setAttribute("role","application"),this.stageWrapper.setAttribute("aria-label",this.params.dictionary.get("a11y.applicationDescription")),this.params.stages.getDOMs().forEach((e=>{this.stageWrapper.appendChild(e)})),this.dom.appendChild(this.stageWrapper)}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none")},t.setFullscreen=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(!t.height||!t.width)return;if(!e)return void this.forceSize(null);const s=this.getSize();let a,i;s.width/s.height>t.width/t.height?(a=t.width,i=t.width*s.height/s.width):(a=t.height*s.width/s.height,i=t.height),this.forceSize({container:{width:t.width,height:t.height},map:{width:a,height:i}})},t.getSize=function(){const e=this.image.getBoundingClientRect();return{height:e.height,width:e.width}},t.resize=function(){clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout((()=>{const e=this.getSize();this.pathWrapper.style.height=`${e.height}px`,this.stageWrapper.style.height=`${e.height}px`;const t=parseFloat(this.dom.style.getPropertyValue("--stage-height")),s=e.height/100*t;this.dom.style.setProperty("--stage-font-size",`calc(0.5 * ${s}px)`),this.dom.style.setProperty("--stage-line-height",`${s}px`)}),0)},t.forceSize=function(e){this.dom.style.height="",this.dom.style.width="",this.dom.style.margin="",this.dom.style.overflow="",this.image.style.height="",this.image.style.width="",this.pathWrapper.style.height="",this.pathWrapper.style.width="",this.stageWrapper.style.height="",this.stageWrapper.style.width="",null!==e&&(e?.container?.width&&e?.container?.height&&e?.map?.width&&e?.map?.height&&window.requestAnimationFrame((()=>{this.dom.style.height=`${e.container.height}px`,this.dom.style.width=`${e.container.width}px`,this.dom.style.margin="auto",this.dom.style.overflow="hidden auto",this.image.style.height=`${e.map.height}px`,this.image.style.width=`${e.map.width}px`,this.pathWrapper.style.height=`${e.map.height}px`,this.pathWrapper.style.width=`${e.map.width}px`,this.stageWrapper.style.height=`${e.map.height}px`,this.stageWrapper.style.width=`${e.map.width}px`,window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))})),window.requestAnimationFrame((()=>{this.params.globals.get("resize")()})))},t.setActiveDescendant=function(e){this.stageWrapper.setAttribute("aria-activedescendant",`stage-button-${e}`)},e}(),Ee=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.callbacks=i.extend({},t),this.dom=document.createElement("div"),this.dom.classList.add("status-container"),this.dom.classList.add(`status-container-${e.id}`);const s=document.createElement("div");if(s.classList.add("status-container-values"),this.dom.append(s),this.value=document.createElement("span"),this.value.classList.add("value"),s.append(this.value),e.hasMaxValue){const e=document.createElement("span");e.classList.add("delimiter"),e.innerText="/",s.append(e),this.maxValue=document.createElement("span"),this.maxValue.classList.add("max-value"),s.append(this.maxValue)}this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.setStatus=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};null!==(e.value??null)&&(this.value.innerText=e.value),null!==(e.maxValue??null)&&this.maxValue&&(this.maxValue.innerText=e.maxValue)},t.show=function(){this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none")},t.animate=function(e){Y(this.dom,e)},e}(),Ae=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.callbacks=i.extend({},t),this.containers={},this.dom=document.createElement("div"),this.dom.classList.add("status-containers")}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none")},t.addContainer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"string"==typeof e.id&&(this.containers[e.id]=new Ee(e),this.dom.append(this.containers[e.id].getDOM()))},t.showContainer=function(e){this.containers[e]&&this.containers[e].show()},t.hideContainer=function(e){this.containers[e]&&this.containers[e].hide()},t.setStatus=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.containers[e]&&this.containers[e].setStatus(t)},t.animate=function(e,t){this.containers[e]&&this.containers[e].animate(t)},e}(),Te=function(){function e(e,t){this.params=i.extend({a11y:{active:"",disabled:"",inactive:""},active:!1,classes:[],disabled:!1,type:"pulse",pulseStates:[],pulseIndex:0},e||{}),Array.isArray(this.params.classes)||(this.params.classes=[this.params.classes]),"pulse"===this.params.type&&(this.params.a11y.inactive||(this.params.a11y.inactive=this.params.a11y.active||""),this.params.a11y.active||(this.params.a11y.active=this.params.a11y.inactive||""),this.pulseIndex=this.params.pulseIndex||0),this.active=this.params.active,this.disabled=this.params.disabled,this.callbacks=t||{},this.callbacks.onClick=this.callbacks.onClick||(()=>{}),this.button=document.createElement("button"),this.params.classes&&this.params.classes.forEach((e=>{this.button.classList.add(e)})),this.button.setAttribute("aria-pressed",this.params.active),this.button.setAttribute("tabindex","0"),!0===this.params.active?this.activate():this.deactivate(),!0===this.params.disabled?this.disable():this.enable(),this.pulseIndex<this.params.pulseStates.length&&(this.button.classList.add(`toolbar-button-${this.params.pulseStates[this.pulseIndex].id}`),this.button.setAttribute("aria-label",this.params.pulseStates[this.pulseIndex].label)),this.button.addEventListener("click",(e=>{this.disabled||("toggle"===this.params.type?this.toggle():"pulse"===this.params.type&&this.pulse(),this.callbacks.onClick(e,{active:this.active,id:this.params.id}))}))}var t=e.prototype;return t.getDOM=function(){return this.button},t.show=function(){this.button.classList.remove("toolbar-button-display-none")},t.hide=function(){this.button.classList.add("toolbar-button-display-none")},t.decloak=function(){this.button.classList.remove("toolbar-button-cloak")},t.cloak=function(){this.button.classList.add("toolbar-button-cloak")},t.focus=function(){this.button.focus()},t.enable=function(){this.disabled=!1,this.button.classList.remove("toolbar-button-disabled"),"toggle"===this.params.type?this.active?this.activate():this.deactivate():this.activate()},t.disable=function(){this.button.classList.add("toolbar-button-disabled"),this.button.setAttribute("aria-label",this.params.a11y.disabled),this.disabled=!0},t.activate=function(){if(!this.disabled){if("toggle"===this.params.type)this.button.classList.add("toolbar-button-active"),this.button.setAttribute("aria-pressed",!0),this.button.setAttribute("aria-label",this.params.a11y.active);else{const e=this.params.pulseStates.length?this.params.pulseStates[this.pulseIndex].label:this.params.a11y.active;this.button.setAttribute("aria-label",e)}this.active=!0}},t.force=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};"toggle"===this.params.type?!0===e?this.activate():!1===e?this.deactivate():this.toggle():"pulse"===this.params.type&&"number"==typeof e&&(this.pulseIndex=(e+this.params.pulseStates.length)%this.params.pulseStates.length,this.params.pulseStates.forEach(((e,t)=>{t===this.pulseIndex?(this.button.classList.add(`toolbar-button-${e.id}`),this.button.setAttribute("aria-label",e.label)):this.button.classList.remove(`toolbar-button-${e.id}`)}))),t.noCallback||this.callbacks.onClick({},{active:this.active})},t.deactivate=function(){this.disabled||(this.active=!1,"toggle"===this.params.type&&(this.button.classList.remove("toolbar-button-active"),this.button.setAttribute("aria-pressed",!1)),this.button.setAttribute("aria-label",this.params.a11y.inactive))},t.toggle=function(){this.disabled||(this.active?this.deactivate():this.activate())},t.pulse=function(){if(this.disabled)return;const e=this.params.pulseStates.length;e&&(this.button.classList.remove(`toolbar-button-${this.params.pulseStates[this.pulseIndex].id}`),this.pulseIndex=(this.pulseIndex+1)%e,this.button.classList.add(`toolbar-button-${this.params.pulseStates[this.pulseIndex].id}`),this.button.setAttribute("aria-label",this.params.pulseStates[this.pulseIndex].label))},t.setAttribute=function(e,t){this.button.setAttribute(e,t)},t.isActive=function(){return this.active},t.isDisabled=function(){return this.disabled},t.isCloaked=function(){return this.button.classList.contains("toolbar-button-cloak")},e}();let De=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({buttons:[],hidden:!1},e),this.callbacks=i.extend({},t),this.buttons={},this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-toolbar-tool-bar"),this.dom.setAttribute("role","toolbar"),this.dom.addEventListener("keydown",(e=>{this.handleKeydown(e)})),this.params.hidden&&this.hide();const s=document.createElement("div");if(s.classList.add("toolbar-headline"),s.innerText=i.purifyHTML(this.params.headline),this.dom.append(s),this.params.headline){const e=`headline-${H5P.createUUID()}`;s.setAttribute("id",e),this.dom.setAttribute("aria-labelledby",e)}else this.dom.setAttribute("aria-label",this.params.dictionary.get("a11y.toolbarFallbackLabel"));const a=document.createElement("div");a.classList.add("toolbar-non-headline"),this.dom.append(a),this.statusContainers=new Ae,a.append(this.statusContainers.getDOM()),this.params.statusContainers.forEach((e=>{this.statusContainers.addContainer(e)})),this.buttonsContainer=document.createElement("div"),this.buttonsContainer.classList.add("toolbar-buttons"),a.append(this.buttonsContainer),this.params.buttons.forEach((e=>{this.addButton(e)})),Object.values(this.buttons).forEach(((e,t)=>{e.setAttribute("tabindex",0===t?"0":"-1")})),this.currentButtonIndex=0}var t=e.prototype;return t.getDOM=function(){return this.dom},t.getFullHeight=function(){const e=window.getComputedStyle(this.dom),t=parseFloat(e.getPropertyValue("margin-top"))+parseFloat(e.getPropertyValue("margin-bottom"));return Math.ceil(this.dom.offsetHeight+t)},t.focus=function(){Object.values(this.buttons)[this.currentButtonIndex]?.focus()},t.addButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};"string"==typeof e.id&&(this.buttons[e.id]=new Te({id:e.id,...e.a11y&&{a11y:e.a11y},classes:["toolbar-button",`toolbar-button-${e.id}`],..."boolean"==typeof e.disabled&&{disabled:e.disabled},...e.active&&{active:e.active},...e.type&&{type:e.type},...e.pulseStates&&{pulseStates:e.pulseStates},...e.pulseIndex&&{pulseIndex:e.pulseIndex}},{..."function"==typeof e.onClick&&{onClick:(t,s)=>{e.onClick(t,s)}}}),this.buttonsContainer.appendChild(this.buttons[e.id].getDOM()))},t.setButtonAttributes=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};if(this.buttons[e])for(let s in t)this.buttons[e].setAttribute(s,t[s])},t.forceButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0,s=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};this.buttons[e]&&this.buttons[e].force(t,s)},t.enable=function(){for(const e in this.buttons)this.enableButton(e)},t.disable=function(){for(const e in this.buttons)this.disableButton(e)},t.enableButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].enable()},t.disableButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].disable()},t.showButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].show()},t.hideButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].hide()},t.decloakButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].decloak()},t.cloakButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&this.buttons[e].cloak()},t.focusButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";this.buttons[e]&&!this.buttons[e].isCloaked()&&this.buttons[e].focus()},t.toggleHintFinishButton=function(e){(e="boolean"==typeof e?e:"number"!=typeof this.hintFinishButtonTimeout)?(this.animateButton("finish","pulse"),this.hintFinishButtonTimeout=window.setTimeout((()=>{this.toggleHintFinishButton(!0)}),3e3)):(window.clearTimeout(this.hintFinishButtonTimeout),this.animateButton("finish",null))},t.toggleHintTimer=function(e){(e="boolean"==typeof e?e:"number"!=typeof this.hintTimerTimeout)?(this.animateStatusContainer("timer","pulse"),this.hintTimerTimeout=window.setTimeout((()=>{this.toggleHintTimer(!0)}),1e3)):(window.clearTimeout(this.hintTimerTimeout),this.animateStatusContainer("timer",null))},t.animateButton=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"",t=arguments.length>1?arguments[1]:void 0;this.buttons[e]&&this.params.useAnimation&&Y(this.buttons[e].getDOM(),t)},t.show=function(){this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none")},t.moveButtonFocus=function(e){if("number"!=typeof e)return;if(this.currentButtonIndex+e<0||this.currentButtonIndex+e>Object.keys(this.buttons).length-1)return;Object.values(this.buttons)[this.currentButtonIndex].setAttribute("tabindex","-1"),this.currentButtonIndex=this.currentButtonIndex+e;const t=Object.values(this.buttons)[this.currentButtonIndex];t.setAttribute("tabindex","0"),t.focus()},t.handleKeydown=function(e){if("ArrowLeft"===e.code||"ArrowUp"===e.code)this.moveButtonFocus(-1);else if("ArrowRight"===e.code||"ArrowDown"===e.code)this.moveButtonFocus(1);else if("Home"===e.code)this.moveButtonFocus(0-this.currentButtonIndex);else{if("End"!==e.code)return;this.moveButtonFocus(Object.keys(this.buttons).length-1-this.currentButtonIndex)}e.preventDefault()},t.addStatusContainer=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.statusContainers.addContainer(e)},t.setStatusContainerStatus=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.statusContainers.setStatus(e,t)},t.showStatusContainer=function(e){this.statusContainers.showContainer(e)},t.hideStatusContainer=function(e){this.statusContainers.hideContainer(e)},t.animateStatusContainer=function(e,t){this.params.useAnimation&&this.statusContainers.animate(e,t)},t.toggleSolutionMode=function(e){this.dom.classList.toggle("solution-mode",e)},e}(),Le=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({animDuration:0},e),this.callbacks=i.extend({onInitialized:()=>{},onScored:()=>{}},t),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-exercise-instance-wrapper"),this.instanceWrapper=document.createElement("div"),this.instanceWrapper.classList.add("h5p-game-map-exercise-instance"),this.dom.append(this.instanceWrapper),this.initializeInstance(this.params.previousState)}var s=e.prototype;return s.getDOM=function(){return this.dom},s.initializeInstance=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};if(this.toggleCompleted(e?.completed??!1),this.toggleSuccess(e?.successful??!1),null===this.instance||this.instance)return;const s=this.params.contentType?.library?.split?.(" ")[0];if("H5P.Video"===s){const e=this.params.contentType.params.sources,t=e?.length>0&&["video/mp4","video/webm","video/ogg"].includes(e[0].mime);this.params.contentType.params.visuals.fit=t||!1}"H5P.Audio"===s&&(this.params.contentType.params.fitToWrapper="full"===this.params.contentType.params.playerMode),"H5P.ImageHotspotQuestion"===s&&(this.params.contentType.params.imageHotspotQuestion.hotspotSettings.showFeedbackAsPopup=!1),this.instance||(this.instance=H5P.newRunnable(this.params.contentType,this.params.globals.get("contentId"),void 0,!0,{previousState:e.instanceState??{}})),this.instance&&("H5P.InteractiveVideo"===this.instance.libraryInfo.machineName&&this.runInteractiveVideoWorkaround(this.instance),this.bubbleUp(this.instance,"resize",this.params.globals.get("mainInstance")),this.bubbleDown(this.params.globals.get("mainInstance"),"resize",[this.instance]),this.isTaskState=t.isInstanceTask(this.instance),this.isTaskState&&this.instance.on("xAPI",(e=>{this.trackXAPI(e)})),this.callbacks.onInitialized({isTask:this.isTask()}))},s.getId=function(){return this.params.contentType.subContentId??null},s.getInstance=function(){return this.instance},s.isTask=function(){return this.isTaskState??!1},s.getCurrentState=function(){const e=this.instance?.getCurrentState?.();return{completed:this.wasCompleted(),successful:this.wasSuccessful(),...e&&{instanceState:e}}},s.getXAPIData=function(){if(!this.instance?.getXAPIData)return;let e;try{e=this.instance.getXAPIData()}catch(e){return}return e},s.showSolutions=function(){this.isAttached||this.attachInstance(),this.instance?.showSolutions?.(),this.isShowingSolutions=!0},s.getAnswerGiven=function(){return this.instance?.getAnswerGiven?.()??!1},s.getScore=function(){const e=this.instance?.getScore?.();return"number"==typeof e?e:0},s.getMaxScore=function(){const e=this.instance?.getMaxScore?.();return"number"==typeof e?e:0},s.bubbleUp=function(e,t,s){e.on(t,(e=>{s.bubblingUpwards=!0,s.trigger(t,e),s.bubblingUpwards=!1}))},s.bubbleDown=function(e,t,s){e.on(t,(a=>{e.bubblingUpwards||s.forEach((e=>{this.isAttached&&e.trigger(t,a)}))}))},s.trackXAPI=function(e){if(!this.isAttached)return;if(!e||null===e.getScore())return;new RegExp(this.instance.subContentId).test(e.getVerifiedStatementValue(["object","id"]))&&(this.toggleCompleted(!0),(e.getScore()>=this.instance.getMaxScore()||e.getVerifiedStatementValue(["result","success"]))&&this.toggleSuccess(!0),this.callbacks.onScored())},s.attachInstance=function(){this.isAttached||(this.instance.attach(H5P.jQuery(this.instanceWrapper)),"H5P.Audio"===this.instance?.libraryInfo.machineName&&window.chrome&&(this.instance.audio.style.height="54px"),this.isAttached=!0)},s.wasCompleted=function(){return this.completedState??!1},s.toggleCompleted=function(e){return"boolean"!=typeof e&&(e=!this.completedState),this.completedState=e,this.completedState},s.wasSuccessful=function(){return this.successfulState??!1},s.toggleSuccess=function(e){return"boolean"!=typeof e&&(e=!this.successfulState),this.successfulState=e,this.successfulState},s.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.score=0,this.toggleCompleted(e.isInitial&&(this.params.previousState?.completed??!1)),this.toggleSuccess(e.isInitial&&(this.params.previousState?.successful??!1)),this.isAttached||this.attachInstance(),!e.isInitial&&this.instance&&("function"==typeof this.instance.resetTask?(this.instance.resetTask(),delete this.instance.activityStartTime):(delete this.instance,this.initializeInstance(),this.isAttached=!1))},s.getSubContentIds=function(e){if(!this.instance?.getXAPIData)return[];let t=[];return(e=e??[this.getXAPIData()].filter((e=>void 0!==e))).forEach((e=>{if(e.statement?.object?.id){const s=e.statement.object.id.split("?")[1],a=new URLSearchParams(s).get("subContentId");a&&t.push(a)}Array.isArray(e.children)&&(t=[...t,...this.getSubContentIds(e.children)])})),t},s.handleOpened=function(){"H5P.InteractiveVideo"===this.instance?.libraryInfo.machineName&&this.runInteractiveVideoWorkaround(this.instance)},s.runInteractiveVideoWorkaround=function(e){const t=e?.video;if("YouTube"!==t?.getHandlerName?.())return;const s=t.getCurrentTime();t.once("loaded",(()=>{"number"==typeof s&&s>0&&(e.seek(s),t.pause())})),t.resetPlayback()},e}();function Ce(e,t){for(var s=0;s<t.length;s++){var a=t[s];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,qe(a.key),a)}}function qe(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var s=e[Symbol.toPrimitive];if(void 0!==s){var a=s.call(e,t||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"==typeof t?t:t+""}function Ie(e,t){return Ie=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ie(e,t)}const Oe=1e3;let Be=function(e){function t(){var t;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};(t=e.call(this)||this).params=s,t.params.state=t.params.state??t.params.globals.get("states").unstarted,t.callbacks=i.extend({onStateChanged:()=>{},onScoreChanged:()=>{},onTimerTicked:()=>{},onTimeoutWarning:()=>{},onTimeout:()=>{},onContinued:()=>{},onInitialized:()=>{}},a),t.exercises=[],t.parent=t.params.globals.get("mainInstance"),t.contentId=t.parent.contentId,t.subContentId=t.params.previousState?.subContentId??H5P.createUUID(),t.setState(t.params.globals.get("states").unstarted);for(const e in s.contentsList){const a=t.params.previousState?.instances?.[e],i=s.contentsList[e].contentType;t.exercises.push(new Le({contentType:i,isInitial:t.params.isInitial,dictionary:t.params.dictionary,globals:t.params.globals,jukebox:t.params.jukebox,previousState:a},{onInitialized:e=>{window.setTimeout((()=>{e.score=t.getScore(),e.maxScore=t.getMaxScore(),t.callbacks.onInitialized(e)}),0)},onScored:()=>{t.handleScored()}}))}t.dom=document.createElement("div"),t.dom.classList.add("h5p-game-map-exercise-bundle"),t.exercises.forEach((e=>{t.dom.appendChild(e.getDOM())}));const r=t.exercises[t.exercises.length-1];return t.continueButtonInstance=r.getInstance(),t.continueButtonInstance.registerDomElements&&t.continueButtonInstance.addButton&&t.continueButtonInstance.hasButton?t.continueButtonInstance.addButton("game-map-continue",t.params.dictionary.get("l10n.continue"),(()=>{t.callbacks.onContinued()}),!1):(delete t.continueButtonInstance,t.continueButton=document.createElement("button"),t.continueButton.classList.add("h5p-joubelui-button","h5p-game-map-exercise-instance-continue-button","display-none"),t.continueButton.setAttribute("disabled","disabled"),t.continueButton.innerText=t.params.dictionary.get("l10n.continue"),t.continueButton.addEventListener("click",(()=>{t.callbacks.onContinued()})),t.dom.append(t.continueButton)),t}var s,a;a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,Ie(s,a);var r=t.prototype;return r.getDOM=function(){return this.dom},r.getTitle=function(){return this.params.label},r.getSubContentIds=function(e){let t=[];return this.exercises.forEach((s=>{const a=s.getSubContentIds(e);t=t.concat(a)})),t},r.handleOpened=function(){this.exercises.forEach((e=>{e.handleOpened()}))},r.reset=function(){let e,t,s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};delete this.activityStartTime,s.isInitial?(e=this.params.previousState?.remainingTime,"number"!=typeof e&&(e=(this.params.time?.timeLimit??-1)*Oe),this.isCompleted=this.params.previousState?.isCompleted??!1,t=this.params.previousState?.state??this.params.state):(e=(this.params.time?.timeLimit??-1)*Oe,this.isCompleted=!1,t=this.params.globals.get("states").unstarted),e>-1&&(this.timer=this.timer??new g({interval:500},{onExpired:()=>{this.handleTimeout()},onTick:()=>{this.timeLeft=this.timer.getTime();const e=this.isTimeoutWarning();this.callbacks.onTimerTicked(this.timeLeft,{timeoutWarning:e}),!this.hasPlayedTimeoutWarning&&e&&this.handleTimeoutWarning()}}),this.timeLeft=e),s.isInitial||(this.timer?.reset(),this.timer?.setTime(this.timeLeft)),this.continueButtonInstance?this.continueButtonInstance.hideButton("game-map-continue"):(this.continueButton?.classList.add("display-none"),this.continueButton?.setAttribute("disabled","disabled")),this.setState(t),this.hasPlayedTimeoutWarning=!1,this.wasViewed=!1,this.isShowingSolutions=!1,this.exercises.forEach((e=>{e.reset(s)}))},r.setReachable=function(e){"boolean"==typeof e&&(this.isReachableState=e)},r.isReachable=function(){return this.isReachableState},r.getScore=function(){let e=0;return this.exercises.forEach((t=>{e+=t.getScore()})),e},r.getMaxScore=function(){let e=0;return this.exercises.forEach((t=>{e+=t.getMaxScore()})),e},r.getAnswerGiven=function(){return this.exercises.some((e=>e.getAnswerGiven()))},r.showSolutions=function(){this.exercises.forEach((e=>{e.showSolutions?.()}))},r.getRemainingTime=function(){return this.timeLeft},r.isTimeoutWarning=function(){return"number"==typeof this.params.time.timeoutWarning&&this.timeLeft<=this.params.time?.timeoutWarning*Oe},r.getCurrentState=function(){const e=Math.min(this.timeLeft,(this.params.time?.timeLimit||0)*Oe+this.params.animDuration),t=this.exercises.map((e=>e.getCurrentState()));return{id:this.params.id,subContentId:this.subContentId,state:this.state,remainingTime:e,isCompleted:this.isCompleted,instances:t}},r.triggerXAPIEvent=function(e){const t=this.createXAPIEvent(e);this.trigger(t)},r.createXAPIEvent=function(e){const t=this.createXAPIEventTemplate(e);return i.extend(t.getVerifiedStatementValue(["object","definition"]),this.getXAPIDefinition()),"completed"!==e&&"answered"!==e||t.setScoredResult(this.getScore(),this.getMaxScore(),this,!0,this.getScore()===this.getMaxScore()),t},r.getXAPIDefinition=function(){const e=this.params.globals.get("mainInstance"),t={name:{}};return t.name[e.languageTag]=this.getTitle(),t.name["en-US"]=t.name[e.languageTag],t.description={},t.description[e.languageTag]="Game Map Exercise Bundle",t.description["en-US"]=t.description[e.languageTag],t.type="http://adlnet.gov/expapi/activities/cmi.interaction",t.interactionType="other",t},r.getXAPIData=function(){const e=this.createXAPIEvent("completed");e.data.statement.object.definition.interactionType="compound";const t=this.exercises.map((e=>e?.getXAPIData?.())).filter((e=>!!e));return{statement:e.data.statement,children:t}},r.start=function(){if(!this.isCompleted||!this.isAttached){if(this.isAttached||this.exercises.forEach((e=>{e.attachInstance(),this.isAttached=!0,e.isTask()||(e.toggleCompleted(!0),e.toggleSuccess(!0))})),this.isCompleted=this.exercises.every((e=>e.wasCompleted())),this.isShowingSolutions)this.showSolutions();else if(!this.isCompleted){const e=Math.min(this.timeLeft,(this.params.time?.timeLimit||0)*Oe+this.params.animDuration);this.timer?.start(e)}this.setState(this.params.globals.get("states").opened),this.setActivityStarted(),this.exercises.forEach((e=>{e.getInstance()?.setActivityStarted?.()})),window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))}},r.stop=function(){this.timer?.stop()},r.setState=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};const s=this.params.globals.get("states");if("string"==typeof e&&(e=Object.entries(s).find((t=>t[0]===e))[1]),"number"!=typeof e)return;let a;t.force?a=s[e]:e===s.unstarted?a=s.unstarted:e===s.opened?(this.hasTask=this.hasTask??this.exercises.some((e=>e.isTask())),a=this.hasTask?s.opened:s.cleared):e===s.completed?a=s.completed:e===s.cleared&&(a=s.cleared),this.state&&this.state===a||(this.state=a,this.callbacks.onStateChanged(this.state))},r.getState=function(){return this.state},r.handleTimeout=function(){this.callbacks.onTimeout()},r.handleTimeoutWarning=function(){!this.hasPlayedTimeoutWarning&&this.isTimeoutWarning()&&(this.hasPlayedTimeoutWarning=!0,this.callbacks.onTimeoutWarning())},r.handleScored=function(){const e=this.params.globals.get("params").behaviour.map.roaming;this.isCompleted=this.exercises.every((e=>e.wasCompleted()));const t=this.exercises.every((e=>e.wasSuccessful()));t?(this.setState(this.params.globals.get("states").cleared),window.requestAnimationFrame((()=>{this.triggerXAPIEvent("completed")}))):this.isCompleted&&(this.setState(this.params.globals.get("states").completed),window.requestAnimationFrame((()=>{this.triggerXAPIEvent("completed")}))),("free"===e||"complete"===e&&this.isCompleted||"success"===e&&t)&&(this.stop(),this.continueButtonInstance?this.continueButtonInstance.showButton("game-map-continue"):(this.continueButton.classList.remove("display-none"),this.continueButton.removeAttribute("disabled"))),this.callbacks.onScoreChanged({score:this.getScore(),maxScore:this.getMaxScore()})},function(e,t,s){return t&&Ce(e.prototype,t),s&&Ce(e,s),Object.defineProperty(e,"prototype",{writable:!1}),e}(t,[{key:"libraryInfo",get:function(){const e="H5P.GameMapExerciseBundle",{minorVersion:t,majorVersion:s}=this.parent.libraryInfo;return{machineName:e,majorVersion:s,minorVersion:t,versionedName:`${e} ${s}.${t}`,versionedNameNoSpaces:`${e}-${s}.${t}`}}}])}(H5P.EventDispatcher),Me=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=e,this.callbacks=i.extend({onStateChanged:()=>{},onScoreChanged:()=>{},onTimerTicked:()=>{},onTimeoutWarning:()=>{},onTimeout:()=>{},onContinued:()=>{},onBundleInitialized:()=>{}},t),this.exerciseBundles=[],this.params.elements.forEach((e=>{if(e.specialStageType||!e.contentsList?.length)return;const t=this.params.globals.get("extras").previousState?.content?.exerciseBundles.find((t=>t.exerciseBundle.id===e.id))?.exerciseBundle??{};this.exerciseBundles[e.id]=new Be({...e,dictionary:this.params.dictionary,globals:this.params.globals,jukebox:this.params.jukebox,previousState:t},{onStateChanged:t=>{this.callbacks.onStateChanged(e.id,t)},onScoreChanged:t=>{this.callbacks.onScoreChanged(e.id,t)},onTimerTicked:(t,s)=>{this.callbacks.onTimerTicked(e.id,t,s)},onTimeoutWarning:()=>{this.callbacks.onTimeoutWarning(e.id)},onTimeout:()=>{this.callbacks.onTimeout(e.id)},onContinued:()=>{this.callbacks.onContinued(e.id)},onInitialized:t=>{this.callbacks.onBundleInitialized(e.id,t)}})}));const s=Object.keys(this.exerciseBundles).map((e=>this.exerciseBundles[e].getSubContentIds())).flat();this.trackAllXAPI(s)}var t=e.prototype;return t.trackAllXAPI=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:[];H5P.externalDispatcher.on("xAPI",(t=>{if(e.length){const s=t.getVerifiedStatementValue(["object","id"]).split("?")[1],a=new URLSearchParams(s).get("subContentId");if(!e.includes(a))return}const s=t.getScore();if(null===s)return;const a=t.getMaxScore(),i=t.getVerifiedStatementValue(["result","success"]);s>=a||i?(this.params.jukebox.stopGroup("default"),this.params.jukebox.play("checkExerciseFullScore")):(this.params.jukebox.stopGroup("default"),this.params.jukebox.play("checkExerciseNotFullScore"))}))},t.getExerciseBundle=function(e){return this.exerciseBundles[e]},t.updateReachability=function(e){Object.keys(this.exerciseBundles).forEach((t=>{this.exerciseBundles[t].setReachable(e.includes(t))}))},t.getCurrentState=function(){return Object.values(this.exerciseBundles).filter((e=>e.isReachable())).map((e=>({exerciseBundle:e.getCurrentState()})))},t.getXAPIData=function(){return Object.values(this.exerciseBundles).filter((e=>e.isReachable())).map((e=>e?.getXAPIData?.())).filter((e=>!!e))},t.showSolutions=function(){Object.values(this.exerciseBundles).forEach((e=>{e.isReachable()&&e.showSolutions()}))},t.getAnswerGiven=function(){return Object.values(this.exerciseBundles).some((e=>!!e.isReachable()&&(e.getAnswerGiven()??!0)))},t.getScore=function(){return Object.values(this.exerciseBundles).reduce(((e,t)=>t.isReachable()?e+t.getScore():e),0)},t.getMaxScore=function(){return Object.values(this.exerciseBundles).reduce(((e,t)=>t.isReachable()?e+t.getMaxScore():e),0)},t.resetAll=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};Object.values(this.exerciseBundles).forEach((t=>{t.reset({isInitial:e.isInitial})}))},t.reset=function(e){this.exerciseBundles[e]&&this.exerciseBundles[e].reset()},t.start=function(e){this.exerciseBundles[e]&&this.exerciseBundles[e].start()},t.stop=function(e){this.exerciseBundles[e]&&this.exerciseBundles[e].stop()},e}(),Fe=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-confirmation-dialog"),this.dom.addEventListener("click",(e=>{e.stopPropagation()})),window.matchMedia("(prefers-reduced-motion: reduce)")?.matches&&this.dom.classList.add("prefers-reduced-motion"),this.update(e,t)}var t=e.prototype;return t.getDOM=function(){return this.dom},t.update=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};e=i.extend({},e),e.instance=e.instance??this.params.globals.get("mainInstance"),t=i.extend({onConfirmed:()=>{},onCanceled:()=>{}},t),this.dialog&&(this.dialog.off("confirmed"),this.dialog.off("canceled"),this.dialog.getElement().classList.contains("hidden")||this.dialog.hide()),this.dialog=new H5P.ConfirmationDialog(e),this.dialog.once("confirmed",(()=>{this.dialog.off("canceled"),this.isShowing=!1,t.onConfirmed()})),this.dialog.once("canceled",(()=>{this.dialog.off("confirmed"),this.isShowing=!1,t.onCanceled()})),this.dom.innerHTML="",this.dialog.appendTo(this.dom)},t.show=function(){this.dialog.show(),this.isShowing=!0},t.hide=function(){this.isShowing&&(this.dialog.hide(),this.isShowing=!1)},e}(),Pe=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.handleKeydownEvent=this.handleKeydownEvent.bind(this),this.attachTo(e)}var t=e.prototype;return t.attachTo=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.params=e,this.focusableElements=[]},t.activate=async function(){this.params.trapElement&&(this.isActivated||(this.isActivated=!0,this.observer=await i.callOnceVisible(this.params.trapElement,(()=>{this.handleVisible()}),{root:document.documentElement})))},t.deactivate=function(){this.isActivated&&(this.observer?.unobserve(this.params.trapElement),this.observer?.disconnect(),this.params.trapElement.removeEventListener("keydown",this.handleKeydownEvent,!0),this.isActivated=!1)},t.updateFocusableElements=function(){this.params.trapElement&&(this.focusableElements=this.getFocusableElements(this.params.trapElement))},t.getFocusableElements=function(e){if(!e)return;const t=["a[href]:not([disabled])","button:not([disabled])","textarea:not([disabled])","input:not([disabled])","select:not([disabled])","video","audio",'*[tabindex="0"]'].join(", ");return Array.from(e.querySelectorAll(t)).filter((e=>!0!==e.disabled&&"-1"!==e.getAttribute("tabindex")&&this.isElementVisible(e)))},t.isChild=function(e){if(!this.params.trapElement)return!1;const t=e.parentNode;return!!t&&(t===this.params.trapElement||this.isChild(t))},t.handleVisible=function(){this.updateFocusableElements(),this.params.trapElement.addEventListener("keydown",this.handleKeydownEvent,!0);const e=[...this.params.trapElement.querySelectorAll("iframe")];e&&e.forEach((e=>{e.setAttribute("tabindex","0"),e.addEventListener("blur",this.handleKeydownEvent,!0)})),this.currentFocusElement=null,this.params.initialFocus&&this.isChild(this.params.initialFocus)&&(this.currentFocusElement=this.params.initialFocus),!this.currentFocusElement&&this.focusableElements.length&&(this.currentFocusElement=this.focusableElements[0],this.focusableElements[0]===this.params.closeElement&&1===this.focusableElements.length&&this.params.fallbackContainer?.firstChild&&(this.params.fallbackContainer.firstChild.setAttribute("tabindex","-1"),this.currentFocusElement=this.params.fallbackContainer.firstChild)),this.currentFocusElement?.focus()},t.handleKeydownEvent=function(e){if(this.updateFocusableElements(),!this.focusableElements.length)return;if("Tab"!==e.key&&"blur"!==e.type)return;this.currentFocusElement="blur"!==e.type?document.activeElement:e.target,e.preventDefault();const t=this.focusableElements.findIndex((e=>e===this.currentFocusElement)),s=this.focusableElements.length,a=e.shiftKey?(t+s-1)%s:(t+1)%s;this.currentFocusElement=this.focusableElements[a],this.currentFocusElement.focus()},t.isElementVisible=function(e){if(!e)return!1;const t=window.getComputedStyle(e);return"none"!==t.display&&"hidden"!==t.visibility&&(!e.parentElement||this.isElementVisible(e.parentElement))},e}(),Re=function(){function e(){this.handleNotifyingEnded=this.handleNotifyingEnded.bind(this),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-overlay-dialog-headline-timer"),this.hide()}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){""!==(this.dom.innerText||"")&&this.dom.classList.remove("display-none")},t.hide=function(){this.dom.classList.add("display-none"),this.handleNotifyingEnded()},t.setTime=function(e){if(null===e||""===e)return this.dom.innerText="",void this.hide();const t=g.toTimecode(e);t&&(this.dom.innerText=t,this.show())},t.setTimeoutWarning=function(){let e=arguments.length>0&&void 0!==arguments[0]&&arguments[0];!this.isTimeoutwarning&&e&&this.notify(),this.isTimeoutwarning=e,this.dom.classList.toggle("timeout-warning",e)},t.notify=function(){this.dom.addEventListener("animationend",this.handleNotifyingEnded),this.dom.classList.add("notify-animation")},t.handleNotifyingEnded=function(){this.dom.removeEventListener("animationend",this.handleNotifyingEnded),this.dom.classList.remove("notify-animation")},e}();let Ve=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},e),this.callbacks=i.extend({onClosed:()=>{},onOpenAnimationEnded:()=>{},onCloseAnimationEnded:()=>{}},t),this.handleOpenAnimationEnded=this.handleOpenAnimationEnded.bind(this),this.handleCloseAnimationEnded=this.handleCloseAnimationEnded.bind(this),this.handleGlobalClick=this.handleGlobalClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-overlay-dialog"),this.params.cssMainSelector&&this.dom.classList.add(this.params.cssMainSelector),this.dom.classList.add("transparent"),this.dom.setAttribute("role","dialog"),this.dom.setAttribute("aria-modal","true"),this.contentContainer=document.createElement("div"),this.contentContainer.classList.add("h5p-game-map-overlay-dialog-content-container"),this.contentContainer.classList.add("transparent"),this.contentContainer.classList.add("offscreen"),this.dom.append(this.contentContainer),this.content=document.createElement("div"),this.content.classList.add("h5p-game-map-overlay-dialog-content"),this.contentContainer.append(this.content),this.buttonClose=document.createElement("button"),this.buttonClose.classList.add("h5p-game-map-overlay-dialog-button-close"),this.buttonClose.setAttribute("aria-label",this.params.dictionary.get("a11y.close")),this.buttonClose.addEventListener("click",(()=>{this.callbacks.onClosed()})),this.contentContainer.append(this.buttonClose);const s=document.createElement("div");s.classList.add("h5p-game-map-overlay-dialog-headline"),this.content.append(s),this.headlineText=document.createElement("div"),this.headlineText.classList.add("h5p-game-map-overlay-dialog-headline-text"),s.append(this.headlineText),this.timerDisplay=new Re,s.append(this.timerDisplay.getDOM()),this.instanceContainer=document.createElement("div"),this.instanceContainer.classList.add("h5p-game-map-overlay-dialog-instance-container"),this.content.append(this.instanceContainer),this.focusTrap=new Pe({trapElement:this.dom,closeElement:this.buttonClose,fallbackContainer:this.instanceContainer})}var t=e.prototype;return t.getDOM=function(){return this.dom},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.dom.classList.remove("display-none"),e.isShowingSolutions?this.timerDisplay.hide():this.timerDisplay.show(),window.requestAnimationFrame((()=>{this.dom.classList.remove("transparent"),this.params.globals.get("params").visual.misc.useAnimation?this.contentContainer.addEventListener("animationend",this.handleOpenAnimationEnded):this.handleOpenAnimationEnded(),this.animate("bounce-in",(()=>{this.focusTrap.activate()})),this.contentContainer.classList.remove("offscreen"),document.addEventListener("click",this.handleGlobalClick),document.addEventListener("keydown",this.handleKeyDown)})),window.setTimeout((()=>{this.contentContainer.classList.remove("transparent")}),100)},t.hide=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;document.removeEventListener("click",this.handleGlobalClick),document.removeEventListener("keydown",this.handleKeyDown),e.animate?(this.dom.classList.add("transparent"),this.params.globals.get("params").visual.misc.useAnimation?this.animate("bounce-out",(()=>{this.handleCloseAnimationEnded(),"function"==typeof t&&t()})):(this.handleCloseAnimationEnded(),"function"==typeof t&&t())):(this.contentContainer.classList.add("transparent"),this.contentContainer.classList.add("offscreen"),this.dom.classList.add("display-none"),this.dom.classList.add("transparent"),"function"==typeof t&&t()),this.focusTrap.deactivate()},t.setContent=function(e){this.instanceContainer.innerHTML="",this.instanceContainer.appendChild(e)},t.setTitle=function(e){e=i.purifyHTML(e),this.headlineText.innerText=e,this.dom.setAttribute("aria-label",this.params.dictionary.get("a11y.exerciseLabel").replace(/@stagelabel/,e))},t.setTime=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.timerDisplay.setTime(e),this.timerDisplay.setTimeoutWarning(t.timeoutWarning)},t.getSize=function(){const e=this.dom.getBoundingClientRect();return{width:e.width,height:e.height}},t.animate=function(e,t){"string"!=typeof e||this.isAnimating||this.params.globals.get("params").visual.misc.useAnimation&&(this.isAnimating=!0,Y(this.contentContainer,e,(()=>{this.isAnimating=!1,t()})))},t.handleOpenAnimationEnded=function(){this.contentContainer.removeEventListener("animationend",this.handleOpenAnimationEnded),this.callbacks.onOpenAnimationEnded()},t.handleCloseAnimationEnded=function(){this.contentContainer.removeEventListener("animationend",this.handleCloseAnimationEnded),this.contentContainer.classList.add("transparent"),this.contentContainer.classList.add("offscreen"),this.dom.classList.add("display-none"),this.callbacks.onCloseAnimationEnded()},t.handleGlobalClick=function(e){this.isAnimating||!e.target.isConnected||this.content.contains(e.target)||this.callbacks.onClosed()},t.handleKeyDown=function(e){"Escape"===e.key&&(e.preventDefault(),this.callbacks.onClosed())},e}();function Ne(e,t){return Ne=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ne(e,t)}let je=function(e){function t(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return e.call(this,t,s)||this}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,Ne(s,a),t}(Ve),He=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({ariaLabel:"Slider",minValue:0,value:0,maxValue:100},e),this.callbacks=i.extend({onStarted:()=>{},onSeeked:()=>{},onEnded:()=>{},onFocus:()=>{},onBlur:()=>{}},t),this.dom=document.createElement("div"),this.dom.classList.add("slider-container"),this.slider=document.createElement("input"),this.slider.classList.add("slider"),this.params.vertical&&this.slider.classList.add("vertical"),this.slider.setAttribute("type","range"),this.slider.setAttribute("min","0"),this.slider.setAttribute("aria-valuemin","0"),this.slider.setAttribute("max",`${this.params.maxValue}`),this.slider.setAttribute("aria-valuemax",`${this.params.maxValue}`),this.slider.setAttribute("step","1"),this.slider.setAttribute("aria-label",this.params.ariaLabel),["keydown","mousedown","touchstart"].forEach((e=>{this.slider.addEventListener(e,(e=>{this.handleSliderStarted(e)}))})),this.slider.addEventListener("input",(()=>{this.handleSliderSeeked(parseFloat(this.slider.value))})),["keyup","mouseup","touchend"].forEach((e=>{this.slider.addEventListener(e,(e=>{this.handleSliderEnded(e)}))})),this.slider.addEventListener("focus",(()=>{this.callbacks.onFocus()})),this.slider.addEventListener("blur",(()=>{this.callbacks.onBlur()})),this.dom.append(this.slider),this.setValue(this.params.value)}var t=e.prototype;return t.getDOM=function(){return this.dom},t.enable=function(){this.slider.removeAttribute("disabled")},t.disable=function(){this.slider.setAttribute("disabled","")},t.getValue=function(){return parseFloat(this.slider.value)},t.setValue=function(e){if("number"!=typeof e||isNaN(e))return;this.slider.value=Math.max(0,Math.min(e,this.params.maxValue)),this.slider.setAttribute("aria-valuenow",e);const t=e/this.params.maxValue*100;this.slider.style.background=this.params.vertical?`linear-gradient(to top, var(--color-primary-dark-80) ${t}%, var(--color-primary-15) ${t}%)`:`linear-gradient(to right, var(--color-primary-dark-80) ${t}%, var(--color-primary-15) ${t}%)`},t.handleKeyboardEvent=function(e){if(!["ArrowLeft","ArrowRight","Home","End"].includes(e.code))return!1;const t=Math.max(1,Math.log(this.keydownTime+1));return"ArrowLeft"===e.code?this.setValue(this.getValue()-t):"ArrowRight"===e.code?this.setValue(this.getValue()+t):"Home"===e.code?this.setValue(0):"End"===e.code&&this.setValue(this.params.maxValue),this.keydownTime++,this.handleSliderSeeked(parseFloat(this.slider.value)),e.preventDefault(),!0},t.handleSliderStarted=function(e){if(e instanceof KeyboardEvent){this.handleKeyboardEvent(e)&&this.callbacks.onStarted()}else this.callbacks.onStarted()},t.handleSliderSeeked=function(e){this.callbacks.onSeeked(e),this.setValue(e)},t.handleSliderEnded=function(){this.keydownTime=0,this.callbacks.onEnded()},e}();function Ue(e,t){return Ue=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},Ue(e,t)}let Ge=function(e){function t(){var t;let s=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return(t=e.call(this,s,a)||this).callbacks.onValueChanged=a.onValueChanged||(()=>{}),t.setTitle(t.params.dictionary.get("l10n.settings")),t.buildDOM(),t}var s,a;return a=e,(s=t).prototype=Object.create(a.prototype),s.prototype.constructor=s,Ue(s,a),t.prototype.buildDOM=function(){const e=document.createElement("div");e.classList.add("h5p-game-map-settings-wrapper");const t=document.createElement("div");t.classList.add("settings-group"),e.append(t);const s=document.createElement("span");s.classList.add("h5p-game-map-settings-label"),s.innerText=this.params.dictionary.get("l10n.volumeMusic"),t.append(s);const a=new He({ariaLabel:this.params.dictionary.get("l10n.volumeMusic"),value:this.params.values.volumeMusic},{onSeeked:e=>{this.callbacks.onValueChanged("volumeMusic",e)}});t.append(a.getDOM());const i=document.createElement("div");i.classList.add("settings-group"),e.append(i);const r=document.createElement("span");r.classList.add("h5p-game-map-settings-label"),r.innerText=this.params.dictionary.get("l10n.volumeSFX"),i.append(r);const n=new He({ariaLabel:this.params.dictionary.get("l10n.volumeSFX"),value:this.params.values.volumeSFX},{onSeeked:e=>{this.callbacks.onValueChanged("volumeSFX",e)}});i.append(n.getDOM()),this.setContent(e)},t}(Ve);let ze=function(){function e(){}var t=e.prototype;return t.grabH5PQuestionFeedback=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};const t=this.dom.closest(".h5p-question-content");if(!t)return null;const s=t.parentNode;if(!s)return null;const a=this.params.globals.get("mainInstance");a.setFeedback("",0,e.maxScore);const i=document.createElement("div");i.classList.add("h5p-game-map-feedback-wrapper");const r=s.querySelector(".h5p-question-feedback");r&&i.append(r.parentNode.removeChild(r));const n=s.querySelector(".h5p-question-scorebar");return n&&(i.append(n.parentNode.removeChild(n)),0===e.maxScore&&n.classList.add("display-none")),a.removeFeedback(),i},t.buildDOM=function(){this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-container");const e=this.params.globals.get("params");e.showTitleScreen&&(this.startScreen=new we({id:"start",contentId:this.params.globals.get("contentId"),introduction:e.titleScreen.titleScreenIntroduction,medium:e.titleScreen.titleScreenMedium,buttons:[{id:"start",text:this.params.dictionary.get("l10n.start")}],a11y:{screenOpened:this.params.dictionary.get("a11y.startScreenWasOpened")}},{onButtonClicked:()=>{this.show({focusButton:!0,readOpened:!0})},read:e=>{this.params.globals.get("read")(e)}}),this.startScreen.hide(),this.dom.append(this.startScreen.getDOM()));const t=[];e.behaviour.enableSolutionsButton&&t.push({id:"show-solutions",text:this.params.dictionary.get("l10n.showSolutions"),className:"h5p-joubelui-button"}),e.behaviour.enableRetry&&t.push({id:"restart",text:this.params.dictionary.get("l10n.restart"),className:"h5p-joubelui-button"}),this.endScreen=new xe({id:"end",contentId:this.params.globals.get("contentId"),buttons:t,a11y:{screenOpened:this.params.dictionary.get("a11y.endScreenWasOpened")}},{onButtonClicked:e=>{"restart"===e?this.callbacks.onRestarted():"show-solutions"===e&&(this.showSolutions(),this.params.globals.get("read")(this.params.dictionary.get("a11y.mapSolutionsWasOpened")),window.setTimeout((()=>{this.toolbar.focus()}),100))},read:e=>{this.params.globals.get("read")(e)}}),this.endScreen.hide(),this.dom.append(this.endScreen.getDOM()),this.contentDOM=document.createElement("div"),this.contentDOM.classList.add("h5p-game-map-main"),this.dom.append(this.contentDOM);const s=[];let a;this.params.jukebox.getAudioIds().length&&(s.push({id:"audio",type:"toggle",a11y:{active:this.params.dictionary.get("a11y.buttonAudioActive"),inactive:this.params.dictionary.get("a11y.buttonAudioInactive")},onClick:(e,t)=>{this.toggleAudio(t.active)}}),s.push({id:"settings",type:"toggle",a11y:{active:this.params.dictionary.get("a11y.buttonSettingsActive"),inactive:this.params.dictionary.get("a11y.buttonSettingsInactive")},onClick:(e,t)=>{t.active?(this.settingsDialog.show(),this.toolbar.disable()):(this.settingsDialog.hide(),this.toolbar.enable())}})),s.push({id:"finish",type:"pulse",a11y:{active:this.params.dictionary.get("a11y.buttonFinish")},onClick:()=>{this.showFinishConfirmation()}}),this.params.globals.get("isFullscreenSupported")&&s.push({id:"fullscreen",type:"pulse",pulseStates:[{id:"enter-fullscreen",label:this.params.dictionary.get("a11y.enterFullscreen")},{id:"exit-fullscreen",label:this.params.dictionary.get("a11y.exitFullscreen")}],onClick:()=>{this.callbacks.onFullscreenClicked()}}),this.toolbar=new De({dictionary:this.params.dictionary,...e.headline&&{headline:e.headline},buttons:s,statusContainers:[{id:"timer"},{id:"lives"},{id:"stages",hasMaxValue:!0},{id:"score",hasMaxValue:!0}],useAnimation:e.visual.misc.useAnimation}),this.contentDOM.append(this.toolbar.getDOM()),e?.gamemapSteps?.backgroundImageSettings?.backgroundImage&&(a=H5P.getPath(e.gamemapSteps.backgroundImageSettings.backgroundImage.path??"",this.params.globals.get("contentId"))),this.stages=new fe({dictionary:this.params.dictionary,globals:this.params.globals,jukebox:this.params.jukebox,elements:e.gamemapSteps.gamemap.elements,visuals:e.visual.stages},{onStageClicked:(e,t)=>{this.handleStageClicked(e,t)},onStageStateChanged:(e,t)=>{this.handleStageStateChanged(e,t)},onFocused:()=>{this.handleStageFocused()},onBecameActiveDescendant:e=>{this.handleStageBecameActiveDescendant(e)},onAddedToQueue:(e,t)=>{this.handleStageAddedToQueue(e,t)},onAccessRestrictionsHit:e=>{this.handleStageAccessRestrictionsHit(e)},getTotalScore:()=>this.getScore(),getStageScore:e=>{const t=this.stages.getStage(e);return!t||t instanceof be?0:this.exerciseBundles.getExerciseBundle(e)?.getScore()??0},getExerciseState:e=>{const t=this.stages.getStage(e);return t?t instanceof be?t.getState():this.exerciseBundles.getExerciseBundle(e)?.getState()??0:0}}),this.paths=new y({globals:this.params.globals,elements:e.gamemapSteps.gamemap.elements,paths:e.gamemapSteps.gamemap.paths,visuals:e.visual.paths.style}),this.map=new ke({dictionary:this.params.dictionary,globals:this.params.globals,backgroundImage:a,backgroundColor:e?.gamemapSteps?.backgroundImageSettings?.backgroundColor,paths:this.paths,stages:this.stages},{onImageLoaded:()=>{this.params.globals.get("resize")(),window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))}}),this.contentDOM.append(this.map.getDOM()),this.exerciseBundles=new Me({dictionary:this.params.dictionary,globals:this.params.globals,jukebox:this.params.jukebox,elements:e.gamemapSteps.gamemap.elements},{onStateChanged:(e,t)=>{this.handleExerciseStateChanged(e,t)},onScoreChanged:(e,t)=>{this.handleExerciseScoreChanged(e,t)},onTimerTicked:(e,t,s)=>{this.handleExerciseTimerTicked(e,t,s)},onTimeoutWarning:e=>{this.handleExerciseTimeoutWarning(e)},onTimeout:e=>{this.handleExerciseTimeout(e)},onContinued:()=>{this.handleExerciseScreenClosed()},onBundleInitialized:(e,t)=>{this.handleExerciseBundleInitialized(e,t)}}),this.exerciseScreen=new je({dictionary:this.params.dictionary,globals:this.params.globals,cssMainSelector:"exercise"},{onClosed:()=>{this.handleExerciseScreenClosed()},onOpenAnimationEnded:()=>{this.handleExerciseScreenOpenAnimationEnded()},onCloseAnimationEnded:()=>{this.handleExerciseScreenCloseAnimationEnded()}}),this.exerciseScreen.hide(),this.toolbar.enable(),this.map.getDOM().append(this.exerciseScreen.getDOM()),this.confirmationDialog=new Fe({globals:this.params.globals}),this.dom.append(this.confirmationDialog.getDOM()),this.settingsDialog=new Ge({dictionary:this.params.dictionary,globals:this.params.globals,cssMainSelector:"settings",values:{volumeMusic:this.params.jukebox.getVolumeGroup("background"),volumeSFX:this.params.jukebox.getVolumeGroup("default")}},{onClosed:()=>{this.handleSettingsDialogClosed()},onOpenAnimationEnded:()=>{this.handleSettingsDialogOpenAnimationEnded()},onValueChanged:(e,t)=>{this.handleSettingsDialogValueChanged(e,t)}}),this.settingsDialog.hide(),this.dom.append(this.settingsDialog.getDOM())},t.startVisibilityObserver=function(){document.addEventListener("visibilitychange",(()=>{document.hidden?(this.unmuteWhenVisible=!this.params.jukebox.isMuted("backgroundMusic"),this.params.jukebox.muteAll()):!0===this.unmuteWhenVisible&&(this.params.jukebox.unmuteAll(),this.params.jukebox.play("backgroundMusic"))}))},t.reset=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.exerciseScreen.callbacks.onClosed(),this.toolbar.toggleHintFinishButton(!1),this.toolbar.toggleHintTimer(!1),this.stages.updateScoreStar("*",0),this.params.jukebox.muteAll(),this.stageAttentionSeekerTimeout=null,this.hasUserMadeProgress=!1;const t=this.params.globals.get("params"),s=this.params.globals.get("extras")?.previousState?.content??{};e.isInitial&&"number"==typeof s.livesLeft?this.livesLeft=s.livesLeft:this.livesLeft=t.behaviour.lives??1/0,e.isInitial&&"number"==typeof s.timeLeft?this.resetTimer(s.timeLeft):"number"==typeof this.params.globals.get("params").behaviour.timeLimitGlobal&&this.resetTimer(1e3*this.params.globals.get("params").behaviour.timeLimitGlobal),0===this.livesLeft&&this.stages.forEach((e=>{e.setState("sealed")})),this.gameDone=!!e.isInitial&&(s.gameDone??!1),this.stages.togglePlayfulness(!0),this.stagesGameOverState=[],this.currentStageIndex=0,this.confirmationDialog.hide(),this.fullScoreWasAnnounced=!1,this.openExerciseId=!1,this.callbackQueue.setSkippable(!0),this.queueAnimation=[],this.scheduledAnimations=[],e.isInitial||(this.isShowingSolutions=!1),this.toolbar.toggleSolutionMode(!1),this.paths.reset({isInitial:e.isInitial}),this.stages.reset({isInitial:e.isInitial}),this.exerciseBundles.resetAll({isInitial:e.isInitial}),"all"===t.behaviour.map.fog&&(this.stages.forEach((e=>{e.show()})),this.paths.forEach((e=>{e.show()}))),"free"===t.behaviour.map.roaming&&(this.stages.forEach((e=>{e.passesRestrictions()&&e.setState("open")})),this.paths.forEach((e=>{e.show()})));const a=this.stages.setStartStages();this.stages.updateReachability(a),this.paths.updateReachability(a),this.exerciseBundles.updateReachability(a),this.toolbar.setStatusContainerStatus("lives",{value:this.livesLeft});const i=[this.params.globals.get("states").completed,this.params.globals.get("states").cleared],r=[de],n={type:r},o={state:i,type:r};this.toolbar.setStatusContainerStatus("stages",{value:this.stages.getCount({filters:o}),maxValue:this.stages.getCount({filters:n})}),this.toolbar.setStatusContainerStatus("score",{value:this.getScore(),maxValue:this.getMaxScore()}),this.getScore()>=this.getMaxScore()&&(this.fullScoreWasAnnounced=!0,this.toolbar.toggleHintFinishButton(!0)),this.isAudioOn=this.isAudioOn??!1,this.isAudioOn&&(this.params.jukebox.unmuteAll(),this.params.jukebox.play("backgroundMusic")),this.stages.updateStatePerRestrictions()},e}();let We=function(){function e(){}var t=e.prototype;return t.addExtraLives=function(e){"number"!=typeof e||e<1||this.livesLeft===1/0||(this.livesLeft+=e,this.toolbar.setStatusContainerStatus("lives",{value:this.livesLeft}),this.params.jukebox.play("gainedLife"))},t.handleStageClicked=function(e){const t=this.stages.getStage(e),s=t.getType();if(s===de){this.stages.disable(),window.clearTimeout(this.stageAttentionSeekerTimeout);const s=this.exerciseBundles.getExerciseBundle(e),a=s.getRemainingTime();if("number"==typeof a&&this.exerciseScreen.setTime(a),this.openExerciseId=e,this.callbackQueue.setSkippable(!1),s.handleOpened(),this.exerciseScreen.setContent(s.getDOM()),this.exerciseScreen.setTitle(t.getLabel(),this.params.dictionary.get("a11y.exerciseLabel").replace(/@stagelabel/,t.getLabel())),this.params.jukebox.stopGroup("default"),this.exerciseScreen.show({isShowingSolutions:this.isShowingSolutions}),this.toolbar.disable(),this.exerciseBundles.start(e),this.params.globals.get("params").audio.backgroundMusic.muteDuringExercise&&this.params.jukebox.fade("backgroundMusic",{type:"out",time:this.musicFadeTime}),this.params.jukebox.play("openExercise"),!this.isShowingSolutions){const t=this.params.globals.get("params").gamemapSteps.gamemap.elements.findIndex((t=>t.id===e));this.currentStageIndex=t+1,this.hasUserMadeProgress=!0,this.callbacks.onProgressChanged(this.currentStageIndex)}}else if(s===pe&&!this.isShowingSolutions){const e=this.params.globals.get("states");t.getState()===e.open&&t.runSpecialFeature(this)}window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))},t.handleSpecialFeatureRun=function(e){"extra-life"===e?this.toolbar.animateStatusContainer("lives","pulse"):"extra-time"===e&&this.toolbar.animateStatusContainer("timer","pulse")},t.handleStageStateChanged=function(e,t){if(!this.isShowingSolutions&&(this.paths&&this.callbackQueue.add((()=>{this.paths.updateState(e,t)})),this.stages)){this.stages.updateNeighborsState(e,t);const s=[this.params.globals.get("states").completed,this.params.globals.get("states").cleared],a=[de],i={type:a},r={state:s,type:a};this.toolbar.setStatusContainerStatus("stages",{value:this.stages.getCount({filters:r}),maxValue:this.stages.getCount({filters:i})})}},t.handleStageFocused=function(){window.setTimeout((()=>{this.params.globals.get("read")(this.params.dictionary.get("a11y.applicationInstructions"))}),250)},t.handleStageBecameActiveDescendant=function(e){this.map?.setActiveDescendant(e)},t.handleStageAddedToQueue=function(e,t){this.callbackQueue.add(e,t)},t.handleStageAccessRestrictionsHit=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};e.html=e.html?` ${e.html}`:"",this.toolbar.disableButton("finish"),this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmAccessDeniedHeader"),dialogText:`${this.params.dictionary.get("l10n.confirmAccessDeniedDialog")}${e.html}`,confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.toolbar.enableButton("finish")},onCanceled:()=>{this.toolbar.enableButton("finish")}}),this.confirmationDialog.show()},e}(),$e=function(){function e(){}var t=e.prototype;return t.handleExerciseStateChanged=function(e,t){this.isShowingSolutions||this.stages.updateState(e,t)},t.handleExerciseScoreChanged=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.gameDone||(this.stages.updateScoreStar(e,t.score/t.maxScore*100),this.fullScoreWasAnnounced||this.getScore()!==this.getMaxScore()||(this.fullScoreWasAnnounced=!0,this.callbackQueue.add((()=>{this.params.jukebox.play("fullScore"),this.showFullScoreConfirmation()}))),this.stages.updateStatePerRestrictions(),"number"==typeof t.score&&t.score!==t.maxScore&&this.handleIncompleteScore(e),this.toolbar.setStatusContainerStatus("score",{value:this.getScore(),maxValue:this.getMaxScore()}))},t.handleIncompleteScore=function(){this.livesLeft!==1/0&&(this.handleLostLife(),this.livesLeft>0&&this.showIncompleteScoreConfirmation())},t.handleExerciseTimerTicked=function(e,t,s){e&&e===this.openExerciseId&&this.exerciseScreen.setTime(t,s)},t.handleExerciseTimeoutWarning=function(e){e&&e===this.openExerciseId&&this.params.jukebox.play("timeoutWarning")},t.handleExerciseTimeout=function(e){e&&e===this.openExerciseId&&(this.handleLostLife(),this.livesLeft>0&&this.handleExerciseScreenClosed({animationEndedCallback:()=>{this.exerciseBundles.reset(e),this.showTimeoutConfirmation()}}))},t.handleLostLife=function(){0!==this.livesLeft&&(this.livesLeft--,this.params.jukebox.play("lostLife"),this.toolbar.setStatusContainerStatus("lives",{value:this.livesLeft}),0===this.livesLeft&&(this.queueAnimation=[],this.stagesGameOverState=this.stages.getCurrentState(),this.stages.forEach((e=>{e.setState("sealed")})),this.handleExerciseScreenClosed({animationEndedCallback:()=>{this.showGameOverConfirmation()}})))},e}(),Qe=function(){function e(){}var t=e.prototype;return t.handleExerciseScreenClosed=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.openExerciseId&&(this.exerciseClosedCallback=e.animationEndedCallback,this.map.dom.setAttribute("aria-label",this.params.dictionary.get("a11y.applicationInstructions")),this.exerciseScreen.hide({animate:!0},(()=>{this.exerciseScreen.setTime(""),this.stages.getStage(this.openExerciseId)?.focus({skipNextFocusHandler:!0}),this.openExerciseId=!1,this.callbackQueue.setSkippable(!0),this.params.globals.get("resize")()})),this.toolbar.enable(),this.params.jukebox.stopGroup("default"),this.params.jukebox.play("closeExercise"),this.params.globals.get("params").audio.backgroundMusic.muteDuringExercise&&this.params.jukebox.fade("backgroundMusic",{type:"in",time:this.musicFadeTime}),this.stages.enable(),this.exerciseBundles.stop(this.openExerciseId),this.stages.updateStatePerRestrictions())},t.handleExerciseScreenOpenAnimationEnded=function(){this.params.globals.get("resize")()},t.handleExerciseScreenCloseAnimationEnded=function(){this.gameDone?this.queueAnimation=[]:(this.callbackQueue.scheduleQueued(),this.exerciseClosedCallback&&(this.exerciseClosedCallback(),this.exerciseClosedCallback=null))},t.handleExerciseBundleInitialized=function(e,t){t.isTask&&this.stages.updateScoreStar(e,t.score/t.maxScore*100),this.stages.setTaskState(e,t.isTask)},e}(),Ye=function(){function e(){}var t=e.prototype;return t.handleSettingsDialogClosed=function(){this.settingsDialog.hide({animate:!0},(()=>{this.params.globals.get("resize")()})),this.toolbar.enable(),this.toolbar.forceButton("settings",!1,{noCallback:!0})},t.handleSettingsDialogOpenAnimationEnded=function(){this.params.globals.get("resize")()},t.handleSettingsDialogValueChanged=function(e,t){"volumeMusic"===e?this.params.jukebox.setVolumeGroup("background",t):"volumeSFX"===e&&this.params.jukebox.setVolumeGroup("default",t)},e}(),Xe=function(){function e(){}var t=e.prototype;return t.getXAPIData=function(){return this.exerciseBundles.getXAPIData()},t.getAnswerGiven=function(){return this.exerciseBundles.getAnswerGiven()||this.hasUserMadeProgress},t.getScore=function(){return Math.min(this.exerciseBundles.getScore(),this.getMaxScore())},t.getMaxScore=function(){const e=this.exerciseBundles.getMaxScore(),t=this.params.globals.get("params").behaviour.finishScore;return Math.min(t,e)},t.getContext=function(){return{type:"stage",value:this.currentStageIndex}},t.showSolutions=function(){this.gameDone=!0,this.confirmationDialog.hide(),this.endScreen.hide(),this.stagesGameOverState.forEach((e=>{this.stages.updateState(e.id,e.state)})),this.params.jukebox.stopAll(),this.show(),this.exerciseBundles.showSolutions(),this.isShowingSolutions=!0,this.toolbar.toggleSolutionMode(!0)},t.getCurrentState=function(){return{exerciseBundles:this.exerciseBundles.getCurrentState(),stages:this.stages.getCurrentState(),paths:this.paths.getCurrentState(),...this.livesLeft&&this.livesLeft!==1/0&&{livesLeft:this.livesLeft},...this.timeLeft&&{timeLeft:this.timeLeft},...this.gameDone&&{gameDone:this.gameDone}}},e}();let _e=function(){function e(){}var t=e.prototype;return t.initializeTimer=function(){this.params.globals.get("params").behaviour.timeLimitGlobal&&(this.timer=new g({interval:500},{onTick:()=>{this.timeLeft=this.timer.getTime();this.isTimeoutWarning()&&(this.hasPlayedTimeoutWarningGlobal=!0,this.params.jukebox.play("timeoutWarning"),this.toolbar.toggleHintTimer(!0)),this.toolbar.setStatusContainerStatus("timer",{value:g.toTimecode(this.timeLeft)})},onExpired:()=>{this.showGameOverConfirmation("confirmGameOverDialogTimeout")}}))},t.isTimeoutWarning=function(){if(this.hasPlayedTimeoutWarningGlobal)return!1;const e=this.params.globals.get("params").behaviour.timeoutWarningGlobal;return"number"==typeof e&&this.timeLeft<=1e3*e},t.addExtraTime=function(e){"number"!=typeof e||e<1||!this.timer||(this.timer.setTime(this.timer.getTime()+1e3*e),this.toolbar.setStatusContainerStatus("timer",{value:g.toTimecode(this.timer.getTime())}),this.params.jukebox.play("extraTime"))},t.resetTimer=function(e){"number"!=typeof e||e<1||(this.hasPlayedTimeoutWarningGlobal=!1,this.timer?.reset(e),this.toolbar.setStatusContainerStatus("timer",{value:g.toTimecode(e)}))},e}(),Ke=function(){function e(){}var t=e.prototype;return t.showFinishConfirmation=function(){if(this.isShowingSolutions)return void this.showEndscreen({focusButton:!0,readOpened:!0});const e=this.params.globals.get("extras");e.isScoringEnabled=!0;const t=e.standalone&&(e.isScoringEnabled||e.isReportingEnabled),s=[this.params.dictionary.get("l10n.confirmFinishDialog")];t&&s.push(this.params.dictionary.get("l10n.confirmFinishDialogSubmission")),s.push(this.params.dictionary.get("l10n.confirmFinishDialogQuestion")),this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmFinishHeader"),dialogText:s.join(" "),cancelText:this.params.dictionary.get("l10n.no"),confirmText:this.params.dictionary.get("l10n.yes")},{onConfirmed:()=>{this.handleConfirmedFinish()},onCanceled:()=>{this.params.jukebox.stopGroup("default")}}),this.params.jukebox.stopGroup("default"),this.confirmationDialog.show(),this.params.jukebox.play("showDialog")},t.handleConfirmedFinish=function(){this.gameDone=!0,this.queueAnimation=[],this.stages.togglePlayfulness(!1),this.params.jukebox.stopAll(),this.timer?.stop(),this.callbacks.onFinished(),this.showEndscreen({focusButton:!0})},t.showGameOverConfirmation=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"confirmGameOverDialog";this.gameDone=!0,this.stages.togglePlayfulness(!1),this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmGameOverHeader"),dialogText:this.params.dictionary.get(`l10n.${e}`),confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.params.jukebox.stopAll(),this.timer?.stop(),this.callbacks.onFinished(),this.showEndscreen({focusButton:!0})}}),this.params.jukebox.stopAll(),this.timer?.stop(),this.params.jukebox.play("gameOver"),this.confirmationDialog.show()},t.showTimeoutConfirmation=function(){const e=this.livesLeft===1/0?this.params.dictionary.get("l10n.confirmTimeoutDialog"):this.params.dictionary.get("l10n.confirmTimeoutDialogLostLife");this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmTimeoutHeader"),dialogText:e,confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.params.jukebox.stopGroup("default")}}),this.confirmationDialog.show()},t.showIncompleteScoreConfirmation=function(){this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmScoreIncompleteHeader"),dialogText:this.params.dictionary.get("l10n.confirmIncompleteScoreDialogLostLife"),confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.params.jukebox.stopGroup("default")}}),this.confirmationDialog.show()},t.showFullScoreConfirmation=function(){let e=this.params.dictionary.get("l10n.confirmFullScoreDialog");this.livesLeft!==1/0&&(e=`${e} ${this.params.dictionary.get("l10n.confirmFullScoreDialogLoseLivesAmendmend")}`),this.confirmationDialog.update({headerText:this.params.dictionary.get("l10n.confirmFullScoreHeader"),dialogText:e,confirmText:this.params.dictionary.get("l10n.ok"),hideCancel:!0},{onConfirmed:()=>{this.params.jukebox.stopGroup("default"),this.toolbar.toggleHintFinishButton(!0)}}),this.confirmationDialog.show()},e}();let Je=function(){function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this.params=i.extend({},t),this.gameDone=!1,this.callbackQueue=new c,this.callbackQueue.setRespectsDelay(this.params.globals.get("params").visual.misc.useAnimation),i.addMixins(e,[b,ze,We,$e,Qe,Ye,Xe,_e,Ke]),this.callbacks=i.extend({onProgressChanged:()=>{},onFinished:()=>{},onFullscreenClicked:()=>{},onRestarted:()=>{}},s),this.params.globals.set("getScore",(()=>this.getScore())),this.musicFadeTime=2e3,this.buildDOM(),this.startVisibilityObserver(),this.initializeTimer(),this.reset({isInitial:!0}),this.params.globals.get("params").behaviour.timeLimitGlobal&&this.toolbar.showStatusContainer("timer"),"number"==typeof this.params.globals.get("params").behaviour.lives&&this.toolbar.showStatusContainer("lives"),this.toolbar.showStatusContainer("stages"),this.getMaxScore()>0&&this.toolbar.showStatusContainer("score"),this.start({isInitial:!0}),this.stages.updateStatePerRestrictions(),H5P.externalDispatcher.on("initialized",(()=>{const e=this.grabH5PQuestionFeedback({maxScore:this.getMaxScore()});this.endScreen.setContent(e),this.gameDone&&this.showEndscreen()}))}var t=e.prototype;return t.getDOM=function(){return this.dom},t.setTimerState=function(){if(this.timer){const e=this.timer.getState();e===d?this.timer.resume():e!==u||this.gameDone||this.timer.start()}},t.show=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.map.show(),this.contentDOM.classList.remove("display-none"),this.setTimerState(),e.readOpened&&this.params.globals.get("read")(this.params.dictionary.get("a11y.mapWasOpened")),window.setTimeout((()=>{e.focusButton&&this.toolbar.focus()}),100),this.stageAttentionSeekerTimeout||this.seekAttention(),window.requestAnimationFrame((()=>{this.params.globals.get("resize")(),window.requestAnimationFrame((()=>{this.params.globals.get("resize")()}))}))},t.hide=function(){this.map.hide(),this.timer?.pause(),this.contentDOM.classList.add("display-none")},t.start=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.endScreen.hide();if(this.params.globals.get("params").showTitleScreen){this.hide();const t=e.isInitial?{}:{focusButton:!0,readOpened:!0};this.startScreen.show(t)}else e.isInitial?this.show():this.show({focusButton:!0,readOpened:!0});this.params.globals.get("resize")()},t.seekAttention=function(){window.clearTimeout(this.stageAttentionSeekerTimeout),this.stageAttentionSeekerTimeout=window.setTimeout((()=>{this.stages.getNextOpenStage();const e=this.stages.getNextOpenStage();e&&e.animate("bounce"),this.seekAttention()}),1e4)},t.resize=function(){const e=this.map.getSize();e&&0!==e.width&&0!==e.height&&(this.map.resize(),clearTimeout(this.resizeTimeout),this.resizeTimeout=window.setTimeout((()=>{this.paths.update({mapSize:this.map.getSize()})}),0),this.exerciseScreen.getSize().width>this.dom.getBoundingClientRect().width&&(clearTimeout(this.exersizeScreenResizeTimeout),this.exersizeScreenResizeTimeout=window.setTimeout((()=>{this.params.globals.get("resize")()}),0)),this.settingsDialog.getSize().width>this.dom.getBoundingClientRect().width&&(clearTimeout(this.settingsDialogResizeTimeout),this.settingsDialogResizeTimeout=window.setTimeout((()=>{this.params.globals.get("resize")()}),0)))},t.showEndscreenSuccess=function(e,t){const s=e.success;this.endScreen.setMedium(s.endScreenMediumSuccess);const a=i.isHTMLWidgetFilled(s.endScreenTextSuccess)?s.endScreenTextSuccess:t;this.endScreen.setIntroduction(a),this.isShowingSolutions||this.params.jukebox.play("endscreenSuccess")},t.showEndscreenNoSuccess=function(e,t,s,a){const r=e.noSuccess;this.endScreen.setMedium(r.endScreenMediumNoSuccess);let n="";n=0===this.livesLeft&&s>=a?`${n}<p style="text-align: center;">${this.params.dictionary.get("l10n.fullScoreButnoLivesLeft")}</p>`:0===this.timer?.getTime()&&s>=a?`${n}<p style="text-align: center;">${this.params.dictionary.get("l10n.fullScoreButTimeout")}</p>`:i.isHTMLWidgetFilled(r.endScreenTextNoSuccess)?r.endScreenTextNoSuccess:t,this.endScreen.setIntroduction(n),this.isShowingSolutions||this.params.jukebox.play("endscreenNoSuccess")},t.showEndscreen=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.hasUserMadeProgress=!0;const t=this.params.globals.get("params").endScreen;this.toolbar.toggleHintFinishButton(!1),this.toolbar.toggleHintTimer(!1);const s=this.getScore(),a=this.getMaxScore(),i=H5P.Question.determineOverallFeedback(t.overallFeedback,s/a),r=this.params.dictionary.get("a11y.yourResult").replace("@score",":num").replace("@total",":total");this.params.globals.get("mainInstance").setFeedback(i,s,a,r);const n=`<p style="text-align: center;">${this.params.dictionary.get("l10n.completedMap")}</p>`;s>=a&&this.livesLeft>0&&("number"!=typeof this.timeLeft||this.timeLeft>0)?this.showEndscreenSuccess(t,n):this.showEndscreenNoSuccess(t,n,s,a),this.hide(),this.endScreen.show(e)},t.setFullscreen=function(e){this.isFullscreenActive=e;const t=window.getComputedStyle(this.contentDOM),s=parseFloat(t.getPropertyValue("margin-left"))+parseFloat(t.getPropertyValue("margin-right")),a=parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"));this.map.setFullscreen(e,{width:window.innerWidth-s,height:window.innerHeight-a-this.toolbar.getFullHeight()}),this.toolbar.forceButton("fullscreen",e?1:0,{noCallback:!0})},e}();let Ze=function(){function e(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.dom=document.createElement("div"),this.dom.classList.add("h5p-game-map-message-box");const t=document.createElement("p");t.classList.add("h5p-game-map-message-box-message"),t.innerText=e.text||"Something important was supposed to be here.",this.dom.append(t)}return e.prototype.getDOM=function(){return this.dom},e}(),et=function(){function e(){}var t=e.prototype;return t.getAnswerGiven=function(){return this.main.getAnswerGiven()},t.getScore=function(){return this.main.getScore()},t.getMaxScore=function(){return this.main.getMaxScore()},t.showSolutions=function(){this.main.showSolutions()},t.resetTask=function(){this.contentWasReset=!0,this.main.reset(),this.main.start()},t.getXAPIData=function(){const e=this.createXAPIEvent("completed");return e.data.statement.object.definition.interactionType="compound",{statement:e.data.statement,children:this.main.getXAPIData()}},t.getCurrentState=function(){return this.main?this.getAnswerGiven()||this.params.behaviour.timeLimitGlobal?{content:this.main.getCurrentState()}:this.contentWasReset?{}:void 0:{}},t.getContext=function(){return this.main.getContext()},e}();const tt="Game Map";let st=function(){function e(){}var t=e.prototype;return t.triggerXAPIEvent=function(e){const t=this.createXAPIEvent(e);this.trigger(t)},t.createXAPIEvent=function(e){const t=this.createXAPIEventTemplate(e);return i.extend(t.getVerifiedStatementValue(["object","definition"]),this.getXAPIDefinition()),"completed"!==e&&"answered"!==e||t.setScoredResult(this.getScore(),this.getMaxScore(),this,!0,this.getScore()===this.getMaxScore()),t},t.getXAPIDefinition=function(){const e={name:{}};return e.name[this.languageTag]=this.getTitle(),e.name["en-US"]=e.name[this.languageTag],e.description={},e.description[this.languageTag]=this.getDescription(),e.description["en-US"]=e.description[this.languageTag],e.type="http://adlnet.gov/expapi/activities/cmi.interaction",e.interactionType="other",e},t.getTitle=function(){return H5P.createTitle(this.extras?.metadata?.title||tt)},t.getDescription=function(){return this.params.header||tt},e}();function at(e,t){return at=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},at(e,t)}const it={unstarted:0,locked:1,open:3,opened:4,completed:5,cleared:6,sealed:7};let rt=function(e){function s(a,n){var o;let c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};o=e.call(this,"game-map")||this,i.addMixins(s,[et,st]);const u=i.extend({behaviour:{finishScore:1/0,enableCheckButton:!0}},t.getSemanticsDefaults());o.contentId=n,o.params=i.extend(u,a),o.dictionary=new r,o.dictionary.fill({l10n:o.params.l10n,a11y:o.params.a11y}),o.handleReduceMotion(),o.sanitizeStages(n),o.extras=c;const h=o.isRoot()&&H5P.fullscreenSupported;o.setGlobals(h),c.previousState=o.migratePreviousState1_4(c.previousState),o.jukebox=new l,o.fillJukebox();const d=c?.metadata?.defaultLanguage||"en";return o.languageTag=i.formatLanguageCode(d),o.dom=o.buildDOM(),o.initializeMain(h),h&&o.setupFullscreenHandlers(),o}var a,o;o=e,(a=s).prototype=Object.create(o.prototype),a.prototype.constructor=a,at(a,o);var c=s.prototype;return c.handleReduceMotion=function(){const e=window.matchMedia("(prefers-reduced-motion: reduce)")?.matches;this.params.visual.misc.useAnimation=this.params.visual.misc.useAnimation&&!e},c.sanitizeStages=function(e){const t=this.getAdvancedTextVersion(e);this.params.gamemapSteps.gamemap.elements=this.params.gamemapSteps.gamemap.elements.map((e=>(!e.specialStageType&&!e.contentsList?.[0]?.contentType?.library&&(e.dom={count:0},e.contentsList=[this.createMissingContentElement(t)]),e.animDuration=this.params.visual.misc.useAnimation?1e3:0,e)))},c.getAdvancedTextVersion=function(e){return H5PIntegration?.contents?.[`cid-${e}`]?.scripts?.find((e=>e.includes("H5P.AdvancedText-")))?.match(/H5P\.AdvancedText-(\d+\.\d+)/)?.[0]??"1.1"},c.createMissingContentElement=function(e){return{contentType:{params:{text:this.dictionary.get("l10n.missingContent")},library:`H5P.AdvancedText ${e}`,metadata:{authors:[],changes:[],license:"U",title:this.dictionary.get("l10n.missingContent"),contentType:"Text"},subContentId:H5P.createUUID()}}},c.setGlobals=function(e){this.globals=new n,this.globals.set("mainInstance",this),this.globals.set("contentId",this.contentId),this.globals.set("params",this.params),this.globals.set("extras",this.extras),this.globals.set("states",it),this.globals.set("isFullscreenSupported",e),this.globals.set("resize",(()=>{this.trigger("resize")})),this.globals.set("read",(e=>{this.read(e)}))},c.initializeMain=function(e){if(this.params.gamemapSteps.gamemap.elements.some((e=>e.contentsList?.length)))this.main=new Je({dictionary:this.dictionary,globals:this.globals,jukebox:this.jukebox},{onProgressChanged:e=>{this.handleProgressChanged(e)},onFinished:()=>{this.handleFinished()},onFullscreenClicked:()=>{this.handleFullscreenClicked()},onRestarted:()=>{this.resetTask()}}),this.dom.append(this.main.getDOM()),this.on("resize",(()=>{this.main.resize()}));else{const e=new Ze({text:this.dictionary.get("l10n.noStages")});this.dom.append(e.getDOM())}},c.setupFullscreenHandlers=function(){this.on("enterFullScreen",(()=>{window.setTimeout((()=>{this.main.setFullscreen(!0)}),50)})),this.on("exitFullScreen",(()=>{this.main.setFullscreen(!1)}));const e=()=>{H5P.isFullscreen&&window.setTimeout((()=>{this.main.setFullscreen(!0)}),200)};screen?.orientation?.addEventListener?screen?.orientation?.addEventListener("change",(()=>{e()})):window.addEventListener("orientationchange",(()=>{e()}),!1)},c.migratePreviousState1_4=function(e){return!e?.content||e.content.exerciseBundles||(e.content.exerciseBundles=(e.content.exercises??[]).map((e=>{let{exercise:t}=e;return{exerciseBundle:{state:t.state,id:t.id,remainingTime:t.remainingTime,isCompleted:t.isCompleted,instances:[{completed:t.instanceState?.isCompleted||t.isCompleted,successful:t.instanceState?.isCompleted||t.isCompleted,instanceState:t.instanceState}]}}})),delete e.content.exercises),e},c.registerDomElements=function(){this.setContent(this.dom)},c.buildDOM=function(){const e=document.createElement("div");return e.classList.add("h5p-game-map"),e},c.fillJukebox=function(){const e={};if(this.params.audio.backgroundMusic.music?.[0]?.path){const t=H5P.getPath(this.params.audio.backgroundMusic.music[0].path,this.contentId),s=H5P.getCrossOrigin?.(this.params.audio.backgroundMusic.music[0])??"Anonymous";e.backgroundMusic={src:t,crossOrigin:s,options:{loop:!0,groupId:"background"}}}for(const t in this.params.audio.ambient){if(!this.params.audio.ambient[t]?.[0]?.path)continue;const s=H5P.getPath(this.params.audio.ambient[t][0].path,this.contentId),a=H5P.getCrossOrigin?.(this.params.audio.ambient[t][0])??"Anonymous";e[t]={src:s,crossOrigin:a}}this.jukebox.fill(e)},c.handleProgressChanged=function(e){const t=this.createXAPIEventTemplate("progressed");t.data.statement.object.definition.extensions["http://id.tincanapi.com/extension/ending-point"]=e,this.trigger(t)},c.handleFinished=function(){const e=this.createXAPIEventTemplate("completed");i.extend(e.getVerifiedStatementValue(["object","definition"]),this.getXAPIDefinition()),e.setScoredResult(this.getScore(),this.getMaxScore(),this,!0,this.getScore()===this.getMaxScore()),this.trigger(e)},c.handleFullscreenClicked=function(){window.setTimeout((()=>{this.toggleFullscreen()}),300)},c.toggleFullscreen=function(e){if(this.dom){switch(e){case"enter":e=!1;break;case"exit":e=!0;break;default:e="boolean"==typeof e?e:!H5P.isFullscreen}e?(this.container=this.container||this.dom.closest(".h5p-container"),this.container&&H5P.fullScreen(H5P.jQuery(this.container),this)):H5P.exitFullScreen()}},s}(H5P.Question);H5P.GameMap=rt}()}();
CANCEL
Name
Type
Size
Modified
Actions
↩ ..
DIR
—
—
📄 9cdb3e8c928944ec262217ff3218399891ad1bc1
?
268.3 KB
2026-04-01 13:50
EDIT