#!/usr/bin/ocamlrun T)*VD C 2" @(()*c( ` 5?[o n2$ ]()* ^()* ^()* ^()* ^(](]()* ^(](](](]K()* ^(](](]()* ^()* ^(](]()* ^(](](c!](cC%c!c%C +I()* &c!](c!]O(]%g ^]("g ^](!&!&&^(g ^]("g ^](!&!&&^(Y]Z(h()*VD C ] oha o2' ()*] V  ]'5?[)] h `c]cVn @ ]'(m] mh `co @2&, ,ch &)*  ]o }V5 % $)*  ]o }V5 % `(h6'h6')* _](Y]ZThY]Z(h(]]()*c _()*  ]o }V5% `()*]h `(VD C Y]ZTh2%c(,c] %l6'l6')* _](6^% ~V5&^ 0: T -T(2%] ,c %6^P(5 ^V5 ^V5%d(c(V5(5(5%()*] ] n] h ha ha(g u((m()* ^V(()* ^V((6@[6@[+ +6? + + + +livgTg>iv 6]?6]?6]?6 ]?6!]?6"]? +^+H +9+ + :+ + ,c]i]j] + + + + +Z+4 +& + + + + +%+ ,(+ +t ++ +++++++v"+f +V+A+2 !+" + + :,+? + + + 6#^- + + + + + +> +s +g +^ +U +I +? +6 +-'*( +0/1 + 57 + + +< + +@B +E +JIK.02468:<>@BDFHJ]_aceikmoqsuwy{}>PA9$T)*V D 2&()*|V  $eq o  n n2  n2  n n$ )*c }UH\ n^ n? T\C^ C_ C~V  C^"c C_ zUc()* "._ {V ^2$ o$ _ {V ^ 2$ o$ )* nn  , ^^$)* + + ,O |V hh$ e q oh^ ^  h   h c h $)* " ^"^ _ 2' _()*Y #Z( CyV D _([)* " ^ _ 2&)*f q zVcT5%6 @[ ^"^ _ 2&h_( _()*Y"Z( CyVD ([)* nn ? {V0^ ^"h}V I^ C^"h}V IC( {V^ ^"( {V(@[)* + ,,, +\,Ok qh {U\ ^  # zUcj {U%\ ^h ^  _h"" zUci{Vd ^h ^i _h _( )*? Oh {U\C ^ " I zUcC()*?hO }U\^ C" I zUcC()*VD C _  2&(VD C h"^ ,i &:()*( ^ @ 2&,c O &)*O :(c ^ h " ^ i  }U\^ " _  zUc()*c O }U\^ " zUc()*O :(c ^ ! ^ i  }U\^ ! _  zUc()*c O }U\^ ! zUc()* Oo }U   Oo}V5&8$% {V$h {U\n ^ n_  zUc(c }U\n ^ n_  zUc()*   Oo }V5'8$% n }U\ _  zUc()*   Oo }V5(8$%:( ^ ^ i }U\n^ _  zUc(VD C O h ^ &2%:(, %)*V D C On2&()*V/D Ch O }U\ ^ n_  zUc On2&c()*, h "^ ,h "()*O O :(c T^ n^ h  }U\^ _  zUcc  }U\^  n_  zUc(O :(c ^ ^ i  }U\^ _  zUc()*: ^ h  }U\^ Q zUc()*:(c ! ^ i  }U\! _  zUc(+ + +j + + + + + +n +I + + + + ,+Z + +6)? +=l  +  ! #&(*>9*T)*V D 2&()*VD C ( 2&5+8$%5,8$%)*V D C @ 2&(VD C 2! 8$&c()*VD C ! 2" @(c()*V D C ! 2&c()*VD C "2'()*VD C 2# &()* VVD C DC "  2# @( Uc(5-8$%)* VVD C DC " 2' Uc(5.8$%)* VVD C DC    # 2$U(5/8$%)* VV!D C DC    2   ' U(508$%)*VD C !V 2&(d()*VD C !U 2&(c()* VVD C DC "V 2' ( Ud(518$%)* VVD C DC "U 2' ( Uc(528$%)*VD C ^U 2&(c()*VD C yU 2&(c()*VD C D C ^V(2&5?[)*VD C D C yV(2&5?[)*VD C C ^U2&(c()*VD C C yU2&(c()*VD C C ^V(2" @(c()*VD C C yV(2" @(c()*VD C !V( 2&5?[VD C D C 2! D C @ @@(53()* VVD C DC 2" @@(Uc(548$%)* V0V)D C DC "  2# @( 2# @(  ( ()*(V D 2&556 @[)* V/V&D C DC "  @ 2'  @2'  & &)* V/V&D C DC "  @ 2'  @2'  & &)* VD VD VwC CC "5 " c @ @ @(  " c @ @ @( c @ @ @(  " c @ @ @(  " c @ @ @( c @ @ @( T-T)V&D VC C " c @ @(c @ @( i x o " 3" 3"h ')* VD V{D VrC CC "3 " c @ @ @(  " c @ @ @( c @ @ @(  " c @ @ @(  " c @ @ @( c @ @ @( T,T(V%D VC C " c @ @(c @ @( i x o " 1" 1"h ')*,, ,<! ( & )*VD C !V  @2' @2'! !@()*,hh ')*VD C !V  @2& 2&%,c %)* VVD C DC "@2' U(568$%)*, h ')*VD C !@2&()*,h &c &VD (578$%VC (588$%h&, + + + , 7$ ,-+ ,8 ,F+ ,W,h,z,+e ,,,,5,J,_,,,,,,,3,J,g,+ + ,,,, "(+H    !#%')+-/24379<>=BBFHGKMOQ>)+99T)* o(az ((AZ  (('\ (5:(5;( 5<(5=(]V d] h S(l]l\h Sgd ql0ni Sg l qrl0nj Sg rl0nk S(5>8$%(+ + +c +? +4 >9?T)* ~V5?[ RyV(  2$)*5?[ RyV(  2')* ^()*h ')*] ~V5@8$%Y #cdZ(6 CyVc([)*] }V5A8$%Y   ]  cdZ(6 CyVc([)*] ~V5B8$% ')* ] ')*] }V5C8$% ] $)*h ] $8?&8?&)*](!h R !h S(8?&8?&)*] (]h  }U\R! S zUc(c?h ] }UM\R   T%TT ST TT]VdTgTe Cn I zUc] CyV(C]h Ic ] }U\R " \x#-Tr  #g\CSgnCSTgg\CSgtCSTV ]VCST7l\CSgd ql0nCSg l qrl0nCSg rl0nCSTg\CSCS zUac(]Cha]CnI]Cha]CnI(]CnI()*V?D Ch?h? +89 "C]p Cn] ]h ha]?  +89 "(5D()*c ] }U\R ! zUc()* ]o }U  ]o}V5E8$%a()*  ]o }V5F8$% `()*  ]o }V5G8$%] h a(] ] h ha()*] h `(+ + + + +T +/ + + +V +J +? +! + + ,+ + ,+ ++b +1 +$ +     "$&(*>9HT!?[V +?&c&)* ^c(c] D Ch] D C iv lqph? +lllllllllllllllllllll6I? +6J    "$&(*,.044886=?> "9KT)*VE D C ^V(2&5?[)*VE D C C"V(2&5?[VE C C"U2%(c()*,DO !r D^ %VE D C C"V A(2! A(5?[)* ,DO !r D^ Y ! D_Z(6 CyV"A D_CIdDOvC}V& ([VE D C C"V 2! @(2%c()*,DO !r D^ %)*DO !r D^ VIE D C C"V(V1E DC  C"V( VE DC  C"V(  &5?[5?[5?[V E D C C"V CI(2! A(c()* ,DO !r D^ ! D_()*DO !r D^A D_C Id DOv C}V&(7$ D!s( + + +, + + +u +3   > ()*VE D C # 2&()*,D?h O }U\C ^" I zUcC(VE D C "2%c()*,Dh O }U\ ^! zUc(VE C ^U2%(c()*,DO !r D^ %VE D C ^V A(2! A(5?[)* ,DO !r D^ Y ! D_Z(6 CyV"A D_CIdDOvC}V& ([VE D C ^V 2! @(2%c()*,DO !r D^ %)*DO !r D^ VFE D C ^V(V/E DC  ^V( VE DC  ^V(  &5?[5?[5?[VE D C ^V CI(2! A(c()* ,DO !r D^ ! D_()*DO !r D^A D_C Id DOv C}V&(VE D C 2! !r ^ A _(c()*D O8K jp8$" zV.c ^ ,c }U\^ ! zUcJ(D8*! C@(c DO }U\c D_ zUcc I(7K i8$"8$"h ^ h@(ldl _J(+ + + + +Y ++ ,+V+; + + +H +   +    > 9LT2)* {Vc^ $1 \g\"" 2&\ " 2& 2&\ " 2&" D C !"l 2&()*] ,cl &)* ^ ({ "  o8H#@(  h!   o 8H#@()* ~V(^ _: TeTd0`T[{SS@ W@@@@DDDD@@@@@DD@@DDDD@DDDD@D@@DDD@@@DDDD@@@@@DD@@DDDD@DDDD@D@@DDDT T`( 2&)*,j] &)* ~V5?[ ^yV   2' ^yV(  2'  2')* ,] ' ({5M6 @[g}(g)()*Dh C 8$/$)*E Dn}V " DC8$?  Dn J()*Dh C $)*] Dn E }V "DCh 8H  J()*h}U h}U ]o }V5N8$! Dn E }V "DC  8H  J()*D E ~Vd " C_ J()*E ? T\Cjp ICDn}Uc7K C}V7KDn|V7K IT5O8$!C] Dhh C8H ICK(c JF IC] K(c J(D(Dh C8H'dT8K }V7KT ] h >(+ + + + + +P +0 + + ++ +t +X +C + +  +   > 9PTy ~Vc( R % 8P"2%0443  $)*8P"1%)* "4%)* !4%4%)* ] ,c% ( +& ~V 8P! 8P! % R % 8P"2%0443  $)* 8P"1%)*h " 8P"4%)*c !8P"4%4%)* ] 8P! ,yc% 8$&8$& ~Vc( R % 8$-"2%0443  $)*8$."1%)* "4%)* !4%8$+!4%)* ] ,c%  @&)*R  T.W"TT  2+( 3& 2& 8$!&F8$!T   ^ &   #&c  i8H"&6Q 8?!8$"6R8$"&sT5S 8H!8$"6T8$"yV  &   "& &   ^&   ln#&   ^b&)* '   ^y&)*R  WTWXX___c____________________________lp_ttt____x_________________lpttt____(_____ %T'6U&T]T-TER  T+W!!%%%%%%%%%%%!%%%%!%%%%%!%%%%%!%%!T &+ (TT+(R  T+W!!%%%%%%%%%%%!%%%%!%%%%%!%%%%%!%%!T &+(R  T+W!!%%%%%%%%%%%!%%%%!%%%%%!%%%%%!%%!T+$(+( +(& +( +c( +7( +(+()*, h & )*N n ^P(gu ] _ ^P()* }V8P%R * 8P"2&VD C 8$!8P"2&&)*V o 8P! ,89! & o 8H')*! D C]hl $ )* yV( |V 8H' 8H" V h  8H T  o  8H ()*] ~Vh@(R 1:  ]o8H#]O@(-i2& 2&,Ydh"Z(6 CyVc &[)* ]o 8H#6V8$"8$%+ + +6 + + + +^ + +r +g +E ++   > 9WT)*c ^ ^()* ^(+ + @9XT] (2! ](](](]()* ^()* ^()* _()* ^()* _(](]()* ^(](](]()* _(](](](](]()* _()* ^()* ^(](](]()* _()* ^()* ^ (] (] (] (] ()* ^()* ^()* ^()* ^()* _()* _(]()* ^(]()* ^(](](](]()* ^(](](](](] (]!(]"(]#(]$()* ^%()* ^&(]'()* `(()* _)()* ^*()* ^+(],(]-(].(]/(]0(]1(]2(]3(]4(]5()* _6(]7()* ^8(]9(]:(];(]<(]=(]>(]?(]@(]A(]B(]C(]D(]E(]F()* _G()* _H(]I()* ^J()* ^K()* ^L()* ^M(]N(]O()* ^P()* _Q(]R(]S(]T(]U(]V()* ^W()* ^X(]Y()* _Z()* ^[(]\()* ^]()* ^^(]_()*WcTdThh _Gij _Q ^Jg ^LT=\]I Ch] ]h^cT$c]hzVc8$K!] ]  "8$6!c8$K!dUc(d ]^M(WcTdThh _G Y^K]]@Z( ][E D C A6Y" 8$F!Y 8$6!ZT6 CyVcT[8$F!h^D(D C @6Z" 8$F!Y 8$6!ZT6 CyVcT[h^D(?6[" 8$6!h^D(?6\" 8$F!h^D()*Y8L"8L"Z(6 CyV 5] k>[[)*c]$ D Ch]$ D Ch]$ D C]] ] !c@ @ @   A ] ]] A(]()*c] 8L' ^]^]^] +89 " 6^6_A6`_g8$K% c]$ D Ch]$ D C ] ] c@ @ @ ]] @( c]$ D C ] c@?  ](c]$ D C ] c@?  ](]()*c] 8L' zV^]zV^] +89 "6a6bA6c^g8$K%)*c] (Y   #_Z(l8$K% )*c] (Y   #^Z(l8$K%)*! !! !!! ^] ^] ^](Y]Z( CyVc([c] h^D(Y6d6eA6f^Z(l8$K%)*  ]o }V5g8$%b`()*  ]o }V5h8$%aa()*  ]o }V5i8$%ab()*  ]o }V5j8$%ac(ci^+ ]-()*  ]o }V5k8$% `d()*  ]o }V5l8$% `e()*Y!Z( CyVKFh8K^8$ !5m8$ !E8$ !5n8$ !]h{V5o8$ !8$ !5p8$ !5q8$ !D]8$#!e8$K%[5r?6s6th >6u8X"+hij +d += : +-6v]E + + + + +^ ,+A + + +l8L! +_ +2 + ++ +$+ + + + +V ++ + + + + + + +~ +p +f +Z +M +C +: +1 +( + + +(*,. + + + + + + + + +9 + +w +n +e +\ +S +J +A +8 +/ +& + + + + + + + + + + + + + +T + + + +r +d +U +K +?FHJLORTVZ\ + + + + + + + + + + + + + + + + + +y +o +b +T +G +: +- + + + + + + + +> + + + + + + + +{ +r +i +\ +O +? +6 +- + + + + + + + + + + +>#9w5w G G G GGGGGG G G G~ G} G|G{GzGyGxGwGvGuGtGsGrGqGpGoGnGmGlGkGj Gi!Gh"Gg#Gf$Ge%Gd&Gc'Gb(Ga)G`*G_+G^,G]-G\.G[/GZ0GY1GX2GW3GV4GU5GT6GS7GR8GQ9GP:GO;GN<GM=GL>GK?GJ@GIAGHBGGCGFDGEEGDFGCGGBHGAIG@JG?KG>LG=MG<NG;OG:PG9QG8RG7SG6TG5UG4VG3WG2XG1YG0ZG/[G.\G-]G,^G+_G*`G)aG(bG'cG&dG%eG$fG#gG"hG!iG jGkGlGmGnGoGpGqGrGsGtGuGvGwGxGyGzG{G|G }G ~G G G GGGGGFEDC>9xchi8wj# 8wl! D W 5y6@[D C8wh!6z8W#T:9{c8$O!:9|dllunixalloc_dummyupdate_dummyarray_get_addrarray_get_floatarray_getarray_set_addrarray_set_floatarray_setarray_unsafe_get_floatarray_unsafe_getarray_unsafe_set_addrarray_unsafe_set_floatarray_unsafe_setmake_vectmake_arraycompareequalnotequallessthanlessequalgreaterthangreaterequaloutput_valueoutput_value_to_stringoutput_value_to_bufferformat_floatfloat_of_stringint_of_floatfloat_of_intneg_floatabs_floatadd_floatsub_floatmul_floatdiv_floatexp_floatfloor_floatfmod_floatfrexp_floatldexp_floatlog_floatlog10_floatmodf_floatsqrt_floatpower_floatsin_floatsinh_floatcos_floatcosh_floattan_floattanh_floatasin_floatacos_floatatan_floatatan2_floatceil_floateq_floatneq_floatle_floatlt_floatge_floatgt_floatfloat_comparefloat_of_bytesclassify_floatgc_statgc_countersgc_getgc_setgc_minorgc_majorgc_full_majorgc_major_slicegc_compactionhash_univ_paraminput_valueinput_value_from_stringmarshal_data_sizeint_compareint_of_stringformat_intint32_negint32_addint32_subint32_mulint32_divint32_modint32_andint32_orint32_xorint32_shift_leftint32_shift_rightint32_shift_right_unsignedint32_of_intint32_to_intint32_of_floatint32_to_floatint32_compareint32_formatint32_of_stringint64_negint64_addint64_subint64_mulint64_divint64_modint64_andint64_orint64_xorint64_shift_leftint64_shift_rightint64_shift_right_unsignedint64_of_intint64_to_intint64_of_floatint64_to_floatint64_of_int32int64_to_int32int64_of_nativeintint64_to_nativeintint64_compareint64_formatint64_of_stringint64_bits_of_floatint64_float_of_bitsnativeint_negnativeint_addnativeint_subnativeint_mulnativeint_divnativeint_modnativeint_andnativeint_ornativeint_xornativeint_shift_leftnativeint_shift_rightnativeint_shift_right_unsignednativeint_of_intnativeint_to_intnativeint_of_floatnativeint_to_floatnativeint_of_int32nativeint_to_int32nativeint_comparenativeint_formatnativeint_of_stringcaml_open_descriptor_incaml_open_descriptor_outcaml_out_channels_listchannel_descriptorcaml_close_channelcaml_channel_sizecaml_channel_size_64caml_set_binary_modecaml_flush_partialcaml_flushcaml_output_charcaml_output_intcaml_output_partialcaml_outputcaml_seek_outcaml_seek_out_64caml_pos_outcaml_pos_out_64caml_input_charcaml_input_intcaml_inputcaml_seek_incaml_seek_in_64caml_pos_incaml_pos_in_64caml_input_scan_linelex_enginenew_lex_enginemd5_stringmd5_changet_global_datareify_bytecoderealloc_globalget_current_environmentinvoke_traced_functionstatic_allocstatic_freestatic_resizeobj_is_blockobj_tagobj_set_tagobj_blockobj_dupobj_truncatelazy_is_forwardlazy_follow_forwardparse_engineinstall_signal_handlerml_string_lengthcreate_stringstring_getstring_setstring_equalstring_notequalstring_comparestring_lessthanstring_lessequalstring_greaterthanstring_greaterequalblit_stringfill_stringis_printablebitvect_testsys_exitsys_opensys_closesys_file_existssys_removesys_renamesys_chdirsys_getcwdsys_getenvsys_get_argvsys_system_commandsys_timesys_random_seedsys_get_configsys_read_directoryterminfo_setupterminfo_backupterminfo_standoutterminfo_resumeregister_named_valueweak_createweak_setweak_getweak_get_copyweak_checkfinal_registerensure_stack_capacitydynlink_open_libdynlink_close_libdynlink_lookup_symboldynlink_add_primitivedynlink_get_current_libsunix_dupunix_closeunix_error_messageunix_environmentunix_putenvunix_execvunix_execveunix_execvpunix_execvpeunix_forkunix_waitunix_waitpidunix_getpidunix_getppidunix_niceunix_openunix_lseekunix_truncateunix_ftruncateunix_statunix_lstatunix_fstatunix_lseek_64unix_truncate_64unix_ftruncate_64unix_stat_64unix_lstat_64unix_fstat_64unix_unlinkunix_renameunix_linkunix_chmodunix_fchmodunix_chownunix_fchownunix_umaskunix_accessunix_dup2unix_set_nonblockunix_clear_nonblockunix_set_close_on_execunix_clear_close_on_execunix_mkdirunix_rmdirunix_chdirunix_getcwdunix_chrootunix_opendirunix_readdirunix_rewinddirunix_closedirunix_pipeunix_mkfifounix_symlinkunix_readlinkunix_selectunix_lockfunix_killunix_sigprocmaskunix_sigpendingunix_sigsuspendunix_timeunix_gettimeofdayunix_gmtimeunix_localtimeunix_mktimeunix_alarmunix_sleepunix_timesunix_utimesunix_getitimerunix_setitimerunix_getuidunix_geteuidunix_setuidunix_getgidunix_getegidunix_setgidunix_getgroupsunix_getloginunix_getpwnamunix_getgrnamunix_getpwuidunix_getgrgidunix_inet_addr_of_stringunix_string_of_inet_addrunix_socketunix_socketpairunix_acceptunix_bindunix_connectunix_listenunix_shutdownunix_getsocknameunix_getpeernameunix_getsockopt_boolunix_setsockopt_boolunix_gethostnameunix_gethostbynameunix_gethostbyaddrunix_getprotobynameunix_getprotobynumberunix_getservbynameunix_getservbyportunix_tcgetattrunix_tcsetattrunix_tcsendbreakunix_tcdrainunix_tcflushunix_tcflowunix_setsidunix_sendtounix_sendunix_recvfromunix_recvunix_writeunix_readsj-Out_of_memory)Sys_error'Failure0Invalid_argument+End_of_file0Division_by_zero)Not_found-Match_failure.Stack_overflow.Sys_blocked_io.Assert_failure:Undefined_recursive_module,really_input%input@F@@G@&outputACDF@ACDG@%%.12g!."%d%false$true.bool_of_string$true%false+char_of_int/Pervasives.Exit((((((<5Pervasives.do_at_exit@(array.mlD*Array.blit*Array.fill)Array.sub,Array.Bottom@(List.nth#nth)List.map2*List.iter2/List.fold_left20List.fold_right2-List.for_all2,List.exists2@@,List.combine'list.mlK-List.rev_map2"tl"hd@"\'"\\"\n"\t(Char.chr@5String.rcontains_from4String.contains_from2String.rindex_from1String.index_from +String.blit+String.fill*String.sub@)Sys.Break&3.07+2@@)buffer.mlWI4Buffer.add_substring>Buffer.add: cannot grow buffer@!'!'!"!"!%3printf: bad format @@2close_process_full-close_process1close_process_out0close_process_in "-c'/bin/sh'/bin/sh"-c'/bin/sh'/bin/sh"-c'/bin/sh'/bin/sh+Unix.sendto)Unix.send-Unix.recvfrom)Unix.recv*Unix.write)Unix.read#: "(" failed% on "!"": /Unix.Unix_error /Unix.Unix_error'0.0.0.0@@&tcp.mlJF&%s:%d @@OoN}@@%ArrayAj@A@&BufferAP@@(CallbackAX@AB@$CharA@@'HashtblAL@A@$ListAy@BC@*PervasivesAd@@&PrintfAW@A@(Std_exitA|@@&StringAH@AB@#SysAK@@#TcpA{@A@$UnixAw@B@*UnixLabelsAx@P-Match_failureAG@ACDEQ-Out_of_memoryA@@R0Invalid_argumentAC@AS'FailureAB@T)Not_foundAF@AU)Sys_errorAA@BCV+End_of_fileAD@W0Division_by_zeroAE@AX.Stack_overflowAH@Y.Sys_blocked_ioAI@AZ.Assert_failureAJ@[:Undefined_recursive_moduleAK@ABCDF<%Array0~SȖ\y#Tcp0ا