Caml1999T037gC&SwitchA+&sharedA0lambda/switch.mlRdlRdr@А!a@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@A@G@B@@@RddRd@@@@@A@@RdiRdk@@BA@;@A&SharedB@@@RduRd@@AA&SingleB@@@Rd@@BA@@A@Y@@@@@$@@@!@#Rd{@@А!aRd@@@@@#RdRd@@А!aRd<@@@@@@A@>@@>=@3@@@A+'t_storeBTT@А!a@3@N;@@@@@B@A@GG@BB@@@TXH@@@@CA@@TT@@bА#ctx@TT@@m@;& @B'act_get@@@@@@8C@@@@@@UU@@#DA.act_get_shared@@@@@@,QC@@@@@@@@@.V/V@@=EA)act_store@@@AC@@cC@@@@@@@@ǰBWCW@@QFA0act_store_shared@@@UC@@wC@"@@@@@@@аVX WXF@@eGA@@A@n@@@@@@q@@@n@#\\NbU@M@@Ш@б@г_$unitmUnU@@g@@гd%arrayvUwU@А!al}U~U@@@s @@z @@}@@@p@#llYV@X@@Ш@б@гo$unitVV@@w@@гt%arrayVV@гy&sharedVV@А!aͰVV@@@а @@@Ѱ@@Ұ@@@@@@#tW@s@@Ш@б@А#ctxW W @@б@А!aWW@@г#intWW@@@@ @@@@@@@@#X0@@@Ш@б@А#ctxX3X7@@б@А!a X;X=@@г#intXAXD@@@@ @@@@@@@@@A@@@ @3@@@&StoredEZJVZJ\@LAБA+!tC[cj[ck@@;@@@A@@@@@[ce@@@@'HA@@A@@@3@>N@A @A+#keyD'\ls(\lv@@;@@A@@@@@+\ln@@@@9IA@@A@@@3"!!"""""@@A@+compare_key8]w}9]w@б@г#keyC]wD]w@@ @@@3=<<=====@'!@A@@б@г-#keyT]wU]w@@ @@@@@г+#inta]wb]w@@ @@@@@@@@!@@@'@@$* @@@o]wy@@}JA@@@*(make_keyz^{^@б@гq!t^^@@ @@@3~~@CX@A@@г砐&option^^@гw#key^^@@ @@@@@@@@@ @@@$@@!'@@@^@@KA@@@'@A@A@J@C @@3@0E@A 3@@AZJ__@@@ZJJ@@3@@@)CtxStored%Haa@OAБРڠ&Storedbb@3@A@A@@xB@@@.@A@@F;@@@A@@@@@@@@A@ F;@@@A@@@@@@@@A@!@ @@@@@@@@@@@@@@@@@"@#@@@@@@@@@@@@o@m@@b?@@=@@A+'context#G(c)c@@;@@A@@@@@,c@@@@:MA@@A@@@3#""#####@QBA=<87&%@A @(make_key$$listK@@@e@@@dI @@@b@@@a@@`@@_@@^@mX  nX  @@G@@&update7@I@@@]@@&optionL!a@X@@@\  @@@[@@Z@v@@@Yz@@@W@@V@@U@@T@^^@@H@@)singleton8@u@@@S@!a@R@@@Q@@P@@O@jW[jW{@@I@@&remove9@@@@N@!a@L@@@M@@@K@@J@@I@oo@@J@@%merge:@@@@@H@`!a@A@@@G@k!b@?@@@Ft!c@=@@@E@@D@@C@@B@@@@@@@@@>@@@<@@;@@:@@9@ vY] x@@ K@@%union;@@@@@8@!a@1@ @@@7@@6@@5@@4@@@@3@@@@2@@@0@@/@@.@@-@9fj:f@@ML@@(cardinal<@)!a@,@@@+#intA@@@*@@)@RS@@fM@@(bindings=@B!a@'@@@( @>@@@&@@@%@@@$@@#@s8<t8a@@N@@+min_binding>@c!a@!@@@"@[@@@ @@@@@@bfb@@O@@/min_binding_opt?@!a@@@@#@{@@@@@@@@@@@@JNJ|@@P@@+max_binding@@!a@@@@@@@@@@@@@@484[@@Q@@/max_binding_optA@!a@@@@`@@@@@@@@@@@@ @ @@R@@&chooseB@ݠ!a@ @@@ @@@@ @@@ @@@  @@S@@*choose_optC@!a@@@@@@@@@@@@@@@@@*+@@>T@@$findD@@@@@!a@@@@@@@@@BC@@VU@@(find_optE@@@@@7!a@@@@۠ @@@@@@@@_IM`Is@@sV@@*find_firstF@@=@@@$boolE@@@@@@\!a@@@@@T@@@@@@@@@@@    D@@W@@.find_first_optG@@f@@@)@@@@@@!a@@@@'@@@@蠠@@@@@@@@@@@"*"."*"l@@X@@)find_lastH@@@@@U@@@@@@!a@@@@@@@@ޠ@@@@@@@@#_#c#_#@@Y@@-find_last_optI@@@@@|@@@@@@֠!a@@@@z@@@@ՠ@@@@@@@@@@@$y$}$y$@@Z@@$iterJ@@@@@@!a@$unitF@@@@@@@@ @@@ @@@@@@@@-%%.%& @@A[@@$foldK@@ @@@@!a@@#acc@@@@@@@@0@@@@  @@@@@@@Q'%')R'3'l@@e\@@#mapL@@!a@!b@@@@M @@@Q @@@@@@@@p(e(iq(e(@@]@@$mapiM@@N@@@@!a@!b@@@@@@q @@@u @@@@@@@@))))@@^@@&filterN@@r@@@@!a@;@@@@@@@@ @@@@@@@@@@@****@@_@@*filter_mapO@@@@@@!a@O!b@@@@@@@@@@@@ @@@@@@@@ ,, ,,?@@`@@)partitionP@@@@@@!a@@@@@@@@@ @@@@@@@@@@@@@@@@@@.../%@@#a@@%splitQ@@@@@!a@@@@@ @@@@@@@@@@@@@@@@@@<$0'0+=$0'0\@@Pb@@(is_emptyR@,!a@@@@@@@@@@S022!T022;@@gc@@#memS@/@@@@H!a@@@@@@@@@~@@}@o32l2pp32l2@@d@@%equalT@@!a@x@@@@|@@{@@z@m@@@y@s@@@w#@@@v@@u@@t@@s@722723-@@e@@'compareU@@!a@n@]@@@r@@q@@p@@@@o@@@@mm@@@l@@k@@j@@i@=4(4,=4(4a@@f@@'for_allV@@@@@h@!a@dd@@@g@@f@@e@ @@@cn@@@b@@a@@`@A45A450@@g@@&existsW@@@@@_@!a@[@@@^@@]@@\@ @@@Z@@@Y@@X@@W@F55F55@@h@@'to_listX@!a@U@@@V@@@@T@@@S@@@R@@Q@&M6~6'M6~6@@:i@@'of_listY@ՠ@ @@@P@!a@M@@O@@@N(@@@L@@K@GQ66HQ67@@[j@@&to_seqZ@7!a@I@@@J&Stdlib#Seq!t@9@@@H@@@G@@@F@@E@nW77oW77@@k@@*to_rev_seq[@^!a@C@@@D'#Seq!t@]@@@B@@@A@@@@@@?@[8A8E[8A8n@@l@@+to_seq_from\@n@@@>@!a@<@@@=P#Seq!t@@@@;@@@:@@@9@@8@@7@_88_88@@m@@'add_seq]@l#Seq!t@@@@6@!a@2@@5@@@4@  @@@3Ơ@@@1@@0@@/@d99d99@@n@@&of_seq^@#Seq!t@@@@.@!a@+@@-@@@,@@@*@@)@ h:: h::>@@o@@@@-?@/'-@БA+!t'L *if +if@@;@@A#key@@@@@@@ 5ifz 6if@@@@ DQA@@Aг !A Aif Bif@ Eif@@@3 < ; ; < < < < <@W#;@@@A+@@@!@@@@@@@@@@@@@@@3 I H H I I I I I@c@@@ఠ'compare( `if aif@ oRA@@@H@@@(@@@@'@@@&@@%@@$M@#3 j i i j j j j j@QK@@@డ+compare_key!A if if@  if if@@@$@@@@)@@@:@@@@@@@@)@'@@2#@A@ if@@@&@wqA@C<@=@>@@3        @,F@@ ifs if@ 3        @@@@@ if@aM;@@@A@@@@@@@@@@@A@bM;@A@A@@@@@@A@c @@@@@@d@"@@@@@@@@@@@@@@@@@@@@e@@@@@@(@@@@@@0|@@@@@@@@@@@@@{@x@wf@3@@@@@vs@@@ow@@@@@@O}@@@S@@@@@@@@@@n@k@jg@R@@@@ibl@@@@@@@@e@b@ah@a@@@@q`@@@ud@@@@@@@@\@Y@Xi@@v@@@@WV@@@@RQ@@@ML@@@@@@@@@@f@@@@a@@@\@@@@@@@@@@H@E@Dj@@@@@@C@E?H@@@@@@@@@@N@@@@T@@@àX@@@@@@@@@@>@;@:k@͠9@@@5@@@@@@2@/@.l@ڠ-@@@)@@@@@:@@@@@@@@(@%@$m@#@@@@@@@@-@@@@@@@n@@@@@@@@@'@@@@@@@@@@o@@@@@@@@@@@@@@ @ @p@.@@@ @.@@@ @@@ @@@ @@@@@q@E@@@ @B@@@ @@@ @@ @@@r@X@@@ @X@@@ @@@ @@@ @@ @@@s@d@@@ @t@@@ @@ @@ @@@t@s@@@ @@@@ ݠ@@@ @@ @@ @@@u@@@@@ @@@ @@ @@@@ @@@@ @@@ @@ @@ @@@v@@@@@ &@@@ %@@ $@@@@ #Ơ@@@@ "@@@ !@@@ @@ @@ @@@w@@@@@ .@@@ -@@ ,@٠@@@ +@@@@ *@@@ )@@ (@@ '@@@x@@@@@ 7@@@ 6@@ 5@@@@ 4@@@@ 3@@@ 2@@@ 1@@ 0@@ /@@@y@@@@@ ?@@@@ >@@ =@@ <@@@@ ;@@@ :@@ 9@@ 8@@@z@@@@@ G@@@@ F@@ E@@ D@1@@@ C@@@ B@@ A@@ @@@@{@@@@ L@A@@@ KE@@@ J@@ I@@ H@@@|@@F@@@ S@@@ R@@ Q@X@@@ P\@@@ O@@ N@@ M@|@y@x}@@]@@@ [@ws@@@ Z@@ Y@@ X@r@@@ Wv@@@ V@@ U@@ T@r@o@n~@@w@@@ c@mih@@@ b@@ a@@ `@v@@@ _r@@@ ^@@ ]@@ \@d@a@`@@@@@ m@_[@@@ l@@ k@@ j@g@@@ i@o@@@ g@u@@@ h@@ f@@ e@@ d@Z@W@V@@@@ u@ĠU@@@ t@̠]@@@ q@Qc@@@ r@ؠi@@@ s@@ p@@ o@@ n@P@M@L@K@@@ xG@@@ w@@ v@F@C@B@@@@ }@A@@@ |=@@@ {@@ z@@ y@<@9@8@@7@93@@@ @@ @@ @ A@@@ @G@@@ 2@@@ @@ @@ @@ ~@1@.@-@@,@.(@@@ @@ @@ @&6@@@ @,<@@@ '@@@ @@ @@ @@ @&@#@"@@0@@@ @!@@@ @@ @@ @E)@@@ @@@ @@ @@ @@@@@I@@@ @@@@ @@ @@ @^@@@ @@@ @@ @@ @@ @ @k @@@ @k@@@ @@@ @@@ @@ @@@@@~@@@ @@@ @@@ @@@ @@ @@@@@@@ @@@@ @@@ @@@ @@ @@@@@@@  @@@@ @@@ @@@ @@ @@@@@@@ @Р@@@ *٠@@@@ @@@ @@@ @@ @@ @@@@?Ҡ@@@@ @@@ @@@ @@@@ @@@ @@ @@ @@@@^Ǡ@@@@ Ơ@@@ @@@ @@@ @@ @@@@5@@hVX5@6@8A+&intern Nkk@@;@@#mapA@ "!t@@@@/@@@@0@@1@@@3ll@@UA$nextA@@@@6mm@@ VA$actsA@@@@@9@ !t@@@:@@;@@@=.n/n(@@=WA@@A@@@@@2k3n*@@@@ATA@#KK:l;l@5A@Ш@гO$AMapFlGl@VJlKl@@В@гY$boolXlYl@@a3ONNOOOOO@ k @A@A@@@@qp@TS@GF@65@  @@@@@@@@on@ZY@ML@<;@! @@@@@@@wv@_^@FE@$#@@@@@@@@qp@\[@ED@.-@@@@@ ;@@@A@@@@@@@@@@dc@@@г#intll@@l@@@mp@@@nl@@@@4r@@#Ġİmm@A@Ш@гȠ#intmm@@@@@@7@@#ˠ˰nn@A@Ш@гϠ$listn#n'@В@гԠ$boolnn@@@@@г٠!Ann@ n  n!@@@@@@@@@n$@@@@>@@@A@@@@3        @@@@ఠ(mk_store!p,2"p,:@0XA@@@@@@[O@Xe@@@Q@Ġ @@@ 0Q@@@@O@Y@@ZO@W376677777@a[@@@࣠@%paramAĠ"()Qp,;Rp,=@;)@@@N@@@@A@@A"@@@@@@03NMMNNNNN@=]p,.^[  -@@@@@@@@ఠ"stkq@Hlq@J@zYA@@@@@dR@]@ະ3 @@@VA@@3tsA@A@Ao@l3ihA@B@AS@P@A|@y#maprMUrMX@డ %empty$AMaprM[rM_@ rM`rMe@@   p@@@@ l@ i @@@@@@k@@@@l@@j@@@iR@mZ@6$nextshpsht@@shwshx@@@@@wR@xm@H$actst{t{@ภ"[]t{t{@;ANK@@U@@@@AA@A@@D@ @@Ǡ@@@@@@@@@@@@@R@@@@rMSt{@@@A@q@D@@@ఠ#addvv@ ZA@@@@@@R@@@@@R@ @@@R@@@R@@@R@3  @@@@@@࣠@)mustshareA'v(v@6[A@@%3      @2/v0z@@@@@  @@#actA;vC * A@@@@n@@@@m@@@@@@@@@@@@ఐ)mustshareC * BC * K@ΰ@@'@@ఐѠ#actC * LC * O@@@4@@+@@85@A@C * 6@@ ఐV"stD S _D S a@@@S@@@3@5WP@Q@R@@@#mapD S bD S e@Wడ#add$AMapD S iD S m@ D S nD S q@@O@@@ @@@@@kR@1R@頠@@@@@@Z@Z@ Z@@f@@@j@@@@@@@@@A@@ఐ#keyD S rD S u@@@P@@@[@S@@@ఐt)mustshare(D S w)D S @S@@d@@ఐ!i4D S 5D S @m@@@Z@Z@ t@@<D S v=D S @@RZ@y@@ఐ᠐"stLD S MD S @3@@@@@@@#mapXD S YD S @@@Šv@@@[@[@@@ @@ww@@@[@@@@@@@Z@@ఐ!iwE  xE  @@@Y@@@@@@@@@@~oyF  @@@Ġ$NoneG  G  @;6@@@@AA@AY@@@@@@2 +@@@;@@@:q@@9 2@@@=@@@<x@@@ఐ#addH  H  @@@@@@@$@@@@#@@@"@@!@@ @@ఐ )mustshareH  H  @@@7@@ఐ#actH   @@@1@@*@@-@@@A|=@@/3@@@@A@LR@?@A@ఠJ  J  @_A@@@@@@CR@@%arrayJ@@@T@@@@R@A@@BR@3@P@@@࣠@AĠJ  J  @@@@@"3@M@@@@@@డ%Array'of_listJ  J  @ J  J  @@@$listK!a@U@@@@@@@@@@)array.mli@@-Stdlib__ArrayP@ @@@J@@@QN@@@@@376677777@@@@@డ$List'rev_mapSJ  TJ  @ WJ  XJ  @@@@!a@}!b@{@@x@$listK@@@w@@@v@@u@@t@(list.mli,,,Z@@,Stdlib__ListY@)$@@@@@h@@@U@@U@@@U@U@@@@)@@@& @@@@@@@X@@࣠@YA@@J  J  @@%@@ఠ#actJ  J  @hA@@*@@J  J  @@@8@3@@@@ @@ఐ#actJ  J  @?@@@@@3@ @@@J  J  @@@XI@@V@V@@@ఐy"stJ  J  @˰@@x@@@@@$actsJ  J  @s@@z@@@V@V@@@J  J  @@@@@U@V@@@ @@@ A@&R@@A@ J  @ఠLML " *L " 4@"`A@@@@@@R@5, @@@@@@@@@R@@@R@3#""#####@@@@࣠@AĠ:L " 5;L " 7@@@@@"321122222@@@@@@@@ఠ$actsJM : DKM : H@YiA@@c0 4@@@V@@@@U@@@@U@"@డ%Array'of_listlN K SmN K X@ pN K YqN K `@@T@@@T&@@@*@@@@@3srrsssss@@@@@డ$List'rev_mapO a lO a p@ O a qO a x@@<@@@@@;@@@V@@PV@@@V@VV@@@@D@@@A @@@@@@@7@@࣠@tA@ఠ&sharedP y P y @jA@@+@@ఠ#actP y P y @kA@@0@@P y P y @@@>@9@@@@ @@ఐ$&sharedQ  Q  @N@$@%@@O3@7/#L@@@@@ภ&SharedQ  Q  @;el@@@fA@@B@Ad@@aఐ5#act Q   Q  @@@d@@@@@@@!@ภ&SingleQ  Q  @;w@uAA@B@As@@qఐP#act$Q  %Q  @3@@7@@@@X@:@+Q  @@<@-P y .Q  @@@@@W@W@@@ఐ֠"stAR  BR  @(@@@@@@ @$actsMR  NR  @а@@@@@W@W@ @@YO a kZR  @@=@@@V@W@&@@ @@'@A@eM : @ @@ డ$iter$AMapuS  vS  @ yS  zS  @@@@@@@@]Y@@@@@@@@e@@@V@@@@@@@@U@R@@@@@@@@@<@@@DU@;@#intA@@@U@<@@=U@@@@@@@@@ @@@@@@@@@@3@yr@s@t@@@@࣠@ A@T  T  @@@@@53@@@@@@@ A@ఠ&sharedT  T  @lA@@B@@ఠ!iT  T  @mA@@G @@T  T  @@@U@P@@?)@@ @@ఐ$&sharedU  *U  0@e@$@%@@f3@M/#c@@@@@డ%Array#getU  <U  DA@4!a@@@@@@@@ @@@@/%array_safe_getBA @@@@d::d:r@@B@A@@ @@@X@@@WY@I@@@K@ @@@J@@H@@GG@@ఐ$acts=YU  @@?@@>"@@@UZ@YZ@V[@@ఐ!imU  BnU  C@d@@h@@UT@@1i@Ġ&Single{V J Y|V J _@cఠ#actV J `V J c@nA@@ b@@@a@@@@@g i@@@c@@@b@@n p@@@e@@@d@@@డ #setopV J gV J }A@!a@@@@@ @@@@ $unitF@@@@@@@@@Ő/%array_safe_setCA@@@@@mm@@C@&%A@@# @@@@@@Z@y@@@{@3@@@z@'@@@x@@w@@v@@u3@ha@b@c@@@@ఐ$actsLV J k@5N@@M*@@@[@[@@@ఐ!iV J mV J n@@@a$@@ภ&SharedV J sV J y@ఐ#actV J zv@6w@@J[@;@@z@@PZ@>@@~}@@ :@@@sB@Ġ&Shared2W ~ 3W ~ @8@7W ~ 8W ~ @@ @@@l4@@@ @@ @@@n@@@m<@@ !@@@p@@@oC@@@ภ PW ~ QW ~ @ @@@.K@@@ATU  6@@*@@@X@3ONNOOOOO@R@@@@\U  ' @@@^T  _W ~ @@@@@@.@>@@@-@@,@@+V@V@@@ఐ "stzX  {X  @ a@@ @@@@@#mapX  X  @ @@ @@@*V@V@@@ @@ @@@U@)@ఐT$actsY  Y  @@@@-@@@>@@f@jA@R@i@A@L " & @@3 |@@@@@3@@A@A@3~@@B@Ar@o3lk@@C@A_@\@A@'act_get[  [  @ఐ㠐#get[  [  @@@@@@ @@@ޠ @@@@@@@@3@ , U N@ O@ P@@@@@(.act_get_shared[  [  @ఐӠ*get_shared[  [  *@@@@ @@@͠ @@@@@@@@@@@(@I)act_storeZ  Z  @ఐ %store Z   Z  @7@@@ @@@ @ @@@ @ @@@  @@@ @@ @@ @@ N@@ภ%false)Z  *Z  @;?@@@@B@@A@@@@@ @@@ "S@ &a@@) @@@ @@@ +@ @@@ * ?@@@ )@@ (@@ 'o@0act_store_sharedGZ  HZ  @ఐ ͠%storeRZ  SZ  @~@@@ 7@@@ F@ @@@ E@ ;@@@ D e@@@ C@@ B@@ A@@ @@@ภoZ  pZ  @@@@ T@@@ WS@ [@@&@@@ =@@@ `@ Y@@@ _ @@@ ^@@ ]@@ \@@@Z   )@@ X@  *@@ Y @ Z +@@ Z p@  ,@@ [ 1@ : -A@ fO@ h 4@A@ 1@ 1 0@ L@@@ @@  A@ x q@ r@ s@@3@ U {@@g0O\ . 1@3@@@@@3@@@@@g00 @ @%StoreO^ 3 :^ 3 ?@uA@Т!AP^ 3 @^ 3 A@Р&Stored^ 3 B^ 3 H@3@,@$@'&A@A@@@@@@@@~@^]@SR@>=@-,@@@@@@@@@ts@YX@:9@#"@ @@@@@@ut@ji@ZY@@?@&%@@@@@@@@gf@@@PS@@JDA@ @@@@@ml@@Б"MeQ=_ S \>_ S ^@LsA@гР(CtxStoreI` a eJ` a m@@@A@A@@@@fe@IH@<;@+*@@@@@@@@ut@dc@ON@BA@10@@@@@@@@lk@TS@;:@@@@@@@@{z@fe@QP@:9@#"@@@@@@@A@ @@3@@@pA@@@БР!Ab | b | @@;@@A@@@ i@@@@@@@A@;@@A@@@ j@@@@@@@A@q@j4@@3@.@@@R;@@@A'@@@ u@@@@@@@A@R;@@@A1@@@ t@@@@@@@A@@@@@ s@@@@ r@@@ q@@ p@@ o@@@@-@@@ n@@@ m@@@ l@@ k@k@i@@b | Q@@R@;A+'contextS$c  %c  @@;@@A@@@ w@@@@-c  .c  @@A@==>>>>>@@@@ఠ(make_keyUd  Vd  @drA@@@4@@@ T@ @Y@@@ ޠM@@@ @@@ @@ T@ @@ T@ ~3hgghhhhh@;UO@@@࣠@1AĠ0d  d  @/@@@@&@@@@డ(make_key!Ad  d  @ d  d  @@@4@@@ 2@@@ @@@ @@ @@@@A2@&A@MT@ 5@A@d  @@@8@ʠA@b[@\@]@@3@Be@@a n ue  @3@@@@۠Ҡɠ@@@@B@@@  @@~e  @ӱT@U;@@@A@@@#D@#2@@@@@@@A@U;@A@A@@@@@@A@ @@@#E@@@@"@@@#K@@@@@#J@@@#I@@#H@@#G@@#F@@@@@@@#S@@(@@@#R@@@#Q0@@@#P@@@#O@@#N@@#M@@#L@@@@3@@@#\@@@@@#[@@@#Z@@#Y@O@@@#XS@@@#W@@#V@@#U@@#T@@@@R@@@#`@b@@@#_@@#^@@#]@@@@a@@@#e@q@@@#du@@@#c@@#b@@#a@@}@|@@v@@@#r@{z@@@#q@vu@@@#pqp@@@#o@@#n@@#m@@#l@@@@#k@@@@#j@@@#i@@#h@@#g@@#f@l@i@h@@@@@#}@g@icl@@@#|@@#{@@#z@@#y@r@@@#x@x@@@#wà|@@@#v@@#u@@#t@@#s@b@_@^@͠]@@@#Y@@@#@@#~@V@S@R@ڠQ@@@#M@@@@#@^@@#@@@#@@#@L@I@H@G@@@#@@@@#@Q@@#@@#@C@@@?@>@@@#:@@@@#@K@@#@@@#@@#@9@6@5@4@@@#@@@@#@>@@#@@#@0@-@,@.+@@@#'@.@@@#@8@@#@@@#@@#@&@#@"@E!@@@#@B@@@#@+@@#@@#@@@@X@@@#@X@@@#@%@@#@@@#@@#@@@@d@@@#@t@@@#@@#@@#@ @@@s@@@#@@@@# @@@#@@#@@#@@@@@@@@#@@@#@@#@@@@#@@@@#@@@#@@#@@#@@@@@@@@#@@@#@@#@@@@#@@@@#@@@#@@@#@@#@@#@@@@@@@@#@@@#@@#@٠@@@#@@@@#@@@#@@#@@#@@@@@@@@#@@@#@@#@@@@#ՠ@@@@#Ǡ@@@#@@@#@@#@@#@@@@@@@@#@@@@#@@#@@#@@@@#@@@#@@#@@#@@@@@@@@#@@@@#@@#@@#@1@@@#@@@#@@#@@#@@@@@@@#@A@@@#E@@@#@@#@@#@@@@@F@@@#@@@#@@#@X@@@#\@@@#@@#@@#@@@@@]@@@#@@@@#@@#@@#@r@@@#v@@@#@@#@@#@@@@@w@@@#@@@@#@@#@@#@@@@#@@@#@@#@@#@@@@@@@@$@@@@$@@#@@#@@@@#@@@@#@@@@#@@#@@#@@#@~@{@z@@@@$ @Ġy@@@$@̠@@@$@u@@@$@ؠ@@@$@@$@@$@@$@t@q@p@o@@@$ k@@@$ @@$ @j@g@f @@@@$@e@@@$a@@@$@@$@@$ @`@]@\ @@[@]W@@@$@@$@@$@ e@@@$@k@@@$V@@@$@@$@@$@@$@U@R@Q @@P@RL@@@$#@@$"@@$!@&Z@@@$ @,`@@@$K@@@$@@$@@$@@$@J@G@F @@0@@@$+@EA@@@$*@@$)@@$(@EM@@@$'@@@@$&@@$%@@$$@?@<@; @@I@@@$3@:6@@@$2@@$1@@$0@^B@@@$/5@@@$.@@$-@@$,@4@1@0@k/@@@$8+@k@@@$7@<@@$6@@@$5@@$4@*@'@&@%@~@@@$=@$@@$<@@@$;(@@@$:@@$9@ @@@@@@$B@@@@$A@*@@$@@@@$?@@$>@@@@ @@@$G0 @@@@$F@@@$E@@@$D@@$C@@@@@@@$N@Р@@@$MN@@@@$L@@@$K@@@$J@@$I@@$H@@@@c@@@@$U@@@$T@@@$S@@@@$R@@@$Q@@$P@@$O@@@@@@@@$Z@@@$Y@@@$X@@@$W@@$V@@@@@$'@@T;@@A@?@@@@$]@@@@$^@@$\@@@$[@A@@@@$_ @  A@@@@@$b@m!@@@$g@$c@@$a@@@$`@@@A@@@@@@@@A@@ @@@$t @@@$n@$j@@@$s@$o@@@$i@@$h@&@'@@@@$K_ S U@@@ఠ(mk_store$Xg  $Yg  @$gtA@@@5@@@,F2!X@@@,DC@@@,E@@@,C@@,BV@,23$d$c$c$d$d$d$d$d@9@@A@A@@@@ed@HG@;:@*)@@@@@@@@ts@cb@NM@A@@0/@@@@@@@@kj@SR@:9@@@@@@@@zy@ed@PO@98@"!@@@@@@@A@@@@@@@డ(mk_store"Me$g  $g  @ $g  $g  @@@@@@,A@@@,?@@@,@@@@,>@@,=@@հ@@@A@$g  @@@@@7@@@@@@@3$$$$$$$$@@@%^ 3 L%h  @ 3$$$$$$$$@V@@@[@XG3%%%%%%%%@F@@@@%^ 3 3 @ @!S/[%l  %l  @%'MAБA+)primitiveV%(n  %)n  #@@;@@"A@@@@@%,n  @@@@%:vA@@A@@@3%#%"%"%#%#%#%#%#@i@v@p@onA@edA@a`@ZY@FE@+*@ @@@@@@@ut@`_@ON@:9@)(@@@@@@@@kj@VU@FE@10@@@@@@@@nm@WV@@?@+*@@@@@@@@ @@A@gf@@@Q\@@I@@@@Aru@%eqint%o $ *%o $ /@г)primitive%o $ 2%o $ ;@@ @@@,G3%%%%%%%%@@A@@@%o $ & @@%wA@ @@%neint%p < B%p < G@г)primitive%p < J%p < S@@ @@@,H3%%%%%%%%@2@A@@@%p < > @@%xA@ @@%leint%q T Z%q T _@гà)primitive%q T b%q T k@@ @@@,I3%%%%%%%%@2@A@@@%q T V @@&yA@ @@%ltint&r l r&r l w@г᠐)primitive& r l z& r l @@ @@@,J3&&&&&&&&@2@A@@@&r l n @@&!zA@ @@%geint&s  &s  @г)primitive&'s  &(s  @@ @@@,K3&!& & &!&!&!&!&!@2@A@@@&1s   @@&?{A@ @@%gtint&<t  &=t  @г)primitive&Et  &Ft  @@ @@@,L3&?&>&>&?&?&?&?&?@2@A@@@&Ot   @@&]|A@ @@A+#locW&[v  &\v  @@;@@#GA@@@@@&_v  @@@@&m}A@@A@@@3&V&U&U&V&V&V&V&V@+@A@A+#arg X&mw  &nw  @@;@@#YA@@@@@&qw  @@@@&~A@@A@@@3&h&g&g&h&h&h&h&h@@A@A+$test!Y&x  &x  @@;@@#kA@@@@@&x  @@@@&A@@A@@@3&z&y&y&z&z&z&z&z@@A@A+#act"Z&y  &y  @@;@@#}A@@@@@&y  @@@@&@A@@A@@@3&&&&&&&&@@A@$bind#&{  &{  @б@г@#arg&{  &{  @@ @@@,M3&&&&&&&&@'!@A@@б@б@гS#arg&{  &{  @@ @@@,N@@г<#act&{  &{ @@ @@@,O @@@@@,P#@@гL#act&{ &{  @@ @@@,Q0@@@@@,R3&{   @@@:@@,S7= @@@&{  @@&AA@@@=*make_const$&| &| @б@г&̠#int'| '| !@@ @@@,T3&&&&&&&&@Vk@A@@г#arg'| %'| (@@ @@@,U@@@@@,V@@@'|   @@'*BA@ @@+make_offset%''})/'(}):@б@гŠ#arg'2})='3})@@@ @@@,W3','+'+',',',',',@1F@A@@б@г' #int'C})D'D})G@@ @@@,X@@г㠐#arg'P})K'Q})N@@ @@@,Y@@@@@,Z!@@@'@@,[$* @@@'^})+@@'lCA@@@*)make_prim&'i~OU'j~O^@б@гL)primitive't~Oa'u~Oj@@ @@@,\3'n'm'm'n'n'n'n'n@CX@A@@б@г&$list'~Or'~Ov@г"#arg'~On'~Oq@@ @@@,]@@@@@@,_  @@г"$test'~Oz'~O~@@ @@@,`-@@@@@,a0@@@6@@,b39 @@@'~OQ@@'DA@@@9*make_isout'''@б@гX#arg''@@ @@@,c3''''''''@Rg@A@@б@гi#arg''@@ @@@,d@@гd$test''@@ @@@,e@@@@@,f!@@@'@@,g$* @@@'@@'EA@@@*)make_isin(''@б@г#arg((@@ @@@,h3((((((((@CX@A@@б@г#arg((@@ @@@,i@@г$test(%(&@@ @@@,j@@@@@,k!@@@'@@,l$* @@@(3@@(AFA@@@*/make_is_nonzero)(>(?@б@гܠ#arg(I(J@@ @@@,m3(C(B(B(C(C(C(C(C@CX@A@@г٠$test(X(Y@@ @@@,n@@@@@,o@@@(c @@(qGA@ @@+arg_as_test*(n(o@б@г #arg(y(z@@ @@@,p3(s(r(r(s(s(s(s(s@1F@A@@г $test( ( @@ @@@,q@@@@@,r@@@( @@(HA@ @@'make_if+((@б@г*$test((#@@ @@@,s3((((((((@1F@A@@б@г)#act('(*@@ @@@,t@@б@г8#act(.(1@@ @@@,u @@гE#act(5(8@@ @@@,v-@@@@@,w0@@@%@@,x3( @@@9@@,y6<@@@(@@(IA@@@<+make_switch,(9?(9J@б@г#loc(9M(9P@@ @@@,z3((((((((@Uj@A@@б@г#arg)9T)9W@@ @@@,{@@б@г(%array)9_)9d@г(#int)'9[)(9^@@ @@@,|*@@@@@@,~/ @@б@г(%array);9l)<9q@г#act)E9h)F9k@@ @@@,H@@@@@@,M @@гƠ#act)W9u)X9x@@ @@@,Z@@@@@,]@@@5@@,`< @@@U@@,cX@@@i@@,fl@@@)k9;@@)yJA@@@l*make_catch-)vz)wz@б@г#act)z)z@@ @@@,3){)z)z){){){){){@@A@@В@г)^#int)z)z@@ @@@,@@@б@г#act)z)z@@ @@@,$@@г!#act)z)z@@ @@@,1@@@@@,4@@@@)@ @@,;.)z@@@B @@,?E@@@)z|@@)KA@ @@E)make_exit.))@б@г)#int))@@ @@@,3))))))))@^s@A@@г\#act))@@ @@@,@@@@@,@@@) @@*LA@ @@@A@]H@A,@%@ @@@A@A@A@~A@u)@"@@l@e,@%@@@>@7@a@Z3@@3********@G\5@A13*!* * *!*!*!*!*!@@A*.m  */@@@*1l  @@3*(*'*'*(*(*(*(*(@@@$MakeZ\*>*?@*MA@Т#Arg0]*J*K@Р;!S*S*T@3*K*J*J*K*K*K*K*K@)D93A@@@p@iT@M8@1@A@A@A@A@@[@T@@@L@E@@@@@@@@Yo@@76@@БA+%inter1^*:D*:I@А!a@,3********@M_@X@]*NAb;@@,@A@A@G@B@@@*:<*@@@@*OA@@*:A*:C@@)$@;@A%cases2@@*=@*@@@,@*@@@,@*@@@,@@,@@@,*NR*Ns@@*PA'actions3@@*^F_@,@@@,*tx*t@@*QA@@A@@@@@@<@@@9@#33*NW@@@Ш@г6%array*Nl*Nq@В@г;#int+N[+N^@@Cg@@@г@#int+Na+Nd@@Hr@@@гE#int+Ng+Nj@@M}@@@^~@@@c+ NZ(@@g@@,@N@#JJB+'t@A@@Ш@гM%array+0tK@А!aT+6t+7t@@@[S@@^@@,@W@@A@@@@3+1+0+0+1+1+1+1+1@@@@ఠ0small_size_limit4+H+I@+WRA@@*O@@@,_@,3+F+E+E+F+F+F+F+F@@@@H+W+X@@ @A@+Z@ఠ1medium_size_limit5+c+d@+rSA@@*j@@@,_@,@P+p+q@@ !@A@+s@@@$@ఠ'get_act6+!!+!!@+TA@@@i@@@,Ƞ@@@,ɠ@@@,_@,@@,_@,@@@,_@,@z@@@,_@, @@,_@,@@,_@,3++++++++@Zha@b@cNG@H@I@@@࣠@%cases+!!+!!@,YA@@b@@@@@o@m@k@@,@డ*+ڠ+۰,!!,!!AA@@@@@,@@@@,@@,@@,8@@ఐt%cases,*!!@R@@D@@ఐf!i,6!!,7!!@N@@Q@@('@@R@A@,;!!)@@ఐJ!r,C!!@@I@J@@3,;,:,:,;,;,;,;,;@_S@@@@@a@A@_@,@A@ఠ7,S!!,T!!@,bUA@@@<@@@,_@,@@@,@@@,@@-_@,@@@-_@,@M@@@-_@,@@,_@,@@,_@,3,q,p,p,q,q,q,q,q@@@@࣠@%cases?A,!!,!!@,ZA@@13,,,,,,,,@@@@@@@!i@A,!!,!!@,[A@@$3,,,,,,,,@C@@@@@@@@@@ఠ!rA,!!,!!@,\A@@L3,,,,,,,,@$>@@@@@@@,!!,!!@@O @@@,!!,!!@@Q@@@@@`@\@Z@@,@డ+P,,,!!,!"AA@@~@@@,@@@@,@@,@@,2@@ఐi%cases,!!@R@@>@@ఐf!i,!!,!!@H@@K@@('@@L@A@,!!)@@ఐY!r-""-"" @@Y@Z@@3-,,-----@Zc@@@@@\@A@_@- @A@-!! @ఠQ8R-" "-" "@-)VA@@@@@@-@@@-_@-@@@-@@-0_@-!@@@--_@- @@@@-,_@-@@-_@-@@-_@,3-8-7-7-8-8-8-8-8@@@@࣠@%casesBA-O" "-P" "@-^]A@@13-H-G-G-H-H-H-H-H@@@@@@@!iCA-^" "-_" " @-m^A@@$3-W-V-V-W-W-W-W-W@C@@@@@@@@@@@-q"#"+-r"#",@@F3-h-g-g-h-h-h-h-h@8@@@@@@ఠ!rD-~"#"--"#".@-_A@@Q@@@-"#"/-"#"0@@Q@@@@@`@^@Z@@-@డ,-e-f-"#"3-"#"$$@%@@(@!n/D$$/E$$@ @@9c@-q1@@#@@@@@-sc@-l7@ภk/T$$/U$$@j@@@j@@@-vB@డ-!=/f $$/g $$@@!a@@@@@@'@@&@@%&%equalBAQ@@@@PyQy@@OQ@@@@@@@-b@-{@@@@-z@@-y@@-xs@@ఐҠ"c1/ $$/ $$@@@@!n/ $$/ $$@N @@@@ఐѠ"c2/ $$/ $$@@@@!n/ $$/ $$@d @@6c@-@@#@@T@@@-c@-@డ.Fנٰ/!$$/!$$@ְ@@@@@@-b@-@@@@-@@-@@-@@ఐ"c1/!$$/!$$@@@@@"ni/!$$/!$$@ @@@@ఐ"c2/!$$/!$$@@@M@"ni0!$$0!$%@ @@6c@-@@#@@@@@-c@-@ภ(0"%%0"%%@'@@@b@-@ภ0$%%'0$%%,@@@@ b@- @0" $$0#%%-%4@@ @ภ0*&%:%@Y@@Z@@b@-@0/ $$^@@@01$$`@@@kaA@`@-i@A@eఠgJh0<(%G%M0=(%G%U@0KeA@@@@@@-`@-@@@@-`@-#@@@-`@-@@-`@-@@-`@-U30M0L0L0M0M0M0M0M@@@@࣠@"c1OA0d(%G%V0e(%G%X@0shA@@$30]0\0\0]0]0]0]0]@@@@@@@"c2PA0s(%G%Y0t(%G%[@0iA@@*30l0k0k0l0l0l0l0l@6@@@@@@@@డ/"&&0(%G%j0(%G%l@@Y@@@K@_@@@J@@@@I@@H@@G(%sequandBAs@@@@rs@@q]@@@@@@@-@@@@-W@@@-@@-@@-300000000@8Dd@;@<@@@@డ/9WY0(%G%c0(%G%d@V@@@@@@-c@-@W@@@-@@-@@-@@ఐv"c10(%G%^0(%G%`@`@@,@!n0(%G%a0(%G%b@ @@3@@ఐ}"c20(%G%e0(%G%g@?@@B@!n0(%G%h0(%G%i@ @@6d@-K@@#@@t@@@-@-d@-S@@డ/1 (%G%r1 (%G%s@@@@@@@-c@-@@@@-@@-@@-m@@ఐƠ"c11'(%G%m1((%G%o@@@|@"ni1.(%G%p#@ذ $@@@@ఐ̠"c2/1<(%G%u@1@@@"ni1B(%G%v1C(%G%x@8@@4d@-@@!@@@@@-@-d@-@@y @@@A@`@-@A@1T(%G%I@@@@ఠ*less2testsQ1a*%z%1b*%z%@1pjA@@@@)@@@.E`@-@0@@@.1`@-@@-`@-@@?@@@.D`@.@F@@@.0`@.@@.`@.@@@./`@.@@.`@-@@-`@-311111111@@@a[@\@]@@@࣠@ WXA@ఠ"c1S1*%z%1*%z%@1kA@@@311111111@S1*%z%|1.%%@@@@@ఠ"d1T1*%z%1*%z%@1lA@@K@@1*%z%1*%z%@@@Y@T@@-@@ @@ WA@ఠ"c2U1*%z%1*%z%@1mA@@X311111111@09r@3@4(l@"@#@@@@ఠ"d2V1*%z%1*%z%@1nA@@b@@1*%z%1*%z%@@@p@k@@.@@ @@ఐǠ(eq_tests2+%%2+%%@l@@@@@@.@@@@.@@@.@@. @@. 32 222 2 2 2 2 @9B@<@=2@,@-@@@@ఐx"c12#+%%2$+%%@E@@@@ఐW"c220+%%21+%%@@@@@0@@@@@.c@.%@ఐ*less_tests2B,%%2C,%%@@@@@@@.%@@@@.$b@@@.#@@."@@.!>@@ఐ"d12\,%%2],%%@}@@K@@ఐ"d22i,%%2j,%%@S@@X@@+@@Y@ఐؠ*less_tests2w.%%2x.%%@@@@4@@@.9@9@@@.8@@@.7@@.6@@.5s@@ఐ栐"c12.%%2.%%@@@%@@ఐŠ"c22.%%@@@@@*@@c@.C@2+%%@@@A@A`@.K@A@@@@ఠ(add_testY20%%20%%@2oA@@@v@@@.`@.M@@@@.`@.R@@@.`@.S@@.T`@.N@@.O`@.L322222222@:tm@n@o@@@࣠@"t1[A20%%20%&@2pA@@%322222222@220%%22&!&=@@@@@  @@"t2\A20%&20%&@3qA@@0322222222@!<@@@@@@@@ ఐ+"t131&& 31&& @@@L322222222@ F@@@@@!n31&&31&&@డ1  31&&31&&@ @@@ @@@.d@ @@@.c @@@.b@@.a@@.`!@@ఐ["t1351&&361&&@@@@|0@!n3<1&&3=1&&@ @@ /@@@.pd@.td@.r>@@ఐd"t23R1&&3S1&&@J@@M@!n3Y1&&3Z1&&@  @@ D@@@.od@.xd@.v[@@/ @@z@@@.^d@.na@e@@ @@@.{c@.zg@ఐ"t13x2&!&%3y2&!&'@@@s@"ni32&!&(32&!&*@*డ2 { }32&!&432&!&5@ z@@@ z@@@.@ w@@@. v@@@.@@.@@.@@ఐˠ"t132&!&.32&!&0@@@@"ni32&!&132&!&3@W @@ @@@.c@.c@.@@ఐԠ"t232&!&632&!&8@@@@"ni32&!&932&!&;@t @@ @@@.c@.c@.@@/ @@@@@.c@.@b@@@@@@A@$`@.@A@@@A+%t_ret]`38&&38&&@@;@@%Inter^3@@@.3@@@.@@38&&38&' @@4 sA#Sep_3@@@.@@4 8&'4 8&'@@4tA"No`@@48&'48&'@@4"uA@@A@@@@@48&&@@@@4%rA@#.."48&&@!@г/#int4'8&'4(8&'@@7344444444@\|u@v@wI;@@@A@@@@@@@@@@ @@г:#int478&' ;@@A<@@@@>@#::4=8&'4>8&'@3@г<#int4G8&'=@@C>@@@@@@#<<4M8&':@9@@@=@@A@9@@9<@34E4D4D4E4E4E4E4E@&@@@ఠ%coupea4\A''4]A''@4kvA@@@y@@@.a@.@@@.@@@.@@.a@/)@@@/0a@.@!o@@@/#a@.@@+a@.@@@.a@.֠@ 5a@.@@@/ a@.@@.a@.@@.a@.@@.a@.344444444@y@@@࣠@%casescA4A''4A''@4wA@@O344444444@\4A''4E((G@@@@@  @@!idA4A''4A''@4xA@@F344444444@!f@@@@@@@@@@ఠ!le4B''4B''@4yA@@n344444444@$`@@@@@@@4B''4B''@@q @@@4B''4B''@@s@@@@@@~@|@@.@డ3|砡4ʠ4˰5B''5B''AA@@a@.@@@.@@@@.@@.@@.4@@ఐp%cases5B''@T@@@@@ఐh!i5(B''5)B''@J@@M@@*)@@"N@A@5-B''+@@@ఐ_!l59C''5:C'(@@_@`@@35251515252525252@`i@@@@డ3%Array#sub5ND((5OD(( @ 5RD(( 5SD((@@@k!a@x@@@@@@@@@@@ܠ@@@@@@@@@@@vuuAvu@@?K@(#@@@ @@@.@@@@.@@@@.@@@.@@.@@.@@.M@@ఐ蠐%cases5D((5D((@Ͱ@@3Z@@@5D((5D((@@A@@@.d@.d@.j@@ఐ!i5D((5D((@Ӱ@@3w@@g@@$x@@డ4=%Array#sub5E((5E(($@ 5E((%5E(((@@v@@@v2@@@.@q@@@.@p@@@.K@@@@.@@.@@.@@.@@ఐ>%cases5E(()5E((.@#@@@@ఐ7!i5E((/5E((0@@@y@@డ4!-6E((D6E((E@@"@@@@@@@#@@@@@@@'%subintBA"@@@@"5,~,~"5,~,@@"o@@@@@@@/@@@@/@@@/@@/@@/@@డ4%Array&length6?E((26@E((7@ 6CE((86DE((>@@@!a@@@@@@@@@-%array_lengthAA%@@@(a)a@@'A@@@@@@@/(@@@/'@@/&*@@ఐŠ%cases6qE((?l@m@@6@@5n@@m@@@/$@/2f@//>@@ఐŠ!i~6E((F@@@J@@6E((1@@$@@@/@/4e@/"S@@@@T@@Y@@@&@@@@/5]@n@@ @A@6H(J(L6}.+.G@@@@@  @@"c2iA6H(J(_6H(J(a@7|A@@(366666666@!H@@@@@@@@@ఠ$len1j7I(d(l7I(d(p@7}A@@@@@/Qd@/E377777777@%C@@@@@డ5%Array&length7I(d(s7 I(d(x@ 7#I(d(y7$I(d(@@@@@àa@0a@/a@/a@/a@/a@/Xa@/K@@@/J@@@/I@@/H/@@ఐl"c17HI(d(7II(d(@Q@@<@@-@@@=@A@7MI(d(h@ఠ$len2k7VJ((7WJ((@7e~A@@ @@@/^d@/FP@డ5%Array&length7lJ((7mJ((@ 7pJ((7qJ((@@-@@@K@@@/W)@@@/V@@/Un@@ఐ"c27J((7J((@x@@{@@@@/|@A@7J((@@@ఐ$len17K((7K((@@@@@M@@@/e377777777@RK@L@M@@@@ఐX$len27K((7K((@ @@`@@@/f@@@@@@ @@/g@@@7L((7L((@@z@@@/re@/q377777777@-@@@@@7L((7L((@@@@@/s @@@@@@ @@/t@@@@@@/v@@@@/w@@/u@@@ఐ"c27L((7L((@@@%'@@@7M((8M((@@@@@/6@@@8 M((8 M((@@@@@/e@/C@@@@@@ @@/J@@@@@@/@@@@/@@/V@@@ఐO"c18+M((8,M((@4@@^`@@@88N((89N((@@@@@/@@@8AN((8BN((@@@@@/@@@@@@ @@/@@@@@@/@@@@/@@/@@@@@ఠ"l1l8gO((8hO((@8vA@@a@3a@2a@/@@ఠ"h1m8xO((8yO((@8A@@a@/@@ఠ$act1n8O((8O()@8A@@a@/@@%@@@%@@ @@/@డ78h8i8O()8O()AA@@x@@@/@@@@/~@@/@@/@@ఐܠ"c18O()@@@@@డ7B°8O()8O()@@@@@@@/@L@@@/@@@/@@/@@/@@డ7^%Array&length8O()8O() @ 8O()8O()@@@@@@@@/@@@/@@/(@@ఐ$"c19O()<@=@@P4@@>@@@@@/@/h@/<@@AK9O()@@@@@/g@/g@/K@@5 @@@@@/@/g@/S@@@@T@A@9#O((@@ఠ"l2o90P))'91P)))@9?A@@a@/g@@ఠ"h2p9=P))*9>P)),@9LA@@a@/t@@ఠ$act2q9JP))-9KP))1@9YA@@a@/@@ @@@ @@ @@/@డ7JIN9,N9-9dP))49eP)):AHA@@H8a@/@@@/@D@@@/@@/@@/@@ఐ"c29}P))6@m@@@@@9P))89P))9@@`@@@/f@/f@/@@,+@@$@A@9P))#-@@డ8 7 99Q)>)N9Q)>)O@ 6@@@a@0a@/@ 5@@@/@@/@@/399999999@MF@G@H=6@7@81*@+@,@@{t@u@voh@i@j@@@@ఐ;$act19Q)>)I9Q)>)M@@@:@@ఐ$act29Q)>)P9Q)>)T@@@'@@@@$k@@@/e@/-@@ఠ!rr9R)Z)h9R)Z)i@9A@@!e@0@@@0 e@/399999999@C@@@డ8s%Array$make9R)Z)l9R)Z)q@ 9R)Z)r9R)Z)v@@@Y@@@@!a@(@@@@@@@ː/caml_array_makeBA@@@@!u!u@@!D@"@@@@@@0@9=<@@@0@@0@@/;@@డ8-/:2R)Z):3R)Z)@,@@@,@@@0@@@@0+@@@0@@0@@0V@@డ8'?'A:MR)Z)|:NR)Z)}@'>@@@'>@@@0%@';@@@0$':@@@0#@@0"@@0!q@@ఐa$len1:gR)Z)x@̰@@'Y@@@01h@03h@02@@ఐ$$len2,H@ְ-I@@'c@@@00h@05h@04@@Q@@|@@@0@06h@0/@@A^:R)Z)@@@@@0g@08g@07@@:R)Z)w:R)Z)@@@@@0 @09g@0@@డ9,:z:{:R)Z):R)Z)AA@@a@0=@@@0?@@@@0>@@0<@@0;@@ఐ"c1:R)Z)@԰@@@@@:R)Z):R)Z)@@@@@0Hg@0Lg@0K@@-,@@%@@-@@@A@:R)Z)d/@@ !is:S)):S))@@@@@:S)):S))@@9@@@0Oe@0N3::::::::@R @@@@@డ9;S));S))@@@@@@@0U@@@@0T@@@0S@@0R@@0Q@@ఐ$len1;S))@@@@@@0af@0cf@0b.@@B);/S))@@@@@0`f@0ef@0d=@@ @@:;@@@0ff@0_C@@డ9 / 3;;;IT));JT))AA@@f@0n@@@0p@ @@@0o@ @@@0m@@0l@@0k@@0j3;S;R;R;S;S;S;S;S@ez 9@@@0e@0e@0g@;iS));jU))@@;xA@@@@ఐ!r-;vT))@{/@@Р.@@@0g@0g@0"@@ఐ!i;T));T))@,@@,/@@డ:   ;d ;e;T))SA TA@@ ma@0@@@0@ {@@@0@@0@@0L@@ఐؠ"c1;T))@@@X@@ఐ֠!i;T));T))@b@@be@@(z@@!f@@|{@@(@@@0f@0}l@b@(@@@0e@03;;;;;;;;@@@@@ఠ!lt;V));V))@;A@@ya@2a@0a@1@a@03;;;;;;;;@@@@డ:m  ;W)*;W)*@ @@@@@@0e@0@ @@@0@@0@@03;;;;;;;;@@@@@ఐ$len1< W))< W)*@p@@@@B<W)*<W)*@@!f@0@@@@&@@@0f@0@ఐ"l1<%W)* <&W)*@w@@)@@@@<3Y*A*S<4Y*A*T@@[a@1Aa@0a@0U@@ఠ!hv@@@0h@0h@0@@ @@!@@@0@0h@0@@ji@@b@A@<Y*A*Ok@@డ;T#min<Z*i*w<Z*i*z@@!a@@@@;@@:@)~~)~@@)X@@@@e@0@@@0@@03<<<<<<<<@@@@@@@డ;y))<Z*i*~<Z*i*@)@@@)@@@0@)@@@0)@@@0@@0@@0@@ఐԠ!h=Z*i*|=Z*i*}@(@@+@@A= Z*i*=!Z*i*@@* @@@0g@0g@0;@@=*Z*i*{=+Z*i*@@>@@ఐϠ"l1=6Z*i*=7Z*i*@@@K@@b@@PL@=;X** =<[**@@SX@=>W))@@Z@A@=@V))@ఠ!hu=I\**=J\**@=XA@@me@0P@డ;gi=Y]**=Z]**@f@@@@@@1e@0@g@@@0@@0@@03=]=\=\=]=]=]=]=]@n@@@@ఐ$len2=s]**=t]**@Ѱ@@@@B=}]**=~]**@@!f@1@@@@(@@@1 f@1@ఐQ"h2=]**=]**@ܰ@@P)@@@ఠ!lw=_*+=_*+@=A@@@@@=_*+=_*+@@@@@=_*+ =_*+ @@@@@@@@@@@1@డ>>>>>>>@xW@r@s@@@@ఐ⠐"h2>`++)> `+++@m@@@@డ<(*>-`++/>.`++0@'@@@'@@@14@ @@@13&@@@12@@11@@10+@@ఐ!l>G`++->H`++.@5@@8@@A>Q`++1>R`++2@@ @@@1?g@1Cg@1BH@@>[`++,>\`++3@@}g@1>M@@d@@RN@>a^**>ba+4+C@@Ud@>d]**@@$f@A@>f\**@@ డ<#["Ϡ#_>=">>>uc+Q+[>vc+Q+sA"ΰA@@"Πe@1J@@@1L@#@@@1K@ "@@@1I@@1H@@1G@@1F3>>~>~>>>>>@@@IB@C@D@@@@ఐ!r$>c+Q+\@&@@"%@@@1[f@1]f@1\@@డ=+>c+Q+b>c+Q+c@@@@@@@1c@ 5@@@1b@@@1a@@1`@@1_4@@ఐ $len1>c+Q+^@-@@@@@1og@1qg@1pG@@A)>c+Q+d@@ Z@@@1ng@1sg@1rV@@ @@$:@@@1Z@1tg@1m^@@@ఐ!l>c+Q+j>c+Q+k@k@@o@@ఐ!h?c+Q+l?c+Q+m@v@@{@@ఐ$act1?c+Q+n?c+Q+r@^@@@@?c+Q+i@@[a@1y@@@@,-@@@1ze@1Y@ !ix?%d+v+?&d+v+@@@@A?,d+v+?-d+v+@@>1@@@1}e@1|@డ= 6 8?;d+v+?<d+v+@ 5@@@ 5@@@1@ @@@1 4@@@1@@1@@1@@ఐ$len2?Ud+v+@@@ P@@@1f@1f@1@@A)?ed+v+@@ @@@1f@1f@1@@ @@>q@@@1f@1@@డ=$e#٠$i?G#?H?e++?e++A#ذA@@#ؠf@1@@@1@$@@@1@ #@@@1@@1@@1@@13????????@ w$o@@@1e@1e@1@?d+v+?f++@@?A@@@@ఐ̠!r-?e++@/@@$.@@@1g@1g@1"@@డ>>,,?e++?e++@,@@@,@@@1@,@@@1,@@@1@@1@@1=@@డ>Y נ ٰ?e++?e++@ ְ@@@ @@@1@ c@@@1 @@@1@@1@@1X@@ఐ$len1?e++@[@@ @@@1i@1i@1k@@A)E@@ @@@1i@1i@1y@@M@@,@@@1@1i@1@@ఐ!i]@e++@_@@@@,@@%{@@@1@1h@1@@డ>%%%"@%"@@8e++A%A@@% a@1@@@1@%@@@1@@1@@1@@ఐ a"c2@Qe++@ A@@ @@ఐ:!i@]e++@^e++@ɰ@@@@)@@"@@@@-y@@@1f@1@@-~@@@1e@13@a@`@`@a@a@a@a@a@@@@ఐ!r@tg++@ug++@z@@ a@1 @@@ @@@@;@@@@@@@@@డ?!>@h++@h++@@!a@@+c@@@0@@/@@.,%greaterthanBA-t@@@@-s-t@@-rT@@@@d@1@@@@1@@1@@1@@ఐ="h1@h++@h++@@@<@@ఐ["l1@h++@h++@@@Z@@@@+`@@@1e@1@@ఠ!ry@i+,@i+,@@A@@ &e@2@@@2e@13@@@@@@@@@8@@@డ?h%Array$make@i+,@i+, @ @i+, @i+,@@@@@@@@2@ #@@@2@@2@@2!@@డ?-.A i+,Ai+,@-@@@-@@@2@-@@@2-@@@2@@2@@2<@@ఐ !$len1A'i+,@ @@.@@@2!g@2#g@2"O@@ఐ 䠐$len2,A:i+,@ .@@.$@@@2 g@2%g@2$b@@ADi+,AEi+,@@F@@@2@2&g@2l@@డ?&B&A&FA$&FA%A\i+,A]i+,"A&@A@@&@ a@2*@@@2,@&=@@@2+@@2)@@2(@@ఐ "c1Avi+,@ ~@@ @@@Ai+, Ai+,!@@&Y@@@25g@29g@28@@-,@@%@@-@@@A@Ai++/@@ !izAj,&,4Aj,&,5@@@@@Aj,&,8Aj,&,9@@@@@@2@@ఐ à$len1Aj,&,=@ .@@ @@@2Nf@2Pf@2O.@@B)Aj,&,C@@ [@@@2Mf@2Rf@2Q=@@ @@@@@@2Sf@2LC@@డ@m&&M&A&RAAk,G,SAk,G,bA&LA@@&L Cf@2[@@@2]@'U@@@2\@ &I@@@2Z@@2Y@@2X@@2W3AAAAAAAA@ez&@@@2~e@2e@2T@Bj,&,0Bl,c,q@@B"A@@@@ఐK!r-B k,G,T@{/@@&z.@@@2lg@2ng@2m"@@ఐ!iB4k,G,VB5k,G,W@,@@,/@@డ@','+'0B'0BBFk,G,\SA')TA@@') a@2s@@@2u@'&@@@2t@@2r@@2qM@@ఐ "c1B_k,G,^@ g@@ Y@@ఐנ!iBkk,G,`Blk,G,a@c@@cf@@){@@"g@@}|@@/@@@2f@2jm@c@/@@@2e@23BoBnBnBoBoBoBoBo@@@@ డA'o&㠡'sBQ&BRBm,t,~Bm,t,A&A@@& e@2@@@2@'@@@2@ &@@@2@@2@@2@@2$@@ఐӠ!rBm,t,@!@@' @@@2f@2f@28@@డA:  Bm,t,Bm,t,@ @@@ @@@2@D@@@2 @@@2@@2@@2S@@ఐ Ѡ$len1Bm,t,@ <@@ @@@2g@2g@2f@@A)Bm,t,@@i@@@2g@2g@2u@@ @@(I@@@2@2g@2}@@@ఐ "l1Cm,t,Cm,t,@ W@@ @@డA  Cm,t,Cm,t,@ @@@ @@@2@@@@2 @@@2@@2@@2@@ఐ "l2C,m,t,@ z@@ @@A"C5m,t,@@@@@2g@2g@2@@ @@ g@2@@ఐ Ġ$act1CIm,t,CJm,t,@ @@ @@CMm,t,@@ a@2@@@@0h@@@2e@2@ !i{C`n,,Can,,@@@@@Cgn,,Chn,,@@Bl@@@2e@2@డA q sCvn,,Cwn,,@ p@@@ p@@@2@@@@2 o@@@2@@2@@2 @@ఐ :$len2Cn,,@ @@ @@@2f@2f@2@@A)Cn,,@@"@@@2f@2f@2.@@ @@B@@@2f@24@@డB4(((C(CCo,,Co,,A(A@@( f@2@@@2@)@@@2@ (@@@2@@2@@2@@23CCCCCCCC@,w(@@@3*e@3-e@2@Cn,,Cp,,@@CA@@@@ఐ!r-Co,,@B/@@(A.@@@3g@3g@3"@@డBy00Co,,Co,,@0@@@0@@@3 @0@@@3 0@@@3 @@3@@3=@@ఐ $len1Do,,@ {@@1@@@3h@3h@3P@@ఐˠ!i,D)o,,@Y.@@Y\@@@@)@@@3@3h@3d@@డB)()'),D ),D DBo,,A)%A@@)% a@3@@@3!@)"@@@3 @@3@@3@@ఐ k"c2D[o,,@ K@@ @@ఐ !iDgo,,Dho,,@@@@@)@@"@@@@1@@@3.f@3@@1@@@30e@3/3DkDjDjDkDkDkDkDk@@@@ఐ!rD~q,,Dq,,@ڰ@@ a@31 @@@ @@@@r@@@@@@డC  Dr,-Dr,-@@@@ +d@36@@@@35@@34@@33@@ఐ j"h2Dr,- Dr,- @ @@ i@@ఐ "l2Dr,-Dr,-@ @@ @@@@/R@@@3?e@3>@@ఠ!r|Ds--&Ds--'@DA@@ e@3E@@@3Oe@3@3DDDDDDDD@ *@@@డCZ%Array$makeDs--*Ds--/@ Ds--0Ds--4@@ @@@ @@@3F@  #@@@3D@@3C@@3B!@@డC|11Ds--:Es--;@1@@@1@@@3V@1@@@3U1@@@3T@@3S@@3R<@@ఐ$len1Es--6@ ~@@2 @@@3bg@3dg@3cO@@ఐ ֠$len2,E,s--?@ .@@2@@@3ag@3fg@3eb@@E6s--5E7s--@@@ 8@@@3P@3gg@3`l@@డC*4*3*8E*8EENs--AEOs--GA*2A@@*2a@3k@@@3m@*/@@@3l@@3j@@3i@@ఐ"c1Ehs--C@p@@@@@Eqs--EErs--F@@*K@@@3vg@3zg@3y@@-,@@%@@-@@@A@E}s--"/@@ !i}Et-K-YEt-K-Z@@@@@Et-K-]Et-K-^@@D@@@3}e@3|3EEEEEEEE@ @@@@@డDEt-K-fEt-K-g@@@@@@@3@(@@@3@@@3@@3@@3@@ఐ$len1Et-K-b@ @@@@@3f@3f@3.@@A)Et-K-h@@M@@@3f@3f@3=@@ @@D@@@3f@3C@@డD_**?*E*DEEu-l-xEu-l-A*>A@@*>5f@3@@@3@+G@@@3@ *;@@@3@@3@@3@@33EEEEEEEE@ez*@@@3e@3e@3@Ft-K-UFv--@@FA@@@@ఐK!r-Fu-l-y@{/@@*l.@@@3g@3g@3"@@ఐ!iF&u-l-{F'u-l-|@,@@,/@@డD+++"F+"FF8u-l-SA+TA@@+a@3@@@3@+@@@3@@3@@3M@@ఐu"c1FQu-l-@Y@@Y@@ఐנ!iF]u-l-F^u-l-@c@@cf@@){@@"g@@}|@@3y@@@3f@3m@c@3~@@@3e@33FaF`F`FaFaFaFaFa@@@@ డD+a*ՠ+eFC*FDF{w--F|w--A*԰A@@*Ԡe@3@@@3@+@@@3@ *@@@3@@3@@3@@3$@@ఐӠ!rFw--@!@@* @@@3f@3f@38@@ఐ$len1Fw--Fw--@@@, @@@3f@3f@3L@@@డED33Fw--Fw--@3@@@3@@@3@3@@@33@@@3@@3@@3k@@ఐi"h1Fw--@ 1@@gw@@A"Fw--@@3@@@3g@3g@3@@ @@5g@3@@ఐ "h2Fw--Fw--@ L@@ @@ఐ $act2G w--G w--@ W@@ @@Gw--@@Wa@3@@@@4)@@@3e@3@ !i~G!x--G"x--@@@@AG(x--G)x--@@F-@@@3e@3@డE24G7x--G8x--@1@@@1@@@4@@@@40@@@4@@4@@4@@ఐ$len2GQx--@@@L@@@4f@4f@4@@A)Gax--@@@@@4f@4f@4@@ @@Fm@@@4f@4@@డE,a+ՠ,eGC+GDG{y--G|y-.A+԰A@@+Ԡf@4@@@4 @,@@@4@ +@@@4@@4@@4@@43GGGGGGGG@w,k@@@4Ve@4Ye@4@Gx--Gz..@@GA@@@@ఐ᠐!r-Gy--@/@@,.@@@4/g@41g@40"@@డF:44Gy--Gy--@4@@@4@@@47@4@@@464@@@45@@44@@43=@@ఐѠ$len1Gy--@<@@4@@@4Ch@4Eh@4DP@@ఐˠ!i,Gy--@Y.@@Y\@@@@-F@@@4.@4Gh@4Ad@@డF},,蠡,Gˠ,G̰Hy--A,A@@,Ra@4K@@@4M@,@@@4L@@4J@@4I@@ఐ,"c2Hy--@ @@O@@ఐ !iH(y--H)y--@@@@@)@@"@@@@5D@@@4Zf@4-@@5I@@@4\e@4[3H,H+H+H,H,H,H,H,@@@@ఐx!rH?{..H@{..@@@a@4] @@@ @@@@A@@@@@t@డF%Array&appendHU}.+.5HV}.+.:@ HY}.+.;HZ}.+.A@@@0r!a@@@@@ @@@0@@@@@@@@0Bm''0Cm'T@@0AI@#@@@@@@4d@̠@@@4c@@@4a@@4`@@4_@@ఐ"c1H}.+.BH}.+.D@@@@@ఐ"c2H}.+.E@@@@@M@@a@4n@Hr,-@@d@Hh++@@'@HQ)>)F@@3@@@@@@AHK((@@@a@@@A@a@4@A@@@ᠰ@ఠ+coupe_interH.J.PH.J.[@HA@@@^@@@5Qa@4@5@@@5a@4@@5@@@5@@@@5-@@5a@5`@@@5ta@4@a@4ܠ@a@4ݠ@j"a@4@@@4a@4ޠ@P+a@58@@@57a@4@@4a@4@@4a@4@@4a@4@@4a@43HHHHHHHH@9e^@_@`@@@࣠@!iAI.J.\I.J.]@I&A@@V3IIIIIIII@cI.J.LI ./D@@@@@  @@!jAI+.J.^I,.J._@I:A@@a3I$I#I#I$I$I$I$I$@!m@@@@@@@@%casesAI<.J.`I=.J.e@IKA@@i3I5I4I4I5I5I5I5I5@u@@@@@@@@@ఠ&lcasesIO.h.pIP.h.v@I^A@@@@@4e@43IMILILIMIMIMIMIM@%@@@@@డG%Array&lengthIh.h.yIi.h.~@ Il.h.Im.h.@@)@@@ xa@5Ya@4a@4a@4a@4@@@4/@@@4@@4+@@ఐT%casesI.h.I.h.@5@@8@@)@@<9@A@I.h.l@@@@ఠ#lowI..I..@IA@@a@4a@43IIIIIIII@R`Y@Z@[@@@@@I..I..@@a@4a@4 @@@I..I..@@a@4a@4@@ @@@ @@ @@4 @డHO...I.II..I..A.A@@.f@@@4@.@@@4l@@4@@4:@@ఐ%casesI..@@@F@@ఐ堐!iI..I..@ʰ@@7S@@('@@T@A@I..)@@@J..J..@@b`@@ఠ$highJ..J..@J A@@al@@@J..J..@@]r@@@@@y@n@f@@4{@డH///I/IJ0..J1..A/A@@/a@4@@@4@/@@@4@@4@@4@@ఐ%casesJI..@@@t@@ఐ-!jJU..JV..@@@@@)(@@!@A@JZ..*@@@ఐŠ#lowJf..Jg..@@@ư@@3J_J^J^J_J_J_J_J_@`@Z@[@@@@ఐf$highJw..Jx..@ @@@@డI%Array#subJ..J..@ J..J..@@;@@@;@@@4@6@@@4@5@@@4@@@4@@4@@4@@4;@@ఐv%casesJ..J..@W@@H@@ఐ!iJ..J..@@@U@@డIG77J..J..@7@@@7@@@5@7@@@57@@@5@@4@@4p@@డIbࠐJ..J..@߰@@@@@@5@l@@@5@@@5@@5@@5@@ఐנ!jJ..@@@3@@ఐ!i%A@ڰ&B@@G@@C@@7@@@5@5#g@5@@APK..@@8@@@5 f@5%f@5$@@K$..K%..@@@@@4@5&f@5 @@ @@3@@ఐ+case_appendK9..K:./@0@@@@81@@@5,@@c@@5+@@@5*@@@5)@@5(@@డI%Array#subK_./ K`./@ Kc./Kd./@@@@@a@5?@@@5B@ @@@5A@ @@@5@@@@5>@@5=@@5<@@5;@@ఐM%casesK./K./@.@@@@@K./K./@@3@@@5Rf@5Vf@5U/@@ఐ!iK./K./@t@@<@@K./K./@@e@5Xf@5PC@@డJ6%Array#subK./K./$@ K./%K./(@@o@@@o@@@5c@j@@@5b@i@@@5aD@@@5_@@5^@@5]@@5\o@@ఐ%casesK./)K./.@@@|@@డJn8㠐8K./1K./2@8@@@8@@@5{@8@@@5z8@@@5y@@5x@@5w@@ఐ㠐!jL ./0@ʰ@@?@@A"L./3@@8@@@5g@5g@5@@L.//L./4@@@@@5s@5g@5@@డJ,.L1./<L2./=@+@@@+@@@5@@@@5*@@@5@@5@@5@@ఐ&lcasesLK./6@@@F@@@5g@5g@5@@డJ9Q9SL_./?L`./@@9P@@@9P@@@5@9M@@@59L@@@5@@5@@5@@ఐQ!jLy./>@8@@@@A"L./A@@9k@@@5h@5h@5 @@YL./B@@ @@@5@5h@5)@@L./5L./C@@1@@@5r@5g@53@@L./@@e@5f@5q9@@k@@:@@?@@@@@@@@5E@@@ @@@ Y@A@a@5@A@@@A+$kindaL/F/ML/F/Q@@;@@&KvalueL@@@5@@L/F/TL/F/a@@LA&KinterL@@@5@@L/F/bL/F/q@@LA&Kempty@@L/F/rL/F/z@@LA@@A@@@@@L/F/H@@@@LA@#))"L/F/Z@!@г*#intL/F/^+@@13LLLLLLLL@C<@=@>C;@@@A@@@@@@@@@@2@@@@4@#00M/F/dM/F/j@)@г2#intM/F/n3@@94@@@@6@#22M/F/t0@/@@@3@@A@/@@/2@3M M M M M M M M @@@@ఠ!tM#00M$00@M2A@@6'Hashtbl!t;[~@@a@<@@a@@@ఐ2$seenO_131=O`131A@r@@3 @@@8i@8i@8S@@ภ<߰Or131QOs131S@<ޠ@ఐ#actO131FO131I@i@@l@@డN !!O131JO131K@@`!a@@@@i@@h'%field0AA@@@9@@@9@@@9@@83PpPoPoPpPpPpPpPp@ekd@e@f@@@@ఐ%countP1x1P1x1@@@\5@@@9 @@@9 i@9i@9 @@B@@=@@@9h@9 !@ఐ!rP11P11@(@@+@R@@,@_@@@J@@@Ġ"::P11P11@>@ఠ$act0P11P11@PA@@{3PPPPPPPP@@@@@ఠ%indexP11P11@PA@@ @@P11P11@@@@@@8@ఠ#remP11P11@PA@@PC d@8@@@8&@@@ @@'@@@డOp!!P11P11@!@@@@!@@@9@@9@@93PPPPPPPP@G@A@B;@5@6(!@"@#@@@@ఐP$act0Q11Q11@@@@@ఐ"#actQ11Q11@@@K!@@@@;@@@9h@9'@ఐ`%indexQ+11Q,11@+@@J1@ఐk&got_itQ812Q912 @8@@@j@hU@@9"@@9!B@@ఐP#actQI12 QJ12@2@@yO@@ఐw#remQV12QW12@U@@d@9)^@@$@@r_@Q]11@@ta@@A%paramQa11 @@@g A@@@@@9G@@9Fd@9Di@@@Qj11@@@ఠ(make_oneQu22Qv22'@QA@@@@9\d@9I@d@9N@Ad@9SX@@@9hd@9T@@9Ud@9O@@9Pd@9J@@9Kd@9H3QQQQQQQQ@@@@࣠@!lAQ22(Q22)@QA@@#3QQQQQQQQ@0Q22Q2q2@@@@@  @@!hAQ22*Q22+@QA@@03QQQQQQQQ@!:@@@@@@@@#actAQ22,Q22/@QA@@;3QQQQQQQQ@D@@@@@@@@డPQ"o"qQ222<Q222=@"n@@@Z@\"j@@@9[@@9Z@@9Y3QQQQQQQQ@&W@@@@@@ఐR!lQ222;@6@@p@@ఐJ!h"Q222>@1$@@u@@@@<@@@9eh@9d!@ภ&KvalueR2D2LR2D2R@;C@@@5@DA@AB@A@@@=ఐI&got_itR2D2TR2D2Z@@@@H@@F@ݠ@Q'@@@9n@@9p@@@9o@@9m@@9lL@@ఐv#actR42D2[R52D2^@V@@Y@@డPRB2D2_RC2D2`@@@@@w@@@9{h@9h@9@@@9 @@9~u@@ఐ0$seenR]2D2d@o@@0@@@9i@9i@9@@& @@@@Ri2D2SRj2D2e@@@@g@@7@@@9i@ภ&KinterRv2q2yRw2q2@;q@AAAB@A@@ఐ&got_itR2q2R2q2@@@@@@@K@Q@@@9@@9@@@9@@9@@9@@ఐ䠐#actR2q2R2q2@İ@@@@డQ-#%R2q2R2q2@"@@@@|@@@9h@9h@9@@@9 @@9@@ఐ$seenR2q2@ݰ@@@@@9i@9i@9@@& @@@@R2q23@@@@c4@@og@9@R22288@@q@B9A@ed@9@@A@=@Aఠ(make_recR22R22@RA@@@@@@:d@9@d@9R[@@@:1g@:[@@@:`d@9@@9@@93RRRRRRRR@@@@@@࣠@!iAS22S22@S!A@@&3S S S S S S S S @2@-@*(@@9e@9@@9e@9@4@5@@@@@@"plAS+22S,22@S:A@@83S$S#S#S$S$S$S$S$@&B@@@@@@@@డQ$L$NS>22S?22@$K@@@_d@:d@:Ld@:Md@9d@9d@9d@9@$T@@@9@@9@@93SJSISISJSJSJSJSJ@'3a@*@+@@@@ఐS!iSb22Sc22@3@@u@@@Sl22Sm22@@)@@ @@> @@@9g@9@ภASy22Sz22@A@@@Ad@9@@@9-@@@ఠ!lS22S22@SA@@b@93SSSSSSSS@B@@@@ఠ!hS22S22@SA@@b@9@@ఠ#actS22S22@SA@@jb@9@@#@@@#@@ @@9%@డRB888S8SS22S22A8A@@8b@9b@9@@@9@8@@@9 @@9@@9C@@ఐР%casesS22@@@O@@ఐ᠐!iS22S22@@@\@@,+@@$]@A@S22-@@డR}$$T33T33@$@@@d@9@$@@@9@@9@@93TSSTTTTT@{@|@}tm@n@oha@b@c@@@@ఐ"plT33 T33 @ǰ@@(@@డRAAT*33T+33@A@@@A@@@: @A@@@: A@@@:@@:@@:/@@ఐ!hTD33@5@@;@@A"TM33@@A6@@@:h@:h@:J@@ @@dK@@; @@>@@@:g@:Q@ภAΰTa333Tb335@A͠ఐ(make_oneTm33#Tn33+@i@@@b@:b@:&@@D@@@:%@@:$@@:#@@:"q@@ఐ!lT33,T33-@y@@~@@ఐ!hT33.T33/@@@@@ఐ#actT330@@A@@@@6B@@@ఐà(make_recKT33=@M@@@@@@:4@@:3@@డS;T33@T33A@@@@@@@:@@ E@@@:?@@@:>@@:=@@:<@@ఐɠ!iT33?@@@@@A"T33B@@ c@@@:Kh@:Oh@:N@@T33>T33C@@h@:J@@ఐg!lT33DT33E@@@f@@@@@@@@f@:@ภBrU3S3cU3S3e@Bqภ&KemptyU3S3] @;/@@@@AB@A.@@+@ @@f@:Y @ภBU3S3uU3S3w@Bఐ(make_one U&3S3m@!"@@@:f@:f@@@@@:e@@:d@@:c@@:b(@@ఐ!lU=3S3nU>3S3o@0@@5@@ఐ!hUJ3S3pUK3S3q@<@@B@@ఐ#actUW3S3r>@G?@@N@@T@@@\g@:qQ@ఐ|(make_recKUf3S3@OM@@@z@us@@:t@@:sa@@డSrtUw3S3Ux3S3@q@@@q@@@:@ @@@:p@@@:~@@:}@@:||@@ఐ!iU3S3@a@@@@A"U3S3@@!@@@:h@:h@:@@U3S3U3S3@@h@:@@ఐ !lU3S3U3S3@@@@@@@@@@@Ud@:R@@@:Vf@:_@@ @@f@:U@U33@@@@@-@U22@@J/@A@@@@@:@@:d@:@@@U22@@@@ఠ!lU33U33@UA@@3UUUUUUUU@@@@@ఠ!hU33U33@UA@@ @@ఠ#actU33U33@VA@@@@@@@@ @@@:"@డT:::Uנ:UذV33V33A:A@@:Gb@:@@@:@:@@@:@@:@@:>@@ఐ%casesV)33@Ұ@@FJ@@డT 1 3V633V733@ 0@@@ 0@@@:@!@@@: /@@@:@@:@@:e@@డT%Array&lengthVV33VW33@ VZ33V[33@@ @@@!b@:@@@: @@@:@@:@@ఐ^%casesVr33=@>@@@@?@@ n@@@:@:g@:@@ALV33@@"@@@:f@:f@:@@6 @@;d@@@:@:f@:@@@@}@A@V33@@ภDV33V33@Dఐ2(make_oneV33V33@@@@c@:@@( }@@@:@@:@@:@@:3VVVVVVVV@@@@@@@@@@@ఐ預!lV33V33@@@@@ఐ預!hV33V33@@@!@@ఐꠐ#actV33F@&G@@-@@<H@@.@ఐ(make_recQV33@ְS@@@ @@@:@VV @@@:@@@:@@:@@:H@@డU!!W33W 33@!@@@!@@@;@"@@@;!@@@;@@;@@:c@@డU%Array&lengthW(33W)33@ W,33W-33@@ @@@"̠ K@@@; @@@;@@;@@ఐ /%casesWC33<@=@@ `@@>@@!?@@@;@;f@;@@BKWT33@@"@@@;e@;e@;@@W]33W^33@@!X@@@:@; e@; @@ఐ!lWp33 Q@ R@@ @@ S@@Vנ w@@@:c@;!d@:@@ \@@E |@@@:@ a@@@ b@@~@ c@@@ d@@@ e@@  /@ o fA@ b@;# m@A@ j@ j i@ @ఠ(same_actW33W34@WA@@@<}@@;@@;@@;b@;@@;@@@;b@;%A@@@;b@;&@@;'b@;$3WWWWWWWW@   @ @ @@@࣠@!tAW34W34@WA@@*3WWWWWWWW@7W33W44@@@@@  @@@ఠ#lenW4 4W4 4@WA@@!@@@;5d@;*3WWWWWWWW@(H@@ @@@డVj%Array&lengthW4 4W4 4@ W4 4W4 4%@@!@@@#eb@;b@;Mb@;Ob@;/@@@;.!@@@;-@@;,)@@ఐU!tX4 4&X4 4'@3@@{6@@'@@:7@A@X4 4@@@ఠ!aX$4+43X%4+44@X3A@@}b@;83XXXXXXXX@IWP@Q@R@@@ఐ,'get_actX54+47X64+4>@*@@@=@b@;@@b@;A@#b@;<@@;?@@@;>@="@@@;=@@;;@@;:(@@ఐ!tX[4+4?X\4+4@@z@@5@@డV"d"fXi4+4EXj4+4F@"c@@@"c@@@;U@#@@@;T"b@@@;S@@;R@@;QP@@ఐ#lenX4+4B@Y@@"~@@@;af@;cf@;bc@@A)X4+4G@@$@@@;`f@;ef@;dr@@X4+4AX4+4H@@=v@@@;K@;ff@;_|@@q @@]}@A@X4+4/ @@Aఠ&do_recX4L4XX4L4^@XA@@@"@@@;d@;hB@@@;d@;i@@;k3XXXXXXXX@@@@@@࣠@!iAX4L4_X4L4`@XA@@3XXXXXXXX@(@#@@;je@;g@&@'@@@@  @@డWd))X4c4nX4c4o@)@@@@@@@@;@@@;@>"@@@;@@;@@; @@ఐ!tY[44Y\44@z@@-@@ఐ!iYh44Yi44@n@@:@@1@@;@A@Ym44@@డW((Yv44Yw44@(@@@(@@@;@(@@@;)/@@@;@@;@@;3Y{YzYzY{Y{Y{Y{Y{@`Y@Z@[@@@@డX*/*1Y44Y44@*.@@@@**@@@;@@;@@;@@ఐ|!bY44@!@@z$@@ఐ!aY44@!@@0@@@@)1@@@;@;g@;8@@ఐ&do_recY44Y44@@@@@@;I@@డXW#ՠ#װY44Y44@#԰@@@#@@@;@%a@@@;#@@@;@@;@@;d@@ఐ'!iY44@@@>p@@A"Y44@@%@@@;h@;h@;@@Z44Z44@@Ph@;@@A@@N@@d@@Qd@;f@;@ @@@Z4c4i @@S@C A@@_Z@@;d@;C@@@Z4L4P@@ఐp&do_recZ"44Z#44@N@@@$@@@;D=@@@;@@;3Z"Z!Z!Z"Z"Z"Z"Z"@Y@@@@డX$4$6Z944Z:44@$3@@@$3@@@;@%@@@;$2@@@;@@;@@;@@ఐ{#lenZS44@)@@$N@@@;e@;e@;/@@B)Zc44@@%@@@;e@;e@;>@@Zl44@@$f@@@;@;e@;G@@S@@H@^@@@@@N@_@@@A@b@;@A@@@Ƞ@ఠ+inter_limitZ66Z66@ZA@@Gy@@@< b@;3ZZZZZZZZ@@@@@@డY#lslZ66Z66@@G@@@@G@@@@@@@@@@'%lslintBAG@@@@Gu4z4zGu4z4@@Gz@@@@@@@<@@@@<6@@@<@@;@@;5@@AZ66Z66@@1@@@<c@<c@<E@@PZ66Z66@@;@@@< c@<c@<U@@ @@ZV@A@Z66 @@ @Y@ఠ(ok_interZ66Z66@[A@@ ȠE@@@<b@<@@@<b@<3ZZZZZZZZ@t|@}@~@@@డY#ref[66[66@ @@@ @@@<@@<@@ภ=[!66["66@=@@@&c@<"@@@@,#@A@[(66@@@&Aఠ)opt_count[566[667@[DA@@@%@H0@@@E@@b@D@@E @@@E b@<$a@<%@@<<3[C[B[B[C[C[C[C[C@K_X@Y@Z@@@࣠@%casesA[\67[]67 @[kA@@%3[U[T[T[U[U[U[U[U@4@/@@<&c@< @2@3÷@6b@<'@7b@<*@@5b@<-@4b@<.@@b@=b@!t\a777J\b777K@X@@;7-@@@b@>b@=b@=b@Xa@>\a@>Ca@>Ga@>.a@>1a@>/a@>0a@@0"ni^p78^q78!@@^v78"^w78#@@0@@@a@>a@>a@>a@@@@(@@@= g@=@0?@@@=@@<@@<@@ఐ&lcases_J88_K88@%@@!@@ఐ31medium_size_limit_W88_X88@3@@$h@= 0@@@@I@@@= h@= 6@ఐ۠)heuristic_k88_l88@߰@@@@ڠ@@@=@@=J@@ఐ'%cases_88_88@@@HW@@@@f@=Z@ఐ"÷_88_89@&@@@$@!@@@@@=@@=@@=u@@ఐR%cases_89_89@װ@@s@@@@f@=@_88@@/@_878E @@"@@@A_77 @@$@ @@%@A@_7l7t@@ డ^B'Hashtbl#add_9 9_9 9@ _9 9_9 9@@@!a@6n!b@6m@@@6@ @ $unitF@@@6@@6@@6@@6@Uu;;Vu;c@@TE@&!@@@Ƞf@=)a@Ra@Rua@Nsa@N[a@Ma@E:a@E2a@CDa@C@@ja@=NC@@@D@@@@@@`f7/73@@@N @@@  A@@2 @@=Rb@=Q @@@`n66@  @@@@@@@@@@@<=3`x`w`w`x`x`x`x`x@5@@@࣠@%casesA`9_9l`9_9q@`A@@"3````````@3@@@@@@@ఠ&lcases `9t9|`9t9@`A@@*U@@@=ed@=Z3````````@J#;@@@@@డ_2%Array&length`9t9`9t9@ `9t9`9t9@@*z@@@,]b@=_@@@=^*x@@@=]@@=\#@@ఐJ%cases`9t9`9t9@-@@h0@@!@@41@A@`9t9x@@@ఠ!m `99`99@`A@@M@@@=xd@=h3````````@HVO@P@Q@@@డ_x!/`99`99@@M@@@@M@@@@@@@@@@'%divintBAM@@@@M?--M?--@@Mq@@@@@@@=n@@@@=m6@@@=l@@=k@@=j5@@ఐ&lcasesa/994@>5@@4@@@=ze@=|e@={H@@BBa?99@@=@@@=ye@=~e@=}W@@ @@\X@A@aI99 @@@@@aT99aU99@@d@=3aMaLaLaMaMaMaMaM@ixq@r@s@@@@ఠ$left ac99ad99@arA@@,ؠx@@@=d@=@@ఠ%right au99av99@aA@@,@@@=d@='@@, @@@.@@@@=0@ఐ-5%coupea99a99@*@@@-0@*b@=@.b@=@@@=@@@=@-%@@@=@@- @@@=@-&!@@@=@@=@@=@@=c@@ఐ9%casesa99a99@@@Wp@@ఐ점!ma99a99@z@@-V@@@=e@=e@=@@L @@@@~@n@@=e@=@A@a99@@@ఠ"ci a99a99@bA@@3@@@=d@=3aaaaaaaa@@@@@@@@ຠ3!nb 99b 99@Ab99b99@@4(@@@=d@=@3"nib99b99@@b#99b$99@@4/@@@=d@=.@@@b+99b,99@@61@A@b.99@ఠ"cmb799b899@bFA@@3@@@=d@=D@ຠ3򡠐!nbI9:bJ9:@AbO9:bP9:@@4g@@@=d@=Z@4"nib\9: b]9: @@bb9: bc9: @@4n@@@=d@=m@@@bj9:bk9:@@1p@A@bm99@@@bv::bw::@@7a@=~@@@ఠ#cmlb::b::@bA@@a@=@@ఠ%cleftb::b::#@bA@@a@=@@b::b::$@@@@ @@=@@,@@@.@@"@@@=@@=@ఐ)opt_countb::'b::0@T@@@o@@=@@ఐc$leftb::1b::5@ɰ@@b@Eb@Cb@C b@A2b@A3b@@b@@b@?5b@?Qb@>b@>b@>b@>b@>b@>b@=b@=@@4$@@@A@b::&@@@b:6:>b:6:?@@a@=@@@ఠ#cmrc:6:Ac:6:D@cA@@a@=@@ఠ&crightc:6:Ec:6:K@c!A@@a@=@@c:6:@c:6:L@@@@ @@=$@@,@@@.@@"@@@=@@=1@ఐ)opt_countc6:6:Oc7:6:X@Ӱ@@@@@=?@@ఐР%rightcE:6:YcF:6:^@G@@b@=N@@@@O@A@cL:6::@@ ఐ0(add_testcX:b:fcY:b:n@/.@@@5@@@=@5@@@=Pz@@@=@@=@@=3c]c\c\c]c]c]c]c]@ry@z@{=6@7@8@@@@rk@l@mf_@`@a@@@@ఐ"cic:b:oc:b:q@@@5>@@@>e@>e@>!@@ఐ%cleftc:b:rc:b:w@#@@.@@?@@P@@@>d@=4@ ఐ0(add_testc:z:~c:z:@/}@@@5d@@@> @5i@@@> P@@@> @@> @@>O@@ఐΠ"cic:z:c:z:@T@@5@@@>e@>e@>c@@ఐà&crightc:z:c:z:@c@@p@@2@@P@@@>d@>v@ ఐ5L*less_testsc; ;c; ;@2T@@@5@@@>#@5@@@>"N @@@>!@@> @@>@@ఐ#cmld; ;d; ;@@@~@@ఐ #cmrd; ; d; ;#@@@ @@+@@N@@@>2e@>-@ఐ1p(add_testd$;);/d%;);7@/@@@5@@@>8@5@@@>7QF@@@>6@@>5@@>4@@ఐ"cmd>;);8d?;);:@а@@5@@@>De@>Fe@>E@@ఐM#cmrdR;);;dS;);>@@@L@@2@@Qm@@@>]d@>B@ఐ1(add_testde;H;Ndf;H;V@0;@@@6"@@@>M@6'@@@>LQ@@@>K@@>J@@>I @@ఐH"cmd;H;Wd;H;Y@@@6>@@@>Ye@>[e@>Z!@@ఐ #cmld;H;Zd;H;]@$@@ .@@2@@Ce@>W1@d; ;@@E3@@ภ#Sepd;`;dd;`;g@;0@0AAAB@A0@@0ఐˠ!md;`;hd;`;i@Y@@0@@@>gc@>ic@>hS@@ @@y@@@>fW@@@ఐ"cmd;`;kd;`;m@^@@c@>ni@@ఐ砐"cid;`;od;`;q@m@@Uc@>ow@@d;`;jd;`;r@@@@ @@>p@@D@@@1@ @@>q@V@@@J@@@@@ @@@ @ @@ @@@ @@@ M@hA@@ @ @@ @ @@>x@@>w@@>vb@>st@@@e9_9a(@   n m@ l o@@ ~@ {@ y@@d@>~3e2e1e1e2e2e2e2e2@ # @@@@@డc%Array&lengtheM;;eN;;@ eQ;;eR;;@@/@@@0hb@>@@@>/ @@@>@@>#@@ఐJ%casesej;;ek;;@-@@ 0@@!@@41@A@eo;;@@@@ఠ#sepe~;;e;;@eA@@Ad@>3eyexexeyeyeyeyey@HVO@P@Q@@@@ఠ$csepe;;e;;@eA@@@ @ @@>d@>@@ @@@@@@>@ఐ =÷e;<e;<@ A@@@ ?@ <@@ 8@ 6@@>@@>@@>8@@ఐ%casese;<e;< @@@ 6E@@@@@N@?@@>e@>N@A@e;; @@ఠ%intere<<e<<@eA@@@@@@1d@>e@@ఠ&cintere<<e<<"@fA@@@7@@@@Qd@@N@7@@@@Rd@@O@@@Pd@>@@(@@@(@@@>@డdf <%<.f <%d@>d@>@@@>@@>3ffffffff@@@@@ఐ >(ok_interf3 <%<7@ @@@@@>e@>e@>@@& @@@@@@fH @@@fP @@ఠ$act0f\ @డdK[KZK_f=K_f>fu @@@>@KU@@@>@@>@@>@@ఐn%casesf f@>f@>@@,+@@$@A@f +@@@f 2@@ఠ$act1f ?@@@@@@@ @@>H@డeRKKKfKff @@@>@K@@@>@@>@@>c@@ఐѠ%casesf @2@@@>0@@@>@@>@@>@@ఐ䠐&lcasesg g@>g@>@@A)g( g@>g@>@@ @@L @@@>@>g@>@@a`@@Y@A@g: @@>@@>3gDgCgCgDgDgDgDgD@ Z@@@@@@@@ఐ$act0g^ <<g_ <<@@@ h@@ఐ$act1gk <<gl <<@@@@@@@R @@@? e@?%@@@ఠ#lowg <<g <<@gA@@ e@? 3g}g|g|g}g}g}g}g}@9@@@@ఠ$highg <<g <<@gA@@ e@? @@ఠ&insideg <<g <<@gA@@3 @@@?2e@? !@@ఠ'outsideg <<g <<@gA@@1 @@@?4e@?3@@: @@@:@-@!@@@?>@ఐ+coupe_interg <<g <<@հ@@@2k@@@?@T@@@?@2@T@@@?@@ @@?@@@?@ @@3d@@@?@1G@@@?@@?@@?@@?@@?w@@Ah <<h <<@@2@@@?7f@?9f@?8@@డf22h <<h <<@2@@@2@@@??@3@@@?>2@@@?=@@?<@@?;@@ఐ&lcasesh4 <<@@@2/@@@?Kg@?Mg@?L@@B)hD <<@@3@@@?Jg@?Og@?N@@hM <<hN <<@@U?@@@?6@?Pg@?I@@ఐ@%casesh` <<ha <<@#@@ @@@@@䠠@נ@ˠ@@@?Tf@?0@A@hq <<@@@@@h|<= h}<= @@=a@?Y3huhththuhuhuhuhu@5@@@@@@@@@@@@@ఠ#cmih<=h<=@hA@@ a@?\@@ఠ'cinside h<=h<=@hA@@ a@?]'@@h<=h<=@@@@ @@?_0@@5@@@7@@"@@@?j@@?i=@ఐ )opt_counth<=h<='@ c@@@  ~@@?nK@@ఐ6&insideh<=(h<=.@P@@b@?rZ@@@@ [@A@h<=@@@h=/==h=/=>@@a@?ai@@@ఠ#cmo!h=/=@h=/=C@iA@@ a@?dz@@ఠ(coutside"i=/=Di=/=L@iA@@ ra@?e@@i=/=?i =/=M@@@@ @@?g@@,@@@.@@"@@@?l@@?k@ఐ )opt_counti&=/=Pi'=/=Y@ ð@@@  @@?v@@ఐ'outsidei5=/=Zi6=/=a@@@_b@?z@@@@ @A@i<=/=9@ఠ$cmij#iE=b=piF=b=t@iTA@@;@@@?e@?W@ຠ;!niW=b=xiX=b=y@Ai]=b=zi^=b={@@;u@@@?e@?@;"niij=b=~ik=b=@డg::iv=b=iw=b=@:@@@ e@?@:@@@?@@?@@?@@ఐ #lowi=b=@@@@@ఐ$high!i=b=@#@@@@@@T5@@@?f@? @@i=b=i=b=@@;@@@?e@?+@Ai=b=i=b=@@e@?e@?e@?7@i=b=i=b=@@:@@@i=b=wi=b=@@t=@A@i=b=l@ఠ#cij$i==i==@iA@@;@@@?e@?XP@ຠ;!ni==i==@Ai==i==@@;@@@?e@?f@;"nii==i==@డhu::i==i==@:@@@ e@?@:@@@?@@?@@?@@ఐ#lowj==@@@@@ఐ$high!j==@#@@@@@@T@@@?f@?@@j&==j'==@@<2@@@?e@?@Aj2==j3==@@e@?e@?e@?@j:==j;==@@@@@j===j>==@@t@A@j@==@@ ఐ7(add_testjL==jM==@6"@@@< @@@?@<@@@?Wn@@@?@@?@@?3jQjPjPjQjQjQjQjQ@@@@@tm@n@oha@b@c&@ @!@@@@@@ఐ#cijjs==jt==@ @@<2@@@?f@?f@?!@@ఐ堐'cinsidej==j==@%@@.@@?@@W@@@?e@?4@ ఐ7砐(add_testj=>j=>@6q@@@j=>@O@@j=>@e@@p@@2@@W@@@?e@?v@ ఐ<@*less_testsj>>,j>>6@9H@@@<@@@?@<@@@?T@@@?@@?@@?@@ఐd#cmij>>7j>>:@@@c@@ఐ#cmok>>;k>>>@@@@@+@@U@@@?f@?@ఐ8d(add_testk>D>Pk>D>X@6@@@<@@@@@<@@@@X:@@@@@@@@@@@@ఐ$cmijk2>D>Yk3>D>]@Ͱ@@<@@@@f@@f@@@@ఐQ#cmokF>D>^kG>D>a@@@P@@2@@Xa@@@@)e@@@ఐ8(add_testkY>q>}kZ>q>@7/@@@=@@@@@=@@@@X{@@@@@@@@@@ @@ఐ.$cmijks>q>kt>q>@@@=2@@@@%f@@'f@@&!@@ఐ#cmik>q>k>q>@&@@.@@2@@Cf@@#1@k>>)@@E3@@ภ%Interk>>k>>@;7 @7B@AB@A7@@7Ak>>k>>@@7@@@@3d@@6d@@5O@డj155k>>k>>@5@@@5@@@@<@7;@@@@;5@@@@:@@@9@@@8h@@ఐ&lcasesk>>@I@@5@@@@He@@Je@@I{@@B)k>>@@7`@@@@Ge@@Le@@K@@ @@7@@@@4@@Me@@F@@Vk>>@@@@@@2@@@ఐ$cmijl>>l>>@@@@@ఐE#cijl >>l >>@@@ @@l>>l>>@@@@@@@S@@@@@-@ @@@T@@@@@@@@@ @G@@ @l$ <<l%>>@@ @@ภ%Interl1>>l2>>@l8>>l9>>@@8L@@@@^d@@ad@@`@lF>>lG>>@@8U@@@@_d@@cd@@b@@lP>>@@cd@@]@@@ఐ>(too_muchl`>>la>>@=@@hd@@g@@ఐ>,(too_muchln>>lo>>@=@@od@@h@@lt>>lu>>@@fd@@i@@H@@bd@@j@l| <<@@d@l~ <%<=l>?@@g@@ภ%Interl??l??@l??l??@@8@@@@td@@wd@@v@l??l??@@8@@@@ud@@yd@@x%@@l??@@d@@s)@@@ఐ>x(too_muchl??l??%@>@@d@@};@@ఐ>(too_muchl??'l??/@>@@d@@~I@@l??l??0@@d@@N@@H@@d@@Q@l <%<+@@S@A@l<< @@ఐ;*less2testsl?4?;l?4?E@:@@@@>@@@@@>@@@@@@@@@>@@@@@>@@@@@@@W@@@@@@@@@@3llllllll@@@z@{@|1*@+@,!@@@@@@ఐ$csepm?4?Fm?4?J@@@@@@@@d@@d@@ @@ఐ?&cinterm0?4?Km1?4?Q@$@@@>@@@@@>@@@@@@@d@@d@@=@@`@@W@@@@d@@C@@ఐ֠#sepmT?W?]mU?W?`@K@@Q@@ఐѠ$csepm`?W?ama?W?e@V@@a@@_@@@@@蠠@ @@@f@@ఐ%intermx ?o?umy ?o?z@m@@ :c@@w@@ఐ&cinterm ?o?{m ?o?@z@@a@@@@@@(c@@@m?4?8 @@*@ @@+ @# @@,U@p A@@@@@@@@@@b@@v@@@m;;@@@@@@@@@@ఠ%cleft1pz,@@p{,@@@pA@@a@A?@@p,@@p,@@@@@@ @@AA@@,@@@.@@"@@@AL@@AK@ఐi)opt_countp,@@p,@A@;@@@hV@@An@@ఐ[$leftp,@Ap,@A @ɰ@@ b@Ar@@@@f@A@p,@@@@@p-A Ap-A A@@#~a@AC@@@ఠ#cmr2p-A Ap-A A@pA@@a@AF@@ఠ&cright3p-A A p-A A&@pA@@Ba@AG@@p-A Ap-A A'@@@@ @@AI@@,@@@.@@"@@@AN@@AM@ఐɠ)opt_countp-A A*p-A A3@@@@@@Av @@ఐ%rightq -A A4q-A A9@(@@/b@Az/@@@@0@A@q-A A@@ ఐ>l(add_testq .A=AEq!.A=AM@<@@@B@@@A@B@@@A^B@@@A@@A@@A3q%q$q$q%q%q%q%q%@SaZ@[@\@@@@@@rk@l@mf_@`@a@@@@ఐm"ciqG.A=ANqH.A=AP@@@C@@@Ah@Ah@A!@@ఐ᠐%cleftq[.A=AQq\.A=AV@#@@.@@?@@^v@@@Ag@A4@ ఐ>(add_testqo/AYAaqp/AYAi@=E@@@C,@@@A@C1@@@A^@@@A@@A@@AO@@ఐ"ciq/AYAjq/AYAl@T@@CH@@@Ah@Ah@Ac@@ఐà&crightq/AYAmq/AYAs@c@@p@@2@@^@@@Ag@Av@ ఐC*less_testsq0AvAq0AvA@@@@@Cp@@@A@Cu@@@A[@@@A@@A@@A@@ఐ`#cmlq0AvAq0AvA@@@_@@ఐ #cmrq0AvAq0AvA@@@ @@+@@\x@@@Ah@A@ఐ?8(add_testq1AAq1AA@=°@@@C@@@A@C@@@A_@@@A@@A@@A@@ఐ蠐"cmr1AAr1AA@а@@C@@@Ah@Ah@A@@ఐM#cmrr1AAr1AA@@@L@@2@@_5@@@Ag@A@ఐ?y(add_testr-3AAr.3AA@>@@@C@@@A@C@@@A_O@@@A@@A@@A @@ఐ)"cmrG3AArH3AA@@@D@@@Ah@Ah@A!@@ఐ#cmlr[3AAr\3AA@$@@.@@2@@Ch@A1@rb0AvA~@@E3@ఐA *less2testsrn6AAro6AA@?@@@@D/@@@A@D4@@@A@@A@@D=@@@A@DB@@@A@@A\@@@A@@A@@A`@@@ఐ"cmr6AAr6AB@h@@D]@@@Bg@Bg@Bx@@ఐנ"cir6ABr6AB@|@@Dp@@@B g@Bg@B@@r6AAr6AB@@@@@@Bg@B@@డqN#D#Fr6ABr6AB@#C@@@$@D@@@B@D@@@B@@Bg@B#g@B@@@B@@B@@ఐt)best_cost"r6AB@$@@$Ǡ$@@@Bh@B"h@B@@. @@&@@ @@]@@@B&g@B@ డq#렐#s8B#B2s8B#B4@#@@@$g@B,@@@B-@#@@@B+@@B*@@B)@@ఐޠ$bests)8B#B-s*8B#B1@=@@$@@@B7h@B:h@B8@@ఐc!is>8B#B5s?8B#B6@@@@@@@`Y@@@B;g@B6@డq$+$-sO9B9BMsP9B9BO@$*@@@%!@E@@@BN@E@@@BO@@BMf@B@@@@BA@$4@@@B?@@B>@@B=;@@ఐ)best_costsu9B9BCsv9B9BL@@@%I(@@@BKg@BPg@BLP@@@ఐp"cms9B9BQs9B9BS@X@@6g@BTc@@ఐ "cis9B9BTs9B9BV@g@@?g@BUq@@s9B9BPs9B9BW@@Mf@BVv@@2@@`@@@BXf@BWg@BJ~@s7BBs:BXBc@@ @@s5AA@@ @R@@ @F@@@@@@@@@@@z@r@`@@@BZe@BY3ssssssss@@@@@డrG$=$?s<BqBws<BqBx@$<@@@%d@Ba@@@Bb@@B`@@ఐ$bests<BqB|@@@%@@@Bge@Bje@Bh,@@  @@-@@డrq$g$is<BqB~s<BqB@$f@@@%Ơd@Bm@@@Bn@@BlB@@ఐ)best_costt <BqB@@@%ܠ@@@Bse@Bxe@BtV@@  @@W@@K @@@G@@@By^@@@_@@@@A@t%??@@@@ఠ$ilow4t->BBt.>BB@t<A@@s4@@@Dgd@B{3t+t*t*t+t+t+t+t+@)"@#@$@@@@@@ఠ%ihigh5tC>BBtD>BB@tRA@@sJ@@@Dsd@B|@@ఠ*with_inter6tT>BBtU>BB@tcA@@@F@@@D@F@@@D@@Dd@B}0@@:@@@:@&@@@B9@డr#nottz?BBt{?BB@_N@@@_N@@@B_K@@@B@@B3tztytytztztztztz@O@@@@డs%%t?BBt?BB@%@@@&c_l@@@Be@Be@B@@@B@@B@@ఐ(ok_intert?BB@\@@&~@@@Bf@Bf@B0@@% @@1@@= @@_Q@@@Be@B7@@ఠ$rlow7t@BBt@BB@tA@@&s@@@Be@B@@@Be@B3tttttttt@@@@డs[#reft@BBt@BB@&}@@@&@@@B@@B@@t@BBt@BB@@ @@@@&@A@t@BB@ఠ%rhigh8t@BBt@BB@u A@@&Ϡt@@@Be@B@@@Be@B6@డs#refu@BBu@BB@&@@@&@@@B@@BH@@u$@BBu%@BB@@Q@@@@%R@A@u(@BB@ఠ)best_cost9u1ABCu2ABC@u@A@@'@F@@@Be@B@G@@@Be@B@@Be@B@@@Be@Bx@డs#refuVABCuWABC@&@@@!'($@@@B@@B@@@ఐG+(too_muchumABCunABC @F@@.@@ఐG7(too_muchuyABC!uzABC)@F@@3@@u}ABCu~ABC*@@Ee@B@@,@@K@A@uABC@@ !i:uBC.C:uBC.C;@@@@AuBC.C<uBC.C=@@t@@@Be@B3uuuuuuuu@i@@@@un@o@p@@@డt(??uBC.CGuBC.CH@?@@@?@@@B@A2@@@B?@@@B@@B@@B@@ఐ&lcasesuBC.CA@@@?@@@Bf@Bf@B2@@B)uBC.CI@@AW@@@Bf@Bf@BA@@ @@t@@@Bf@BG@@@@ఠ#low;uCCMC[uCCMC^@vA@@zg@B3uuuuuuuu@\qt@@@D5e@B@vBC.C6vUEE@@vA@@@@ఠ$high<v CCMC`v CCMCd@vA@@g@B@@ఠ&inside=vCCMCfvCCMCl@v(A@@A@@@Cg@B,@@ఠ'outside>v+CCMCnv,CCMCu@v:A@@?}0@@@Cg@B>@@E @@@E@-@!@@@BI@ఐ-+coupe_intervICCMCxvJCCMC@)O@@@@@@@B@c?@@@B@A@cK@@@B頠@@e@@B@@@B@ @@Aޠ@@@Bꠠ@?@@@B@@B@@B@@B@@B@@ఐ!ivCCMCvCCMC@@@@@ఐ!ivCCMCvCCMC@@@@@ఐ砐%casesvCCMCvCCMC@ʰ@@@@X@@@@@@~@@Ch@C@A@vCCMCW@@డu6GTGVvDCCvDCC@GS@@@Cf@C@GQ@@@C@@C@@C3vvvvvvvv@@@@@@@@@@@@@ఐ砐#lowvDCC @!@@@@ఐ٠$high*vDCC@,@@!@@@@a@@@Cg@C'@@@@vECCvECC@@)a@C"3vvvvvvvv@5@@@@@ఠ#cmi?wECCwECC@wA@@a@C%@@ఠ'cinside@wECCwECC@w#A@@za@C&@@wECCwECC@@@@ @@C((@@-@@@/@@"@@@C3@@C25@ఐ)opt_countw8ECCw9ECC@հ@@@@@C7C@@ఐ.&insidewGECCwHECC@}@@eb@C;R@@@@S@A@wNECC@@@wWFCCwXFCC@@*a@C*a@@@ఠ#cmoAwgFCCwhFCC@wvA@@Ba@C-r@@ఠ(coutsideBwtFCCwuFCD@wA@@a@C.@@wzFCCw{FCD@@@@ @@C0@@,@@@.@@"@@@C5@@C4@ఐc)opt_countwFCDwFCD@5@@@bP@@C?@@ఐ|'outsidewFCDwFCD@ܰ@@b@CC@@@@`@A@wFCC@ఠ$cmijCwGDD*wGDD.@wA@@Iu@@@CIg@C @ຠIr!nwGDD2wGDD3@AwGDD4wGDD5@@I@@@CKg@CL@I"niwGDD8wGDD:@@wGDD;wGDD<@@I@@@CRg@CS@@@wGDD1wGDD=@@1@A@wGDD&@ఠ#cijDwHD>DNwHD>DQ@xA@@I@@@CXg@C!@ຠI!nxHD>DUx HD>DV@AxHD>DWxHD>DX@@J&@@@CZg@C[@I"nixHD>D[xHD>D]@@x!HD>D^x"HD>D_@@J-@@@Cag@Cb.@@@x)HD>DTx*HD>D`@@11@A@x,HD>DJ@@ ఐE(add_testx8IDdDpx9IDdDx@D@@@I@@@Cj@I@@@CieZ@@@Ch@@Cg@@Cf3x=x<x<x=x=x=x=x=@LE@F@G@9@:@;@@@@@@b[@\@]@@@@ఐi#cijx_IDdDyx`IDdD|@ @@J@@@Cvh@Cxh@Cw!@@ఐ_'cinsidexsIDdD}xtIDdD@%@@^.@@?@@e@@@Czg@Ct4@ ఐEӠ(add_testxJDDxJDD@D]@@@JD@@@C@JI@@@Ce@@@C@@C~@@C}O@@ఐ#cijxJDDxJDD@O@@J`@@@Ch@Ch@Cc@@ఐA(coutsidexJDDxJDD@e@@@p@@2@@e@@@Cg@Cv@ ఐJ,*less_testsxKDDxKDD@G4@@@J@@@C@J@@@Cb@@@C@@C@@C@@ఐޠ#cmixKDDxKDD@@@@@ఐ#cmoxKDDxKDD@@@@@+@@c@@@Ch@C@ఐFP(add_testyLDDyLDD@Dڰ@@@J@@@C@J@@@Cf&@@@C@@C@@C@@ఐg$cmijyLDDyLDD@Ͱ@@J@@@Ch@Ch@C@@ఐˠ#cmoy2LDDy3LDD@@@@@2@@fM@@@Cg@C@ఐF(add_testyENEEyFNEE@E@@@K@@@C@K@@@Cfg@@@C@@C@@C @@ఐ$cmijy_NEEy`NEE@@@K@@@Ch@Ch@C!@@ఐl#cmiysNEEytNEE"@&@@k.@@2@@Ch@C1@yzKDD@@E3@ఐH%*less2testsyOE%E4yOE%E>@F@@@@KG@@@C۠@KL@@@C@@C@@KU@@@Cؠ@KZ@@@C@@Cc@@@C@@C@@C`@@@ఐ$cmijyOE%E@yOE%ED@e@@Ku@@@Cg@Cg@Cx@@ఐӠ#cijyOE%EEyOE%EH@w@@K@@@Cg@Cg@C@@yOE%E?yOE%EI@@@@@@Cg@C@@డxf*\*^yOE%EJyOE%EK@*[@@@+@K@@@C젠@K@@@C@@Cg@D g@C@@@C@@C@@ఐ۠)best_cost"z OE%ET@k$@@+ߠ$@@@Dh@D h@D@@. @@&@@ @@d@@@D g@C@ డx++z'PE`Esz(PE`Eu@+@@@+7e@D g@D@@@D@+@@@D@@D@@D@@ఐ|$rlowzBPE`EnzCPE`Er@@@,@@@Dh@D!h@D@@ఐˠ!izWPE`EvzXPE`Ew@`@@`@@@@gr@@@D"g@D@ డx+F+HzjQEzEzkQEzE@+E@@@,<xg@D(@@@D)@+C@@@D'@@D&@@D%2@@ఐ%rhighzQEzEzQEzE@@@,X@@@D3h@D6h@D4G@@ఐ !izQEzEzQEzE@@@T@@@@g@@@D7g@D2Z@డy'++zREEzREE@+@@@,|@Lp@@@DJ@Lu@@@DK@@DIf@D<@@@D=@+@@@D;@@D:@@D9~@@ఐ)best_costzREEzREE@0@@,(@@@DGg@DLg@DH@@@ఐ2$cmijzREEzREE@@@6g@DP@@ఐ#cijzREEzREE@@@?g@DQ@@zREEzREE@@Mf@DR@@2@@h@@@DUf@DTg@DF@ @@@{ OE%EZ{ SEE@@ @@{OE%E1@@ @@@@@@@@@@{DCC{TEE@@@@{DCC@@@j@@!@@h/@@@DWe@DV3{{{{{{{{@@@@@డy++{*VEE{+VEE@+@@@,d@D_@@@D`@@D^@@ఐy$rlow{?VEE@@@-@@@Dee@Dhe@Df,@@  @@-@@డy+Ǡ+ɰ{TVEE{UVEE@+ư@@@-&d@Dk@@@Dl@@DjB@@ఐm%rhigh{iVEE@ɰ@@-<@@@Dqe@Dte@DrV@@  @@W@@డy++{~VEE{VEF@+@@@-P.d@Dw@@@Dx@@Dvl@@ఐb)best_cost{VEF @@@-f@@@D}e@De@D~@@  @@@@u @@@q@I@!@@D@@@ @@@ @@ఠ$rlowE{XFF!{XFF%@{A@@-z@@@De@D@@@De@D@డzH#ref{XFF({XFF+@-j@@@-@@@D@@D@@{XFF,{XFF0@@@@@@%@A@{XFF@ఠ%rhighF{XFF5{XFF:@{A@@-z@@@De@D@@@De@D@డz}#ref|XFF=|XFF@@-@@@-Ӡ@@@D@@D@@|XFFA|XFFE@@@@@@%@A@|XFF1@ఠ)best_costG|YFFFR|YFFF[@|-A@@-@M@@@De@D@M@@@De@D@@De@D@@@De@D@డz#ref|CYFFF]|DYFFF`@-@@@!.$@@@D@@D@@@ఐN(too_much|ZYFFFb|[YFFFj@M@@.'@@ఐN$(too_much|fYFFFk|gYFFFs@M@@33@@|jYFFFa|kYFFFt@@Ee@D8@@,@@K9@A@|pYFFFN@@ !iH|{ZFxF||ZFxF@@@@A|ZFxF|ZFxF@@{@@@De@D3|~|}|}|~|~|~|~|~@V@@@@un@o@p@@@డ{FF|ZFxF|ZFxF@F@@@F@@@D@H@@@DF@@@D@@D@@D@@ఐ蠐&lcases|ZFxF@@@F@@@Df@Df@D2@@B)|ZFxF@@HD@@@Df@Df@DA@@ @@{@@@Df@DG@@!jI|[FF|[FF@@@@ఐi!i|[FF|[FF@{@@@F6e@D@|ZFxF|mIZIf@@|A  @@ 3||||||||@g| @@@డ{vFF|[FF|[FF@F@@@F@@@D@H@@@DF@@@D@@D@@D@@ఐI&lcases}[FF@@@G@@@Dg@Dg@D-@@B)}#[FF@@H@@@Dg@Dg@D<@@ @@|/@@@Dg@DB@@@@ఠ#lowJ}?\FF}@\FF@}NA@@"h@D3}:}9}9}:}:}:}:}:@Wu|K@@@FKf@D@}N[FF}OlIKIY@@}]A@@@@ఠ$highK}Y\FF}Z\FF@}h A@@"h@D@@ఠ&insideL}g\FF}h\FF@}v A@@Hܠ"0@@@Eh@D,@@ఠ'outsideM}y\FF}z\FF@} A@@Fˠ"B@@@E h@D>@@E @@@E@-@!@@@DI@ఐ4ڠ+coupe_inter}\FF}\FF@0@@@H3@@@D@j@@@D@HN@j@@@D@@"i@@D@@@D@ @@I,@@@D@G@@@D@@D@@D@@D@@D@@ఐX!i}\FF}\FF@@@@@ఐ!j}\FF}\FF@@@@@ఐ5%cases}\FF}\FF@@@"C@@X@@@@@@~@@Ei@E@A@}\FF@@@@@~]FG~]FG@@0a@E3~}}~~~~~@@@@@@@@@@@@@@ఠ#cmiN~ ]FG~!]FG@~/ A@@a@E@@ఠ'cinsideO~-]FG~.]FG@~< A@@a@E'@@~3]FG~4]FG@@@@ @@E0@@5@@@7@@"@@@E)@@E(=@ఐ#)opt_count~Q]FG ~R]FG)@"@@@## @@E-K@@ఐ&inside~`]FG*~a]FG0@P@@#(b@E1Z@@@@#[@A@~g]FG @@@~p^G1GA~q^G1GB@@11a@E i@@@ఠ#cmoP~^G1GD~^G1GG@~A@@ Ka@E#z@@ఠ(coutsideQ~^G1GH~^G1GP@~A@@a@E$@@~^G1GC~^G1GQ@@@@ @@E&@@,@@@.@@"@@@E+@@E*@ఐ#|)opt_count~^G1GT~^G1G]@#N@@@#{#i@@E5@@ఐG'outside~^G1G^~^G1Ge@@@#b@E9@@@@#y@A@~^G1G=@ఠ$cmijR~_GfGv~_GfGz@~A@@P@@@E?h@E@ຠP!n~_GfG~~_GfG@A~_GfG~_GfG@@Q@@@EAh@EB@P"ni~_GfG~_GfG@డ}~OO_GfG_GfG@O@@@#h@EM@O@@@EL@@EK@@EJ@@ఐؠ#low_GfG@@@@@ఐʠ$high!#_GfG@#@@@@@@i@@@EVi@EU @@/_GfG0_GfG@@Q;@@@EHh@EW+@A;_GfG<_GfG@@h@EXh@EZh@EY7@C_GfGD_GfG@@:@@@F_GfG}G_GfG@@t=@A@I_GfGr@ఠ#cijSR`GGS`GG@aA@@Q@@@E^h@EP@ຠQ !nd`GGe`GG@Aj`GGk`GG@@Q@@@E`h@Eaf@Q"niw`GGx`GG@డ~PP `GG`GG@P@@@$Fh@El@P@@@Ek@@Ej@@Ei@@ఐZ#low`GG@@@X@@ఐL$high!`GG@#@@J@@@@jB@@@Eui@Et@@`GG`GG@@Q@@@Egh@Ev@A`GG`GG@@h@Ewh@Eyh@Ex@`GG`GG@@@@@`GG`GG@@t@A@`GG@@ ఐM#(add_testaGGaGG@K@@@Q@@@E@Q@@@El@@@E~@@E}@@E|3@@@@@tm@n@oha@b@c&@ @!@@@@@@ఐ#cijaGGaGG@ @@Q@@@Ei@Ei@E!@@ఐ堐'cinsideaGGaGH@%@@.@@?@@m-@@@Eh@E4@ ఐMr(add_test&bHH'bHH@K@@@Q@@@E@Q@@@EmH@@@E@@E@@EO@@ఐ#cij@bHHAbHH@O@@Q@@@Ei@Ei@Ec@@ఐǠ(coutsideTbHH UbHH(@e@@p@@2@@mo@@@Eh@Ev@ ఐQˠ*less_testsjcH+H:kcH+HD@NӰ@@@R'@@@E@R,@@@Ej@@@E@@E@@E@@ఐd#cmicH+HEcH+HH@@@c@@ఐ#cmocH+HIcH+HL@@@@@+@@k/@@@Ei@E@ఐM(add_testdHRH`dHRHh@Ly@@@R`@@@E@Re@@@Em@@@E@@E@@E@@ఐ$cmijdHRHidHRHm@Ͱ@@R|@@@Ei@Ei@E@@ఐQ#cmodHRHndHRHq@@@P@@2@@m@@@Eh@E@ఐN0(add_testfHHfHH@L@@@R@@@E@R@@@En@@@E@@E@@E @@ఐ.$cmijfHHfHH@@@R@@@Ei@Ei@E!@@ఐ#cmifHHfHH@&@@.@@2@@Ci@E1@cH+H7@@E3@ఐOĠ*less2tests%gHH&gHH@NV@@@@R@@@E@R@@@E@@E@@R@@@E@R@@@E@@EkW@@@E@@E@@E`@@@ఐ$cmijUgHHVgHH@e@@S@@@Fh@Fh@F x@@ఐ#cijhgHHigHH@w@@S'@@@Fh@Fh@F@@sgHHtgHH@@@@@@Fh@F@@డ11gHHgHH@1@@@3Z@SP@@@F@SU@@@F@@Fh@F h@F@@@F@@F@@ఐ)best_cost"gHH@$@@3~$@@@Fi@Fi@F@@. @@&@@ @@lQ@@@F#h@F@ డC22hHHhHH@2@@@3h@F)@@@F*@2@@@F(@@F'@@F&@@ఐ,$rlowhHHhHH@U@@3@@@F4i@F7i@F5@@ఐ|!ihHHhHH@@@@@@@o@@@F8h@F3@ డ2䠐2iHI iHI@2@@@3ڠh@F>@@@F?@2@@@F=@@F<@@F;1@@ఐ9%rhigh"iHI#iHI @@@3@@@FIi@FLi@FJF@@ఐa!j7iHI8iHI@@@S@@@@oR@@@FMh@FHY@డ3$3&HjII-IjII/@3#@@@4@T@@@F`@T@@@Fa@@F_g@FR@@@FS@3-@@@FQ@@FP@@FO}@@ఐP)best_costnjII#ojII,@@@4B(@@@F]h@Fbh@F^@@@ఐ$cmijjII1jII5@@@6h@Ff@@ఐC#cijjII6jII9@@@?h@Fg@@jII0jII:@@Mg@Fh@@2@@o@@@Fjg@Fih@F\@ @@@gHHkI;IJ@@ @@gHH@@ @@@@@@@@@@J@@@@@m@e@o@@@Flf@Fk3@@@@@o@@@Fne@Fm3@4@@@@డG3=3?nIiIqnIiIr@3<@@@4d@Fv@@@Fw@@Fu@@ఐ+$rlownIiIv@S@@4@@@F|e@Fe@F},@@  @@-@@డq3g3inIiIxnIiIy@3f@@@4Ơd@F@@@F@@FB@@ఐ %rhigh nIiI~@|@@4ܠ@@@Fe@Fe@FV@@  @@W@@డ33nIiInIiI@3@@@4d@F@@@F@@Fl@@ఐ)best_cost3nIiI@@@5@@@Fe@Fe@F@@  @@@@u @@d@F@W@@@c@@ @D?BB@@@A@F>BB@@@ఠ!rTQoIIRoII@`A@@5$6@@@Fd@F@@@Fd@F3UTTUUUUU@-;4@5@6&@ @!@@@@@డ#refpoIIqoII@5@@@5B@@@F@@F@@ภ%InteroIIoII@ఐ_$ilowoIIoII@*@@O@@@Fe@Fe@F6@ఐ[%ihighoIIoII@;@@O@@@Fe@Fe@FH@@oIIoII@@Qe@FM@@>@@WN@A@oII@ఠ"rcUoIIoII@A@@5@U@@@F@U@@@F@@Fd@F@@@Fd@Fp@డU#refoIIoII@5w@@@5 @@@F@@F@@ఐ*with_interoIIoII@@@,@@@@2@A@oII@@ ఐR*less2testspIIpII@Q0@@@@U@@@FƠ@U@@@F@@F@@U@@@Fà@U@@@F@@Fn1@@@F@@F@@F3@@@qj@k@l@@@@ఐ(with_sep0pII1pII@@@@U@@@Fڠ@U@@@F@@Fe@Fe@F"@@డ44ðNpIIOpII@4@@@6 @V@@@Fנ@V@@@F@@Fe@Fe@F@@@F@@FF@@ఐ"rc"qpII@M$@@6D$@@@Ff@Ff@FZ@@. @@&[@@~ @@o@@@Fe@Fa@ డ 5h5jqIJqIJ@5g@@@6^7S@@@Ge@F@@@F@5h@@@F@@F@@F~@@ఐX!rqIIqII@@@6}@@@Gf@Gf@G@@ภ#SepqIJqIJ@ ఐ#limqIJqIJ @@@P@@@G f@Gf@G @@ @@>f@G @@, @@q@@@Ge@G@డ_55qIJqIJ@5@@@6@V@@@G"@V@@@G#@@G!d@G@@@G@5@@@G@@G@@G@@ఐP"rcqIJ  qIJ@@@6ܠ(@@@Ge@G$e@G @@ఐ(with_sepqIJqIJ@@@6d@G%@@@@r<@@@G)d@G(e@G @+pII,rJJ#@@  @@.pII@@ @@డ55;sJ&J*<sJ&J+@5@@@7 8c@G8c@G0@@@G1@@G/'@@ఐ!rRsJ&J,@/@@7%@@@G6d@G9d@G7;@@" @@<@@డ5ڠ5ܰgsJ&J.hsJ&J/@5ٰ@@@79(a@GDc@G<@@@G=@@G;S@@ఐƠ"rc~sJ&J1@Z@@7Q@@@GBd@GGd@GCg@@" @@h@@O @@@K@!@@GHo@c@@p@@@2@M@@ ]@v@@ w@@@ @A@@)@)젠@)@@GM@@GLb@GJ@@@#??$@@%5%@*UA+%t_ctxVbOO OO%@А!a@GO3@*W;@@GN@A@A@G@B@@@OOOO?@@@@A@@OOOO@@5@;@A#offW@@@@@GPOO*OO5@@A#argX@@(c@GSOO6OO>@@A@@A@Y@@@@@"@@@@#OO-@@@Ш@г#intOO0OO3@@$;@@'@@GQ>@#@#OO9@@@Ш@А!a%HOO<#@@)@@GTL@'@@A@C@@CB@3@*@@@ఠ,make_if_testYOAOGOAOS@A@@@[`@@@Gc@Gb@ _@@@Gc@Gg@_3@@@Hc@Gl@_@@@Gc@Gq@ @@@Gc@Gv@@@Gc@Gw@@Gxc@Gr@@Gsc@Gm@@Gnc@Gh@@Gic@Gc@@Gdc@Ga3>==>>>>>@*@@@࣠@$test[AVOAOTWOAOX@eA@@C3ONNOOOOO@P^OAOC_OO@@@@@  @@#arg\AjOAOYkOAO\@yA@@L3cbbccccc@!Z@@@@@@@@!i]A{OAO]|OAO^@A@@S3tssttttt@`@@@@@@@@$ifso^AOAO_OAOc@A@@[3@g@@@@@@@@%ifnot_AOAOdOAOi@A@@b3@o@@@@@@@@డ\g'make_if#ArgOlOpOlOs@ OlOtOlO{@@@`D@@@G@@@@G@@@@G@@@G@@G@@G@@G@]@]@@@@@@G@@@@G@@@@G@@@G@@G@@G@@G3@AM@D@E@@@@డ\)make_prim#ArgO|OO|O@ O|OO|O@@@@@@G@_@@@G@@@GM@@@G@@G@@G@__@_]@@@@@@G@_@@@G@@@G_@@@G@@G@@G>@@ఐ֠$test)O|O*O|O@@@K@@ภ"::5O|O6O|OAtఐؠ#arg ?O|O@ @@`@ภGO|OAtడ] *make_const#ArgVO|O@ YO|OZO|O@@@`d@@@G>@@@G@@G@`J@`H @@@`m@@@HG@@@H@@H@@ఐ!ixO|OyO|O@@@O@@5@@`c@Gj@H@Hk@H @ภ"[]TAu@UA@@@@Hj@H@@K\A@@@@Gj@H@@O|Od@@`{@@@Gj@G@@O|OO|O@@@@@G@Hj@G@@ఐ+$ifsoOOOO@@@@@ఐ'%ifnotOOc@߰d@@@@e@@~@ofA@c@H$m@A@j@ji@@ఠ*make_if_lt`OOOO@A@@@@@@Hc@H)@`@@@Hc@H.@@@@Hc@H3@@@@Hc@H8@@@Hac@H9@@H:c@H4@@H5c@H/@@H0c@H*@@H+c@H%3@@@@@@࣠@#arghAOOOO@!A@@73@GOOP:Pi@*make_if_ge*make_if_eq*make_if_ne @@@@@@!iiA+OO,OO@:"A@@K3$##$$$$$@*W@!@"@@@@@@$ifsojA<OO=OO@K#A@@S354455555@_@@@@@@@@%ifnotkAMOONOO@\$A@@[3FEEFFFFF@g@@@@@@@@ఐ7!i_OO`OO@@@~3WVVWWWWW@o@@@@@AmOOnOO@@c@Hc@H>@@@@@ఐl,make_if_test{OP|OP@{@@@g@@@HK@a@@@HJ@a@@@HI@X@@@HH@]@@@HG`@@@HF@@HE@@HD@@HC@@HB@@HA8@@డ^\%leint#ArgOPOP@ OPOP@@@@@G~@b@b @@@@@Hfi@Hhi@HgY@@ఐ#argOPOP!@@@f@@@OP"OP#@@a@@@Hdi@Hki@Hjv@@ఐ$ifsoOP$OP(@@@@@ఐ%ifnotOP)OP.@@@@@x@@@@P/P5P/P6@@@@@@@ఐ,make_if_testP:PBP:PN@@@@@@@Hy@@@@Hx@b@@@Hw@@@@Hv@@@@Hu@@@Ht@@Hs@@Hr@@Hq@@Hp@@Ho@@డ^%ltint#Arg1P:PO2P:PR@ 5P:PS6P:PX@@ @@@G@c*@c( @@(@@@Hi@Hi@H@@ఐC#argNP:PYOP:P\@@@v@@ఐ3!i[P:P]\P:P^@@@z@@ఐ/$ifsohP:P_iP:Pc@@@~ @@ఐ+%ifnotuP:Pd\@]@@@@t^@@}@@@AyOO`@@@maA@c@Hk@A@eఠgahPkPqPkP{@A@@@j@@@Ic@H@b@@@I c@H@i@@@I c@H@r@@@I c@Hw@@@Hc@H@@Hc@H@@Hc@H@@Hc@H@@Hc@H&3@@@@࣠@#arglAPkP|PkP@%A@@53@@@@@@@!imAPkPPkP@&A@@;3@G@@@@@@@@$ifsonAPkPPkP@'A@@C3@O@@@@@@@@%ifnotoAPkPPkP@(A@@K3@W@@@@@@@@ఐ7!iPkPPkP@@@n3@_@@@@@APPPP@@}c@Ic@H@@@@@ఐ ,make_if_testPPPP@@@@@@@H@@@@H@c0@@@H@@@@H@@@@H@@@H@@H@@H@@H@@H@@H8@@డ_%gtint#ArgIPPJPP@ MPPNPP@@8@@@G@d@d @@@@@@Hi@Hi@HY@@ఐ#argfPPgPP@@@f@@@pPPqPP@@c{@@@Hi@Hi@Hv@@ఐ$ifsoPPPP@@@@@ఐ%ifnotPPPP@@@@@x@@@@PPPP@@@@@@@ఐ,make_if_testPPPP@@@@@@@H@@@@H@c@@@H@@@@H@@@@H@@@H@@H@@H@@H@@H@@H@@డ`%geint#ArgPPPP@ PPPQ@@@@@G@d@d @@@@@Ii@Ii@I@@ఐ5#argPQPQ@@@f@@ఐ3!iPQPQ@@@j@@ఐ/$ifso PQ PQ @@@n @@ఐ+%ifnotPQ PQ@@@r@@u@@n@@@APkP@@p@`A@c@I^@A@ PkPm @ఠ b (QQ)QQ$@7A@@@@@@IXc@I@d@@@@IWc@I$@ @@@IVc@I)@@@@IUc@I.@@@ITc@I/@@I0c@I*@@I+c@I%@@I&c@I @@I!c@H'3JIIJJJJJ@U@@@࣠@#argpAaQQ&bQQ)@p)A@@53ZYYZZZZZ@S@@@@@@!iqApQQ*qQQ+@*A@@;3ihhiiiii@cG@@@@@@@@$ifsorAQQ,QQ0@+A@@C3zyyzzzzz@O@@@@@@@@%ifnotsAQQ1QQ6@,A@@K3@W@@@@@@@@ఐ,make_if_testQ9Q=Q9QI@@@@@@@I>@@@@I=@d@@@I<@@@@I;@@@@I:@@@I9@@I8@@I7@@I6@@I5@@I43@.:{@1@2@@@@డa%eqint#ArgQ9QJQ9QM@ Q9QNQ9QS@@@@@G|@f'@f% @@@@@IYh@I[h@IZ$@@ఐ#argQ9QTQ9QW@}@@1@@ఐ!iQ9QXQ9QY@y@@>@@ఐ$ifso Q9QZ Q9Q^@u@@K@@ఐ%ifnotQ9Q_Q9Qd@U@@X@@x@@Y@A@c@Ig@A@ QQ@ఠc(QfQl)QfQv@7 A@@@@@@Ic@Ih@e@@@@Ic@Im@ @@@Ic@Ir@@@@Ic@Iw@@@Ic@Ix@@Iyc@Is@@Itc@In@@Ioc@Ii@@Ijc@H(3JIIJJJJJ@U@@@࣠@#argtAaQfQxbQfQ{@p-A@@53ZYYZZZZZ@S@@@@@@!iuApQfQ|qQfQ}@.A@@;3ihhiiiii@cG@@@@@@@@$ifsovAQfQ~QfQ@/A@@C3zyyzzzzz@O@@@@@@@@%ifnotwAQfQQfQ@0A@@K3@W@@@@@@@@ఐ,make_if_testQQQQ@@@@@@@I@@@@I@e@@@I@@@@I@@@@I@@@I@@I@@I@@I@@I~@@I}3@.:{@1@2@@@@డb%neint#ArgQQQQ@ QQQQ@@@@@G}@g @g @@@@@Ih@Ih@I$@@ఐ#argQQQQ@}@@1@@ఐ!iQQQQ@y@@>@@ఐ$ifso QQ QQ@u@@K@@ఐ%ifnotQQQQ@U@@X@@x@@Y@A@c@I@A@ QfQh@@  @"@ఠ/make_if_nonzerox-QQ.QQ@<1A@@@@@@Ic@I@ @@@Ic@I@@@@Ic@I@@@Ic@I@@Ic@I@@Ic@I@@Ic@I3FEEFFFFF@U@@@@3-@.@/4.@/@0@@@࣠@#argzAeQQfQQ@t2A@@43^]]^^^^^@AmQQnQR@@@@@  @@$ifso{AyQQzQQ@3A@@?3rqqrrrrr@!K@@@@@@@@%ifnot|AQQQQ@4A@@G3@S@@@@@@@@డcT'make_if#ArgQQQQ@ QQQQ@@@@@@@@I@x@@@I@}@@@I@@@I@@I@@I@@I3@-9v@0@1@@@@డc/make_is_nonzero#ArgQQQQ@ QQQR@@@@@@G@@@G@@G@e{@ey @@@@@@I&@@@I@@I,@@ఐ#argQRQR@s@@9@@QQQR@@=@@@I@Ih@IC@@ఐ$ifsoQR QR @y@@P@@ఐ%ifnotQR@Y@@\@@w@@]@A@c@I@A@@@ʠ@ఠ,make_if_bool}&RR'RR'@55A@@@ @@@J"c@I@@@@Jc@I@ @@@Jc@I@@@Jc@I@@Ic@I@@Ic@I@@Ic@I3?>>?????@#@@@@@࣠@#argAXRR(YRR+@g6A@@.3QPPQQQQQ@;`RRaR9Ri@@@@@  @@$ifsoAlRR,mRR0@{7A@@93eddeeeee@!E@@@@@@@@%ifnotA}RR1~RR6@8A@@A3vuuvvvvv@M@@@@@@@@డdG'make_if#ArgR9R=R9R@@ R9RAR9RH@@@@@@@@J@k@@@J@p@@@Js@@@J@@J@@J@@J3@-9p@0@1@@@@డdt+arg_as_test#ArgR9RJR9RM@ R9RNR9RY@@@@@@G@@@G@@G@f>@f< @@@@@@J@@@J@@J,@@ఐ#argR9RZR9R]@s@@9@@R9RIR9R^@@0@@@J@J$h@J!C@@ఐ$ifsoR9R_R9Rc@y@@P@@ఐ%ifnotR9Rd@Y@@\@@w@@]@A@c@J,@A@@@Ġ@ఠ.do_make_if_outRkRqRkR@(9A@@@@@@Jlc@J.@ @@@Jkc@J3@@@@JYc@J8@ @@@JXc@J= @@@JWc@J>@@J?c@J9@@J:c@J4@@J5c@J/@@J0c@J-3;::;;;;;@&@ @!@@@࣠@!hATRkRURkR@c:A@@73MLLMMMMM@D\RkRm]RR@@@@@  @@#argAhRkRiRkR@w;A@@B3a``aaaaa@!N@@@@@@@@$ifsoAyRkRzRkR@RR@L>A@@@  )@@@Jc@KA@@@K@c@J{@}C@@@K;c@J@if@@@Krc@J@@'c@J 8@@@Kec@JʐA@Jc@J@@6c@J G@@@Kdc@JϐA@Jc@J M@@@Jc@J@@Jc@J@@Jc@J@@Jc@J@@Jc@J|@@J}c@Jz3|{{|||||@Btm@n@o@@@࣠@#ctxARRRR@?A@@T3@aRRTTQ@@@@@  @@!lARRRR@@A@@X3@!k@@@@@@@@!dARRRR@AA@@_3@l@@@@@@@@'mk_ifsoARRRR@BA@@g3@s@@@@@@@@'mk_ifnoARRRR@CA@@i3@{@@@@@@@@ఐH!lRRRR@0@@3@}@@@@@@RSRS@@c@KSS8@@ @@@jH@@@J "@@@J@@JD@@ఐ!dSSS9TSS:@@@Q@@WSS)XSS;@@ 9@@@J@Jk@J[@@ఐڠ#ctxlSS<mSS?@@@*j@#argsSS@tSSC@3 / @@G` @@A3  @@@@A @ @A @ @@5c@Jc@Jc@J}@@ఐƠ'mk_ifsoSSESSL@@@)@@ఐ #ctxSSMSSP@@@Y@@SSDSSQ@@4@@ఐԠ'mk_ifnoSSSSSZ@@@9@@ఐ(#ctxSS[SS^@ @@x@@SSRSS_@@D@@@@?@@S`SfS`Sg@@t@@t@@@డg$bind#ArgSkSsSkSv@ SkSwSkS{@@@ @@@G@@ @@@G @@@G@@G @@@G@@G@@G@k@k@@@ @@@J@@ @@@J @@@J@@J @@@J@@J@@J@@డg+make_offset#ArgS|SS|S@ S|SS|S@@@ @@@G@j@@@G @@@G@@G@@G@j@jɰ@@@ @@@J@j@@@J @@@J@@J@@J1@@ఐ#ctxBS|SCS|S@@@@@#argIS|SJS|S@ְ @@c@JH@@డ"~-YS|SZS|S@@@@@pM@@@o@@n'%negintAAA@@@?))@)*@@>j@@@@@@@K@@@K@@Kq@@ఐڠ!l&S|S@(@@-}@@S|SS|S@@kM@@@J@K l@K @@S|SS|S@@ o@@@J@K k@J@@࣠@#argASSSS@DA@@ @@@K@@@@@ఠ#ctxSSSS@EA@@v @@@KGl@K@@@Kl@K3@+ @@@K@%@&@@@ຠV#offSSSS@డ\ѠӰSSSS@а@@@@@@K$@@@@K#@@@K"@@K!@@K )@@డw"~-SSSS@@@@@@@K4@@@K3@@K2@@@ఐj!l1@P2@@K@@3@@@@@K0@K=n@K:S@@ఐ#ctxE%SS@wG@@a@#off+SS,SS@N@@@@@K/m@KBm@K?o@@6SS7SS@@ m@@@Km@K.w@ɡ#argCSSDSS@ఐ#argLSSMSS@@@@@@PSSQSS@@@A@SSS@@ఐD.do_make_if_out]ST^ST@ְ@@@ >@@@KQ@ C@@@KP@ 5@@@KO@ :@@@KN =@@@KM@@KL@@KK@@KJ@@KI3lkklllll@@@@@@@డi>*make_const#ArgTTTT"@ TT#TT-@@ 5@@@l@@@Kk s@@@Kj@@Ki#@@ఐ!dTT.TT/@հ@@H0@@TTTT0@@ @@@Kg@Ktm@Kq:@@ఐ#argTT1TT4@@@ @@@Kfl@Kvl@KuN@@ఐ 'mk_ifsoTT6TT=@@@l]@@ఐ'#ctxTT>TTA@g@@c@Kyl@@TT5TTB@@yo@@ఐ'mk_ifnoTTDTTK@@@~~@@ఐH#ctxTTLTTO@@@c@K~@@TTCTTP@@@@@@ @@@Kl@Kc@@@H@SSr@@@ @@@J @@@J@@Jj@Kj@K@@G@@@@@ARR@@@A@c@K@A@@@@ఠ-do_make_if_in.TSTY/TSTf@=FA@@@@@@Kc@K@@@@Kc@K@@@@Kc@K@@@@Kc@K!@@@Kc@K@@Kc@K@@Kc@K@@Kc@K@@Kc@K3POOPPPPP@$@@@@@࣠@!hAiTSTgjTSTh@xGA@@73baabbbbb@DqTSTUrTyT@@@@@  @@#argA}TSTi~TSTl@HA@@B3vuuvvvvv@!N@@@@@@@@$ifsoATSTmTSTq@IA@@J3@V@@@@@@@@$ifnoATSTrTSTv@JA@@R3@^@@@@@@@@డji'make_if#ArgTyT}TyT@ TyTTyT@@@@@@@@K@@@@K@@@@K@@@K@@K@@K@@K3@-9@0@1@@@@డj)make_isin#ArgTyTTyT@ TyTTyT@@@@@@G@@@@G7@@@G@@G@@G@l@lð@@@@@@K@@@@KE@@@K@@K@@K6@@ఐ!hTyTTyT@@@C@@ఐ#argTyTTyT@@@P@@ TyT!TyT@@i@@@K@Ki@KZ@@ఐ$ifso3TyT4TyT@@@g@@ఐ$ifno@TyT@p@@s@@@@t@A@c@K@A@@@젰@ఠ*make_if_inRTTSTT@aKA@@@=@@@Lbc@L@@@Lc@K@@@@Lc@K@ny@@@Lc@K@@%c@L0K@@@Lc@L1A@L2c@K@@4c@L5Z@@@Lc@L6A@L7c@K`@@@Lc@K@@Kc@K@@Kc@K@@Kc@K@@Kc@K@@Kc@K3@@rk@l@m@@@࣠@#ctxATTTT@LA@@R3@_TTUV4@@@@@  @@!lATTTT@MA@@W3@!i@@@@@@@@!dATTTT@NA@@_3@k@@@@@@@@'mk_ifsoATTTT@OA@@g3@s@@@@@@@@'mk_ifnoATTTT@PA@@i3@{@@@@@@@@ఐH!lTTTT@0@@3@}@@@@@@TTTT@@c@Lc@Lqc@Lrc@K3        @@@@ @@@@ఐ-do_make_if_in"TT#TU@@@@@@@L@@@@L@@@@L@@@@L@@@L@@L@@L@@L@@K$@@డl*make_const#ArgLUUMUU@ PUUQUU@@@@@o[@@@L!5@@@L @@LD@@ఐ!dfUUgUU@@@Q@@jUU kUU@@L@@@L@L*k@L'[@@ఐڠ#ctxUU UU#@@@(j@#argUU$UU'@ @@.c@Lfc@Lc@L,w@@ఐ'mk_ifsoUU)UU0@@@#@@ఐ#ctxUU1UU4@@@Q@@UU(UU5@@.@@ఐΠ'mk_ifnoUU7UU>@@@3@@ఐ"#ctxUU?UUB@@@p@@UU6UUC@@>@@@@9@@UDUJUDUK@@m@@m@@@డl$bind#ArgUOUWUOUZ@ UOU[UOU_@@ @@@@@@L@@@@@@L?@@@L>@@L=@@@L<@@L;@@L:@@డl+make_offset#Arg U`UkU`Un@ U`UoU`Uz@@@@@@@@LV@o@@@LU@@@LT@@LS@@LR @@ఐ#ctx.U`U{/U`U~@n@@@#arg5U`U6U`U@° @@c@Ld!@@డ"~-EU`UFU`U@@@@@@@Lj@@@Li@@Lh8@@ఐ!lZU`U@@@D@@]U`U^U`U@@p'@@@La@Lsl@LpN@@gU`UjhU`U@@I@@@LP@Ltk@L`X@@࣠@#argA~UUUU@QA@@^@@@Lzm@@@@@ఠ#ctxUUUU@RA@@Px@@@Ll@L@@@Ll@L~3@+@@@Ly@%@&@@@ຠ0#offUUUU@డ6UUUU@@@@@@@L@@@@L@@@L@@L@@L)@@డQ"~-UUUU@|@@@@@@L|@@@L@@L@@@ఐ1!l1@2@@K@@3@@@@@L@Ln@LS@@ఐZ#ctxEUU@>G@@a@#offUUUU@N@@@@@Lm@Lm@Lo@@UUUU@@G@@@Lm@Lw@#argUUUU@ఐ#arg&UU'UU@@@@@@*UU+UU@@@A@-UU@@ఐ -do_make_if_in7UU8UU@@@@@@@L@@@@L@@@@L@@@@L@@@L@@L@@L@@L@@L3FEEFFFFF@@@@@@@డn*make_const#ArgdUVeUV@ hUViUV@@@@@qs@@@LM@@@L@@L#@@ఐ!d~UVUV@@@0@@UVUV@@d@@@L@Lm@L:@@ఐ#argUVUV@@@x@@@Ll@Ll@LN@@ఐР'mk_ifsoUVUV @@@3]@@ఐ'#ctxUV!UV$@g@@ac@Ll@@UVUV%@@@o@@ఐࠐ'mk_ifnoUV'UV.@Ȱ@@E~@@ఐH#ctxUV/UV2@@@c@L@@UV&UV3@@R@@@@@@@Ll@L@@@H@UU9@@@@@@LO@@@LN@@LMj@Lj@L@@F@@b@@@ATTH@@d@RIA@c@LP@A@M@ML@cAఠ&c_testVjVt VjVz@SA@@@ɠ@@@Tc@U@@@Uc@L@n@c@M@@@Tc@MA@Mj@R @@@Rc@Lc@M@@M@@M3#""#####@@@@@@࣠@#ctxA<VjV{=VjV~@KTA@@2354455555@>@9@0@@Md@L@@Ld@L@@@A@@@@@@!sAঠ%cases[VjV\VjV@3nAn@@,n@@@3nn@@A@An@n|@An@nఠ%casesiVjVjVjV@xUA@@n@n@@@M@n@@@M@n@@@M @@M@@@Mf@M3yxxyyyyy@EQy@H@I@@@'actionsVjVVjV@-ఠ'actionsVjVVjV@VA@@n}c@M$@@@M#f@M@@@VjVVjV@@c@Qc@Q c@Pc@Oc@Oc@OHc@Oc@Mf@M 1@ggVjVVjV@WA!@@@M%g@MVjVVjV@@?@@@@@ఠ&lcasesVVVV@XA@@c@@@M5f@M*3@Wwp@q@rLE@F@G%@)@&@@@డe%Array&lengthVVVV@ VVVV@@c@@@e@o;@@@M9@o:@@@M:@o9@@@M;@@M8f@M/@@@M.c@@@M-@@M,8@@ఐ%casesVVVV@@@@e+@@@M6g@MWW4W?@eYA@@Na@M3QPPQQQQQ@@@@@ఠ"_ceW4W@fW4WB@tZA@@>a@M@@@@@@ @@M@ఐ@F)opt_count{W4WE|W4WN@@@@@f(@s@@@M@@p@@@Mf@M@@M@@@M@G@@M8@@ఐ5%casesW4WOW4WT@İ@@fM@@@@M@@%@@M@@@Mg@Mg@MX@@:@@@hY@A@W4W:@@ఐj!wWWWW@i@j@k@@j3@uf_@`@a@@@Ġ"NoWWWW@>*@@@@{3@@@@@|@@@డ^ɠWWWWAȰA@@Ƞi@M@@@M@@@@M@@M@@M@@ఐi'actionsWW@"@@@@@Mj@Mj@M3@@ఐp'get_actWWWW@m@@@@q^@@@Mj@M۠@q_@@@Mj@Mܠ@@@@Mj@Mj@M@@M@@@M@ @@@M @@M@@Mf@@ఐܠ%casesEWWFWW@k@@+@3@.@)@@M@@@Mk@Mk@M@@@_WW`WW@@9@@@Mk@Mk@M@@U @@;@@@@~@@ఐ;#ctxtWWuWW@@@i@@@@K@Ġ%InterWWWX@0ఠ!iWXWX@[A@@h@@@M3@@@@ఠ!jWXWX@\A@@h@@@M@@@ WX@@I@@I@@@@@ఠ#lowX XX X@^A@@@@@Nh@M3@6/@0@1(!@"@#@@@@ఠ$highX XX X"@_A@@h@M@@ఠ&insideX X#X X)@`A@@hJ@+@-@r@@@N*h@N@@N@@@Nh@M2@@ఠ'outsideX X+X X2@aA@@fF@@@Nh@MD@@N @@@N@:@.@@@MO@ఐTU+coupe_interX X5X X@@P@@@g@@@N@@@@N@gɠ@@@@N@@I@@N@@@N@ @@h@@@N@f@@@N@@N@@M@@M@@M@@ఐ!iLX XAMX XB@@@g@@@N!i@N#i@N"@@ఐƠ!j`X XCaX XD@@@S@@@N i@N%i@N$@@ఐ %casestX XEuX XJ@@@h#@@@Ni@N+i@N&@@n @@@Ѡ@@@@@N.i@N@A@X X@@@@@XNX\XNX]@@PYa@N13@@@@@@@@@@@@@@ఠ'cinsideXNX_XNXf@bA@@?na@N4@@@XNXgXNXh@@?a@N5"@@XNX^XNXi@@@@ @@N7+@@0@@@2@@@@@NB@@NA8@ఐB)opt_countXNXlXNXu@Bz@@@h@@@@NI@@s"@@@NWh@NJ@@NH@@@NGB@@NFZ@@ఐ+&insideXNXvXNX|@_@@h@@@@NS@@%@@NR@@@NQi@NXi@NTz@@:@@B{@A@XNXX@@@!X}X"X}X@@Pa@N9@@@ఠ(coutside1X}X2X}X@@cA@@?a@N<@@@:X}X;X}X@@?a@N=@@?X}X@X}X@@@@ @@N?@@'@@@)@@@@@ND@@NC@ఐC()opt_count]X}X^X}X@B@@@i @U@@@Na@@s@@@Noh@Nb@@N`@@@N_C)@@N^@@ఐ'outsideX}XX}X@ް@@i/@z@@@Nk@@%@@Nj@@@Nii@Npi@Nl@@:@@CJ@A@X}X@@డ o>o@Y:YJY:YK@o=@@@@@@Ng@Ny@o>@@@Nx@@Nw@@Nv3@@@@@@@@@ఐ#lowY:YG@! @@@@ఐ$high)Y:YO@,+@@'h@N@@@@l@@@Nh@N%@ఐpC*less_testsY[YjY[Yt@mK@@@p@@@N@p@@@N@@@N@@N@@N@@@ఐˠ(coutsideY[YuY[Y}@H@@M@@ఐX'cinside Y[Y~ Y[Y@V@@WZ@@+@@@@@Nh@N`@ఐ*make_if_eqYYYY@Ű@@@@@@N@x*@@@N@@@@N@@@@N@@@N@@N@@N@@N@@N@@ఐ#ctxAYYBYY@@@6@#argHYYIYY@ հ @@Tc@Tc@Tc@Tc@THc@TLc@Tc@Tc@Q?c@QEc@P:c@P@c@Oic@Omc@Nc@N@@డfhtYYuYY@e@@@e@@@N@b@@@Na@@@N@@N@@N@@ఐݠ#lowYY@@@@@@Ni@Ni@N@@ఐj#ctx.YY@0@@@#offYYYY@17@@@@@Ni@Ni@N@@YYYY@@x@@@N@Ni@N @@ఐ&c_testYYYY@@@@@@@N@@N@@ఐ#ctxYYYY@V@@+@@ຠ%casesYYYZ@ఐ&insideYZYZ @Q@@u;@u6@@@Ni@N@@u7@@@N@@N@@@Ni@NY@u2i@O@@@O i@O @@ఐˠ!sYYYY@A@@i@O @@@O i@Oi@Ox@+YY,YZ @@{@@.YY/YZ @@~@@ఐ4&c_test<Z Z=Z Z$@@@@3@(@@O@@O@@ఐ#ctxMZ Z%NZ Z(@ɰ@@B@@ຠ%cases\Z Z1]Z Z6@ఐq'outsideeZ Z7fZ Z>@ð@@u@u@@@O/i@O.@@u@@@O0@@O-@@@O,i@O1@udi@OG@@@OFi@OC@@ఐ>!sZ Z*Z Z+@@@zyi@OD@@@OEi@OAi@O;@Z Z)Z Z?@@@@Z ZZ Z@@@v@@@@c@Uc@Tc@Uc@Tc@Tc@Tc@Tc@TFc@Tbc@TGc@TWc@Tc@T/c@Tc@T$c@Rh@N@ఐ*make_if_neZRZ`ZRZj@x@@@@@@OS@y@@@OR@@@@OQ@@@@OP@@@OO@@ON@@OM@@OL@@OK7@@ఐ#ctxZkZ{ZkZ~@q@@F@#argZkZZkZ@ @@c@OkN@@డ ZZ ZZ@@@@@@@Os@@@@Or@@@Oq@@Op@@Ooi@@ఐt#low%ZZ@@@@@@Oi@Oi@O|@@ఐ#ctx.:ZZ@0@@.@#off@ZZAZZ@Ȱ7@@+@@@O~i@Oi@O@@KZZLZZ@@zV@@@Oh@Oi@O}@@ఐX&c_test`ZZaZZ@ @@@W@L:@@O@@O@@ఐ8#ctxqZZrZZ@@@f@@ຠ%casesZZZZ@ఐ'outsideZZZZ@@@vҠ@v@@@Oi@O@@v@@@O@@O@@@Oi@O@Avɠi@O@@@Oi@O@@ఐb!sZZZZ@ذ@@i@O@@@Oi@Oi@O@ZZZZ@@@@ZZZZ@@@@ఐˠ&c_testZZZZ@@@@@@@O@@O(@@ఐ#ctxZZZZ@`@@5@@ຠ%casesZZZZ@ఐ'&insideZZZ[@[@@wE@w@@@@Oi@Oޠ@@wA@@@O@@O@@@Oi@Oc@w<i@O@@@Oi@O@@ఐՠ!s'ZZ(ZZ@K@@  i@O@@@Oi@Oi@O@5ZZ6Z[@@ @@8ZZ9Z[@@ @@l@@c@Qc@Q c@Pc@Ofh@Oe@EY:YUF[[@@@ఐs*less_testsS[![0T[![:@p@@@t@@@O@t@@@Os@@@O@@O@@O@@ఐ<(coutsidem[![;n[![C@@@;@@ఐɠ'cinsidez[![D{[![K@ǰ@@@@+@@@@@Ph@P @ఐ :*make_if_in[Q[_[Q[i@ ^@@@Jp@@@P@@@P@C@@@P@{@@@P@@o@@@PA@P@@w@@@PA@P{@@@P@@P@@P@@P@@P@@P@@ఐ #ctx[j[z[j[}@ ;@@ 3@@@@@డK°[~[[~[@@@@@@@PF@@@@PE@@@PD@@PC@@PB@@ఐ7#low[~[@H@@@@@PRi@PTi@PS/@@ఐ Ġ#ctx.[~[@ x0@@ =@#off[~[[~[@7@@@@@PQi@PYi@PVK@@[~[[~[@@@@@P>@PZi@PPU@@డmm"[[#[[@m@@@m@@@P`@n@@@P_m@@@P^@@P]@@P\p@@ఐu$high<[[@@@m7@@@Pli@Pni@Pm@@ఐ#low,O[[@.@@n@@@Pki@Ppi@Po@@Y[[Z[[@@|d@@@P=@Pqi@Pj@@࣠@#ctxAp[[q[[@dA@@-S@@@P{@@@Pz@@  @@ఐ ~&c_test[[[[@ F@@@ }@ r `@@P@@P3@&Io@@@Py@@@Px@$@%@@@@ఐ4#ctx[[[[@@@ c@Tc@Tc@Tc@TKc@Tc@Sc@Sc@SIc@Q\c@Q>c@QDc@PWc@P0@@ຠ g%cases[[[[@ఐ&inside[[[[@1@@y@y@@@Pj@P@@y@@@P@@P@@@Pj@P^@ y j@P@@@Pj@P@@ఐ !s[[[[@ !@@  j@P@@@Pj@Pj@P}@ [[ [[@@ @@@@ @[[[[@@@sc@P9@@@P<@@P;h@Ph@P[@@࣠@#ctxA+[\ ,[\ @:eA@@@@@P@@@P3+**+++++@@@@@  @@ఐ :&c_testB[\C[\@ @@@ 9@ . @@P@@P3>==>>>>>@'+@@@P@@@P@%@&@@@@ఐ5#ctx][\^[\@@@c@P@@ຠ %casesn[\$o[\)@ఐ'outsidew[\*x[\1@հ@@y@y@@@Pj@P@@y@@@P@@P@@@Pj@PG@ /y vj@Q@@@Qj@Q@@ఐ P!s[\[\@ ư@@  j@Q@@@Qj@Qj@Pf@[\[\2@@ i@@q@@ j@[\[\3@@@@@@P8@@P7h@Qh@Q @@5 @@h@P6@ఐ+make_if_out\E\S\E\^@q@@@@@@Q@@@Q@@@@Q"@}@@@Q!@@@@@Q A@Q@@@@@QA@Q@@@Q@@Q@@Q@@Q@@Q@@Q3@@ఐ Ơ#ctx \_\o \_\r@ {@@ 3@P@@@@డ \s\ \s\@@@@@@@QK@@@@QJ@@@QI@@QH@@QG@@ఐw#low( \s\@@@@@@QWi@QYi@QX/@@ఐ #ctx.= \s\@ 0@@ 1=@#offC \s\D \s\@˰7@@.@@@QVi@Q^i@Q[K@@N \s\O \s\@@@@@QC@Q_i@QUU@@డo]o_b \\c \\@o\@@@o\@@@Qe@p@@@Qdo[@@@Qc@@Qb@@Qap@@ఐ$high| \\@۰@@ow@@@Qqi@Qsi@Qr@@ఐޠ#low, \\@.@@q@@@Qpi@Qui@Qt@@ \\ \\@@~@@@QB@Qvi@Qo@@࣠@#ctxA \\ \\@fA@@m@@@Q@@@Q@@  @@ఐ &c_test \\ \\@ @@@ @  @@Q@@Q3@&@@@Q~@@@Q}@$@%@@@@ఐ4#ctx \\ \\@@@:c@Q@@ຠ %cases \\ \\@ఐ 'outside \\ \\@Y@@{D@{?@@@Qj@Q@@{@@@@Q@@Q@@@Qj@QG@ {; j@Q@@@Qj@Q@@ఐ Ԡ!s& \\' \\@ J@@  j@Q@@@Qj@Qj@Qf@4 \\5 \\@@ i@@q@@ j@8 \\9 \\@@@ @@@QA@@Q@h@Qh@QB@@࣠@#ctxAR \]S \]@agA@@ 5@@@Q@@@Q3RQQRRRRR@@@@@  @@ఐ a&c_testi \]j \] @ )@@@ `@ U C@@Q@@Q3eddeeeee@', R@@@Q@@@Q@%@&@@@@ఐ5#ctx \] \]@@@c@Q@@ຠ 3%cases \] \]@ఐ ɠ&inside \]  \]&@@@{@{@@@Qj@Q@@{@@@Q@@Q@@@Qj@QG@ V{ޠ @@@R j@R @@ఐ u!s \] \]@ @@  j@R @@@R j@Rj@Rd@ \] \]'@@ g@@o@@ h@ \\ \](@@@7 @@@Q=@@Q@@ఐ!i]H]s]H]t@@@s7@@@R@y#@@@y#@@@R@y"@@@Rya@@@R@@R@@R3@@@|u@v@w@@@@డEzcze^+^9^+^:@zb@@@u@@@Sh@S@zc@@@S@@S@@S@@ఐߠ!i^+^8@@@+@@A!^+^;@@i@S5@@ @@yh@@@S@Si@S=@@డ}y|y~^+^O^+^Q@y{@@@y{@@@S@yz@@@Sy@@@S@@S@@SX@@డzz^+^L^+^M@z@@@@@@SBi@S*@z@@@S)@@S(@@S'r@@డ')5^+^C6^+^D@&@@@&@@@S8@#@@@S7"@@@S6@@S5@@S4@@ఐ7#limO^+^@@t@@A@@@SDk@SFk@SE@@ఐ+#ctx.d^+^G@߰0@@X@#offj^+^Hk^+^K@7@@U@@@SCk@SKk@SH@@u^+^?[@@T@@Aa}^+^N@@^j@SL@@ @@y@@@S%@SMj@S2@@డ{.{0^+^i^+^j@{-@@@z@@@Sji@SR@{.@@@SQ@@SP@@SO@@డ*^+^a^+^b@@@@@@@S`@@@@S_@@@S^@@S]@@S\@@ఐ~u'get_low^+^R^+^Y@|@@@@@@@Slk@Sk@Sp@@@@Sk@St@@@@Sk@Su@@Ss@@@Sr@@@@Sq@@So@@Sn8@@ఐ%cases^+^Z^+^_@ @@@3@,@'@@S@@@Sl@Sl@SU@@@^+^`h@@@@@Sl@Sl@Sd@@Tp@@He@@ఐ#ctx{)^+^e@}@@s@#off/^+^f@@@@@@Skk@Sk@S@@p@@@@@@^+^k@@j@S@@{@@z@@@S$@Sj@SZ@@ @@z@@@S@Si@S#@@s@@@@@Sh@S@డzߠzc^q^d^q^@zް@@@z@@@S@z@@@S{@@@S@@S@@S@@డ||~^q^^q^@|@@@u4@@@Sh@S@|@@@S@@S@@S@@ఐȠ&lcases^q^^q^@T@@@@B^q^^q^@@ i@S@@@@{ @@@S@Si@S@@డ5|S|U^q^^q^@|R@@@@@@Sh@S@|S@@@S@@S@@S@@డOĠư^q^^q^@ð@@@@@@S@@@@S@@@S@@S@@S*@@ఐ~Ӡ(get_high^q^^q^@}԰@@@Ҡ@8@@@Sj@Sݠ@@@@Sj@Sj@S٠@<@@@Sj@S@@S@@@S@@@@S@@S@@S]@@ఐ%cases^q^ ^q^@E@@@3@.@'@@S@@@Sk@Sk@Sz@@A9^q^h@@@@@Sk@Sk@S@@Tp@@A@@ఐ#ctx{N^q^@ɰ}@@B@#offT^q^U^q^@ܰ@@?@@@Sj@Sj@S@@q @@@@Af^q^g^q^@@i@S@@}@@{@@@S@Si@S@@ @@ @@@Sh@S@ఐ[,make_if_bool^^^^@;@@@&b@@@T@&T@@@T@&Y@@@T&\@@@T@@T@@S@@S@@ఐi#ctx^^^^@@@@#arg^^^^@6 @@ Qc@T@@ఐ&c_test^^^^@y@@@@@@T@@T@@ఐ#ctx^^^^@F@@@@ఐ%right^^^_@@@c@T#$@@^^^_@@'@@ఐ㠐&c_test^_^_ @@@@@@@T'@@T&:@@ఐà#ctx^_^_@x@@G@@ఐ,$left ^_ ^_@P@@c@T.V@@^_^_@@Y@@@@h@T[@ఐ/make_if_nonzero_)_7_)_F@Ӱ@@@&@@@T7@&@@@T6@&@@@T5&@@@T4@@T3@@T2@@T1z@@ఐ#ctx>_G_W?_G_Z@@@3@#argE_G_[F_G_^@Ұ @@ c@TJ@@ఐM&c_testU___pV___v@@@@L@A/@@TO@@TN@@ఐ-#ctxf___wg___z@@@[@@ఐ/%rights___{t___@@@[c@TV@@y___oz___@@N@@ఐ&c_test______@G@@@~@sa@@TZ@@TY@@ఐ_#ctx______@@@@@ఐȠ$left______@@@c@Ta@@______@@@@@@ h@TE@^q^}@@@ఐ*less_tests____@|'@@@{@@@Th@@@@Tg@@@Tf@@Te@@Td@@ఐm&cright____@@@l#@@ఐ%cleft____@@@0@@+@@@@@Twh@Tr6@ఐ&$*make_if_lt __ __@ @@@'@@@T@@@@T@'@@@T@'@@@T~'@@@T}@@T|@@T{@@Tz@@TyY@@ఐ䠐#ctx!__!__@@@h@#arg$!__%!__@ @@c@Tp@@డ%'3!__4!__@$@@@$@@@T@!@@@T @@@T@@T@@T@@ఐ5#limM!__@r@@?@@@Ti@Ti@T@@ఐ)#ctx.b!__@ݰ0@@V@#offh!__i!__@7@@S@@@Ti@Ti@T@@s!__t!__@@~@@@T@Ti@T@@ఐ&c_test"_` "_`@H@@@@tb@@T@@T@@ఐ`#ctx"_`"_`@@@@@ఐɠ$left"_`"_`@@@c@T@@"_` "_`@@@@ఐ&c_test"_`"_`%@z@@@@@@T@@T @@ఐ#ctx"_`&"_`)@G@@@@ఐ%right"_`*"_`/@@@c@T%@@"_`"_`0@@(@@@@h@T*@ఐ%g*make_if_ge$`@`L$`@`V@!@@@(@@@T@@@@T@(@@@T@(@@@T(@@@T@@T@@T@@T@@TN@@ఐ٠#ctx%`W`e%`W`h@@@]@#arg%`W`i%`W`l@ @@c@Te@@డ(%`W`q)%`W`r@@@@@@@T@@@@T@@@T@@T@@T@@ఐ*#limB%`W`n@g@@4@@@Ui@Ui@U@@ఐ#ctx.W%`W`u@Ұ0@@K@#off]%`W`v^%`W`y@7@@H@@@Ui@Ui@U@@h%`W`mi%`W`z@@s@@@T@U i@T@@ఐu&c_test}&`{`~&`{`@=@@@t@iW@@U @@U @@ఐU#ctx&`{`&`{`@ @@@@ఐW%right&`{`&`{`@@@c@U@@&`{`&`{`@@v@@ఐ&c_test&`{`&`{`@o@@@@@@U@@U@@ఐ#ctx&`{`&`{`@<@@ @@ఐ$left&`{`&`{`@@@c@U@@&`{`&`{`@@@@@@h@T @__@@"@^+^5@@$@ @@@ @@@ @@@@@AWW @@ @W$W-(``@@@VV@@@@@@@@@A@@@@@U4@@U3c@U1@@@VjVl@@@Ġ@ఠ%theta,``,``@ oA@@@@@U6c@U53@@@@'0.33333 ,``,``@@ @A@,``@@@ @ఠ*switch_min/a3a9/a3aC@,pA@@$@@@U8c@U73@/(@)@*@@@C-/a3aF./a3aG@@  @A@0/a3a5@@@ @ఠ/particular_case=2ajap>2aja@LqA@@@&@2@@@VYc@U@c@U@gt@Vc@U@@Uc@U@@@Uc@U:@Q@@@Uc@U?@zc@@@Uyc@UD@@@UXc@UE@@UFc@U@@@UAc@U;@@U@@ఐ!i/5aa@@@J@@A"85aa@@!@@@Uj@Uj@UY@@ @@@@@U@Uj@Ua@@ZY@@Rb@A@J5aa[@@ఠ"l3ɠW6aaX6aa@f{A@@ t@@ఠ"h3ʠc6aad6aa@r|A@@@@ఠ$act3ˠo6aap6aa@~}A@@@@@@@(@#@!@@U@డnmrPrQ6aa6abAlA@@lF@@@U@g@@@UL@@U@@U@@ఐ%cases6aa@@@]@@డ*6ab6ab@@@@@@@U@@@@U@@@U@@U@@U@@ఐ2!i6aa@@@f@@B"6ab@@@@@Uj@Uj@U@@ @@@@@U@Uj@U@@YX@@@A@6aaZ@@డhgi7bb7bb@f@@@f@@@U@e@@@U@@@U@@U@@U3@:@@@@@@RK@L@MF?@@@A:3@4@5@@@@@@@@@@డ7bb7bb@@@@h@V @@@@V @@V @@V *@@డ"$07bb17bb@!@@@!@@@V@@@@V@@@V@@V@@VE@@ఐ "l1J7bb @F@@Q@@A":@@;@@@V%j@V)j@V(_@@B@@`@@ఐ"l2Ke7bb@^M@@l@@@@@@@V@V*i@Vt@@డz7bb{7bb!@@@@@@@V0@@@@V/3@@@V.@@V-@@V,@@డ027bb7bb@/@@@Ji@VA@-@@@V@@@V?@@V>@@డ)7bb7bb@@@@@@@VO@@@@VN@@@VM@@VL@@VK@@ఐ "l27bb@@@ @@A":@@@@@VZk@V^k@V]@@B@@@@ఐ"l3K7bb@װM@@@@@@^@@@V<@V_j@VI@@డsrt7bb(7bb*@q@@@q@@@Ve@p@@@Vd@@@Vc@@Vb@@Va @@డ7bb$7bb%@@@@j@Vv@@@@Vu@@Vt@@Vs"@@ఐР"l3'7bb"@@@.@@ఐР"h3!37bb'@(#@@:@@@@@@@Vq@Vk@V~B@@డ"<>I8b+b5J8b+b7@@!a@@#@@@*@@)@@()%notequalBA4@@@@3~QQ4~Q@@2R@@@@@ @@@V@@V@@Vn@@ఐ$act1s8b+b0t8b+b4@n@@ {@@ఐ$act38b+b88b+b<@u@@(@@@@@@@Vp@Vk@V@@e @@@@@V;@Vj@Vo@@@@@@@V@Vi@V:@@R@@@@@UY@Vh@V@4aa@@ @@@@3@#A@fc@V!@A@@@4@ఠ,approx_count̠<bb<bb@~A@@@g@@@@V@@k@V@@Vc@W@@@Wc@V@t@@@Wc@V@~@@@Vc@V@@@W$c@V@@Vc@V@@Vc@V@@Vc@V3@s@@@@@࣠@%casesA<bb<bb@A@@=3@J<bbEcc@@@@@  @@!iA <bb <bb@A@@93@!T@@@@@@@@!jA<bb<bb@*A@@A3@M@@@@@@@@@ఠ!lѠ.=bb/=bb@=A@@@@@Vg@V3,++,,,,,@%\@@@@@డ46B=bbC=bb@3@@@3@@@V@0@@@V/@@@V@@V@@V@@డXZ]=bb^=bb@W@@@W@@@V@@@@VV@@@V@@V@@V6@@ఐ_!jw=bb@?@@B@@ఐ|!i%A@b&B@@M@@C@@u@@@V@Vi@VU@@AP=bb@@|@@@Vh@Vh@Vd@@% @@he@A@=bb @@డ%>bb>bb@@@@@@@Vf@V@@@@V@@V@@V3@@@@@@@ఐ!l>bb>bb@ @@@@ఐ0small_size_limit>bb>bb@'@@'g@V@@@@q@@@Vg@V%@@@@@c.c8@c.c9@@h3@1@@@@@@@c.c;@c.c<@@h @@ঠ!n@c.c>@c.c?@ఠ&ntestsҠ@c.c@@c.cF@A@@@@@V$@@@ @c.c=@c.cG@@@@@Vh@V,@@@c.c:@c.cH@@@hΠ@@@V5@@8@@@hᠠ@@h۠@@@@V@@V@@VE@ఐ[)opt_count6@c.cK7@c.cT@ZӰ@@@@.@@@V@@z@@V@@@VZ@@Vb@@డ%Array#subZ@c.cV[@c.c[@ ^@c.c\_@c.c_@@ @@@ @@@W@@@@W@@@@W@@@W@@W@@W@@W@@ఐ%cases@c.c`@c.ce@r@@@@ఐ!i@c.cf@c.cg@n@@@@ఐl!l@c.ch@c.ci@@@8@@@Wi@Wi@W@@@c.cU@c.cj@@S@@@Vh@Wi@W@@z @@[c@A@@c.c4 @@ఐ&ntestsAcnctAcncz@@@@@3@@@@@@@డFĠưEccEcc@ð@@@@@@W*@P@@@W)@@@W(@@W'@@W&@@ఐ!lEcc@+@@@@@W6g@W8g@W7@@A)@@t@@@W5g@W:g@W9@@@@g@W4@>bb@@@c@@@ A@Hc@W@ @A@@@@ఠ%denseӠHd?dEHd?dJ@A@@@n3@WL@@@WKc@WB@@@@Xc@WT@ c@WYA@@@Wnc@WZ@@W[c@WU@@WVc@WC@@WDc@WA3&%%&&&&&@J{@|@}@@@࣠@Aঠ%casesBHd?dLCHd?dQAఠՠ@VA@@@@@WO@@@@WP@@@@WQ@@WN@@@WM3TSSTTTTT@/UcHd?dAdVef@@@@@@fHd?dKgHd?dR@@Qe@WE @@@@!iAtHd?dSuHd?dT@A@@V3mllmmmmm@41@3@2@@@@@@!jAHd?dUHd?dV@A@@^3~}}~~~~~@j@@@@@@@@డ35IdYdaIdYdb@2@@@c@Xc@Xc@Xc@Wc@Wc@Wc@Wc@Wc@Wc@Wc@Wc@Wb@E@@@Wa@@W`@@W_3@1=@4@5@@@@ఐU!iIdYd`/@<0@@@@ఐP!j9IdYdc@;@@@@@@o@@@Wkg@Wj!@ภIdYdiIdYdm@@@@)@@@ఠ!lؠKdwdKdwd@A@@3@@@Wg@Wq3@A@@@@@KdwdKdwd@@9@@@Wg@Wr @@@ Kdwd Kdwd@@>@@@Wg@Ws@@!@@@!@@@@W{ @డ  &Kdwd'KdwdA A@@ @A@7@.@@Wg@Wg@W@@@W@@@@W@@W@@W~F@@ఐ%cases$JKdwd@Ѱ&@@/%@@@Wh@Wh@WZ@@ఐ!i^Kdwd_Kdwd@հ@@?g@@<;@@4h@A@cKdwd}=@@@lLddmLdd@@@@@Wg@Wvy@@ఠ!h٠{Ldd|Ldd@A@@@@@Wg@Ww@@@LddLdd@@@@@Wg@Wx@@$@@@&@@@@W|@డlmLddLddAA@@@F@7@.@@Wg@Wg@W@@@W@@@@W@@W@@W@@ఐ~%cases$Ldd@O&@@%@@@Wh@Wh@W@@ఐZ!jLddLdd@#@@@@<;@@4@A@Ldd=@@@ఠ&ntestsڠMddMdd@A@@@@@Wg@W3@> @@{@|@}@@@ఐN,approx_countMddMdd@Ұ@@@@@@@W@@H@@@Wg@W@@W@@@W@@@@W@@@@W:@@@W@@W@@W@@W4@@ఐ預%cases3Mdd4Mdd@@@@-@@@W͠@@2@@W@@@Wh@Wh@WT@@ఐ⠐!iSMddTMdd@ʰ@@4a@@ఐޠ!j`MddaMdd@@@8n@@a@@ro@A@eMdd@@డ"||oQee%pQee'@@C@@@P@I@@@OM@@@N@@M@@L'%sequorBA^@@@@]^@@\^@@@@@@@W@@@@W@@@W@@W@@W3@@@@@@@ఐ k/particular_caseQee Qee@@@@@@@@W@@@@@Xg@W@@W@@@W@@@@W@@@@Ww@@@W@@W@@W@@W5@@ఐ%casesQeeQee @`@@@@@@X @@2@@X@@@Xh@Xh@X U@@ఐ!iQee!Qee"@o@@b@@ఐ!jQee#Qee$@L@@o@@a@@@@@W@Xh@Xw@@డTeeTee@@@@@@@X@@@@X@@@X@@X@@X@@డ">=7Tee8Tee@@!a@@@@@6@@5@@4-%greaterequalBA"@@@@!"@@ V@@@@h@@@X4h@X+@@@@X*@@X)@@X(@@ఐz&ntestsfTeegTee@Ͱ@@@@ఐ V*switch_minsTeetTee@ @@$i@X5@@@@@@@X&@X6i@X3@@డ">=UeeUee@U@@@%floatD@@@XSh@X;@ Y@@@X:@@X9@@X8@@డ&"+.UeeUee@@@@@@"@@@&@@@@@@@)%addfloatBA@@@@<<<@@=+%floatofintAAȠ@@@YUUYUU@@a@@@@@@@XY@@@XX@@XWd@@ఐ&ntestsUeeUee@n@@*@@@X`k@Xbk@Xax@@3 @@g@@@XU@Xck@X_@@#1.0!Uee"Uee@@r@@@XTj@Xej@Xd@@L @@@@డ"*.7Vee8Vee@@@@@@@@@@@@@@@@ɐ)%mulfloatBA&@@@@%=]=]&=]=@@$A@@@@@@@Xk@@@@Xj@@@Xi@@Xh@@Xg@@ఐ n%thetakVeelVee@ E@@6@@@Xwj@Xyj@Xx@@డנٰVef Vef @ְ@@@@@@X@@@@X~@@@X}@@X|@@X{@@డ"-.VeeVee@@@@@@@@@@@@@@@@Đ)%subfloatBA@@@@<<<<@@@@@@@@@@X@@@@X@@@X@@X@@X-@@డN,float_of_intVeeVee@@@@@@@X@@@X@@XD@@ఐl!hVeeVee@@@ @@@Xm@Xm@XX@@  @@U@@@X@Xm@X`@@డ,float_of_intVeeVef@&@@@&@@@X%@@@X@@Xw@@ఐ)!lVef Vef @$@@=@@@Xm@Xm@X@@  @@@@@X@Xm@X@@[@@@@@X@Xl@X@@#1.0<Vef=Vef@@@@@Xk@Xk@X@@FVeeGVef@@ @@@Xv@Xk@X@@ @@j@Xu@@t @@@@@X%@Xi@XC@@[Re(e.@@@@@W@Xh@X$@@@@:c@Wmg@W@@@s@@@o@jIdYd]@@=q@A@Yc@X@A@ @  @>@ఠ-comp_clustersܠzYfSfY{YfSff@A@@@#gs@Yp@@@Yc@X@(@@@Zec@ZQ@@@@Z@@@Z~c@ZR@@ZSc@X@@Xc@X3@o@@@@@࣠@!sAYfSfgYfSfh@A@@/3@<YfSfUjh h:@@@@@  @@@ఠ#lenߠZfkfsZfkfv@A@@x@@@Xe@X3@(M@@ @@@డU%Array&lengthZfkfyZfkf~@ ZfkfZfkf@@@@@@+@@@Xܠ@*@@@Xݠ@)@@@X@@Xe@X@@@X@@@X@@X4@@ఐb!s Zfkf Zfkf@@@@C@%casesZfkfZfkf@# @@4@@@Xf@Xf@XR@@C @@VS@A@ Zfkfo @@@ఠ,min_clusters+[ff,[ff@:A@@K@@@Xe@X@@@Xe@X3/../////@o}v@w@x@@@డ%Array$makeJ[ffK[ff@ N[ffO[ff@@P@@@P@@@X@%s(@@@X@@X@@X#@@ఐ#leng[ffh[ff@-@@j@@@Xf@Xf@X7@@డ'max_int{[ff|[ff@@@HD@@5@@NE@A@[ff@ఠ!k\ff\ff@A@@@@@Y e@X@@@Ye@X^@డ%Array$make\ff\ff@ \ff\ff@@@@@@@@X@"Π%@@@X@@X@@X~@@ఐ#len\ff\ff@@@@@@Yf@Yf@Y@@@\ff\ff@@A@@1@@G@A@\ff@@@ఠ'get_min]ff]ff@A@@@@@@Y.e@Y @@@Ye@Y @@Y e@Y 3@@@sl@m@n@@@࣠@!iA]ff]ff@A@@3@+ ]ff ]fg@@@@@  @@డ(*]ff]ff@'@@@9e@Y3e@Ye@Y@(@@@Y@@Y@@Y3@".B@%@&@@@@ఐ5!i6]ff7]ff@ @@O@@@@]ffA]ff@@!@@ @@@@@Yg@Y@@L]fgM]fg@@]%@డA@E#E$[]fgOA>PA@@>sf@Y#@@@Y%@;@@@Y$@@Y"@@Y!A@@ఐI,min_clusterst]fg@~@@Y@@@Y/g@Y2g@Y0U@@ఐ!i]fg]fg@_@@b@@1@@*c@]ff@@e@A@e@Y5@A@@ !i_gg%_gg&@@@@@_gg)_gg*@@@@@Y8e@Y73@@@@@@డ1_gg1_gg2@@@@@@@Y>@;@@@Y=@@@Y<@@Y;@@Y:@@ఐ #len_gg.@@@@@@YJf@YLf@YK.@@A)_gg3@@`@@@YIf@YNf@YM=@@ @@@@@YOf@YHC@@!j`g7gA`g7gB@@@@@`g7gE`g7gF@@@@@YSf@YR3@Zo@@@ZCe@ZDe@Ze@Ze@YP@_gg!ihh@@ A@@@ఐ!i`g7gJ`g7gK@@@@@డ(bgZgp)bgZgr@@@@@@@Y\@@@@Y[@@@YZ@@YY@@YX3-,,-----@7L2f@YU@=`g7g=>hhh@@LA@@@@ఐ=%denseLbgZgdMbgZgi@@@@&4@@@Yo@L@@@Yn@o@@@Ym@@Yl@@Yk@@Yj'@@ఐ!sibgZgjjbgZgk@@@4@@ఐ!jvbgZglwbgZgm@>@@>A@@ఐꠐ!ibgZgnbgZgo@@@N@@;@@@@@Yh@Yi@Y}V@@డcgsgcgsg@@@@@@@Yh@Y@@@@Y@@Y@@Yp@@డ0cgsgcgsg@@@@@@@Y@@@@Y@@@Y@@Y@@Y@@ఐ'get_mincgsg}cgsg@&@@@@@@Y@@@Y@@Y@@డbࠐcgsgcgsg@߰@@@@@@Y@l@@@Y@@@Y@@Y@@Y@@ఐ !jcgsg@ư@@@@A"cgsg@@@@@Yl@Yl@Y@@cgsgcgsg@@@@@Y@Yl@Y@@L @@ @@@Y@Yk@Y@@A)cgsg*cgsg@@@@@Yj@Yj@Y@@d @@@@డ(', , BcgsgCcgsgA&A@@&i@Y@@@Y@#@@@Y@@Y@@Y@@ఐ1,min_clusters\cgsg@f@@A@@@Yj@Yj@Y.@@ఐנ!ipcgsgqcgsg@n@@n;@@21@@*<@@2@@@@@Yg@Yi@YD@@1:@@@@@Yh@YfJ@ డ vꠡzXYeggeggAA@@e@Yh@Y@@@Y@@@@Y@ @@@Y@@Y@@Y@@Yn@@ఐ'!k egg@"@@ !@@@Yi@Yi@Y@@ఐ+!ieggegg@°@@@@ఐߠ!jeggA@B@@@@DC@@@@@Yh@Y@డ_?DfggfggA>A@@>@@@Zg@Y@@@Z@J@@@Z@ >@@@Y@@Y@@Y@@Y@@ఐܠ,min_clusters"fgg@$@@a#@@@Zh@Zh@Z@@ఐ!ifggfgg@@@@@డ)fgg*fgg@@@@@@@Z@@@@Z@@@Z@@Z@@Z@@ఐc'get_minEfggFfgg@@@@@@@Z*N@@@Z)@@Z(@@డVX[fgg\fgg@U@@@U@@@Z7@@@@Z6T@@@Z5@@Z4@@Z33@@ఐ!jufgg@<@@<?@@A"~fgg@@@@@ZBk@ZFk@ZEN@@fggfgg@@a@@@Z1@ZGk@ZAX@@L @@@@@Z&@ZHj@Z0`@@Afgg@@@@@Z%i@ZJi@ZIo@@c@@i@Z$r@@@@@@@ZLg@ZKh@Zz@dggggh@@ }@@agOgW@@ @{@@@@ZNf@ZM3@@@@@@@@ZPe@ZO3@@@@@డMjh h$jh h8AA@@Ld@ZW@@@ZY@@@@ZX@@ZV@@ZU!@@ఐ ,min_clustersjh h0@@@Ҡ@@@Zce@Zfe@Zd5@@డjh h5jh h6@@@@@@@Zl@@@@Zk@@@Zj@@Zi@@ZhP@@ఐY#lenjh h2@@@@@@Zxf@Zzf@Zyc@@A),jh h7@@@@@Zwf@Z|f@Z{r@@ @@ @@@Zb@Z}f@Zvz@@ji@@b{@@ఐ!kFjh h9@O@@@@v@@@r@@@Z@?@@@E@@]@@@ @3@@ @A@c@Z@A@@@@ఠ+make_switchbohhcohh@qA@@@@@@7i@@<;@@4j@A@üqi%i)=@@@ri@iHri@iI@@@@@Zh@Z{@@ఠ"hhri@iJri@iL@A@@@@@Zh@Z@@@ri@iMri@iN@@@@@Zh@Z@@$@@@&@@@@Z@డw⠡Šưri@iQri@iZAA@@@F@7@.@@Zh@Zh@Z@@@Z@@@@Z@@Z@@Z@@ఐO%cases$!ri@iV@&@@%@@@Zi@Zi@Z@@ఐ!j5ri@iX6ri@iY@@@@@<;@@4@A@:ri@iD=@@@ఠ#tblEsi^ifFsi^ii@TA@@eQ@@@['h@Z@@@Zh@Z3IHHIIIII@ @ @@@@@@డ%Array$makefsi^ilgsi^iq@ jsi^irksi^iv@@l@@@l@@@Z@'*@@@Z@@Z@@Z%@@డvxĄsi^i}ąsi^i~@u@@@u@@@[@r@@@Zq@@@Z@@Z@@Z@@@డğsi^izĠsi^i{@@@@@@@[@&@@@[@@@[@@[@@[[@@ఐ堐"hhĹsi^ix@b@@@@@[k@[ k@[n@@ఐ"ll,H@u-I@@N@@@[k@["k@[!@@Q@@@@@[ @[#k@[@@A^si^i@@@@@[ j@[%j@[$@@si^iwsi^i@@@@@Z@[&j@[ @@@si^isi^i@@@@@@@A@si^ib@ఠ!t tii tii@A@@w@@@\g@[g@[,s@@@\g@\Gg@[-@@@[Ch@Z@డè'Hashtbl&create/tii0tii@ 3tii4tii@@wȰ@@wwƠw@@@[0@@@[/@w@@@[.x6/@@@[+@@[*@@[)@wېภw@@wޠw@@@[H@@@[G@@Q_tii`tii@@w@@@[Di@[Ji@[I@@: @@Z@A@jtii @ఠ%indexsuiituii@łA@@wF@@@[Th@[N@@@[Sh@Z.@డ#refŋuiiŌuii@w)@@@w]@@@[M@@[L@@@@śuiiŜuii@@I@@@@%J@A@şuii@@@ఠ)get_indexŪviiūvii@ŹA@@@h@[Zg@[g@[[@@[\h@[Y3ūŪŪūūūūū@eyr@s@t@@MF@G@H@@@࣠@#actAviivii@A@@3@'vii~jjju@@@@@  @@డ\'Hashtbl$findxiixii@ xiixii@@i@@@xĠg@[g@[cCg@[b@@@[d@ @@[a@@[`3@.:J@1@2@@@@ఐ!txiixii@M@@x@@@[q@@ఐS#actxiixii@@@i"@@9@@(#@Ġ)Not_found$zjj %zjj@@@@@7@@@[1@@@@ఠ!i4{jj%5{jj&@CA@@;@@@[l@[321122222@D@@@డvvF{jj)G{jj*@v@@@xl@[@@@[@@[@@ఐ蠐%index[{jj/@@@x.@@@[m@[m@[(@@  @@)@A@g{jj! @@ డ$incrs|j3j=t|j3jA@v@@@xEv@@@[@@@[v@@@[@@[3wvvwwwww@TM@N@O@@@@ఐ%indexƏ|j3jBƐ|j3jG@հ@@xcv<@@@[@@@[m@[m@[@@+@@@@@[l@[!@ డ+'Hashtbl#addƲ}jJjTƳ}jJj[@ ƶ}jJj\Ʒ}jJj_@@f@@@y͠ g@[@@@[@@f@@@[@@[@@[@@[G@@ఐʠ!t}jJj`}jJja@@@yǠ@@@[Y@@ఐ #act}jJjb}jJje@@@6f@@ఐ!i}jJjf}jJjg@p@@@s@@D@@ @@@[l@[y@ఐΠ!i~jjjt2@3@@Qk@[@U6@@@7@@@8@@V@@@ wii:@@@D;A@^h@[B@A@?@ !kjzjjzj@@@@ఐ!i"jzj#jzj@@@3@pz@{@|@@@ఐ!j/jzj0jzj@ް@@ @@@@ఠ!l@jjAjj@OA@@@@@[j@[3>==>>>>>@%9$@@@[h@[h@[@Tjzj~Ukk@@cA@@@@ఠ!h_jj`jj@nA@@@@@[j@[@@ఠ#actpjjqjj@A@@@@@[j@[0@@: @@@:@@@@[9@డtsxVxWǎjjǏjjArA@@r@Z@=@.@@[j@[j@[@@@[@y@@@[@@[@@[_@@ఐࠐ%cases$Dzjj@&@@%@@@[k@[k@[s@@ఐ!kjjjj@}@@}@@<;@@4@A@jj=@@@ఠ%indexjjjj@A@@j@[3@@@~@@un@o@p@@@ఐA)get_indexjjjj@ư@@@>=@@[@@ఐ#actjjjj@@@"@@@@K#@A@jj@@"kkjj jj@@@@డƐjjjj@ @@@ @@@\@@@@\ @@@\@@\@@\3@ISL@M@N@@@@ఐ!l0jj@R@@+@@@\j@\j@\@@ఐ"ll/Cjj@1@@@@@\j@\j@\)@@ @@P@@@\j@\/@డUWZjj[jj@T@@@T@@@\@@@@\S@@@\@@\@@\G@@ఐ!htjj@@@o@@@\'j@\)j@\(Z@@ఐ?"ll,ȇjj@1.@@ @@@\&j@\+j@\*m@@ @@ǔ@@@\,j@\%s@@డjkȢjjȣjkAA@@j@\4@@@\6@@@@\5@ @@@\3@@\2@@\1@@\03ȬȫȫȬȬȬȬȬ@@@@\Di@\Ii@\-@jjk k@@A@@@@ఐ#tbl-jj@/@@).@@@\Ek@\Hk@\F"@@ఐݠ"kkjjjj@,@@,/@@ఐ%indexjkN@̰O@@;@@QP@@ @@@\Jj@\CA@7@@@@\Li@\K3@@@@<@@$@5=@@@@@@@\Nh@\M3@@@@@ఠ$actskk'kk+@A@@0c@\T@@@\^h@\O3@@@@డǢ%Array$make)kk.*kk3@ -kk4.kk8@@/@@@/@@@\U@R"@@@\S@@\R@@\Q!@@డyyGkk9Hkk:@y@@@{O@@@\_i@\li@\b@@@\c@@\a<@@ఐ%indexakk?@@@{4@@@\hj@\kj@\iP@@% @@Q@@డa`eCeD{kk@|kkKA_A@@_lc@\p@@@\r@\@@@\q@@\o@@\np@@ఐ'actionsɕkkG@p@@z@@@\|j@\~j@\}@@@ɦkkIɧkkJ@@@@@\{j@\j@\@@54@@-@@5@@@A@ɲkk#7@@ డ;'Hashtbl$iterkOkSkOkZ@ kOk[kOk_@@@@!a@6@@!b@6Ai@@@6@@6@@6@|@@@6i@@@6@@6@@6@|R|S @@|QL@*%@@@@h@\@h@\@@@\@@\@@\@|Ҡ @@@\@@@\@@\@@\3@@@@@@@࣠@#actAk`kkk`kn@#A@@(3        @@@@@@@!iA#k`ko$k`kp@2A@@33@%:@@@@@@@@డȲ"8k`kt9k`kAA@@;@@@\@@@@\@C@@@\@@\@@\@@\3@??@@@@@@%1Z@(@)@@@@ఐH$acts Xk`kx@T"@@\@@@\l@\l@\@@ఐL!ilk`kzmk`k{@!@@{$@@డdchFhG~k`kFAaGA@@a~@@@\@\@@@\@@\@@\@@@ఐ'actionsʕk`k@p@@z@@@\m@\m@\T@@ఐ#actʩk`kʪk`k@@@a@@/t@@b@@vu@@@@@\l@\h@ʴk`kfʵk`k@@@@@@@\@@\@@\i@\i@\@@ఐ !tkkkk@@@}@@@\@@@@@@@\h@\@࣠@#ctxAkkkk@A@@S3@@@@@@@డrkkkk@@@@@@@]@|@@@\@@@\@@\@@\3@*s@!@"@@@@డɐ"~-kkkk@8@@@:@@@]8@@@]@@]@@ఐ᠐"ll4@Ұ5@@:@@@]k@]k@],@@=@@+@@@] @]k@]4@@ఐd#ctxOEkk@?Q@@B@#offKkkLkk@9ӰX@@@@@] j@]j@]P@@B @@B@@@] T@@akkbkk@@Q@@@]"j@]!3]\\]]]]]@c@@@ @U@@@]#@@@డ-+make_switch#Argykkzkk@ }kk~kk@@@ @@@G@Ed@@@G@wp@@@G@@@G@bEb@@@G@@@GEf@@@G@@G@@G@@G@@G@6@4(#@@@ 7@@@]3@E@@@]2@@@@]1@@@]0@E@@@]/@@@].E@@@]-@@],@@]+@@]*@@])X@@ఐ #lockkkk@߰@@ ce@@ఐ#ctxkkkk@԰@@ Gt@#argkkkk@:m @@ Mc@]c@]Lc@]P@@ఐ#tblkkkk@;@@@@@]K@@@]Jj@]Uj@]S@@ఐ$acts kk kk@@@ޠ @@@]Hj@]Xj@]W@@ @@ w@@klkl@@ @@@]%@@@@@]& @@@డ$bind#Arg2ll3ll@ 6ll7ll@@:\@@@F@@@]a@@F@@@]`F@@@]_@@]^F@@@]]@@]\@@][G@@డ+make_offset#Arg\ll*]ll-@ `ll.all9@@:I@@@FB@@@]w@/@@@]vFJ@@@]u@@]t@@]s @@ఐ#ctx}ll:~ll=@x@@ @#arḡll>̅llA@; @@c@] @@డ̓llF̔llG@@@@@@@]@@@@]@@@]@@]@@];@@డ+"~-̯llC̰llD@:V@@@<]@@@]:V@@@]@@]R@@ఐ |"ll1@m2@@@@@'actionsqllrll@5ఠ'actionsyllzll@ΈA@@c@_(c@^@@@^f@^@@@·llΈll@@f@^#@SS΍llΎll@ΜA5u@@@^g@^ΗllΘll@@1@@@@*n_clusters AΣllΤlm@βA@@3ΜΛΛΜΜΜΜΜ@Bb[@\@]70@1@2u@"@@@@@  @@!k Aθlmιlm @A@@3αΰΰααααα@"@@@@@@@@@ఠ#len m mm m@A@@@@@^9h@^.3@%@@@@@డ]%Array&lengthm mm m@ m m m m&@@@@@@3@@@^=@2@@@^>@1@@@^?@@^уn0n?@ёA@@Љ@@@^l@^3рррррр@@@@డ єn0nBѕn0nC@@@@fl@^@@@^@@^@@ఐ%indexѩn0nH@ٰ@@|@@@^m@^m@^(@@  @@)@A@ѵn0n: @@ డ=$incrnLnVnLnZ@l@@@l@@@^@@@^k@@@^@@^3@TM@N@O@@@@ఐ%indexnLn[nLn`@@@@@@^@@@^m@^m@^@@+@@@@@^l@^!@ డy'Hashtbl#addncnmncnt@ ncnuncnx@@r7@@@۠Ul@_@@@_@@r1@@@_@@^@@^@@^H@@ఐx!t"nyn#nyn@T@@up@@@_Z@@ఐY#act4nyn5nyn@2@@rg@@@ఐà!iEnnFnn@u@@g@_&y@@࣠@A@SnnTnn@@Dg@_'@@@@డKJO-O.ennfnnAIA@@I@@@_0@D@@@_/@@_-@@_,@@ఐ'actions}nn@Ұ@@b@@@_:o@_@YA@ph@_W@A@6nn @@Aఠ$zyvaAoIoUBoIoY@PA@@@Eh@_@A@@@a h@_f@@@a$h@_@@_@@_3IHHIIIII@@@@@@@@࣠@!jAdoIoZeoIo[@sA@@!3]\\]]]]]@-@(@)$@@_i@_@@_i@_@/@0@@@@@@"irA}oIo\~oIo^@ԌA@@73vuuvvvvv@&=@@@@@@@@@ఠ!iԐoaokԑoaol@ԟA@@c@a c@_3ԌԋԋԌԌԌԌԌ@#P@@@@@డ noԦoaooԧoaotAA@@@@@_@@@@_@@_@@_@@ఐ !kԾoaop@@@)@@ఐi!joaoroaos@I@@6@@('@@7@A@oaog)@@ డYwyoxooxo@v@@@cc@`c@`c@`c@`c@`nc@`vc@`Vc@`^c@`c@` c@_c@_@@@@_@@_@@_3@gsl@m@n@@@@ఐz!i oxo/@ 0@@x@@ఐ!j9oxo@;@@@@@@@@@_l@_!@@@ఠ!l,oo-oo@;A@@n@@@` l@_3*))*****@8@@@@ఠ!h>oo?oo@MA@@z@@@` l@_@@ఠ#act OooPoo@^A@@@@@` l@_#@@- @@@-@@@@_,@డSRW5W6moonooAQA@@Q@M@=@.@@`l@`l@_@@@_@X@@@_@@_@@_R@@ఐD%cases$Ցoo@&@@v%@@@`m@` m@`f@@ఐ!iեooզoo@@@s@@<;@@4t@A@ժoo=@@డ1ՀշooոooAA@@@@@@`(@@@@`)@@@`'k@`@@@`@'@@@`@@@@`@@`@@`@@`3@@@@@@@@@@@ఐ!r4oo@6@@E5@@@`%l@`+l@`&@@ఐ"iroooo@h@@(@@@ఐ䠐!loooo@4@@Pl@`1;@@ఐࠐ!hoooo@A@@Yl@`2I@@ఐq)get_index.oo/oo@ٰ@@@nm@@`4Y@@ఐ#act=oo>oo@_@@m@`8h@@@@}i@@Doo@@k@`9m@@@@_@@@`k@`#s@@@@@@ఠ!l!]op ^op @lA@@@@@`Zl@`<3[ZZ[[[[[@i@@@@@kop lop@@@@@`[l@`= @@@vopwop@@@@@`\l@`>@@!@@@!@@@@`F @డ xw|Z|[֒op֓opAvA@@v@A@7@.@@`_l@`Yl@`K@@@`M@}@@@`L@@`J@@`IF@@ఐi%cases$ֶop@ &@@%@@@`Wm@`]m@`XZ@@ఐ:!iopop@Ͱ@@9g@@<;@@4h@A@op=@@@pp+pp,@@@@@`rl@`Ay@@ఠ!h"pp-pp.@A@@#@@@`sl@`B@@@pp/pp0@@(@@@`tl@`C@@$@@@&@@@@`G@డՊؠٰpp3ppӠQ@@@`@@@`@@@@`@@@@`@GQ@@@`@@@`Q@@@`@@`@@`@@`@@`@@`@@ఐ #locp@ppp@ps@ @@ >@@ఐ 蠐!s$p@pt%p@pu@ y@@? B@@@`o@`o@`@@ఐ!i9p@pv:p@pw@<@@@@ఐ堐!jFp@pxGp@py@Ű@@@@Jp@pcKp@pz@@@HR-@@@`@@@`R@@@`@@`@@@@m@`@@\p@pT@@k@`@@@@l@`@@@@doxo~ep|p@@@డ蠐pppqpp@@@@j@`@@@@`@@`@@`@@ఐ!i؆pp؇pp@@@#@@@ؐppؑpp@@k@`.@@@@/@@@`k@`4@ఐb$zyvaأppؤpp@;@@@a@`[@@`@@`D@@డ2صppضpp@@@@@@@`@<@@@`@@@`@@`@@`_@@ఐ?!ipp@Ѱ@@=k@@A"pp@@Z@@@a l@al@a z@@pppp@@ l@a @@డm렐pppp@@@@@@@a@w@@@a@@@a@@a@@a@@ఐ"ir pp@r@@@@A"pp@@@@@al@a#l@a"@@pppp@@l@a@@~@@@@"pp@@@@@@V@@@ A@@@@@a,@@a+h@a)@@@-oIoM@@ ఐ$zyva9pp:pp@Ѱ@@@@5@@@a2X@@@a1@@a0@@a/3;::;;;;;@@@@@డMORppSpp@L@@@L@@@aB@@@@aAK@@@a@@@a?@@a>@@ఐ #lenlpp@ @@g@@@aNj@aPj@aO/@@A)|pp@@@@@aMj@aRj@aQ>@@مppنpp@@ j@aLC@@డٔppٕpp@@@@@@@aX@@@@aW@@@aV@@aU@@aT^@@ఐ *n_clustersٮpp@ @@ j@@A"ٷpp@@9@@@acj@agj@afy@@pppp@@@@@a<@ahj@ab@@ @@@@@aih@a;@@ఠ$acts#pppp@A@@@  @@ah@ao@@@ayh@aj3@@@@డn%Array$makepppp@ pppp@@@@@@@@ap@"%@@@an@@am@@al!@@డؐpppp@@@@@@@azi@ai@a}@@@a~@@a|<@@ఐ %index-pp@ ]@@@@@aj@aj@aP@@% @@Q@@࣠@$A@CppDpp@@ 4^@@@@ ภ&NpqOpq @%@@@d@@@am@Upp@@ <o@WppXpq @@wh@at@@g@@}u@A@]pp@@ డ'Hashtbl$itermqqnqq@ qqqrqq @@@@@@ h@a@ h@a@@@a@@a@@a@[ @@@a@@@a@@a@@a3ځڀڀځځځځځ@%@@@@@@࣠@N(A@ښqq&ڛqq'@@#3ڑڐڐڑڑڑڑڑ@@@@@@@X'A@ఠ!i%ڬqq)ڭqq*@ڻA@@ @@ఠ#act&ڸqq+ڹqq.@A@@  @@ڽqq(ھqq/@@@ @ @@a)@@ @@డM-ڛ2ڜqq3qqBA,A@@, k@a@@@a@5@@@a@ )@@@a@@a@@a@@a3@^C +@=@>8 %@2@3@@@@ఐ$acts$qq7@j&@@Q%@@@al@al@a@@ఐ_!i qq9 qq:@"@@ M&@@ఐ`#actqq?E@-F@@ R2@@HG@@E@@@al@a8@!qq!"qqC@@@@S@@@a@@a@@ai@ai@a@@ఐ !t8qqD9qqE@ j@@  @@@a@@@@X@@@ah@a@ຠA%casesOqHqMPqHqR@ఐ .!rXqHqUYqHqV@ @@@@@@b @@@@b @@@@b @@b @@@bg@b @B'actionsxqHqYyqHq`@ఐ$actsہqHqcۂqHqg@@@ |g@b@@@bg@b@@@یqHqL Y@@ @! Z@@ @2 [@@ @W \@@ @d ]@@ =@  ^@@  @  _@@  F@ u `@@  @ j aA@ c@b' h@A@ e@ e d@ {@ఠ'do_zyva)ۣqkqqۤqkqx@۲A@@@A@@@c\c@b)@@Ȩ@@@bc@b1@@@@bc@b2@@b3c@b.@U@@@cc@b9@@@@@c@@@@c@@@@c@@b@@@bc@b>@U@@@czi@c @@@c c@bCc@bD@@bEc@b?@@b@c@b:@@b;c@b/@@b0c@b*@@b+c@b(3@ .'@(@)@@@࣠@#loc+A qkqy qkq|@A@@c3@pqkqms;s`@@@@@  @@6A@ఠ#low,#qkq~$qkq@2A@@m3@&@@@@@@ఠ$high-2qkq3qkq@AA@@t@@7qkq}8qkq@@@@}@@b5@@ @@#arg.AIqkqJqkq@XA@@3BAABBBBB@(1@+@,#@@@@@@  @@%cases/A\qkq]qkq@kA@@3UTTUUUUU@ @@@@@@@@'actions0Amqkqnqkq@|A@@3feefffff@@@@@@@@@@ఠ&old_ok1܀qq܁qq@܏A@@ƙ@@@bSi@bH3~}}~~~~~@%@@@@@డ ܔqqܕqq@@@@fi@bK@@@bL@@bJ@@ఐ(ok_interܩqq@Z@@|@@@bQj@bTj@bR*@@  @@+@A@ܵqq @@ డ=qqqq@@@@@@@bgi@bZ@@@b[@@@@bY@@bX@@bW3@KYR@S@T@@@@ఐ렐(ok_interqqqq@@@"@@@bej@bhj@bf@@డsrtqqqq@q@@@q@@@bn@p@@@bm@@@bl@@bk@@bj3@@డێ"<=qqqq@@!a@@@@@3@@2@@1*%lessequalBA@@@@)))Z@@U@@@@@@@bk@b@@@@b~@@b}@@b|e@@డ#absDqqEqq@@@@@@@@@@@%V1H1H&V1H1\@@$s@@@@@@@b*@@@b@@b@@ఐC#lowfqqgqq@@@@@&@@;@@ఐ+inter_limittqquqq@p@@Jl@b@@6@@@@@bz@bl@b@@డ "<=ݍqqݎqq@{@@@e@@@bk@b@|@@@b@@b@@b@@డ$#absݨqqݩqq@d@@@@@@b@@@b@@b@@ఐ$highݽqqݾqq@n@@@@@@-@@ఐD+inter_limitqqqq@ǰ@@rrrr@)@@@ @@@bi@b@)@@@b@@b@@b,@@డ܇} rr rr@|@@@ܠj@b@@@b@@bB@@ఐ*(ok_interrr@а@@@@@bk@bk@bV@@  @@W@@ఐ&old_ok4rr5rr@a@@Bj@bf@@0@@@@@bj@bl@డ'Hashtbl%clearLrr Mrr'@ Prr(Qrr-@@@-!a@6}!b@6~@@@6~@@@6@@6@ii@@B@ @@@EAi@bҠ9i@b@@@b@@@b@@b@@ఐa!tބrr.ޅrr/@{@@^ZP@@@b@@A@@˦@@@bi@bj@b@@ޕrr@@ @@ఠ!s2ޠr3r;ޡr3r<@ޯA@@Ec@cc@cUc@c`c@cc@b@@@bi@b3ިާާިިިިި@@@@ຠE[%cases޽r3r@޾r3rE@ఐm%casesr3rFr3rK@U@@@Eh'actionsr3rNr3rU@ఐn'actionsr3rVr3r]@O@@(@@@r3r?r3r^@@:+@A@r3r7@@@@ఠ*n_clusters3rrrr@A@@@@@c&i@c3@%]V@W@X@@@@ఠ!k4rrrr@A@@" @@@c(@@@c'i@c@@" @@@"@@@c@ఐ"-comp_clustersrr rr@z@@@F|@@@c@@@@c@K5@@@c@@@c@@c@@cA@@ఐ!sBrrCrs@K@@F,@@@c)j@c+j@c*V@@/ @@@b@P@@c,j@c%_@A@Wrr@@@ఠ(clusters5bss css@qA@@FK@O&YL@@@cW@@@cV@@cT@@@cSi@c-3jiijjjjj@@@{t@u@v@@@ఐ-make_clusters߃ss߄ss$@@@@@@@c<@FpYY@@@c5@@@c;@@@@c:@z@@@c9@@@c8F@O`Y@@@c7@@@c6@@c4@@@c3@@c2@@c1@@c0@@c/:@@ఐ#loc߹ss%ߺss(@@@G@@ఐ&!sss)ss*@ϰ@@F!@@@c[j@c_j@c^\@@ఐ*n_clustersss+ss5@e@@@@@cZj@cbj@cap@@ఐ!kss6ss7@x@@ՠ@@@cY@@@cXj@cej@cc@@{@@@A@ss@@ఐG&c_test s;s? s;sE@Fɰ@@@OǠY@@@cn@@@cm@F@Y@@@cjA@cl@@@ck@@ci@@ch3@@@@@@@ຠN#off0s;sQ1s;sT@@6s;sU7s;sV@@Zm@@@ci@c@Nɡ#argCs;sGDs;sJ@ఐ#argLs;sKMs;sN@@@.@@@Ps;sFQs;sW@@P Z3@@@c~@@@c}i@c:@@ఐ(clusterses;sXS@CT@@GN@z@@c|@@@c{i@ci@cQ@@j`@@}R@ua@@~@b@@~@c@@@d@@@e@@@f@@@pgA@c@cn@A@k@kj@@ఠ/abstract_shared7sbshsbsw@A@@@ȥsZf@@@ce@c@@@ce@c@@@cc@c@@Zw@@@d,e@cd@c@@d\c@dO@ɠe@c@@@d^c@dP@@dQc@c@@cc@c3@@@@@@࣠@'actions9Asbsxsbs@A@@>3@Ksbsdtt@@@@@  @@@ఠ(handlers:ssss@A@@@A<@@ce@c@@@ce@c3@!-a@$@%@@@డv#refssss@@@@̠@@@c@@c3@@@@@࣠@!x;Assss@!A@@j(@@@@ఐ!xss ss@v@ @@@w3@6@@@&ss'ss@@?e@c<@@1@@E=@A@,ss@@@ఠ'actions<7ss8ss@FA@@@@@ce@c365566666@Tg`@a@b@@@డ%Array#mapQssRss@ UssVss@@@@!a@-!b@+@@;@ՠ @@@: @@@9@@8@@7@>rr?r@@=U@#@@@@@@c@@@@cȠ@@@c@@c@@c3wvvwwwww@A@@@@࣠@#act=Assss@A@@T@@@@ఐ#actssss@ @@@@3@d@@@Ġ&Singlessst@ǘఠ#act>stst@A@@"3@@@@@@@@)@@)@@@ఐ #actst st @.@ @@@3@'@@@Ġ&Sharedtttt!@ܠఠ#act?tt"tt%@A@@Je@ce@cB@@@@@QC@@QC@@@@@ఠ!i@t)t<t)t=@A@@n@@@cj@c3@[%@@ @@@@ఠ!hA t)t> t)t?@A@@@[@@@c[@@@c@@cj@c@@#@@@#@@@c @డ*make_catch#Arg+t)tB,t)tE@ /t)tF0t)tP@@@[@@@G@@@@G@@\ @@@G\@@@G@@G@@G@@G@@@@@\@@@c@@@@c頠@@\#@@@c\&@@@c@@c@@c@@cb@@ఐ#actjt)tQkt)tT@l@@o@@C@@@{@i@@ck@cx@A@wt)t8 @@@ఠ"ohBtXtktXtm@A@@@@@d j@c3~~@@@@@@@@డ  tXtptXtq@ @@@ij@d@@@d@@d@@ఐ̠(handlerstXty@j@@@@@dk@d k@d ,@@  @@-@A@tXtg @@ డ@t}tt}t@@@@@#@@dj@d@@@d@@@@d@@d@@d3@LYR@S@T@@@@ఐ(handlerst}tt}t@@@!@@@dk@dk@d3@@@@@࣠@#actCAt}tt}t@ A@@T@@@@ఐ!h t}t t}t@@@@\@@@d%\@@@d$@@d#3        @B#m@@@@@@ఐ"oh%t}t&t}t@P@@@~y@@d.@@ఐ;#act4t}t5t}t@@@!@@8t}t9t}t@@$@@0@@m@d+'@>t}t?t}t@@uj@d4U@@a@@Z@@@d5j@d[@డ )make_exit#ArgUttVtt@ YttZtt@@@@@@G]+@@@G@@G@n@l @@@@@@d9]4@@@d8@@d7@@ఐ!ixttytt@@@@@@d@j@dBj@dA@@. @@j@d?@ @@@@@@@@@@@Ass@@3~~@@@@sstt@@@@@cf@dMf@dLS@@ఐנ'actionstttt@@@@@Q@@ea@A@ss@@@డ-#%tttt@"@@@d@dT@@@dU@@dS3@{@@@@@@ఐ蠐(handlerstt@@@@@@dZe@d]e@d[@@# @@@@ఐ'actionstt @  @@(#@@/ @@@+@/@@d_*@C@@@@@@A@\c@da@A@@@/@ఠ$zyvaDuu uu$@A@@@!@@@ec@dd@@Q@@@e@V@@@e@@ec@di@]@@@ec@dn@h@g@@@e@f@@@e@e@@@e@@e@@@ec@ds@^ @@@dc@d_@d@@@dc@dxc@dy@@dzc@dt@@duc@do@@dpc@dj@@dkc@de@@dfc@db3A@@AAAAA@@@@@@࣠@#locHAZuu%[uu(@iA@@`3SRRSSSSS@ncuuduu@-test_sequence@@@@ @@"lhIAquu)ruu+@A@@n3jiijjjjj@$z@@@@@@@@#argJAuu,uu/@A@@m3{zz{{{{{@@@@@@@@@%casesKAuu0uu5@A@@u3@@@@@@@@@'actionsLAuu6uu=@A@@k3@@@@@@@@@  డ613u@u_u@u`@0@@@o@@@di@d@1@@@d@@d@@d3@!-@$@%@@@@డT%Array&lengthu@uLu@uQ@ u@uRu@uX@@@@@c@e c@d@@@d@@@d@@d(@@ఐj%casesu@uYu@u^@R@@5@@#@@>6@@@u@uau@ub@@Ij@dA@@ u@uK u@uc@@Ϧ@@@dj@dI@u@uD@@*@@@di@dP@@ఠ'actionsM"ufun#ufuu@1A@@@@@d@@@di@d3%$$%%%%%@h@@@ఐ'actions<ufux=ufu@t@@@.act_get_sharedCufuDufu@Ȕ @@@+@@@d*)@@@d@@@d@@d#@@ภ [ufu\ufu@ @@@C@@@dj@d3@@(@@<4@A@eufuj @@@@ఠ"hsNtuuuuu@A@@@_E@@@d@@di@d3tssttttt@c\@]@^@@@@ఠ'actionsOuuuu@A@@ڠWc@e'c@ec@e&c@d@@@di@d@@(@@@(@@@d#@ఐ#/abstract_shareduuuu@_@@@̎_@@@d@@@d@@@d@@_@@@d@@d@@@@d@@d@@dK@@ఐ'actionsuuuu@U@@I̹N@@@d@@@dj@dj@dd@@9@@@r@^@@dj@dm@A@uu@@ఐ"hsuuuu@@@@@@_@@@d@@d3@ }v@w@x@@@@ఐ m'do_zyvauuuu@T@@@#@@@d@@ b@@@d@ g@@@d@@d@`@@@d@q@p@@@d렠@o@@@d젠@n@@@d@@d@@@d@g`@@@d@@@d@@d@@d@@d@@d@@dK@@ఐ#locUuuVuu@@@ZX@@ఐ"lhbuucuu@ܰ@@^e@@ఐ#argouupuu@ذ@@Yr@@ఐ점%cases|uu}uu@԰@@]@@ఐ'actionsuuuu@@@@@@ej@e%j@e$@@uu2@@@@3@@S@4@@T@45@@Ui@6@@Vj@A7A@c@e1?@A@;ఠ=E>v5v;v5vH@A@@@`@@@fpc@e2@@@@@f@@@@f@@@@f@@f@@@fc@e7@ա`@@@fHc@ef@ei@@@ehc@e<c@e=@@e>c@e8@@e9c@e3@@e4c@dc3@@@@࣠@#argPAv5vIv5vL@A@@C3@@@@@@@%casesQAv5vMv5vR@ A@@I3@U@@@@@@@@'actionsRA v5vS v5vZ@A@@?3@]@@@@@@@@  డ v]v|!v]v}@@@@@@@eYg@eF@@@@eE@@eD@@eC3$##$$$$$@!-b@$@%@@@@డ%Array&lengthBv]viCv]vn@ Fv]voGv]vu@@@@@c@fc@eS@@@eR@@@eQ@@eP(@@ఐj%casesav]vvbv]v{@R@@5@@#@@>6@@@lv]v~mv]v@@Ih@e\A@@qv]vhrv]v@@ @@@e]h@eNI@yv]va@@ԑ@@@e_g@e^P@@ఠ'actionsSvvvv@A@@nm@@@eq@@@epg@e`3@h@@@ఐ'actionsvvvv@t@@@.act_get_sharedvvvv@ @@@@@@eg呠吠@@@ee@@@ed@@ec#@@ภrvvvv@q@@@@@@erh@ev3@@(@@<4@A@vv @@@@ఠ"hsTvvvv@A@@@a@@@e@@eg@ex3@c\@]@^@@@@ఠ'actionsUvvvv@A@@A+c@fc@f\c@f|c@e@@@eg@ey@@(@@@(@@@e|#@ఐ/abstract_sharedvvvv@ư@@@a@@@e@@@e@@@e@@a@@@e@@e@w@@@e@@e@@e~K@@ఐ'actions;vv<vv@U@@ N@@@e@@@eh@eh@ed@@9@@@r@^@@eh@em@A@Tvv@@@ఠ&old_okV_vv`vv@nA@@x@@@eg@e3]\\]]]]]@@@x@y@z@@@డ蠐uvvvvv@@@@Gg@e@@@e@@e@@ఐ(ok_intervv@;@@]@@@eh@eh@e,@@  @@-@A@vv @@ డ}ww ww@|@@@sҾ@@@eg@e@@@e@}@@@e@@e@@e3@M[T@U@V@@@@ఐ̠(ok_interwwww @s@@"@@@eh@eh@e@@ภˬwwww@˫@@@.h@e%@@@@@@@eg@e+@ డh"<>ww)ww+@4@@@@@@eg@e@4@@@e@@e@@eG@@డy{wwww @x@@@ؠh@e@@@e@@e]@@ఐ&(ok_interww(@̰@@@@@ei@ei@eq@@  @@r@@ఐѠ&old_ok0ww,1ww2@|@@Bh@e@@0@@@@@eh@e@డ'Hashtbl%clearHww8Iww?@ Lww@MwwE@@ @@@)%g@eg@e@@@e @@@e@@e@@ఐE!thwwFiwwG@_@@B>4@@@e@@)@@֊@@@eg@eh@e@@yww@@ @@ఠ!sWwJwRwJwS@A@@Pm@YPcv@@@f`@@@f_f@f}f@f8g@f5g@f6@@f7g@f@@@fg@e3@@@@ຠPI%caseswVw]wVwb@ఐ%caseswVwcwVwh@@@@PV'actionswkwrwkwy@డE%Array#mapwkwzwkw@ wkwwkw@@{@@@@:g@f$Lg@f"@@f%@ K@@@f# + @@@f!@@f @@f3@1@@@@࣠@#actXAwkwwkw@A@@ W@@@@࣠@ضYA@wkwwkw@@s3@Q/@@@@@@@@ఐ#actwkwwkw@ @@;@wkwwkw@@g@f:@wkwwkw@@@IH@@f1h@f=h@f<@@ఐ:'actions+wkw,wkw@@@ ]@@@f0h@f?h@f>Q@@k @@\g@f@@@fh@f/@@@?wVw\@wkw@@@A@BwJwN@@ఐq"hsLx xMx x@@@@d@@@fC@@fB3IHHIIIII@@@@@@@ఐQ[&c_testcx xdx x@Q#@@@Z!dG@@@fP@@@fO@QT@d?@@@fLA@fN@@@fM@@fK@@fJ'@@ຠY#offx x'x x*@@x x+x x,@@d@@@fhh@fi@@Y #argx xx x @ఐ#argx x!x x$@@@R@@@x xx x-@@h@fvW@@ఐ1!sx x.x x/@a@@Q@*Ð@@f^@@@f]h@fzh@fxo@@x xx x0@@r@@{@@s@@@'@P@@(@ @@)@5@@c@x@@@@@6@U @@7@ A@'c@f@A@v5v7@@q@@D!A@,@{-@`@@@A@(@KM@N@@<@ A@@L@;@<6A@@!D@li@{@@@@zx@db@ebeDA@ec @c?]@a]@_]@^]@]\@\[@\Z@ZV@VU@UQ@RQ@;+:@; :@:6>@6y3@4!.@.(@(@b4@ v@ @F?@@@A@@@@@310011111@M@@@Ax2x5@o387788888@@@@E@3=<<=====@@@@@J @ @@RA@RA@R@N@@@@ͽ@ͺ@@ʹ@T@Qͮ@@L7@2H@+@@%@@@3ZYYZZZZZ@.@&A@,@@Z@&[@a\@A@>@@G@%@X@A@0@@@A@q@@@@H@i5@20@@@eeA@ec@c^P@b'^Q@`^R@_^S@^]b@]\h@\[)@[{WW@WV@VjR@RRx@;;@;;F@;6@74@4/#@/P)@)j@@- @ J@@1@@@@@@&Switchq@@2p@@o@@ı m@A l@Ak@A{j@Ai@AYh@AÌg@Aÿf@A"e@AI%d@Aĝ(c@A+b@A.a@Ao1`@Ań4_@Ař7^@AŮ:]@A=\@A@[@ACZ@A$FY@AEIX@AfLW@AOV@@vRU@@ϱUT@@牱XR@@ [Q@@d^O@A粱aN@A dM@A˱gJ@AjI@A'mH@@>pL@A蘱sK@AA A4 @a|C@@Ʊ@@AӠA)+A[A@A&^@@@ H************************************************************************bA@@cA@L@ H hBMMiBM@ H OCaml nCoC@ H tDuD3@ H Luc Maranget, projet Moscova, INRIA Rocquencourt zE44{E4@ H FF@ H Copyright 2000 Institut National de Recherche en Informatique et GG@ H en Automatique. HHg@ H IhhIh@ H All rights reserved. This file is distributed under the terms of JJ@ H the GNU Lesser General Public License version 2.1, with the KKN@ H special exception on linking described in the file LICENSE. LOOLO@ H MM@ H************************************************************************NN5@ ' see high-level comments in switch.mli P77P7b@ The module will ``produce good code for the case statement'' Adaptation of Robert L. Berstein ``Producing good code for the case statement'' Software Practice and Experience, 15(10) (1985) and Sampath Kannan and Todd A. Proebsting ``Correction to ``Producing good code for the case statement'' '' Software Practice and Experience, 24(2) (1993) and David L. Spuler ``Two-Way Comparison Search Trees, a Generalisation of Binary Search Trees and Split Trees'' ``Compiler Code Generation for Multiway Branch Statement as a Static Search Problem'' Technical Reports, James Cook University The article of Bernstein considers how to compile C-style switches: arrays of actions indexed over non-negative integers with some "missing" cases that are sent to a default action. The strategy proposed, which is followed in our implementation below, is as follows: 1. Compute a "clustering" of the cases as a disjoint union of smaller intervals with a high enough "density" (few default cases on the interval). 2. Generate "dense switch" code for each cluster, typically using a jump table. 3. Generate a sequence of tests for the whole switch, whose leaves are the dense switches generated for each cluster. Berstein believes that computing the optimal clustering (smaller number of clusters) is NP-complete, and only proposes a suboptimal heuristic method. Kannan and Proebsting remark that it can be solved by a quadratic dynamic algorithm, which is also used in our implementation. The article of Spuler explains how to generate good test sequences (optimal in worst-case number of tests) for a two-way tests instead of three-way tests: traditional dichotomic search assumes that we check at each step whether the key is (1) equal to the pivot, (2) strictly less or (3) strictly more, but the test instructions in our intermediate representations typically only let us test for (1) lesser or equal or (2) strictly bigger (or: (1) strictly less, (2) bigger or equal, which is symmetric.). Spuler proves that, even in this two-way setting, dichotomic search generates optimal test sequences. The code below uses two additional ideas from Luc Maranget. 1. The code to compute an optimal sequence of tests also makes use of an interval check (is the input in the range [m; n]), which (as remarked by Bernstein) can be implemented efficiently as a subtraction and an unsigned comparison. We don't know of an efficient algorithm to compute optimal test sequences using both comparison and interval checks, so instead: a. on large input intervals, we use the dichotomy b. on medium-sized input intervals, we use the best of the dichotomy and an interval check carving out exactly the lowest and highest cases c. on small input intervals, we use optimal exhaustive search. 2. The works of Bernstein and Kannan-Proebsting compute clusters of sufficient density, where density is defined naturally as the proportion of non-default cases. Maranget instead computes density as the height of the test sequence divided by interval size (note that the number of non-default cases is an upperbound on the test sequence height, as the length of the linear test sequence). As a result, sub-intervals that can be efficiently decided by tests get a lower density, so they are more likely to be merged into the toplevel test sequence instead of generating a less compact jump table. @ ~ A representation of switches over intervals rather than discrete values the [cases] array stores triples [(low, high, act)], where [low] is the lowest input value of the interval, [high] is the highest input value, and [act] is an index into the [actions] array. (There can be substantially less actions than intervals if many actions are shared.) 59@  let pint chan i = if i = min_int then Printf.fprintf chan "-oo" else if i=max_int then Printf.fprintf chan "oo" else Printf.fprintf chan "%d" i let pcases chan cases = for i =0 to Array.length cases-1 do let l,h,act = cases.(i) in if l=h then Printf.fprintf chan "%d:%d " l act else Printf.fprintf chan "%a..%a:%d " pint l pint h act done let prerr_inter i = Printf.fprintf stderr "cases=%a" pcases i.cases !!@  a "cost" as a number of tests in the worst case; [n] is the total number of tests [ni] is the number of interval tests If two choices have the same total number of tests, we will prefer the one with less interval tests as they cost slightly more. "G"I #X#\@ let ptests chan {n=n ; ni=ni} = Printf.fprintf chan "{n=%d ; ni=%d}" n ni let pta chan t = for i =0 to Array.length t-1 do Printf.fprintf chan "%d: %a\n" i ptests t.(i) done ##$$@ Represents tests in a test sequence [Inter (low, high)] is an interval test [Sep bound] is [fun x -> x < bound] [No] is when no tests are necessary. 4&?&A7&&@ let pret chan = function | Inter (i,j)-> Printf.fprintf chan "Inter %d %d" i j | Sep i -> Printf.fprintf chan "Sep %d" i | No -> Printf.fprintf chan "No" :'!'!?''@6 0 <= len1 - 2 < len1 X**&X**@@/ 0 <= 1 < len2 ^**^**@  let pkind chan = function | Kvalue i ->Printf.fprintf chan "V%d" i | Kinter i -> Printf.fprintf chan "I%d" i | Kempty -> Printf.fprintf chan "E" let rec pkey chan = function | [] -> () | [k] -> pkind chan k | k::rem -> Printf.fprintf chan "%a %a" pkey rem pkind k /|/|00@  Interval test x in [l,h] works by checking x-l in [0,h-l] * This may be false for arithmetic modulo 2^31 * Subtracting l may change the relative ordering of values and invalid the invariant that matched values are given in increasing order To avoid this, interval check is allowed only when the integers indeed present in the whole case interval are in [-2^16 ; 2^16] This condition is checked by zyva 4466@? Compute a good test sequence. 6666@ $ Large inputs: dichotomic sequence. 9496949^@ n To compute a worst-case cost, we add the more costly of the left/right branches to the running total.  :: :; @ 2 Medium-size inputs: dichotomy or interval tests. ;t;v;t;@ 7 Small inputs: exhaustive search for optimal sequence. "??"??@  Consider the following sequence of interval tests: if a in [2; 10] then if a in [2; 4] then act24 else if a in [5; 8] then act58 else act810 else act_default Our interval check works by subtracting the interval lower bound, then checking a range [0; n] using an unsigned comparison. Naively we would generate code with one subtraction to [a] before each comparison: let tmp1 = a - 2 in if tmp1 <=u 8 then let tmp2 = a - 2 in if tmp2 <=u 2 then act24 else let tmp3 = a - 5 in if tmp3 <=u 3 then act58 else act810 else act_default but we can avoid some substractions by working with the result of the first subtraction, instead of the original index [a], inside the interval. let a2 = a - 2 in if a2 <=u 8 then if a2 in <=u 2 then act24 else let a5 = a2 - 3 in if a5 <=u 3 then act58 else act810 else act_default The type [t_ctx] represents an input argument "shifted" by a certain (negative) offset by repeated substractions. In the example above, [a5] would be represented with [off = -5]. uJ3J5OO@ - Generate the code for a good test sequence. "V6V8#V6Vi@ Y Printf.fprintf stderr "off=%d tactic=%a for %a\n" ctx.off pret w pcases cases ; (WXWX)WW@ z Costs are retrieved to put the code with more remaining tests in the privileged (positive) branch of ``if'' .XX/XY9@ $ Minimal density of dense switches. 4+``5+``@ 1 Minimal number of tests to make a dense switch. :.``;.`a2@: Particular case 0, 1, 2. @1aIaKA1aIai@ T Approximation of the test sequence height, used to determine cluster density. F:b?bAG;bob@ 4 on small input intervals, use test sequence height L?bbM?bc-@ U otherwise use the standard notion of density (number of non-default cases) RCccSDcc@ I Sends back a boolean that says whether it is worth making a jump table. XGccYGcd>@ ! (ntests+1) >= theta * (h-l+1) ^Ndd_Pee@ a The switch_min test guarantees that we don't use jump tables for very small switches. dRe(e/eSeoe@ 7 Compute an optimal clustering by dynamic programming. jXffkXffR@ The code to generate a dense switch is provided by the functor parameter as Arg.make_switch (which will typically use a jump table) plh<h>qnhh@. Assume j > i vpiiwpii$@ ) Generate code from a clustering choice. |ll}ll@. assert i < j oooo@ r Printf.eprintf "ZYVA: %B [low=%i,high=%i]\n" !ok_inter low high ; pcases stderr cases ; prerr_endline "" ; rcrcrr@7 Standard entry point. tttu@ > Generate code using test sequences only, not Arg.make_switch uuuv4@ \ Printf.eprintf "SEQUENCE: %B\n" !ok_inter ; pcases stderr cases ; prerr_endline "" ; wwx 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&lambda"-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"-cא =/builds/workspace/precheck/flambda/false/label/ocaml-linux-32 >10/.-,+*)('&%$#"! @@0=Gp5f3@@@8CamlinternalFormatBasics0%FU(Q/Tu&Stdlib0Lku]8_٠-Stdlib__Array0?3$( Q&.Stdlib__Either0Vy`u~c à/Stdlib__Hashtbl0ѱN][/!,Stdlib__List0MYm 7R+Stdlib__Map0L5xE|O0~,J-+Stdlib__Seq0nwzG&amg,0ܨnm\7@@ADpʑpx@@{ȰN@@w&wA@pC@FT&'(ő(ϰ0?@Nƌ@ư@  ưڰ&@8_@Ýþ@@@@ s@͑װ`7A@ё@@ | )<@vv@°:E@jxPP@@@}}ʼn@==?@99ȰAK@@@bObX/@@E9EC@@D9",@@ @@<@@<<߰a`aj@o?oIL@@)@*R*\@  !ԑް?J4>@mQQ@@  Ƒ@;@@@hi@@@@@@xx@@rs@ʑ@8OU_@$.@@qC@|@QN@@z@ ; _@77İ:{@lv00SmS@w`wwHR@)Б)ڰ=.@pp@@%ϑ%ٰ>>@x9R\@is@@ @W\Wf @Ƒƽ@@k=kG0:@@'Ű=Bq@  쿕Q@9Ց9߰cݑc@ˑ@@ˑ(ב(+ő+Ӱ4@@ii ǰט@@+C+\PQ @@7+79‘@>>͑@ő@@gUg_êô@'V'`@FRF\@@q{{@@@R_@@22Űkk@pp@@*>@@@s"s,#@‘̰ё۰@6^6hwx{ @HR@@%@nyf@zz@~ Ćs@@4W@ϐ@@@ee@ @ J@@!!͑g@@@A@(=ȉ@VnVxU_뮙@֓@@@=_F_P@==<HoH}qy@@BL@:Dy@ ˰ē@Hg 3=@@씙@ZHZR@@U͑UװRlT^@@@&0ē@22PZ@õ@GEG_@ؑ@<l@@22@w@@`Ȟ@Α@@@>V@ >eYss@@@@@=vHx@7U7n@8@"@qZq[f@q@Z@@\f@ж@@Ӑ@ y@ġī@ ,k븰Ò@Ǿ@#@!@@q*q4@@@'1@@˦˰@{@T/ˑհϑٰ@  [ܑ[@m{Ɇ@aa@gu@ő@@::?ku@*4@ΰ\f@22@z{@4,͑۰eo@@@@@gq@*@jXjB~@@=]]@@LV@R@@@8@ҝҧ@ @@@;6@@ 2 <x\xf@@7@A|@@@@@So@@@@ʄʞ@**I װaFaP@@fJ@JS되@@{@..{p{zi:@HH@jj@@@P@Dݡٰ@@g@d@@@A@@@AE@@@SDOK@@ 0@ @@@A @ @@@B@@@AˆE˃@@@BCD@@P@M@@@A@@@E@@@AA"@B@@@B@@@AB@@Aϓ@C@@@AC@@@C@@@Cw@@@ABC@@ABD@@