x H__PAGEZERO(__TEXT__text__TEXTLFLF__stubs__TEXTx __stub_helper__TEXT__cstring__TEXT__const__TEXTY&Y__unwind_info__TEXTH__DATA_CONST@@__got__DATA_CONST__const__DATA_CONSTP#8__DATA@@__la_symbol_ptr__DATAP__data__DATAPP__bss__DATA`H__LINKEDIT@8;"0P 8, P(& /usr/lib/dyldq6y24ߑ2   4*(G 8'/usr/lib/libSystem.B.dylib /usr/local/lib&)8@2O{H R#e e0 e @Ri @R jP jp  k k ߠl ܠ op ٠q {BOAӠ_WO{C7@qT@`  4`0  4/`4}a_ _0 I_p q"A^p qTq@ TqaTdRtJ@qT[p ؠ46 ZP B[@Y Š4,H R#VP jjR,aWP ,qAT*4Rb8 @,qT`@s HX@"R؟@RHqTqTR{EODWC_B_O{p/ X@`@PP {BOA__WO{RoqT*@TLP @~@Kp {COBWA_Ĩ4O{CWP W #R4 R{AO¨_V WP "R{AO¨,O{Cwl+՝OOR{AO¨_Cog_WO{_q,T@#a  ;@@ T@` T0  4 qT@0 p   @"  4p @a@(@q(lTLtu {HOGWF_EgDoCC_@ 5@/`4\ B"#7@?@y4z0 @a@(@q(lT v@@5@b0 KP C@@?E# Q2y kT6y7 kTt0 @a@(@q(lTv@]a@rp =E@4|0 Y@{0 mp #aq0 -CWO{ ȆX@R@ւ_x7jgBp _#AR@ 5_@ iX)@?T{DOCWBC_֓CWO{֓p "u@a@@@ @94a@{DOCWBC_WO{)8@y(@7AQB?6@^0 @a@(@q(lT)va@\p  R{COBWA_WO{@w{BOAWèR_WO{Փ ը@@R? qX@@o oX@@Rl`\4Qih8?)q!T}@j(8@?{BOAWè______R__og_WO{ C iX@H R#SP ֝p p 7RRti0 ; US0  gXRp 8R ՙ4@9qAT!RP 9Ky!RR^@ 4#Rh@?6 59R@qTP%H@qHTZ?qT?qT,`@#4@"R@RgH@qHTARh@?@ XX)@?AT{IOHWG_FgEoD_Kog_WO{ iUX)@CU0 RU94R+O7Q@0  S/R9i w@q!T4hw@qT;Q NQ%q#T#BRjG@ @9?qThS@H35Q)R )O@h25(R )W@H17k 1TRRS95RRw@q-TqTq@TqaT7RqTq`T 9k58;hTw@C Q?%qT#BR'CG@qT@k*T@u`-5C@C5R(87R;h?w@_qT;zhw@ Q?%qT#BR?G@qaT@k$T@u'5?@H?;YhWw@qTqaT;Nhw@6Rq`T R;Chw@6R]qT5R Q?Yq(T ՊyixJ @@W@i 5@q T#@q`Tq#TRC@#P w9 _qT?@"P n9 @W@i657w@@y?qAT=@3R('xRc5(Rw@)9?9C@ R? T?@+R_ T?A((_qI( @?kmT#@   ըOX!}@#@?~@63@S%o/@S/@9o5C@9T9@@#R9C@ T@o@C@9mT5@#RC@ T;'J)) WRTQaqT@W@i;@ 5Sc@S3go9R Rw5Rc@W@yy_qT?@9#@/@Tgo#@/@  Ո@X)R#@!R?/@RR3@)%ȚI6)RI98) ?T R5R_98)4`" O@YiH0   @!p @@(@q(lT##@  h7X?֨Z )X)@?T{SORWQ_PgOoN_H4S9W9Sp  O{#b4 @({BOA_WO{#3+ @4 jh@T|{COBWA_BR{COBWAWO{C@9qAaT R @943 ՔX87 =@5Rʙ 4`@85{AO¨_O{#'`@{BOA_aŚ{,{_~WO{ ը$X!}@?~@v48{BOAWè_WO{ !X)!}@?b~@`38{BOAWè_O{HRr4C @ '@jjt)}J*GII%{COB_ =J) ))IJ) )IJ- J( AHJ_a4R! _8 @ !qT_R_(R_og_WO{7RySkTRh"@kbTh@Q X*5}?z*@Ku"@4Ri@;Y|;x @h@@`@?h*@  Zhi Z(h"@Qh"85 hX`@?@t"y v^)u~)z*{FOEWD_CgBoA_WO{R@@ @?@ @ @?R R{BOAWè__WO{@5Rh@i"@ kTyS}h@@?h*@i@  h@Yvh@ @` @@?֠4@ T @w (XR?h@ yv y6h"@h"q{COBWA_Ĩ_WO{"R @@ @  @ @H?@@a@? @ @ ?@v @ @?Rh a@ ?֨@ @ @?`t R{BOAWè_Rt_WO{ @4@@?h*@i@  h@YvHh@ @` @@?֠4 @@T @( R{COBWA_Ĩ_ֈ @wBi@) (h"@Qh"h@ @` @@ ?h@@` @@? ըX?R_WO{ @H4 Ri@ *4Yj @h@ @` @@ ?h@@` @@?֨.B?h"@Qh"wi@?y6h5{COBWA_Ĩ_O{C ՈX`@?*R{AO¨_WO{ @4@@?ֈ*@@  @5yh5@ @ @@?֠4@T @u{BOAWè_O{C ՈXR?{AO¨_ @ @ J @K@ k*TJ@H @ @*_|_ X@@@_O{C$@) kjT`@ yS) RMqHh )X`@}} ?`h@(h{AO¨_@4Q @ h__@4 @Q h__WO{@qkT҈@yu`?ֵKT{BOAWè_O{C`@@hb ըXR?h^@ H`^{AO¨_O{C(@@?`@ HT X?h@hi@ i@I(^@AT^b@"Hbh{AO¨_O{C@H HT hX?{AO¨_WO{@H4 X ?`@h@@h@( @h?  h~<@h`<{BOAWè_O{C@th@`@{AO¨_h@ @?O{C@h@ @?`@{AO¨_O{C@h@ @?`@{AO¨_O{C `@6`@a@=c`{AO¨_WO{(@U T)@i  @?h@@?uh@ h&){BOAWè_WO{1TT4 ȸX!}@?}@485 tv~{BOAWè_WO{cH L){BOAWè_WO{1`T*\`{BOAWè_WO{1TIhB)  _ kD@zAT(ySRq i@ ʬX?@?`vh@`@~@(h@i)4i)8h@(7h@i bh@ hh@ h{BOAWè_WO{B@@ @?ւ@@{BOAWèO{5C} @B@ !@{BOA_WO{`T@@ @?ִ@h@h@ @?h@kATa@Oq RR{BOAWè_WO{5@@ @?@@@@ @?ւ@@{BOAWèg_WO{Cq 49iqTmq`TqqT @8?qs Kq!T3b K#3 baQ@'` KKs+`T:q@T3g'#b''A) kT8K#Y'8 sK454R& @8sq7?qATh7s44`53aR(kAT@9qd @z T|@( @8?qd AzsQTRh*q{EODWC_BgA_R R_WO{6@@ @?@8@@ @?֘@-{COBWA_Ĩg_WO{Cky43&#&#A) kAT 89q!Tk觟kZ })2q{EODWC_BgA_C_WO{8@h@ @?x@w@3#`4@H5_kT{DOCWB_AC_{DOCWB_AC_WO{@5;4 R{COBWA_Ĩ_֨@2 kʂH @ kɂ(  Rg_WO{C5@@ @?֕@@3#`4"@a5kTkaT{EODWC_BgAIa EaO X){EODWC_BgA_g_WO{C@3#u`4&cA)_kkT@@ @?֗@ aQH `)A` :* {EODWC_BgA_WO{(@E T@?T@ @?ց@`4R @T@?֖ R{BOAWè_O{C s$@h9$@qq *{AO¨_og_WO{C @AT@@h\ ?T@@04@( @?&@@5RH *R?AT"@+A[ @\ }@/o<<+.) @\RXRR@: y/Xh4V9qTY 4c'Wq T"Ț?TCY 5OV Ѩ7CWCY_1)I4T"Ț ? @TCYH5CW9@7( =@4R֒`5qTV @9?)qTCW)CWQTc!&qTV 7WQHRmqTqqT@9CY)q @zTcс%cG% CWs1)c&ѨRWXq)K$Yh5W@aRRR$.BR?o(R@h@`T@h@ @) Y7@@q T*1LAqkT)@#.B}| ?@7@?qKTRRR@H#3a&@Zb q`Tq!T&@Q qT @qTqaT@@9qTb(R? qBT R@!.0 R`4 @(%@qTR(%*@(!(R R)KAkQ qT7}4ZQq`THR ~@$   @QrZZ5@H#3@#w4Y3Q@@ &@@ @ @J  9cZW557@_ kT@(R I, ՈV  #@p)@BR@@Rq) D@@T.B?h@@?vh+ h {EODWC_BgAoƨ_WO{L@L@ @.B?uU{BOAWè_WO{(@h@ @?h@ @9?qT@9qaTh@hP $h@qhTI{BOAWè__WO{ (X R?o=((Rh@hh@qhTR{COBWA_Ĩ_WO{@4`\@h:@ @`>@?֠ `{BOAWèhN@hN`@ @.B?uU{BOAWè_WO{R{BOAWè_WO{`qT0 G5RR@qT{COBWA_CWO{,@=@@@ @?֨@4u@h@ @?u@h@ qT@9qT@9qT.@=@HP h@h{DOCWBC_o g _ W O { HX@ޑCqTRRRRP ՗0 ՘<BRϑ@4bRʑ4@9q@ !@;@ !@@@ @?@@(;99@{ k`Ez TcFsGC@RR hX )5}@?@k@a@(@q(lTt?qT*@(@q(lT"TZ  X)@?!T{NOMWL_KgJoI_C_WO{H@@ @?ֈ@4%!v@ a0 {DOCWB_ACp @@ap 46R@qT@qT{DOCWB_AC_@RhN@hN`@ @.B?wWRC_WO{(@43%@qT Jh8qT q T2 _8?qT*@ @)q T*@N Q*@7*`hN@hN`@ @.B?vV+{DOCWB_AC_g_WO{C(@Y T@iN@ !T@h.@=@4@@5YwR \@ @@?֙hN@"h.@=@h.@=@ @) @qT@B@5h.@=@@@ @?@4$`6 U@qT{EODWC_BgA__WO{f4qTqa T{COBWA_Ĩ@@u.@h.@u. 5G HXR?@|@@ @?ց@(@9qT(@8q!T@Q(@8BQqTw2@BI6Rw.@BR@@?h Ո@* @@(@q(lTVR{COBWA_Ĩ__WO{(@v Ti  Ti*@?q R RIjij@)@_ aTRNu@ @?u@ww4_8qTR` R<@9qT@9q!TQ(@8BQqT2@B]@.@BV@xR"@MR@8 R5R8h@@?Rv@xu*{COBWA_Ĩ_WO{N$@#RR4ȨP WA0 u@@a@(@q(lTu @R!0 8{COBWA_ֈP WO{n@@qT{BOAWè_O{CE,t.{AO¨_WO{E@@qTf{BOAWè_og_WO{4q!TArp ]@ @ @@ @?ַ@@@9qT@9q!TZQ@8ZQqThhb@@@ @?ֈ@ @9?qT @9?qT@"Q(@8BQqTv2@@h @ @ kTan @qlTTC@@qTRiP w R{FOEWD_CgBoA_X@(@(@ @?(@kT @(@ @? @ȍ`4@5(@ @?T@h0 @a@(@q(lTuWO{@4{COBWA_TqT5@ @v.@i.@v.@6b0 #A{COBWAT#@O{CE,t.{AO¨_WO{;@@qT\{BOAWè_O{CE,t.{AO¨_C_WO{4qAT{DOCWB_ACV@ @Iw.@i.@Rw.*@(4@@ @?ց@@(@9qT(@8BQx2@C446R {DOCWB_AC_x.@C5hR@ iRg_WO{CP pXR?@P@Ȣ@ ɢ"#(V  @Ȣ@Ȣ@@ @?ֶ@Ҩ@RquB}@ YHXRTj8|q`T7(K =@ 4jw8R5 Rj78T^9{EODWC_BgA_O{C@ @ ˀR1h@ hR r )|RrIT{AO¨{AO¨_og_WO{ C H@X@(@J @ Tw@ @?w@h@@9?qT@9 Q?qqT@Gҩ̬L @jRʅr)  hN@9qT@9qT2 :XR[  k8|q@T7HK =@ 5RP4ATR< =RB39CBR @` 4W u@@ 4X)@?T{IOHWG_FgEoD_ր"cZ@h@@?v@hQ0 WO{sh@h@(@q(lTR R{BOAWè_O{CYR@h R{AO¨_og_W O {  (*X@/@`T4 ;#\@ 5) ՗2 Ո@ @96T@ @?ր@@?qkT@9qT@9 * Qq9C9(+TȦ@9qTN@9qaTR@9qTVBRC@C$R|@Ru" | @@@#C@@hH/BaR?@B#!>0 խ@#3HR|'@+#@ @) x@@aR^@a@(@q(lT-x@qT%#@(@q(lT9hbA?kT@yC!H/B @?h@hR`R/@ X)@?AT{KOJWI_HgGoF_O{4H@qT6@T#{BOA_WO{?qT*}jjhK@kK!?ATa@(@q(lTs"T{BOAWè_{BOAWèR_WO{ )XIR?IR @\`R=`o`"= s>`Z=r s`~= s h:= hh# |`a T(R `YT `b@ҧ`h@h hLH  `P '`!P !`h@h7|`f2hR @J h @ @J h@ @J hX @k hY @ h@hhf@ @k @|)`hBhH@H(@(h@ @) 0 p p 40 AP բp Ap բ Ap P ~ap p x0 "0 rP m!0 hTRT 0 6T !p -{BOAWè_O{C(   {AO¨_WO{@`8@(X |8 H  XR?oP86  R@ R$ @R<h@h{BOAWè_WO{nh  4R{BOAWè_WO{(R,@tR&@R a@(@q(lTZa@(@q(lTSa@(@q(lTLa@(@q(lTEa@(@q(lT>a@(@q(lT7a@(@q(lT0a@(@q(lT)a @(@q(lT"af@(@q(lTa@(@q(lThN@hN`@@.B?tT`.B`6@?6~`" .B`@?~`Br.B` A? :.B`A?`b.B`@?~a@(@q(lT`b@@.B?tt@t A0@(.B @?֟ :.B?.B{BOAWè@_WO{,@Aa@ @a@R "@@v@@x@@@qTxqTl4qT@a@(@q(lTpv@qTg@qT`{COBWA_Ĩ_og_WO{C6H@V@4Q@8hX@:@?:@ @H>@? :@qT$@h5h/B@?h/B?a2@(@q(lTa6@(@q(lT a>@(@q(lT4h*@AqT`B `B h/B` @? :@h:{EODWC_BgAoƨ_CWO{6@@ @?֖@@9qTcs@B4 CV @`T|h.@ Fp @  T"Rq`T@(i.@)  CBR5@94 @@9H4  Th.@  `T%@AP h2@{DOCWBC_WO{(@ɵ  T5R"RFqTR@h{BOAWè_WO{ hXR?Lb{BOAWè{``@@{_`0@_WO{(@i  T5R"R qTR@h{BOAWè_C_WO{(@  T@ @?֗@#9@X46a0 R Ո(AT"@qT! @a@(@q(lTt R @@?RȢ Ո{DOCWB_AC_C_WO{(@  @TRh@ @T@$@Q@40 DRh@@@T6R"RwqTR@{DOCWB_AC__WO{(@(@H4@@ h@@? hu6Rh@qhTy{COBWA_Ĩ_֨@ qT qTq!T@ @@(@q(lT]R@ @ @@w T@ @{ @T@@ uQ_qT@ @D Ռmij8  觟"@ @?qT @` @Ɋ  T @ 'R &RH ן  ǟ  跟  q'R &R(jh@@(@q(lTRg_WO{(@ن  T `T)  T@  )v*R@a^3@ @?֗@cBRh@4C&4 R R@@@?֙b @@?֘ @R`{FOEWD_CgB_#m{C@`(}   {A#l_g_WO{C(@Ww `T@ @?֖@ٴ  {x4#AT@ 7@@?֗q觟Rha0  R{EODWC_BgA__WO{$D)  kTySqa q貖@6(3K}}@q+T*@Ɇ*@J*AT"@ "{COBWA_Ĩ_O{`@Hy HT hxX?#"R{BOA_og_WO { (@k "T l f  T Tb"@@ii8R5@@)@ @?֖"@@@?֗y4o<5@a@(@q(lTRt@p n@ qT R{GOFWE_DgCoB_g_WO{C(@  `T% T@ @?֗@60 bR1@4@#@qT743P ) R6@( R KTR@*>8h4q`Tq!TY`R2hRh@4a6 T@@?֙Rv{EODWC_BgA__WO{D7"@kT6*"@ kT @~@v @)q T@ywCR@y7@W6!p @a@(@q(lT+t R{COBWA_Ĩ_g_WO{"@ |qkTRjd?kT {DOCWB_AgŨ_og_WO{ Cu 4qT**@J@_T)!AT4R(4R5@@@ @?֨@ 9#T q  ը X!}@?qKT*yzz8@(@ @?8@5@4K7 QQ'9@7 HX =@5R4Q{QQ9ѹ57R7@)7R0y4K7@@ 8@7 (X =@5R4 qT kh8qq TQ9єѿ+T7R7@ 7R@@RR'@ @"@P9Z_Tw6QR8_aT9@{IOHWG_FgEoDK(TqKT*h@!@ @!T{IOHWG_FgEoD_@  _WO{3?5#:4{COBWA_i"@@2 k+h @ k*J KKk17qk.Q K_ kNﳏk k} rL _kJⳋq@IzTi@!({COBWAQ*@I@( kkT1cTR 6(?I@?kT Q  KJ} h_WO{4 R{BOAWè_֠@ HT X?ֿ{BOAWè{g_WO{(@ @ T  AT@ qT@@"@s"@7R@ &@ $q+ Tyya4@`)@)q)Tm@~@ J@ y)@yy(@q(T`"@(}@? T " @*yy *y(@* J@ "*+( k-T@9 R @a@(@q(lT6t RR{DOCWB_AgŨ__WO{3 @4@h@|@`)@)q)Th@Ry6M"4h@~@yw)@)q)Th@yv(@q(lTh"@ Qi"QkTj@IiIy7i@(h(y6h@ywR"i"D) k!T ySRqHh&  X`@}} ?`i"@ Rh@R@J@J)h@* j"){COBWA_Ĩ__WO{h  qKT҈ @y k+T{COBWA_Ĩ_WO{.BR?o=44.Ba~}?ր&{BOAWè_C_WO{`4@4R@(hh6  R{DOCWB_AC_g_WO{hA)8  i"@4i@*K}5ik1T4) )@?kaTh@Qi5h@?1  )Z ZS) R1T1T 1T4h@*)}  i)h*@h*U5?1Th*@Qh*h"@i@)M7(a)4h@*)}i){DOCWB_AgŨ_և}WO{(@)  !T"@hh7@?4(Rh@!@h@ @{BOAWè_C_WO{#4qT*@#H5@"TRa{DOCWB_AC_Cog_WO{ @' qThq K T5sA @@ HT/B?_@ 47 ^  /BR?o=` @h@ qkT@0#@4<W77Ȕ   XR?o=5#Ain4@H7@@ T X?_@T X?֟[4'@ qT R{HOGWF_EgDoCC_@ 7@a@(@q(lTRtRqT~P _ Y`_WO{(@  T   TRq!T 3R @4Ap P R@@@?֖@@Rh{COBWA_LqT( `_qTqTw _@w _PQ R}ɹ  ih_#mog_WO{  hcX@(@  T)w  T 3R@b"@ 5@@)@ @?։@@cJA  (\X!o\)P R< T6R"Rq T@@T6R"Rq T@*YQ_=q( T@ P Ռmij8 R RJK?qqHK9/Ț.HR)U* ȚI #R9#Ț R9+ȚRRR\ 0 T@a@(@q(lTzv6R_` @a@(@q(lThw@qT`@q-TbWO{!@eqT@`1T|@2-   @a@(@q(lT9Rt R{BOAWè_WO{!@<5@81T|@ (   @a@(@q(lTRt R{BOAWè_O{C!@4q!Tb@{AO¨7 R{AO¨__WO{!@*5u@@@" 4@ Q qT{COBWA_Ĩ_t@@@Qqh TiP Պ+ih8J @R@ ? q'qq'1qkqJq76|@@q?q *q   @a@(@q(lTv@qT~RR@qTa#m_WO{C!@@5t@@@7 6 TT@RqTK4346RY@Q!q T@P Պ+ih8J @@Q!q Tip Պ+ih8J @@@q T@q'%W"b @@ `@@a@`\ @a@(@q(T@ `l|ALa(axX @a@(@ Q) qjTRu@qT{EODWC_B#Am_ a#m_WO{C!@5t@@@ T6R"RqT@@?q@T?qT(\ R#RE@a~~ga(   @a@(@ Q) qjTRu@qT{EODWC_B#Am_֭`#mO{#R@a~~ga\   @a@(@q(lTctR{COB#Am_C#mWO{!@ 5u@@#E5@Q=q Ti Պ+ih8J @@a'@`$@a!@h`@b`@e`@|a@`@a@d @@e @`@`@`@`   @a@(@q(lTv@qT{DOCWB#AmC_@a`O{C)4{AO¨_a@{AO¨_WO{"@qTR.X5kTR R{COBWA_Ĩ_WO{A&A  ՀOi<)A!N?TqT *+@ ik8ji8 im8 i+8ji8 i+8)_ TR1 qKT{BOAWè__WO{$aV.B!R?`.BR?ҡ`J_Jj7!TR.B{COBWA_Ĩ@WO{As4 A))@  A ii8J J@ ij8  i)8 i*8 )@ ii88sqT{BOAWè_A5O{CR?lqMT?pqT?qT?qT! P  ?q`T?lqT   P A 0 @a@(@q(lTt R{AO¨_og_WO{CR@@9 `@@9kATuO@9kTr`qv9c?TJ@9~@H6h @k@TK ՚X9@7H =@5R^491cT@9qATt@R ihh @Kh CiURIUr} Qh& R{EODWC_BgAoƨ__WO{@ ո zv{&`4"T R hi @)Ki hRh&{COBWA_Ĩ_C#mog_WO{ȎA^*?!qmT! P S@a@(@q(lTyte ;@@q!Tic @ `T|C_R1qT-qT1qT#6@Q@kAT5qTqAT#6@k!T'@k#T@9RR#R$R@4/@"6kTQq TOq T7qT)R)!*R? j`T]qTaqTROq T7q(T)R)!*R? jT y?9q!T`@c9qaT0 $ rRQQ  R)'"A@9_k+T  )%ٚi6_k@T?qTqTRDR!i'@?-qTi?qTi?@?1qTi#"@(";R$R H  R(# E@9@RcR<@5@"@("({QqAT@H4Q@(h(Hh  R(# E@9h4 q!T@4Q@(h( @H4Q@(h(PA._@`) $ @j@k J ? Ta@b @a @?qaT@j@+@k+ !)  "@)"( @) @( Oq T@A 0 9R7q T(R!)R j T@@qT@kTR@QJU7kJT@h4@  =i P  P kHA p 3 P 0 p -@kT@ qkTR@qAT@  @ 0 k!TR   @! P R@ P 9R{HOGWF_EgDoC#BmC_(@ 0 }(`(R( (ih@' P |"@ш"a 0 gWO{_qT*v"@(@q(lT֢T X{BOAWè@O{C3 @h@qhT{AO¨_a@b@ X{AO¨@__Cg_WO{ gX@@@d@zn(@ 8#(x   Ȇ@Q@R@qT}zr T@qlTttt@@a@(@q(lTgRt@ ]X)@?!T{HOGWF_EgDC_u\Cog_WO{(4@k*TZQ>@ 6:@( _k- T@&{ |2@q Tvl p w 0 8f P չ p #RF>@&@ )@ !T#R:&@@q!I#R*&@i|b#Ri|H@H@ @?H@*@8_q{2CT@Wa p j4R{HOGWF_EgDoCC_֗@@@ @?@4a.@(@i@ kTA\  @a@(@q(lTtR*@(X@0@4@ af@{@B @@ @) @ @) w.2@q T҈6@VK;R+&@i|>@ TF)( Hk;&@@ 5; E@bqkT{@@ @?@{H@9qT'u.@&@h.8R"Ru.`A%@h.@%@H@qHTCD)4'+@4yX52C Th@ h@@( P @l5@ 8R@bh.@%@h."Rq@T qATh.@qh.Tt*@h@ha@(@q(lT@h @) 4RTRh@ WO{3 @h@qhT{BOAWè_h@q Ti@!iu)@)q)Th@B(T5.B`@?a@(@q(lT.B{BOAWè@__WO{"q,T# 0 5R!RB@@@a@(@q(lTv@  HR{BOAWè_WO{)x? qT@ qT4R"Rc  4R!RZ @`44R @@a@(@q(lTXRu{BOAWè_og_WO{C?q+T*"8Rv/ p ՗{ p A{y5A{y`4R9aT8R(R( (kT*N(5A(ˁ@V4@5"Tt@@a@(@q(lT Rt R{EODWC_BgAoƨ_WO{(x qT@? qTs p 4 @`@h@ @?`@ (X@xZp p 5R!R @@ @?֠@ZR{BOAWè_n P @a@(@q(lTt5RRuRsRRWO{? qT@375@4 @qDzT@3(`4i  5R!R{{COBWA_ qTt@@a@(@q(lTwRtog_WO{(R(Q q#TCd p 6R!RN @cuqT5@Cmq T5@#e@65qaT@7RQZh@@$9  d v @ 觟ן꧟V ן< v64Iq ( 6 xrT@"Rd@qT@@Td @IR4 R@(@T:@5@  T ըX?R@(@T%R6R4 qT4 qTt@@a@(@q(lTRt{GOFWE_DgCoB_6Rog_WO{(R?qAT@5 @36@q$ @zTL 0 7R!R @@a@ q @`T@ qT@ @? qT@*@_uqT_}qT:R* @J@_ qT) @)@?9q$CzAT @5 p 4@@@ @@4@ @*@5@_9qaTsqATR@)@ @@@R@  T"RqT@@uRy@)  T"RqT@T@xrAT7R"R^ @@?qTi  T   T"Rq T@   44I@@ h T ՈX?R@qT@qTqhT(R!)R jTt@@a@(@q(lTRt{FOEWD_CgBoA_y4z(5@xrT@xrAT @3/@Rd#Rb_WO{?q T, P 4R!RwHT@?qaTRR*U@ f"@kT@v@@b@5"TQ  K"@k TE"@kT@v@a@(@q(lTCRu4R{COBWA_Ĩ_g_WO{C? q T:R! 0 ՗! P x! p _k Tz35}@?kjTzyH q(kJT@5}@?kT zy@5zy`5Q?kTzy)h߿ |@|)a@(@q(lTRtQ_kATzz{EODWC_BgA P 9R!R{EODWC_BgA_Cog_WO{? q*T P 4R!R{HOGWF_EgDoCC_R'5Rw p    p u@@ @?֜@@9qTBR X4BRX`4BRX4 0 BRW4~@ 0 BRW5K qTzu{R R;R'@2'[RK qTkT}@uKqT4@A"@@47q T6  *Y{| Q}@qHTqhTJk ՈIit8 @5*R`5  @'@Aq!T@@"@@@74H@ kTRkT.  42Y[h kTb,  4 QHh p t@@a@(@q(lT۾ty{HOGWF_EgDoCCRzt P O4RKO{CH "Q1@a@(@q(lTtR{AO¨_WO{?q Tc p 4R!RH@B@#Q#RU75@u@@a@(@q(lTRu{COBWA_WO{?q Tc p 4R!R_!A@T@ qT@`44RQDXh{BOAWè@@a@(@q(lTPRu{BOAWè_og_WO { ? q T? q!T75R{RQ7< Q{RZ 5RH w3%R@ 5O@)qT~@jh8J @(R;.(R+?@2?'?@2?R"(R7;(R7 {w6{v@  T"Rq T@m!T7{wkT(K q*T  5R!R7@#՚a 0 @a@(@q(lTt5R{JOIWH_GgFoE_7@(4    [BqTa  o@@qq+TRtQ{"@@T@#(@(( @:@@%R- 5RRqhT0p ՈIit8 ւ@#@@?@}6V@#@?@q@#@?@;@h47@*4@J.~@Im $ 7@(4T@kT@4T#@7@h4 @(@q(T#Z _k@T (@77@H 4 @7@h4 @@a@(@q(lTRt@b(@q(T5R@ @S;@h4@*ݼHc   @a@(@q( @lTRv  @ @4R@1_   @a@(@q(@lTļRv3h@ha@(@q(lT{(@q(@ @TR@qlTWO{?qATT@{"vhV   @a@(@q(lT}Rt#k 0 5R!Rd{BOAWè__WO{?q,T p 6R!RO=@R`@ q TR 6RHS  7R qMT*B †@ aT@y4706R @a@(@q(lT$Rt{COBWA_Ĩ_WO{?q,Tc 0 6R!R6@@ qT@ @3( 4@T6R "@@_kT6 Qb@a@(@q(lTػRt{COBWA_g_WO{C? q,Tc P 5R!R  @35@#@45R{EODWC_BgA_֖@"@@2 k*H @_ k)* IkkT)1cTR 6RI_kT+Qj KI :} k8È@Q"H "K@8M:@a@(@q(lTmRwog_WO{C8q,T# P 6R!RG ՠ\# kw?O :qaTZx@ q T#q 4=;R6 |0 4RweR 5@?%qT~@ki8J @8641k TRzw(c)HRhR$k Tz{"@@)o;R5{kTzw@)$  T"Rq T@ TkTx KT"Ԛ 0 _# 5@a@(@q(lT̺Ru\@" d@qTR7- kT#5dqTR(@ Ԛ9 ?kT@a@(@q(lTw@q Ta p A 0  P J@a@(@q(lTpt6R{UOTWS_RgQoP__WO{?q,T P 6R!RED@ qT6R"R9R`@ q T{R #R |7R*B †@aT@h476R @a@(@q(lTRt{COBWA_Ĩ_O{C!q TCz P 4R!R qaTA@B qTh@h{AO¨__WO{?qTw.@@@@ @?@@9 Qq IzT@Qs  !R  qT#q  !R R{COBWA_Ĩ_`. qaT@#w.{?qTA@{c7 p !R R{_O{C?qaTsR 0 3R!Rz{AO¨_O{C?qaTR 0 3R!Rj{AO¨_WO{)x?q!T&AqT g P 5R!RN*@ @@7@qTC@@a@(@q(lT8Rt5R{BOAWè_WO{?qAT@(@q(lTu@@@ @?֨@4Rh@ @)  #g 0 5R!RR{BOAWè_O{C!QB @a@(@q(lTtR{AO¨_og_WO{;Q? qT <Rx` P y`  Օ@g4 @sq!Ta@[4 @ @] p R4 @ @\ P H4 @@I  T"RjqT@\Z Hk,TX @<R8Rk TkT#Y 0 !Ry@qTyq!TuEh.X P u.wr)kTZ{@a@(@q(lTitHR{GOFWE_DgCoB_ֈ @R 0 ޾ R_WO{?q+T7a@^QW5q*TP  5R!R$*h@5 TR5R{COBWA_Ĩ_WO{?q TM P 4R!R!h.@ @h4*U Ѵ@@@ @?ֈ@ @9?qT@9qT@c2@5"ATR4R{BOAWè_Cog_WO{(R7q,TL 0 6R!R{HOGWF_EgDoCC_@2 ceR4@1 {HOGWF_EgDoCC2@_Wq(4T{ Չ yzx) ֨Q qTM  2qA&T_Sq2T_Oq5T @@@ @?ִ@ X!R ?qa#T @_qA7T(UQq(T9R\R/ 6R|SERU,5@ @h4 q ,Tzi@ɲ  T"R.qT@ (R { qTq$T A@_qA1TZ/zq#T @@@ @?@@@@ @?@ @ٷ@շq-T@X75/@2 k)( } /_7q,TqT@q 7TqAT @" sERA44  ՚q Tq2T@9 p 14Zw @  Մ= p eR 15@@ @?@@O4/@9q/T uXc Պ+yhxJ @@ [TRq![TQ q&TC/  ^q-TqAT @ sER`94+ 0 Nq$T@`)5h |@+Tт @ v@a@(@q(lTRuqT @@@ @?ִ@ (X?֠R9qTR@ wN8 ?kT P qT@ 5 @@@ @?@ @#@2 k 6+#D)Tk(T( @@@ @?ֈ@k>TB6"RqT @9R5 QN(u@X _ q T4a@h# P պ p շ_Kq@T_GqT_CqaT @%T@5R<#  ՘ @@@ @?ִ@ iX!R ?"R @@@ @?ִ@  X!R ? #@ RJŵLN@@@ @?ր@|@^u`T_;qa T/D@)4`)4k,)T~@|@@9QA(@9kTM&4Q7 A@q T@^ p % P " |qKT*B т@aT@a@(@q(lT{Rw p ARb6R @u @RdRjR 4 4:k Tk T|@X9BM`4K kT2@@@ @?ִ@u@͵w@@@ @?@w@5 A?qq_ q}@u |@@q A*@qbA"@t 7@@ @?@ϴp | 4ҟqKTR6@h@ @?|@kkKT4?4Z _kT@R @KԵB . _kT Q5@K4@a@(@q(T.! p R@a@(@q(lTxtqqTT~@T(R   @a@(@q(lT[RtG S յ;X% ;X" ;X: 4 5;X ;X 5;X U;X  8X  Օ9X յ8X 9XqT@9?֠4aTH  (R F   kq6RT K@qJ#m_WO{?q,TC 0 5R!RO? q!T @@)A  T5R"RqT@w<7RRqT@@4/Rd  Tbba?   w ך:   @a@(@q(lTt  R{DOCWB_A#l_#mg_WO{C?q T  5R!Rn{EODWC_BgA#l_? qT @@I3  T5R"R1q@T@T }R} HRrRҁ@FR5?TRa@7R5qTbba&h1   P 6. X  P  Հ \hX   ڳ% X A P dzܲX @a@(@q(lTRtbWO{? q+T 0 6R!R"?qT@@i  T6R"Rq@T@@@a@(@q(lTvRt2R{BOAWè_R2!R.WO{( Q qT p 4R!RA@? qTC @@a@(@q(lT{Ru{BOAWè_WO{?qaTA@@@a@(@q(lT^Ru C p 4R!RE4R{BOAWè_WO{? q!T@Ľ @ @) @)@)q)T6 @ @@a@(@q(lT)Rt  P 5R!R5R{BOAWè_WO{)x? qT@ qT @URC 0 4R!R @`44R @@a@(@q(lTRu{BOAWè_WO{?qAT|@±   @a@(@q(lTɱt`b@ @.B?ubUR 0 4R!R{BOAWè_{? qTA@{ĸÝ p !R R{_og_WO{9q,T p 8R!R@w d P %Rb`4@ 0 4HRqTc 0 ARc8R@Iq T#R P  +ih8J @7B Q@q {FOEWD_CgBoA @b8R#%Ry1TqTZy} q,T#  qlT# P qlT# p qTÕ P ռqA T @ 5@!@1T @"4qT @{FOEWD_CgBoA qTRSqlT 0 ՕCRQ qT 0 Վr EzIR‰}@zh QBA 0 Ʊ p #R {FOEWD_CgBoA# P f @qT@ 0 ^ @bQ8R#%R5@@a@(@q(lTRt{FOEWD_CgBoA_ց @bZy%R{FOEWD_CgBoA @bRq @b#R7q~h   @BJ @Zy8R"RʺbQ8R#%R5@u@\4qkT҈ @qT k Th@h@ @?h@4@`5R@h/B}?qTJ@ )Tq+T9@zuR4zuR|zu{9Rs klTh/B? {FOEWD_CgBoA~@!@q}Axg_WO{C?q*Tct P 5R!R57Q?qaTR"RVI @eR5@222qqJ q5#9Tw#`45R@@a@(@q(lTȯRt{EODWC_BgA_g_WO{ C X@'? qT@"o  B(RQq qaT7RXR@b? $_ P CeRq@4@'@ iX)@?NTb= {IOHWG_FgER@?[q(BT(R w P Պ+yyxJ @qT @5R"RK@@@24?;qAT?qAT915@cf P 5R!RNH R##j p _R"RqF_ 7g 0 cHR{ q T#4h.@=@@@ @?@h5qa#T @5qA%T @R~ q`+T q Th.@q@-T q! Th@    HR{ qT4h.@=@@@ @?@5qaT @4xRa\  ͯ'@  X)@?a<TQ{IOHWG_FgECY P AR5RyQ qCTC[ 0 a[ P < qTaf@@]q%Tq&T@@  T5R"Rq+T@ @@@ @?ֶ@ @@@ @?֢@@ @)   h t@+aT 0 m'@  X)@?a0T{IOHWG_FgE}qT q Ts  6 7 g\ GzuB?"TSȖ  U 0 @@)@A'_RbRmE_hbAkTh@vq T @5R"R@5 @I  @#T @@  )qAT @ qAT @A P 7a#* @U4qThE Thb<   @۱$@_9߂qq *   @a@(@q(lTuqTqAT@_"R#Rqn 0  p  @a8 P  @@   T"RqT@ h.@ ) ?lT @@v| T"R{q`T@ w@  LT @(@ {  T   Th5Ra/ p ծ @@w T5R"RUqT@q)Taq P 9c1 0 ՘h@AC ?@a@(@q(lToRt'@ ^X)@?A T{IOHWG_FgE_ @@  $R;(`5 t@w Yu(@9qT2*h.@<w@9 @"p  j   @a@(@q(lTRv@4D ? `T%@i2@ T)@Y@~ 0 W  `T@i    t  @a @ 0 X  P @*@0! p |@ @h@5@uA P mj @ @e  _\h.@  pX PWO{? qT?q!ThR@R}@SR   @a@(@q(lTZRt@ 3eR-45R P 5R!R5{COBWA_@ @q`TR@ qTqT5(R@4R@ @  og_WO{(x qT@@@ @?@@h4@ qT  ՗R  4R!RR @@@ @?@ @ӫG  44Q3##A) kTZ Q5 K995K=4;R/ Q3@%Qq(T7H/BwR?wRB@h"Rmz(h(R!R\l)W@5H/B?֨@a@(@q(lTvRu{FOEWD_CgBoA_WO{(x qT?qT"2 p #R 0 5R!RE @@@ @?֢@@@%@a@(@q(lT=Rt{BOAWè_WO{?q T p 5R!RH@)QC@ @a@(@q(lTRt5R{BOAWè_og_WO { ?qT P 5R!R'W@@S  ,T@Z @?@@ @?@@@?qkTR @K@8q)T(R*  ) ( y -X}@ ? BB@q$TRW 5BGO @  H@9qTH@9qaT?q9~@4*_bTI@9?qTK@8qAT j(8Z _cT ~@j(8[Th@9qT[ @G@#3  BqTK{@1Th@9qATO@OZ4_qkT@(5Oh_1AT@Gz9_oq!Ti R q94  @8_yqaT R(9j/@8&T@ 0 R,B{VAu9Th@9(q9z9 p RB HqTqTh@|._uqT)8) +}`@) ij84uqTi*8kJuq! Tk`j+8+ lQ kTRk}@LA) jm8ߵqT8}@/ j8kTj18j/8.R  KqTR 5 ( u@9qT9z_cTA@q T@ @_1T@_ kT)T@7{#3  BqTOhK{@qT@?"TW(   0    p  ( 0  H p h 0 h 0 @ @H @@A@Z@a@(@q(lTtE'@?q@ T !@) Q? k*T P +@5R#RTT@@@?k Ta  H   @A@(@q(lTORTT! 0 @A@(@q(lT;T5R{JOIWH_GgFoE_ց@5R#RT"@4 "@q+TRR@b@@@ @?ֈ@q Ts!@@Mq9##T5Rs~@ߨ    WO{(x qT@@a@(@q(lTڨvqT @a  p !Rh@h R{BOAWè_WO{?qTA@C @@a@(@q(lTRt c  5R!R5R{BOAWè_C_WO{?q T@#@5@ qTBnh   ~QW #  5R!R\t@@a@(@q(lT`Rt{DOCWB_AC_C_WO{?qT]?@4(   @5"R@@K@U@?q+T P 5R!R @@@ @?@?ܨ@a@(@q(lTRt{DOCWB_AC_ֿ q,T@  y5R @@@ @?ց@O{C?qTT@@@ @?ց@nq P 4R!R{AO¨_C_WO{?qTT@"@@   qTQZu#"RIѵQT@a@(@q(lTRt0 5R!R{DOCWB_AC__WO{C (R(Q q#T p 4R!Rcb@ qAT#4R 5@(TRMH   0q+T*8  ?` c"RT@a@(@q(lT@Ru-CW5 @#R`5q!T@K5@tkT?T?Ta~ P @a@(@q(lTt4R{EODWC_B_4RUڟV ɚw2 CWO{(Q q#Tcy P 5R!RW?qT?qT @C`5 @c5 @C5@ @DT ՚@#R^@h*T ՚(s  @a@(@q(lTt5R    @a@(@q(lTRt{DOCWBC__WO{,@ @I4?qKT%@@6R"RW`@RQN@Ri P 6@a@(@q(lT\t6RR{COBWA_Ĩ_WO{!q Tcg  5R!R5%h@hB eh@Qh@5t@5R"R`h.@I@@ șXR?h.@I|h.@I@@ȥR{BOAWè_WO{5q TC`  !R$@"R @4@B@B@B@QB{@[ p p R{COBWA_g_WO{C4q,T#Z P 4R!Re@"@ y? qT qAT@"@ qkT@ @ @V p @6>:@:&@i:&@ZCT9Sp S0 ,TP y@a@(@q(lTuWp aU0 (@q(T ՈX?PP   {FOEWD_CgBoA_*7O{C(@(@(@q(lTet(RhK"@ q Ta@ Q@@ @?ֈ@h5(Rh{AO¨_og_WO{8@h@ @?x@|@u@@ @?ֺ@@5,  չR4 c&@{4s@ {K?kT~@ wK5TK@" @Ѡ{GOFWE_DgCoB_og_WO{bZ@@ @?ֺ@@z  ռRh@h@ @?h@u@~@ 54jK c@{4s@( {K?kT8a@ @)  Ti@? qT@z @ |?h"8i@ Kh{GOFWE_DgCoB_WO{(@9h43@t4;X6)s @9(59{COBWA_og_WO{ C'R0 3tEh.A5P t.q# TQR56R  {v@@ @?@Ap հ74(@9q TMP bR7qhR9BR7@h@5@{{74{#!T4(R!ۚ@I( qT#@@6RRkT@ERhB@+hBTi&@iRwhB@#@KhBtEh.'P R~ t.~@'@4kT!   @w$Bp %R 5~@7@ qTkTh4 v{v:#@_qTR{v$R59_kTR@& T|@6#@q TR;@?kq5?kTkT@#@V  *R#@  _q@#@  լ T5t {ti(#@qT(@@{t](#@qT(@@ @ @k+T@c@k*T{w kJT{h@qH T(%՚67"  (7qTh*@a&@?7#@-5R kT@  '@Yi5R!R{IOHWG_FgEoD_'@5t&@    @a@(@q(lT w&@@ @?ֈ@4b@=q(R 4 @@ @?@4ӝ   !P  qATh*@}@v  X P t.X q @T ~b@zAp splܥq4v@@v5@a@(@q(lT|v@qTs'@h4G~@T(r    @a@(@q(lT[Rt2(RH5O{C@h@ @?h@i@? q T @9?qT@9qR{AO¨_og_WO{Co   @@ @?֠@%p ՚5H:C@B@`?9@?kT@yZT @`?{EODWC_BgAoƨ__WO{ qaT@R4`7{COBWA_Ĩ_ւ@{COBWA_ĨC_WO{qTh@4A AqT `3#A)Ru4o@q,T{DOCWB_AC{DOCWB_AC_O{C eX @?{AO¨_WO{( @@ bX?@i4v  h{BOAWè_O{C @@ә`4`{AO¨_@!@4?qT9 R_?q(T(|S29R(39@R_(|S5(| S 29R R),3 9(39`R_R(P39R R)D 3 9 R),3 9(3 9R_(R JR lR qRq?qIr_WO{64qkTR3sB Kq,TR{COBWA_@9qT}qT @9*_qTS)(*(q)T@R_qhT @9*_q!T @9KqTS) *I *(qT`R_q(T @9*_qT @9Kq!T @9lqT S)1 *I *i *(}Sh4R_@9( R_WO{4R3@  B6sqTR{COBWA_O{qbT R   դ #R2`R   $ 3R2@R{BOA_4IRjRR!Q @9l87,R   ql߁qLq, !5K_{?qTT * ii8j86J_qT) _qT R(R K{_ 2qhTi2@  !R{C_@@qT* ՠRu2`@y_{A_qhTG2{  !RO{CqcT`  ARq`kT{AO¨{AO¨_@)@y K_@)@ kbT_)@ k_O{0obab3 h6}~2`!Rh@i2*j2R[r y)3RI4h@qTR`RR` {BOA_` @??(AA @4 @,R Kq j5 @_qT_!qT @*)Ri3@9i7R R R mR}@ m!qT yn4p zo5 kJ1)1 @4qZ +aTRj)C_WO{(RH4h@ @9?qT @9?qT hh@wARh@i2*j2y)i2*j2y)u2@34 Q4h@ I}@) yi j 4qZ +T 3RR55yLK Kq y)@@*yrI(*h@ @9?qTh3r 4h@ I}@) yi jL4qZ +TFqARVh@i2*j2y)i2*j2y)i2@) Q j}@J yj k4qZ +Tm K+ Kq y*4j}@ kq!TN }@kyk l4qZ +T K, Kq y+ k@4 yjqkZK +Th@4 i@9qT @94qaTRhRRh {DOCWB_AC_WO{@$@T`R{COBWA_ @R[r? kATd:c.bbkR)R &Rt" kl4k}@y1qaT 5qT,! r`TR  j T m  -yl5 LR +Ti4yih@W`h@iB))}@ h@l6h@iyih@E R Rt*h@h4U 6/a@4h@4o5a@h@) Rb5@943V XR4 RO5@9(4h@96AR1`t*RvWO{4@9h43@ kT{COBWA_C_WO{4@9h43@F@ Q kTK{DOCWB_AC_O{C$`@qT`.@}R0!R4hB@Kj.@kJ@hKI!) R{AO¨_{CLqTip  p  )Y`bP !1|@{A_@^0og_WO{?ARRh2 i2RjBIy(h2 i2_y(h2@ QR@9H4qTqT3@4`@@9 Q? qTq`Tq!T@x7qTqT[RBR1@`@?T(@9qT4i BR1@*@9_qT`@ qqHRr@b HRr? T[RkTq,TqTR0`@8qT`rhRRrHRR!'h@6])qW5ARuh@i2*j2R y)i2*j2y)i2@) Q  j}@J yj k4qZ +TmK Kq y*j}@J yj x4qZ +Tm K) Kq y*h@`@9 Q? qTqTqT@(*|4h@I}@) yi |4qZ +TLK Kq y)K *F<5ARh@i2*j2*R y)i2*j2y) RRh ;R[R{ R{FOEWD_CgBoA_O{C$F)  k TyS4@}~/`{AO¨_og_WO{@@#h@ u @qT Q?)q T P Պ yixJ @TRARh@i2*j2y)3uqLTqTmq Tqq;Th9I _YqL)T_1qL2TKQ!q9Tʘ  ՌMykx ARh@i2*j2Rq Tq`Tyq7TARh@i2*j2*R y)i2*j2y)h2@ QRR(55RRh 3!RA4@R @(*ARvh@i2*j2jR y)i2*j2y)h2@ Qo@9AReh@i2*j2zq!TR y)i2*j2y)R y)i2*j2y)h2@@9?tq`T?qT@8?tq!T@ Q!R?h@i2*j2y) @8?qh:;p <P 43 @rqT9q TqTqTR7Rhkw8!TXR"RR R RR"Rh@97! RBR!RB R?3 @rq T24@9qT@94uqT  @_pqT@/4 @?pqT@9h/4 R:nqATqT.  yz /|@/4Z_3aT@9?tqaTv`) _/qTH@Ky P )jih8) R|@9 T@9h(4 R@! RBR! R Rg!RRczRR^RR!RR!RRPARRLa R RHaRR_qT_]q`T_iqT_qT?qRAR`h@i2*j2y)i2*j2y)h2@ QR"R,hRR_q T_q`T_q T?qRARBh@i2*j2y)i2*j2y)h2@ Qh@97! RBR!RB RR"R R R"_5qT_MqT?qRARh@i2*j2y)i2*j2y)u2@R6Rwmp jv8!T Q!Rh@i2*j2y)@2ARh@i2*j2 R[ARh@i2*j2*RR5RR\|@hARh@i2*j2 R y)i2*j2y)z2@w@@94Re0 նe0 R-@h@# @sq!Th@794Rr- # @ 4  Rh@~@w8 Q? qTqTq@T!Rh@i2*j2y)9h@w@9h5R59R!Rh@i2*j2y)h@hV Q!R~h@i2*j2y)@?qiR) *{FOEWD_CgBoA_ARgh@i2*j2RRHRHR R WO{RQ@3 P2@K}~-@3}@32@2`{BOAWè_WO{4`@`{BOAWè_WO{UkT!R@2*2y)!R@2*2y){BOAWè_WO{8(qTQMq(TB P Պ+ih8J @hR84Uq TqTR1R/HR-R+(R)@9qT` R(qTB @9qaT@}S5hRAR  RRR qB RK{BOAWè_?qT R* i8lQ)qTlQqTl]Q *lQq"TkQ1Ti *_kT @4I_R_og_WO{$45 P  ; XRh@~@z yz4y{*  KqTR`&@h@;i@9y{?GqT RzyxJ @@i@9I64)qT@j@97i 5@k@97*5~@k@9K75y(tq T ph @h 4 ya!5^h@9- 7hD Td@ 4a@@qT =@ 47hD *T@i@9i75WR)4?)qaTLRJ)4_)q)Tl +yl(4) )!,_  kdJzT+@K5:R*'4_)q&Tl +ylK4) )!,_  kdJz%T+@K5i&@(("R*`5~qA$ThD iT8@h7 =@ 34*qT@q(T =@ Rb&@h@!7h&@A h&T5uR*R5~qTh&@8@7 =@ 4R* 5~qTR*R5~qT?q`T?CqT!R( *yzK _qT}@*j_!qaT) 7 @aA)u&@@ Qq(T| P Պ+ih8J @R9qi@9(q  *?rq`ZzT{. 4 A) kT4 R(Q)qHTu&@@4h@y{Aq TQib@ kTi.@(( @R @ k,T?7qT(yz  q5@t&@ 5t&h@ 5)@4~@ yj_q)Z5+ TRuqTj@Qf_q TR@h@3@h@h75S?q$Jz Tj@Ky| 4J J!L_  kdIzTK@K5C{ kT:_qKTRh@3@h@h750?q$JzTj@Ky|K4J J!L_  kdIzlTK@K5{ kTRRh _qTR@h@3h@y|@ k!T{ _kaTRv&kJTR{FOEWD_CgBoA_?/qz(RZ?/qTkTkT*q `&h@#4h@9 7 @kT`5  kjT 5@Qi@(yz4)y{?qTKu&EQib@ k Ti.@(M( M@?1aTiB@ K R O{d)@*P Ϙ{BOA__WO{'`0 )@94AR])`4V @94*_8qT' #R7P 1R*@**674<*@a@(@q(lTu {COBWA_Ĩ_{C(AR)R?q!6R){A_{CR){A__WO $@)_"%Tk ,R- nRR0o   4h8"4q,T~q,T&Q q*Mz T_rqmTvqTqT q T#q&qTsP&s@1T*t@1@TqTqTq T qT# 1T|ghgQq#TQ7*t|thtQqTst@1Ts @1TqETq@T nqT?kbT *&tN  1 T|vhvqTu@qs|gh3 qT!ԚTvqTq`TQxqHTsbT'hs85c ?kT *) f()|)jQ 1@Tf @ }GBT4ht8rqT4qAT\uT6h8ԾQq!Ԛ @T4׺Qq(Thw8 t uv "T6hv84Q*qTQߖq!֚Ě@ Tv 1CTs t TRߊq TPQQ 1 5LjQ+u|uhukT GgsQ&t_1Tt@1@TQsBTCkBT* j N)S}) _1Tj F @F   J _T )Q7 *iP))@?1Ti) @?1T qTT @ OBWA_è_4_O{qT4qT  0    0 AR({BOA_O{"R8@5 @   `Ta ז{BOA_@WO{e  {BOAWè{@@{_O{C Bb 4R#R 5 B 4!0 Ղ ,a ՂG $  X@$0 p R'R^ ը X@ĵ0 Ե R'RP h X@DP R'RDR{AO¨_Cog_WO{ ȫ X@(x qaT@[qT @V p 5R!Roխp @9qTp  zuCaRȜT@9]q`TIq!T @ˣq+ TRRr  p \  Ձ @C%R^`5@ qTr  5h}@{h*9k!T6Ry'7&@&&@ RR5R@ ɚ X)@?aT{HOGWF_EgDoCC_&Z&og_WO{C ը X@i  ը A B @(R+H@?qkTRRT UR9RRi  Հ@@9qT@c%R$5@qiqU8{Q" q T0 5R!R@0 %R̶4@ew@@a@(@q(lT܎wqT@i@ /@)q(TZR6RɅ  ժ+ih8J <R@6R<R5R;0 @a@(@q(lTtR6R5R:R) 5R"R^7%`@.ZR6R<R5RZR6R<R5RRZR<R w6R<R:RRR:RR& 7;4aR%2R%c57RRR&Yc%4m%@&a0 jwc` 5Yc%4 4W%@q! T\7R&4N%@&aP Kx5!RZC5c R!RR&7@0 ՅK  c$R+x5c#&4ҩ)@C@D0 զ Racǎc0 եF  աR%@Z&P n9%5RZ թm X)@?AT{EODWC_BgAoƨ_$WO{ j X@?q!T%4\4Rj0 4R!R @ >  R@ f X)@?T{COBWA_־$g_WO{ ըc X@ 7$ h@h#R%#I(@(  H XR?o=d$7(RAR$4  տ"b D #nߒ@a@(@q(lTEt@ Y X)@?!T{GOFWE_DgC_$$L$og_WO{ U X@@ 4@@@9@q TB  6R3%R`5@q T5@@H R8RcRRRʍ @9R R Hq"@@c?q+Tc @TA6  5@@?R|@O4ʌ@Cu5 @RR"4#, @q+THh8)qTѨ@?i(8@a@(@q(lTRuAXP  R7RqTUp e@a@(@q(lTt6RZ iB X)@?AT{WOVWU_TgSoR_֘#og_WO{ (? X@@A@ qaT@ 5@T/ R#y^  #ˉ@)@A;bÈ ?qT|@@@?kT@ZT(@;R!R?@,T#T(@?54 RZ I5 X)@?AT{VOUWT_SgRoQ_B@a@(@q(lTRt#O{C@@x#@|#|@'@a@(@q(lTtR{AO¨_o_WO{C ը, X@@"@tR#@ @# R?#5$4)}@# kc8?)q` T#Ԍ"@qT@@?@4 +4Rp8R!44@ۓ`5q |@j!@  4 R @a@(@q(lTuRt[ թ X)@?T{UOTWS_RoQ_#R~"WO{@?qT@"p 4"@3@@@?@kT q@T@@p "R?qaTR@ R{COBWA_O{C@@""|@Q@a@(@q(lTtR{AO¨_C_ W O {   X@@ RA@Co4 R\ i X)@?aT{LOKWJ_IC_ַ1  @ @!?@h" @c3R#"7"8@a@(@q(lT̊v qT@@c@?XR!WO {  Ո X@@@@<@#BR`4 R@ @" @)B|@#R"7|@Ø@a@(@q(lTRt] թ X)@?AT{JOIWH_!_W O {  ը X@@ R@#!7qT@@#!5 @P F GR R\  X)@?T{KOJWI_H_P!O{@A@#5@ @!4Ҽ R{BOA__WO{C@4?qAT[RR  @ @)Cs!5 T@q_cT@a@(@q(lTډRt$  շR@cB_;"4bT@0 L T@s!5@C*4 R{EODWC_B_ @@)sR!`7R@ @"p O{C@p@a@(@q(lTRt  R{AO¨_O{ C  X@@ R@#+!`7@#T@a@(@q(lT`Rt R^ i X)@?T{IOH_m O{C@@ 1`TR@ R{AO¨_O{C@@@?qc@a@(@q(lT%tR{AO¨_WO{? q!Tv@ @  5R3%R5@ qBT@qQ! 4қ#!T@qT@2@${COBWA_Ap @a@(@q(lT݈t5RRWO{@?qT@0 c4R@#r`4 R@@\ 1TR{COBWA_ց@p I45R@E@0 =`4URO{C@@@ ǖ@a@(@q(lTtR{AO¨_O{C@@@@(@q(lTttR{AO¨_WO{@4A@#ט`4 R @ @qaR3R@aRS@a@(@q(lTCRt{COBWA_O{C@`@`@R{AO¨_O{@A@„  3R3%R5@ q Tq`T5@BR @R@"RRY R{BOA_W O { @@1T4@Ґ R {KOJWI_O{@?q!TA@0 v@4!RRhR@#D1T5!R @5qT@qT@a@(@q(lTRt  @ p 0 R{COB_O{@IR@#Rqĕ@a@(@q(lTtR{COB_WO{(@@?`4R @ @?4@{BOAWè_O{@P ލ!@a@(@q(lTGt{BOA_{@@{ O@{WO{@i@qT{BOAWè_WO{ Ո X@(@9yqT qT 0 ի LQ} q"T&3h R39"RcR3i@y Z}SP R33@RR3X@y Z}Sp R1]  X)@?T{GOFWE_g_WO{ C?xqT?q T?q T(R9 "P  R"Rh{AR'AR `!K%!1:uP @9mqAT RK6*  o =R)c#4gp 4R'P ݃o =HR)c 4  h X?!P ڌ4R"@@@E@@hR  Ո X?@@@4@@h  Ո X?R{IOHWG_FgE_O{ C ըu X@ R @#7@#Ҩ^ is X)@?T{IOH_%g_WO{"@@RTRcb@@&@RA@b@@a@(@q(lTЅRu @ @b R{DOCWB_AgŨ_WO{(@qThR@97@24=a@(@q(lThR@9h7`@ a@a  † X{BOAWè@{B|@@!R4{_{B|@@!R{_@O{C@`4`@5@q T|@qTx@qTR{AO¨_p@q{i@{@O{C RݭqaT4Rap բ 4R#R`5Ap " 1  MR{AO¨_O{CA@Rsԫ1Q@a@(@q(lTtR{AO¨_WO{A@RQqaT @bP 4Λ4$ 7@a@(@q(lTtR{BOAWè_#RdR{BOAWèAWO{A@RqT{BOAWè_ւ@#R$R{BOAWè%C_WO{U@7@RV7@qTڄqTR#R R @ě kT@ƌlP K@a@(@q(lTqt R{DOCWB_AC_ց@{DOCWB_ACO{CA@R7*ҁ@a@(@q(lTCtR{AO¨_O{A@R{BOA0@ac  R{BOA_C_WO{?qT@fP 4@RĎR{DOCWB_AC_ց@RQ3R?@q+Tҁ@zwR5 @$ @kLT@%/0 @a@(@q(lTЃtO{C R]qaT4RW0 բ 4R#R`5U0 "   ͉R{AO¨_O{CRHב@a@(@q(lTtR{AO¨_W O {  " X@   =A@C0`4 R,u7)Q"q@T @@4c8cG@@ R/@a@(@q(lTURt] թ X)@?T{KOJWI_LP @a@(@q(lT8tTO{CRЀ_@a@(@q(lT!tR{AO¨_O{CRhjt|H G!H@@a@(@q(lTtR{AO¨_WO{ҏu7sQ"q T@Cc@r@c[`@94?P @a@(@q(lTʂt RL@4(RI/E)_q(H _ q駟i K*)u_qI룐Rk=r)}+,)g) 1*) ,R} m̌R̬r}, a-RK}ke;D)}@  ,VRLr(!  J H! iRr K R} R/Cii% ) 0R*r%*c@a@(@q(lT~Rt{GOFWE_O{CRhHhc|H R!H@a@(@q(lT]tR{AO¨_C_WO{?qKT  Ձzx3eR 5@q T5@4 @ł` kTR R{DOCWB_AC_WO{ RqaT4R1A)p Ղ 4R#R5   XR?|'p " Ք  @% " $0 1 R{BOAWè_Cog_WO{5Q6qKTt@Zu  m`4"c҆`7R;@4*!GT@a@(@q(lTw   X?R"cT 70 Ra+@?1T7R7R}!0 .7R!0 RK@@?q-TRx@*RvP /@4{TRqT/@_jT|@Ȋ5R  ը X@?@47R  h X?'@1TR%'@a`7`5  7R@qT#/@q+THh8)qTш@?i(8@a@(@q(lT t{HOGWF_EgDoCC_O{C(@q(T{AO¨_  Ո@ @?ւ@{AO¨@C_WO{@?qTh@qTRu@R"@9h6@#"R{qTh@Qh h@"7T@ @ 2Qq TRN?q+T@ P NqR2k!TZh#`43R5P 3R!R- @A1`T@a~@@6@(*rT @&@@(@q(lTsR{DOCWB_AC_WO{?qaT |@@a@(@q(lTTRt#0 5R!R;{BOAWè_o g _ W O{@  ը@)!}}?tshoHqC TOgs7R(R9R#}@t@9q Tq`TqT@8q Tq T{sQhRJh@9q!T/@8q@ Tq T(RO W4aP R`5k@TC@kT/@/X(> @8?qj +Hwkk8qK@8qKRig7@95tkT{tO7qs@g@(s7@+@HRO.@8(5O5skT{sHRs?@8h4kj TkT s5skT{s   @X4P R,`xzr @j2JJ}Sj~}A( ?3q T}S P #RѓZBRȓZ Z T+@#@ @7P  @a@(@q(lT1t!p @0 @@a@(@q(lTt  ը@?Cz(95  ոXg@9#<6O@ qT q T"R1@ TÙÙ TR D 7E7@ qOBs@T7@78SOBs@T 4P t;RCs?q71aT@&7@A0 @9R;(17@!T@P 'R;R;  9R;OB@3or)o q@!T!p 4@7Ou@3 @"R(1TO`iqyO1A Tr@0 @݄R;#@@1T`@1ThY1@TCY1@T;@H4*;@@1T!RAsT@;@?_1`Tx1`Tt1`Tp@?KT@?J{OONWM_LgKoJ_O1TcO1T@/@!}~?;q TR*/U P k T*@738/@8tzwJ`4F@4?T3RX 3RR k+@@X` T4kTg 5gCY7@zh0G` 7 4@)#A) kT}@(   թ X @~ ? (@ @R )8? (;@y<_1`T1X`TYog@ kT 5  R@;@ #@O@YAP @H~@a@(@q(lTn}t  OB#@O@qO@!p @ g@  P @|a0 qO@_1T ճ[X`@_kT`@1T ZX`@k@T`@k`T մWX1T@kT@v@@@1@To@@@1@Th+@7@ Y1@Tag@1`Tg@\`@n@p R@a@"@@zp BRR?qT @*?qTLxh @k! n_kTk1aTl@2l T_C_WO{  KX)@Op ;R#!R RTqT#}6Rq T \  GX)@?T{TOSWR_QC_ֿO{ DX@d}AK0 ^} #AR5a@44@ թAX)@?T{COB_@ @_qKT @  @kT1kaTJQq TRI%+*@) @  @ QR _g_WO{R Tq T5z } k>S0 |XQ07Pp 9v0 Ձup t t |؎p sP rp gl})Ž|{GOFWE_DgC_CWO{ ը,X@RInP @mP  @yJp @ylP @l z@bk t2@"p n@j h@biP b"@h \HRr*CkjtJ}KKGjJ#)gP L P|M @yYF|CR#AR*@{b{@a@(@q(lTS{Rt@ iX)@?T{DOCWBC_^P Ɂ>{ RZWO{|]{BOAWè @Q }S? qT} S   Yh_ P _O{C RqaT4R$P բ 4R#R `5P " # V0 b  U0 "  R{AO¨__WO{/  @R?R`{@@(@q(lTzRdP {@@(@q(lTz6R@?{COBWA_Ĩ_O{?qT@@0{@4@` 4R L0 4R!R{R{BOA_O { A@`4 R@@a@(@q(lTkzRt{JOI_O { ?qT@5@z@ HRr} @r`4 R@w@a@(@q(lT9zRt{JOI_O { ?qT@֊5@z@f"@C`4 RHRr+CkjtJ}KKGjJ!)>@a@(@q(lTzRt{JOI_WO{AP z{BOAWèWO{A@VpzR\@94 T(}@?q" q T Ѩ _8 _q T"A`p @a@(@q(lTyt z@a@(@q(lTyu@qTyR{BOAWè_WO{@@%zRR @HTKSz@@@a@(@q(lTtytR{BOAWè_WO{A@yRR@cT!0 #z@a@(@q(lTIyu@qTAyR{BOAWè_WO{A@yR@y@a@(@q(lT!yu @a@(@q(lTyt@qT yR{BOAWè__WO{Rt@y@9qAT "Ry@9qTH5@a@(@q(lTxtR{COBWA_Ĩ_R; KyyC_WO{@@Hy  @R?`y@a@(@q(lTxRt@?֔@@  R{DOCWB_AC_g_WO{CX  @!R??8qT*R@3x@9q`Tq!T(@9H4qT!@ Q6 _8?qT9"4TD T(kv8qTџj68"!Tҟj68@y@a@(@q(lT*xRt@?P x@a@(@q(lTxt R{EODWC_BgA_{A@RR{_{A@BRR{_{A@"RR{_{A@RR{_C_WO{A@ w{5@p p{`4Q"4Wp Հ@`xn1T@ qT1T4x"RZ`5"Q5R{DOCWB_AC_@0 -~ RC_WO{48  Հ@'xuJ@?5"Qu5R @@p ~ R{DOCWB_AC_O{C?qT@@xR'7R R{AO¨__WO{C? qT@ z`4"@w@wqTRu4|`4R@S@!0 &@' } R{EODWC_B_CWO{? qaT@› seR@5"@w@w@454R@@pap } R{DOCWBC_C_WO{@@}wW  @!R?R _1`T"8w@a@(@q(lTvRt@?֔@ @1 E} R{DOCWB_AC_O { A@`4 R3@ۄ@a@(@q(lTvRt{JOI_W O { A@`4 R  qaT@{KOJWI_W O { A@b`4 R  qaT@{KOJWI_O { A@J`4 R @y2w@a@(@q(lTEvRt{JOI_O { A@_`4 @ka@a@(@q(lT#vtR{JOI_O { A@=q @y) ?@q ?@a@(@q(lTvtR{JOI_O { A@q @y) ?!@q @a@(@q(lTutR{JOI_WO{av31`TR  @5AP I| R{COBWA_O{C hX@hHhcH|H R(H HRr #3cE@4 @ p | R^  dX)@?T{EOD_֪ WO{vv*q? q T*) +_8 q TB_kT=vh@h{BOAWè_O{Cu 1@a@(@q(lTMut{AO¨_W O { =RD 45RS @ qT1bTR T959=R, `5< @EqT 5 @y @qaTR. (R{KOJWI_WO{u 1`TR  @l !P { R{COBWA_O{C RqaT4RP " 4R#R@5aP b zR{AO¨_WO{ JX@?qa TmP T"p OP J" Eb0 @P /h@hB [AR "  d  [z[\uz@a@(@q(lTtRuB0 4R!Rf]  @X)@?T{FOEWD_ֈ O{CR t`(u{AO¨}{AO¨_WO{!E l{BOAWèmǂWO{@=#t @t't@@qTt@3t@t@a@(@q(lTtt{COBWA_A@.zWO{@H "Qj@`@t   zR{BOAWè_C_WO{P wa@t q+T*"@#8t @tT@@qTs@3t@xt@a@(@q(lTst{DOCWB_AC_s O{C!P 0h@qhT{AO¨s{AO¨_O{C RqaT4R B 4R#R950  ҃yP ROR{AO¨_og _ W O { C3oP$JP!XPhPvPPPPP P PPPP PP)P9PFPRPaPqP~PPPPPPPPPP%P4PCPVPfPwPPPPPPPPPP PP/P>PNP^PoPPPP|PyPvPsPpPmPjPgPd Pa/P^?jimsh version %d.%d Usage: %s or : %s [options] [filename] --version%d.%d --helpjim::argv0tcl_interactive10-eargv0-eval [info source [stdin read] stdin 1]%s argvargcWithout options: Interactive modeOptions: --version : prints the version string --help : prints this text -e CMD : executes command CMD NOTE: all subsequent options will be passed as arguments to the command [filename|-] : executes the script contained in the named file, or from stdin if "-" NOTE: all subsequent options will be passed to the script initjimsh1.0initjimsh.tcl proc _jimsh_init {} { rename _jimsh_init {} global jim::exe jim::argv0 tcl_interactive auto_path tcl_platform if {[exists jim::argv0]} { if {[string match "*/*" $jim::argv0]} { set jim::exe [file join [pwd] $jim::argv0] } else { foreach path [split [env PATH ""] $tcl_platform(pathSeparator)] { set exec [file join [pwd] [string map {\\ /} $path] $jim::argv0] if {[file executable $exec]} { set jim::exe $exec break } } } } lappend p {*}[split [env JIMLIB {}] $tcl_platform(pathSeparator)] if {[exists jim::exe]} { lappend p [file dirname $jim::exe] } lappend p {*}$auto_path set auto_path $p if {$tcl_interactive && [env HOME {}] ne ""} { foreach src {.jimrc jimrc.tcl} { if {[file exists [env HOME]/$src]} { uplevel #0 source [env HOME]/$src break } } } return "" } if {$tcl_platform(platform) eq "windows"} { set jim::argv0 [string map {\\ /} $jim::argv0] } set tcl::autocomplete_commands {info tcl::prefix socket namespace array clock file package string dict signal history} proc tcl::autocomplete {prefix} { if {[set space [string first " " $prefix]] != -1} { set cmd [string range $prefix 0 $space-1] if {$cmd in $::tcl::autocomplete_commands || [info channel $cmd] ne ""} { set arg [string range $prefix $space+1 end] return [lmap p [$cmd -commands] { if {![string match "${arg}*" $p]} continue function "$cmd $p" }] } } if {[string match "source *" $prefix]} { set path [string range $prefix 7 end] return [lmap p [glob -nocomplain "${path}*"] { function "source $p" }] } return [lmap p [lsort [info commands $prefix*]] { if {[string match "* *" $p]} { continue } function $p }] } _jimsh_init wrong # args: should be "%#s command ..." Use "%#s -help ?command?" for help-helpambiguousUsage: wrong # args: should be ""subcmd-lookupUsage: "%#s command ... ", where command is one of: %#sdummy%#s, %s command "%#s": should be %#sWelcome to Jim version %d.%d [%d] . [%s] . . %c> not enough arguments for all format specifiersformat string ended in middle of field specifier%ld.%ldformat too longbad field specifier "%s"jim.c::can't delete "%#s": command doesn't existcan't rename "%#s": command doesn't existcan't rename to "%#s": command already existscan't rename local command "%#s"invalid command name "%#s"bad variable name "%#s": upvar won't create a scalar variable that looks like an array elementvariable "%#s" already existsbad variable name "%#s": upvar won't create namespace variable that refers to procedure variablecan't upvar from variable to itselfcan't read "%#s": no such variablecan't unset "%#s": no such variable.%020lu>intexpected integer but got "%#s"Integer value too big to be representedsourcecoerced-doubledoubleNaN-InfInf%.12gexpected floating-point number but got "%#s"expected boolean but got "%#s"trueyesonfalsenoofflistListEnsureLengthidx >= 0missing value to go with keydictJimDictHashFindtvoffsetindexend%dend%dbad index "%#s": must be intexpr or end?[+-]intexpr?okerrorreturnbreakcontinuesignalexitevalreturn-codeexpected return code but got "%#s"*/%+<<>><<<>>><><=>===!=&^|&&||**eqneinniltgtlege!~ - +wideabsroundrandsrandsincostanasinacosatanatan2sinhcoshtanhceilfloorexploglog10sqrtpowhypotfmodexponentiation of zero by negative powerDivision by zerosyntax error in expression: "%#s"eENnIi.nanNANinfINFunmatched "["missing close-braceextra characters after close-bracemissing quotemissing close parenthesisExprTreeCreateTreeexpr->len <= tokenlist->count - 1Expression too complexunexpected open parenthesis in expression: "%#s"unexpected closing parenthesis in expression: "%#s"unexpected comma in expression: "%#s"too many arguments to math function: without ? in expression: "%#s"missing arguments for math functiontoo many arguments for math functionmissing operand to %s in expression: "%#s"missing operator in expression: "%#s"too %s arguments for math functionfewmanyempty expressionsyntax error in expression "%#s": premature end of expressionextra terms after expressionexpressionInfinite eval recursionproccmd ...??arg ...?wrong # args: should be "%#s%#s"varName ?increment?variablescriptaliasputsincrwhileloopforforeachlmaplassignifswitchlindexlsetlsearchllengthlappendlinsertlreplacelsortappenduplevelexprxtraceconcatupvarglobaltimetimeratecatchtryrefgetrefsetreffinalizecollectrenamesubstinfoexistssplitjoinformatscanlrangelrepeatenvlreverserangetailcalllocalupcallapplynewname command ?args ...?varName ?newValue?-nocomplain?-nonewline? string-nonewlineThe second argument must be -nonewlinenumber ?number ... number?condition bodyvar ?first? limit ?incr? bodystart test next bodyvarList list ?varList list ...? scriptforeach varlist is emptyvarList list ?varName ...?thenelseelseifcondition ?then? trueBody ?elseif ...? ?else? falseBody?options? string pattern body ... ?default body? or {pattern body ?pattern body ...?}-exact-glob-regexp-commandbad option "%#s": must be -exact, -glob, -regexp, -command procname or --defaultregexpno body specified for pattern "%#s"list ?index ...?element %#s missing from sublist "%#s"listVar ?index ...? value-bool-not-all-inline-stride-index?-exact|-glob|-regexp|-command 'command'? ?-bool|-inline? ?-not? ?-nocase? ?-all? ?-stride len? ?-index val? list valuestride length must be at least 1list size must be a multiple of the stride lengthvarName ?value value ...?list index ?element ...?list first last ?element ...?-ascii-increasing-decreasing-integer-real-unique?options? list"-command" option must be followed by comparison commandstride length must be at least 2"-index" option must be followed by list indexvarName ?value ...?arg ?arg ...??level? command ?arg ...?name arglist ?statics? bodyJimCreateProcedureCmdcmdPtrargument with no nametoo many fields in argument specifier "%#s"args'args' specified more than oncevariable for initialization of static "%#s" not found in the local contextstatic variable name "%#s" duplicated in statics listtoo many fields in static specifier "%#s"callback-code-errorinfo-errorcode-levelbad level "%#s"?-code code? ?-errorinfo stacktrace? ?-level level? ?result?errorCode?level? otherVar localVar ?otherVar localVar ...?varName ?varName ...?bytelengthlengthcomparematchequalisbyterangereplacemaprepeatreversefirstlastcattrimtrimlefttrimrighttolowertouppertotitle-lengthoption ?arguments ...??-nocase? ?-length int? string1 string2?-nocase? pattern string?-nocase? mapList stringstring first laststring first last ?string?string countJim_StringCoreCommandbufstring indexsubString string ?index?string ?trimchars?-strictclass ?-strict? strlist must contain an even number of elementsintegeralphaalnumasciidigitlowerupperspacexdigitcontrolprintgraphpunctbooleanclassscript ?count? microseconds per iterationscript ?milliseconds?us_per_iteriters_per_seccountelapsed_us?exitCode??-?no?code ... --? script ?resultVarName? ?optionVarName??-?no?code ... --? script ?on|trap codes vars script? ... ?finally script?NONE-notrapfinallyhandlerstring tag ?finalizer?reference newValuereference ?finalizerProc?oldName newNamecreategetkeyssizemergewithremovevaluesupdategetwithdefaultsubcommand ?arguments ...?subcommandgetdefdictionary ?key ...?dictionary ?key ...? key defaultvarName key ?key ...? valuedictionary key ?key ...?varName key ?key ...?dictionary ?pattern?dictionary?key value ...?dictVar ?key ...? script-nobackslashes-nocommands-novariables?options? stringbodystaticscommandsprocschannelsglobalslevelframelocalsvarsversionpatchlevelcompletehostnamestacktracenameofexecutablereturncodesreferences-nonssubcommand ?args ...?varNamecommand "%#s" is not an alias?pattern?namespace infosource ?filename line??levelNum?procnamecommand "%#s" is not a procedure%d.%dscript ?missing?os.gethostname{info nameofexecutable}?code?typelinefile*[?\-proc-alias-var?option? namestring ?splitChars? list ?joinString?formatString ?arg arg ...?string format ?varName varName ...?"%n$" argument index out of rangedifferent numbers of variable names and field specifiersvariable is not assigned by any conversion specifiersscanformatstring%d%ncannot mix "%" and "%n$" conversion specifiersvariable is assigned by multiple "%n$" conversion specifiers"%n$" conversion specifier is negativeunmatched [ in format stringhlLmissing scan conversion characterefgcsndoxuibad scan conversion characterfield width may not be specified in %c conversionunsigned wide not supportedmessage ?stacktrace?list first lastcount ?value ...?varName ?default?environment variable "%#s" does not existfileName?start? end ?step?Invalid (infinite?) range specified?min? maxInvalid arguments (max < min)tailcall can only be called from a proc or lambdacmd ?args ...?no previous command: "%#s"lambdaExpr ?arg ...?can't interpret "%#s" as a lambda expressionapply lambdaExprget-enumoption%s%s "%s": must be or , utf8_prev_lenutf8.clen > 0successno matchbad patternnull argumentunknown errortoo bigout of memorytoo many ()parentheses () not balancedbraces {} not balancedinvalid repetition count(s)extra characters*+ of empty atomnested countinternal errorcount follows nothinginvalid escape \ sequencecorrupted programcontains null charbrackets [] not balancedBad error code:alpha::alnum::space::blank::upper::lower::digit::xdigit::cntrl::graph::print::punct: ^$.[()|?{+*<>mMwWdDsSAZ%s: %sTMPDIR/tmp/tcl.tmp.XXXXXXSIGINTSIGPIPENot a filehandle: "%#s"aioopensocketpipestdinrstdoutwstderrread?-nonewline|-pending|len?copytohandle ?size?getfdgets?var??-nonewline? strisattyrecvfromlen ?addrvar?sendtostr addressaccept?addrvar?listenbacklogsockopt?opt 0|1?socknamepeernameflusheofclose?r(ead)|w(rite)?seekoffset ?start|current|endtellfilenamendelay?0|1?syncbufferingnone|line|fullstatlock?-wait?unlock-pending-pending not supported on this connection typeinvalid parameter: negative len%#s: %s]:%d:%dNot a valid address: %s:%s0.0.0.0Not a valid address: %saio.sockstream%ldr+Failed to set %#s: %sUnknown sockopt %#sbroadcastdebugkeepalivenosigpipeoobinlinesndbufrcvbuftcp_nodelay-nodeletenot supportedstartcurrentnonefull-waitlock failed: %sfilename ?mode?::popenRDONLYWRONLYRDWRAPPENDBINARYCREATEXCLNOCTTYTRUNCw+access modeJimAioOpenCommandjim-aio.cmodeaio.handle%ldunix.serverunix.dgramunix.dgram.serverdgramdgram.serverstreamstream.serverpairpty-async-ipv6?-async? ?-ipv6? type ?address?socket typeaio.sockpair%ldUnsupported socket type%s: bind: %s%s: connect: %slisten: %saio.sock%ldaio.pty%ldaio.pipe%ldJimMakeChannelfd >= 0arrayarrayNamearrayName ?pattern?arrayName listlist must have an even number of elements"%#s" isn't an arrayclockclicksseconds ?-format string? ?-gmt boolean?microsecondsmillisecondsstr -format format ?-gmt boolean?seconds%a %b %d %H:%M:%S %Z %Yformat string too long or invalid time-gmt-formatFailed to parse time according to formatexecwaitpiderror reading from output pipeerror reading from error pipe|&illegal use of | or |& in commandcan't specify "%s" as last word in commanddidn't specify command to executecouldn't write temp filecouldn't write file "%s": %scouldn't create output pipemissing command to execcouldn't create pipecouldn't fork child processcouldn't exec "" %s=%sCHILDSTATUSCHILDKILLEDkilledCHILDSUSPsuspendedchild by signal -nohang?-nohang? ?pid?devinonlinkuidgidatimemtimectimemtimeuscan't set "%#s(dev)": variable isn't arraypwdcddirectorycharacterSpecialblockSpecialfifolinknamename ?time?copy?-force? source destdirnamerootnameextensiontailnormalizename ?name ...?readablewritableexecutabledelete?-force|--? name ...mkdirdir ...tempfile?template??-symbolic|-hard? newname targetreadlinkname ?var?lstatownedisdirectoryisfilecould not read "%#s": %scan't set time on "%s": %sfile copycan't normalize "%#s": %sPath too long-forcefile delete forcecouldn't delete file "%s": %scan't create directory "%#s": %serror renaming "%#s" to "%#s": target existserror renaming "%#s" to "%#s": %s-hard-symbolicerror linking "%#s" to "%#s": %scould not read link "%#s": %sFailed to get pwdcouldn't change working directory to "%s": %sinterpjim::exeinterp.parentinterp.handle%ldscript ...childcmd parentcmd ?arg ...?JimInterpAliasProcjim-interp.cparentjsonjson::decodejsonencodenullempty JSON string-null-schema?-index? ?-null nullvalue? ?-schema? jsoninvalid JSON stringtruncated JSON stringroot element must be an object or an arrayjson_decode_get_typejim-json.cboolobjmixedstrnumjson_decode_add_schema_typetype >= 0 && type < JSON_MAX_TYPEJimCanonicalNamespacejim-namespace.cnameObj->refCount != 0nsObj->refCount != 0can't define "%#s": name refers to an element in an arraynamespacecanonicalqualifiersorigincodeinscopeimportexportwhichsubcommand ?arg ...?name arg ?arg...??current? ?name??name?name ?value?package "%s" was already provided%#s%sCan't load package %spackage.tcl.%s.tcl%s/%s.tclprovidename ?version?requirenames?-nocomplain? dirPathreaddir-indices-line-start?-switch ...? exp string ?matchVar? ?subMatchVar ...?regexp match variables not allowed when using -inlineerror while matching pattern: %s?-switch ...? exp string subSpec ?varName?regsubcouldn't compile regular expression pattern: %sensembleensemble.tcl proc ensemble {command args} { set autoprefix "$command " set badopts "should be \"ensemble command ?-automap prefix?\"" if {[llength $args] % 2 != 0} { return -code error "wrong # args: $badopts" } foreach {opt value} $args { switch -- $opt { -automap { set autoprefix $value } default { return -code error "wrong # args: $badopts" } } } proc $command {subcmd args} {autoprefix {mapping {}}} { if {![dict exists $mapping $subcmd]} { if {$subcmd in {-commands -help}} { set prefixlen [string length $autoprefix] set subcmds [lmap p [lsort [info commands $autoprefix*]] { string range $p $prefixlen end }] if {$subcmd eq "-commands"} { return $subcmds } set command [lindex [info level 0] 0] return "Usage: \"$command command ... \", where command is one of: [join $subcmds ", "]" } dict set mapping $subcmd ${autoprefix}$subcmd } tailcall [dict get $mapping $subcmd] {*}$args } } globglob.tcl package require readdir proc glob.globdir {dir pattern} { if {[file exists $dir/$pattern]} { return [list $pattern] } set result {} set files [readdir $dir] lappend files . .. foreach name $files { if {[string match $pattern $name]} { if {[string index $name 0] eq "." && [string index $pattern 0] ne "."} { continue } lappend result $name } } return $result } proc glob.explode {pattern} { set oldexp {} set newexp {""} while 1 { set oldexp $newexp set newexp {} set ob [string first \{ $pattern] set cb [string first \} $pattern] if {$ob < $cb && $ob != -1} { set mid [string range $pattern 0 $ob-1] set subexp [lassign [glob.explode [string range $pattern $ob+1 end]] pattern] if {$pattern eq ""} { error "unmatched open brace in glob pattern" } set pattern [string range $pattern 1 end] foreach subs $subexp { foreach sub [split $subs ,] { foreach old $oldexp { lappend newexp $old$mid$sub } } } } elseif {$cb != -1} { set suf [string range $pattern 0 $cb-1] set rest [string range $pattern $cb end] break } else { set suf $pattern set rest "" break } } foreach old $oldexp { lappend newexp $old$suf } list $rest {*}$newexp } proc glob.glob {base pattern} { set dir [file dirname $pattern] if {$pattern eq $dir || $pattern eq ""} { return [list [file join $base $dir] $pattern] } elseif {$pattern eq [file tail $pattern]} { set dir "" } set dirlist [glob.glob $base $dir] set pattern [file tail $pattern] set result {} foreach {realdir dir} $dirlist { if {![file isdir $realdir]} { continue } if {[string index $dir end] ne "/" && $dir ne ""} { append dir / } foreach name [glob.globdir $realdir $pattern] { lappend result [file join $realdir $name] $dir$name } } return $result } proc glob {args} { set nocomplain 0 set base "" set tails 0 set n 0 foreach arg $args { if {[info exists param]} { set $param $arg unset param incr n continue } switch -glob -- $arg { -d* { set switch $arg set param base } -n* { set nocomplain 1 } -ta* { set tails 1 } -- { incr n break } -* { return -code error "bad option \"$arg\": must be -directory, -nocomplain, -tails, or --" } * { break } } incr n } if {[info exists param]} { return -code error "missing argument to \"$switch\"" } if {[llength $args] <= $n} { return -code error "wrong # args: should be \"glob ?options? pattern ?pattern ...?\"" } set args [lrange $args $n end] set result {} foreach pattern $args { set escpattern [string map { \\\\ \x01 \\\{ \x02 \\\} \x03 \\, \x04 } $pattern] set patexps [lassign [glob.explode $escpattern] rest] if {$rest ne ""} { return -code error "unmatched close brace in glob pattern" } foreach patexp $patexps { set patexp [string map { \x01 \\\\ \x02 \{ \x03 \} \x04 , } $patexp] foreach {realname name} [glob.glob $base $patexp] { incr n if {$tails} { lappend result $name } else { lappend result [file join $base $name] } } } } if {!$nocomplain && [llength $result] == 0} { set s $(([llength $args] > 1) ? "s" : "") return -code error "no files matched glob pattern$s \"[join $args]\"" } return $result } jsonencode.tcl proc json::encode {value {schema str}} { json::subencode [lindex $schema 0] $value [lrange $schema 1 end] } proc json::subencode {type value {schema {}}} { switch -exact -- $type { str - "" { return \"[string map [list \\ \\\\ \" \\" \f \\f \n \\n / \\/ \b \\b \r \\r \t \\t] $value]\" } num { if {$value in {Inf -Inf}} { append value inity } return $value } bool { if {$value} { return true } return false } obj { set result "\{" set sep " " foreach k [lsort [dict keys $value]] { if {[dict exists $schema $k]} { set subtype [dict get $schema $k] } elseif {[dict exists $schema *]} { set subtype [dict get $schema *] } else { set subtype str } append result $sep\"$k\": append result [json::subencode [lindex $subtype 0] [dict get $value $k] [lrange $subtype 1 end]] set sep ", " } append result " \}" return $result } list { set result "\[" set sep " " foreach l $value { append result $sep append result [json::subencode [lindex $schema 0] $l [lrange $schema 1 end]] set sep ", " } append result " \]" return $result } mixed { set result "\[" set sep " " foreach l $value subtype $schema { append result $sep append result [json::subencode [lindex $subtype 0] $l [lrange $subtype 1 end]] set sep ", " } append result " \]" } default { error "bad type $type" } } } nshelpernshelper.tcl proc {namespace delete} {args} { foreach name $args { if {$name ni {:: ""}} { set name [uplevel 1 [list ::namespace canon $name]] foreach i [info commands ${name}::*] { rename $i "" } uplevel #0 [list unset {*}[info globals ${name}::*]] } } } proc {namespace origin} {name} { set nscanon [uplevel 1 [list ::namespace canon $name]] if {[exists -alias $nscanon]} { tailcall {namespace origin} [info alias $nscanon] } if {[exists -command $nscanon]} { return ::$nscanon } if {[exists -command $name]} { return ::$name } return -code error "invalid command name \"$name\"" } proc {namespace which} {{type -command} name} { set nsname ::[uplevel 1 [list ::namespace canon $name]] if {$type eq "-variable"} { return $nsname } if {$type eq "-command"} { if {[exists -command $nsname]} { return $nsname } elseif {[exists -command ::$name]} { return ::$name } return "" } return -code error {wrong # args: should be "namespace which ?-command? ?-variable? name"} } proc {namespace code} {arg} { if {[string first "::namespace inscope " $arg] == 0} { return $arg } list ::namespace inscope [uplevel 1 ::namespace current] $arg } proc {namespace inscope} {name arg args} { tailcall namespace eval $name $arg $args } proc {namespace import} {args} { set current [uplevel 1 ::namespace canon] foreach pattern $args { foreach cmd [info commands [namespace canon $current $pattern]] { if {[namespace qualifiers $cmd] eq $current} { return -code error "import pattern \"$pattern\" tries to import from namespace \"$current\" into itself" } set newcmd ${current}::[namespace tail $cmd] set alias $cmd while {[exists -alias $alias]} { set alias [info alias $alias] if {$alias eq $newcmd} { return -code error "import pattern \"$pattern\" would create a loop" } } alias $newcmd $cmd } } } proc {namespace info} {cmd {pattern *}} { set current [uplevel 1 ::namespace canon] if {[string first :: $pattern] == 0} { set global 1 set prefix :: } else { set global 0 set clen [string length $current] incr clen 2 } set fqp [namespace canon $current $pattern] switch -glob -- $cmd { co* - p* { if {$global} { set result [info $cmd $fqp] } else { set r {} foreach c [info $cmd $fqp] { dict set r [string range $c $clen end] 1 } if {[string match co* $cmd]} { foreach c [info -nons commands $pattern] { dict set r $c 1 } } set result [dict keys $r] } } ch* { set result [info channels $pattern] } v* { set result [uplevel #0 info -nons vars $fqp] } g* { set result [info globals $fqp] } l* { set result [uplevel 1 info -nons locals $pattern] } } if {$global} { set result [lmap p $result { string cat $prefix $p }] } return $result } proc {namespace upvar} {ns args} { set nscanon ::[uplevel 1 [list ::namespace canon $ns]] set script [list upvar 0] foreach {other local} $args { lappend script ${nscanon}::$other $local } tailcall {*}$script } proc {namespace ensemble} {subcommand args} { if {$subcommand ne "create"} { return -code error "only \[namespace ensemble create\] is supported" } set ns [uplevel 1 namespace canon] set cmd $ns if {$ns eq ""} { return -code error "namespace ensemble create: must be called within a namespace" } ensemble $cmd -automap ${ns}:: {*}$args } oooo.tcl proc class {classname {baseclasses {}} classvars} { set baseclassvars {} foreach baseclass $baseclasses { foreach method [$baseclass methods] { alias "$classname $method" "$baseclass $method" } set baseclassvars [dict merge $baseclassvars [$baseclass classvars]] proc "$classname baseclass" {} baseclass { return $baseclass } } set classvars [dict merge $baseclassvars $classvars] proc $classname {{cmd new} args} classname { if {![exists -command "$classname $cmd"]} { return -code error "$classname, unknown command \"$cmd\": should be [join [$classname methods] ", "]" } tailcall "$classname $cmd" {*}$args } proc "$classname new" {args} {classname classvars} { set obj ::[ref $classname $classname "$classname finalize"] set instvars $classvars proc $obj {method args} {classname instvars} { if {![exists -command "$classname $method"]} { if {![exists -command "$classname unknown"]} { return -code error "$classname, unknown method \"$method\": should be [join [$classname methods] ", "]" } return ["$classname unknown" $method {*}$args] } "$classname $method" {*}$args } $obj constructor {*}$args return $obj } proc "$classname finalize" {ref classname} { $ref destroy } proc "$classname method" {method arglist __body} classname { proc "$classname $method" $arglist {__body} { if {![uplevel exists instvars]} { return -code error -level 2 "\"[lindex [info level 0] 0]\" method called with no object" } set self [lindex [info level -1] 0] foreach __ [$self vars] {upvar 1 instvars($__) $__} unset -nocomplain __ eval $__body } } proc "$classname vars" {} classvars { lsort [dict keys $classvars] } proc "$classname classvars" {} classvars { return $classvars } proc "$classname classname" {} classname { return $classname } proc "$classname methods" {} classname { lsort [lmap p [info commands "$classname *"] { lindex [split $p " "] 1 }] } $classname method defaultconstructor {{__vars {}}} { set __classvars [$self classvars] foreach __v [dict keys $__vars] { if {![dict exists $__classvars $__v]} { return -code error -level 3 "[lindex [info level 0] 0], $__v is not a class variable" } set $__v [dict get $__vars $__v] } } alias "$classname constructor" "$classname defaultconstructor" $classname method destroy {} { rename $self "" } $classname method get {var} { set $var } $classname method eval {{__locals {}} __body} { foreach __ $__locals { upvar 2 $__ $__ } unset -nocomplain __ eval $__body } return $classname } proc super {method args} { set classname [lindex [info level -1] 0 0] uplevel 2 [list [$classname baseclass] $method {*}$args] } stdlibstdlib.tcl if {![exists -command ref]} { proc ref {args} {{count 0}} { format %08x [incr count] } } proc lambda {arglist args} { tailcall proc [ref {} function lambda.finalizer] $arglist {*}$args } proc lambda.finalizer {name val} { rename $name {} } proc curry {args} { alias [ref {} function lambda.finalizer] {*}$args } proc function {value} { return $value } proc stacktrace {{skip 0}} { set trace {} incr skip 2 loop level $skip [info level]+1 { set frame [info frame -$level] lappend trace [lindex [dict get $frame cmd] 0] [dict get $frame file] [dict get $frame line] } return $trace } proc stacktrace {{skip 0}} { set trace {} incr skip 1 set last 0 loop level $skip [info frame]+1 { set frame [info frame -$level] set file [dict get $frame file] set line [dict get $frame line] set lev [dict get $frame level] if {$lev != $last && $lev > $skip} { set proc [lindex [dict get $frame cmd] 0] lappend trace $proc $file $line } set last $lev } return $trace } proc stackdump {stacktrace} { set lines {} foreach {l f p} [lreverse $stacktrace] { set line {} if {$p ne ""} { append line "in procedure '$p' " if {$f ne ""} { append line "called " } } if {$f ne ""} { append line "at file \"$f\", line $l" } if {$line ne ""} { lappend lines $line } } join $lines \n } proc defer {script} { upvar jim::defer v lappend v $script } proc errorInfo {msg {stacktrace ""}} { if {$stacktrace eq ""} { set stacktrace [info stacktrace] lappend stacktrace {*}[stacktrace 1] } lassign $stacktrace p f l if {$f ne ""} { set result "$f:$l: Error: " } append result "$msg\n" append result [stackdump $stacktrace] string trim $result } proc {info nameofexecutable} {} { if {[exists ::jim::exe]} { return $::jim::exe } } proc {dict update} {&varName args script} { set keys {} foreach {n v} $args { upvar $v var_$v if {[dict exists $varName $n]} { set var_$v [dict get $varName $n] } } catch {uplevel 1 $script} msg opts if {[info exists varName]} { foreach {n v} $args { if {[info exists var_$v]} { dict set varName $n [set var_$v] } else { dict unset varName $n } } } return {*}$opts $msg } proc {dict replace} {dictionary {args {key value}}} { if {[llength ${key value}] % 2} { tailcall {dict replace} } tailcall dict merge $dictionary ${key value} } proc {dict lappend} {varName key {args value}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set list [dict get $dict $key] } lappend list {*}$value dict set dict $key $list } proc {dict append} {varName key {args value}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set str [dict get $dict $key] } append str {*}$value dict set dict $key $str } proc {dict incr} {varName key {increment 1}} { upvar $varName dict if {[exists dict] && [dict exists $dict $key]} { set value [dict get $dict $key] } incr value $increment dict set dict $key $value } proc {dict remove} {dictionary {args key}} { foreach k $key { dict unset dictionary $k } return $dictionary } proc {dict for} {vars dictionary script} { if {[llength $vars] != 2} { return -code error "must have exactly two variable names" } dict size $dictionary tailcall foreach $vars $dictionary $script } tclcompattclcompat.tcl set env [env] if {[info commands stdout] ne ""} { foreach p {gets flush close eof seek tell} { proc $p {chan args} {p} { tailcall $chan $p {*}$args } } unset p proc puts {{-nonewline {}} {chan stdout} msg} { if {${-nonewline} ni {-nonewline {}}} { tailcall ${-nonewline} puts $msg } tailcall $chan puts {*}${-nonewline} $msg } proc read {{-nonewline {}} chan} { if {${-nonewline} ni {-nonewline {}}} { tailcall ${-nonewline} read {*}${chan} } tailcall $chan read {*}${-nonewline} } proc fconfigure {f args} { foreach {n v} $args { switch -glob -- $n { -bl* { $f ndelay $(!$v) } -bu* { $f buffering $v } -tr* { } default { return -code error "fconfigure: unknown option $n" } } } } } proc fileevent {args} { tailcall {*}$args } proc parray {arrayname {pattern *} {puts puts}} { upvar $arrayname a set max 0 foreach name [array names a $pattern]] { if {[string length $name] > $max} { set max [string length $name] } } incr max [string length $arrayname] incr max 2 foreach name [lsort [array names a $pattern]] { $puts [format "%-${max}s = %s" $arrayname\($name\) $a($name)] } } proc {file copy} {{force {}} source target} { try { if {$force ni {{} -force}} { error "bad option \"$force\": should be -force" } set in [open $source rb] if {[file exists $target]} { if {$force eq ""} { error "error copying \"$source\" to \"$target\": file already exists" } if {$source eq $target} { return } file stat $source ss file stat $target ts if {$ss(dev) == $ts(dev) && $ss(ino) == $ts(ino) && $ss(ino)} { return } } set out [open $target wb] $in copyto $out $out close } on error {msg opts} { incr opts(-level) return {*}$opts $msg } finally { catch {$in close} } } proc popen {cmd {mode r}} { lassign [pipe] r w try { if {[string match "w*" $mode]} { lappend cmd <@$r & set pids [exec {*}$cmd] $r close set f $w } else { lappend cmd >@$w & set pids [exec {*}$cmd] $w close set f $r } lambda {cmd args} {f pids} { if {$cmd eq "pid"} { return $pids } if {$cmd eq "getfd"} { $f getfd } if {$cmd eq "close"} { $f close set retopts {} foreach p $pids { lassign [wait $p] status - rc if {$status eq "CHILDSTATUS"} { if {$rc == 0} { continue } set msg "child process exited abnormally" } else { set msg "child killed: received signal" } set retopts [list -code error -errorcode [list $status $p $rc] $msg] } return {*}$retopts } tailcall $f $cmd {*}$args } } on error {error opts} { $r close $w close error $error } } local proc pid {{channelId {}}} { if {$channelId eq ""} { tailcall upcall pid } if {[catch {$channelId tell}]} { return -code error "can not find channel named \"$channelId\"" } if {[catch {$channelId pid} pids]} { return "" } return $pids } proc throw {code {msg ""}} { return -code $code $msg } proc {file delete force} {path} { foreach e [readdir $path] { file delete -force $path/$e } file delete $path } (((((((((((( .A"x^^^^^^^^^^^^^^^^^^^^^^^)^^^^)15555551 %(((((((( & )npr &LTVX[^adgG!#%(*HHHHHHHHHHHHfQQQQQQQQ &\;;;;P( M!$'J  . %'&&TT<]]h5:?DqI[gk{{{{p{{w+*)?_HN^] 6  x     ! #"%$'&)(+*-,/.1I325476:9<;>=@?BADCFEHGKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvzy|{~}SC=      #"%$'&)(+*-,/.1032<;?~,@,BAGFIHKJMLONPo,Qm,Rp,STVWY[\`acefhijkb,loqn,ru}d,ŧDEqpsrwv{|}0123456789:;<=>?@ A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/PQRSTUVWXY Z [ \ ] ^_a`cbedgfihkjmlonqpsrutwvyx{z}|~     ! #"%$'&)(+*-,/.a1b2c3d4e5f6g7h8i9j:k;l<m=n>o?p@qArBsCtDuEvFwGxHyIzJ{K|L}M~NOPQRSTUV!""*bJy}}c,Ƨ     ! #"%$'&)(+*-,/.1032547698;:=<?>A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonqpsrutwvyx{z}|~`      (!)"*#+$,%-&.'/08192:3;4<5=6>7?@HAIBJCKDLEMQYS[U]W_`haibjckdlemfngopqrstuvwxyz{|}N!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,*,[,+,\,,,],-,^,.,_,/,a,`,e,:f,>h,g,j,i,l,k,s,r,v,u,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,--------- - - - - ------------------- -!-"-#-$-%-'---A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjml#"%$'&)(+*-,/.32547698;:=A@CBEDGFIHKJMLONQPSRUTWVYX[Z]\_^a`cbedgfihkjmlonzy|{~ħç§ȧǧʧɧѧЧק֧٧اSpqrstuvwxyz{|}~A!B"C#D$E%F&G'H(I)J*K+L,M-N.O/P0Q1R2S3T4U5V6W7X8Y9Z:      !"#$%&'()*+,-./0i2345679:;<=>?@ABCDEFGHJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~STVWY[`cihoru      "#$%&'()*+,-./0123:e,;<=>f,ABCDEFGHIJKLMNOpqrsvw{|}PQRSTUVWX Y Z [ \ ]^_0123456789:;<=>? @!A"B#C$D%E&F'G(H)I*J+K,L-M.N/O`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./1a2b3c4d5e6f7g8h9i:j;k<l=m>n?o@pAqBrCsDtEuFvGwHxIyJzK{L|M}N~OPQRSTUV--------- - - - - ------------------- -!-"-#-$-%-'---pqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     ( )!*"+#,$-%.&/'8091:2;3<4=5>6?7H@IAJBKCLDMEYQ[S]U_Wh`iajbkcldmenfogpqrstuvwz{xy|}&!*!k+!2!N!!!,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,+,[,,,\,-,],.,^,/,_,`,a,b,kc,}d,}g,h,i,j,k,l,m,Qn,qo,Pp,Rr,s,u,v,~,?,@,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklm"#$%&'()*+,-./23456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnoyz{|}y~ef\aljS§çħŧƧǧȧɧʧЧѧ֧קا٧!A"B#C$D%E&F'G(H)I*J+K,L-M.N/O0P1Q2R3S4T5U6V7W8X9Y:ZKGCCWFs ::::::: ::: :$:&' %+.7[vvvv0H7zG0|MD"T4\H vah؅4ou`*,|\4DTxHLܷH,h|@ lPH[|  &d#'#'<AEHNQV5nX5nZ9n5d\5d^9Za9Zd9Zh9Zl5Pn5Pp5Ps5Pv5Fy5F|92~9190p< = =5x >< >< >7 >7 >K >K >K >K@`B@@u@@@@@C`BhDhDhDhDhDhD5hDhDhDhDhDhDhD hDhD555  07COX ^P[bjpvy,4:@FLRX^emsy>E M.")06EQot| '<l]enz)6E[u $579H:\<4=#=18>DK @U\AdllAvhCCDDXExF`GGHHII 4JLKs  "!+29Ekp&1CIV]kpt{SSSSTT=$UGUGV[V =XX=XGLY$[[]h]]_"af|D   % <- l6  @ E ؆O ȇ_ h Љq |  0  L   T <   |  T ܐ d  ! :::::" | ؙ  \ b   U   "c  ! @ |  "$+oU,,&,&,p4(4@LXdp| $0<HT`lx ,8DP\ht(4@LXdp| $0<HT`lx ,8DP\htx_"p ppSApp SBppRARARAUAUAUARAppSBppppTATAppXAp `BSBp SB`Bp p SBSBRA]ARARARARARARARARARARARARARARARARARARARARApRARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARARA[AZA`ApRA`AUA`ASA`ATATA`(ASAppSASAppSASASASASASASASAppSASASApp(RASASAYA^ARA[ApSASASASASASASEppSASApp0SASASASASASASASASASASASASASASASASASASASASASASASASASASASASERA`AppSESA`ASASAp(WAUAR#`AQ@__DefaultRuneLocaleQr@___stack_chk_guard@___stderrp@___stdinp@___stdoutp@_isalnum@_isalpha@_isascii@_iscntrl@_isdigit@_isgraph@_islower@_isprint@_ispunct@_isspace@_isupper@_isxdigit@dyld_stub_binders@__NSGetEnvirons@___assert_rtns@___errors@___maskrunes @___sprintf_chks(@___stack_chk_fails0@___tolowers8@___touppers@@__exitsH@_abortsP@_acceptsX@_accesss`@_acossh@_asinsp@_atansx@_atan2s@_binds@_bsearchs@_bzeros@_chdirs@_clearerrs@_clocks@_clock_gettimes@_closes@_closedirs@_connects@_coss@_coshs@_dups@_dup2s@_execvps@_exps@_fcloses@_fcntls@_fdopens@_feofs@_ferrors@_fflushs@_fgetss@_filenos@_fmods@_fopens@_forks@_fprintfs@_fputss@_freads@_frees@_freeaddrinfos@_fseekos@_fstats@_fsyncs@_ftellos@_fwrites@_getaddrinfos@_getcwds@_getenvs@_geteuids@_getpeernames@_getpids@_getsocknames@_getsockopts@_gettimeofdays@_gmtimes@_hypots@_inet_ntops@_isattys@_links@_listens@_localtimes@_localtime_rs@_logs@_log10s@_longjmps@_lseeks@_lstats@_mallocs@_memchrs@_memcmps@_memcpys@_memmoves@_memsets@_mkdirs@_mkstemps@_mktimes@_opens@_opendirs@_openptys@_pipes@_pows@_printfs@_putchars@_putss@_qsorts@_rands@_readdirs@_readlinks@_reallocs@_realpath$DARWIN_EXTSNs@_recvfroms@_removes@_renames@_rmdirs@_sendtos@_setjmps@_setsockopts@_setvbufs@_shutdowns@_sins@_sinhs@_snprintfs@_sockets@_socketpairs@_sprintfs@_sscanfs@_stats@_strchrs@_strcmps@_strerrors@_strftimes@_strlens@_strncmps@_strpbrks@_strptimes@_strrchrs@_strstrs@_strtods@_strtols@_strtouls@_strtoulls@_symlinks@_tans@_tanhs@_times@_umasks@_unlinks@_utimess@_waitpids@_write__mh_execute_headeřP`LLpL,\Xp(4D@Xt$ TXHP888\XTdxD \Tt,x,t,dp<h0\dT$d0p x$\T|$\@p,p ,<,@$hx`pD ,h4 $,8XllH$< D  X\ X<| tX  ` 8@@\8 td`HHd4d< @xl`h$X$\(|lXDxDH4$ lpP plXpHphT0|l0x$$|pldd||\dt`4|L X|llxpxdPtHdpht48<  8```````((((((((((((t<BEa,;IR^m&-<CMV[aflty &.6?LTam{ #05<ELS[cks| (07?GS\fkq{"+06<CKS\c  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGKUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ HIJLMNOPQRST  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGKUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~__mh_execute_header__DefaultRuneLocale__NSGetEnviron___assert_rtn___error___maskrune___sprintf_chk___stack_chk_fail___stack_chk_guard___stderrp___stdinp___stdoutp___tolower___toupper__exit_abort_accept_access_acos_asin_atan_atan2_bind_bsearch_bzero_chdir_clearerr_clock_clock_gettime_close_closedir_connect_cos_cosh_dup_dup2_execvp_exp_fclose_fcntl_fdopen_feof_ferror_fflush_fgets_fileno_fmod_fopen_fork_fprintf_fputs_fread_free_freeaddrinfo_fseeko_fstat_fsync_ftello_fwrite_getaddrinfo_getcwd_getenv_geteuid_getpeername_getpid_getsockname_getsockopt_gettimeofday_gmtime_hypot_inet_ntop_isalnum_isalpha_isascii_isatty_iscntrl_isdigit_isgraph_islower_isprint_ispunct_isspace_isupper_isxdigit_link_listen_localtime_localtime_r_log_log10_longjmp_lseek_lstat_malloc_memchr_memcmp_memcpy_memmove_memset_mkdir_mkstemp_mktime_open_opendir_openpty_pipe_pow_printf_putchar_puts_qsort_rand_readdir_readlink_realloc_realpath$DARWIN_EXTSN_recvfrom_remove_rename_rmdir_sendto_setjmp_setsockopt_setvbuf_shutdown_sin_sinh_snprintf_socket_socketpair_sprintf_sscanf_stat_strchr_strcmp_strerror_strftime_strlen_strncmp_strpbrk_strptime_strrchr_strstr_strtod_strtol_strtoul_strtoull_symlink_tan_tanh_time_umask_unlink_utimes_waitpid_writedyld_stub_binderradr://5614542  ^XD2@  jimsh̦[gxUAn`6XofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,Z+tbȘ* W1o~)ekoȦ(Uz፠<1Zfe9#u[[iK`.xcvJP*͍]EWO@\b&;$y=D1<:UӞȢ~3]/L+M@ЕuS[lKjque&E$[BS4ԥ'EqVؽ)"J~i@m|]߷&C& 8`Jo^K^3bŦV! b`JKrjm39㟚z)3% *Q@iKި) A*Fd>*='=; XXnl Nmj& WG 26YT掓"8 =HiŅ-SOpq\dz,/Dr5W~{eU3^X@0eNXU4|چxnk-:(q41f[[ ;M!2KrtpjKd6/5 ,C6$VKN 5wԐOc! wl(bc .R ao{ih2+ģ(!TM:Ca*z:c[)eĶWU*}JQGiO*nal>ҝNA1#ьĜ͛>G{ҽ'WIG9Pfe9Qڼ|$H<֥A7)yOeZ)dYPԓHE00ٗW{j`LW)Gdٺ~IA2sZܾ3sg۠ŅՂr2%uĹ&nΊ64ӏ̏kv'鞳5R8[Iz} ؜nZGPL`5yllۛڕ^==D ' 2-qU/^x/Rc=Ά>pwZ՜P䛏}]VKB?Qwg%O=ص]f"\&əl y* ;bu#j BVIyrڠ(m_]ugd8EC8Z"Ϋ^p4,?a;a,>wDdUjK*L#GeY R'пO6zi'ߛL_F]S6Z+;qbDY\)ƜkjгAiC=QF~v4t7_=q,aF}9Fív#Q89)w<8Jd1~w:oHmarqJ}a ޼|?#U2iC9x<ɚwqS 991N8x|؈7 ㍞W Sg':2%SzÜ]~1uvpz@">otÈq:͋M|$NrOF# ģr"7rECtg(2CTncB_\EdLG-'Bl]_ $_ڬ@q 'H_ҟw-mZwL tvCAORhp\o(G|okgW)JTtHUZr; h6.qؕzvxcYk#nGЉuU\gksW$񇖲-W'J`.Ik"߁]'EXofkOX||zڽH,okAifk~LlĵLwMpXofkOX||zڽH,XofkOX||zڽH,XofkOX||zڽH,Q\h%pO5Yd-+b\؉n7Y=XpfSžzQ#c\lo ݢx /۶bnZЀ潲