@@ -955,55 +955,551 @@ Elm.List = function() {
955 sort:sort,
955 sort:sort,
956 take:take,
956 take:take,
957 drop:drop};
957 drop:drop};
958−}();try{if(Elm.Dict)throw "Module name collision, 'Dict' is already defined.";Elm.Dict=function(){try{if(!(Elm.Prelude instanceof Object))throw 'module not found'}catch(e){throw "Module 'Prelude' is missing. Compile with --make flag or load missing module in a separate JavaScript file."};var hiddenVars=[];for(var i in Elm.Prelude){if(hiddenVars.indexOf(i)>=0)continue;this[i]=Elm.Prelude[i]};try{if(!(Elm.Data.Maybe instanceof Object))throw 'module not found'}catch(e){throw "Module 'Data.Maybe' is missing. Compile with --make flag or load missing module in a separate JavaScript file."};var isJust=Elm.Data.Maybe.isJust,Red_0=["Red"],Black_1=["Black"]
958+}();
959−function RBNode_2(a1){return function(a2){return function(a3){return function(a4){return function(a5){return ["RBNode",a1,a2,a3,a4,a5]}}}}};var RBEmpty_3=["RBEmpty"],raise_4=console.log,empty_5=RBEmpty_3
959+try{
960−function equal_pathLen_6(t_46){return function(){function path_numBlacks_47(t_48){return function(){switch(t_48[0]){case"RBEmpty":return 1;case"RBNode":return function(){var bl_52=path_numBlacks_47(t_48[4]),br_53=path_numBlacks_47(t_48[5]);return((not(eq(bl_52,br_53))||(eq(bl_52,-1)||eq(br_53,-1)))?-1:(bl_52+(eq(t_48[1],Red_0)?0:1)))}()};throw "Non-exhaustive pattern match in case"}()};return not(eq(-1,path_numBlacks_47(t_46)))}()}
960+
961−function rootBlack_7(t_54){return function(){switch(t_54[0]){case"RBEmpty":return true;case"RBNode":switch(t_54[1][0]){case"Black":return true};break};return false}()}
961+for(var i in Elm) { this[i] = Elm[i]; }
962−function redBlack_children_8(t_55){return function(){switch(t_55[0]){case"RBEmpty":return true;case"RBNode":switch(t_55[1][0]){case"Red":switch(t_55[4][0]){case"RBNode":switch(t_55[4][1][0]){case"Red":return false};break};switch(t_55[5][0]){case"RBNode":switch(t_55[5][1][0]){case"Red":return false};break};break};return(redBlack_children_8(t_55[4])&&redBlack_children_8(t_55[5]))};throw "Non-exhaustive pattern match in case"}()}
962+if (Elm.Dict) throw "Module name collision, 'Dict' is already defined.";
963−function findExtreme_9(f_58){return function(t_59){return function(){switch(t_59[0]){case"RBEmpty":return Nothing;case"RBNode":return function(){var case6=findExtreme_9(f_58)(f_58(["Tuple2",t_59[4],t_59[5]]));switch(case6[0]){case"Just":return Just(case6[1]);case"Nothing":return Just(t_59[2])};throw "Non-exhaustive pattern match in case"}()};throw "Non-exhaustive pattern match in case"}()}}
963+Elm.Dict=function(){
964−function findminRbt_10(t_65){return findExtreme_9(fst)(t_65)}
964+ try{if (!(Elm.Prelude instanceof Object)) throw 'module not found'; } catch(e) {throw "Module 'Prelude' is missing. Compile with --make flag or load missing module in a separate JavaScript file.";}
965−function findmaxRbt_11(t_66){return findExtreme_9(snd)(t_66)}
965+ var hiddenVars=[];
966−function optionRelation_12(f_67){return function(u_68){return function(xo_69){return function(yo_70){return function(){var case0=["Tuple2",xo_69,yo_70];switch(case0[0]){case"Tuple2":switch(case0[1][0]){case"Nothing":return u_68};switch(case0[2][0]){case"Nothing":return u_68};switch(case0[1][0]){case"Just":switch(case0[2][0]){case"Just":return f_67(case0[1][1])(case0[2][1])};break};break};throw "Non-exhaustive pattern match in case"}()}}}}
966+ for(var i in Elm.Prelude){
967−function olt_13(xo_73){return function(yo_74){return optionRelation_12(function(x_75){return function(y_76){return(compare(x_75)(y_76)[0]==='LT')}})(true)(xo_73)(yo_74)}}
967+ if (hiddenVars.indexOf(i) >= 0) continue;
968−function olte_14(xo_77){return function(yo_78){return optionRelation_12(function(x_79){return function(y_80){return function(){var ord=compare(x_79)(y_80)[0];return ord==='LT'||ord==='EQ'}()}})(true)(xo_77)(yo_78)}}
968+ this[i]=Elm.Prelude[i];}
969−function ordered_15(t_81){return function(){switch(t_81[0]){case"RBEmpty":return true;case"RBNode":return function(){var Tuple2$lmaxrmin_87=["Tuple2",findmaxRbt_11(t_81[4]),findminRbt_10(t_81[5])],lmax_88=function(){switch(Tuple2$lmaxrmin_87[0]){case"Tuple2":return Tuple2$lmaxrmin_87[1]};throw "Non-exhaustive pattern match in case"}(),rmin_89=function(){switch(Tuple2$lmaxrmin_87[0]){case"Tuple2":return Tuple2$lmaxrmin_87[2]};throw "Non-exhaustive pattern match in case"}();return(olte_14(lmax_88)(Just(t_81[2]))&&(olte_14(Just(t_81[2]))(rmin_89)&&(ordered_15(t_81[4])&&ordered_15(t_81[5]))))}()};throw "Non-exhaustive pattern match in case"}()}
969+ try{if (!(Elm.Maybe instanceof Object)) throw 'module not found'; } catch(e) {throw "Module 'Maybe' is missing. Compile with --make flag or load missing module in a separate JavaScript file.";}
970−function leftLeaning_16(t_94){return function(){switch(t_94[0]){case"RBEmpty":return true;case"RBNode":switch(t_94[4][0]){case"RBEmpty":switch(t_94[5][0]){case"RBNode":switch(t_94[5][1][0]){case"Red":return false};break};break;case"RBNode":switch(t_94[4][1][0]){case"Black":switch(t_94[5][0]){case"RBNode":switch(t_94[5][1][0]){case"Red":return false};break};break};break};return(leftLeaning_16(t_94[4])&&leftLeaning_16(t_94[5]))};throw "Non-exhaustive pattern match in case"}()}
970+ var isJust=Elm.Maybe.isJust;
971−function invariants_hold_17(t_97){return(ordered_15(t_97)&&(rootBlack_7(t_97)&&(redBlack_children_8(t_97)&&(equal_pathLen_6(t_97)&&leftLeaning_16(t_97)))))}
971+ var Red_0=["Red"];
972−function min_18(t_98){return function(){switch(t_98[0]){case"RBEmpty":return console.log(Value.str("(min RBEmpty) is not defined"));case"RBNode":switch(t_98[4][0]){case"RBEmpty":return ["Tuple2",t_98[2],t_98[3]]};return min_18(t_98[4])};throw "Non-exhaustive pattern match in case"}()}
972+ var Black_1=["Black"];
973−function max_19(t_102){return function(){switch(t_102[0]){case"RBEmpty":return console.log(Value.str("(max RBEmpty) is not defined"));case"RBNode":switch(t_102[5][0]){case"RBEmpty":return ["Tuple2",t_102[2],t_102[3]]};return max_19(t_102[5])};throw "Non-exhaustive pattern match in case"}()}
973+ function RBNode_2(a1){
974−function lookup_20(k_106){return function(t_107){return function(){switch(t_107[0]){case"RBEmpty":return Nothing;case"RBNode":return function(){var case6=compare(k_106)(t_107[2]);switch(case6[0]){case"EQ":return Just(t_107[3]);case"GT":return lookup_20(k_106)(t_107[5]);case"LT":return lookup_20(k_106)(t_107[4])};throw "Non-exhaustive pattern match in case"}()};throw "Non-exhaustive pattern match in case"}()}}
974+ return function(a2){
975−function member_21(k_112){return function(t_113){return isJust(lookup_20(k_112)(t_113))}}
975+ return function(a3){
976−function rotateLeft_22(t_114){return function(){switch(t_114[0]){case"RBNode":switch(t_114[5][0]){case"RBNode":return RBNode_2(t_114[1])(t_114[5][2])(t_114[5][3])(RBNode_2(Red_0)(t_114[2])(t_114[3])(t_114[4])(t_114[5][4]))(t_114[5][5])};break};return raise_4(Value.str("rotateLeft of a node without enough children"))}()}
976+ return function(a4){
977−function rotateRight_23(t_124){return function(){switch(t_124[0]){case"RBNode":switch(t_124[4][0]){case"RBNode":return RBNode_2(t_124[1])(t_124[4][2])(t_124[4][3])(t_124[4][4])(RBNode_2(Red_0)(t_124[2])(t_124[3])(t_124[4][5])(t_124[5]))};break};return raise_4(Value.str("rotateRight of a node without enough children"))}()}
977+ return function(a5){
978−function rotateLeftIfNeeded_24(t_134){return function(){switch(t_134[0]){case"RBNode":switch(t_134[5][0]){case"RBNode":switch(t_134[5][1][0]){case"Red":return rotateLeft_22(t_134)};break};break};return t_134}()}
978+ return ["RBNode",a1,a2,a3,a4,a5];};};};};};
979−function rotateRightIfNeeded_25(t_135){return function(){switch(t_135[0]){case"RBNode":switch(t_135[4][0]){case"RBNode":switch(t_135[4][1][0]){case"Red":switch(t_135[4][4][0]){case"RBNode":switch(t_135[4][4][1][0]){case"Red":return rotateRight_23(t_135)};break};break};break};break};return t_135}()}
979+ var RBEmpty_3=["RBEmpty"];
980−function otherColor_26(c_136){return function(){switch(c_136[0]){case"Black":return Red_0;case"Red":return Black_1};throw "Non-exhaustive pattern match in case"}()}
980+ var empty_4=RBEmpty_3;
981−function color_flip_27(t_137){return function(){switch(t_137[0]){case"RBNode":switch(t_137[4][0]){case"RBNode":switch(t_137[5][0]){case"RBNode":return RBNode_2(otherColor_26(t_137[1]))(t_137[2])(t_137[3])(RBNode_2(otherColor_26(t_137[4][1]))(t_137[4][2])(t_137[4][3])(t_137[4][4])(t_137[4][5]))(RBNode_2(otherColor_26(t_137[5][1]))(t_137[5][2])(t_137[5][3])(t_137[5][4])(t_137[5][5]))};break};break};return raise_4(Value.str("color_flip called on a RBEmpty or RBNode with a RBEmpty child"))}()}
981+ var raise_5=console.log;
982−function color_flipIfNeeded_28(t_151){return function(){switch(t_151[0]){case"RBNode":switch(t_151[4][0]){case"RBNode":switch(t_151[4][1][0]){case"Red":switch(t_151[5][0]){case"RBNode":switch(t_151[5][1][0]){case"Red":return color_flip_27(t_151)};break};break};break};break};return t_151}()}
982+ function min_6(t_43){
983−function fixUp_29(t_152){return color_flipIfNeeded_28(rotateRightIfNeeded_25(rotateLeftIfNeeded_24(t_152)))}
983+ return function(){
984−function ensureBlackRoot_30(t_153){return function(){switch(t_153[0]){case"RBNode":switch(t_153[1][0]){case"Red":return RBNode_2(Black_1)(t_153[2])(t_153[3])(t_153[4])(t_153[5])};break};return t_153}()}
984+ switch(t_43[0]){
985−function insert_31(k_158){return function(v_159){return function(t_160){return function(){function ins_161(t_162){return function(){switch(t_162[0]){case"RBEmpty":return RBNode_2(Red_0)(k_158)(v_159)(RBEmpty_3)(RBEmpty_3);case"RBNode":return function(){var h_168=function(){var case6=compare(k_158)(t_162[2]);switch(case6[0]){case"EQ":return RBNode_2(t_162[1])(t_162[2])(v_159)(t_162[4])(t_162[5]);case"GT":return RBNode_2(t_162[1])(t_162[2])(t_162[3])(t_162[4])(ins_161(t_162[5]));case"LT":return RBNode_2(t_162[1])(t_162[2])(t_162[3])(ins_161(t_162[4]))(t_162[5])};throw "Non-exhaustive pattern match in case"}();return fixUp_29(h_168)}()};throw "Non-exhaustive pattern match in case"}()};return(not(invariants_hold_17(t_160))?raise_4(Value.str("invariants broken before insert")):function(){var new_t_169=ensureBlackRoot_30(ins_161(t_160));return(not(invariants_hold_17(new_t_169))?raise_4(Value.str("invariants broken after insert")):new_t_169)}())}()}}}
985+ case "RBEmpty":
986−function singleton_32(k_170){return function(v_171){return insert_31(k_170)(v_171)(RBEmpty_3)}}
986+ return raise_5(Value.str("(min RBEmpty) is not defined"));
987−function isRed_33(t_172){return function(){switch(t_172[0]){case"RBNode":switch(t_172[1][0]){case"Red":return true};break};return false}()}
987+ case "RBNode":
988−function isRedLeft_34(t_173){return function(){switch(t_173[0]){case"RBNode":switch(t_173[4][0]){case"RBNode":switch(t_173[4][1][0]){case"Red":return true};break};break};return false}()}
988+ switch(t_43[4][0]){
989−function isRedLeftLeft_35(t_174){return function(){switch(t_174[0]){case"RBNode":switch(t_174[4][0]){case"RBNode":switch(t_174[4][4][0]){case"RBNode":switch(t_174[4][4][1][0]){case"Red":return true};break};break};break};return false}()}
989+ case "RBEmpty":
990−function isRedRight_36(t_175){return function(){switch(t_175[0]){case"RBNode":switch(t_175[5][0]){case"RBNode":switch(t_175[5][1][0]){case"Red":return true};break};break};return false}()}
990+ return ["Tuple2",t_43[2],t_43[3]];
991−function isRedRightLeft_37(t_176){return function(){switch(t_176[0]){case"RBNode":switch(t_176[5][0]){case"RBNode":switch(t_176[5][4][0]){case"RBNode":switch(t_176[5][4][1][0]){case"Red":return true};break};break};break};return false}()}
991+ }
992−function moveRedLeft_38(t_177){return function(){var t__178=color_flip_27(t_177);return function(){switch(t__178[0]){case"RBNode":return function(){switch(t__178[5][0]){case"RBNode":switch(t__178[5][4][0]){case"RBNode":switch(t__178[5][4][1][0]){case"Red":return color_flip_27(rotateLeft_22(RBNode_2(t__178[1])(t__178[2])(t__178[3])(t__178[4])(rotateRight_23(t__178[5]))))};break};break};return t__178}()};return t__178}()}()}
992+ return min_6(t_43[4]);
993−function moveRedRight_39(t_184){return function(){var t__185=color_flip_27(t_184);return(isRedLeftLeft_35(t__185)?color_flip_27(rotateRight_23(t__185)):t__185)}()}
993+ }
994−function moveRedLeftIfNeeded_40(t_186){return((not(isRedLeft_34(t_186))&¬(isRedLeftLeft_35(t_186)))?moveRedLeft_38(t_186):t_186)}
994+ throw "Non-exhaustive pattern match in case";}();};
995−function moveRedRightIfNeeded_41(t_187){return((not(isRedRight_36(t_187))&¬(isRedRightLeft_37(t_187)))?moveRedRight_39(t_187):t_187)}
995+ function lookup_7(k_47){
996−function deleteMin_42(t_188){return function(){function del_189(t_190){return function(){switch(t_190[0]){case"RBNode":switch(t_190[4][0]){case"RBEmpty":return RBEmpty_3};break};return function(){var t__191=moveRedLeftIfNeeded_40(t_190);return function(){switch(t__191[0]){case"RBEmpty":return RBEmpty_3;case"RBNode":return fixUp_29(RBNode_2(t__191[1])(t__191[2])(t__191[3])(del_189(t__191[4]))(t__191[5]))};throw "Non-exhaustive pattern match in case"}()}()}()};return ensureBlackRoot_30(del_189(t_188))}()}
996+ return function(t_48){
997−function deleteMax_43(t_197){return function(){function del_198(t_199){return function(){var t__200=(isRedLeft_34(t_199)?rotateRight_23(t_199):t_199);return function(){switch(t__200[0]){case"RBNode":switch(t__200[5][0]){case"RBEmpty":return RBEmpty_3};break};return function(){var t___201=moveRedRightIfNeeded_41(t__200);return function(){switch(t___201[0]){case"RBEmpty":return RBEmpty_3;case"RBNode":return fixUp_29(RBNode_2(t___201[1])(t___201[2])(t___201[3])(t___201[4])(del_198(t___201[5])))};throw "Non-exhaustive pattern match in case"}()}()}()}()};return ensureBlackRoot_30(del_198(t_197))}()}
997+ return function(){
998−function remove_44(k_207){return function(t_208){return function(){function eq_and_noRightNode_209(t_215){return function(){switch(t_215[0]){case"RBNode":switch(t_215[5][0]){case"RBEmpty":return eq(k_207,t_215[2])};break};return false}()}
998+ switch(t_48[0]){
999−function eq_210(t_217){return function(){switch(t_217[0]){case"RBNode":return eq(k_207,t_217[2])};return false}()}
999+ case "RBEmpty":
1000−function delLT_211(t_219){return function(){var t__220=moveRedLeftIfNeeded_40(t_219);return function(){switch(t__220[0]){case"RBEmpty":return raise_4(Value.str("delLT on RBEmpty"));case"RBNode":return fixUp_29(RBNode_2(t__220[1])(t__220[2])(t__220[3])(del_214(t__220[4]))(t__220[5]))};throw "Non-exhaustive pattern match in case"}()}()}
1000+ return Nothing;
1001−function delEQ_212(t_226){return function(){switch(t_226[0]){case"RBEmpty":return raise_4(Value.str("delEQ called on a RBEmpty"));case"RBNode":return function(){var Tuple2$k_v__230=min_18(t_226[5]),k__231=function(){switch(Tuple2$k_v__230[0]){case"Tuple2":return Tuple2$k_v__230[1]};throw "Non-exhaustive pattern match in case"}(),v__232=function(){switch(Tuple2$k_v__230[0]){case"Tuple2":return Tuple2$k_v__230[2]};throw "Non-exhaustive pattern match in case"}();return fixUp_29(RBNode_2(t_226[1])(k__231)(v__232)(t_226[4])(deleteMin_42(t_226[5])))}()};throw "Non-exhaustive pattern match in case"}()}
1001+ case "RBNode":
1002−function delGT_213(t_237){return function(){switch(t_237[0]){case"RBEmpty":return raise_4(Value.str("delGT called on a RBEmpty"));case"RBNode":return fixUp_29(RBNode_2(t_237[1])(t_237[2])(t_237[3])(t_237[4])(del_214(t_237[5])))};throw "Non-exhaustive pattern match in case"}()}
1002+ return function(){
1003−function del_214(t_243){return function(){switch(t_243[0]){case"RBEmpty":return RBEmpty_3;case"RBNode":return((compare(k_207)(t_243[2])[0]==='LT')?delLT_211(t_243):function(){var t__245=(isRedLeft_34(t_243)?rotateRight_23(t_243):t_243);return(eq_and_noRightNode_209(t__245)?RBEmpty_3:function(){var t_246=moveRedRightIfNeeded_41(t_246);return(eq_210(t_246)?delEQ_212(t_246):delGT_213(t_246))}())}())};throw "Non-exhaustive pattern match in case"}()};return(not(invariants_hold_17(t_208))?raise_4(Value.str("invariants broken before remove")):function(){var t__247=ensureBlackRoot_30(del_214(t_208));return(invariants_hold_17(t__247)?t__247:raise_4(Value.str("invariants broken after remove")))}())}()}}
1003+ var case6=compare(k_47)(t_48[2]);
1004−function fold_45(f_248){return function(acc_249){return function(t_250){return function(){switch(t_250[0]){case"RBEmpty":return acc_249;case"RBNode":return fold_45(f_248)(f_248(t_250[2])(t_250[3])(fold_45(f_248)(acc_249)(t_250[4])))(t_250[5])};throw "Non-exhaustive pattern match in case"}()}}};return {empty:empty_5,lookup:lookup_20,member:member_21,insert:insert_31,singleton:singleton_32,remove:remove_44,fold:fold_45}}();Elm.main=function(){return Elm.Dict.main}}catch(e){Elm.main=function(){var msg=('<br/><h2>Your browser may not be supported. Are you using a modern browser?</h2>'+'<br/><span style="color:grey">Runtime Error in Dict module:<br/>'+e+'<br/><br/>The problem may stem from an improper usage of:<br/>EQ, GT, LT, console.log, fst, snd</span>');document.body.innerHTML=Text.monospace(msg);throw e}}try{if(Elm.Set)throw "Module name collision, 'Set' is already defined.";Elm.Set=function(){try{if(!(Elm.Prelude instanceof Object))throw 'module not found'}catch(e){throw "Module 'Prelude' is missing. Compile with --make flag or load missing module in a separate JavaScript file."};var hiddenVars=[];for(var i in Elm.Prelude){if(hiddenVars.indexOf(i)>=0)continue;this[i]=Elm.Prelude[i]};try{if(!(Elm.Dict instanceof Object))throw 'module not found'}catch(e){throw "Module 'Dict' is missing. Compile with --make flag or load missing module in a separate JavaScript file."};var Dict=Elm.Dict,empty_0=Dict.empty,remove_3=Dict.remove,member_4=Dict.member
1004+ switch(case6[0]){
1005−function singleton_1(k_5){return Dict.singleton(k_5)(["Tuple0"])}
1005+ case "EQ":
1006−function insert_2(k_6){return Dict.insert(k_6)(["Tuple0"])};return {empty:empty_0,singleton:singleton_1,insert:insert_2,remove:remove_3,member:member_4}}();Elm.main=function(){return Elm.Set.main}}catch(e){Elm.main=function(){var msg=('<br/><h2>Your browser may not be supported. Are you using a modern browser?</h2>'+'<br/><span style="color:grey">Runtime Error in Set module:<br/>'+e+'<br/><br/>The problem may stem from an improper usage of:<br/>Dict.empty, Dict.insert, Dict.member, Dict.remove, Dict.singleton</span>');document.body.innerHTML=Text.monospace(msg);throw e}}
1006+ return Just(t_48[3]);
1008+ return lookup_7(k_47)(t_48[5]);
1010+ return lookup_7(k_47)(t_48[4]);
1012+ throw "Non-exhaustive pattern match in case";}();
1014+ throw "Non-exhaustive pattern match in case";}();};};
1015+ function findWithDefault_8(base_53){
1016+ return function(k_54){
1017+ return function(t_55){
1024+ var case6=compare(k_54)(t_55[2]);
1029+ return findWithDefault_8(base_53)(k_54)(t_55[5]);
1031+ return findWithDefault_8(base_53)(k_54)(t_55[4]);
1033+ throw "Non-exhaustive pattern match in case";}();
1035+ throw "Non-exhaustive pattern match in case";}();};};};
1036+ function find_9(k_60){
1037+ return function(t_61){
1041+ return raise_5(Value.str("Key was not found in dictionary!"));
1044+ var case6=compare(k_60)(t_61[2]);
1049+ return find_9(k_60)(t_61[5]);
1051+ return find_9(k_60)(t_61[4]);
1053+ throw "Non-exhaustive pattern match in case";}();
1055+ throw "Non-exhaustive pattern match in case";}();};};
1056+ function member_10(k_66){
1057+ return function(t_67){
1058+ return isJust(lookup_7(k_66)(t_67));};};
1059+ function rotateLeft_11(t_68){
1063+ switch(t_68[5][0]){
1065+ return RBNode_2(t_68[1])(t_68[5][2])(t_68[5][3])(RBNode_2(Red_0)(t_68[2])(t_68[3])(t_68[4])(t_68[5][4]))(t_68[5][5]);
1068+ return raise_5(Value.str("rotateLeft of a node without enough children"));}();};
1069+ function rotateRight_12(t_78){
1073+ switch(t_78[4][0]){
1075+ return RBNode_2(t_78[1])(t_78[4][2])(t_78[4][3])(t_78[4][4])(RBNode_2(Red_0)(t_78[2])(t_78[3])(t_78[4][5])(t_78[5]));
1078+ return raise_5(Value.str("rotateRight of a node without enough children"));}();};
1079+ function rotateLeftIfNeeded_13(t_88){
1083+ switch(t_88[5][0]){
1085+ switch(t_88[5][1][0]){
1087+ return rotateLeft_11(t_88);
1092+ function rotateRightIfNeeded_14(t_89){
1096+ switch(t_89[4][0]){
1098+ switch(t_89[4][1][0]){
1100+ switch(t_89[4][4][0]){
1102+ switch(t_89[4][4][1][0]){
1104+ return rotateRight_12(t_89);
1111+ function otherColor_15(c_90){
1119+ throw "Non-exhaustive pattern match in case";}();};
1120+ function color_flip_16(t_91){
1124+ switch(t_91[4][0]){
1126+ switch(t_91[5][0]){
1128+ return RBNode_2(otherColor_15(t_91[1]))(t_91[2])(t_91[3])(RBNode_2(otherColor_15(t_91[4][1]))(t_91[4][2])(t_91[4][3])(t_91[4][4])(t_91[4][5]))(RBNode_2(otherColor_15(t_91[5][1]))(t_91[5][2])(t_91[5][3])(t_91[5][4])(t_91[5][5]));
1132+ return raise_5(Value.str("color_flip called on a RBEmpty or RBNode with a RBEmpty child"));}();};
1133+ function color_flipIfNeeded_17(t_105){
1137+ switch(t_105[4][0]){
1139+ switch(t_105[4][1][0]){
1141+ switch(t_105[5][0]){
1143+ switch(t_105[5][1][0]){
1145+ return color_flip_16(t_105);
1151+ return t_105;}();};
1152+ function fixUp_18(t_106){
1153+ return color_flipIfNeeded_17(rotateRightIfNeeded_14(rotateLeftIfNeeded_13(t_106)));};
1154+ function ensureBlackRoot_19(t_107){
1158+ switch(t_107[1][0]){
1160+ return RBNode_2(Black_1)(t_107[2])(t_107[3])(t_107[4])(t_107[5]);
1163+ return t_107;}();};
1164+ function insert_20(k_112){
1165+ return function(v_113){
1166+ return function(t_114){
1168+ function ins_115(t_116){
1172+ return RBNode_2(Red_0)(k_112)(v_113)(RBEmpty_3)(RBEmpty_3);
1175+ var h_122=function(){
1176+ var case6=compare(k_112)(t_116[2]);
1179+ return RBNode_2(t_116[1])(t_116[2])(v_113)(t_116[4])(t_116[5]);
1181+ return RBNode_2(t_116[1])(t_116[2])(t_116[3])(t_116[4])(ins_115(t_116[5]));
1183+ return RBNode_2(t_116[1])(t_116[2])(t_116[3])(ins_115(t_116[4]))(t_116[5]);
1185+ throw "Non-exhaustive pattern match in case";}();
1186+ return fixUp_18(h_122);}();
1188+ throw "Non-exhaustive pattern match in case";}();};
1189+ return ensureBlackRoot_19(ins_115(t_114));}();};};};
1190+ function singleton_21(k_123){
1191+ return function(v_124){
1192+ return insert_20(k_123)(v_124)(RBEmpty_3);};};
1193+ function isRed_22(t_125){
1197+ switch(t_125[1][0]){
1202+ return false;}();};
1203+ function isRedLeft_23(t_126){
1207+ switch(t_126[4][0]){
1209+ switch(t_126[4][1][0]){
1215+ return false;}();};
1216+ function isRedLeftLeft_24(t_127){
1220+ switch(t_127[4][0]){
1222+ switch(t_127[4][4][0]){
1224+ switch(t_127[4][4][1][0]){
1231+ return false;}();};
1232+ function isRedRight_25(t_128){
1236+ switch(t_128[5][0]){
1238+ switch(t_128[5][1][0]){
1244+ return false;}();};
1245+ function isRedRightLeft_26(t_129){
1249+ switch(t_129[5][0]){
1251+ switch(t_129[5][4][0]){
1253+ switch(t_129[5][4][1][0]){
1260+ return false;}();};
1261+ function moveRedLeft_27(t_130){
1263+ var t__131=color_flip_16(t_130);
1268+ switch(t__131[5][0]){
1270+ switch(t__131[5][4][0]){
1272+ switch(t__131[5][4][1][0]){
1274+ return color_flip_16(rotateLeft_11(RBNode_2(t__131[1])(t__131[2])(t__131[3])(t__131[4])(rotateRight_12(t__131[5]))));
1280+ return t__131;}();}();};
1281+ function moveRedRight_28(t_137){
1283+ var t__138=color_flip_16(t_137);
1284+ return (isRedLeftLeft_24(t__138)?color_flip_16(rotateRight_12(t__138)):t__138);}();};
1285+ function moveRedLeftIfNeeded_29(t_139){
1286+ return ((not(isRedLeft_23(t_139))&¬(isRedLeftLeft_24(t_139)))?moveRedLeft_27(t_139):t_139);};
1287+ function moveRedRightIfNeeded_30(t_140){
1288+ return ((not(isRedRight_25(t_140))&¬(isRedRightLeft_26(t_140)))?moveRedRight_28(t_140):t_140);};
1289+ function deleteMin_31(t_141){
1291+ function del_142(t_143){
1295+ switch(t_143[4][0]){
1301+ var t__144=moveRedLeftIfNeeded_29(t_143);
1307+ return fixUp_18(RBNode_2(t__144[1])(t__144[2])(t__144[3])(del_142(t__144[4]))(t__144[5]));
1309+ throw "Non-exhaustive pattern match in case";}();}();}();};
1310+ return ensureBlackRoot_19(del_142(t_141));}();};
1311+ function remove_32(k_150){
1312+ return function(t_151){
1314+ function eq_and_noRightNode_152(t_153){
1318+ switch(t_153[5][0]){
1320+ return eq(k_150,t_153[2]);
1323+ return false;}();};
1325+ function eq_155(t_156){
1329+ return eq(k_150,t_156[2]);
1331+ return false;}();};
1333+ function delLT_158(t_159){
1335+ var t__160=moveRedLeftIfNeeded_29(t_159);
1339+ return raise_5(Value.str("delLT on RBEmpty"));
1341+ return fixUp_18(RBNode_2(t__160[1])(t__160[2])(t__160[3])(del(t__160[4]))(t__160[5]));
1343+ throw "Non-exhaustive pattern match in case";}();}();};
1345+ function delEQ_166(t_167){
1349+ return raise_5(Value.str("delEQ called on a RBEmpty"));
1352+ var Tuple2$k_v__171=min_6(t_167[5]);
1353+ var k__172=function(){
1354+ switch(Tuple2$k_v__171[0]){
1356+ return Tuple2$k_v__171[1];
1358+ throw "Non-exhaustive pattern match in case";}();
1359+ var v__173=function(){
1360+ switch(Tuple2$k_v__171[0]){
1362+ return Tuple2$k_v__171[2];
1364+ throw "Non-exhaustive pattern match in case";}();
1365+ return fixUp_18(RBNode_2(t_167[1])(k__172)(v__173)(t_167[4])(deleteMin_31(t_167[5])));}();
1367+ throw "Non-exhaustive pattern match in case";}();};
1369+ function delGT_178(t_179){
1373+ return raise_5(Value.str("delGT called on a RBEmpty"));
1375+ return fixUp_18(RBNode_2(t_179[1])(t_179[2])(t_179[3])(t_179[4])(del(t_179[5])));
1377+ throw "Non-exhaustive pattern match in case";}();};
1379+ function del_185(t_186){
1385+ return ((compare(k_150)(t_186[2])[0] === 'LT')?delLT_158(t_186):function(){
1386+ var t__188=(isRedLeft_23(t_186)?rotateRight_12(t_186):t_186);
1387+ return (eq_and_noRightNode_152(t__188)?RBEmpty_3:function(){
1388+ var t_189=moveRedRightIfNeeded_30(t_189);
1389+ return (eq_155(t_189)?delEQ_166(t_189):delGT_178(t_189));}());}());
1391+ throw "Non-exhaustive pattern match in case";}();};
1392+ return ensureBlackRoot_19(del_185(t_151));}();}();}();}();}();}();};};
1393+ function map_33(f_190){
1394+ return function(t_191){
1400+ return RBNode_2(t_191[1])(t_191[2])(f_190(t_191[3]))(map_33(f_190)(t_191[4]))(map_33(f_190)(t_191[5]));
1402+ throw "Non-exhaustive pattern match in case";}();};};
1403+ function foldl_34(f_197){
1404+ return function(acc_198){
1405+ return function(t_199){
1411+ return foldl_34(f_197)(f_197(t_199[2])(t_199[3])(foldl_34(f_197)(acc_198)(t_199[4])))(t_199[5]);
1413+ throw "Non-exhaustive pattern match in case";}();};};};
1414+ function foldr_35(f_204){
1415+ return function(acc_205){
1416+ return function(t_206){
1422+ return foldr_35(f_204)(f_204(t_206[2])(t_206[3])(foldr_35(f_204)(acc_205)(t_206[5])))(t_206[4]);
1424+ throw "Non-exhaustive pattern match in case";}();};};};
1425+ function union_36(t1_211){
1426+ return function(t2_212){
1427+ return foldl_34(insert_20)(t2_212)(t1_211);};};
1428+ function intersect_37(t1_213){
1429+ return function(t2_214){
1430+ return foldl_34(function(k_215){
1431+ return function(v_216){
1432+ return function(t_217){
1433+ return (member_10(k_215)(t2_214)?insert_20(k_215)(v_216)(t_217):t_217);};};})(empty_4)(t1_213);};};
1434+ function diff_38(t1_218){
1435+ return function(t2_219){
1436+ return foldl_34(function(k_220){
1437+ return function(__221){
1438+ return function(t_222){
1439+ return remove_32(k_220)(t_222);};};})(t1_218)(t2_219);};};
1440+ function keys_39(t_223){
1441+ return foldl_34(function(k_224){
1442+ return function(__225){
1443+ return function(acc_226){
1444+ return ["Cons",k_224,acc_226];};};})(["Nil"])(t_223);};
1445+ function values_40(t_227){
1446+ return foldl_34(function(__228){
1447+ return function(x_229){
1448+ return function(y_230){
1449+ return ["Cons",x_229,y_230];};};})(["Nil"])(t_227);};
1450+ function toList_41(t_231){
1451+ return foldl_34(function(k_232){
1452+ return function(v_233){
1453+ return function(acc_234){
1454+ return ["Cons",["Tuple2",k_232,v_233],acc_234];};};})(["Nil"])(t_231);};
1455+ function fromList_42(assocs_235){
1456+ return List.foldl(uncurry(insert_20))(empty_4)(assocs_235);};
1457+ return {empty:empty_4,lookup:lookup_7,findWithDefault:findWithDefault_8,find:find_9,member:member_10,insert:insert_20,singleton:singleton_21,remove:remove_32,map:map_33,foldl:foldl_34,foldr:foldr_35,union:union_36,intersect:intersect_37,diff:diff_38,keys:keys_39,values:values_40,toList:toList_41,fromList:fromList_42};}();
1458+Elm.main=function(){
1459+ return Elm.Dict.main;};
1460+} catch (e) {Elm.main=function() {var msg = ('<br/><h2>Your browser may not be supported. Are you using a modern browser?</h2>' + '<br/><span style="color:grey">Runtime Error in Dict module:<br/>' + e + '</span>');document.body.innerHTML = Text.monospace(msg);throw e;};}
1463+for(var i in Elm) { this[i] = Elm[i]; }
1464+if (Elm.Set) throw "Module name collision, 'Set' is already defined.";
1466+ try{if (!(Elm.Prelude instanceof Object)) throw 'module not found'; } catch(e) {throw "Module 'Prelude' is missing. Compile with --make flag or load missing module in a separate JavaScript file.";}
1468+ for(var i in Elm.Prelude){
1469+ if (hiddenVars.indexOf(i) >= 0) continue;
1470+ this[i]=Elm.Prelude[i];}
1471+ var empty_0=Dict.empty;
1472+ var remove_3=Dict.remove;
1473+ var member_4=Dict.member;
1474+ var union_5=Dict.union;
1475+ var intersect_6=Dict.intersect;
1476+ var diff_7=Dict.diff;
1477+ var toList_8=Dict.keys;
1478+ var fromList_9=List.foldl(function(k_15){
1479+ return function(t_16){
1480+ return Dict.insert(k_15)(["Tuple0"])(t_16);};})(empty_0);
1481+ function singleton_1(k_13){
1482+ return Dict.singleton(k_13)(["Tuple0"]);};
1483+ function insert_2(k_14){
1484+ return Dict.insert(k_14)(["Tuple0"]);};
1485+ function foldl_10(f_17){
1486+ return Dict.foldl(function(k_18){
1487+ return function(v_19){
1488+ return function(b_20){
1489+ return f_17(k_18)(b_20);};};});};
1490+ function foldr_11(f_21){
1491+ return Dict.foldr(function(k_22){
1492+ return function(v_23){
1493+ return function(b_24){
1494+ return f_21(k_22)(b_24);};};});};
1495+ function map_12(f_25){
1496+ return function(t_26){
1497+ return function(x){
1498+ return fromList_9(List.map(f_25)(x));}(toList_8(t_26));};};
1499+ return {empty:empty_0,singleton:singleton_1,insert:insert_2,remove:remove_3,member:member_4,union:union_5,intersect:intersect_6,diff:diff_7,toList:toList_8,fromList:fromList_9,foldl:foldl_10,foldr:foldr_11,map:map_12};}();
1500+Elm.main=function(){
1501+ return Elm.Set.main;};
1502+} catch (e) {Elm.main=function() {var msg = ('<br/><h2>Your browser may not be supported. Are you using a modern browser?</h2>' + '<br/><span style="color:grey">Runtime Error in Set module:<br/>' + e + '</span>');document.body.innerHTML = Text.monospace(msg);throw e;};}
1007var Elm = Elm || {};
1503var Elm = Elm || {};
1008Elm.Char = function() {
1504Elm.Char = function() {
1009 function isBetween(lo,hi) { return function(chr) {
1505 function isBetween(lo,hi) { return function(chr) {
@@ -2981,16 +3477,192 @@ Elm.Prelude = function() {
2981 show = Value.show;
3477 show = Value.show;
3483+for(var i in Elm) { this[i] = Elm[i]; }
3484+if (Elm.Automaton) throw "Module name collision, 'Automaton' is already defined.";
3485+Elm.Automaton=function(){
2984−try{if(Elm.Automaton)throw "Module name collision, 'Automaton' is already defined.";Elm.Automaton=function(){try{if(!(Elm.Prelude instanceof Object))throw 'module not found'}catch(e){throw "Module 'Prelude' is missing. Compile with --make flag or load missing module in a separate JavaScript file."};var hiddenVars=[];for(var i in Elm.Prelude){if(hiddenVars.indexOf(i)>=0)continue;this[i]=Elm.Prelude[i]};try{if(!(Elm.Data.List instanceof Object))throw 'module not found'}catch(e){throw "Module 'Data.List' is missing. Compile with --make flag or load missing module in a separate JavaScript file."};var unzip=Elm.Data.List.unzip
3486+ try{if (!(Elm.Prelude instanceof Object)) throw 'module not found'; } catch(e) {throw "Module 'Prelude' is missing. Compile with --make flag or load missing module in a separate JavaScript file.";}
3488+ for(var i in Elm.Prelude){
3489+ if (hiddenVars.indexOf(i) >= 0) continue;
3490+ this[i]=Elm.Prelude[i];}
2985−function Automaton_0(a1){return ["Automaton",a1]};var Listen_9=["Listen"],Ignore_10=["Ignore"]
3491+ function Automaton_0(a1){
3492+ return ["Automaton",a1];};
3493+ var Listen_9=["Listen"];
3494+ var Ignore_10=["Ignore"];
3495+ function DragFrom_11(a1){
3496+ return ["DragFrom",a1];};
2986−function DragFrom_11(a1){return ["DragFrom",a1]};var count_8=init_6(0)(function(__75){return function(c_76){return(1+c_76)}})
3497+ var count_8=init_6(0)(function(__75){
2987−function run_1(Automaton$m0_15){return function(input_16){return function(){switch(Automaton$m0_15[0]){case"Automaton":return lift(fst)(foldp_(function(a_18){return function(Tuple2$bAutomaton$m_19){return function(){switch(Tuple2$bAutomaton$m_19[0]){case"Tuple2":switch(Tuple2$bAutomaton$m_19[2][0]){case"Automaton":return Tuple2$bAutomaton$m_19[2][1](a_18)};break};throw "Non-exhaustive pattern match in case"}()}})(Automaton$m0_15[1])(input_16))};throw "Non-exhaustive pattern match in case"}()}}
3498+ return function(c_76){
2988−function step_2(a_22){return function(Automaton$m_23){return function(){switch(Automaton$m_23[0]){case"Automaton":return Automaton$m_23[1](a_22)};throw "Non-exhaustive pattern match in case"}()}}
3499+ return (1+c_76);};});
2989−function composeAuto_3(a1_25){return function(a2_26){return function(){var Automaton$m1_27=a1_25,m1_28=function(){switch(Automaton$m1_27[0]){case"Automaton":return Automaton$m1_27[1]};throw "Non-exhaustive pattern match in case"}(),Automaton$m2_29=a2_26,m2_30=function(){switch(Automaton$m2_29[0]){case"Automaton":return Automaton$m2_29[1]};throw "Non-exhaustive pattern match in case"}();return Automaton_0(function(a_33){return function(){var Tuple2$bm1__34=m1_28(a_33),b_35=function(){switch(Tuple2$bm1__34[0]){case"Tuple2":return Tuple2$bm1__34[1]};throw "Non-exhaustive pattern match in case"}(),m1__36=function(){switch(Tuple2$bm1__34[0]){case"Tuple2":return Tuple2$bm1__34[2]};throw "Non-exhaustive pattern match in case"}();return function(){var Tuple2$cm2__41=m2_30(b_35),c_42=function(){switch(Tuple2$cm2__41[0]){case"Tuple2":return Tuple2$cm2__41[1]};throw "Non-exhaustive pattern match in case"}(),m2__43=function(){switch(Tuple2$cm2__41[0]){case"Tuple2":return Tuple2$cm2__41[2]};throw "Non-exhaustive pattern match in case"}();return ["Tuple2",c_42,composeAuto_3(m1__36)(m2__43)]}()}()})}()}}
3500+ function run_1(Automaton$m0_15){
2990−function combine_4(autos_48){return Automaton_0(function(a_49){return function(){var Tuple2$bsautos__50=unzip(map(function(Automaton$m_53){return function(){switch(Automaton$m_53[0]){case"Automaton":return Automaton$m_53[1](a_49)};throw "Non-exhaustive pattern match in case"}()})(autos_48)),bs_51=function(){switch(Tuple2$bsautos__50[0]){case"Tuple2":return Tuple2$bsautos__50[1]};throw "Non-exhaustive pattern match in case"}(),autos__52=function(){switch(Tuple2$bsautos__50[0]){case"Tuple2":return Tuple2$bsautos__50[2]};throw "Non-exhaustive pattern match in case"}();return ["Tuple2",bs_51,combine_4(autos__52)]}()})}
3501+ return function(input_16){
3503+ switch(Automaton$m0_15[0]){
3505+ return lift(fst)(foldp_(function(a_18){
3506+ return function(Tuple2$bAutomaton$m_19){
3508+ switch(Tuple2$bAutomaton$m_19[0]){
3510+ switch(Tuple2$bAutomaton$m_19[2][0]){
3512+ return Tuple2$bAutomaton$m_19[2][1](a_18);
3515+ throw "Non-exhaustive pattern match in case";}();};})(Automaton$m0_15[1])(input_16));
3517+ throw "Non-exhaustive pattern match in case";}();};};
3518+ function step_2(Automaton$m_22){
3519+ return function(a_23){
3521+ switch(Automaton$m_22[0]){
3523+ return Automaton$m_22[1](a_23);
3525+ throw "Non-exhaustive pattern match in case";}();};};
3526+ function composeAuto_3(a1_25){
3527+ return function(a2_26){
3529+ var Automaton$m1_27=a1_25;
3530+ var m1_28=function(){
3531+ switch(Automaton$m1_27[0]){
3533+ return Automaton$m1_27[1];
3535+ throw "Non-exhaustive pattern match in case";}();
3536+ var Automaton$m2_29=a2_26;
3537+ var m2_30=function(){
3538+ switch(Automaton$m2_29[0]){
3540+ return Automaton$m2_29[1];
3542+ throw "Non-exhaustive pattern match in case";}();
3543+ return Automaton_0(function(a_33){
3545+ var Tuple2$bm1__34=m1_28(a_33);
3546+ var b_35=function(){
3547+ switch(Tuple2$bm1__34[0]){
3549+ return Tuple2$bm1__34[1];
3551+ throw "Non-exhaustive pattern match in case";}();
3552+ var m1__36=function(){
3553+ switch(Tuple2$bm1__34[0]){
3555+ return Tuple2$bm1__34[2];
3557+ throw "Non-exhaustive pattern match in case";}();
3559+ var Tuple2$cm2__41=m2_30(b_35);
3560+ var c_42=function(){
3561+ switch(Tuple2$cm2__41[0]){
3563+ return Tuple2$cm2__41[1];
3565+ throw "Non-exhaustive pattern match in case";}();
3566+ var m2__43=function(){
3567+ switch(Tuple2$cm2__41[0]){
3569+ return Tuple2$cm2__41[2];
3571+ throw "Non-exhaustive pattern match in case";}();
3572+ return ["Tuple2",c_42,composeAuto_3(m1__36)(m2__43)];}();}();});}();};};
3573+ function combine_4(autos_48){
3574+ return Automaton_0(function(a_49){
3576+ var Tuple2$bsautos__50=unzip(map(function(Automaton$m_53){
3578+ switch(Automaton$m_53[0]){
3580+ return Automaton$m_53[1](a_49);
3582+ throw "Non-exhaustive pattern match in case";}();})(autos_48));
3583+ var bs_51=function(){
3584+ switch(Tuple2$bsautos__50[0]){
3586+ return Tuple2$bsautos__50[1];
3588+ throw "Non-exhaustive pattern match in case";}();
3589+ var autos__52=function(){
3590+ switch(Tuple2$bsautos__50[0]){
3592+ return Tuple2$bsautos__50[2];
3594+ throw "Non-exhaustive pattern match in case";}();
3595+ return ["Tuple2",bs_51,combine_4(autos__52)];}();});};
3596+ function pure_5(f_59){
3597+ return Automaton_0(function(x_60){
2991−function pure_5(f_59){return Automaton_0(function(x_60){return ["Tuple2",f_59(x_60),pure_5(f_59)]})}
3598+ return ["Tuple2",f_59(x_60),pure_5(f_59)];});};
3599+ function init_6(s_61){
3600+ return function(step_62){
3601+ return Automaton_0(function(a_63){
3603+ var s__64=step_62(a_63)(s_61);
2992−function init_6(s_61){return function(step_62){return Automaton_0(function(a_63){return function(){var s__64=step_62(a_63)(s_61);return ["Tuple2",s__64,init_6(s__64)(step_62)]}()})}}
3604+ return ["Tuple2",s__64,init_6(s__64)(step_62)];}();});};};
2993−function init__7(s_65){return function(step_66){return Automaton_0(function(a_67){return function(){var Tuple2$bs__68=step_66(a_67)(s_65),b_69=function(){switch(Tuple2$bs__68[0]){case"Tuple2":return Tuple2$bs__68[1]};throw "Non-exhaustive pattern match in case"}(),s__70=function(){switch(Tuple2$bs__68[0]){case"Tuple2":return Tuple2$bs__68[2]};throw "Non-exhaustive pattern match in case"}();return ["Tuple2",b_69,init__7(s__70)(step_66)]}()})}}
3605+ function init__7(s_65){
2994−function vecSub_12(Tuple2$x1y1_77){return function(Tuple2$x2y2_78){return function(){switch(Tuple2$x1y1_77[0]){case"Tuple2":return function(){switch(Tuple2$x2y2_78[0]){case"Tuple2":return ["Tuple2",(Tuple2$x1y1_77[1]-Tuple2$x2y2_78[1]),(Tuple2$x1y1_77[2]-Tuple2$x2y2_78[2])]};throw "Non-exhaustive pattern match in case"}()};throw "Non-exhaustive pattern match in case"}()}}
3606+ return function(step_66){
2995−function stepDrag_13(Tuple2$presspos_83){return function(Tuple2$dsform_84){return function(){switch(Tuple2$presspos_83[0]){case"Tuple2":return function(){switch(Tuple2$dsform_84[0]){case"Tuple2":return function(){function wrap_89(ds__90){return ["Tuple2",Tuple2$dsform_84[2],["Tuple2",ds__90,Tuple2$dsform_84[2]]]};return function(){switch(Tuple2$dsform_84[1][0]){case"DragFrom":return(Tuple2$presspos_83[1]?["Tuple2",uncurry(move)(vecSub_12(Tuple2$presspos_83[2])(Tuple2$dsform_84[1][1]))(Tuple2$dsform_84[2]),["Tuple2",DragFrom_11(Tuple2$dsform_84[1][1]),Tuple2$dsform_84[2]]]:function(){var form__92=uncurry(move)(vecSub_12(Tuple2$presspos_83[2])(Tuple2$dsform_84[1][1]))(Tuple2$dsform_84[2]);return ["Tuple2",form__92,["Tuple2",Listen_9,form__92]]}());case"Ignore":return wrap_89((Tuple2$presspos_83[1]?Ignore_10:Listen_9));case"Listen":return wrap_89((not(Tuple2$presspos_83[1])?Listen_9:(isWithin(Tuple2$presspos_83[2])(Tuple2$dsform_84[2])?DragFrom_11(Tuple2$presspos_83[2]):Ignore_10)))};throw "Non-exhaustive pattern match in case"}()}()};throw "Non-exhaustive pattern match in case"}()};throw "Non-exhaustive pattern match in case"}()}}
3607+ return Automaton_0(function(a_67){
3609+ var Tuple2$bs__68=step_66(a_67)(s_65);
3610+ var b_69=function(){
3611+ switch(Tuple2$bs__68[0]){
3613+ return Tuple2$bs__68[1];
3615+ throw "Non-exhaustive pattern match in case";}();
3616+ var s__70=function(){
3617+ switch(Tuple2$bs__68[0]){
3619+ return Tuple2$bs__68[2];
3621+ throw "Non-exhaustive pattern match in case";}();
3622+ return ["Tuple2",b_69,init__7(s__70)(step_66)];}();});};};
3623+ function vecSub_12(Tuple2$x1y1_77){
3624+ return function(Tuple2$x2y2_78){
3626+ switch(Tuple2$x1y1_77[0]){
3629+ switch(Tuple2$x2y2_78[0]){
3631+ return ["Tuple2",(Tuple2$x1y1_77[1]-Tuple2$x2y2_78[1]),(Tuple2$x1y1_77[2]-Tuple2$x2y2_78[2])];
3633+ throw "Non-exhaustive pattern match in case";}();
3635+ throw "Non-exhaustive pattern match in case";}();};};
3636+ function stepDrag_13(Tuple2$presspos_83){
3637+ return function(Tuple2$dsform_84){
3639+ switch(Tuple2$presspos_83[0]){
3642+ switch(Tuple2$dsform_84[0]){
3645+ function wrap_89(ds__90){
3646+ return ["Tuple2",Tuple2$dsform_84[2],["Tuple2",ds__90,Tuple2$dsform_84[2]]];};
3648+ switch(Tuple2$dsform_84[1][0]){
3650+ return (Tuple2$presspos_83[1]?["Tuple2",uncurry(move)(vecSub_12(Tuple2$presspos_83[2])(Tuple2$dsform_84[1][1]))(Tuple2$dsform_84[2]),["Tuple2",DragFrom_11(Tuple2$dsform_84[1][1]),Tuple2$dsform_84[2]]]:function(){
3651+ var form__92=uncurry(move)(vecSub_12(Tuple2$presspos_83[2])(Tuple2$dsform_84[1][1]))(Tuple2$dsform_84[2]);
3652+ return ["Tuple2",form__92,["Tuple2",Listen_9,form__92]];}());
3654+ return wrap_89((Tuple2$presspos_83[1]?Ignore_10:Listen_9));
3656+ return wrap_89((not(Tuple2$presspos_83[1])?Listen_9:(isWithin(Tuple2$presspos_83[2])(Tuple2$dsform_84[2])?DragFrom_11(Tuple2$presspos_83[2]):Ignore_10)));
3658+ throw "Non-exhaustive pattern match in case";}();}();
3660+ throw "Non-exhaustive pattern match in case";}();
3662+ throw "Non-exhaustive pattern match in case";}();};};
3663+ function dragForm_14(form_93){
3664+ return init__7(["Tuple2",Listen_9,form_93])(stepDrag_13);};
2996−function dragForm_14(form_93){return init__7(["Tuple2",Listen_9,form_93])(stepDrag_13)};return {Automaton:Automaton_0,run:run_1,step:step_2,composeAuto:composeAuto_3,combine:combine_4,pure:pure_5,init:init_6,init_:init__7,count:count_8,Listen:Listen_9,Ignore:Ignore_10,DragFrom:DragFrom_11,vecSub:vecSub_12,stepDrag:stepDrag_13,dragForm:dragForm_14}}();Elm.main=function(){return Elm.Automaton.main}}catch(e){Elm.main=function(){var msg=('<br/><h2>Your browser may not be supported. Are you using a modern browser?</h2>'+'<br/><span style="color:grey">Runtime Error in Automaton module:<br/>'+e+'<br/><br/>The problem may stem from an improper usage of:<br/>fst, unzip</span>');document.body.innerHTML=Text.monospace(msg);throw e}}
3665+ return {Automaton:Automaton_0,run:run_1,step:step_2,composeAuto:composeAuto_3,combine:combine_4,pure:pure_5,init:init_6,init_:init__7,count:count_8,Listen:Listen_9,Ignore:Ignore_10,DragFrom:DragFrom_11,vecSub:vecSub_12,stepDrag:stepDrag_13,dragForm:dragForm_14};}();
3666+Elm.main=function(){
3667+ return Elm.Automaton.main;};
3668+} catch (e) {Elm.main=function() {var msg = ('<br/><h2>Your browser may not be supported. Are you using a modern browser?</h2>' + '<br/><span style="color:grey">Runtime Error in Automaton module:<br/>' + e + '</span>');document.body.innerHTML = Text.monospace(msg);throw e;};}