Caml1999T037z>C'Diffing'warning0utils/diffing.mlP7;P7B@#-16 P7DP7G@@P7CP7H@@@@@@P77P7I@@3@@@@@@#intA;@@@A@@@@@&_none_@@A@A@$charB;@@A@@@@@@A@&stringQ;@@ A@@@@@ @@@%bytesC;@@A@@@@@@@@%floatD;@@A@@@@@@@@$boolE;@@%falsec@@@$trued@@#@@@A@@@@@$@A@$unitF;@@"()e@@.@@@A@@@@@/@A@ #exnG;@@@A@@@@@3@@@#effH;@@O@A@A@@@@@@<@@@,continuationI;@@Q@@P@B@A@nY@@@@@@K@@@%arrayJ;@@R@A@A@@@@@@U@@@ $listK;@@S@A"[]f@@b@"::g@@@T@@o@ @@A@Y@@@@@r@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@A@@@@@@@@%int32N;@@A@@@@@@@@%int64O;@@A@@@@@@@@&lazy_tP;@@X@AJA@Y@@@@@@@@5extension_constructorR;@@A@@@@@@@@*floatarrayS;@@A@@@@@@@@&iarrayT;@@Y@A[A@Y@@@@@@@@*atomic_locU;@@Z@AdA@@@@@@@@@.Assert_failure`#@@@@@J@@@@@@@@[@@AϠ=ocaml.warn_on_literal_patternӐ@@0Division_by_zero]#@@@A٠  @+End_of_file\#$@@@Aᠰ@'FailureY#,@'@@A꠰@0Invalid_argumentX#5@0@@A󠰠$#@-Match_failureV#>@@=@9@;@@a@@A54@)Not_foundZ#O@@@A =<@-Out_of_memoryW#W@@@AED@.Stack_overflow^#_@@@AML@.Sys_blocked_io_#g@@@A$U'T'@)Sys_error[#o@j@@A-^0]0@:Undefined_recursive_modulea#x@@w@s@u@@h@@A>oAnA@:Continuation_already_takenb#@@@AFwIvI@&Stdlib@@A++change_kindA`(-`(8@@;@@(Deletion@@a;=a;G@@AA)Insertion@@bHJbHU@@BA,Modification@@cVXcVf@@CA,Preservation@@dgidgw@@DA@@A@@@@@`((@)ocaml.doc. Shared types __'@@@@@@@A@@A@#88a;?6@5@@@9@#55bHL3@2@@@6@#22cVZ0@/@@@3@#//dgk-@,@@@0@@A@,*)(@((@@@(@(@@7:@࠰@ఠ%stylefy}fy@EA@@@|@@@B@~$Misc%Style%style@@@ B@@@@B@@@B@3        @ @@@@Ġ,Preservation0g1g@;z'@@@@@@CD@@A|@@y@@@@.3!  !!!!!@;OBO>OH@@@x@@ @@ E@ &@ภBA@CA@F@ @@@ #E@ +,@@#LA@#B@ @@@ E@ "5@@=hV@@,@@@ ;@m[@@3 @Ġ)InsertionKiLi@;@@@AD@@A@@@@@@F398899999@@@@@@ Р%Style$Miscaibi@ eifi@@@@@A3SRRSSSSS@3@@@+3UTTUUUUU@4@@ภrisiAภ"FG {i@ ภ#Redii @@@@@@@ 7E@ ;3tssttttt@!@@@@ @@wE@ 6@ภ4i #A2ภ$Boldi@@ @@E@ E@ภ 4A@ 5A@F@ =@@@ BE@ J%@@>A@B@ .@@@ 2E@ A.@@iH@@@@@ 14@_M@@@Ġ,Modificationjj!@;@@@BD@@A@@@@@@3@@@@@@ Р%Style$Miscj%j)@ j*j/@@@@@A3@@@@3@@@ภj2Aภ"FGj4@ภ'Magentaj5j<@;'Magentav@@@EH@@ANNNN@@@r@@  @@@@@ VE@ Z3@'@@@@!@@E@ U@ภj>Aภ$Bold jB@@ @@ E@ d@ภ A@ A@F@ \@@@ aE@ i%@@A@#B@ M@@@ QE@ `.@@=j0@@,@@@ P4@e@@3@@A%paramuFfy @@@ @@BB@ u@A@@@(@ఠ&prefixvVlEIWlEO@cFA@@@*Format_doc)formatter@@@ ,B@ w@@#intA@@@B@ @t@@@ B@ @@ B@ |$unitF@#@ +B@ }@@ ~B@ x@@ yB@ v3uttuuuuu@j@@@@@࣠@#ppfxAlEPlES@GA@@@3@MlEEq@@@@@  @@%paramA@ఠ#posylEUlEX@HA@@D3@']@@@@@@ఠ!pzlEZlE[@IA@@I@@lETlE\@@@Z@R@@ @@ @@ Р*Format_doc*Format_docm_jm_t@@ 3@.7t@1@2)k@#@$@@@@A3@@@m_e @@3@ @@@ఠ#stynx~nx@JA@@@@@ @@@ F@ 3@@@@ఐ %stylenxnx@@@@@@@ @@@ @@@ @@ @@ఐe!p(nx)nx@B@@&@@@@.'@A@-nxz@@ డ\,pp_open_stag9o:o@'printer&Stdlib&Format$stag@@@ @@@ @4utils/format_doc.mli    @@@@@@@@ @@@ 3BAABBBBB@qg`@a@b@@@@ఐϠ#ppffogo@@@ @@ภ$Miscvowo@%Style{o|o@@%Styleoo@@;%Style&Stdlib&Format$stag@@@@$listK@@@@@@@A@@A&_none_@@A@@z@ఐ#styoo@P@@@@@(@@@'G@+G@)^@@oo@@{@@@ G@&f@@@@_@@@-F@ m@ డ'fprintfpp@@v@@@ @&format!a@ @@@ d@@@ @@@ @@ @@ @Q@@y@"!@@@@@@6@@E@@@ F@CF@F@@@F@2@@@4&@@@5@@@3@@1@@0@@ఐ#ppfpp@e@@@@ภ8CamlinternalFormatBasics&Format-p.pA;&Format8CamlinternalFormatBasics'format6!a@!b@!c@!d@!e@!f@@@@o@'#fmt$ @@@m&stringQ@@@n@B@@A@A@@@G@@ภ*No_padding;*No_paddingF!a@@@@@@@@ABAAee@@@j@@@V H@ F@G@@@@G@@ภҠ,No_precision;,No_precisionb!a@Ԡ@@@@@@@BAAAlLNlLq@@@o@@@r",@@@G@@ภ .String_literal ;.String_literalߠ!a@!b@!c@!d@!e@!f@@@@@@@@ݠ'#@@@@BKAYAA$}$}$%@@@6k@". E@E@@@@G@G@@ภV>-End_of_format@U;-End_of_format+!f@X!b@Y!c@Z!e@[@@@@@@@AYAA2..3./!@@@ky@@u@KF@F@H@ޠR@@@BG@G@G@@@@G@a@@@d@@@G@l@@@oH@ʠˠ̠@@@G@x@$%i. @@v@@@G@G@@@@@2@@@AG@@@ఐ<#pospp@ @@@@#@@F@F@డ!-pp_close_stagqq@Š@@@ @@@ @   !@@@@@Ҡ @@@ @@@ @@ఐ#ppfq q@g@@@@ภ"()+q@;@@@N@@@@A@@A@@@@@1@@@ &F@ 1@@;@@@i@@@@@@@@7@=m_a@@3'&&'''''@Z@@@A@B@ 5@A@@@@ఠ$let*NtOt@[KA@@@&optionL@@!@@@!@@  @!@@@!@@!@@@!@@!@@!B@ 63WVVWWWWW@@@@@@డ&Option$bind|t}t@ tt@@@0!a@ @@@ @@ /!b@ @@@ @@ 1@@@ @@ @@ @*option.mliii@@.Stdlib__OptionG@)$@@Q7@A@t&@@'@:@ఠ$let+4u u@LA@@@ge@!)@@@!5B@!@@ o@!'@@!6B@!x@@@!4B@!@@! B@!@@!B@!3@f@@@@@࣠@!x6Auu@MA@@*3@7uu%@@@@@  @@!f7Auu@ NA@@23@!A@@@@@@@@డy&Option#map u u@  u u!@@@@!a@ !b@ @@ @d @@@ W @@@ @@ @@ @oo@@I@#@@@@qg@@!*@wv@@@!(jp@@@!&@@!%@@!$3 % $ $ % % % % %@DPx@G@H@@@@ఐW!f Iu" Ju#@ @@@@ఐx!x Vu$m@\n@@@@No@@@ypA@B@!<w@A@t@ts@@ఠ%let*!8 hv&* iv&1@ uOA@@@@!M@@@![B@!>@@ $unitF@@@!]@@!\B@!C@@@!ZB@!D@@!EB@!?@@!@B@!=3 u t t u u u u u@@@@@@࣠@!x:A v&2 v&3@ PA@@.3        @; v&& v&G@@@@@  @@!f;A v&4 v&5@ QA@@63        @!E@@@@@@@@డ2&Option$iter v&8 v&>@  v&? v&C@@@@!a@ |T@@@ @@ @g @@@ U@@@ @@ @@ @B| o oC| o @@AL@!@@@@si@@@!O@@!N@|{@@@!Lj@@@!K@@!J@@!I3        @DP|@G@H@@@@ఐW!f v&D v&E@ @@@@ఐx!x v&Fm@\n@@@@No@@@ypA@B@!cw@A@t@ts@$DefsAG xIU xIY@ +WAБA+$leftD T{y U{y@@;@@&A@@@@@ X{y{@@@@ dTA@@A@@@3 C B B C C C C C@@A@A+$diff?E f| g|@@;@@8A@@@@@ j|@@@@ vUA@@A@@@3 U T T U U U U U@@A@A+%state@F x} y}@@;@@JA@@@@@ |}@@@@ VA@@A@@@3 g f f g g g g g@@A@@YSA@GAA@71A@'!A@A@@3 t s s t t t t t@@A 3 w v v w w w w w@Y@A xI\ ~@@@ xII@@3 ~ } } ~ ~ ~ ~ ~@`@@A+&changeBH @ @@А$left@!h3        @vA@uoA@e_A@UOA@E?A@@@';@@!d@@!e@@!f@@!g@D@A@GGGG@BBBB@@@ @ D  6@@@@ XA@@ @ @@@BAА%right@!i6 @ @@@ А"eq@!jA @ @@@А$diff@!kL @ @@@"@;T @D&DeleteC`I@!l@@ A A@@ YA&InsertD6I@!n@@ B B@@ ZA$KeepExI@!pEI@!r=I@!t@@ %C &C @@ 2[A&ChangeFI@!vWI@!xDI@!z@@ 7D  g@@ C\A@@A@YYYY@@@@@@@@r@@@o@#DD FA GA@?@А$leftI NAG@@@@I@#EE SB TB@@@А%rightJ [BH@@@@J@#FF `C aC@;@А$leftK hC iC @@А%rightOŰ oC  pC @@А"eqS̰ vC Q@@@@S@#OO {D   |D  @E@А$leftTٰ D   D  %@@А%rightX D  ( D  .@@А$diff\ D  1@@@@\@@A@@@@3 | { { | | | | |@@@@ఠ(classifyG F 8 < F 8 D@ ]A@@@Q@!S@!U@!W@!@@@!I@! @@@!I@!@@!I@!3        @!@@@@Ġ&Delete G P V G P \@;!Ӑ@@!@A@@D@A@@Š@ G P ] G P ^@@&3        @9 F 8 8 J  @@@@@@@@3@@@ภ(Deletion G P b G P j@ @@@.@Ġ&Insert H k q H k w@;$@AA@D@A@@ڠ@ H k x H k y@@GI@!#@@@ @@P$@@@ภ)Insertion H k } H k @@@@K-@Ġ&Change I   I  @;A@CC@D@A@@Ԡ@ I   I  @@fI@!@@@@hI@!D@@ @hI@!H@@@ @@uI@@@ภ,Modification "I   #I  @Z@@@pR@Ġ$Keep -J   .J  @;f@CB@D@A @@ @ 4J   5J  @@I@!e@@@I@!i@@ @I@!m@@@ @@n@@@ภ,Preservation GJ  p@ @q@@v@@AI KF 8 Gt@@@u@@I@!|@A@y@yx@&Define#I ZL   [L  @ g#A@Т!DJJ fL   gL  @РQ$Defs oL   pL  @3 [ Z Z [ [ [ [ [@@@@@@@БР!D M   M  @@ 3 q p p q q q q q@*@#@( ^A-@@@@A3 w v v w w w w w@@@ M   @@@3 | { { | | | | |@ @@@+&changeKK O   O  @@;@@oA )$left@@@!ߠ/%right@@@!5"eq@@@!;$diff@@@!@@@!@@@@ O   O  @@@@ _A@@Aг!&change O   @г%& O   O  @@,3        @C@@@@г)* O   O  @@0 @@г,- O   O  @@3@@г/0 O   O  @@6@@@M O  1@@3@@32@ A+%patchLL Q  $ Q  )@@;@@A jl@@@!@@@"@@@@ Q   Q  7@@@@ `A@@Aг$list Q  3 @г&change Q  , Q  2@@3        @);@@@A1@@@"@!@@@@!@@@@@@@@+ !@@#@@#"@3        @@@!SNM 4R 8 D 5R 8 E@ AbAБ$diffM CS L R DS L V@б@г%state NS L X OS L ]@@ @@@"3 < ; ; < < < < <@7_Y@A@@б@г Π%array _S L f `S L k@г$left iS L a jS L e@@ @@@"@@@@@@"  @@б@г 점%array }S L u ~S L z@г%right S L o S L t@@ @@@"9@@@@@@"> @@г%patch S L ~ S L @@ @@@"K@@@@@"N@@@5@@" Q< @@@W@@"!TZ@@@ S L N@@ aA@@@Z@p@@3        @]r @A3        @_@A R 8 H T  @@@ R 8 8@@3        @f@@A+*full_stateON W   W  @@;@@$lineP@@ AS$left@@@""@@@"$ X   X  @@ dA&columnQ@@ Se%right@@@"'@@@") Y   Y  @@ eA%stateR@@s%state@@@", Z   Z  @@fA@@A@@@@@ W   [  @@@@cA@#66+X  @*@@Ш@г9%array X   X  @г>?X  X  @@E3        @t@@@f];@@@A@@@@@&@@@#@@  @@@T @@W@@"%@M@#II>&Y  @=@@Ш@гL%array/Y  0Y  @гQR7Y  8Y  @@X%@@@]& @@`@@"*)@V@#RRLAZ  @K@@Ш@гUVIZ  T@@[6U@@^@@"-9@Y@@A@U@@UT@376677777@9@@&MatrixOYf  Zf  @fA@БA+%shapeSPj_fk_k@@;@@!lT@@8@@@"@w_px_y@@hA!cU@@D@@@"C_z_@@iA@@A@@@@@_a_@@@@gA@#_q@@@Ш@г #int_t_w@@(3@7;@@@A@@@@@@@@@@@@0@@"A@,@#((#_{@"@@Ш@г+#int_~,@@2-@@5@@"D@1@@A@-@@-,@3@@@A+!tVQ@@;@@&statesW@@<@@@@"O@@@"Q@@@"S@@@"U@@kA&weightX@@W[@@@"X@@@"Z@@@"\@@lA$diffY@@mqNm@@@"_@@@"a@@@"c@@@"e  @@mA'columnsZ@@@@@"h @@$nA%lines[@@@@@"k#$*@@0oA@@A@@@@@'(+0@@@@4jA@#iiU/@T@@Ш@гl%array89@гq%arrayAB@гv&optionJK@г{*full_stateST@@3>==>>>>>@;@@@A@@@@@4@@@1@@@@@ @@@ @@@ %@@@@"V @@#td@s@@Ш@г%arraymn@г%arrayvw@г#int@@,@@@- @@@.@@@@"]1@@#@~@@Ш@г%array@г%array@г&option@г&change@@[@@@\ @@@]@@@^ @@@@"fa@@#@@@Ш@г#int@@p@@@@"is@@#$@@@Ш@г#int&)@@@@@@"l@@@A@@@@3@@@@ఠ'opt_get\171>@pA@@@%arrayJ@%oR@%u@@@%R@"@#intA@@@%R@"X@@@%pR@"@@"R@"@@"R@"3@VP@@@࣠@!a^A1?1@@(qA@@03@=#13$E@@@@@  @@!n_A/1A01B@@?@@@@ఐN!nzEL{EM@ @@~@@డ%Array&lengthEPEU@ EVE\@@@!a@$(@@@$.@@@$-@@$,-%array_lengthAA @@@)array.mliaa@@-Stdlib__ArrayA@#@@@R@%d@@@%c@@@%b@@%aN@@ఐ!aE]E^@@@[@@<@@d\@@P@@z@@@%mU@"c@ภ$SomeEdEh@;$@@W@A@AA@A@@డY%Array*unsafe_getEjEo@ EpEz@@@!a@"@@@%Z@@@@%Y @@%X@@%W1%array_unsafe_getBA^@@@@^GmGm_GmG@@]q@!@@@@@@%w@@@@%v @@%t@@%s@@ఐ !a!E{"E|@@@5@@ఐ!n.E}/E~@@@2@@2Ei3E@@=@@_@@,?@@@%q@ภ$None@E@;i@@@@AA@A@@@ @@T@%@GEI$@@@.%A@^R@%,@A@)@)(@>@ఠ$lineWX@dsA@@@@@@%R@%@j@@@%R@%@s@@@%R@% @@@%U@%@@@%R@%@@%R@%@@%R@%@@%R@%3lkklllll@v@@@@@࣠@!mA@tA@@63~}}~~~~~@C@@@@@  @@!iA@uA@@@3@!M@@@@@@@@!jA@vA@@H3@T@@@@@@@@ y$let*@@ x@@@%U@%U@%V@%@@@%V@%@@  h@@@%V@%@@% n@@@%V@%@@%@@%V@%డg%Array#getA@!a@$"@@@$2@@@@$1 @@$0@@$//%array_safe_getBAi@@@@id::jd:r@@hB@A@@ ʠR@@@%U@%U@%@@@%@@@@%@@%@@%3@q}@t@u@@@@డDCHHB<AADA@@AH.@@@%V@%V@%@@@%@@@@%@@%@@%'@@ఐϠ!mc]@e@@5@&statescd@3@@@"@@@3@@A@A|@y3vu@@B@Ab@_3\[@@C@AW@T3QP@@D@AL@I@A@u @@t3@@@%W@%W@%M@@ఐߠ!i@ǰ@@Z@@I@@B[@@ఐܠ!j@e@@ h@@@@wi@@@"st@wA@@u@@@ఐ'opt_get@%@@@3V@%@@@%@@@@% @@@%@@%@@%3@*@!@"@@@@ఐ3"st@@@@$line@3 @@@"? @@@3@@A@A@3@@B@A@@A@ @@3@@@%W@%W@%(@@ఐL!iU@3V@@4@@IW@@ w@@@%9@A0\@@|3@@@@g^A@R@%e@A@b@ba@x@ఠ&column@xA@@@@@@&>R@%@@@@&7R@&@!@@@&XR@& K@@@&\U@& @@@&aR@&@@&R@&@@&R@%@@%R@%3@@@@@@࣠@!mA>?@KyA@@43+**+++++@AFG@@@@@  @@!iARS@_zA@@?3?>>?????@!K@@@@@@@@!jAcd@p{A@@G3POOPPPPP@S@@@@@@@@ &$let*st@ @ %@@@&]U@&=U@&V@&@@@&V@&@@  +g@@@&V@&@@& +m@@@& V@&@@&@@&V@& డabAA@@ Z5@@@&CU@&)?-@հK@@F*@@@&W@&W@&D@@ఐ!iS/T0@n@@Q@@a@@@9R@@ఐ!ja3b4@\@@_@@o@@h`@A@R@&@A@@@@ఠ&weightt6<u6B@AA@@@@@@&R@&@@@@&R@&@@@@&R@&@@@&R@&@@&R@&@@&R@&@@&R@&3@@@@@@࣠@!mA6C6D@BA@@.3@;686[@@@@@  @@!iA6E6F@CA@@93@!E@@@@@@@@!jA6G6H@DA@@A3@M@@@@@@@@డO砡6K2A3A@@TU@&@@@&@x@@@&@@&@@&3@!-d@$@%@@@@డp   !6WA#A@@ (@@@&V@&V@&@@@&@@@@&@@&@@&'@@ఐ!mB"6L@cD@@5@&weight(6M)6S@K@@0*@@@&W@&W@&D@@ఐ!i=6U>6V@n@@Q@@a@@@9R@@ఐ!jK6YL6Z@\@@_@@o@@h`@A@R@&@A@@@@ఠ%state^\b_\g@kEA@@@@@@'R@&@@@@'R@&@@@@'R@&@@@'@@@'R@&@@&R@&@@&R@&@@&R@&3onnooooo@@@@@@࣠@!mA\h\i@FA@@23@?\^\@@@@@  @@!iA\j\k@GA@@=3@!I@@@@@@@@!jA\l\m@HA@@E3@Q@@@@@@@@డ=ՠ\p2AӰ3A@@ӠXU@&@@@&@f@@@&@@&@@&3@!-h@$@%@@@@డ^!\|A#A@@(@@@'V@'V@' @@@' @@@@' @@' @@''@@ఐ!mB\q@cD@@5@&states\r\x@K@@*@@@'W@'W@'D@@ఐ!i+\z,\{@n@@Q@@a@@@9R@@ఐ!j9\~:\@\@@_@@o@@h`@A@R@'&@A@@@@ఠ%shapeLM@YIA@@@@@@'>R@'(@@@'0R@')@@'*R@''3HGGHHHHH@@@@@@࣠@!mAmn@zJA@@3ZYYZZZZZ@*uv@@@@@  @@ຠ3 #@@@"N @@@3  @@A@A @@A @ !l@ఐ)!m@B@&@'@@C3@'3@@@%lines@2 @@ 0@@@'2S@'4@$!c@ఐL!m@#@@e"@'columns@S @@ D@@@';S@'=.@@@Q@@n0@[RA@xR@'AY@A@V@VU@l@ఠ#set@KA@@@@@@'R@'C@u@@@'R@'H@@@@'R@'M$diff@@@'@@@'R@'R&weight $@@@'R@'W%state F@@@'R@'\@@@'R@']@@'^R@'X@@'YR@'S@@'TR@'N@@'OR@'I@@'JR@'D@@'ER@'B3      @@@@@@࣠@!mA./@;LA@@T3@a679?@@@@@  @@!iABC@OMA@@_3/../////@!k@@@@@@@@!jAST@`NA@@g3@??@@@@@@s@@@@@@@ccAgcd@pOA@@k3POOPPPPP@z@@@@@@k@eeAitu@PA@@m3a``aaaaa@@@@@@@|@kkAo@QA@@s3rqqrrrrr@@@@@@@@@ డ #set[\A@!a@$@@@$8@@@@$7@ $unitF@@@$6@@$5@@$4@@$3/%array_safe_setCA@@@@@mm@@C@&%A@@#Y@'g@@@'i@@@@'h@  @@@'f@@'e@@'d@@'c3@NY@Q@R@@@@డWJALA@@P-@@@'xZ@'Z@'|@@@'~@@@@'}@@'{@@'z'@@ఐޠ!mk @°m@@-5@&weight@t@@*@@@'[@'[@'D@@ఐ堐!i$%@Ͱ@@@Q@@@@@9R@@ఐ⠐!j23@˰@@E_@@ఐ͠&weight?@@@6k@@@@@@@'Y@'vq@ డ]aUVAA@@ J@@@'Y@'@@@'@t@@@'@@@@'@@'@@'@@'@@డ:;(} A*A@@.@@@'Z@'Z@'@@@'@@@@'@@'@@'@@ఐs!mI@WK@@@&states@AR@@*@@@'[@'[@'@@ఐz!i@b@@@@h@@@9@@ఐw!j  @`@@@@ภ$Some@ఐZ%state@@@ @@ @@Y@' @@@@#@@@'Y@'@ డeY^!7AXA@@XY@'@@@'@@@@'@ U@@@'@@'@@'@@'5@@డ"!&נ&ذ$+A&A@@*@@@'Z@'Z@'@@@'@@@@'@@'@@'Y@@ఐ!mE;"@G@@_g@$diffA#B'@ذN@@I*@@@'[@'[@'v@@ఐ!iV)W*@@@r@@d@@@9@@ఐ!jd-e.@@@w@@ఐ$diffq3{@|@@w@@~}@@@@@'Y@'@ภT~9=H@S@I@@S@@@'@M@@@0N@@@O@@@YPA@R@( W@A@T@TS@j@ఠ(shape_atAGAO@RA@@@ >@@@(OR@( @ 4@@@(HR@(@ =@@@(8R@(`@@@(~V@(@@@(R@(@@(R@(@@(R@(@@(R@( 3@@@@@@࣠@#tblAAPAS@SA@@43@AAC@@@@@  @@!iAATAU@TA@@?3@!K@@@@@@@@!jAAVAW@UA@@G3@S@@@@@@@@P$let+Z^Zb@v@M <@@@(yU@(gU@(#V@(!@@@("V@('@@ bU@($@@(%Ph@@@(V@(&@@((@@()V@(డ 6 5 : :.Zh/ZzA 4A@@ 4}0@@@(TU@(MU@(-@@@(/@ @@@(.@@(,@@(+3-,,-----@O[@R@S@@@@డ ^ ] b b(VZvA [*A@@ [ b.@@@(9V@(RV@(=@@@(?@ @@@(>@@(<@@(;'@@ఐ#tblIwZk@K@@5@&states}Zl~Zr@ R@@ *@@@(IW@(PW@(KD@@ఐ!iZtZu@@@Q@@h@@@9R@@ఐ!jZxZy@\@@_@@vu@@n`@@@"stZcZe@VA@@l@@@@ఠ!l~~@WA@@ @@@(bW@(W3@ @@@@@డA%Array&length~~@ ~~@@ F@@@ F@@@(fW@(\@@@([ F@@@(Z@@(Y&@@ఐL"st~~@2@@5@$line~~@ * @@ l&@@@(cX@(hX@(eD@@5 @@HE@A@ ~ @@@ఠ!c@!XA@@ z@@@(tW@(i3@[ib@c@d@@@డ%Array&length-.@ 12@@ @@@ [@@@(xW@(n@@@(m @@@(l@@(k&@@ఐ"stOP@@@C5@&columnVW@  @@ Ơ&@@@(uX@(zX@(wD@@5 @@HE@A@c @@ຠ론!lmnAఐ @V@@@@(V@(3cbbccccc@^le@f@g@@@!cAఐx @@@@@(V@(@@@@@w@0@@xv@@@y@A@@3~}}~~~~~@Q@@@A@R@(@A@@@۠@ఠ*real_shape @YA@@@ N@@@(R@(Y@@@)fR@(@@(R@(3@(!@"@#@@@࣠@#tblA@ZA@@3@)'@@@@@  @@@ఠ%linesŠ@[A@@ #ref @@@(T@(@@@(T@(3@&2D@)@*@@@డk#ref@@!a@"@@@g@@f,%makemutableAA @@@ dd d@@ @@@@*1-@@@(@@((@@ఐ`#tbl"#@4@@x7@%lines)* @  @@B>@@3@@L?@A@.@@@ఠ'columnsƠ9:@F\A@@^2@@@(T@(@@@(T@(310011111@[sl@m@n@@@డ#refT!U$@Z@@@x@@@(@@(@@ఐ#tbli%j(@{@@$@'columnsp)q0@  @@/+@@ @@5,@A@u@@ !i4<4=@@@@@4@4A@@@@@(T@(3wvvwwwww@G[T@U@V@@@ఐؠ#tbl4E4H@@@@%lines4I4N@ 6 @@@@@(T@(@@!jR\R]@@@@@R`Ra@@@@@(U@(3@2G R@@@(T@(T@(@48@@]A@@@ఐ#tblReRh@@@,@'columnsRiRp@ s @@@@@(U@(&@@%let*!t|t@@@@@(V@(W@(@@@(W@(@@ @@@(W@(@@(@@@(W@(@@(@@(W@(ఐ(shape_attt@_@@@ @@@(@ @@@(@ @@@(Z@@@(@@@(@@(@@(@@(3@q @@@(U@(U@(@:RX;@@G^A@@@@ఐ#tblGtHt@Y@@@@ఐ֠!iTtUt@@@(@@ఐ!jatbt@2@@25@@O@@s@@@(W@(<@l@@%paramঠ!lxtytAఠɠ@_A@@@@(T@!cttA ఠʠ@`A@@@@(e@@@tt@@h@@@ డ!>@@!a@@a@@@0@@/@@.,%greaterthanBA_@@@@^_@@]T@@@@O@@@)X@(@@@@(@@(@@(3@PM@O@N@=@?@>@@@@ఐX!l@@@@@డX!!@@ !a@@@@i@@h'%field0AA@@@@@@@@@CY@) @@@) @@) <@@ఐ4%lines'@ư)@@4@@@)Z@)Z@)P@@3 @@Q@@C @@Q@@@)Y@)W@డ":=)*@@M!a@@@@m@$unitF@@@l@@k@@j*%setfield0BA@@@@@@@@@@i1@@@)'X@)@@@)@@@@)@@)@@)@@ఐ%linesbc@@@@@@)%Y@)(Y@)&@@ఐ!lwx@@@-Y@))@@@@@@@)+X@)*Y@)$@@@@ @డ@@@@@@@)9W@)0@@@@)/@@).@@)-@@ఐ!c@ް@@@@డ)ѠӰ@а@@@۠*X@)<@@@)=@@);@@ఐ'columns@=@@@@@)BY@)EY@)C @@  @@@@/ @@@@@)FX@)8@డW@@@@ @@@)XW@)K@@@)L@@@@)J@@)I@@)H/@@ఐɠ'columns  @t@@(@@@)VX@)YX@)WD@@ఐ!c @K@@,X@)ZR@@@@@@@)\@)[X@)UZ@@ $@@ \@@@@@@(`@A>@@j@@@)^V@)]3        @@@@@p@@@)`U@)_3        @v@@@m@v@@@)bT@)a3 $ # # $ $ $ $ $@@@@ຠá!l E  F @డik O P@h@@@s@@@)hS@)k@@@)l@@)j"@@ఐ%lines g@@@@@@)qT@)tT@)r6@@# @@7@񡠐!c x y@డ  @@@@@@@)zS@)}@@@)~@@)|U@@ఐa'columns %@ @@@@@)T@)T@)i@@# @@j@@@  @@l@@@m@4@@a@|@@@A@R@)@A@@@@ఠ$make̠ )/ )3@ aA@@@ h@@@)R@)g@@@)R@)@@)R@)3        @,%@&@'@@@࣠@+Aঠ!l )6 )7@ aఠ%linesΠ ): )?@ bA@@v@@@)3        @!7 )+ 27@@@@!c )B )C@ wఠ'columnsϠ )F!)M@! cA@@@@@)@@@!)4!)O@@HT@) @@@@Р&states!RX!R^@డ%Array+make_matrix!%Ra!&Rf@ !)Rg!*Rr@@@.@@@$M@4@@@$L@!a@$NR @@@$K@@@$J@@$I@@$H@@$G@Q  Q  @@G@)$@@@!@@@)@ @@@)@@@@)@@@)S@)S@)S@)('@@@)@@@)@@)@@)@@)3!X!W!W!X!X!X!X!X@@@xq@r@s@@@@డ!+!Rz!R{@@#intA@@@~@@@@} @@@|@@{@@z'%addintBAA@@@@@0++A0+,@@?n@@@@@@@)@@@@)@@@)@@)@@)=@@ఐҠ%lines!Rt!Ry@F@@8@@@)U@)U@)Q@@A!R|!R}@@@@@@)U@)U@)a@@!Rs!R~@@@@@)@)U@)k@@డ Wfh!R!R@e@@@e@@@)@b@@@)a@@@)@@)@@)@@ఐ'columns!R"R@@@@@@)U@)U@)@@A"R"R@@@@@)U@)U@)@@"R"R@@@@@)@)U@)@@ภ$None",R"-R@@@@S@)@@ @@nm@@@)@@@)T@)@ӡ&weight"B"C@డ %Array+make_matrix"Q"R@ "U"V@@,@@@,@@@* @+@@@* @@@@*S@*MS@*JS@*/.@@@*@@@*@@*@@*@@*@@డ ""@@@@@@@*!@@@@* @@@*@@*@@*"@@ఐ%lines""@+@@@@@*-U@*/U@*.6@@A""@@%@@@*,U@*1U@*0F@@""@@@@@*@*2U@*+P@@డ!<KM""@J@@@J@@@*8@G@@@*7F@@@*6@@*5@@*4k@@ఐ堐'columns""@s@@f@@@*DU@*FU@*E@@A""@@n@@@*CU@*HU@*G@@"#@@@@@*@*IU@*B@@డ!'max_int##@@@@@Z11Z11@@t@  @@@@ @@@?@@@*@@@)T@*@$diff#/#0@డ!%Array+make_matrix#>#?@ #B#C@@@@@@@@*d@@@@*c@YX@@@*[@@@*ZS@*S@*S@*b @@@*a@@@*`@@*_@@*^@@*]@@డ!#r#s@@@@@@@*{@@@@*z@@@*y@@*x@@*w@@ఐ%lines##@@@@@@*U@*U@*'@@A##@@@@@*U@*U@*7@@##@@~@@@*u@*U@*A@@డ"-<># # @;@@@;@@@*@8@@@*7@@@*@@*@@*\@@ఐ֠'columns## @d@@W@@@*U@*U@*p@@A# #@@_@@@*U@*U@*@@##@@@@@*t@*U@*@@ภ$None$$@@@@S@*@@@@@@@*Y@@@*XT@*r@'columns$#)$#0Aఐ" @@@@@*S@*@%lines$+$,!AఐP @@@@@*S@*@@@$9RVJ@@t@4KA@~R@*R@A@O@ON@s@ఠ'reshapeѠ$I9?$J9F@$VdA@@@ @@@*R@*@@@@,;R@*@@@+R@*@@*R@*@@*R@*3$M$L$L$M$M$M$M$M@@@@@@࣠@Aঠ!l$u9I$v9J@ ఠ%linesӠ$}9M$~9R@$eA@@@@@*3$m$l$l$m$m$m$m$m@!@$9;$@@@@!c$9U$9V@ ఠ'columnsԠ$9Y$9`@$fA@@@@@*@@@$9G$9b@@QT@* @@@@!mA$9c$9d@$gA@@X3$$$$$$$$@0<5@6@7"@@@@@@  @@@ఠ$copy֠$go$gs@$hA@@@q@+U@*@ՠڠU@+|@@@+U@+@@@+U@*@@@+ W@*@@@*U@*@@*U@*@@*U@*3$$$$$$$$@<H@?@@@@@࣠@'defaultA$gt$g{@%iA@@43$$$$$$$$@A%gk% &@@@@@  @@!aA%g|%g}@%jA@@A3$$$$$$$$@!K@@@@@@@@డ#%Array$init%%%&@ %)%*@@@.@@@$F@@6@@@$E!a@$ @@$D]@@@$C@@$B@@$A@G  G  @@F@#@@@@@@*@@@@@*n@@*rq@@@*@@*@@*3%A%@%@%A%A%A%A%A@FR@I@J@@@@డ#砐%f%g@@@@@@@*@@@@*@@@*@@*@@*3%_%^%^%_%_%_%_%_@@@@@A%~@@@@@+Y@+Y@+@@ఐ%lines)%@ܰ+@@ @@@+Y@+Y@+#@@%%@@q@@@*@+Y@*-@@࣠@!iA%%@%kA@@~@@@+ B@@@@డ$5%Array$init%%@ %%@@@@@@@@+@@@@@+@@+@@@+@@+@@+3%%%%%%%%@7@@@+ @1@2@@@@డ$bqs%%@p@@@p@@@+)@m@@@+(l@@@+'@@+&@@+%3%%%%%%%%@!@@@@A&@@@@@+5[@+7[@+6@@ఐ'columns)&@e+@@@@@+4[@+9[@+8#@@&$&%@@@@@+#@+:[@+3-@@࣠@!jA&;&<@&HlA@@@@@+?B@@@@డ$"&&&O&P@@@@@K@ @@@J@@@I@@H@@G(%sequandBA@@@@ @@ ]@@@@@@@+G@@@@+F@@@+E@@+D@@+C3&b&a&a&b&b&b&b&b@GE@@@+>@A@B@@@@డ$"<=&&@@!a@@H@@@3@@2@@1*%lessequalBAF@@@@E))F)Z@@DU@@@@q@@@+a\@+X@@@@+W@@+V@@+U7@@ఐ !i&&@۰@@D@@ఐ!m&&@ܰ@@rS@%lines&&@e @@-]@+c\@@@@@@@+S@+e]@+`d@@డ%Z"<=&&@^@@@@@@+s\@+j@_@@@+i@@+h@@+g@@ఐʠ!j''@@@@@ఐf!m''@$@@@'columns''@ @@-]@+u@@@@@@@+R@+w]@+r@@l @@\@@@+x\@+Q@డ%?>C&C&'7'8 A=A@@=c@@@+~@@@@+}i@@+{@@+z@@డ%\[`'`''TAYA@@Y@@@+@@@@+@@+@@+@@ఐ_!a4'k@6@@@@ఐɠ!i'w'x@@@ @@@+]@+]@+@@K.@@ @@ఐT!j' ' @@@@@@+\@+\@+@@`_@@@ఐ'default' ' #@@@)@'@@+@'' $@@@v@@@+"@@+!Z@+Z@+@@ @@@'@@@@@@*@@*X@+X@+F@@@@G@A@U@+@A@@Р_&states'*0'*6@ఐ$copy'*9'*=@@@@@@@@@+@@@+T@+T@+T@+@@@@+@@@+@@@+@@@+@@+@@+3''''''''@ <%@@@@ภ$None(*>(*B@@@@-T@+@@ఐj!m(*C(*D@(@@@&states(*E(*K@ @@$'O@@@+@@@+U@+U@+2@@X@@hgT@@@+@@@+U@+=@͡&weight(<MS(=MY@ఐ$copy(GM\(HM`@s@@@i@@@+T@, T@,T@+@X[@@@+@@@+}@@@+@@@+@@+@@+n@@డ&'max_int(qMa(rMh@_@@&{@@ఐՠ!m(Mi(Mj@@@)@&weight(Mk(Mq@ @@H@@@,@@@,U@, U@,@@P@@M@@@+@@@+U@+@7$diff(sy(s}@ఐ$copy(s(s@ް@@@@@@,@@@,T@,@T@,4T@,!@Ǡʠ@@@,#@@@,"@@@, @@@,@@,@@,@@ภ$None(s(s@@@@+T@,5@@ఐE!m(s(s@@@@$diff(s(s@ @@M@@@,1@@@,0U@,@@@)8*.@@@@7@@M@A@R@,S@A@@@ڠ@ఠ"ppݠ)I)J@)VmA@@@ s&Format)formatter@@@/R@,U@@@@.R@,Z#@@@/R@,[@@,\R@,V@@,WR@,T3)Q)P)P)Q)Q)Q)Q)Q@%@@ @@@࣠@#ppfA)v)w@)nA@@)3)c)b)b)c)c)c)c)c@6)~)@@@@@  @@!mA))@)oA@@03)w)v)v)w)w)w)w)w@!@@@@@@@@@@ঠ!l))A$ఠ@)pA@5@@@,c3))))))))@)O@ @!@@@!c))A3ఠ@)qA@=@@@,f@@@))@@f@@@,g@ఐ%shape))@@@@q@@@,kz@@@,j@@,i.@@ఐ[!m))@8@@;@@@@@@@,tV@,qA@A@) @@ డ(j&Format'eprintf))@ **@@@&Stdlib&format!a@ I@@@Ԡ$unitF@@@@@@@@@*format.mli@@.Stdlib__Format@)$@@@!@%@@@,@%@@@-1$|@@@-{U@,U@,U@-@@-0U@,@@,U@,x@@@,z/@@@,{@@@,y @@,w3*3*2*2*3*3*3*3*3@@@@@@@@@ภ$/*$.**Z*[ A$-ภ$:*"#0*# #/(Shape : @@#@@@,V@,V@,&@ภ$N*6$*7#ภ$V*>#*?'#@'@#@@@,V@,;@ภ$c*K#*L4#@4@#hW@,ڠlU@,V@,@@@,V@,N@ภ$v*^#*_G#@G@#z@@@,V@-]@ภ$*m#{*nV#z", [@[@#_@@@-V@-V@-q@ภ$*$K*j$Jภ$*#*r#@r@$&@@@--V@-6@ภ$*#*#@@$-W@-U@-?V@-@@@-.V@-;@ภ$*#*#@@$8@@@-/V@-B@ภ$*.Formatting_lit*;.Formatting_lit$!a@!b@!c@!d@!e@!f@@@@@$.formatting_lit@@@$͠($ @@@@BQAYAA$)()($))@@@$q@ภ%*-Flush_newline*;-Flush_newline@@@$@@@DGC@A$ W Y$ W h@@@%C@@@)@@@-SV@-X@ภ%)+#+#@@$*U@,U@,U@-U@-,U@-RW@-D@@@,V@,V@,V@,V@-V@-+V@-Q@@@-TV@-b.@@@%"E#$%&@@@-2V@-P9@@*@%-WW@-"-./0@@@-V@-*E@@6@%9c+6789@@@,V@-P@@A@%DuW@,Ġ5@ABC@@@,V@,\@@M@%PW@,?tuvw@@@,V@,h@0Shape : %i, %i@.^@^@%W@@@,V@-eV@-dt@@ed@@U@@@,V@,}@@ఐ*!l+ + @@@V@-y@@ఐ%!c+ + @@@V@-z@@@@U@,@!i++@@@@@++@@*@@@-}T@-|@ఐ]!l, ,!@@@*@@@-T@-~@@ !j,%/,%0@@@@@,%3,%4@@+@@@-V@-3, , , , , , , , @=@@@.T@.T@-@,/@@,;rA@@@ఐ}!c,8%8,9%9@@@+3@@@-V@-@@@ఠ!d,J=I,K=J@,WtA@@QP@@@-@@@-X@-3,@,?,?,@,@,@,@,@@4I@@@.V@.V@-@,b%+,c@@,osA@@@ఐ蠐$diff,n=M,o=Q@ְ@@@@@@-@@@@-@ @@@-@@@-@@@-@@-@@-@@-0@@ఐ !m,=R,=S@@@6=@@ఐ!i,=T,=U@z@@zJ@@ఐ!j,=V,=W@T@@TW@@A@@_X@A@,=E@@ఐp!d,[i,[j@o@p@q@@@@@-@@@-3,,,,,,,,@o @@@Ġ$None,pz,p~@@@@@ՠ@@@-@@@-3,,,,,,,,@@@@ @ݠ@@@-@@@-@@@డ+^&Format'fprintf,,@ ,,@@@@@@@&format!a@ T@@@ˠ@@@@@@@@@@@.....k@@@'"@@@@@@-@'c@@@/W@-Y@-Ơ@@@-Ƞ @@@-@@@-@@-@@-V@@ఐȠ#ppf-;-<@@@c@@ภ'-'--I-JA'ภ')-&- &$ @@&@@@.$Z@.'Z@.&@ภ'=-%%-&%@@'OY@.Y@.#[@.#@@@-Z@.Z@."  @@@.%Z@.1@@6@'([@-@@@.Z@.!@7F@F@'.@@@.Z@.4Z@.3@@ML@@z&z@@@-Z@.@@U@@~W@-@Ġ$Some--@ՠఠ$diff--@-uA@@@@@-@@@@@@@@-@@@-@@Ġ@@@-@@@-@@@@ఠ%sdiff--@-vA@@,@@@.Z@.H3--------@/(@)@*@@@ఐ5$diff--@ @@@@@.J@Ġ&Insert--@"@--@@!U@@@.^&@@@ @@@@@._*@@@@@.`-@@@#←.. @@.. @@<7@Ġ&Delete..$@"W@.#%.$&@@!@@@.tK@@@ @@&@@@.uO@@)@@@.vR@@@#↑.4+.53@@.7*.84@@a\@Ġ$Keep.C5E.D5I@"@.H5J.I5K@@!@@@.p@@@!@@@.u@@ @!@@@.z@@@@@U@@@.~@@X@@@.@@@#↖.c5P.d5X@@.f5O.g5Y@@@Ġ&Change.rZj.sZp@"j@.wZq.xZr@@!@@@.@@@!@@@.@@ @!@@@.@@@@@@@@.@@@@@.@@@#⇱.Zw.Z@@.Zv.Z@@@@@A.@@@A@.@@@ఠ!w..@.wA@@@@@.Z@.3........@@@@@@ఐF&weight..@4@@@^@@@.@P@@@.@U@@@.@@@.@@.@@.@@.!@@ఐR!m..@/@@~.@@ఐ!i..@°@@;@@ఐߠ!j..@@@H@@=@@LI@A@.@@డ-t&Format'fprintf//@ / / @@@@@@@@.@@(@@@/d@*@@@/ Y@/ Y@/LY@/n@@/Y@/O@@/cY@.@@@.%@@@.@@@.@@.@@.3////////@@@@@@@ఐР#ppf/C/D@@@@@ภ)&/)%//Q/RA)$ภ)1/&String/ ;&String)!x@9!b@:!c@;!d@@@@!a@A@(ؠ'@o@@@@@@@@)8.*&"@@@@BBAYAA)/)0Z|@@@)hb@ภ)|/d(/eV(@V@([@/Q@@@/bZ@/lx@ภ)/t)>/uf)=ภ)/|(/}n(@n@)@@@/Z@/@ภ)/(/{(@{@) [@/pY@/Z@/m@@@/Z@/@ภ)/(/(@@)+@@@/Z@/@ภ)/,Char_literal/;,Char_literal)!a@!b@!c@!d@!e@!f@@@@@$charB@@@))%!@@@@BLAYAA)%%)%%@@@)l@`@@@@/Z@/Z@/@ภ*/(/(@@)Y@/aY@/Y@/[@/@@@/ Z@/KZ@/`Z@/Z@/@@@/Z@/!@@@*5@@@/Z@/,@@@* G$%&'@@@/eZ@/7@@@*Z[@/+'LMNO@@@/MZ@/_C@%%s%i .@.@*@@@/NZ@/Z@/O@@54@@s=b@@@/ Z@/JX@@ఐĠ%sdiff00@@@Z@/g@@ఐ!w00@q@@Z@/v@@@@Y@/x@@@@@@@@@A0[c @@@ @@\@R@*@@@/V@/300000000@@@@డ/4&Format0pp_print_newline00@ 00 @@@}@@@q@@@@p@@@o@@n@@m@BeBeBeB@@m@@@@@@@/@@@@/@@@/@@/@@/7@@ఐ#ppf0 0@k@@D@@ภ(ڰ11@(@@@4@@@/V@/T@@G@@+M@@@/U@/Z@@@[@@300000000@@@@@@@*@@l@A@R@/@A@@@@""A@"d"^A@!=@@"t@@@@ @\m@w@e@ @ @@@@@31"1!1!1"1"1"1"1"@@@1<QW1=!@%31(1'1'1(1(1(1(1(@"@@@%shapeR;@@!l@@1@@@/1Ph  1Qh  @@1]yA!c@@1@@@01\h  1]h  @@1izA@@A@@@@@1`h  1ah  @@@@1mxAA@!tS;@@'7A@@@@@1ij  1jj  @@@@1v{AA@$make@3@@@0@@@0@@0@1|l  1}l  $@@1|A@'reshape@F@@@0@*@@@0.@@@0@@0@@0@1m % '1m % F@@1}A@$diff@=@@@0@1k@@@0@1q@@@00%@@@0@@@0@@0@@0@@0@1p d f1p d @/4 accessor functions 1o H J1o H c@@@@@@@1~A@%state@o@@@0@1@@@0 @1@@@0!10$)@@@0"@@@0$@@0%@@0&@@0'@1q  1q  @@1A@&weight@@@@0(@1@@@0)@1@@@0*1@@@0+@@0,@@0-@@0.@2 r  2 r  @@2A@$line@@@@0/@1@@@00@1@@@011s%$left@@@02@@@04@@05@@06@@07@2/t  20t  @@2<A@&column@@@@08@2@@@09@2 @@@0:1%%right@@@0;@@@0=@@0>@@0?@@0@@2Tu  2Uu  G@@2aA@#set@@@@0A@2*@@@0B@20@@@0C$diff1%@@@0D@@@0F&weight2E@@@0G%state$@@@0H2(@@@0I@@0J@@0K@@0L@@0M@@0N@@0O@2w I K2|  @@2A@%shape@8@@@0P^@@@0Q@@0R@2  2 @0䐠 , the shape when starting filling the matrix 2~  2~  @@@@@@@2A@(shape_at@Y@@@0S@2@@@0T@2@@@0U2@@@0V@@@0X@@0Y@@0Z@@0[@2|~2|@1 l [shape m i j] is the shape as seen from the state at position (i,j) after some possible extensions 2 2w{@@@@@@@2A@*real_shape@@@@0\@@@0]@@0^@22@17 ' the maximal shape on the whole matrix 33@@@@@@@3A@"pp@1&Format)formatter@@@0_@@@@0`2@@@0a@@0b@@0c@3 3!O@1a3 debugging printer 3.3/@@@@@@'warning3536%@#-323A'3B*@@3D&3E+@@@@@@3H3I,@@3UA@@БA+3Vh  3Wh  @@@# 3]h  @ @@Ш@г#int3fh  3gh  @@33Q3P3P3Q3Q3Q3Q3Q@$';@@@A@@@@@ @@@ @A@@$@@0@ @#3sh  @@@Ш@г#int3|h   @@&!@@)@@0@%@@A@!@@33i3h3h3i3i3i3i3i@$@A"!@A+""3j   @@#@@A@"@@33s3r3r3s3s3s3s3s@$IG@A$#@##3l  3l  @б@г$%shape3l  3l  @@,333333333@<:@A@@г+!t3l  #,@@2 -@@9 .@@;@0/@@ 1//3m % +3m % 2@б@г0%shape3m % 53m % :@@8333333333@ RP@A@@б@г7!t3m % ?3m % @@@? @@г@@J ?@@Q@@@S@BA@@CAA3p d j3p d n@б@гB!t3p d q3p d r@@J333333333@,jh@A@@б@гI#int3p d v3p d y@@Q @@б@гN#int3p d }4p d @@V@@гS&option4p d O@гW&change4p d 4p d @@_)@@@d*Z@@k+[@@r,"\@@y-0]@@{@_^@2W3ڐ^]@]]@@@]@]@:k[[4)q  4*q  @б@г\!t43q  44q  @@d344444444@M@A@@б@гc#int4@q  4Aq  @@k @@б@гh#int4Kq  4Lq  @@p@@гm&option4Tq  i@гq*full_state4\q  4]q  @@y)@@@~*t@@+u@@,"v@@-0w@@@yx@@/zxx4jr  4kr  @б@гy!t4tr  4ur  @@34_4^4^4_4_4_4_4_@B@A@@б@г#int4r  4r  @@ @@б@г#int4r  4r  @@@@г#int4r  @@ @@! @@"@@#&@@@@@%4t  4t  @б@г!t4t  4t  @@344444444@8@A@@б@г#int4t  4t  @@ @@б@г#int4t  4t  @@@@г&option4t  @г4t  4t  @@(@@@)@@*@@+!@@,/@@@@@.4u  4u  %@б@г!t4u  (4u  )@@344444444@A@A@@б@г#int4u  -4u  0@@ @@б@г#int5u  45u  7@@@@г&option5 u  A@г°5u  ;5u  @@@(@@@)@@*@@+!@@,/@@@@@.ȠƠư5!w I O5"w I R@б@гǠ!t5+x U Y5,x U Z@@355555555@A@A@@б@гΠ#int58x U ^59x U a@@ @@б@гӠ#int5Cx U e5Dx U h@@@@бг֠&option5Ny l |5Oy l @г۠&change5Wy l u5Xy l {@@,@@@- @@бгޠ#int5cz  5dz  @@8@@бг᠐*full_state5n{  5o{  @@C@@г栐$unit5w|  @@K@@L5z{  @@N5|z  @@P5~y l p@@R=@@SI@@%TW@@'@@@V5  5  @б@г!t5  5  @@35~5}5}5~5~5~5~5~@i><@A@@г%shape5 @@ @@ @@ @@35d@@@@@@ 5|5|@б@г!t5|5|@@355555555@+,*@A@@б@г#int5|5|@@  @@б@г#int5|5|@@@@г &option5| @г%shape5|5|@@)@@@*@@%+@@,,"@@3-0@@5@@4-5@@@@@@:%56@б@г!t6 6 @@355555555@MWU@A@@г%shape6@@$ @@+  @@-@"!@4W5ڐ! @  @@@ @ @.6)-6*/@б@г!642658@$68969B@@@-36$6#6#6$6$6$6$6$@1US@A @@б@г)!t6FF6GG@@1 @@г.$unit6OK/@@50@@< 1@@F2@@H@43@4632@22@@@2@2/.+*@'$@@@$@#@/K@)36S6R6R6S6S6S6S6S@0ca@A,36U6T6T6U6U6U6U6U@'@@6nf  6oQT@@J@K@C@E@D@A@B@G@F@H@I@L@@@6f  N@K@@6f  P@Q@"@ఠ2select_final_state66@6A@@@(SA@@@2T@1@5@@@3T@3 @5@@@3T@3@@3T@1@@1T@1366666666@( (h@}{A@][A@VT@EC@.,@@@@@yw@?=@ @@@@@O(@@@࣠@"m0A66@6A@@H366666666@0U66$@@@@@  @@@ఠ+maybe_final66@7A@@@@@@2dV@1@@@@2vV@1@@@2RV@1@@1V@1@@1V@1366666666@.:x@1@2@@@࣠@!iA7$7%@71A@@%377777777@27,7-H[@@@@@  @@!jA7879@7EA@@037%7$7$7%7%7%7%7%@!<@@@@@@@@డ((shape_at&Matrix7P7Q@ 7T7U@@@@@@2@@@@2@@@@2)@@@2@@@2@@2@@1@@1@ @@@@@@2@@@@2@@@@2@@@2@@@2@@2@@2@@237o7n7n7o7o7o7o7o@KW}@N@O@@@@ఐ"m077@}@@@@ఐ!i77@d@@@@ఐx!j77@'@@*@@a@@J@@@2%@@@2$2@Ġ$Some7 7 @&ఠ*shape_here7 7 @7A@@e@@@22L@@@@@l@@@24@@@23T@@s@@@26@@@25[@@@డ6[7 47 6@@@@@@@2H@@@@2G@@@2F@@2E@@2D377777777@t4-@.@/@@@@డ6y!=8 08  1@@!a@@'@@@'@@&@@%&%equalBA'à@@@@'y'y@@'Q@@@@ [@2Y@@@@2X@@2W@@2V1@@ఐk*shape_here86 #87 -@=@@@@@2e@2cE@!l8B .8C /@3@@@1@@@1@@@3@@@1@@A@A@@A@@@LX@@ఐ:!i8[ 28\ 3@@@[e@@)@@@@@2T@2f\@2am@@డ6jl8q D8r E@i@@@j[@2k@g@@@2j@@2i@@2h@@ఐ*shape_here8 78 A@@@$@@@2w@2u@!c8 B8 C@K@@@@ఐm!j8 F8 G@@@@@@@P@@@2S@2x\@2s@@x @@@Ġ$None8HN8HR@'y@@@@T@@@2>@@@2=<@@[@@@2@@@@2?C@@@ภ%false8HV@;8u8@@@M@@@@B@@A8@@8x@@@Q@@@A8@@388888888@S@@@A@V@2@A@@@ఠ*best_state8ag8aq@8A@@@@@@@2V@2@@@@2V@2@@@@2V@2@@2V@2@@V@2@V@2@@2V@2@)V@2̠@&V@2͠@#V@2@@2V@2@@2V@2@@2V@2399999999@3,@-@.@@@࣠@4 A@ఠ"i09;as9<au@9HA@@J39(9'9'9(9(9(9(9(@]9Cac9D@@@@@ఠ"j09Mav9Nax@9ZA@@U@@ఠ'weigth09Yay9Za@9fA@@Z@@9^ar9_a@@@o@j@e@@2)@@  @@4 A@ఠ!i9wa9xa@9A@@i39d9c9c9d9d9d9d9d@?H@B@C7@1@2,@&@'@@@@ఠ!j9a9a@9A@@x@@9a9a@@@@@@2@@ @@@ఠ&weight 99@9A@@@@@2Y@2399999999@3<@6@7*@$@%@@@డ+c&weight&Matrix99@ 99@@@%@@@1@@@@1@@@@1@@@1@@1@@1@@1@@̰@@@8@@@2@@@@2@@@@2@@@2@@2@@2@@2?@@ఐ"m099@߰@@WL@@ఐ!i::@U@@Y@@ఐ!j::@a@@f@@U@@jg@A@:@@డ8)ݠ)߰:: @)ܰ@@@#V@2X@2@)@@@2@@2@@23::::::::@@@@@@@ఐ&weight:9::@ @@@@ఐ'weigth0:F:G@ǰ@@F@@@@)@@@2Y@2#@@ఐ㠐!i:Z:[@@@K1@@ఐܠ!j:f:g@@@S=@@ఐϠ&weight:r:s@F@@pI@@:v:w@@@j@h@{@@2T@@ఐQ"i0::@@@c@@ఐK"j0::@@@o@@ఐK'weigth0::@%@@{@@:e@@3X@2@:i@@5@j@@6@QkA@V@2r@A@o@@ఠ#res ::@:A@@@9@@@2V@2堠@9@@@2V@2栠@@@@2V@2@@2V@2@@@2V@23::::::::@@@@@@డ9[#ref::@@@@+.@@@2@@2@@@@:: @@4"@@@; ; @@5*@@డ9'max_int; ;@@@:6@@;;@@SV@2;@@0@@Y<@A@;@@@ఠ%shape ;&;'#@;3A@@@@@2V@23;;;;;;;;@Rzs@t@u@@@డ,%shape&Matrix;?&;@,@ ;C-;D2@@@@@@1@@@1@@1@ @@@@@@2@@@2@@2)@@ఐ"m0;b3;c5@L@@6@@'@@:7@A@;g@@ !i;r9?;s9@@@@@@;y9C;z9D@@:s@@@2V@23;i;h;h;i;i;i;i;i@R`Y@Z@[@@@ఐf%shape;9H;9M@ @@'@@@3@2@!l;9N;9O@V@@:@@@3V@2 @@!j;S[;S\@@@@@;S_;S`@@:@@@3W@33;;;;;;;;@7L:@@@34V@3NV@3lV@3@;9;;@@;A@@@ఐ%shape;Sd;Si@O@@j@@@3 @3!@!c;Sj;Sk@@@:@@@3 W@3-@@ఐ+maybe_final;ox;o@ư@@@ @@@3@ @@@3@@@3@@3@@33;;;;;;;;@I^:@@@35W@3OW@3mW@3 @< SW< @@<A@@@@ఐ!i<o<o@b@@b@@ఐ!j<%o<&o@'@@'*@@;@@+_@@@3!Y@30@డ:<6<7@ @@@Z@@?@3@@@36@@33X@3&@@@3'@@@@3%@@3$@@3#S@@ఐ#res<[<\@,@@'@@@31Y@37Y@32h@@ఐ*best_state@@3@@@@@@3?@@@@@3;@@3:@@39@@డ;<<@@@@Ǡ@@@qX@3P@@3RZ@3bZ@3U@@@3V@@3T@@ఐ #res <@"@@"@@@3[[@3a[@3\@@, @@$@@@ఐm!i<<@'@@'@@ఐC!j<<@@@@@<<@@@8@@@3QZ@3n@@ @@X@3M@@ @@7=@@@3pX@3oY@30@@=ou@@ @@7D@@@3rW@3q3<<<<<<<<@S@@@H@7J@@@3tV@3s3<<<<<<<<@@@@@@ఠ'i_final==@=+A@@<@@@3V@3v3========@@@@@ఠ'j_final=0=1@==A@@<,@@@3V@3w@@@===>@@,@@@3V@3x@@'@@@'@@@@3{&@డ;oq=U=V@n@@@ y@C@3@*@@3V@3V@3~@@@3 @@3}C@@ఐ#res=t@D @@  @@@3W@3W@3W@@* @@"X@A@= @@  డ;"||==@@-E@@@P@-K@@@O-O@@@N@@M@@L'%sequorBA-M@@@@-L-M@@-K^@@@@@@@3@@@@3@@@3@@3@@33========@:@@@@@@@@డ<:"<>==@@!a@@-@@@*@@)@@()%notequalBA-@@@@-~QQ-~Q@@-R@@@@<@@@3W@3@@@@3@@3@@36@@ఐڠ'i_final==@?@@C@@@>>@@ X@3N@@@@x@@@3@3X@3V@@డ<"<>> > @Q@@@=@@@3W@3@R@@@3@@3@@3q@@ఐ'j_final>3>4@y@@~@@@>= >> @@ X@3@@@@@@@3@3X@3@@>J>K@@-@@@3W@3@>R@@8@@@3V@3@@ఐE'i_final>c>d@@@@@ఐ?'j_final>o>p#@@@@@>s@@@Ƞ@@@3@)@@@@@U@@@ V@@@ O@d@@ @=@@ X@U@@ k@A@T@3@A@@@ˠ@ఠ/construct_patch>&*>&9@>A@@@@@@5T@3= @@@5e@@@5dT@3@@3T@33>>>>>>>>@ @ @@@@࣠@"m0A>&:>&<@>A@@ 3>>>>>>>>@->&&>@@@@@  @@Aఠ#aux>?I>?L@>A@@@>' $@@@58V@53@@@57V@3@@`@@@4V@3ߠ@h@@@5V@3@@3V@3!V@3@@3@@33>>>>>>>>@;G]@>@?@@@࣠@#accA??M??P@? A@@43>>>>>>>>@@@;@2@@3W@3@@3W@3@B@C@@@@@@:kA@ఠ!i??R??S@?+A@@?3? ? ? ? ? ? ? ? @+U@"@#@@@@ఠ!j?-?U?.?V@?:A@@F@@?2?Q?3?W@@@U@O@@3@@ @@డ=?F Zg?G Zi@@@@@@@3@@@@3@@@3@@3@@33???>?>??????????@6?w@9@:1p@+@,@@@@డ=_a?f Zc?g Zd@^@@@V@4V@4V@4V@4V@43V@46V@4V@3@i@@@3@@3@@3)@@ఐk!i? Za? Zb@2@@6@@@? Ze? Zf@@(?@@ @@F@@@3@4Z@4G@@డ>? Zl? Zm@@@@V@5V@4V@4V@4V@42V@47V@4V@4 @@@@4 @@4 @@4 k@@ఐ!j? Zj? Zk@s@@x@@@? Zn? Zo@@(@@ @@@@@3@4Z@4@@W @@/@@@4Y@3@ఐ#acc? u{? u~@ʰ@@@డ1$diff&Matrix? @ @ @ @ @@@ f@@@1@i@@@1@h@@@1gf@@@1@@@1@@1@@1@@1@ebT@@@ }@@@4!@@@@4 @@@@4~}@@@4@@@4@@4@@4@@4@@ఐ"m0@> @? @L@@@@ఐ-!i@K @L @@@k@@ఐ+!j@X @Y @@@p@@]@@@@@41@@@40 @Ġ$None@m @n @/.@@@@@@@4?@@@4>3@`@_@_@`@`@`@`@`@!@@@ @ɠ@@@4A@@@4@@@@ ภ@ @ @@@@@@@4R@@ @@@Ġ$Some@@@/ ఠ!d@@@@A@@@@@4HR@@@@@@@@4J@@@4IZ@@@@@4L@@@4Ka@@@@ఠ$next@@@@A@@@[@4@[@4@@4[@4S3@@@@@@@@@{5.@/@0@@@ఐ;!d@@@ @@,@@@4U@Ġ$Keep@ @@4@@@@@4P@@@4i(@@@4O@@@4j-@@ @4N@@@4k2@@@@@P@@@4l6@@6@Ġ&ChangeAA@5@AA@@4p@@@4yH@@@4o@@@4zM@@ @4h@@@4{R@@@@@p@@@4|V@@V@@9@@t@@@4~Z@@@@డ?!-A7"A8#@@O@@@@@@@`@@@@@@@'%subintBA0@@@@05,~,~05,~,@@0o@@@@g@@@4@@@@4w@@@4@@4@@4@@ఐK!iAi!3@4@@@@A:Ar$@@6@@@4^@4^@4@@ @@@@డ?OQA'A(@N@@@@@@4@N@@@4@@@4@@4@@4@@ఐr!jA&@F@@@@A"A)@@l@@@4^@4^@4@@ @@@@A A*@@@Ġ&DeleteA+9A+?@5@A+@A+A@@5 @@@4@@@ @@@@@4@@@@@4@@@@డ@MA+GA+H@@@@@@@4@@@@4@@@4@@4@@4@@ఐנ!iA+F@@@'@@A"A+I@@@@@4^@4^@46@@ @@$^@49@@ఐ堐!jB+KB+L@@@*E@@B+EB+M@@SH@Ġ&InsertB"N\B#Nb@67@B'NcB(Nd@@5~@@@4\@@@ @@z@@@4`@@}@@@4c@@@@ఐ !iB>NiB?Nj@@@^q@@డ@BKNmBLNn@@@@c@@@4@@@@4s@@@4@@4@@4@@ఐ8!jBeNl@ @@|@@A"BnNo@@2@@@5^@5 ^@5 @@ @@^@5@@BzNhB{Np@@@@@AB}@@@A@B@@ఐ#auxB~B~@@@@@@@5+@@5*3ByBxBxByByByByBy@@@@@@@ภ"::B~B~@@:ఐ!dB~ @հ @@@ఐ#accB~@@@"@@B~B~@@V@56'@@ఐ$nextB~B~@1@@V@5:6@@>@@7@I@@@@@AB @@S@B Z^ @@U@ A@@@@@5P@@5OV@5M@@@B?A@@ఐ#auxBB@ڰ@@@B83@@@5U@@@5T@@ @@@5W@@@@5X@@5V@@5S@@5R3BBBBBBBB@@@@@ภ"[]CC@@]@@@hV@5n@@ఐ z2select_final_stateCC@m@@@ u@@@5u@B@@@5s@B@@@5t@@5r@@5q/@@ఐ"m0C1C2@?@@<@@C5y@@@Y@@@5g@V@@@5h@@5fV@5W@5}N@@i@@O@t@@V@A@T@5@A@@@@ఠ7select_best_propositionCWCX@CdA@@@$listK3`@;@9Р@;@9@@9@@@9U@9@@@9T@5T@5@@5T@53CaC`C`CaCaCaCaCa@@@@@@࣠@!lACC@CA@@+3CsCrCrCsCsCsCsCs@8CC!@@@@@  @@@ఠ3compare_propositionCC@CA@@@3@;U@5V@5@@@5@@5V@5@@@5V@5@V@5V@5@@5V@5@@5V@53CCCCCCCC@6Bc@9@:@@@࣠@$curr!ACC@CA@@-3CCCCCCCC@:CC@@@@@  @@$prop"AC C$@CA@@*3CCCCCCCC@!D@@@@@@@@@ఐ-$currC'1C'5@@@V3CCCCCCCC@"B@@@@@@ఐ($propD'7D';@ @@N@@@@@j@U@@5@@Ġ$NoneD AGD!AK@2@@@@@53D D D D D D D D @*@@@@ఠ!o#D-AMD.AN@D:A@@v@5@@@@@@@@5@@@@!oDDAQDEAR@DQA@@@5&@@Ġ$NoneDRATDSAX@3@@@@V@5@54@@@@@@ @@5;@@;@@@ @@@@@@5B@@@ఐ@!oDmA\DnA]@?@@@A@@3DZDYDYDZDZDZDZDZ@xJ@@@@Ġ$SomeD^dD^h@3@ఠ&curr_m%D^jD^p@DA@@@@ఠ(curr_res&D^rD^z@DA@@@@D^iD^{@@@@@@5@@@'@@@5@@Ġ$SomeD^}D^@3ܠ@ఠ!m'D^D^@DA@@V@5@@ఠ#res(D^D^@DA@@V@5@@D^D^@@@@ @@5@@@*@@8@5@@^ @@@;@ @@5@@@A@@@5@@@ภ$SomeDD@4డCp"<=DE@t@@@S@Up@@@5@@5@@53DDDDDDDD@`@~@y\@s@tUN@O@PIB@C@D@@@@ఐ&curr_mEE@@@p@@ఐj!mE)E*@@@i#@@@@4c@@@5[@5)@@ఐ&curr_mE=E>@1@@7@@ఐ(curr_resEIEJ@<@@C@@@@V@5F@@ఐ!mE[E\@M@@U@@ఐ#resEgEh@X@@a@@@@ Z@5d@En@@"f@@@@g@@@AEq'+@@3E[EZEZE[E[E[E[E[@x@@@A@V@6 @A@@డC$List)fold_leftE!E!@ E!E!@@@@#acc@7g@!a@7i @@8@@8@ @< @@@8@@8@@8@@8@(list.mli333r@@,Stdlib__List]@% @@@@EU@9@I@@9@@9@@SP@@@9 @@9@@9@@93EEEEEEEE@"@@@@@@ఐ)3compare_propositionE!E!@ @@@5@a@`@@9@@@9@  @@9@@9@@ภ$NoneE!E!@4@@@{U@9,@@ఐk!lE!`@.a@@8@@nb@@E9@c@@F3@mdA@T@9k@A@h@hg@~)Full_coreuVE# E# @F AБA+-update_resultpTF$  &F$  3@@;@@;A@@@@@F$  !@@@@FA@@A@@@3EEEEEEEE@@@@A @A+,update_stateqUF!% 4 =F"% 4 I@@;@@;A@@@@@F%% 4 8@@@@F1A@@A@@@3FFFFFFFF@@A@&weightrF2& J RF3& J X@б@г9&changeF=& J ZF>& J `@@ @@@93F+F*F*F+F+F+F+F+@'!@A@@гF #intFL& J dFM& J g@@ @@@9@@@@@9@@@FW& J N @@FcA@ @@$testsFb' h pFc' h t@б@г9%stateFm' h vFn' h {@@ @@@93F[FZFZF[F[F[F[F[@1F@A@@б@г9$leftF~' h F' h @@ @@@9@@б@г: %rightF' h F' h @@ @@@9 @@гE &resultF' h F' h @г:!"eqF' h F' h @@ @@@97@@г:/$diffF' h F' h @@ @@@9E@@@%@@@9KF' h $@@@2 @@9O5'@@@D@@9RG*@@@X@@9U[-@@@F' h l0@@FA@2@@[&updatetF(  F(  @б@г:C&changeF(  F(  @@ @@@93FFFFFFFF@t@A@@б@гР,update_stateF(  F(  @@ @@@9@@г-update_resultF(  F(  @@ @@@9@@@@@9!@@@'@@9$* @@@G (  @@GA@@@*@A@A@@O@H@@3GGGGGGGG@5J@A 3GGGGGGGG@@AG# G)  @@@G!# @@3G G G G G G G G @@@'GenericWG.+  G/+  @G;A@Т!XYG:,  G;,  @УРG)Full_coreGE,  GF, !@3G1G0G0G1G1G1G1G1@5PE?A@4.A@%@@M@@@7W@@@@Q-update_resultG_-!!G`-!!@+Y@;@@@A9@@@9@@@@Gl-!! Gm-!!,@@@@GyA@@Aг *full_stateGv-!!" @@/ @@ @^w,update_stateG.!-!<G.!-!H@+ @;@@@A9@@@:@@@@G.!-!7G.!-!V@@@@GA@@Aг *full_stateG.!-!L @@P @@ @@n@j@@@:L^@@@:K@@:J@b@@O@K@;1G@@@:I@;7<@@@:H@;=3@@@:GF5*;E$@@@:E;J@@@:F@@@:D@@:C@@:B@@:A@%@@@@@@:@@:@@@:?:@@@:>@@:=@@:<@8@@@8@БР!XG/!a!hG/!a!i@@ 3GGGGGGGG@@[Z@PO@.-@@@±HA@@@@A3GGGGGGGG@ @@G/!a!c@@@3GGGGGGGG@@@@ఠ/compute_column0H 2!!H2!!@HA@@@t@@@;Z@:_@ 3@@@;Z@:d>@@@;Z@:e@@:fZ@:`@@:aZ@:^3HHHHHHHH@,@@@࣠@#tblAH42!!H52!!@HAA@@#3H!H H H!H!H!H!H!@=0H<2!!H=9""@@@@@  @@!iAHH2!!HI2!!@HUA@@.3H5H4H4H5H5H5H5H5@!:@@@@@@@@>%let*!HX3!!HY3!!@>#@>@@@;\@;\@:p]@:n@@@:o]@:t@@ >@@@:m]@:q@@:r>@@@:k]@:s@@:u@@:v]@:iడ:-%state&MatrixH3!!H3!!@ H3!!H3!!@@@@@@1@@@@1@@@@1@@@1@@@1@@1@@1@@1@@@@@@@@:@@@@:~@@@@:}ՠ@@@:|@@@:{@@:z@@:y@@:x3HHHHHHHH@r~@u@v@@@@ఐ#tblH3!!H3!!@~@@@@డGJH3!!H3!!@@@@ @@@:@@@@: @@@:@@:@@:+@@ఐ!iH3!!@4@@7@@A"H3!!@@@@@:^@:^@:F@@I3!!I3!!@@3@@@:@:^@:P@@@I3!!I3!!@@=@@@:]@:]@:`@@ @@?@@@:]@:g@@@"stI,3!!I-3!!@I9A@@s@@@?Р%let*!I74!!I84!!@?@?͠<@@@;]@;]@;]@;]@;T]@;N]@;H]@:]@:^@:@@@:^@:@@?@@@:^@:@@:?@@@:^@:@@:@@:^@:డ;$line&MatrixIu4!!Iv4!!@ Iy4!!Iz4!!@@@@@@1@j@@@1@i@@@1h=g@@@1@@@1@@1@@1@@1@f@c @@@@@@:@@@@:@@@@:@@@:@@@:@@:@@:@@:3IIIIIIII@I@@@@@@ఐ#tblI4!!I4!!@l@@@@డH8I4!!I4!!@@@@ @@@:@@@@: @@@:@@:@@:+@@ఐ!iI4!!@"@@7@@A"I4!!@@@@@:_@:_@:F@@I4!!I4!!@@@@@:@:_@:P@@@J4!!J4!!@@@@@:^@:^@:`@@ @@@@@@:^@:g@@@$lineJ4!!J4!!@J'A@@s@@@@ఠ$diffJ(5!"J)5!" @J5A@@>_@:A@:A@:A@:@@@:_@:3J"J!J!J"J"J"J"J"@(@@ @@@ภ&DeleteJB5!" JC5!"@>{ఐ5$lineJL5!"JM5!"@@@ @@@@>"! @@@:@A@JX5!" @@డ< #set&MatrixJf6"" Jg6""&@ Jj6""'Jk6""*@@@@@@1@@@@1@@@@1  @@@1@@@1  @@@1@@@1@@@1@@1@@1@@1@@1@@1@@1@@.)@@@@@@; @7@@@; @6@@@; 532@@@; @@@; 1/@@@;.,@@@;+@@@;@@;@@;@@;@@;@@;@@;3JJJJJJJJ@@@@@@@ఐ#tblJ6""+J6"".@z@@@@ఐ!iJ6""/J6""0@@@@@@J6""1J6""2@@y@@@;-_@;3_@;2-@xภ$SomeJ9""J9""@:ఐѠ$diffJ9""J9""@@@@>a>[@@@;U>[@@;V>Z@ @;W@ @;S_@;M_@;G_@;A^@@K9""@@@@;,@@@;+_@;9h@డI))K,7"3"NK-7"3"O@)@@@)@@@;]@)@@@;\)@@@;[@@;Z@@;Y@@డ]&weightKH7"3"BKI7"3"H@@@@@:O @@@:N@@:M@@  @@@ @@@;m@@@;l@@;k@@ఐ>$diffKf7"3"IKg7"3"M@@@>̠ >@@@;>@@;>@ @;@ @;a@;a@;{@@;@@*@@@;i@;a@;s@@డ=?&weight&MatrixK7"3"PK7"3"V@ K7"3"WK7"3"]@@ܰ@@@@@@;@@@@;@@@@;@@@;@@;@@;@@;@@ఐ#tblK7"3"^K7"3"a@r@@@@డJ>  K7"3"dK7"3"e@ @@@ @@@;@ @@@; @@@;@@;@@;#@@ఐ!iK7"3"c@(@@/@@A"K7"3"f@@ @@@;b@;b@;>@@K7"3"bK7"3"g@@@@@;@;b@;H@@@L7"3"hL 7"3"i@@ @@@;a@;a@;X@@x @@*@@@;h@;a@;`@@L7"3"AL7"3"j@@@@@;*@;`@;gj@డD&updateL/8"k"yL08"k"@@[@@@:]@c@@@:\b@@@:[@@:Z@@:Y@@2@@@i@@@;@q@@@;p@@@;@@;@@;@@ఐ/$diffLW8"k"LX8"k"@@@? ?@@;?@@;?@@;@@;`@;`@;@@ఐS"stL|8"k"L}8"k"@Ѱ@@@@L8"k"xL8"k"@@@@@;)@;`@;@@$M@@C @@@;_@;(@8S@@C@@@:Z@A]W@@C@@@:3LLLLLLLL@@@@AA\@@t3LLLLLLLL@@@@g^A@Z@;e@A@b@ba@v@ఠ-compute_line0L;""L;""@LA@@@@@@=;Z@;@ @@@=PZ@;C9@@@=Z@;@@;Z@;@@;Z@;3LLLLLLLL@@@@@@࣠@#tblAL;""L;""@LA@@%3LLLLLLLL@2L;""LB##@@@@@  @@!jAL;""L;""@LA@@03LLLLLLLL@!<@@@@@@@@C%let*!L<""L<""@B@C1@@@=g\@=\@<]@<@@@<]@< @@ C@@@<]@<@@<C@@@<]@< @@< @@< ]@;డ>%state&MatrixM&<""M'<""@ M*<""M+<""@@@@@@@@<@^@@@<@]@@@<\[@@@<@@@<@@<@@<@@<3M-M,M,M-M-M-M-M-@[g@^@_@@@@ఐ#tblMQ<""MR<""@g@@@@@M[<""M\<""@@@@@<']@<+]@<* @@డK 9 ;Mo<""Mp<""@ 8@@@@@@<1@ 8@@@<0@@@##!N>##%@NA@@C F\@<_@<F`@<Fb@<@@@<_@<3NNNNNNNN@(@@ @@@ภ&InsertN>##(N>##.@Bޠఐ5&columnN>##/N>##5@@@ @@@@C."! @@@<@A@N>## @@డ@#set&MatrixN?#9#=N?#9#C@ N?#9#DN?#9#G@@@@@T@@@<@@@@<@@@@<@@@<@@@<@@@<@@@<@@@<@@<@@<@@<@@<@@<@@<3OOOOOOOO@[qj@k@l@@@@ఐX#tblO'?#9#HO(?#9#K@=@@y@@@O1?#9#LO2?#9#M@@@@@<_@<_@< @@ఐa!jOD?#9#NOE?#9#O@@@-@ِภ$SomeOPB##OQB##@>zఐ$diffOZB##O[B##@@@@B B@@@<B@@<B@ @<@@<_@<_@<_@<^@@OyB##@@  @@<@@@<_@<h@డM..O@#P#kO@#P#l@. @@@. @@@<@. @@@<. @@@<@@<@@<@@డ&weightO@#P#_O@#P#e@a@@@ x@@@= l@@@=@@=@@ఐ$diffO@#P#fO@#P#j@@@C$C#@@@=C@@= C@ @=!@@=a@=a@=@@2@@.Z@@@<@="a@= @@డA&weight&MatrixO@#P#mO@#P#s@ O@#P#tO@#P#z@@4@@@Y@@@=*@@@@=)@@@@=(@@@='@@=&@@=%@@=$@@ఐG#tblP@#P#{P@#P#~@,@@h@@@P @#P#P!@#P#@@+@@@=:a@=>a@==@@డNP4@#P#P5@#P#@@@@L@@@=D@@@@=C\@@@=B@@=A@@=@*@@ఐk!jPN@#P#@ @@6@@A"PW@#P#@@@@@=Ob@=Sb@=RE@@P`@#P#Pa@#P#@@e@@@=9@=Tb@=NO@@x @@.@@@<@=Ua@=8W@@Pr@#P#^Ps@#P#@@@@@<@=V`@<a@డ&updatePA##PA##@X@@@ @@@=\@@@@=[@@@=Z@@=Y@@=X}@@ఐ$diffPA##PA##@@@DD@@=|ՠD@@=~C@@=@@={`@=u`@=o@@ఐ"stPA##PA##@@@@@PA##PA##@@I@@@<@=`@=f@@@@GV@@@=_@<@@@GZ@@@<@A @@G^@@@,^@=@o@@@>+^@=@I# H@@@> b@=@@@=^@=I@/@@@=b@=@@b@>2@@@@=b@>3@@>4b@=@@=a@=@@@>9^@=@@=^@=@@=^@=@@=^@=3QQQQQQQQ@Wc@Z@[@@@࣠@!iAQE##QE##@QA@@Q3QQQQQQQQ@^QE##QH$K$@@@@@  @@!jAQE##QE##@QA@@\3QQQQQQQQ@!h@@@@@@@@$diffAQE##QE#$@QA@@d3QQQQQQQQ@p@@@@@@@@I$let*QF$$ QF$$ @I@Iv@@@=b@=@@{^@=Iv@@@=b@=@@=I|@@@=b@=@@=@@=b@=ఐ7$diffR F$$R F$$@@4@5@@3QQQQQQQQ@5A@@@+W@@$diffRF$$RF$$@R&A@@&@@@Ir$let+R$G$$!R%G$$%@H@Iob@=c@=@@@=c@=@@b@=@@=Inc@=@@@=c@=@@=@@=c@=డC%state&MatrixRNG$$3ROG$$9@ RRG$$:RSG$$?@@ ư@@@@@@=@ @@@=@ @@@=  @@@=@@@=@@=@@=@@=3RURTRTRURURURURU@^\x@S@T@@@@ఐW#tblRyG$$@RzG$$C@<@@@@ఐנ!iRG$$DRG$$E@@@$@@ఐР!jRG$$FRG$$G@@@(*@@I@@Iܠm@@@=c@=1@z@@*localstateRG$$&RG$$0@RA@@x=@@@@డQ'1618RH$K$[RH$K$\@15@@@15@@@=@12@@@=11@@@=@@=@@=3RRRRRRRR@Z)@ @!@@@@డ &weightRH$K$ORH$K$U@@@@ @@@> @@@>@@>@@ఐӠ$diffRH$K$VRH$K$Z@}@@'@@@@1l@@@>@>e@> /@@డD&weight&MatrixSH$K$]SH$K$c@ SH$K$dS H$K$j@@F@@@k@@@>@!@@@>@!@@@>!@@@>@@>@@>@@>Y@@ఐ#tblS(H$K$kS)H$K$n@@@0f@@ఐ!iS5H$K$oS6H$K$p@k@@s@@ఐ!jSBH$K$qSCH$K$r@g@@@@B@@1@@@>@>1e@>*@@z @@@@@ఐE$diffS[H$K$uS\H$K$y@@@g@@ఐŠ*localstateSgH$K${ShH$K$@@@9@@SkH$K$t@@@y@A@@>5@@@@;@AP@@K@@@=3SaS`S`SaSaSaSaSa@ @@@A@@3ScSbSbScScScScSc@k@@@A@^@>?@A@@@ఠ#delSJ$$SJ$$@SA@@K%@2@@@>@@ h@@@>@!@@@>@@>@@>@@@>^@>@3SSSSSSSS@PI@J@K@@@@ఠ$diffSK$$SK$$@SA@@JH 5@@@>h_@>Kl@>Kn@>Kp@>@@@>`@>E@@@>_@>A(@K$$let+SK$$SK$$@JJ@K!!_@>I`@>G@@@>H`@>M@@-_@>J@@>KK3@@@>D`@>L@@>N@@>O`@>BడE$line&MatrixSK$$SK$$@ TK$$TK$$@@ @@@e@@@>X@!@@@>W@!@@@>V! @@@>U@@@>T@@>S@@>R@@>Q3TTTTTTTT@u@@@@ఐ#tblT'K$$T(K$$@@@/@@డRT5K$$T6K$$@@@@M@@@>r@@@@>q]@@@>p@@>o@@>n)@@ఐ!iTOK$$@@@M5@@A"TXK$$@@@@@>}a@>a@>D@@TaK$$TbK$$@@"M@@@>j@>a@>|N@@ఐ-!jTtK$$TuK$$@а@@j[@@z@@K@@@>`@>gb@TK$$@@!xTK$$TK$$@TA@@o@@@ภ&DeleteTK$$TK$$@Hʠఐ!xTK$$@@@@@3TTTTTTTT@ @@@@"@@@A#@@@A@TK$$%@@ఐP3compute_propositionTL$$TL$$@@@@"@@@>@"@@@>@Lf@@@>@@@>LZ@39@@@>@@@"@@@>@@>@@>@@@>@@>@@>@@>3TTTTTTTT@3+$@%@&@@@@డSYTL$$TL$$@@@@@@@>@@@@>@@@>@@>@@>@@ఐˠ!iUL$$@@@*@@A"U L$$@@@@@>`@>`@>9@@UL$$UL$$@@#@@@>@>`@>C@@ఐߠ!jU&L$$U'L$$@@@P@@ఐ$diffU3L$$U4L$$@Z@@L@@@>_@>_@>e@@ @@f@ @@@A@UAJ$$@@@ఠ&insertULN%%UMN%% @UYA@@L@3@@@?R@@,@@@?T@#@@@?U@@?S@@?Q@@@?P^@>3UTUSUSUTUTUTUTUT@@@@@@@ఠ$diffUxO%%UyO%%@UA@@LIڠM*@?*t@@@? _@?+M2@?,M4@?-@@@?.`@>@@@?0_@>(@L$let+UO%%UO%%#@L@L_@>`@>@@@>`@>@@-_@>@@>L3@@@>`@>@@>@@>`@>డGg&column&MatrixUO%%(UO%%.@ UO%%/UO%%5@@ư@@@)@@@>@#@@@>@#@@@>#@@@>@@@>@@>@@>@@>3UUUUUUUU@u@@@@ఐɠ#tblUO%%6UO%%9@@@@@ఐ !iUO%%:UO%%;@@@@@డTxРҰVO%%>VO%%?@ϰ@@@@@@?@@@@?.@@@?@@?@@?6@@ఐ٠!jV O%%=@{@@B@@A"V)O%%@@@@@@? a@?$a@?#Q@@V2O%%<V3O%%A@@#@@@? @?%a@?[@@z @@M@@@?&`@? b@VCO%%M@@!xVKO%%$VLO%%%@VXA@@o@@@ภ&InsertVUO%%EVVO%%K@Jjఐ!xV_O%%L@@@@@3VKVJVJVKVKVKVKVK@ @@@@"@@@A#@@@A@VgO%%%@@ఐ3compute_propositionVqP%Q%UVrP%Q%h@ʰ@@@${@@@?=@$z@@@?<@N*M@@@?9@@@?;N@4@@@?7@@@$@@@?:@@?8@@?6@@@?5@@?4@@?3@@?23VVVVVVVV@3+$@%@&@@@@ఐt!iVP%Q%iVP%Q%j@\@@@@డU*VP%Q%mVP%Q%n@@@@@@@?_@@@@?^@@@?]@@?\@@?[+@@ఐ!jVP%Q%l@-@@7@@A"VP%Q%o@@@@@?j`@?n`@?mF@@VP%Q%kVP%Q%p@@$@@@?W@?o`@?iP@@ఐ$diffVP%Q%qVP%Q%u@Z@@N@@@?V_@?v_@?pe@@ @@f@ @@@A@WN%%@@@ఠ$diagWR%{%WR%{%@WA@@N@5@@@A0@@@@@A2@%F@@@A3@@A1@@A/@@@A.^@?3WWWWWWWW@@@@@@@ఠ$diffW<S%%W=S%%@WIA@@N٠KJ@@@@a@@J@@@@a@@J@@@@a@@J@@@@a@@@@@@_@?@@@A_@?8@O!$let*WnT%%WoT%%@N@O E@@@@_@?_@?`@?@@@?`@?@@ O&G@@@?`@?@@?O&M@@@?`@?@@?@@?`@?డIE%state&MatrixWT%%WT%%@ WT%%WT%%@@@@@!@@@?@%@@@?@%@@@?%֠%@@@?@@@?@@?@@?@@?3WWWWWWWW@@@@@ఐ#tblWT%%WT%%@@@@@డVIWT%%WT%%@@@@@@@?@@@@?@@@?@@?@@?)@@ఐ!iWT%%@@@5@@A"WT%%@@@@@?a@?a@?D@@XT%%XT%%@@&2@@@?@?a@?N@@డV᠐XT%%XT%%@@@@/@@@?@@@@??@@@?@@?@@?i@@ఐꠐ!jX1T%%@@@&u@@A"X:T%%@@@@@?a@?a@?@@XCT%%XDT%%@@&l@@@?@?a@?@@ @@O@@@?`@?@XTY&&@@%stateX\T%%X]T%%@XiA@@@@@P$let*XgU%%XhU%%@O@P*`@?a@?@@@?a@?@@P;`@?@@@?a@?@@?P@@@?a@?@@?@@?a@?డJ;$line&MatrixXU%%XU%%@ XU%%XU%%@@!@@@!@@@?@&@@@?@&@@@?&!@@@?@@@?@@?@@?@@?3XXXXXXXX@a<@X@Y@@@@ఐ#tblXU%%XU%%@@@@@డWAXU%%XU%%@@@@@@@@@@@@@@@@@@@@@@@+@@ఐ!iXU%%@@@7@@A"XU%%@@@@@@b@@"b@@!F@@XU%%XU%%@@&@@@@ @@#b@@P@@డW٠۰YU%%YU%%@ذ@@@'@@@@)@@@@@(7@@@@'@@@&@@@%k@@ఐ⠐!jY)U%%@@@w@@A"Y2U%%@@@@@@4b@@8b@@7@@Y;U%%Y<U%%@@'!@@@@ @@9b@@3@@ @@P@@@@:a@@@@@$lineYSU%%YTU%%@Y`A@@@@@Q$let*Y^V%&Y_V%&@P@Qa@@Fb@@D@@@@Eb@@J@@Q2a@@A@@@@Cb@@G@@@HQ@@@@@b@@I@@@K@@@Lb@@>డK2&column&MatrixYV%&YV%&@ YV%&YV%&@@ @@@"@@@@U@']@@@@T@'\@@@@S'[ @@@@R@@@@Q@@@P@@@O@@@N3YYYYYYYY@a:@X@Y@@@@ఐ#tblYV%&YV%& @{@@@@డX8YV%&#YV%&$@@@@@@@@o@@@@@n@@@@m@@@l@@@k+@@ఐ!iYV%&"@@@7@@A"YV%&%@@@@@@zc@@~c@@}F@@YV%&!YV%&&@@'@@@@g@@c@@yP@@డXxРҰZV%&)ZV%&*@ϰ@@@@@@@@@@@@.@@@@@@@@@@k@@ఐ٠!jZ V%&(@{@@ w@@A"Z)V%&+@@@@@@c@@c@@@@Z2V%&'Z3V%&,@@'@@@@f@@c@@@@ @@Q@@@@b@@d@@@&columnZJV%&ZKV%& @ZWA@@@@@డn$testZYW&0&<ZZW&0&@@@M@@@:X@@@@:W@@@@:VX٠@@@:T@@@:U@@@:S@@:R@@:Q@@:P@@ @@@@@@@@4@@@@@2@@@@1@@@@.@@@@@@@@@@@@@@@@@3Z|Z{Z{Z|Z|Z|Z|Z|@R+@I@J@@@@ఐI%stateZW&0&AZW&0&F@@@*@%stateZW&0&GZW&0&L@GѰ @@R@@@@d@@d@@ @@ఐm$lineZW&0&MZW&0&Q@@@L-@@ఐ&columnZW&0&RZW&0&X@7@@b:@@u@@bw@@@@t@@@@@@@@F@Ġ"OkZX&^&fZX&^&h@;"Ok>&result!a@x!b@y@@@v@ @A@@B@AJJ@@@J@ఠ"ok[X&^&i[X&^&k@[A@@@@@@3ZZZZZZZZ@w@@@@@)@@@@@@ˠ@@@@@@@@ @ @@@@@Π@@@@@@@@@@@ภ$Some[(X&^&o[)X&^&s@JRภ$Keep[1X&^&u[2X&^&y@Oఐ렐$line[;X&^&{[<X&^&@@@3['[&[&['['['['['@A:@;@<@@@ఐ&column[IX&^&[JX&^&@@@@ఐQ"ok[TX&^&[UX&^&@@@@@[XX&^&t[YX&^&@@a@@@@5@@R@@@@#@Ġ%Error[kY&&[lY&&@;%Error@@AA@B@AKK@@@K@ఠ#err[|Y&&[}Y&&@[A@@@@@@@@@@@-@@@@۠*@@@@@@@@@ @#8@@@@ޠ5@@@@@@@@@@@ภ$Some[Y&&[Y&&@Jʠภ&Change[Y&&[Y&&@Oఐc$line[Y&&[Y&&@@@B3[[[[[[[[@$@9@:@;@@@ఐz&column[Y&&[Y&&@.@@Y@ఐP#err[Y&&[Y&&@@@n@@[Y&&}@@a@@@@4@@w@@@A[W&0&6@@Ssb@@@@3[[[[[[[[@G@@@A~@@Sy_@@@@=3[[[[[[[[@5@@@A{@@S@@@?3[[[[[[[[@2@@@Az@@@A@[S%%@@ఐ 3compute_proposition[[&&[[&&@L@@@)@@@A@)@@@A@S@@@A@@@AS@:@@@A@@@*6@@@A@@A@@A@@@A@@A@@A@@A3\\\\\\\\@@@@@@@డZ\-[&&\.[&&@@@@E@@@A<@@@@A;U@@@A:@@A9@@A8@@ఐ !i\G[&&@ @@ E*@@A"\P[&&@@@@@AG`@AK`@AJ9@@\Y[&&\Z[&&@@*d@@@A6@AL`@AFC@@డZ79\m[&&\n[&&@6@@@@@@AR@6@@@AQ@@@AP@@AO@@AN^@@ఐ @!j\[&&@ @@ |j@@A"\[&&@@T@@@A]`@Aa`@A`y@@\[&&\[&&@@*@@@A5@Ab`@A\@@ఐp$diff\[&&\[&&@@@T]@@@A4_@Ai_@Ac@@ @@@ @@@A@\R%{%}@@S[%let*!\]&&\]&'@R@SX@*X@@@B-]@A@@*n@@@B/]@A@@@@A]@A@@A]@A@@A]@A~^@A|@@@A}^@A@@$Su@@@A{^@A@@ASr@@@Ay^@A@@A@@A^@Awఐ7select_best_proposition]m*b*f]m*b*}@@@@M@@@;@@A@@@A@@@A @@A3]]]]]]]]@@ @ @@@@ภZð]$m*b*]%m*b*AZ ఐ #del ].m*b*@° @@SƠn@@@A^@A^@A^@A^@A#@ภZ]Bm*b*AZߠఐ&insert ]Km*b*@ @@^@A^@A^@A:@ภZ]Ym*b*5AZఐR$diag ]bm*b*@H @@^@A^@A^@AQ@ภZ˰KAZ@LA@\Ƞ@@@A^@A^@@SA@\Ϡ,@@@A^@Ae@@=ZA@\֠P@@@A^@Al@@]m*b*~b@@(V@@@A^@At@@i@@Xu@ a@@?"@ఠ)newweight]]&']]&' @]A@@]@BD]@A@@@ఠ$diff]]&']]&'@]A@@]@B<]@BC]@A@@ఠ*localstate]]&']]&'@]A@@]@B]@A@@]]&' ]]&'@@@@ @@A@@5@@@5@@(@@@A@@A@@@@ఠ%state]o**]o**@]A@@@@@A_@A3]]]]]]]]@\U@V@WJC@D@E:3@4@5@@@డ&update]o**^o**@а@@@+@@@A@3@@@A2@@@A@@A@@A @@ఐk$diff^o**^o**@'@@j-@@ఐg*localstate^&o**^'o**@3@@f:@@+@@>;@A@^+o**@@డO#set&Matrix^9p**^:p**@ ^=p**^>p**@@Ӱ@@@'@@@B@+@@@B@+@@@B+++@@@B @@@B ++@@@B ++@@@B +@@@B @@B@@B@@B@@B@@B@@B3^O^N^N^O^O^O^O^O@x@@@@@@ఐ Q#tbl^sp**^tp**@ 6@@ {@@ఐ J!i^p**^p**@ 2@@ @@ఐ F!j^p**^p**@ @@ *@,"ภ$Some^p**^p**@Màఐ$diff^p**^p**@@@@@@^p** z@@,8@@@B._@B;H@,3ఐ)newweight^p**^p**@ǰ@@U@,8ఐߠ%state^p**^p**@_@@,E@@@B,_@BF_@BEi@@ @@UR@@@BG_@B+o@ @@UV@@@A@A @@ 3^^^^^^^^@@@@" @@ @ @@  r@  @@  7@ % @@  ;@  A@ Z@BN @A@ @  @ ̠@ఠ,compute_cell^r*+^r*+@^A@@@(U@@@BZ@BP@,@@@BZ@BU@,@@@BZ@BZV@@@BZ@B[@@B\Z@BV@@BWZ@BQ@@BRZ@BO3^^^^^^^^@ %@@ @@@࣠@!mA_ r*+_!r*+@_-A@@.3_ _ _ _ _ _ _ _ @;_(r**_)x++@@@@@  @@!iA_4r*+_5r*+@_AA@@93_!_ _ _!_!_!_!_!@!E@@@@@@@@!jA_Er*+_Fr*+@_RA@@A3_2_1_1_2_2_2_2_2@M@@@@@@@@@ఐ*!i_[s++ _\s++!@@@_3_G_F_F_G_G_G_G_G@"Y@@@@@@ఐ(!j_js++#_ks++$@ @@e@@@@@s@l@@Bc@@_zt+*+._{t+*+/@@@@z@@Be3_k_j_j_k_k_k_k_k@$@@@ @@@@@Bf@@డ^"<>_t+*+G_t+*+I@!ʰ@@@--@@@B@@@B^@B@ !@@@B@@B@@B$@@డQ[$diff&Matrix_t+*+5_t+*+;@ _t+*+<_t+*+@@@@@@)@@@B@. @@@B@.@@@B..@@@B@@@B@@B@@B@@BR@@ఐ!m_t+*+A_t+*+B@@@_@@ఐ!i_t+*+C_t+*+D@@@l@@ఐ!j_t+*+E_t+*+F@@@y@@F@@bz@@ภ$None`t+*+J`t+*+N@N@@@p^@B@@U@@OA@@@B_@B@ภW`t+*+R`t+*+T@W@@@ @@@`$u+U+Y`%u+U+Z@@1Z@BZ@BZ@BZ@BZ@BZ@Bl@@@`7u+U+[`8u+U+\@@;Z@CZ@BZ@BZ@BZ@BZ@Bm@@! @@@#@@@Bn@@@)@@@Bo@@@ภX,`Vu+U+``Wu+U+b@X,@@@L@@@`ev+c+g`fv+c+h@@C_@Bu3`R`Q`Q`R`R`R`R`R@ @@@@ఠ!j`rv+c+i`sv+c+j@`A@@9@Br@@@@@@@@Bv@@@@@@Bw@@@ఐ䠐-compute_line0`v+c+n`v+c+{@v@@@)@@@B@!@@@BW@@@B@@B@@B3````````@@1*@+@,@@@@ఐ!m`v+c+|`v+c+}@r@@@@ఐE!j`v+c+~`v+c+@@@D@@.@@@@ఠ!i`w++`w++@`A@@@Byp@@@`w++`w++@@_@B}z@@@@@@ @@B~@@@@@@B@@@ఐ᠐/compute_column0`w++`w++@*@@@*P@@@B@" @@@BWs@@@B@@B@@B3````````@;4@5@6@@@@ఐ!ma w++a w++@Ӱ@@@@ఐO!iaw++aw++@@@N@@.@@@@a"x++a#x++@@@)@"@@B@ @@/@(@@B@@@ఐF2compute_inner_cella9x++a:x++@'@@@*@@@B@.@@@B@.@@@BW@@@B@@B@@B@@B@@ఐ;!maXx++aYx++@ @@e@@ఐ4!iaex++afx++@@@i @@ఐ0!jarx++J@K@@l@@<L@@h@@@Aavs++N@@j@XOA@Z@C#V@A@S@SR@i@ఠ.compute_matrixa,,a,,@aA@@@/ @@@CtZ@C%*@@@DHZ@C&@@C'Z@C$3aaaaaaaa@@@@@@࣠@&state0Aa,,a,,@aA@@3aaaaaaaa@)a,,a..@@@@@  @@@ఠ"m0a,,a,,@aA@@+@@@C4\@C*3aaaaaaaa@(:@@ @@@డSz$make&Matrixa,,a,,@ a,,a,,@@@*u@@@1+?@@@1@@1@0j@0g @@@*~@@@C.+H@@@C-@@C,)@@ຠ)!la,,a,,@@b,,b,,@@0@@@C;]@C<B@)!cb ,,b,,@@b,,b,,@@0@@@CC]@CDU@@@b,,b,,@@*@@@C5]@CH]@@N@@a^@A@b$,, @@ డS#set&Matrixb4--b5-- @ b8-- b9-- @@ΰ@@@+@@@CX@/@@@CW@/@@@CV//۠/@@@CU@@@CT//@@@CS//@@@CR/@@@CQ@@CP@@CO@@CN@@CM@@CL@@CK3bJbIbIbJbJbJbJbJ@@@@@@@ఐ"m0bn--bo--@ @@+@@@Cz]@C|]@C{@@@b--b--@@0!@@@Cy]@C~]@C}'@@@b--b--@@0+@@@Cx]@C]@C7@0*ภ$Noneb--3b--7@Qb@@@0403@@@Cw@@@Cv]@CL@02@b--b--@@0;@@@Cu]@C]@C\@0:ఐ$&state0b--&b--,@@@<i@@)@@] @@@C\@Cso@Aఠ$loopb-9-Cb-9-G@bA@@@,?@@@C\@C\@C@@C3bbbbbbbb@@@@࣠@!mAb-9-Hb-9-I@cA@@3bbbbbbbb@#@@@C]@C@!@"@@@@  @@@ఠ%shapec -L-Tc -L-Y@cA@@+@@@C^@C3bbbbbbbb@)6@ @!@@@డT%shape&Matrixc#-L-\c$-L-b@ c'-L-cc(-L-h@@'@@@,@@@C+@@@C@@C @@ఐM!mc=-L-ic>-L-j@*@@`-@@@@1.@A@cB-L-P@@@ఠ)new_shapecM-n-vcN-n-@cZA@@+@@@C^@C3c?c>c>c?c?c?c?c?@DRK@L@M@@@డU *real_shape&Matrixcf-n-cg-n-@ cj-n-ck-n-@@@,@@@2, @@@2@@2@00~0p @@@,@@@C,@@@C@@C)@@ఐ!mc-n-c-n-@v@@6@@'@@:7@A@c-n-r@@డb & &c--c--@& @@@& @@@C@& @@@C& @@@C@@C@@C3cccccccc@Tb[@\@]@@@@డb)EEc--c--@E@@@2s@@@C^@C@E@@@C@@C@@C@@ఐ)new_shapec--c--@)@@,m@@@C@C1@!lc--c--@+@@#8@@ఐ㠐%shapec--c--@@@,@@@C@CL@!lc--c--@+@@@_@CU@@-@@&p@@@C@C_@C]@@డbEnEpd--d--@Em@@@2@@@C^@C@En@@@C@@C@@Cw@@ఐߠ)new_shaped,--d---@@@,@@@C@C@!cd8--d9--@+@@#@@ఐ=%shapedG--dH--@@@,@@@C@C@!cdS--dT--@, @@@_@C@@-@@&@@@C@C_@C@@ @@S@@@C^@C@@ఠ!mdp--dq--@d}A@@-@@@C^@C3dbdadadbdbdbdbdb@@@@డV,'reshape&Matrixd--d--@ d--d--@@@-'@@@1@-@@@1-@@@1@@1@@1@3@3@@@-5@@@C@.@@@C.@@@C@@C@@C1@@ఐg)new_shaped--d--@ @@-Q@@@C_@D_@DE@@ఐؠ!md--d--@@@R@@E@@VS@A@d--@@ !id.. d.. @@@@@d..d..@@c@@@D^@D3dddddddd@>|u@v@w@@@ఐ)new_shaped..d..@I@@-@@@D @D@!ld..d..@,@@c@@@D ^@D @@!je."..e."./@@@@@e.".2e.".3@@d@@@D_@D 3eeeeeeee@7L2@@@D-^@D1^@D @e'..e(.p.z@@e4A@@@ఐ栐)new_shapee3.".7e4.".@@@@-@@@D@D@!ce?.".Ae@.".B@,@@d:@@@D_@D+@@ఐb,compute_celleP.F.PeQ.F.\@@@@.@@@D@2@@@D@2@@@D]5@@@D@@D@@D@@D3eNeMeMeNeNeNeNeN@J_3@@@D,_@D2_@D@ep.".*eq.c.o@@e}A@@@@ఐ !me}.F.]e~.F.^@@@.@@@D.a@D0a@D/"@@ఐ!ie.F._e.F.`@u@@u/@@ఐ!je.F.ae.F.b@9@@9<@@R@@_@@@D3`@D+B@8@_@@@D5_@D43eeeeeeee@@@@@_@@@D7^@D63eeeeeeee@@@@ఐ⠐$loope.|.e.|.@Ű@@@@@D9@@ఐ[!me.|.e.|.@@@^@D=@@@@@@@ @@@Z@ఐ렐!me..e..@Ȱ@@e@e--@@g@S@@@@@@A@@@@D@\@D?@@@e-9-; @@ఐ$loope..e..@@@@/T@@@DC@@DB3eeeeeeee@@@@@ఐI"m0f..W@X@@v\@DJ\@DI@@]@@w@%^@@x&@_@@y'@`@@zJ@jaA@Z@DLh@A@e@ed@{@ O@r@*@1@@@@@3ffffffff@@@f!.!-!Zf"..@3f f f f f f f f @4@@@f&,  @3ffffffff@@@@@f++   @ @*Parameters[f5..f6..@fBAУР D)Full_corefB..fC..@3f.f-f-f.f.f.f.f.@@@@@@K@=@iD@p@?@@@2,@A@@ C,update_statefd..fe..@+ K@;@@@AY%state@@@DM@@@@fr..fs..@@@@fA@@Aг  f{.. @@7 @@ @@ vZ;@@@A@@@@@B@@@@ qA@ X@ T@@@D H@@@D@@D@ @ 8@ 4@Z 0@@@D~@Z  %@@@D}@Z& @@@D|e Z. @@@DzZ3 @@@D{@@@Dy@@Dx@@Dw@@Dv@1@@@@@@Du@ZCS@@@DtF@@@Ds@@Dr@@Dq@D@@@D@@f..V@W@3ffffffff@@@&Simple\f..f./@fA@Т!X^f./f./@УР*Parametersf./f./@3ffffffff@vuA@rq@hg@FE@@@5@@@@-update_resultg./g./*@+@;@@@AZ%state@@@D@@@@g./g./3@@@@gA@@Aг  g./. @@- @@ @@ @ @@@D @@@D@@D@?@@ @ @Z @@@D@Z @@@D@Z @@@De Z @@@DZ @@@D@@@D@@D@@D@@D@%@ @ @ |@@@D@Z@@@DZR@@@D@@D@@D@8@ U@@s8@Б(Internal_go/>/Igp/>/Q@g|A@гР N'Genericg{/>/Tg|/>/[@@ L@@@@@s@z@@u@@3g{gzgzg{g{g{g{g{@@yx@nm@LK@@@gA@@@Б@ఠ$testԠg/c/og/c/s@gA@@@[8!N@@@D@[>!C@@@D@[D!:@@@Df<!1[L!+@@@D͠[Q!"@@@D@@@D@@D@@D@@D`@D3gggggggg@@@@@డ$test!Xg/c/vg/c/w@ g/c/xg/c/|@@@4@@@D@3@@@D@2@@@D10@@@D/@@@D@@@D@@D@@D@@D@@!5#@@O/@A@h/c/k @@!@2@ఠ&weightՠh/}/h/}/@hA@@@!@@@D!@@@D@@D`@D3hhhhhhhh@wp@q@r@@@డH&weight!Xh+/}/h,/}/@ h//}/h0/}/@@@!@@@D!@@@D@@D@@! @@'@A@h=/}/@@@"@ఠ&update֠hJ//hK//@hWA@@@!{@@@D`@D@V@@@E`@DV@@@E`@D@@D`@D@@D`@D3hNhMhMhNhNhNhNhN@I\U@V@W@@@࣠@!dAhs//ht//@hA@@%3h`h_h_h`h`h`h`h`@2h{//h|//@@@@@  @@"fsAh//h//@hA@@03hthshshththththt@!<@@@@@@@@ະUZ̠Z@@@E @@@E b@E@UƠZŠZ@@@E@@@Eb@E @UС%stateh//h//@డ&update!Xh//h//@ h//h//@@@!@@@D@\Qa@@@D\U@@@D@@D@@D@@!Ȱ@@@!@@@D@@@@D@@@D@@D@@D3hhhhhhhh@Ye@\@]@@@@ఐ!dh//h//@e@@@@ఐ{"fsh//i//@@@@%statei//i//@V. @@@@@@Dc@Ec@E-@@S @@[$@@@Dc@D3@@ఐ"fsi//i//@;@@>@i"//@@@@A@`@E@A@@@@ @ @@@@@3iiiiiiii@@@i1/>/\i2//@ 3iiiiiiii@@@@A@@@B@@@i=//@!8@27@@@E{@*^@@@Ez_@@@Ey@@Ex@@Ew@!A@!B@@27@@@E@*p@@@E_@@@E~@@E}@@E|@@@v@28@@@E@7 @@@E@7 @@@E_@@@E@@E@@E@@E@@@ @28@@@E@7"@@@E@7!@@@Eaa@@@E@@E@@E@@E@ @ @@7@@@E287@@@E@@E@@@@j@@i/>/Bc@d@m@ఠ$diffi//i//@iA@@@[@@@F(a@E@[[@@@F@@@Fa@F@[[@@@F!@@@F a@F i*8%@@@FA@@@F@a@F @@F a@F@@Fa@F@@Fa@E3iiiiiiii@Kt@@@@lk@WV@@@Ly@@@࣠@%stateAi//i//@jA@@E3iiiiiiii@Ri//i0c0{@@@@@  @@$lineAj //j /0@jA@@P3iiiiiiii@!\@@@@@@@@&columnAj/0j/0@j'A@@T3jjjjjjjj@d@@@@@@@@@ఠ)fullstatej-0 0j.0 0@j:A@@X\@@@Fe@F3jjjjjjjj@%o@@@@@ະWi$linejB0 0"jC0 0&AఐE @*@@Wr&columnjP0 0(jQ0 0.AఐB @ @"@W%statej^0 00j_0 05Aఐu @W@0@@@jg0 0 jh0 07@@83@A@jj0 0@@ఐ+䠐/construct_patchjt0c0lw@&x@@@3@@@F9iР8@@@F8@@@F7@@F63jkjjjjjkjkjkjkjk@M[T@U@V@@@@డ$.compute_matrix(Internalj0;0Aj0;0I@ j0;0Jj0;0X@@@8@@@F^39?@@@F]@@F\@ @  @@@8"@@@Fa @@@F`@@F_-@@ఐ)fullstatej0;0Yj0;0b@7@@89@@@Fhf@Fjf@FiA@@/ @@4%@@@FB@Fkf@FgI@@7@@J@c@@@A@a@Fq@A@@@@i@@6c@@.'@(@)@@3jjjjjjjj@1@@j./7j0|0@ 3jjjjjjjj@K@@@ @3jjjjjjjj@@@@@j.. @ @@ఠ*may_appendj00j00@jA@@@[ b@F@@@Fa@Fs@[ @@@Fa@Fxa@Fy@@Fza@Ft@@Fua@Fr3jjjjjjjj@>@6@@@@@@@@@@@@@@S@@@GR@@@࣠@!xAk400k500@kAA@@@3k!k k k!k!k!k!k!@-Mk<00k=00@@@@@  @@A@kE00kF00@@C3k0k/k/k0k0k0k0k0@R@@@@@@@ఐ !xkQ00kR00@ @@I @ఠ!yk\00k]00@kiA@@\3kIkHkHkIkIkIkIkI@@@@@@డi%Array&appendkn00ko00@ kr00ks00@@@~!a@#@@@$]@| @@@$\[@@@$[@@$Z@@$Y@Zm''Zm'T@@ZI@"@@@@@@F@@@@F@@@F@@F@@F3kkkkkkkk@ZJ@D@E@@@@ఐ|!xk00k00@f@@@@ఐ^!yk00~@@@@@O@@@@Aek00@@@A@a@F@A@@@-Left_variadicak00k00@kA@Т!Xck00k00@УР*Parametersk00k00@3kkkkkkkk@@@@@@@n-update_resultk01k01@+v@;@@@A@_%state@@@F@k{_$left@@@F@@@F@@F@@@@l01l01(@@@@lA@@AВ@гl01l01@@!8@@@г%arrayl(01#@г!"l/01l001"@@(J@@@-K"@@@9L#@@%@@& @&@@@F%@@@F@@F@^1@@%@%@_%@@@F@_%@@@F@_%@@@Fj%Š_%@@@Fՠ_%@@@F@@@F@@F@@F@@F@%@%@%@%@@@F@_@@@F@_{@@@F̠@z`y@@@F@@@F@@F@@F@@F@F@%z@@F@БР!Xl131<l131=@@ 3llllllll@@ih@^]@<;@@@̱lA@@@@A3llllllll@ @@l1317@@@3llllllll@@@(Internaldl1?1Jl1?1R@l A@гР%'Genericl1?1Ul1?1\@@%%-%,@%"%!@%$@@$ @ -@ @  <@ V@@3llllllll@3@@@Б@ఠ$testl1d1pl1d1t@lA@@@`s&@@@F@`y&~@@@F@`&u@@@Fkw&l`&f@@@F`&]@@@F@@@F@@F@@F@@Fe@F3llllllll@h@@@డ>$test!Xm1d1wm1d1x@ m1d1ym1d1}@@@4@@@F@3@@@F@2@@@F10@@@F/@@@F@@@F@@F@@F@@F@@&p#@@O/@A@m=1d1l @@!@2@ఠ&weightmJ1~1mK1~1@mWA@@@'@@@F'@@@F@@Fe@F3mAm@m@mAmAmAmAmA@wp@q@r@@@డ&weight!Xmf1~1mg1~1@ mj1~1mk1~1@@@':@@@F'.@@@F@@F@5@' @@'@A@mx1~1@@@"@ఠ&updatem11m11@mA@@@&@@@G*e@G@[@@@Goe@G[@@@Gme@G@@Ge@G@@Ge@F3mmmmmmmm@I\U@V@W@@@࣠@!dAm11m11@mA@@%@@@@"fsAm11m11@m A@@*3mmmmmmmm@!6@@@@@@@@@@ఠ%statem11m11@m A@@a]@@@G&h@G 3mmmmmmmm@*J@!@"@@@@ఠ!am11m11@m A@@au@@@G(@@@G'h@G @@$@@@$@@@G @డr&updaten11n11@@'2@@@F@a@@@F@?@@@F젠@/@@@F@@@F@@F@@F@@F@@'@@@'N@@@G@@@@G@Z@@@G@3J@@@G@@@G@@G@@G@@Gb@@ఐ!dnI11nJ11@@@o@@ఐ"fsnX11nY11@{@@~@%staten_11n`11@[ @@V@@@G)i@G5i@G3@@d @@@@@@G6i@G%@A@ns11@@ະ[$linen}12n~12@ఐ*may_appendn12n12@@@@`@@@GAg@G[g@GTg@GF@@@GE@@@@GG@@GD@@GC3nnnnnnnn@@@@@@@@@ఐ"fsn12n12@԰@@@$linen12n12@[ @@`.@@@G@h@GPh@GVh@GS%@@ఐ砐!an12n12@-@@РI@@@GQh@GYh@GW:@@S @@;@\aa@@@Gl@@@Gkg@Gh@\ %staten11n11Aఐ" @Q@a@@@Gag@GbY@@ఐH"fso11o11@$@@nd@o11o12@@lg@@@m+@[A@e@Gsk@A@o 11@@@n@-@p@@@@@3nnnnnnnn@v@@o1?1]o22'@ 3oooooooo@v@@@A@@@B@@@co$22(@'@8=@@@G@0E@@@Ge@@@G@@G@@G@'(@')@"@8=@@@G@0W@@@Ge@@@G@@G@@G@"@"@]@8=@@@G@<@@@G@<@@@Ge@@@G@@G@@G@@G@k@l@y@8>@@@G@= @@@G@=@@@GgH@@@G@@G@@G@@G@@@ @<@@@G8>@@@G@@G@ @ @@j@@o1?1Cc@d@m@ఠ$diffo2*22o2*26@o A@@@a@@@Hf@H[@a۠a@@@Hs@@@Hrf@H`@a֠a@@@H}@@@H|f@Heo> @@@H@@@Hf@Hf@@Hgf@Ha@@Hbf@H\@@H]f@HZ3oooooooo@@@@@lk@WV@@@L@@@࣠@%stateAo2*27o2*2<@oA@@E3oooooooo@Ro2*2.o22@@@@@  @@$lineAo2*2=o2*2A@oA@@P3oooooooo@!\@@@@@@@@&columnAp2*2Bp2*2H@pA@@T3oooooooo@d@@@@@@@@@ఠ)fullstatep2K2Up2K2^@p!A@@^C@@@Hoj@Hj3pppppppp@%o@@@@@ະ]P$linep)2K2cp*2K2gAఐE @*@@]Y&columnp72K2ip82K2oAఐB @ @"@]f%statepE2K2qpF2K2vAఐu @W@0@@@pN2K2apO2K2x@@83@A@pQ2K2Q@@ఐ1ˠ/construct_patchp[22w@,x@@@9@@@Ho>@@@H@@@H@@H3pRpQpQpRpRpRpRpR@M[T@U@V@@@@డ.compute_matrix(Internalp|2|2p}2|2@ p2|2p2|2@@@=@@@H9?&@@@H@@H@@ @@@> @@@H @@@H@@H-@@ఐ)fullstatep2|2p2|2@7@@> @@@Hk@Hk@HA@@/ @@: @@@H@Hk@HI@@7@@J@c@@@A@f@H@A@@@@ @@6@@.'@(@)@@3pppppppp@1@@p01,p22@ 3pppppppp@+@@@p00@3pppppppp@@@@@p00 @ @.Right_variadic"fp22p22@p"A@Т!Xhp22p22@УР *Parametersp22p22@3pppppppp@ +@#@@@@P@@@@@@@@U@@Q@@@D?@@! @@ -update_resultq22q23@+ @;@@@A@d%state@@@HΠ@pd%right@@@H@@@H@@H@@@@q422q523@@@@qAA@@AВ@гqA23 qB23@@!R@@@г%arrayqL23@г!"qS23qT23@@(d@@@-e"@@@9f#@@%@@+- @+)@@@I+@@@I@@I@x1@@+@+  @d+@@@I @d*@@@I @d*@@@I o*e*@@@I e *@@@I @@@I@@I@@I@@I@%@*@* @*@@@I@e )@@@I@e!{@@@I@ze*y@@@I@@@I@@H@@H@@H@F@*@@F@БРנ!Xq3)32q3)33@@ 3qqqqqqqq@@ih@^]@<;@@@qA@@@@A3qqqqqqqq@ @@q3)3-@@@3qqqqqqqq@@@(Internaliq353@q353H@qA@гР*'Genericq353Kq353R@@**Q*P@*F*E@*$*#@@)%.@%Q @! @`@z @@3qqqqqqqq@3@@@Б@ఠ$testr 3Z3fr 3Z3j@rA@@@e+@@@I.@e+@@@I-@e+@@@I,p+e+@@@I*e+@@@I+@@@I)@@I(@@I'@@I&j@I%3rrrrrrrr@h@@@డX$test!Xr=3Z3mr>3Z3n@ rA3Z3orB3Z3s@@@4@@@I@3@@@I@2@@@I10@@@I/@@@I@@@I@@I@@I@@I@@+#@@O/@A@ra3Z3b @@!@2@ఠ&weightrn3t3ro3t3@r{A@@@,@@@@I2,4@@@I1@@I0j@I/3rerdrdrerererere@wp@q@r@@@డ&weight!Xr3t3r3t3@ r3t3r3t3@@@,^@@@I,R@@@I@@I@5@,B @@'@A@r3t3|@@@"@ఠ&updater33r33@rA@@@+@@@I^j@I4@`@@@Ij@I9`@@@Ij@I:@@I;j@I5@@I6j@I33rrrrrrrr@I\U@V@W@@@࣠@!dAr33r33@rA@@%@@@@"fsAr33r33@rA@@*3rrrrrrrr@!6@@@@@@@@@@ఠ%stater33r33@sA@@f@@@IZm@I?3rrrrrrrr@*J@!@"@@@@ఠ!as 33s 33@sA@@f@@@I\@@@I[m@I@@@$@@@$@@@IC @డr&updates*33s+33@@,V@@@I$@f @@@I#@?@@@I @/@@@I"@@@I!@@I@@I@@I@@,;@@@,r@@@IL@@@@IK@Z@@@IH@3J@@@IJ@@@II@@IG@@IF@@IEb@@ఐ!dsm33sn33@@@o@@ఐ"fss|33s}33@{@@~@%states33s33@` @@V@@@I]n@Iin@Ig@@d @@@@@@Ijn@IY@A@s33@@ະ`ȠeԠe@@@I@@@Il@I@`Ρ&columns33s33@ఐǠ*may_appends33s34 @а@@@ e@@@Iul@Il@Il@Iz@@@Iy@Š@@@I{@@Ix@@Iw3ssssssss@@@@@@@@@ఐ"fss34 s34 @߰@@)@&columns34 s34@a @@f.@@@Itm@Im@Im@I%@@ఐ!as34s34@-@@I@@@Im@Im@I:@@S @@;@a1%statet33t33Aఐ" @F@f+@@@Il@IN@@ఐH"fst%33t&33@$@@nY@t)33t*34@@l\@@@m+@[A@j@Ik@A@t033@@@n@-@p@@@@@3t"t!t!t"t"t"t"t"@v@@t<353St=44!@ 3t(t't't(t(t(t(t(@v@@@A@@@B@@@ctH44"@,C@=B@@@J @5i@@@J j@@@J @@J@@J@,L@,M@'@=B@@@J@5{@@@Jj@@@J@@J @@J @'@'@#@=C@@@J@B@@@J@B@@@Jj@@@J@@J@@J@@J@#@#@@=C(@@@J@B-@@@J@B,@@@Jll@@@J@@J@@J@@J@@@@B@@@J!>CB@@@J @@J@ @!@@j@@t3539c@d@m@ఠ$difft4$4,t4$40@tA@@@f@@@Jk@J@ff@@@J@@@Jk@J@ff@@@J@@@Jk@Jt5C0@@@J@@@Jk@J@@Jk@J@@Jk@J@@Jk@J3tttttttt@@@@@lk@WV@@@L@@@࣠@%stateAu4$41u4$46@u A@@E3tttttttt@Ru4$4(u 44@@@@@  @@$lineAu4$47u4$4;@u!A@@P3uuuuuuuu@!\@@@@@@@@&column Au%4$4<u&4$4B@u2 A@@T3uuuuuuuu@d@@@@@@@@@ఠ)fullstate!u84E4Ou94E4X@uE!A@@cg@@@Jo@J3u*u)u)u*u*u*u*u*@%o@@@@@ະbt$lineuM4E4]uN4E4aAఐE @*@@b}&columnu[4E4cu\4E4iAఐB @ @"@b%stateui4E4kuj4E4pAఐu @W@0@@@ur4E4[us4E4r@@83@A@uu4E4K@@ఐ6/construct_patchu44w@2x@@@>@@@Jt۠C@@@J@@@J@@J3uvuuuuuvuvuvuvuv@M[T@U@V@@@@డ.compute_matrix(Internalu4v4|u4v4@ u4v4u4v4@@@C#@@@J? DJ@@@J@@J@(@) @@@C-@@@J @@@J@@J-@@ఐ)fullstateu4v4u4v4@7@@CD@@@Jp@Jp@JA@@/ @@?0@@@J@Jp@JI@@7@@J@c@@@A@k@K@A@@@@ @@6@@.'@(@)@@3uuuuuuuu@1@@u23"u44@ 3uuuuuuuu@+@@@u22@3uuuuuuuu@@@@@u22 @ @@iZiT@@hhA@hhH@hCh@h<h6A@g@D@?sg@@?k7X@7v2@2/@0 .@.0@.@@.@@@H@A@ 3@ 0;@@ ( +@ N@P@M H@@G@/@,A@@@3vvvvvvvv@*J@B@@@@U@@@@@@@@Z@@V@@@I^@@v8L  v944@J3v$v#v#v$v$v$v$v$@i@@@i@ii3v(v'v'v(v(v(v(v(@i@@@@vAL   @ @@ttA@tIq@qm@nmv@ml@ll@l7k@kl3@kk]A@ji@j@@i@@@3vCvBvBvCvCvCvCvC@ij@iiii@@ioiiA@i7i-h@@@hi6@hhA@h@E1E/A@EEA@E E@DD@DD@DD@DD@DsDq@DPDN@D-D+@CC@CC@CC@CC@@@@h3@@?7@83@3A0~@000A@00zA@0q0J@0C/@//@@@/0@/|@/t//@//@..@@.)@*%@%@@8@@@/@@A@A@=<@32@@@@@@񑠰@@@@l@  @  @ y x@ d c@ O N@@@ Dq@@ < @@@  @@  @ @   @  @  @@ E@@@@@@@@| J@@tF@@@9 4@@3@+@@@@>@@@@@@@@uC@@m?@@@2G@@@@j@@@jƱ'Diffingc@@Mb@@pi~A0 Y@A0c X@A0ٱW@@ e`@@iA0,A0p A0 @h^@@ iA07A0{A0@j(\@Ai+[@@.Z@A0F(A0'A0&A1F7V@@jR:U@@j=T@@k@R@@lCM@@udFL@@sIK@@uLF@@mQOE@AlRD@Am UC@Am!XB@Am6[A@AmL^@@A0vAx0A1/A 0|A 0A A15AC0A0ƠA1;@NJDK@ZD@]D@`MD蠰@_E @dEI@fHEp@b-E@aEE@cEޠ@S^F@VF-@hFB@i&FM@ H************************************************************************wA@@wA@L@ H wBMMwBM@ H OCaml wCwC@ H wDwD3@ H Gabriel Radanne, projet Cambium, Inria Paris wE44wE4@ H wFwF@ H Copyright 2020 Institut National de Recherche en Informatique et wGwG@ H en Automatique. wHwHg@ H wIhhwIh@ H All rights reserved. This file is distributed under the terms of wJwJ@ H the GNU Lesser General Public License version 2.1, with the wKwKN@ H special exception on linking described in the file LICENSE. wLOOwLO@ H wMwM@ H************************************************************************xNxN5@  This module implements a modified version of Wagner-Fischer See for preliminary reading. The main extensions is that: - State is computed based on the optimal patch so far. - The lists can be extended at each state computation. We add the constraint that extensions can only be in one side (either the left or right list). This is enforced by the external API. xRKKx]@/* Shared types v> The matrix supporting our dynamic programming implementation. Each cell contains: - The diff and its weight - The state computed so far - The lists, potentially extended locally. The matrix can also be reshaped. x]  xe  @5* accessor functions FO -* the shape when starting filling the matrix Eh m* [shape m i j] is the shape as seen from the state at position (i,j) after some possible extensions E9 (* the maximal shape on the whole matrix E4* debugging printer D  Building the patch. We first select the best final cell. A potential final cell is a cell where the local shape (i.e., the size of the strings) correspond to its position in the matrix. In other words: it's at the end of both its strings. We select the final cell with the smallest weight. We then build the patch by walking backward from the final cell to the origin. x%$$x&@: Computation of new cells x+x,@6 Boundary cell update x11!k!mx21!k!@ 7 The order of propositions is important here: the call [select_best_proposition [P_0, ...; P_n]] keeps the first proposition with minimal weight as the representative path for this weight class at the current matrix position. By induction, the representative path for the minimal weight class will be the smallest path according to the reverse lexical order induced by the element order [[P_0;...; P_n]]. This is why we choose to start with the [Del] case since path ending with [Del+] suffix are likely to correspond to parital application in the functor application case. Similarly, large block of deletions or insertions at the end of the definitions might point toward incomplete definitions. Thus this seems a good overall setting. x7^'"'&x8l*0*a@ Filling the matrix We fill the whole matrix, as in vanilla Wagner-Fischer. At this point, the lists in some states might have been extended. If any list have been extended, we need to reshape the matrix and repeat the process x=z++x>,,@@-./boot/ocamlc)-nostdlib"-I&./boot*-use-prims2runtime/primitives"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I%utils"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events"-cxzx{ L/home/touraine/ci/builds/workspace/precheck/flambda/false/label/ocaml-arm-32 >10/.-,+*)('&%$#"! @@0 qHC|)y,.{3xxxxxxxx@x@@5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tux0ɞyM۠*Format_doc0]mWϓ:Mݠv`0[@@Pc+zD&Stdlib0Lku]8_٠-Stdlib__Array0?3$( Q&.Stdlib__Buffer08APF< t..Stdlib__Digest0l!LHgErζ .Stdlib__Domain0Bj|5s)ڠ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ɢb tLir/Stdlib__Hashtbl0ѱN][/!,Stdlib__List0MYm 7R+Stdlib__Map0L5xE|O0~,J-.Stdlib__Option0J'%>Ty!s.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0\$;7 .Stdlib__String0H@11FD|GE@>`>j@@DNww'@ijk@@ll1@EݐC@@FDCz@G>E@]]!nĒn@5ؑ5oɑo@@OO@O}O@wwf@@-P͑@23@@@ll@ Z d,,@@::wwj@wwr@jqj"@/%//oo)@@XX@'(@@@@@ ґ @1L1V2P2@  @joj@@@jjðn/m@]g@GԐEJƑJ@@}@o*o5@O<hh%@@^ߑ^@@@@,6@ h @oy"@"J3m3x@@בU_de@BB@&kkQ@FC\\u<uF@pp@  $ $*UQU[@c66 jjk˕k@@GE?@ji@$]$g@23SoXoc@iʑi@  33H[FJ@ߑ89@&5&?kHk6@]]&@@@@@dOdY@GDB@Xbx w@MM@C4C>G{D@@.@8oo<@@@o^oi@@@bb@GOD@2T2a@nDnN@ HF@U&U0@^1^;@()kk@ ^ hcctu@@ @t~@x-xm@ƑаmBmk@""fgoo@;>;H@@@=G@< @on@!+@lݙl@gq&a&k@kk@l1k@\\ltl@l&ldnn@@HFHՕF@@22@@4+43on@)++@@Pz@@mDmmݰ@@{Dws@@ @ @@@A@@@AE@@@ D | x@@@@@@A@@@Am,Em)@@@D@@@@@@A@@@ABCmAm@@@mxAmg@@@AD@@@ApWEpT@@@oAo@oQBoF@@@AoBoy@@@oxBor@@@oqBoe@@@ABC@@ABxAx@xBx@@@AxBx@@@xBx@@@xBx@@@ABC@@o @o @@@AvX@vU@@@x@x@@@ABC@@